国产肉体XXXX裸体137大胆,国产成人久久精品流白浆,国产乱子伦视频在线观看,无码中文字幕免费一区二区三区 国产成人手机在线-午夜国产精品无套-swag国产精品-国产毛片久久国产

關(guān) 閉

新聞中心

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 :結(jié)束位

  R :讀端口

  W :寫端口

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

  5.主從機同步原理:

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

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

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

 ?。?)速度問題:

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

 ?。?)可靠性問題:

  在該協(xié)議中,存在兩個響應位、一個結(jié)束位,還有標志位,這些為數(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 下一頁

評論


相關(guān)推薦

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

關(guān)閉