中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 關 閉

        新聞中心

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

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

        作者: 時間:2008-03-07 來源:網(wǎng)絡 收藏

          一、緒言

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

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

          二、設計概況

          1.整體時序:

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

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

          4.

          S :開始位

          A :響應位

          E :結束位

          R :讀端口

          W :寫端口

          Dx:數(shù)據(jù)

          5.主從機同步原理:

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

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

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

         ?。?)速度問題:

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

         ?。?)可靠性問題:

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

         ?。?)效果檢測

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

          1.主機源程序

          ;主機程序

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

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

          KCNTEQU 26H ;鍵盤重復計數(shù)

          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 ;有數(shù)據(jù)發(fā)送標志

          RDF BIT 05H ;有接收數(shù)據(jù)標志

          

          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ū)

        關閉