在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      關(guān) 閉

      新聞中心

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

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

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

        一、緒言

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

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

        二、設(shè)計(jì)概況

        1.整體時(shí)序:

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

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

        4.

        S :開始位

        A :響應(yīng)位

        E :結(jié)束位

        R :讀端口

        W :寫端口

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

        5.主從機(jī)同步原理:

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

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

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

       ?。?)速度問題:

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

       ?。?)可靠性問題:

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

        (3)效果檢測

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

        1.主機(jī)源程序

        ;主機(jī)程序

        KBUF0 EQU 24H ;鍵值臨時(shí)緩沖

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

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

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

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

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

        

        RSCNT EQU 2AH

        

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

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

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

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

        ;SDFBIT 04H ;有數(shù)據(jù)發(fā)送標(biāo)志

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

        

        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 ;工作模式為定時(shí)方式2

        MOV TCON,#10H ;允許定時(shí)器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 下一頁

      評(píng)論


      相關(guān)推薦

      技術(shù)專區(qū)

      關(guān)閉