新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)雙機(jī)并行通信中所遇問(wèn)題及解決方法

單片機(jī)雙機(jī)并行通信中所遇問(wèn)題及解決方法

作者: 時(shí)間:2012-02-02 來(lái)源:網(wǎng)絡(luò) 收藏

4.2 上位機(jī)輸出數(shù)據(jù)

如圖3所示在輸出數(shù)據(jù)以前,通過(guò)對(duì)U1 (74173)給U3(D觸發(fā)器)進(jìn)行初始化,即對(duì)U3的PRN端輸入一上升沿的脈沖,使U3輸出置1。此時(shí)上位機(jī)的SCZB端經(jīng)反相器輸出低電平,U3 的Q端為高電平。此時(shí)為發(fā)送數(shù)據(jù)做好準(zhǔn)備。當(dāng)上位機(jī)的SCYX端接收輸入的上升沿脈沖時(shí),U3的Q端為低電平,當(dāng)CPU檢測(cè)到Q端為低電平時(shí),就可以發(fā)送數(shù)據(jù)到鎖存器中,緊接著通過(guò)上位機(jī)的SCZB端向下位機(jī)SRZB端輸出一個(gè)上升沿脈沖。表示已發(fā)送數(shù)據(jù),接著通過(guò)對(duì)U1給U2進(jìn)行進(jìn)行初始化。完成對(duì)一個(gè)字節(jié)的輸出,并為輸出下一個(gè)字節(jié)做好準(zhǔn)備,上位機(jī)輸出數(shù)據(jù)信號(hào)波形圖如圖4所示。

5 軟件設(shè)計(jì)

5.1 程序流程設(shè)計(jì)

圖6示出輸入數(shù)據(jù)流程圖,圖7示出輸出數(shù)據(jù)流程圖。

20.jpg
圖6 輸入數(shù)據(jù)流程

21.jpg
圖7 數(shù)據(jù)輸出程序流程圖

5.2 部分程序清單

(1) 輸入數(shù)據(jù)程序清單
ORG 0000H
JMP START
ORG 0003H
JMP RESEVE
START: MOV TCON,#0 ;設(shè)置中斷INT0
MOV TMOD,#11H
CALL SZSRDK ;設(shè)置輸入端口
MOV IE,#81H
MOV IP,#1 ;開(kāi)中斷
..
..
..
RESEVE: CLR EA ;開(kāi)中斷
PUSH PSW
PUSH DPH
PUSH DPL
RESEV1: JB ZDQQ,RESEV1
;判ZDQQ是否為低
MOV DPTR,#ADDR0
;為U5(輸入數(shù)據(jù)端口)的地址
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) 輸出數(shù)據(jù)程序清單
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 結(jié)束語(yǔ)

設(shè)計(jì)中采用了AT1504AS器件,該器件實(shí)現(xiàn)了硬件設(shè)計(jì)軟件化,方便了硬件設(shè)計(jì),縮短了設(shè)計(jì)周期,降低了設(shè)計(jì)成本,應(yīng)用也十分方便,該系統(tǒng)經(jīng)過(guò)采取以上措施后,以達(dá)到最初的設(shè)計(jì)要求?,F(xiàn)產(chǎn)品已投放市場(chǎng),市場(chǎng)的反映良好。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉