新聞中心

        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 郎溪县| 新营市| 松潘县| 广元市| 平利县| 思茅市| 武宁县| 贵溪市| 宜昌市| 报价| 古田县| 东阳市| 安顺市| 仁寿县| 文昌市| 天门市| 南平市| 寿阳县| 偏关县| 阜新| 城步| 黄平县| 怀远县| 盐山县| 萨迦县| 沈丘县| 朝阳区| 万州区| 大兴区| 防城港市| 奉新县| 宽甸| 诏安县| 祥云县| 饶阳县| 金堂县| 高州市| 从江县| 略阳县| 赞皇县| 抚松县|