<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 安全與國防 > 設計應用 > 基于A(yíng)T89C51的單線(xiàn)雙機通信協(xié)議

基于A(yíng)T89C51的單線(xiàn)雙機通信協(xié)議

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

  一、緒言

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

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

  二、設計概況

  1.整體時(shí)序:

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

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

  4.

  S :開(kāi)始位

  A :響應位

  E :結束位

  R :讀端口

  W :寫(xiě)端口

  Dx:數據

  5.主從機同步原理:

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

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

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

 ?。?)速度問(wèn)題:

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

 ?。?)可靠性問(wèn)題:

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

 ?。?)效果檢測

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

  1.主機源程序

  ;主機程序

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

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

  KCNTEQU 26H ;鍵盤(pán)重復計數

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

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

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

  

  RSCNT EQU 2AH

  

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

  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I(yíng)NT_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 ;讀鍵盤(pán)

  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


上一頁(yè) 1 2 3 4 5 6 下一頁(yè)

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>