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

📄 dc082.asm

📁 风扇遥控。挡位
💻 ASM
📖 第 1 页 / 共 5 页
字号:
		b0mov		a,r_ad_buf_hig
		sub		a,#140
		b0bts1		fc
		jmp		ad_deal60
		mov_1		r_adtemp,50
		jmp		ad_deal_ret
ad_deal40:
		b0mov		a,r_ad_buf_hig
		sub		a,#37   ;------------
		b0bts0		fc
		jmp		ad_deal50
		mov_1		r_adtemp,41
		jmp		ad_deal_ret
ad_deal50:
		b0mov		a,r_ad_buf_hig
		sub		a,#110   ;------------
		b0bts1		fc
		jmp		ad_deal60
		mov_1		r_adtemp,99
		jmp		ad_deal_ret		
ad_deal60:
                clr		r_adtemp_buf
ad_temptab:    
                bts1		b_f
                jmp		ad_temptab10
		b0mov		y,#tabeltemp_f$m
		b0mov		z,#tabeltemp_f$l
		jmp		ad_temptab20
ad_temptab10:
                b0mov		y,#tabeltemp_c$m
		b0mov		z,#tabeltemp_c$l
ad_temptab20:		
                b0mov   	a,r_adtemp_buf
                b0add   	z,a
     		b0bts1  	fc 
     		jmp     	getdata1
     		incms  		y
     		nop		
getdata1:
     		movc
     		nop
     		b0bset		fc
     		sbc    		a,r_ad_buf_hig;
     		b0bts0  	fc
     		jmp     	getdata2
     		incms   	r_adtemp_buf;加一表示温度增加1度,buf1存的是温度值
     		nop
     		jmp     	ad_temptab
getdata2:
     		mov_2		r_adtemp,r_adtemp_buf;查到温度数保存
ad_deal_ret:   
                clr         	r_ad_buf_hig
                clr		r_ad_buf_low
     		ret
dealy100us:
		nop
		nop
		nop
		incms         	r_ad_delaycnt
		nop
		bts1	      	r_ad_delaycnt.7
		jmp		dealy100us
		clr 		r_ad_delaycnt
		ret

;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
displaydata:
		clr		r_ledbyte1buf
		clr		r_ledbyte2buf
		clr		r_ledbyte3buf
		clr		r_ledbyte4buf
		clr		r_ledbyte5buf
		clr		r_ledbyte6buf
		clr		r_ledbyte7buf
		clr		r_ledbyte8buf
		clr		r_ledbyte9buf
		bts1		b_run
		jmp		displaydata110;未开机时加湿是否开启
;------------------时间显示数据----------------
		bts1		b_settime
		jmp		displaydata30
		cpjz		r_settime,displaydata10
		b0mov		a,r_flashcnt
		sub		a,#128
		b0bts0		fc
		jmp		displaydata30
		jmp		displaydata20
displaydata10:	
                cpjnz           r_timebyte1,displaydata20
                cpjnz		r_timebyte2,displaydata20
                jmp		displaydata30;无时间设置
displaydata20: 
		
		b0mov		a,r_timebyte1
		call		hextodec
		b0mov		y,#tabel_8$m
		b0mov		z,#tabel_8$l
		b0mov		a,r_disdata1
		b0add		z,a
		nop
		movc
		nop
		b0mov		r_ledbyte5buf,a
		
                b0mov		y,#tabel_88$m
		b0mov		z,#tabel_88$l
		b0mov		a,r_disdata0
		b0add		z,a
		nop
		movc
		nop
		b0mov		r_ledbyte8buf,a
		
		b0mov		a,r_timebyte2
		call		hextodec
		b0mov		y,#tabel_8$m
		b0mov		z,#tabel_8$l
		b0mov		a,r_disdata1
		b0add		z,a
		movc
		nop
		b0mov		r_ledbyte3buf,a
		
		b0mov		y,#tabel_8$m
		b0mov		z,#tabel_8$l
		b0mov		a,r_disdata0
		b0add		z,a
		movc
		nop
		b0mov		r_ledbyte4buf,a
		b0mov		a,r_flashcnt
		sub		a,#128
		b0bts1		fc
		bset		lcd_col
;--------------------温度显示-----------------		
displaydata30:
		cpjz		r_ad_error,dispalydata50
		bts1		b_offerr
		jmp		displaydata40
		mov_1		r_ledbyte7buf,01110110b;H
	        mov_1		r_ledbyte6buf,01010000b;i
	        jmp             displaydata60
displaydata40:
		mov_1		r_ledbyte7buf,10000110b;L
	        mov_1		r_ledbyte6buf,11010111b;o
		jmp             displaydata60
dispalydata50:
		b0mov		a,r_adtemp
		call		hextodec
		b0mov		y,#tabel_888$m
		b0mov		z,#tabel_888$l
		b0mov		a,r_disdata1
		b0add		z,a
		b0bts1  	fc 
     		jmp     	dispalydata50_00
     		incms  		y
     		nop		
dispalydata50_00:
		movc
                nop
                b0mov		r_ledbyte7buf,a
		b0mov		y,#tabel_888$m
		b0mov		z,#tabel_888$l
		b0mov		a,r_disdata0
		b0add		z,a
		b0bts1  	fc 
     		jmp     	dispalydata50_01
     		incms  		y
     		nop		
dispalydata50_01:
		movc
                nop
                b0mov		r_ledbyte6buf,a
;---------------------速度显示----------------
displaydata60:
		b0mov		y,#table_speed$m
		b0mov		z,#table_speed$l
		b0mov		a,r_speedbyte_buf
		b0add		z,a
		nop
		movc
		b0mov		r_ledbyte1buf,a
;---------------------风类显示------------------------
displaydata70:
		cpjz		r_zcfdispay_cnt,displaydata70_00
		b0mov		a,r_zcfdispay_cnt
		cmprs		a,#1
		jmp		displaydata70_000
		mov_1		r_ledbyte2buf,00100100b
		jmp		displaydata70_01
displaydata70_00:
		mov_1		r_ledbyte2buf,01000010b
		jmp		displaydata70_01
displaydata70_000:
		b0mov		a,r_zcfdispay_cnt
		cmprs		a,#2
		jmp		displaydata70_01
		mov_1		r_ledbyte2buf,10000001b
displaydata70_01:		
		bts0		b_zcf
		jmp		displaydata90
displaydata80:
		bts1		b_zrf
		bset            lcd_s2
		bts0		b_zrf
		bset		lcd_s3
;---------------------摇头显示--------------------		
displaydata90:
		bset		lcd_p1;开机后第1节总是点亮
		cpjz		r_swbyte,displaydata100
		bset		lcd_s10;有摇头时S10保持亮
		bts0		b_sw90
		bset		lcd_90
		bts0		b_sw90
		jmp		displaydata100
		bset		lcd_s9
		bset		lcd_s11
		bts0		b_sw180
		bset		lcd_180
		bts0		b_sw180
		jmp		displaydata100
		bset		lcd_360
		bset		lcd_s5
;--------------------其他显示-------------------               
displaydata100: 
	        bts1		b_f
	        bset		lcd_s7 ;F
	        bts0		b_f
	        bset		lcd_s8 ;C
	        bts0		b_ion
	        bset		lcd_s6 ;FLZ显示
displaydata110:	        
                bts1		b_hum
                jmp		displaydata_ret
                bts1		b_waterkey_err ;缺水否
                jmp		displaydata120
                b0mov		a,r_flashcnt1
		sub		a,#128
		b0bts1		fc
		jmp		displaydata_ret
displaydata120:		
                bset		lcd_s1         ;加湿显示
displaydata_ret:
		mov_2		r_ledbyte1,r_ledbyte1buf
		mov_2		r_ledbyte2,r_ledbyte2buf
		mov_2		r_ledbyte3,r_ledbyte3buf
		mov_2		r_ledbyte4,r_ledbyte4buf
		mov_2		r_ledbyte5,r_ledbyte5buf
		mov_2		r_ledbyte6,r_ledbyte6buf
		mov_2		r_ledbyte7,r_ledbyte7buf
		mov_2		r_ledbyte8,r_ledbyte8buf
		mov_2		r_ledbyte9,r_ledbyte9buf
		ret
;------------------------------------------               
hextodec:
               clr     		r_disdata0
               clr     		r_disdata1
hextodec10:
               sub     		a,#10
               nop
               b0bts1  		fc
               jmp     		hextodec20
               incms   		r_disdata1
               nop
               jmp     		hextodec10
hextodec20:
               add     		a,#10
               b0mov   		r_disdata0,a
               nop
               ret
;$$$$$$$$$$$$$$$$$$$$$$摇头时间控制$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
swtime:
		cpjnz     	r_swbyte,swtime_00;是否有摇头设置
		ret
swtime_00:	
		bts1		b_time_8ms
		ret
		bclr		b_time_8ms
		incms		r_time_1s
		nop
		mov          	a,#125
		xor		a,r_time_1s
		b0bts1		fz
		ret
		clr		r_time_1s
		cpjz		r_swdelay,swtime10
		clr		r_swdelay
		ret
swtime10:
		cpjz		r_lsw_time,swtime30
		decms		r_lsw_time
		ret
swtime20:		
		mov_2		r_rsw_time,r_lsw_timebuf
		mov_2		r_rsw_timebuf,r_lsw_timebuf
		mov_1		r_swdelay,1;摇头到终点后停1s
		ret
swtime30:
		cpjnz		r_rsw_time,swtime40
		ret
swtime40:
		decms		r_rsw_time
		ret
		mov_2		r_lsw_time,r_rsw_timebuf
		mov_2		r_lsw_timebuf,r_rsw_timebuf
		mov_1		r_swdelay,1
		ret

;$$$$$$$$$$$$$$$$$$$$定时时间处理$$$$$$$$$$$$$$$$$$$$$$$$$$$$
clock:
	       bts1		b_16ms
	       jmp		clock_ret
	       bclr		b_16ms
	       incms		r_zcf_time
	       nop
	       b0mov		a,r_zcf_time
	       cmprs		a,#8
	       jmp		clock_000
	       clr		r_zcf_time
	       incms		r_zcfdispay_cnt
       	       nop
       	       b0mov		a,r_zcfdispay_cnt
       	       cmprs		a,#3
       	       jmp		clock_000
       	       clr		r_zcfdispay_cnt
clock_000:	       
	       incms		r_time_2s
	       nop
	       b0mov		a,r_time_2s
	       cmprs		a,#125
	       jmp		clock_ret
	       clr		r_time_2s
	       cpjz		r_backled_cnt,clock_00
	       decms		r_backled_cnt
	       jmp		clock_00
	       b0bset		p_backled  ;60秒到关背光
clock_00:	       
	       incms		r_time_60s
	       nop
	       incms		r_time_sec
	       nop
	       b0mov		a,r_time_sec
	       cmprs		a,#30;60秒
	       jmp		clock_ret
	       clr		r_time_sec
	       bts1		b_settime
	       jmp		clock_ret;无时间设置
	       cpjnz		r_timebyte2,clock20
	       cpjnz		r_timebyte1,clock10
	       jmp		clock_ret
clock10:	       
	       decms		r_timebyte1
	       jmp		clock_ret
	       clr		r_timebyte1_buf
	       clr		r_timebyte2_buf;定时完后在开机按定时键从0开始
	       bclr		b_run
	       bclr		b_hum   ;关加湿
	       b0bset		p_backled
	       clr		r_speedbyte1;关输出
	       jmp		clock_ret
clock20:
	       cpjz		r_timebyte1,clock30
	       decms		r_timebyte1
	       nop
	       jmp		clock_ret
clock30:
	       mov_1		r_timebyte1,59
	       decms		r_timebyte2
	       nop
clock_ret:
	       ret
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
timecenter:
	bts0		b_zcf
	jmp		timecenter_ret
	bts1      	b_smf
        jmp       	timecenter10
        bts1      	b_lowspeed;低档睡眠风转低档自然风
        ;bts1      	b_trigger64s
        b0mov		a,r_time_60s
        sub		a,#30  ;防止前面加过了30程序未执行到这
        b0bts1		fc
        jmp       	timecenter10
        clr		r_time_60s
        incms     	r_Time30MinCnt
        nop
        b0mov     	a,r_Time30MinCnt;睡眠风在各自然风下运行30分
        cmprs     	a,#30
        jmp       	timecenter10
        clr		r_Time30MinCnt
        bts0      	b_midspeed
        jmp       	timecenter05
        bts1      	b_higspeed
        jmp       	timecenter_ret
;==========================================
Timecenter02:
          bts0      b_highsmf_bit1;高档睡眠风
          jmp       timecenter03
          bts0      b_highsmf_bit2
          jmp       timecenter04
          
          b0bclr    b_highsmf_bit3
          b0bset    b_highsmf_bit1	;高档自然风
          mov       a,#c_time5s     
          jmp       timecenter04_0
     ;================    
timecenter03:
          b0bclr    b_highsmf_bit1
          b0bset    b_highsmf_bit2	;转为中档自然风
          mov       a,#c_time1s
          jmp       timecenter04_0
     ;================
timecenter04:
          b0bclr    b_highsmf_bit2
          b0bset    b_highsmf_bit3	;转为低档自然风
          mov       a,#c_time4s
     ;===========
timecenter04_0:       
          b0mov     r_timer_fanrun,a
          mov       a,#1
          b0mov     r_BreezeByte,a
          mov       a,#0
          b0mov     r_BreezeByte1,a
          jmp       timecenter10
 ;==========================================             
timecenter05:                          ;30分钟后中档睡眠风标志位取反
          mov       a,#00000001b      
          xor       r_usertrigger,a
          mov       a,#c_time1s
          b0mov     r_timer_fanrun,a
          mov       a,#1
          b0mov     r_BreezeByte,a
          mov       a,#0

⌨️ 快捷键说明

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