關(guān) 閉

新聞中心

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

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

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

   A

  

  RETI

  T0W51 :

  ;CLR

  ;CLRTSIO

   P3,#00H

  T0W52 :

   A

  POP

  RETI

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

  INT_T0R5:

  JBRSF,T0R52

  JNB ,T0R51

  SETBRDATX.5

  POP A

  POP

  RETI

  T0R51 :

  CLR RDATX.5

  T0R52 :

  POP A

  POP PSW

  RETI

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

  INT_T0W6:

  JNB RSF,T0W62

  JNB SDATX.6,T0W61

  ;SETB

  ;SETB TSIO

   P3,#0FFH

  POP A

  POP PSW

  RETI

  T0W61 :

  ;CLRCTPIO

  ;CLRTSIO

   P3,#00H

  T0W62 :

  POP A

  POP PSW

  RETI

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

  INT_T0R6:

  JBRSF,T0R62

  JNB CTPIO,T0R61

  SETBRDATX.6

  POP A

  POP PSW

  RETI

  T0R61 :

  CLR RDATX.6

  T0R62 :

  POP A

  POP PSW

  RETI

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

  INT_T0W7:

  JNB RSF,T0W72

  JNB SDATX.7,T0W71

  ;SETB CTPIO

  ;SETB TSIO

  MOV P3,#0FFH

  POP A

  POP PSW

  RETI

  T0W71 :

  ;CLRCTPIO

  ;CLRTSIO

  MOV P3,#00H

  T0W72 :

  POP A

  POP PSW

  RETI

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

  INT_T0R7:

  JBRSF,T0R72

  JNB CTPIO,T0R71

  SETBRDATX.7

  POP A

  POP PSW

  RETI

  T0R71 :

  CLR RDATX.7

  T0R72 :

  POP A

  POP PSW

  RETI

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

  INT_T0WE: ;寫結(jié)束位(寫數(shù)據(jù))

  JNB RSF,T0WE1

  ;CLRCTPIO

  ;CLRTSIO

  MOV P3,#00H

  T0WE1 :

  POP A

  POP PSW

  RETI

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

  INT_T0RE: ;讀結(jié)束位(讀數(shù)據(jù))

  JBRSF,T0RE1

  JNB CTPIO,T0RE1

  JMP ERROR4

  T0RE1 :

  POP A

  POP PSW

  RETI

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

  INT_T0WAL:;寫響應(yīng)位(讀數(shù)據(jù))/終止結(jié)束位(寫數(shù)據(jù))

  JNB RSF,T0WAL1

  ;SETB CTPIO ;終止結(jié)束位(寫數(shù)據(jù))

  ;SETB TSIO

  MOV P3,#0FFH

  POP A

  POP PSW

  RETI

  T0WAL1:

  ;CLRCTPIO ;寫響應(yīng)位(讀數(shù)據(jù))

  ;CLRTSIO

  MOV P3,#00H

  POP A

  POP PSW

  RETI

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

  INT_T0RA: ;讀響應(yīng)位(寫數(shù)據(jù))寫結(jié)束

  JNB RSF,T0RA2

  JNB CTPIO,T0RA1

  JMP ERROR5

  T0RA1 :

  CLR RSI ;設(shè)置收發(fā)結(jié)束標(biāo)志

  ;CLRSDF ;設(shè)置數(shù)據(jù)已發(fā)送標(biāo)志

  MOV SDATX,STATE

  ;MOVSDATX,#00H

  T0RA2 :

  POP A

  POP PSW

  RETI

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

  INT_T0WAH:;終止響應(yīng)(讀數(shù)據(jù))讀結(jié)束

  JNB RSF,T0WAH1

  JMP ERROR6

  T0WAH1:

  ;SETB CTPIO

  ;SETB TSIO

  MOV P3,#0FFH

  SETBRDF ;設(shè)置有新接收數(shù)據(jù)標(biāo)志

  CLR RSI ;設(shè)置收發(fā)結(jié)束標(biāo)志

  MOV A,RDATX ;處理數(shù)據(jù)

  MOV STATE,A

  CPL A

  MOV P0,A

  CLR RDF ;數(shù)據(jù)已處理,清標(biāo)志

  POP A

  POP PSW

  RETI

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

  ERROR1:

  CLR RSI

  ;SETB CTPIO

  ;SETB TSIO

  MOV P3,#0FFH

  ;MOVP0,#0FEH

  POP A

  POP PSW

  RETI

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

  ERROR2:

  CLR RSI

  ;SETB CTPIO

  ;SETB TSIO

  MOV P3,#0FFH

  ;MOVP0,#0FCH

  POP A

  POP PSW

  RETI

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

  ERROR3:

  CLR RSI

  ;SETB CTPIO

  ;SETB TSIO

  MOV P3,#0FFH

  ;MOVP0,#0F8H

  POP A

  POP PSW

  RETI

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

  ERROR4:

  CLR RSI

  ;SETB CTPIO

  ;SETB TSIO

  MOV P3,#0FFH

  ;MOVP0,#0F0H

  POP A

  POP PSW

  RETI

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

  ERROR5:

  CLR RSI

  ;SETB CTPIO

  ;SETB TSIO

  MOV P3,#0FFH

  ;MOVP0,#0E0H

  POP A

  POP PSW

  RETI

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

  ERROR6:

  CLR RSI

  ;SETB CTPIO

  ;SETB TSIO

  MOV P3,#0FFH

  ;MOVP0,#0C0H

  POP A

  POP PSW

  RETI

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

  DLY2MS:

  MOV DLYD0,#02H

  DLY2MS1:

  MOV DLYD1,#0FFH

  DLY2MS2:

  DJNZDLYD1,DLY2MS2

  DJNZDLYD0,DLY2MS1

  RET

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

  2.從機(jī)源程序

  ;子機(jī)程序

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

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

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

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

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

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

  

  RDATX EQU 22H

  SDATX EQU 23H

  

  STATE EQU 2AH

  

  RSCNT EQU 29H

  

  CTPIO BIT 0B2H

  TSIOBIT 0B3H

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

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

  RSF BIT 02H ;數(shù)據(jù)收發(fā)選擇位

  

  ORG 00H

  AJMPMAIN

  

  ORG 03H

  AJMPI(yíng)NT_X0

  

  ORG 0BH

  AJMPI(yíng)NT_T0

  

  ORG 100H

  MAIN:

  MOV SP,#50H

  MOV SDATX,#00H

  MOV RDATX,#00H

  MOV KBUF0,#00H

  MOV KBUF1,#00H

  MOV KCNT,#00H

  MOV RSCNT,#00H

  MOV 20H,#00H

  MOV TCON,#01H ;下降沿中斷

  MOV P0,#00H

  MOV IE,#81H ;開0

  LOOPX:

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

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

  JMP LOOP



評(píng)論


相關(guān)推薦

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

關(guān)閉