;此程序为用单片机用串行口给电脑发送数据,电脑可以用串口调试工具接收到
ORG 0000H
RESET: MOV R0,#00H
L0: DJNZ R0,L0 ;延时指令,可以使硬件恢复到准状态
INIT: MOV TMOD,#00100000B ;设置定时器1为工作模式2,8位自动重装
MOV TH1,#0FDH ;设置波特率,9600bps
MOV TL1,#0FDH
SETB TR1 ;打开T1定时器中断
CLR SM0 ;设置串口传输模式1
SETB SM1
START: CLR TI
MOV A,#31H
MOV SBUF,A
L1: JNB TI,L1;直接寻址位为0则转移(意思是:当TI置1后,缓存中已经把数据发送出去了,可以发下一个了)
LCALL DELAY ;调用延时函数(可以不用,因为标志位已经硬件置1了),可以感觉到发送的减速
CLR TI
SJMP START
DELAY1: MOV R1,#00H ;此延时只能延时512us时间,视觉上看不出来
L3: DJNZ R1,L3
RET
DELAY: PUSH PSW ;此延时程序可以延时130ms时间,在用串口调试工具调试的时候可以明显的感觉到
MOV R0,#00H
L4: MOV R1,#00H
L5: DJNZ R1,L5
DJNZ R0,L4
POP PSW
RET
END