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

📄 dfg-a.asm

📁 采用samsung 9454做的电饭锅的小程序
💻 ASM
📖 第 1 页 / 共 4 页
字号:
                 
dis_f:
                tm      flag,#f_flash
                jr      nz,dis_f1
                ld      dis1,#0d9h      ;E
                ld      dis2,#0f5h       ;0
                ld      dis3,#6dh       ;3
           ;     or      p0,#b_led2
               ; ld      dis4,#10h       ;close green led
                ret
dis_f1:
                ld      dis1,#00h
                ld      dis2,#00h
                ld      dis3,#00h
         ;       or      p0,#b_led2
           ;     ld      dis4,#10h       ;close green led
                ret
                
dis00s:
                ld      dis1,#0f5h       ;00h
                ld      dis2,#0f5h
                ld      dis3,#0f5h
            ;    or      p0,#b_led2
            ;    ld      dis4,#10h       ;close green led
                ret
dis00:
                ld      dis1,#0f5h       ;00h
                ld      dis2,#0f5h
                ld      dis3,#0f5h
ledflash2:
        ret
                tm      flag,#f_flash
                jr      nz,dis00a
;                ld      dis4,#18h
     ;           and     p0,#bn_led2
                ld      dis4,#18h       ;open green led
                ret
dis00a:
                ld      dis4,#10h       ;close green led
         ;       or      p0,#b_led2
                ret
;----------------------
disdelay:
                ld      r7,delayset
                call    numbcon
         ;       or      p0,#b_led2
            ;    ld      dis4,#10h       ;close green led
                ret
;----------------------
disdelay2:
                ld      r7,delayset
                sub     r7,hour
                call    numbcon
         ;       or      p0,#b_led2
          ;      ld      dis4,#10h       ;close green led
                ret
;----------------------
disad:
                ld      r7,wendu
                call    numbcon
                jr      ledflash2 
                ret
diskey:
                ld      r7,keynum
                and     r7,#00000110b
                call    numbcon
         ;      and     p0,#bn_led2
           ;     ld      dis4,#18h       ;open en led
                ret
;----------------------
dishold:
                tm      keyflag,#f_key
                jr      nz,disholda
                tm      ledflag,#f_ledf
                jr      z,disholda
                tm      flag,#f_flash
                jr      nz,disholda
                clr     dis1
                clr     dis2
                clr     dis3
                ret
disholda
                ld      r7,holdset
                call    numbcon
                jr      ledflash2
                ret
;----------------------
dishold2:
                ld      r7,holdset
                sub     r7,min          ;hour
                call    numbcon
          ;      and     p0,#bn_led2
            ;    ld      dis4,#18h       ;open green led
                ret
;----------------------
;155- - - - 》 158
;165- - - - 》 167
;175- - - - 》 176
;185- - - - 》 185
;195- - - - 》 194
;205- - - - 》 203
diswendu:       
                tm      ledflag,#f_ledf
                jr      z,diswendua
                tm      flag,#f_flash
                jr      nz,diswendua
disnot
                clr     dis1
                clr     dis2
                clr     dis3
                ret
diswendua
                cp      wenduset,#w150
                jp      eq,disw150
                cp      wenduset,#w175
                jp      eq,disw175
                cp      wenduset,#w200
                jp      eq,disw200
                cp      wenduset,#w250
                jp      eq,disw250
                cp      wenduset,#w300
                jp      eq,disw300
                cp      wenduset,#w350
                jp      eq,disw350
                cp      wenduset,#w400
                jp      eq,disw400
                jp      disw400
disw150
                ld      dis1,#24h       ;1
                ld      dis2,#0cdh      ;5
                ld      dis3,#0f5h      ;0
                ret
disw175
                ld      dis1,#24h       ;1
                ld      dis2,#64h      ;7
                ld      dis3,#0cdh      ;5
                ret
disw200
                ld      dis1,#79h       ;2
                ld      dis2,#0f5h      ;0
                ld      dis3,#0f5h      ;0
                ret
disw250
                ld      dis1,#79h       ;2
                ld      dis2,#0cdh      ;5
                ld      dis3,#0f5h      ;0
                ret
disw300
                ld      dis1,#6dh       ;3
                ld      dis2,#0f5h      ;0
                ld      dis3,#0f5h      ;0
                ret
disw350
                ld      dis1,#6dh       ;3
                ld      dis2,#0cdh      ;5
                ld      dis3,#0f5h      ;0
                ret
disw400
                ld      dis1,#0ach      ;4
                ld      dis2,#0f5h      ;0
                ld      dis3,#0f5h      ;0
                ret

;----------------------
numbcon:

                clr     r2
                clr     r3
                clr     r4
                clr     r5
                clr     r6
  ;              clr     r7
dsw1:
                cp      r7,#100
                jr      ult,dsw2
                sub     r7,#100
                inc     r3
                jr      dsw1
dsw2:
                cp      r7,#10
                jr      ult,dsw3
                sub     r7,#10
                inc     r5
                jr      dsw2
dsw3:
                ldc     r0,#numc[rr2]
;                cp      r0,#77h
;                jr      ne,dsw3a
;                ld      dis1,#0
;                jr      dsw3b
dsw3a:
                ld      dis1,r0
dsw3b:
                ldc     r0,#numc[rr4]
;                cp      r0,#77h
;                jr      eq,dsw3d
dsw3c:
                ld      dis2,r0         ;2,r0
                jr      dsw4a
dsw3d:
        cp      dis1,#0
        jr      ne,dsw3c
        ld      dis2,#0
dsw4a:
                ldc     r0,#numc[rr6]
                ld      dis3,r0         ;3,r0
                ret
;---------------------
ledset:
                tm      status,#f_heats
                jr      nz,ledflash
                tm      status,#f_holds
                jr      nz,ledhigh
ledlow
                and     ledflag,#fn_led2
                ret
ledflash
                tm      flag,#f_flash
                jr      nz,ledlow
ledhigh
                or      ledflag,#f_led2
                ret
;************************************************	
                
;   display  p0

;************************************************
display:
      ;  jr      display1
                cp      disp,#0
                jr      eq,display1
                cp      disp,#1
                jr      eq,display2
                cp      disp,#2
                jr      eq,display3
                cp      disp,#3
                jr      eq,display4
 ;               cp      disp,#4
 ;               jr      eq,display5
                clr     disp
                ret
display1:
                inc     disp
        ;        or      p0,#00010000b
        ;        or      p2,#00110000b
        and     p0,#11011111b   ;p0.5--led2     
        and     p2,#11101111b   ;p24-dig3
                ld      r0,dis1
                call    disport
                tm      dispt,#00000001b
                jr      z,display1end
                or      p2,#00000010b
display1end
        ;        and     p2,#11101111b   ;p24-dig3
                ret
display2:
                inc     disp
          ;      or      p0,#00010000b
          ;      or      p2,#00110000b
          and     p2,#11011111b  ;p25-dig2
          or  p2,#00010000b
                ld      r0,dis2
                call    disport
                tm      dispt,#00000010b
                jr      z,display2end
                or      p2,#00000010b
display2end
          ;      and     p2,#11011111b  ;p25-dig2
          ;  or  p2,#00010000b
                ret
display3:
                inc     disp

           ;     or      p0,#00010000b
           ;     or      p2,#00110000b
           and     p0,#11101111b   ;p04-dig1
           or   p2,#00100000b
                ld      r0,dis3
                call    disport
                tm      dispt,#00000100b
                jr      z,display3end
                or      p2,#00000010b
display3end
           ;     and     p0,#11101111b   ;p04-dig1
           ;or   p2,#00100000b
                ret
display4:
                ;inc     disp
                clr     disp
           and     p0,#11011111b   ;p0.5--led2
           and     p2,#11011111b   ;p2.6--led1 power
                or      p0,#00010000b
                or      p2,#00110000b
                tm      status,#f_run
                jr      z,display4a
                or      p2,#01000000b   ;p2.6--led1 power
            ;    and     p0,#11011111b   ;p0.5--led2
                tm      ledflag,#f_led2
                jr      z,display4a
                or      p0,#00100000b
display4a
                call    key_scan
                ret
display5:
                clr     disp
;                call    key_scan
                ret
;-------------------
;dis  F A B E G C Dp D
;P2   * A * * G C Dp D
;P0   F * B * * * *  *
;P1                  E
disport
                and     p2,#10110000b
                and     p0,#01011111b
                and     p1,#11111110b
                ld      r1,r0
                and     r1,#01001111b
                or      p2,r1
                ld      r1,r0
                and     r1,#10100000b
                or      p0,r1
                tm      r0,#00010000b
                jr      nz,disport1
                jr      disport2
                ;ret
disport1
                or      p1,#00000001b
disport2
          ;      tm      ledflag,#f_lock
          ;      jr      z,dislock
          ;      or      p2,#00000010b
dislock
                ret

;************************************************		
;   key scan control
;************************************************
key_scan:
          ;      or      p0,#11110000b
          ;      ld      p2,#0
          ;      and     p0,#11101111b
                ld      P2CONL,#10100000b      ;key input
               ; ld      P2CONL,#10101010b       ;bit3,2,1,0   ---10:out; 00:in
                ;ld      P1CON,#10001110b        ;p1.0--out11001010b  	;use ext osc  p1.0,p1.1:onput
                ld      P1CON,#11001101b        ;p1.1--in
                
                nop
                nop
        ;        nop
                ld      keynum,p2
                tm      p1,#00000001b
                jr      nz,sw3set
                and     keynum,#11111011b
                jr      key_scan2
sw3set
                or      keynum,#00000100b
key_scan2
                ld      P2CONL,#10101010b       ;bit3,2,1,0   ---10:out; 00:in
                ld      P1CON,#10001110b      
                ret
;----------------------------------------------                                           
key_jug:

                tm      keyflag,#f_power
                jr      nz,key_end
                tm      flag,#f_wendu_f
                jr      nz,key_end
                tm      status,#f_stop
                jr      nz,key_end

⌨️ 快捷键说明

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