两个51单片机串口通信程序?

这个串口通信接收发送机程序分别要怎么写啊

串行发送程序 Tx.asm :
PCON, #00H ;; 波特率不倍增
SETB TR1 ;; 启动定时器T1
MOV IE, #0 ;; 禁止任何中断
CALL DLY125 ;; 延时125ms
;;--------------------------------------------
T_X: ;; 透传发送字串

ACALL DSPLED ;; P2.0控制LED闪亮
MOV R3, #4 ;; 待发送字符个数
MOV DPTR, #TAB_TX ;; 数据表首址
TX_LP1: CLR A
MOVC A, @A+DPTR ;; A←数据表的1个字符
CLR TI ;; TI清零,允许发送
MOV SBUF,A ;; 发送1个字符
JNB TI, $ ;; 等待1个字符帧发送结束
DJNZ R3, TX_next
CALL DLY500 ;; 延时500ms
SJMP T_X ;; 重复发送
TX_next: ;; 发送另一字符
INC DPTR ;; 数据表指针移动
SJMP TX_LP1
;;--------------------------------------------
DSPLED: ;;开机或复位,P2.0控制LED闪亮6遍

MOV R2, #6 ;; 循环次数
LEDLP1: CLR P2.0 ;; LED亮
CALL DLY125 ;; 延时125ms
SETB P2.0 ;; LED灭
CALL DLY125
DJNZ R2,LEDLP1 ;; 循环
RET
;;----------------------------------------------
DLY125: ;; 延时125ms
DLY125A: MOV R5,#250
DLY125B: MOV R6,#250
DJNZ R6,$
DJNZ R5,DLY125B
RET
;; 250*250*2μs=125 000μs =125ms
;;----------------------------------------------
DLY500: ;; 延时500ms
MOV R7,#4
DLY500A: MOV R6,#250
DLY500B: MOV R5,#250
DJNZ R5,$
DJNZ R6,DLY500B
DJNZ R7,DLY500A
RET
;; 4*250*250*2μs=500 000μs =500ms
;;-------------------------------------------------

TAB_TX: DB 38H,30H,35H,31H, ...

;; 8 0 5 1 ...
;;----------------------------------------------
END
温馨提示:答案为网友推荐,仅供参考
相似回答