******************************************************************************* 实验十八 单片机自发自收串口通信实验 ******************************************************************************* 串口按全双工方式收、发数据,要求将内部RAM中30H单元开始的20个数据发送出去,同时自己接收该20个数据,并把它们存入内部RAM中50H开始的数据单元中,波特率为2400bps,fosc=11
0592M ,发送与接收数据采用中断方式进行
响应中断后,通过检测是RI置位还是TI置位来确定是进行数据发送或是接收数据
⑴ 自发自收汇编调试程序如下: ORG 0000H LJMP MAIN ORG 0023H AJMP SBS1 ;转至中断服务子程序 ORG 0050H MAIN: MOV SP,#60H MOV TMOD,#20H ;定时器 1 设为模式2 MOV TL1,#0FAH ; MOV TH1,#0FAH ;置定时器初值 SETB TR1 ;启动 T1 MOV SCON,#50H ;将串口设置为方式1,REN=1 MOV R0,#30H ;发送数据区首地址送R0 MOV R1,#50H ;接收数据区首地址送R1 MOV R2,#20H ;置发送数据个数送R2 LCALL SOUT ;调用发射子程序 SETB ES ; SETB EA ;开中断 LOOP: AJMP LOOP ;等待中断 ORG 0100H ;中断服务子程序 SBS1: JNB RI,SEND ;TI=1,为发送中断 ACALL SIN ;RI=1,为接收中断 SJMP NEXT SEND: ACALL SOUT ;调用发送子程序 NEXT: RE