关 闭

新闻中心

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

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

作者: 时间:2008-03-07 来源:网络 收藏
 KCNT,#00H

  KEYRD5:

  RET

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

  INT_T0:

  PUSH

  PUSHA

  JBRSI,INT_T01

  SETBRSI

 RSCNT,#00H

 A



  RETI

  INT_T01 :

 DPTR,#T0_ENTRY

  MOV A,RSCNT

  INC RSCNT

  RLA

  JMP @A+DPTR

  T0_ENTRY:

  AJMPINT_T010;设置开始位

  AJMPINT_T0N0

  AJMPINT_T020;终止开始位

  AJMPINT_T030;读响应

  AJMPINT_T0N0

  AJMPINT_T040;读标志0

  AJMPINT_T0N0

  AJMPINT_T050;读标志1

  AJMPINT_T0W0

  AJMPINT_T0R0

  AJMPINT_T0W1

  AJMPINT_T0R1

  AJMPINT_T0W2

  AJMPINT_T0R2

  AJMPINT_T0W3

  AJMPINT_T0R3

  AJMPINT_T0W4

  AJMPINT_T0R4

  AJMPINT_T0W5

  AJMPINT_T0R5

  AJMPINT_T0W6

  AJMPINT_T0R6

  AJMPINT_T0W7

  AJMPINT_T0R7

  ;AJMP INT_T0W8

  ;AJMP INT_T0R8

  ;AJMP INT_T0W9

  ;AJMP INT_T0R9

  AJMPINT_T0WE;写结束位(写数据)

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

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

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

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

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

  INT_T0N0: ;

 A

  POP

  RETI

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

  INT_T010: ;发送开始位

  ;CLR

  ;CLRTSIO

  MOV P3,#00H

  POP A

  POP PSW

  RETI

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

  INT_T020: ;终止开始位

  ;SETB

  ;SETB TSIO

  MOV P3,#0FFH

  POP A

  POP PSW

  RETI

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

  INT_T030: ;读响应

  JNB,INT_T031

  JMP ERROR1

  INT_T031:

  POP A

  POP PSW

  RETI

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

  INT_T040: ;读标志0

  JBCTPIO,INT_T041

  CLR RSF0;RSF0=0

  POP A

  POP PSW

  RETI

  INT_T041:

  SETBRSF0;RSF0=1

  POP A

  POP PSW

  RETI

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

  INT_T050: ;读标志1

  JBCTPIO,INT_051

  CLR RSF1;RSF1=0

  JBRSF0,INT_052

  JMP ERROR2;RSF:00错

  INT_052 :

  SETBRSF ;RSF:10主发从收

  MOV SDATX,STATE

  POP A

  POP PSW

  RETI

  INT_051 :

  SETBRSF1;RSF1=1

  JNB RSF0,INT_053

  JMP ERROR3;RSF:11错

  INT_053 :

  CLR RSF ;RSF:01主收从发

  POP A

  POP PSW

  RETI

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

  INT_T0W0:

  JNB RSF,T0W02

  JNB SDATX.0,T0W01

  ;SETB CTPIO

  ;SETB TSIO

  MOV P3,#0FFH

  POP A

  POP PSW

  RETI

  T0W01 :

  ;CLRCTPIO

  ;CLRTSIO

  MOV P3,#00H

  T0W02 :

  POP A

  POP PSW

  RETI

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

  INT_T0R0:

  JBRSF,T0R02

  JNB CTPIO,T0R01

  SETBRDATX.0

  POP A

  POP PSW

  RETI

  T0R01 :

  CLR RDATX.0

  T0R02 :

  POP A

  POP PSW

  RETI

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

  INT_T0W1:

  JNB RSF,T0W12

  JNB SDATX.1,T0W11

  ;SETB CTPIO

  ;SETB TSIO

  MOV P3,#0FFH

  POP A

  POP PSW

  RETI

  T0W11 :

  ;CLRCTPIO

  ;CLRTSIO

  MOV P3,#00H

  T0W12 :

  POP A

  POP PSW

  RETI

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

  INT_T0R1:

  JBRSF,T0R12

  JNB CTPIO,T0R11

  SETBRDATX.1

  POP A

  POP PSW

  RETI

  T0R11 :

  CLR RDATX.1

  T0R12 :

  POP A

  POP PSW

  RETI

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

  INT_T0W2:

  JNB RSF,T0W22

  JNB SDATX.2,T0W21

  ;SETB CTPIO

  ;SETB TSIO

  MOV P3,#0FFH

  POP A

  POP PSW

  RETI

  T0W21 :

  ;CLRCTPIO

  ;CLRTSIO

  MOV P3,#00H

  T0W22 :

  POP A

  POP PSW

  RETI

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

  INT_T0R2:

  JBRSF,T0R22

  JNB CTPIO,T0R21

  SETBRDATX.2

  POP A

  POP PSW

  RETI

  T0R21 :

  CLR RDATX.2

  T0R22 :

  POP A

  POP PSW

  RETI

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

  INT_T0W3:

  JNB RSF,T0W32

  JNB SDATX.3,T0W31

  ;SETB CTPIO

  ;SETB TSIO

  MOV 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



评论


相关推荐

技术专区

关闭