51单片机串口通信点亮led灯程序
时间:05-08 10:11 阅读:2218次
*温馨提示:点击图片可以放大观看高清大图
简介:本文主要为51单片机串口通信点亮led灯程序,下面一起来学习下:
单片机串口通信模式有4种.(一种同步,3种异步).在控制寄存器SCON中设置通信模式,
TI位为发送中断请求标志位,TI=0,表示可发关(要软件清0),TI=1发送结束,硬件自动置位.
RI位为接收中断请求标志位,RI=0,可接.RI=1.表示接收完毕.
REN为接收允许/禁止控制位.
下面以模式1为例.由PC机发送控制信息.控制从机LED显示.
模式1接收流程:(模式1一帧10位)
1.设置SCON中的REN=1,启动串行口数据接收.RXD引脚进行串行口数据取样.
2.在数据传递的时候RXD为高电平1,当有负跳变时,确认数据起始位0.
3.开始接收一帧串行数据,在接收移位脉冲的控制下,将收到的数据一位一位地送入移位寄存器,直到9位数据(包括停止位)完全接收完毕,其中最后一位为停止位.
4.当RI=0,并且接收到的停止位为1,8位数据送入SBUF,停止位送入RB8
5.读数据MOVA,SBUF
6.软件中清空RI,以便接收下一次串行数据.
以下发的是FE,因为板子中LED是共阳的,所以低电平有效,即FE只点亮最低位的一个LED灯,最上面的那个.
代码如下:
org 0000H
AJMP MAIN
MAIN:
MOV TMOD,#20H
MOV TL1,#0F4H
MOV TH1,#0F4H
SETB TR1
CLR ES
HERE:
MOV SCON,#50H
MOV PCON,#80H
JNB RI,$
MOV A,SBUF
MOV P0,A
CLR RI
JMP HERE
END