⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ws2051.asm

📁 通过89C2051单片机扩展8051单片机的通信接口
💻 ASM
字号:
;*************************
         W14          EQU    0050H
         W15          EQU    0051H
         TEMP_D       EQU    0052H
         DATE         EQU    0053H
         WR           EQU    0054H
;*************************
	      ORG     0000
              LJMP    TEST_CPU               ;
              ORG     0003H
              PUSH    ACC
              LJMP    EXT0
              ORG     000BH
              PUSH    ACC
              SJMP    TM0_INT
              ORG     0023H
              PUSH    ACC
              LJMP    RXTX
;***********************
TM0_INT:      CLR     P3.3
              NOP
              NOP
              NOP
              NOP
              NOP
              NOP
              SETB    P3.3
TINT0:        POP     ACC
              RETI
;***********************
TEST_CPU:     CLR     EA		     ;
	      MOV     A,#55H		     ;
	      ADD     A,#0AAH		     ;
	      CJNE    A,#0FFH,TEST_CPU	     ;
	      MOV     A,#0AAH		     ;
	      CPL     A 		     ;
	      CJNE    A,#55H,TEST_CPU        ;
	      MOV     A,#0AAH		     ;
	      MOV     B,#55H		     ;
	      MUL     AB 		     ;
	      CJNE    A,#72H,TEST_CPU	     ;
	      MOV     A,#0AAH		     ;
	      MOV     B,#55H		     ;
	      DIV     AB 		     ;
	      CJNE    A,#02H,TEST_CPU	     ;
	      MOV     A,#0FFH		     ;
	      MOV     B,#03H		     ;
	      DIV     AB 		     ;
	      CJNE    A,#55H,TEST_CPU	     ;
;*****************
              MOV     W14,#00H
              MOV     W15,#00H
W_K0:         NOP
              NOP
              NOP
              DJNZ    W14,W_K0
              DJNZ    W15,W_K0
              CLR     EA
              MOV     P1,#0FFH
              MOV     P3,#0FFH
              MOV     PSW,#00H          ;SELECT THE ZERO REGISTOR PART
              MOV     SP,#60H           ;
              MOV     TMOD,#22H         ;AND THE STATE IS RECEIVE
              MOV     SCON,#0D0H         ;
              MOV     TH1,#0E8H         ;The Rate of RS232 is #A0-->300b/s,#D0-->600b/s,#E8-->1200b/s
              MOV     TL1,#0E8H         ;#F4-->2400b/s,#FA-->4800b/s,#FD-->9600b/s
              MOV     IE,#93H    ;RX/TX+INT0
              SETB    TR0
              SETB    TR1
              SETB    IT0
;************************************
MA_0:         NOP
              NOP
              NOP
              NOP
              NOP
              NOP
              NOP
              NOP
              NOP
              NOP
              LJMP     MA_0
;**************************
ANSWER:       CLR      P3.4
              NOP
              NOP
              NOP
              NOP
              NOP
              NOP
              NOP
              NOP
              NOP
              NOP
              SETB     P3.4
              RET
;**************************
PRE_CL0:      MOV      W14,#00H
              CLR      P3.7
              MOV      P1,TEMP_D
PRE1:         JNB      P3.4,PRE2
              NOP
              DJNZ     W14,PRE1        
PRE2:         SETB     P3.7
PRE_RET:      MOV      TEMP_D,#00H
              MOV      P1,#0FFH
              RET
;**************************
EXT0:         NOP
              MOV      TEMP_D,P1
              CLR      P3.4
              NOP
              NOP
              NOP
              NOP
              NOP
              NOP
              SETB     P3.4
              MOV      WR,#08H
              MOV      B,TEMP_D
              MOV      DATE,#00H
ELOP1:        MOV      A,B
              RLC      A
              MOV      B,A
              MOV      A,DATE
              ADDC     A,#00H
              MOV      DATE,A
              DJNZ     WR,ELOP1
              CLR      TB8
              MOV      A,DATE
              RRC      A
              JNC      JUP2
              SETB     TB8       
JUP2:         MOV      SBUF,TEMP_D
              MOV      TEMP_D,#00H
              MOV      P1,#0FFH
              POP      ACC
              RETI
;******************************
RXTX:         JNB     RI,SEND
              CLR     RI
              MOV     TEMP_D,SBUF
              CALL    PRE_CL0
              SJMP    FINISH
SEND:         JNB     TI,FINISH
              CLR     TI
              LCALL   ANSWER
FINISH:       POP     ACC
              RETI
	      END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -