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

📄 电子时钟日历led程序.asm

📁 12位的万年历 程序 非常有效 大家快来下啊
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;---------------------------
wr_1302:
     mov     b,#8
wr_1302_0:
     rrc     a
     mov     io,c
     setb    sclk
     sjmp    $+2
     clr     sclk
     djnz    b,wr_1302_0
     ret
;---------------------------
rd_1302:
     mov     b,#8
rd_1302_0:
     setb    sclk
     setb    io
     mov     c,io
     clr     sclk
     rrc     a
     djnz    b,rd_1302_0
     ret
;---------------------------
key0:  jb      Key0Pin,$+8
       mov     Key0Data,#0
       sjmp    $+21h                 ;无键按下,跳
       mov     a,Key0Data
       cjne    a,#0c0h,$+3
       jnc     $+0dh
       add     a,#40h
       mov     Key0Data,a
       cjne    a,#0c0h,$+14
       acall   _Key0Do               ;第一次
       sjmp    $+0fh
       anl     a,#3fh
       djnz    acc,$+7               ;第二次1.3s
       acall   _Key0Do
       mov     a,#10                 ;连键,200ms
       orl     a,#0c0h
       mov     Key0Data,a
       ret
;----------------------------------------
key1:  jb      Key1Pin,$+8
       mov     Key1Data,#0
       sjmp    $+21h                 ;无键按下,跳
       mov     a,Key1Data
       cjne    a,#0c0h,$+3
       jnc     $+0dh
       add     a,#40h
       mov     Key1Data,a
       cjne    a,#0c0h,$+14
       acall   _Key1Do               ;第一次
       sjmp    $+0fh
       anl     a,#3fh
       djnz    acc,$+7               ;第二次1.3s
       acall   _Key1Do
       mov     a,#10                 ;连键,200ms
       orl     a,#0c0h
       mov     Key1Data,a
       ret
;----------------------------------------
key2:  jb      Key2Pin,$+8
       mov     Key2Data,#0
       sjmp    $+21h                 ;无键按下,跳
       mov     a,Key2Data
       cjne    a,#0c0h,$+3
       jnc     $+0dh
       add     a,#40h
       mov     Key2Data,a
       cjne    a,#0c0h,$+14
       acall   _Key2Do               ;第一次
       sjmp    $+0fh
       anl     a,#3fh
       djnz    acc,$+7               ;第二次1.3s
       acall   _Key2Do
       mov     a,#10                 ;连键,200ms
       orl     a,#0c0h
       mov     Key2Data,a
       ret
;----------------------------------------
key3:  jb      Key3Pin,$+8
       mov     Key3Data,#0
       sjmp    $+21h                 ;无键按下,跳
       mov     a,Key3Data
       cjne    a,#0c0h,$+3
       jnc     $+0dh
       add     a,#40h
       mov     Key3Data,a
       cjne    a,#0c0h,$+14
       acall   _Key3Do               ;第一次
       sjmp    $+0fh
       anl     a,#3fh
       djnz    acc,$+7               ;第二次1.3s
       acall   _Key3Do
       mov     a,#10                 ;连键,200ms
       orl     a,#0c0h
       mov     Key3Data,a
       ret
;----------------------------------计算
inc_vale:mov    a,seldata
        cjne    a,#5,inc_vale_1
        inc     year0
        mov     a,year0
        cjne    a,#10,inc_vale_0a
        mov     year0,#0
        inc     year1
        mov     a,year1
        cjne    a,#10,inc_vale_0a
        mov     year1,#0
inc_vale_0a:
        mov     a,year1
        swap    a
        orl     a,year0
        mov     b,#8ch
        acall   wr_cmd
        ajmp    inc_vale_end
inc_vale_1:
        cjne    a,#4,inc_vale_2
        mov     a,month1
        jnz     inc_vale_1b
        inc     month0
        mov     a,month0
        cjne    a,#10,inc_vale_1a
        mov     month0,#0
        mov     month1,#1
        ajmp    inc_vale_1a
inc_vale_1b:
        inc     month0
        mov     a,month0
        cjne    a,#3,inc_vale_1a
        mov     month0,#1
        mov     month1,#0
inc_vale_1a:
        mov     a,month1
        swap    a
        orl     a,month0
        mov     b,#88h
        acall   wr_cmd
        ajmp    inc_vale_end
inc_vale_2:
        cjne    a,#3,inc_vale_3
        mov     a,date1
        cjne    a,#3,inc_vale_2b
        inc     date0
        mov     a,date0
        cjne    a,#2,inc_vale_2a
        mov     date0,#1
        mov     date1,#0
        sjmp    inc_vale_2a
inc_vale_2b:
        inc     date0
        mov     a,date0
        cjne    a,#10,inc_vale_2a
        mov     date0,#0
        inc     date1
inc_vale_2a:
        mov     a,date1
        swap    a
        orl     a,date0
        mov     b,#86h
        acall   wr_cmd
        ajmp    inc_vale_end
inc_vale_3:
        cjne    a,#2,inc_vale_4
        mov     a,hour1
        cjne    a,#2,inc_vale_3b
        inc     hour0
        mov     a,hour0
        cjne    a,#4,inc_vale_3a
        mov     hour0,#0
        mov     hour1,#0
        ajmp    inc_vale_3a
inc_vale_3b:
        inc     hour0
        mov     a,hour0
        cjne    a,#10,inc_vale_3a
        mov     hour0,#0
        inc     hour1
inc_vale_3a:
        mov     a,hour1
        swap    a
        orl     a,hour0
        mov     b,#84h
        acall   wr_cmd
        ajmp    inc_vale_end
inc_vale_4:
        cjne    a,#1,inc_vale_5
        inc     minute0
        mov     a,minute0
        cjne    a,#10,inc_vale_4a
        mov     minute0,#0
        inc     minute1
        mov     a,minute1
        cjne    a,#6,inc_vale_4a
        mov     minute1,#0
inc_vale_4a:
        mov     a,minute1
        swap    a
        orl     a,minute0
        mov     b,#82h
        acall   wr_cmd
        ajmp    inc_vale_end
inc_vale_5:
        inc     second0
        mov     a,second0
        cjne    a,#10,inc_vale_5a
        mov     second0,#0
        inc     second1
        mov     a,second1
        cjne    a,#6,inc_vale_5a
        mov     second1,#0
inc_vale_5a:
        mov     a,second1
        swap    a
        orl     a,second0
        mov     b,#80h
        acall   wr_cmd
inc_vale_end:
        ret
;--------------------------------------------
dec_vale:mov    a,seldata
        cjne    a,#5,dec_vale_1
        dec     year0
        mov     a,year0
        cjne    a,#0ffh,dec_vale_0
        mov     year0,#9
        dec     year1
        mov     a,year1
        cjne    a,#0ffh,dec_vale_0
        mov     year1,#9
dec_vale_0:
        ajmp    inc_vale_0a
dec_vale_1:
        cjne    a,#4,dec_vale_2
        dec     month0
        mov     a,month0
        jnz     dec_vale_1a
        mov     a,month1
        jnz     dec_vale_1b
        mov     month0,#2
        mov     month1,#1
        ajmp    inc_vale_1a
dec_vale_1b:
        dec     month1
        mov     month0,#9
dec_vale_1a:
        ajmp    inc_vale_1a
dec_vale_2:
        cjne    a,#3,dec_vale_3
        mov     a,date1
        jnz     dec_vale_2b
        dec     date0
        mov     a,date0
        cjne    a,#0,dec_vale_2a
        mov     date0,#1
        mov     date1,#3
        sjmp    dec_vale_2a
dec_vale_2b:
        dec     date0
        mov     a,date0
        cjne    a,#0ffh,dec_vale_2a
        mov     date0,#9
        dec     date1
dec_vale_2a:
        ajmp    inc_vale_2a
dec_vale_3:
        cjne    a,#2,dec_vale_4
        dec     hour0
        mov     a,hour0
        cjne    a,#0ffh,dec_vale_3a
        mov     hour0,#9
        dec     hour1
        mov     a,hour1
        cjne    a,#0ffh,dec_vale_3a
        mov     hour0,#3
        mov     hour1,#2
dec_vale_3a:
        ajmp    inc_vale_3a
dec_vale_4:
        cjne    a,#1,dec_vale_5
        dec     minute0
        mov     a,minute0
        cjne    a,#0ffh,dec_vlae_4a
        mov     minute0,#9
        dec     minute1
        mov     a,minute1
        cjne    a,#0ffh,dec_vlae_4a
        mov     minute1,#5
dec_vlae_4a:
        ajmp    inc_vale_4a
dec_vale_5:
        inc     second0
        mov     a,second0
        cjne    a,#0ffh,dec_vlae_5a
        mov     second0,#9
        dec     second1
        mov     a,second1
        cjne    a,#0ffh,dec_vlae_5a
        mov     second1,#5
dec_vlae_5a:
        ajmp    inc_vale_5a

⌨️ 快捷键说明

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