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

📄 dfg-a.asm

📁 采用samsung 9454做的电饭锅的小程序
💻 ASM
📖 第 1 页 / 共 4 页
字号:
                ;ld      r0,keynum
                and     keynum,#00000111b
                cp      keynum,keytemp
                jr      eq,key_jug1
                ld      keytemp,keynum  ;r0
            ;    clr     keytime
            ;    clr     key3s
            ;    and     keyflag,#fn_key
                ret
key_jug1:
                cp      keynum,#00000111b
                jr      eq,key_int
               ; ld      key3min,#2      ;180
                tm      keyflag,#f_key
                jp      nz,key_long     ;key_end
                inc     keytime
                cp      keytime,#30     ;10
                jr      ult,key_end
                or      keyflag,#f_key
                ld      key3min,#180
                
                tm      keynum,#00000100b
                jr      z,key1
                tm      keynum,#00000001b
                jp      z,key2
                tm      keynum,#00000010b
                jp      z,key3
            ;  and     keyflag,#fn_key
key_end:                
                ret
key_int
                clr     keytime
                clr     key3s
                and     keyflag,#fn_key
                ret
;-----------------------
key_long:
                ld      settime,#5
                ld      key3min,#180
                cp      keynum,#00000011b
                jr      eq,keylong1
                cp      keynum,#00000101b
                jr      eq,keylong2
                cp      keynum,#00000001b
                jr      eq,keylong12
                jr      key_end
keylong1
                cp      key3s,#15       ;20
                jr      ult,key_end
                clr     key3s
                tm      ledflag,#f_lock
                jr      nz,keylong1a
                or      ledflag,#f_lock
                call    buzz
                ret
keylong1a
                and     ledflag,#fn_lock
                call    buzz
                ret
keylong2
                cp      key3s,#15       ;20
                jr      ult,key_end
            ;    clr     key3s
                inc     key20ms
                cp      key20ms,#250
                jp      ult,key_end
                clr     key20ms
                inc     holdset
                ld      key2s,#20               ;flash 2s
                cp      holdset,#120
                jr      ule,keylong2a
                clr     holdset
keylong2a
                ret
keylong12
                cp      key3s,#20
                jr      ult,key_end
                clr     key3s
                tm      ledflag,#f_buz
                jr      nz,keylong12a
                or      ledflag,#f_buz
                call    buzz
                ret
keylong12a
                and     ledflag,#fn_buz
                ret
;---------------------------设定温度----- 
key1:
                tm      ledflag,#f_lock
                jr      z,key1start
                ret
key1start
                ld      settime,#5
                ld      key2s,#20               ;flash 2s
                tm      flag2,#f_setw
                jr      nz,key1b
                or      flag2,#f_setw
                and     flag2,#fn_setd
                and     flag2,#fn_seth
                jr      key1end
                ;ret
key1b:
           ;     or      status,#f_heats
           ;     and     status,#fn_holds
                tm      status,#f_holds
                jr      z,key1b2
                or      flag2,#f_hs
key1b2:
;-----------------
                cp      wenduset,#w150
                jr      eq,key1150
                cp      wenduset,#w175
                jr      eq,key1175
                cp      wenduset,#w200
                jr      eq,key1200
                cp      wenduset,#w250
                jr      eq,key1250
                cp      wenduset,#w300
                jr      eq,key1300
                cp      wenduset,#w350
                jr      eq,key1350
                cp      wenduset,#w400
                jr      eq,key1400
                ld      wenduset,#w150
                jp      key1end
key1150
                ld      wenduset,#w175
                jp      key1end
key1175
                ld      wenduset,#w200
                jp      key1end
key1200
                ld      wenduset,#w250
                jp      key1end
key1250
                ld      wenduset,#w300
                jp      key1end
key1300
                ld      wenduset,#w350
                jp      key1end
key1350
                ld      wenduset,#w400
                jp      key1end
key1400
                ld      wenduset,#w150
                jp      key1end

;--------------------
                cp      wenduset,#250   ;400   ;  
                jr      uge,key1a
                cp      wenduset,#50    ;200
                jr      uge,key1c
                add     wenduset,#25
                jr      key1end
                ;ret
key1c           
                add     wenduset,#50
                jr      key1end
                ;ret
key1a:
                ld      wenduset,#0     ;150
                jr      key1end
                ;ret
key1end
                call    buzz
                ret
;---------------------------预约时间----- 
key2:
                tm      status,#f_run
                jr      nz,key2_run
                or      status,#f_run
                jr      key2_end
key2_run
                and     status,#fn_run
                jr      key2_end
                
;                tm      status,#f_heats^f_holds
;                jr      nz,key2_end
;                ld      settime,#5
;                tm      flag2,#f_setd
;                jr      nz,key2b
;                or      flag2,#f_setd
;                and     flag2,#fn_setw
;                and     flag2,#fn_seth
;                ret
;key2b:
;                cp      delayset,#24
;                jr      uge,key2a
;                inc     delayset
;                ret
;key2a:
;                clr     delayset 
key2_end:
                call    buzz
                ret
;---------------------------保温时间------ 
key3:
                tm      ledflag,#f_lock
                jr      z,key3start
                ret
key3start
                ld      settime,#5
                tm      flag2,#f_seth
                jr      nz,key3b
                or      flag2,#f_seth
                and     flag2,#fn_setd
                and     flag2,#fn_setw
                call    buzz
                ret
key3b:
                tm      status,#f_delay
                jr      nz,key3b_c
                clr     min
                clr     hour
                call    key3b_c
                call    buzz
                ret
key3b_c:
                cp      holdset,#1
                jr      eq,key3b1
                cp      holdset,#5
                jr      eq,key3b2
                cp      holdset,#10
                jr      eq,key3b3
                cp      holdset,#15
                jr      eq,key3b4
                cp      holdset,#20
                jr      eq,key3b5
                cp      holdset,#30
                jr      eq,key3b6
                cp      holdset,#60
                jr      eq,key3b7
                cp      holdset,#90
                jr      eq,key3b8
                cp      holdset,#120
                jr      eq,key3b9
                inc     holdset
                ld      key2s,#20               ;flash 2s
                jp      key3end
                ;ret
key3b1
                ld      holdset,#5
                jp      key3end
key3b2
                ld      holdset,#10
                jp      key3end
key3b3
                ld      holdset,#15
                jp      key3end
key3b4
                ld      holdset,#20
                jp      key3end
key3b5
                ld      holdset,#30
                jp      key3end
key3b6
                ld      holdset,#60
                jp      key3end
key3b7
                ld      holdset,#90
                jp      key3end
key3b8
                ld      holdset,#120
                jp      key3end
key3b9 
                ld      holdset,#1
                jp      key3end
key3end
            ;    call    buzz
                ret
                


;************************************************
;   Delay Subroutine				*
;************************************************
ad_delay:    

		push	r1	
                ld      r1,#22
d40:		nop
                dec     r1
                jr      nz,d40
		pop	r1		
                ret		
;************************************************
;---ad convert-----
;************************************************
wendu_jug:
                tm      flag,#f_wen
                jr      nz,wendu_jug2
                ret
wendu_jug2:
                and     flag,#fn_wen
                call    wendu_ad
                
      ;          ld      wendu,r2
      ;          ret
                
                tm      flag,#f_wendu_f
                jr      nz,wendu_end
                rcf
                rrc     r2
                rcf
                rrc     wendu
                add     wendu,r2
wendu_end:
                ret
;--------------------------------------------------
wendu_ad:

                ld      adcon,#00010100b
                call    adconvert
                cp      r0,#115         ;20
                jr      ult,ad_era
                cp      r0,#250
                jr      ugt,ad_era
;                and     flag,#fn_wendu_f
                sub     r0,#tj_ad       ;20                  ;test 
                ld     r2,r0
                ret
ad_era:
                or      flag,#f_wendu_f
                ret
;---------------------------------------------------
ad_con:
                call    ad_delay
                or      adcon,#01h
ad_conver:
                tm      adcon,#00001000b
                jr      z,ad_conver
                ld      r0,addatah
                ret
;--------------------------------------------------
adconvert:
                call    ad_con
                ld      r1,r0
                call    ad_delay
                call    ad_con
                ld      r2,r0
                call    ad_delay
                call    ad_con
                ld      r3,r0
aver:
                cp      r1,r2
                jr      ult,aver1
                ld      r0,r1
                ld      r1,r2
                ld      r2,r0
aver1:
                cp      r2,r3
                jr      ult,aver2
                ld      r0,r2
                ld      r2,r3
                ld      r3,r0
aver2:
                cp      r1,r2
                jr      ult,aver3
                ld      r0,r1
                ld      r1,r2
                ld      r2,r0
aver3:
                ld      r0,r2
                ret
;************************************************

                
		END

⌨️ 快捷键说明

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