新闻中心

EEPW首页>嵌入式系统>设计应用> 单片机双机并行通信中所遇问题及解决方法

单片机双机并行通信中所遇问题及解决方法

作者: 时间:2012-02-02 来源:网络 收藏

4.2 上位机输出数据

如图3所示在输出数据以前,通过对U1 (74173)给U3(D触发器)进行初始化,即对U3的PRN端输入一上升沿的脉冲,使U3输出置1。此时上位机的SCZB端经反相器输出低电平,U3 的Q端为高电平。此时为发送数据做好准备。当上位机的SCYX端接收输入的上升沿脉冲时,U3的Q端为低电平,当CPU检测到Q端为低电平时,就可以发送数据到锁存器中,紧接着通过上位机的SCZB端向下位机SRZB端输出一个上升沿脉冲。表示已发送数据,接着通过对U1给U2进行进行初始化。完成对一个字节的输出,并为输出下一个字节做好准备,上位机输出数据信号波形图如图4所示。

5 软件设计

5.1 程序流程设计

图6示出输入数据流程图,图7示出输出数据流程图。

20.jpg
图6 输入数据流程

21.jpg
图7 数据输出程序流程图

5.2 部分程序清单

(1) 输入数据程序清单
ORG 0000H
JMP START
ORG 0003H
JMP RESEVE
START: MOV TCON,#0 ;设置中断INT0
MOV TMOD,#11H
CALL SZSRDK ;设置输入端口
MOV IE,#81H
MOV IP,#1 ;开中断
..
..
..
RESEVE: CLR EA ;开中断
PUSH PSW
PUSH DPH
PUSH DPL
RESEV1: JB ZDQQ,RESEV1
;判ZDQQ是否为低
MOV DPTR,#ADDR0
;为U5(输入数据端口)的地址
MOVX A, @DPTR
..
..
CALL SZSRDK
POP DPL
POP DPH
POP PSW
SETB EA
RETI
SZSRDK: CLRN EQU 2CH.0
CLR CLRN ;
MOV DPTR,#ADDR1
;为U1的地址
MOV A,2CH
MOVX @DPTR,A
SETB CLRN
MOV A,2CH
MOV DPTR,#ADDR1
MOVX @DPTR,A
RET
(2) 输出数据程序清单
SEND: MOV DPTR,#ADDR3
MOVX A,@DPTR
JB ACC.0,SEND
;为U3的Q端输出
MOV DPTR,#ADDR4
;为U4(输出端口)的地址
MOVX @DPTR,A
CALL SZSCDK
RET
SZSCDK: PRN EQU 2CH.1
SETB PRN
MOV DPTR,#ADDR1
;为U1的地址
MOV A,2CH
MOVX @DPTR,A
CLR PRN
MOV DPTR,#ADDR1
MOV A,2CH
MOVX @DPTR,A
RET

6 结束语

设计中采用了AT1504AS器件,该器件实现了硬件设计软件化,方便了硬件设计,缩短了设计周期,降低了设计成本,应用也十分方便,该系统经过采取以上措施后,以达到最初的设计要求。现产品已投放市场,市场的反映良好。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭