新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機匯編模擬串口通信程序

51單片機匯編模擬串口通信程序

作者: 時間:2012-10-16 來源:網(wǎng)絡 收藏

編寫的

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,計數(shù)器2啟動,時間計數(shù)啟動。
MOV A,RCAP2L;計數(shù)器2重新裝載值
MOV TL2,A ;置計數(shù)器2初值 ;T2需要重新裝載
MOV A,DPH
MOV A,RCAP2H
MOV TH2,A
MOV A,R0

SETB TR2 ;TR2置1,計數(shù)器
JNB TF2,$
CLR TF2
JNB TF2,$
CLR TF2

CLR UART_TXD ;START BIT
JNB TF2,$
CLR TF2
JNB TF2,$
CLR TF2

MOV R0,#08H
UART_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,計數(shù)器2啟動,時間計數(shù)啟動。
MOV A,RCAP2L;計數(shù)器2重新裝載值
MOV TL2,A ;置計數(shù)器2初值 ;T2需要重新裝載
MOV A,DPH
MOV A,RCAP2H
MOV TH2,A

JB UART_RXD,$ ;REC
SETB TR2 ;TR2置1,計數(shù)器2啟動,時間計數(shù)啟動。
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,$ ;等待停止位,并重新復位計數(shù)器
SETB UART_RXD

POP DPL
POP DPH
POP IE
RET

數(shù)字通信相關文章:數(shù)字通信原理


通信相關文章:通信原理


塵埃粒子計數(shù)器相關文章:塵埃粒子計數(shù)器原理


評論


相關推薦

技術專區(qū)

關閉