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

📄 dc082.asm

📁 风扇遥控。挡位
💻 ASM
📖 第 1 页 / 共 5 页
字号:
		bts1		r_waterkeycnt1.7
		jmp		watercheck_ret
		mov_1		r_waterkeycnt1,01111111b
		bclr		b_waterkey_err
watercheck_ret:
        	ret
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
ledkeyscan:
		cpjz		r_keyvalue,no_key
               	b0mov		a,r_keyvalue
               	xor		a,r_keybuf
               	b0bts0		fz
               	jmp		have_key
               	cpjnz		r_keybuf,ledkeyscanret
no_key:
 		clr    		r_keybyte
                mov_2		r_keybuf,r_keyvalue
                bts0		b_keylong
                jmp		ledkeyscanret
                clr    		r_keycnt
                jmp		ledkeyscanret
have_key:
 		incms		r_keycnt
 		nop
 		mov		a,#3;7
 		xor		a,r_keycnt
 		b0bts1		fz
 		jmp		ledkeyscanret
 		bset		b_keyon
ledkeyscanret:		
		ret		
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
read_key:
		b0bts0		b_keylong
		ret
		b0bts1		b_keyon
		ret
		b0bts0		b_keysame
		ret
		bclr		b_keyon
		bset		b_keysame
		b0mov		a,r_keyvalue
		xor		a,#6
		b0bts0		fz
		jmp		deal_keyonoff
		
		b0mov		a,r_keyvalue
		xor		a,#3
		b0bts0		fz
		jmp		deal_keyhum ;关机可开启加湿
		
		bts1		b_run
		ret
		b0mov		a,r_keyvalue
		xor		a,#5
		b0bts0		fz
		jmp		deal_keymode

		

		b0mov		a,r_keyvalue
		xor		a,#1
		b0bts0		fz
		jmp		deal_keyflz

		b0mov		a,r_keyvalue
		xor		a,#4
		b0bts0		fz
		jmp		deal_keytime 

		
		b0mov		a,r_keyvalue
		xor		a,#2
		b0bts0		fz		
		jmp		deal_keysw
		ret
;---------------------------------------------------------------------
deal_keyonoff:
		bts0		b_run
		jmp		deal_speed
		clr		r_zcf_time
		mov_1		r_zcfdispay_cnt,0
		bset		b_run
		bclr		b_settime
		mov_1		r_speedbyte1,1;1节
		mov_1		r_speedbyte_buf,1;显示速度
		clr		r_swbyte
		clr		r_lsw_time
		clr		r_rsw_time  ;开机不摇头
		bclr		b_ion
		mov_1		r_modebyte,1  ;普通风
		mov_1		r_speedbyte2,1;抵挡
		cpjz            r_ad_error,keybuz
		b0bclr      	p_backled;有键按下亮背光
                mov_1		r_backled_cnt,60;亮背光时间为60S
		mov_1		r_buz_count,5
		mov_1		r_buz_time,20
		mov_1		r_buz_timecnt,125
		ret		
;-----------------------------------------------------		
deal_speed:
		bts1		b_zcf
		jmp		deal_speed30
		b0mov		a,r_speedbyte1
		xor		a,#9
		b0bts0		fz
		jmp		deal_speed10
		incms		r_speedbyte1
		nop
		mov_2		r_speedbyte_buf,r_speedbyte1
		jmp		deal_speed20
deal_speed10:
		mov_1		r_speedbyte1,1
		mov_1		r_speedbyte2,1
		mov_1		r_speedbyte_buf,1
		jmp		keybuz
deal_speed20:
		b0mov		a,r_speedbyte1
		sub		a,#4
		b0bts1		fc
		jmp		keybuz		;<4
		b0mov		a,r_speedbyte1
		sub		a,#7
		mov		a,#4		;>=7高档
		b0bts1		fc
		mov		a,#2    	;3<speedbyte1<7中档
		b0mov		r_speedbyte2,a
		jmp		keybuz
deal_speed30:
		b0bclr		fc		;自然、睡眠风时按SPEED键为高中低自然、睡眠风
		rlcm		r_speedbyte2
		bts1		b_nospeed
		jmp		deal_keymode10
		mov_1		r_speedbyte2,1
		jmp		deal_keymode10
;--------------------------------------------------------
deal_keysw:
                clr		r_time_1s
		;bset		b_start_sw   	;按摇头键置开始往左摇头标志
		mov_1		r_swdelay,1	;按下摇头键1秒后开始摇头
		clr		r_rsw_time
		cpjnz		r_swbyte,deal_sw10
		mov_1		r_swbyte,1
		mov_1		r_lsw_time,8;4	;按摇头后先左摇头4秒90度
		mov_2		r_lsw_timebuf,r_lsw_time
		jmp		keybuz
deal_sw10:
		b0bclr		fc
		rlcm		r_swbyte
		bts1		b_nosw
		jmp		deal_sw20
		clr		r_lsw_time      ;取消摇头
		clr		r_swbyte
		jmp		keybuz
deal_sw20:
		mov		a,#16;8		;16秒180
		bts1		b_sw180 
		mov		a,#30;15	;30秒360
		b0mov		r_lsw_time,a
		b0mov		r_lsw_timebuf,a
		jmp		keybuz
;-----------------------------------------------------------
deal_keytime:
		bset		b_settime
		cpjz		r_settime,deal_keytime40;r_settime显示上一次时间
 		b0mov		a,r_timebyte2
 		cmprs		a,#18
 		jmp		deal_keytime10
 		clr		r_timebyte1
 		clr		r_timebyte2
 		jmp		deal_keytime30
deal_keytime10:
		b0mov		a,r_timebyte1
		cmprs		a,#0
		jmp		deal_keytime20
		mov_1		r_timebyte1,30
		jmp		deal_keytime30
deal_keytime20:
		incms		r_timebyte2
		nop
		clr		r_timebyte1
deal_keytime30:
		mov_1		r_settime,4
		mov_2		r_timebyte1_buf,r_timebyte1
		mov_2		r_timebyte2_buf,r_timebyte2
		jmp		deal_keytime50
deal_keytime40:
		mov_1		r_settime,4
		mov_2		r_timebyte1,r_timebyte1_buf
		mov_2		r_timebyte2,r_timebyte2_buf

deal_keytime50:		
		clr     	r_flashcnt;闪烁时间寄存器
                clr		r_time_sec
                clr 		r_time_min
                clr		r_time_2s
		jmp		keybuz
;-----------------------------------------------------------------
deal_keyhum:
                mov		a,#00000100b
		xor		r_sysflag,a
		bts0		b_waterkey_err
		clr		r_flashcnt1
		bts1		b_hum
		bts0		b_run
		jmp		keybuz
		b0bset		p_backled
		jmp		keybuz10
;---------------------------------------------------------
deal_keyflz:
		mov		a,#00000010b
		xor		r_sysflag,a
		jmp		keybuz
;---------------------------------------------------
deal_keymode:
		b0bclr		fc
		rlcm		r_modebyte
		bts1		b_nomode
		jmp		deal_keymode10
		mov_1		r_modebyte,1
		mov		a,#0
		bts0		b_lowspeed
		mov		a,#3
		bts0		b_midspeed
		mov		a,#6
		bts0		b_higspeed
		mov		a,#9
		nop
		b0mov		r_speedbyte1,a
		b0mov		r_speedbyte_buf,a
		jmp		keybuz
deal_keymode10:
		mov_1		r_BreezeByte,1
		clr		r_BreezeByte1
		mov       	a,#c_time5s;高速下先中档运行5s
          	bts0            b_higspeed
          	mov             r_timer_fanrun,a 
          	bts0       	b_higspeed
          	jmp       	deal_keymode20
                mov       	a,#c_time1s;中速先运行1s
                bts0        	b_midspeed
                mov       	r_timer_fanrun,a
                bts0        	b_midspeed
                jmp       	deal_keymode20
                mov       	a,#c_time4s;低速先运行4s
                mov       	r_timer_fanrun,a 
deal_keymode20:          	
          	bts1            b_smf
          	jmp             deal_modekey40
deal_modekey60:          	
                clr		r_Time30MinCnt;睡眠风先清运行30分钟寄存器
          	;bclr  	  	b_time_60s
          	clr		r_time_60s
          	bts0        	b_lowspeed	
          	jmp       	deal_modekey40	;低速睡眠风
          	bts0        	b_midspeed
          	jmp       	deal_modekey50	;中速睡眠风
          	bts1       	b_higspeed
          	jmp       	deal_modekey_end
          
          	mov       	a,#11110000b
          	and      	r_Usertrigger,a
          	mov       	a,#00000010b	;高速睡眠风
          	or       	r_Usertrigger,a
          	jmp       	deal_modekey_end
deal_modekey50:
                mov       	a,#11110001b
          	and      	r_Usertrigger,a
          	jmp       	deal_modekey_end
deal_modekey40:
                mov       	a,#11110000b	;低速睡眠风为低档自然风
          	and     	r_Usertrigger,a
deal_modekey_end:
		jmp		keybuz
keybuz:
		b0bclr      	p_backled;有键按下亮背光
                mov_1		r_backled_cnt,30;亮背光时间为60S
keybuz10:                
		bts0		b_keylong1
		ret
 		bts0		b_keylong
 		ret
 		mov_1		r_buz_time,c_buz_short
 		ret
zero_deal:
		b0mov		y,#tabel_stoptime$m
		b0mov		z,#tabel_stoptime$l
		b0mov		a,r_speedbyte1
		b0add		z,a
		movc
		nop
		b0mov		r_timezero_buf,a
		ret
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
read_keylong:
		mov		a,r_keycnt
		sub		a,#50;135	;1.5s长按
		b0bts1		fc
		jmp		read_keylongret
		mov       	a,r_keyvalue
		xor		a,#4
		b0bts1		fz
		jmp		read_keylong10
		bset		b_keylong
		mov_1		r_keycnt,40;110
		jmp		deal_keytime
read_keylong10:
		mov		a,r_keycnt
		sub		a,#94;250	  ;3s长按
		b0bts1		fc
		jmp		read_keylongret
		mov       	a,r_keyvalue
		xor		a,#6
		b0bts1		fz
		jmp		read_keylongret
		bset		b_keylong
		mov_1		r_keycnt,95;251
read_keylong20:		
		bclr		b_run	;关机
		bclr		b_hum   ;关加湿
		b0bset		p_backled
		b0mov     	a,r_speedbyte1
                sub     	a,#7        ;速度是否≥7节
                b0bts1     	fc
                jmp		read_keylong30
                bset		b_offdelay
                jmp		read_keylongret
read_keylong30:                
                clr		r_speedbyte1;小于7直接关机
                
read_keylongret:
		ret
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
ad_deal:
		;b0bset		fadenb
		;call            dealy100us
		;mov_1		p4con,03h
		;mov_1		adr,01010000b
		mov_1		adm,10010001b		;通道1
		;b0bset		adm.0
		clr		r_keyvalue
		nop
		nop
		nop
		b0bset		fads
ad_wait00:		
		b0bts1		feoc
		jmp		ad_wait00
		b0bclr		fadenb
		b0mov		a,adb
		b0mov		r_keyad_buf,a
		sub		a,#240
		b0bts0		fc
		jmp		ad_dealend	;ad值大于240无按键按下
check_key:		
		b0mov		a,r_keyvalue
		sub		a,#6
		b0bts0		fc
		jmp		ad_dealkey10;查6次以后还未查到退出
		incms		r_keyvalue
		nop
		b0mov		y,#table_key$m
		b0mov		z,#table_key$l
		b0mov		a,r_keyvalue
		b0add		z,a
		nop
		movc
		sub		a,r_keyad_buf
		b0bts1		fc
		jmp		check_key
		jmp		ad_dealend
ad_dealkey10:
		clr		r_keyvalue
ad_dealend:		
		ret
;---------------------------------------------------------		
ad_temp:
		b0bset		fadenb
		call            dealy100us
		mov_1		p4con,03h
		mov_1		adr,01010000b
		mov_1		adm,90h		;通道0温度
		nop
		nop
		nop
		b0bset		fads
ad_wait:
		b0bts1     	feoc           ;To skip,if end of converting=1
		jmp		ad_wait
		b0bclr		fadenb
		b0mov		a,adb
		add		r_ad_buf_low,a
		mov            	a,#0
		adc		r_ad_buf_hig,a
		incms		r_adc_sp	;加256次AD值在r_ad_buf_hig
		ret
		
		b0mov		a,r_ad_buf_hig
		sub		a,#5
		b0mov		r_ad_buf_hig,a;误差
		sub		a,#245
		b0bts1		fc
		jmp		ad_deal10
		bts0		b_offerr
		jmp		ad_deal_ret
		bset		b_offerr
ad_buz:		
		bts1		b_run
		jmp		ad_deal_ret
		mov_1		r_buz_count,5
		mov_1		r_buz_time,20
		mov_1		r_buz_timecnt,125
		jmp		ad_deal_ret
ad_deal10:
		b0mov		a,r_ad_buf_hig
		sub		a,#10
		b0bts0		fc
		jmp		ad_deal20
		bts0		b_openerr
		jmp		ad_deal_ret
		bset		b_openerr
		jmp		ad_buz
ad_deal20:
		clr		r_ad_error
		bts0		b_f
		jmp		ad_deal40
		b0mov		a,r_ad_buf_hig
		sub		a,#55   ;------------
		b0bts0		fc
		jmp		ad_deal30
		mov_1		r_adtemp,15
		jmp		ad_deal_ret
ad_deal30:

⌨️ 快捷键说明

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