串行口控制寄存器
SM0SM1定义串行口工作方式
发送标志位软件查询,串口不停的发送数据#58H
ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV SP,#60H MOV TMOD,#20H ;设置T1为方式2 MOV TH1,#0FDH ; MOV TL1,#0FDH MOV SCON,#50H MOV PCON,#00H SETB TR1 LOOP: MOV SBUF,#58H WAIT: JBC TI,LOOP AJMP WAIT END |
运行结果
我们会看到传输的数据较多,增加个延时再看看效果
ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV SP,#60H MOV TMOD,#20H ;设置T1为方式2 MOV TH1,#0FDH ; MOV TL1,#0FDH MOV SCON,#50H MOV PCON,#00H SETB TR1 LOOP: CALL DELAY MOV SBUF,#58H WAIT: JBC TI,LOOP AJMP WAIT DELAY: MOV R0,#0FFH D2: MOV R1,#0FFH D1: MOV R2,#0FH D0: DJNZ R2,D0 DJNZ R1,D1 DJNZ R0,D2 RET END |
运行效果如下
中断方式实现接收数据反发送回去
ORG 0000H LJMP MAIN ORG 0030H LJMP INTA ORG 0100H MAIN: MOV SP,#60H MOV TMOD,#20H ;设置T1为方式2 MOV TH1,#0FDH ; MOV TL1,#0FDH MOV SCON,#50H MOV PCON,#00H SETB ES SETB EA SETB TR1 SJMP $ INTA: CLR RI CLR ES MOV A,SBUF MOV SBUF,A WAIT: JNB TI,WAIT CLR TI SETB ES RETI END |
运行效果如下图所示