色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          關 閉

          新聞中心

          EEPW首頁 > 安全與國防 > 設計應用 > 基于AT89C51的單線雙機通信協(xié)議

          基于AT89C51的單線雙機通信協(xié)議

          作者: 時間:2008-03-07 來源:網絡 收藏

            一、緒言

            因工作需要,設計一單線雙向通訊協(xié)議。要求主機通過其所帶的鍵盤能控制主機和從機的顯示,從機也能通過所帶的鍵盤控制主機和從機的顯示,主機和從機鍵盤所起的控制作用完全一致,顯示也完全一致。

            另外,從機可以隨時脫離主機。當從機從脫機狀態(tài)連上主機時,要求從機能立即顯示主機的鍵盤信息,即顯示一致。

            二、設計概況

            1.整體時序:

            2.主機接收數據從機發(fā)送數據的時序:

            3.主機發(fā)送數據從機接收數據的時序:

            4.

            S :開始位

            A :響應位

            E :結束位

            R :讀端口

            W :寫端口

            Dx:數據

            5.主從機同步原理:

            由圖可知,主從機的讀寫是互不沖突的,任意時刻只允許一個寫,但允許兩個都處于讀狀態(tài)。從整體上講,數據是按幀傳輸的,但從定時器中斷方面來說,數據是按位傳輸的,因為一次定時器中斷只傳送一個位,而不是完整的一幀數據。在數據未開始傳輸前,從機IO口處于邊沿中斷接收狀態(tài),其定時器中斷是關閉的。主機永遠處于定時中斷狀態(tài)。當主機發(fā)出開始位之后,若存在從機,則從機會發(fā)出一個低電平響應;否則表示通訊失敗,幾個時鐘周期之后,主機會接著發(fā)起下一次數據傳輸的開始位。在通訊過程中,任意一個響應位不成立均宣告通訊失敗,同時此次通訊結束。

            綜上所述,在數據傳輸開始時,靠“外部邊沿中斷”同步,在數據傳輸開始之后,靠“定時器中斷”同步。

            6.協(xié)議的穩(wěn)健性

           ?。?)速度問題:

            以單放機、CD機等的現控為例,由于處理器的主要任務為信號處理,所以要求通訊占用的時間越少越好,而且通訊數據量也不大,該協(xié)議正是基于該類設計的。由于每次只發(fā)送一位數據,故占用的MCU時間非常少.

           ?。?)可靠性問題:

            在該協(xié)議中,存在兩個響應位、一個結束位,還有標志位,這些為數據的合法性的檢測提供了依據。另外,由于主從通訊只需傳輸單放機、CD機等的“按鍵”或“工作狀態(tài)”數據,故數據量根本用不著8位,多余的位可用于校驗,例如采用奇偶校驗、漢明碼等。

            (3)效果檢測

            通過由兩塊AT89C51組成的試驗,該協(xié)議工作完全正常,并具備即插即用功能,即在主機工作時,從機可以隨時拔下插上而不會影響主從機工作狀態(tài)及其顯示。該協(xié)議已于國內某知名企業(yè)的單放機的大批量生產中采用。

            1.主機源程序

            ;主機程序

            KBUF0 EQU 24H ;鍵值臨時緩沖

            KBUF1 EQU 25H ;鍵值緩沖

            KCNTEQU 26H ;鍵盤重復計數

            DLYD0 EQU 27H ;延遲變量

            DLYD1 EQU 28H ;延遲變量

            DLYD2 EQU 29H ;延遲變量

            

            RSCNT EQU 2AH

            

            RSI BIT 00H ;收發(fā)開始標志

            RSF BIT 01H ;收/發(fā)標志

            RSF0BIT 02H ;收發(fā)標志0

            RSF1BIT 03H ;收發(fā)標志1

            ;SDFBIT 04H ;有數據發(fā)送標志

            RDF BIT 05H ;有接收數據標志

            

            STATE EQU 2BH

            SDATX EQU 22H

            RDATX EQU 23H

            

            

             BIT 0B2H

            TSIOBIT 0B3H

            

            ORG 00H

            AJMPMAIN

            

            ORG 0BH

            AJMPINT_T0

            

            ORG 100H

            MAIN:

             SP,#50H

             KBUF0,#00H

             KBUF1,#00H

            MOV KCNT,#00H

            MOV STATE,#00H

            MOV SDATX,#00H

            MOV RDATX,#00H

            MOV RSCNT,#00H

            MOV 20H,#00H

            MOV P0,#00H

            CLR RSF

            MOV TH0,#00H

            MOV TL0,#00H

            MOV TMOD,#02H ;工作模式為定時方式2

            MOV TCON,#10H ;允許定時器0工作

            MOV IE,#82H

            LOOPX:

            CALLKEYREAD ;讀鍵盤

            CALLDLY2MS;延遲2ms

            JMP LOOPX

            ;按鍵功能入口

            FUNCTION:

            MOV A,KBUF1

            CJNEA,#07FH,FUN1;+1

            ;MOVA,STATE

            ;ADDA,#01H

            MOV A,#01H

            MOV STATE,A

            CPL A

            MOV P0,A

            ;SETB SDF

            JMP LOOPX

            FUN1:

            CJNEA,#0F7H,FUN2;+2

            ;MOVA,STATE

            ;ADDA,#02H

            MOV A,#02H

            MOV STATE,A

            CPL A

            MOV P0,A

            ;SETB SDF

            JMP LOOPX

            FUN2:

            CJNEA,#0BFH,FUN3;+4

            ;MOVA,STATE

            ;ADDA,#04H

            MOV A,#03H

            MOV STATE,A

            CPL A

            MOV P0,A

            ;SETB SDF

            JMP LOOPX

            FUN3:

            CJNEA,#0FBH,FUN4;+8

            ;MOVA,STATE

            ;ADDA,#08H

            MOV A,#04H

            MOV STATE,A

            CPL A

            MOV P0,A

            ;SETB SDF

            JMP LOOPX

            FUN4:

            CJNEA,#0DFH,FUN5;+16

            ;MOVA,STATE

            ;ADDA,#10H

            MOV A,#05H

            MOV STATE,A

            CPL A

            MOV P0,A

            ;SETB SDF

            JMP LOOPX

            FUN5:

            CJNEA,#0FDH,FUN6;+32

            MOV A,STATE

            ;ADDA,#20H

            XRL A,#08H

            MOV STATE,A

            CPL A

            MOV P0,A

            ;SETB SDF

            JMP LOOPX

            FUN6:

            CJNEA,#0EFH,FUN7;+64

            MOV A,STATE

            ADD A,#40H

            MOV STATE,A

            CPL A

            MOV P0,A

            ;SETB SDF

            JMP LOOPX

            FUN7:

            CJNEA,#0FEH,FUN8;+128

            MOV A,STATE

            ADD A,#80H

            MOV STATE,A

            CPL A

            MOV P0,A

            ;SETB SDF

            JMP LOOPX

            FUN8:

            JMP LOOPX

            ;==================================================================

            KEYREAD:

            CLR P2.7

            SETBP2.6

            MOV A,P2

            ANL A,#0FH

            MOV KBUF0,A

            SETBP2.7

            CLR P2.6

            MOV A,P2

            ANL A,#0FH

            SWAPA

            ORL A,KBUF0

            MOV KBUF0,A

            CJNEA,KBUF1,KEYRD4

            MOV A,KCNT

            CJNEA,#03H,KEYRD1

            RET

            KEYRD1:

            INC A

            INC KCNT

            CJNEA,#03H,KEYRD5

            MOV A,KBUF1

            CJNEA,#0FFH,KEYRD2

            RET

            KEYRD2:

             A

             A

            ;MOVP0,A

            KEYRD3:

            JMP FUNCTION

            KEYRD4:

            MOV KBUF1,A


          上一頁 1 2 3 4 5 6 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉