灵芝厂家
免费服务热线

Free service

hotline

010-00000000
灵芝厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

51单片机汇编模拟串口通信程序

发布时间:2020-07-21 17:47:27 阅读: 来源:灵芝厂家

汇编编写的模拟串口通信程序

T2作为波特率控制UART_RXD 是硬中断0或1口,如果能进入中断,说明该线有一个起始位产生,进入中断后调用下面的接收程序。退出硬中断之前还需要将硬中断标志重新复位。UART_TXD是任何其它IO即可。

UART_SEND: PUSH IE PUSH DPH PUSH DPL PUSH PSW PUSH 00H PUSH ACC CLR EA SETB UART_TXD ;START BIT MOV R0,A CLR TR2 ;TR2置1,计数器2启动,时间计数启动。 MOV A,RCAP2L;计数器2重新装载值 MOV TL2,A ;置计数器2初值 ;T2需要重新装载 MOV A,DPH MOV A,RCAP2H MOV TH2,A MOV A,R0 SETB TR2 ;TR2置1,计数器 JNB TF2,$ CLR TF2 JNB TF2,$ CLR TF2 CLR UART_TXD ;START BIT JNB TF2,$ CLR TF2 JNB TF2,$ CLR TF2 MOV R0,#08HUART_SEND_LOOP: RRC A MOV UART_TXD,C ;8 BIT JNB TF2,$ CLR TF2 JNB TF2,$ CLR TF2 DJNZ R0,UART_SEND_LOOP SETB UART_TXD ;END BIT JNB TF2,$ CLR TF2 JNB TF2,$ CLR TF2 POP ACC POP 00H POP PSW POP DPL POP DPH POP IE RET ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UART_REC: PUSH IE PUSH DPH PUSH DPL CLR EA CLR TR2 ;TR2置1,计数器2启动,时间计数启动。 MOV A,RCAP2L;计数器2重新装载值 MOV TL2,A ;置计数器2初值 ;T2需要重新装载 MOV A,DPH MOV A,RCAP2H MOV TH2,A JB UART_RXD,$ ;REC SETB TR2 ;TR2置1,计数器2启动,时间计数启动。 JNB TF2,$ CLR TF2 ;0.5 BIT JNB TF2,$ CLR TF2 ;1 BIT JNB TF2,$ CLR TF2 ;1.5 BIT MOV C,UART_RXD MOV ACC.0,C JNB TF2,$ CLR TF2 JNB TF2,$ CLR TF2 ;2.5 MOV C,UART_RXD MOV ACC.1,C JNB TF2,$ CLR TF2 JNB TF2,$ CLR TF2 ;3.5 MOV C,UART_RXD MOV ACC.2,C JNB TF2,$ CLR TF2 JNB TF2,$ CLR TF2 ;4.5 MOV C,UART_RXD MOV ACC.3,C JNB TF2,$ CLR TF2 JNB TF2,$ CLR TF2 ;5.5 MOV C,UART_RXD MOV ACC.4,C JNB TF2,$ CLR TF2 JNB TF2,$ CLR TF2 ;6.5 MOV C,UART_RXD MOV ACC.5,C JNB TF2,$ CLR TF2 JNB TF2,$ CLR TF2 ;7.5 MOV C,UART_RXD MOV ACC.6,C JNB TF2,$ CLR TF2 JNB TF2,$ CLR TF2 ;8.5 MOV C,UART_RXD MOV ACC.7,C JNB TF2,$ CLR TF2 ;9.5 JNB UART_RXD,$ ;等待停止位,并重新复位计数器 SETB UART_RXD POP DPL POP DPH POP IE RET

数字通信相关文章:数字通信原理

通信相关文章:通信原理

尘埃粒子计数器相关文章:尘埃粒子计数器原理

隆鼻

上海牙齿矫正

南昌牙齿矫正价格

相关阅读