资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
5151 单片机汇编模拟串口通信程序单片机汇编模拟串口通信程序T2 作为波特率控制 UART_RXD 是硬中断 0 或 1 口,如果能进入中断,说明该线有一个起始位产生,进入中断后调用下面的接收程序。退出硬中断之前还需要将硬中断标志重新复位。UART_TXD 是任何其它 IO 即可。UART_SEND:PUSH IEPUSH DPHPUSH DPLPUSH PSWPUSH 00HPUSH ACCCLR EASETB UART_TXD ;START BITMOV R0,ACLR TR2 ;TR2 置 1,计数器 2 启动,时间计数启动。MOV A,RCAP2L;计数器 2 重新装载值MOV TL2,A ;置计数器 2 初值 ;T2 需要重新装载MOV A,DPHMOV A,RCAP2HMOV TH2,AMOV A,R0SETB TR2 ;TR2 置 1,计数器JNB TF2,$CLR TF2JNB TF2,$CLR TF2CLR UART_TXD ;START BITJNB TF2,$CLR TF2JNB TF2,$CLR TF2MOV R0,#08HUART_SEND_LOOP:RRC AMOV UART_TXD,C ;8 BITJNB TF2,$CLR TF2JNB TF2,$CLR TF2DJNZ R0,UART_SEND_LOOPSETB UART_TXD ;END BITJNB TF2,$CLR TF2JNB TF2,$CLR TF2POP ACCPOP 00HPOP PSWPOP DPLPOP DPHPOP IERET;UART_REC:PUSH IEPUSH DPHPUSH DPLCLR EACLR TR2 ;TR2 置 1,计数器 2 启动,时间计数启动。MOV A,RCAP2L;计数器 2 重新装载值MOV TL2,A ;置计数器 2 初值 ;T2 需要重新装载MOV A,DPHMOV A,RCAP2HMOV TH2,AJB UART_RXD,$ ;RECSETB TR2 ;TR2 置 1,计数器 2 启动,时间计数启动。JNB TF2,$CLR TF2 ;0.5 BITJNB TF2,$CLR TF2 ;1 BITJNB TF2,$CLR TF2 ;1.5 BITMOV C,UART_RXDMOV ACC.0,CJNB TF2,$CLR TF2JNB TF2,$CLR TF2 ;2.5MOV C,UART_RXDMOV ACC.1,CJNB TF2,$CLR TF2JNB TF2,$CLR TF2 ;3.5MOV C,UART_RXDMOV ACC.2,CJNB TF2,$CLR TF2JNB TF2,$CLR TF2 ;4.5MOV C,UART_RXDMOV ACC.3,CJNB TF2,$CLR TF2JNB TF2,$CLR TF2 ;5.5MOV C,UART_RXDMOV ACC.4,CJNB TF2,$CLR TF2JNB TF2,$CLR TF2 ;6.5MOV C,UART_RXDMOV ACC.5,CJNB TF2,$CLR TF2JNB TF2,$CLR TF2 ;7.5MOV C,UART_RXDMOV ACC.6,CJNB TF2,$CLR TF2JNB TF2,$CLR TF2 ;8.5MOV C,UART_RXDMOV ACC.7,CJNB TF2,$CLR TF2 ;9.5JNB UART_RXD,$ ;等待停止位,并重新复位计数器SETB UART_RXDPOP DPLPOP DPHPOP IERET
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号