关 闭

新闻中心

EEPW首页>安全与国防>设计应用> 基于AT89C51的单线双机通信协议

基于AT89C51的单线双机通信协议

作者: 时间:2008-03-07 来源:网络 收藏
===============================

  INT_T0W2:

  JNB RSF,T0W22

  JNB SDATX.2,T0W21

  ;SETB

  ;SETB TSIO

 P3,#0FFH

 A



  RETI

  T0W21 :

  CLR

  CLR TSIO

 P3,#00H

  T0W22 :

 A

  POP

  RETI

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

  INT_T0R2:

  JBRSF,T0R22

  JNB,T0R21

  SETBRDATX.2

  POP A

  POP

  RETI

  T0R21 :

  CLR RDATX.2

  T0R22 :

  POP A

  POP PSW

  RETI

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

  INT_T0W3:

  JNB RSF,T0W32

  JNB SDATX.3,T0W31

  ;SETB CTPIO

  ;SETB TSIO

 P3,#0FFH

  POP A

  POP PSW

  RETI

  T0W31 :

  ;CLRCTPIO

  ;CLRTSIO

  MOV P3,#00H

  T0W32 :

  POP A

  POP PSW

  RETI

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

  INT_T0R3:

  JBRSF,T0R32

  JNB CTPIO,T0R31

  SETBRDATX.3

  POP A

  POP PSW

  RETI

  T0R31 :

  CLR RDATX.3

  T0R32 :

  POP A

  POP PSW

  RETI

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

  INT_T0W4:

  JNB RSF,T0W42

  JNB SDATX.4,T0W41

  ;SETB CTPIO

  ;SETB TSIO

  MOV P3,#0FFH

  POP A

  POP PSW

  RETI

  T0W41 :

  ;CLRCTPIO

  ;CLRTSIO

  MOV P3,#00H

  T0W42 :

  POP A

  POP PSW

  RETI

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

  INT_T0R4:

  JBRSF,T0R42

  JNB CTPIO,T0R41

  SETBRDATX.4

  POP A

  POP PSW

  RETI

  T0R41 :

  CLR RDATX.4

  T0R42 :

  POP A

  POP PSW

  RETI

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

  INT_T0W5:

  JNB RSF,T0W52

  JNB SDATX.5,T0W51

  ;SETB CTPIO

  ;SETB TSIO

  MOV P3,#0FFH

  POP A

  POP PSW

  RETI

  T0W51 :

  ;CLRCTPIO

  ;CLRTSIO

  MOV P3,#00H

  T0W52 :

  POP A

  POP PSW

  RETI

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

  INT_T0R5:

  JBRSF,T0R52

  JNB CTPIO,T0R51

  SETBRDATX.5

  POP A

  POP PSW

  RETI

  T0R51 :

  CLR RDATX.5

  T0R52 :

  POP A

  POP PSW

  RETI

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

  INT_T0W6:

  JNB RSF,T0W62

  JNB SDATX.6,T0W61

  ;SETB CTPIO

  ;SETB TSIO

  MOV P3,#0FFH

  POP A

  POP PSW

  RETI

  T0W61 :

  ;CLRCTPIO

  ;CLRTSIO

  MOV 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: ;写结束位(写数据)

  JNB RSF,T0WE1

  ;CLRCTPIO

  ;CLRTSIO

  MOV P3,#00H

  T0WE1 :

  POP A

  POP PSW

  RETI

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

  INT_T0RE: ;读结束位(读数据)

  JBRSF,T0RE1

  JNB CTPIO,T0RE1

  JMP ERROR1

  T0RE1 :

  POP A

  POP PSW

  RETI

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

  INT_T0WAL:;写响应位(读数据)/终止结束位(写数据)

  JNB RSF,T0WAL1

  ;SETB CTPIO

  ;SETB TSIO

  MOV P3,#0FFH

  POP A

  POP PSW

  RETI

  T0WAL1:

  ;CLRCTPIO

  ;CLRTSIO

  MOV P3,#00H

  POP A

  POP PSW

  RETI

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

  INT_T0RA: ;读响应位(写数据)写结束

  JNB RSF,T0RA2

  JNB CTPIO,T0RA1

  JMP ERROR2

  T0RA1 :

  CLR SDF

  ;MOVSDATX,#00H

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

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

  T0RA2 :

  POP A

  POP PSW

  RETI

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

  INT_T0WAH:;终止响应位(读数据)读结束

  JNB RSF,T0WAH1

  JMP ERROR3

  T0WAH1:

  ;SETB CTPIO

  ;SETB TSIO

  MOV P3,#0FFH

  SETBRDF ;设置有新接收数据标志

  MOV A,RDATX ;处理数据

  MOV STATE,A

  JZT0WAH2

  CPL A

  MOV P0,A

  CLR RDF ;数据已处理,清标志

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

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

  POP A

  POP PSW

  RETI

  T0WAH2:

  CLR RDF ;数据无须处理,清标志

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

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

  POP A

  POP PSW

  RETI

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

  ERROR1: ;无结束位

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

  MOV IE,#81H ;开外部中断0

  MOV P0,#0FEH

  ;SETB CTPIO

  ;SETB TSIO

  MOV P3,#0FFH

  POP A

  POP PSW

  RETI

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

  ERROR2: ;无响应位

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

  MOV IE,#81H ;开外部中断0

  MOV P0,#0FCH

  ;SETB CTPIO

  ;SETB TSIO

  M



评论


相关推荐

技术专区

关闭