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

📄 keysmanagement.asm

📁 自制单片机实验板.rar
💻 ASM
📖 第 1 页 / 共 2 页
字号:
                        inc     r1
                        mov     a,@r1                       ;十时
                        swap    a
                        orl     a,b
                        mov     @r0,a
                        call    timer_write
                        call    beep1
                        setb    digital_bit
                        setb    ex0
                        ret

keys_manage_101:        mov     aleart_byte,#0              ;清除状态
                        mov     r0,#4
                        mov     a,#digital_byte
                        add     a,#3
                        mov     r1,a
keys_manage_102:        mov     a,@r1
                        clr     acc.7
                        mov     @r1,a
                        dec     r1
                        djnz    r0,keys_manage_102
                        mov     r0,#digital_byte
                        mov     r1,#aleart_data
                        mov     a,@r0
                        anl     a,#0fh
                        mov     b,a
                        inc     r0
                        mov     a,@r0
                        anl     a,#0fh
                        swap    a
                        orl     a,b
                        mov     @r1,a
                        inc     r1
                        inc     r0
                        mov     a,@r0
                        anl     a,#0fh
                        mov     b,a
                        inc     r0
                        mov     a,@r0
                        anl     a,#0fh
                        swap    a
                        orl     a,b
                        mov     @r1,a
                        call    beep1
                        setb    digital_bit
                        setb    ex0
                        ret

;*****************************************************
;3键处理
;*****************************************************

keys_manage_3:          call    beep1
                        mov     r0,#digital_byte            ;调节闪烁位置的数值
                        mov     r1,#8
keys_manage_30:         mov     a,@r0
                        jb      acc.7,keys_manage_31
                        inc     r0
                        djnz    r1,keys_manage_30
                        setb    digital_bit
                        ret
keys_manage_31:         anl     a,#0f0h
                        mov     b,a
                        mov     a,@r0
                        anl     a,#0fh
                        cjne    a,#9,keys_manage_32
                        mov     a,b
                        mov     @r0,a
                        inc     r0
                        djnz    r1,keys_manage_30
                        setb    digital_bit
                        reti
keys_manage_32:         mov     a,@r0
                        inc     a
                        mov     @r0,a
                        inc     r0
                        djnz    r1,keys_manage_30
                        setb    digital_bit
                        ret

;*****************************************************
;4键处理
;*****************************************************

keys_manage_4:          clr     ex0
                        call    beep1
                        mov     a,digital_flash_bit         ;若目前处于时间设置状态则提示并退出
                        jnb     acc.7,keys_manage_400
                        call    beep2
                        setb    digital_bit
                        setb    ex0
                        ret
keys_manage_400:        mov     a,aleart_byte               ;设置目前处于闹钟设置状态
                        setb    acc.7
                        mov     aleart_byte,a
                        anl     a,#0fh
                        cjne    a,#0,keys_manage_40
                        jmp     keys_manage_49             ;将闹钟数据进行显示
keys_manage_40:         cjne    a,#1,keys_manage_41
                        jmp     keys_manage_45             ;第一位数字闪烁
keys_manage_41:         cjne    a,#2,keys_manage_42
                        jmp     keys_manage_46             ;第二位数字闪烁
keys_manage_42:         cjne    a,#3,keys_manage_43
                        jmp     keys_manage_47             ;第三位数字闪烁
keys_manage_43:         cjne    a,#4,keys_manage_44
                        jmp     keys_manage_48             ;第四位数字闪烁
keys_manage_44:         call    beep2
                        setb    digital_bit
                        setb    ex0
                        ret

keys_manage_45:         mov     a,#digital_byte             ;第一位数字闪烁
                        add     a,#3
                        mov     r0,a
                        mov     a,@r0
                        setb    acc.7
                        mov     @r0,a
                        mov     r0,#digital_byte
                        mov     a,@r0
                        clr     acc.7
                        mov     @r0,a
                        inc     aleart_byte                 ;指向下一位数据
                        setb    digital_bit
                        ret

keys_manage_46:         mov     a,#digital_byte             ;第二位数字闪烁
                        add     a,#2
                        mov     r0,a
                        mov     a,@r0
                        setb    acc.7
                        mov     @r0,a
                        mov     a,#digital_byte
                        add     a,#3
                        mov     r0,a
                        mov     a,@r0
                        clr     acc.7
                        mov     @r0,a
                        inc     aleart_byte                 ;指向下一位数据
                        setb    digital_bit
                        ret

keys_manage_47:         mov     a,#digital_byte             ;第三位数字闪烁
                        add     a,#1
                        mov     r0,a
                        mov     a,@r0
                        setb    acc.7
                        mov     @r0,a
                        mov     a,#digital_byte
                        add     a,#2
                        mov     r0,a
                        mov     a,@r0
                        clr     acc.7
                        mov     @r0,a
                        inc     aleart_byte                 ;指向下一位数据
                        setb    digital_bit
                        ret

keys_manage_48:         mov     r0,#digital_byte            ;第四位数字闪烁
                        mov     a,@r0
                        setb    acc.7
                        mov     @r0,a
                        mov     a,#digital_byte
                        add     a,#1
                        mov     r0,a
                        mov     a,@r0
                        clr     acc.7
                        mov     @r0,a
                        mov     a,aleart_byte               ;指向第一位数据
                        anl     a,#0f0h
                        inc     a
                        mov     aleart_byte,a
                        setb    digital_bit
                        ret

keys_manage_49:         mov     r0,#digital_byte            ;将闹钟数据进行显示
                        mov     r1,#aleart_data
                        mov     a,@r1
                        anl     a,#0fh
                        mov     @r0,a
                        inc     r0
                        mov     a,@r1
                        swap    a
                        anl     a,#0fh
                        mov     @r0,a
                        inc     r0
                        inc     r1
                        mov     a,@r1
                        anl     a,#0fh
                        mov     @r0,a
                        inc     r0
                        mov     a,@r1
                        swap    a
                        anl     a,#0fh
                        mov     @r0,a
                        inc     r0
                        mov     @r0,#20h
                        inc     r0
                        mov     @r0,#20h
                        inc     r0
                        mov     @r0,#20h
                        inc     r0
                        mov     @r0,#20h
                        inc     aleart_byte
                        jmp     keys_manage_45

⌨️ 快捷键说明

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