關 閉

        新聞中心

        EEPW首頁 > 安全與國防 > 設計應用 > 基于AT89C51的單線雙機通信協議

        基于AT89C51的單線雙機通信協議

        作者: 時間:2008-03-07 來源:網絡 收藏
        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: ;寫結束位(寫數據)

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

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

          T0RA1 :

          CLR RSI ;設置收發結束標志

          ;CLRSDF ;設置數據已發送標志

          MOV SDATX,STATE

          ;MOVSDATX,#00H

          T0RA2 :

          POP A

          POP PSW

          RETI

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

          INT_T0WAH:;終止響應(讀數據)讀結束

          JNB RSF,T0WAH1

          JMP ERROR6

          T0WAH1:

          ;SETB CTPIO

          ;SETB TSIO

          MOV P3,#0FFH

          SETBRDF ;設置有新接收數據標志

          CLR RSI ;設置收發結束標志

          MOV A,RDATX ;處理數據

          MOV STATE,A

          CPL A

          MOV P0,A

          CLR RDF ;數據已處理,清標志

          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.從機源程序

          ;子機程序

          KBUF0 EQU 24H ;鍵值臨時緩沖

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

          KCNTEQU 26H ;鍵盤重復計數

          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 ;有數據發送標志

          RDF BIT 01H ;有接收數據標志

          RSF BIT 02H ;數據收發選擇位

          

          ORG 00H

          AJMPMAIN

          

          ORG 03H

          AJMPINT_X0

          

          ORG 0BH

          AJMPINT_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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 镇原县| 建宁县| 莎车县| 昭通市| 澎湖县| 安阳市| 共和县| 泸定县| 霍城县| 丰顺县| 招远市| 榆社县| 南皮县| 丘北县| 潮州市| 扎鲁特旗| 莆田市| 兴城市| 洛川县| 瑞金市| 班戈县| 五寨县| 平果县| 玉田县| 诸城市| 天等县| 昌吉市| 昌图县| 饶河县| 宁都县| 博罗县| 茂名市| 平江县| 自贡市| 江安县| 上饶县| 安达市| 乳源| 平江县| 龙泉市| 务川|