rs232_2.asm

来自「用89S52进行DS1820温度读取程序」· 汇编 代码 · 共 88 行

ASM
88
字号
        SW1        BIT   P2.7
        SW2        BIT   P2.6
        SW3        BIT   P2.5
        SW4        BIT   P2.4
        SW5        BIT   P2.3
        SW6        BIT   P2.2
        KEY        BIT   P3.3
         org 000h
         jmp start
         org 023h
         jmp rs_int
         ORG 100H
   start:MOV   SP ,#40H
         MOV   P1,0FFH      ;INIT
         MOV   P2,0FFH
         MOV   P0,0FFH
         MOV   P3,0FFH
         CLR   KEY
         mov   tmod,#20h
         mov   scon,#50h
         mov   TH1,#0FDH    ;sn=9600b/s-n-1
         MOV   TL1,#0FDH
         SETB   TR1
         SETB   ES
         SETB   EA
WAIT_KEY:JB    KEY,$       ;等候按键!
         JNB   SW1,SW1_OK
         JNB   SW2,SW2_OK
         JNB   SW3,SW3_OK
         JNB   SW4,SW4_OK
         JNB   SW5,SW5_OK
         JNB   SW6,SW6_OK
         JMP   WAIT_KEY
         SW1_OK:  MOV   SBUF,#11111110b
         JNB   TI,$
         CLR   TI
         LCALL  DELAY
         JNB   SW1,$
         JMP   WAIT_KEY
         SW2_OK:  MOV   SBUF,#11111101b
         JNB   TI,$
         CLR   TI
         LCALL  DELAY
         JNB   SW2,$
         JMP   WAIT_KEY
         SW3_OK:  MOV   SBUF,#11111011b
         JNB   TI,$
         CLR   TI
         LCALL  DELAY
         JNB   SW3,$
         JMP   WAIT_KEY
         SW4_OK:  MOV   SBUF,#11110111b
         JNB   TI,$
         CLR   TI
         LCALL  DELAY
         JNB   SW4,$
         JMP   WAIT_KEY
         SW5_OK:  MOV   SBUF,#11101111b
         JNB   TI,$
         CLR   TI
         LCALL  DELAY
         JNB   SW5,$
         JMP   WAIT_KEY
         SW6_OK:  MOV   SBUF,#11011111b
         JNB   TI,$
         CLR   TI
         LCALL  DELAY
         JNB   SW6,$
         JMP   WAIT_KEY
 RS_INT: PUSH  ACC
         PUSH  PSW
         JNB   RI,END_RS
         CLR   RI
         MOV   A,SBUF               ;读接收字节
         MOV   P1,A
END_RS: POP   PSW
        POP   ACC
        RETI
DELAY:  MOV  R7,#30
   D1:  MOV  R6,#20
   D2:  MOV  R5,#248
        DJNZ R5,$
        DJNZ R6,D2
        DJNZ R7,D1
        RET

        END

⌨️ 快捷键说明

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