标题: 编写一段程序,接收主机串行口发送来的字符,在单片机接收到‘X’的时候返回一个‘... [打印本页]

作者: 54778    时间: 2019-10-30 12:05
标题: 编写一段程序,接收主机串行口发送来的字符,在单片机接收到‘X’的时候返回一个‘...
1
ORG    0000H
           LJMP    MAIN
           ORG     0100H
MAIN:      MOV    SP,#60H     
           MOV     TMOD,#20H   ;设置T1 为方式2
           MOV     TH1,#0FDH   ;设置波特率为9600
           MOV     TL1,#0FDH
           MOV     SCON,#50H   ;设置串口为方式1
           MOV     PCON,#00H
           SETB    TR1         ;启动定时器1
LOOP:      JNB     RI,$
           CLR     RI
           MOV     A,SBUF
           CJNE    A,#'X',FSEND
           MOV     A,#'T'
           AJMP    SEND
FSEND:     MOV     A,#'F'
SEND:      MOV     SBUF,A      ;回发数据
JNB     TI,$
           CLR     TI  
           SJMP    LOOP
           END
2、采用串行口中断方式,实现与实验2相同的功能。
                ORG     0000H
                LJMP    MAIN
                ORG     0023H
                LJMP    ZRS232
                ORG     0100H
MAIN:       CLR     EA
                MOV     SP,#60H         ;给堆栈指针赋初值
                MOV     TMOD,#20H       ;设置T1 为方式2
                MOV     TH1,#0FDH       ;设置波特率为9600
                MOV     TL1,#0FDH
                MOV     SCON,#50H       ;设置串口位方式1,允许接收
                MOV     PCON,#00H
                SETB    ES
                SETB    TR1             ;定时器1 开始计数
                SETB    EA
                SJMP    $
ZRS232:     JB      RI,ZR
ZT:         CLR     TI
                AJMP    ZEND
ZR:         CLR    RI
                MOV     A,SBUF
                CJNE    A,#'X',FSEND
                MOV     A,#'T'
                AJMP    SEND
FSEND:      MOV     A,#'F'
SEND:       MOV     SBUF,A          ;回发数据
ZEND:       RETI
                END





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1