單片機串口通信控制LED燈
TI位為發送中斷請求標志位,TI=0,表示可發關(要軟件清0),TI=1發送結束,硬件自動置位.
本文引用地址:http://www.104case.com/article/201611/315771.htmRI位為接收中斷請求標志位,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.讀數據MOV A,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
評論