dcl.asm

来自「at89c51单片机的串口通迅代码」· 汇编 代码 · 共 117 行

ASM
117
字号
        mode data 20H
        N_100ms data 21H
        BUZZ EQU P2.0
        M1 equ p3.2
        M2 equ p3.3
        M3 equ p2.3
        org 0000h
main:   mov mode,#0
        acall buzzer
        mov r0,#10
loop0:  acall del
        djnz r0,loop0
        mov r0,#4
loop1:  acall buzzer
        djnz r0,loop1
start:  mov p2,#10001111B
        mov p0,#0fdh
startA: mov p3,#0ffh
        acall keydown
        acall modecheck
        ajmp startA

keydown:jnb M1,mode1
        jnb M2,mode2
        jnb M3,shutdown
        ret

modecheck:
        mov a,mode
        cjne a,#3,checkA
        ajmp modeA
checkA: cjne a,#2,checkB
        ajmp modeB
checkB: ret

mode1:  mov a,mode
        cjne a,#3,mode1A
        ajmp modeA
mode1A: acall buzzer
        mov p2,#0ffh
        mov p1,#10101010B
        acall del
        mov mode,#3
modeA:  mov p0,#09FH
        clr p2.6
        acall del1
        setb p2.6
        mov p0,#001H
        clr p2.5
        acall del1
        setb p2.5
        mov p0,#003H
        clr p2.4
        acall del1
        setb p2.4
        ret

mode2:  mov a,mode
        cjne a,#2,mode2B
        ajmp modeB
mode2B: acall buzzer
        mov p2,#0ffh
        mov p1,#01010101B
        acall del
        mov mode,#2
modeB:  mov p0,#00DH
        clr p2.6
        acall del1
        setb p2.6
        mov p0,#025H
        clr p2.5
        acall del1
        setb p2.5
        mov p0,#003H
        clr p2.4
        acall del1
        setb p2.4
        ret

shutdown:
        mov a,mode
        cjne a,#1,mode3C
        ajmp modeC
mode3C: acall del
        mov mode,#1
        mov p1,#0ffh
        acall buzzer
modeC:  mov p2,#10001111B
        mov p0,#0fdh
        ret



BUZZER:   MOV R6,255;蜂鸣子程序
BUZZ1:    CPL BUZZ;
          MOV R7,#80;
          DJNZ R7,$;
          DJNZ R6,BUZZ1;
          CLR BUZZ;
	  RET

DEL:     mov r5,#3
SD1:     mov R6,#128
SD2:     mov r7,#160
         djnz r7,$
         djnz r6,SD2
         djnz r5,SD1
         ret

DEL1:
         MOV  R6,#25
 DL2:    MOV  R7,#50
         DJNZ  R7,$
         DJNZ  R6,DL2
         RET
         end

⌨️ 快捷键说明

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