2 部分程序代码
(1)主机程序(zhuji0.asm):
ORG 0000H
AJMP START
ORG 0023H ;串行口中断向量地址
AJMP UART
/**********系统初始化***********/
ORG 0100H
START:MOV TMOD,#00100000B ;选择 T1,工作在模式 2,作串行口波
特率发生器
ANL PCON,#01111111B ;置 SMOD 位为 0
MOV TH1,#0F9H ;波特率=4800b/s
SETB TR1 ;激活 T1
MOV SCON,#11010000B ;串行口工作在模式 3,REN=1
MOV IE,#10010000B ;EA=1,ES=1
SETB SM2 ;使能多机通信
MOV 30H,#0FFH ;1#从机数据暂存器
MOV 31H,#0FFH ;2#从机数据暂存器
MOV 32H,#0FFH ;3#从机数据暂存器
MOV 40H,#0FFH ;从机地址暂存器
MOV SP,#50H
/******循环检测各从机有无数据发送过来,有,则转发至其它从机*********/
LOOP0:MOV A,P0 ;读入显示口 P0,检测 1#从机发送数据
否?
CJNE A,30H,UART0 ;判断是否有变化?若有变,则执行发
送
LCALL DELAY
SETB P3.6 ;没有变化,则不发送,保持接收状态
JMP LOOP1 ;检测 P1 显示口
LOOP1:MOV A,P1 ;读入显示口 P1,检测 2#从机发送数据
否?
CJNE A,31H,UART1 ;判断是否有变化?若有变,则执行发
送
LCALL DELAY
SETB P3.6 ;没有变化,则不发送,保持接收状态
JMP LOOP2 ;检测 P2 显示口
LOOP2:MOV A,P2 ;读入显示口 P2,检测 3#从机发送数据
- 1
- 2
前往页