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

📄 62429.txt

📁 mcu:ht46r64,功能:用RC充电放电实现温度检测
💻 TXT
字号:
;※※※※※※※※※※※※※※※※※※※※※※※※※※
;产品: 温控器程序
;文件: DF003.dt
;日期; 2008.09.27
;编写: qiangjr
;※※※※※※※※※※※※※※※※※※※※※※※※※※
		include		"em78p468n.inc" 
		data0		==	0x10				
		data1		==	0x11
		data2		==	0x12	
		data3		==  0x13
	;	data4       ==
		data6		==	0x14		
		data7		==	0x15		
		to7 		==	0x16		
		temp 		==	0x17			     
		tempr4      ==  0x18
		flag        ==  0x19		
		count_a     ==  0x1a
		count_b     ==  0x1b
		a_ram       ==  0x1c
		status_ram  ==  0x1d		
		dd1     ==  0x1e
		dd2     ==  0x1f
				
		set_f      ==  0x20.0
		up_f       ==  0x20.1
		down_f     ==  0x20.2
		flash       ==  0x20.4
		open_err    ==  0x20.5
		short_err   ==  0x20.6
		ok          ==  0x20.7
		off_disp    ==  0x21.0
		test_start  ==  0x21.1
		csh1        ==  0x21.2
		csh2        ==  0x21.3
		cg          ==  0x21.4
		over		==  0x21.5
		bz_on		==  0x21.6
		
		int_4ms     ==  0x21.7
		key_f       ==  0x22.0
		key         ==  0x22.1
		
		xx          ==  0x22
		yy          ==  0x23
		;dd1         ==  0x24
		;dd2         ==  0x25
;※※※※※※※※※※※※※※※※※※※※※※※※※※	
		bz_off     equ  ir_c.7
			
		sda        equ  p7.5
		scl        equ  p7.6
		red_led    equ  p7.4
		blue_led   equ  p7.3
		fan_det    equ  p7.2
		fan_ctrl   equ  p7.1
		hdd_det    equ  p7.0
		buzzer     equ  p5.7
		rt_c       equ  p5.6
		rr_c       equ  p5.5
		det_c      equ  p5.4
		set        equ  p6.0
		up         equ  p6.1
		down       equ  p6.2
;※※※※※※※※※※※※※※※※※※※※※※※※※※
		org  	000h
		jmp  	start
		;org     003h
		;jmp     tcc_int
		org     006h
		jmp     ext_int0
		;org     0009h
		;jmp     ext_int1
		org  	00ch
		jmp  	cont1_int
		org     00fh
		jmp     cont2_int
		;org     0012h
		;jmp     hpwt_int
		;org     0015h
		;jmp     lpwt_int
		;org     0018h
		;jmp     wake_int
		include  "table.inc"
;※※※※※※※※※※※※※※※※※※※※※※※※※※
;※※※※※※※※Initialization※※※※※※※※※※※
;※※※※※※※※※※※※※※※※※※※※※※※※※※
start:
;----------------------------------------------------
sysclk_init:
		mov		a,@0b00000101
		mov     sys_clk,a			;main clock=4.26M,lcd clock=32768/8
;----------------------------------------------------
io_init:
		clr     int_status
		mov     a,@0b11010000
        iow     p5_seg_c		;p5.4,p5.5,p5.6,p5.7(buzzer) out put
        mov     a,@0x65			;p7.0(hdd),p7.1(fan_ctrl),p7.2(fan_det),p7.3(blue led)
        iow     p7_c			;p7.4(red led),p7.5(sda),p7.6(scl),p7.7(nc)
        mov     a,@0xff			
        iow     p6_c			;p6.0(set),p6.1(up),p6.2(down)in put		    
		bs      p5.0        	;change ioc page
		mov     a,@0xff
		iow     p6_ph			;p6.0,p6.1,p6.2 pull high
		bc      p5.0
;----------------------------------------------------		
reg_init:
		mov     a,@0x0f			;bank0
		mov     r4,a
reg1:	   						
		inc     r4
		clr     r0
		mov     a,@0x3f
		sub     a,r4
		jbs     status.0
		jmp     reg1
		mov     a,@0x5f			;bank1
		mov     r4,a
reg2:
		inc     r4
		clr     r0
		mov     a,@0x7f
		sub     a,r4
		jbs     status.0
		jmp     reg2
		mov     a,@0x9f			;bank2
		mov     r4,a
reg3:
		inc     r4
		clr     r0
		mov     a,@0xbf
		sub     a,r4
		jbs     status.0
		jmp     reg3		
		mov     a,@0xdf			;bank3
		mov     r4,a
reg4:
		inc     r4
		clr     r0
		mov     a,@0xff
		sub     a,r4
		jbs     status.0
		jmp     reg4
;----------------------------------------------------
ram_init:
		mov     a,@128
		mov     data0,a
ram1:
		mov     a,data0
		iow     ram_adr
		clra
		iow     ram_db
		djz     data0
		jmp     ram1
;----------------------------------------------------	
lcd_init:
		mov     a,@0xf3
		mov     lcd_c,a
		mov     a,@13
		mov     lcd_adr,a	
lcd1:
		;clr     lcd_db
	mov a,@0xff
	mov lcd_db,a
		djz     lcd_adr
		jmp     lcd1
;----------------------------------------------------
count12_init:
 		disi    
 		mov     a,@0b11101001		;外部中断0允许  
		mov     ir_c,a
		
		bs 		p5,0 				;control register page1
		ior 	wake_up
		or 		a,@0x80
		iow 	wake_up 			;irout => 24ma
		mov     a,@0x7f
		iow     tcc_int0_c        ;int0上升延触发
		
		mov     a,@0b10101000
		iow 	cnt12_c 			;counter2 scale
		bc 		p5,0 				;control register page0
		
		mov 	a,@65
		iow 	count2_prs 			;counter2 preset value
		mov     a,@79
		iow     count1_prs
		clra
		iow     hpwt_prs
		iow     lpwt_prs
				
		ior 	int_en
		or 		a,@0x7a
		iow 	int_en 				;enable lpwte\hpwte int
		
		bs 		count_en.1
		bc      count_en.0
;----------------------------------------------------
		eni
		bc      bz_off		
		bs p5.5
;※※※※※※※※※※※※※※※※※※※※※※※※※※
;※※※※※※※※※※main start※※※※※※※※※※※ 
;※※※※※※※※※※※※※※※※※※※※※※※※※※	
main:   
		jbs     p5.4
		jmp     main
m6:
		ior     p5_seg_c		;discharge
		and     a,@0xe0
		iow     p5_seg_c
		bc      p5.4
		jbs     data7.7
		jmp m6
		
		clr     data7
	clr  data2
	clr  dd1
		ior     p5_seg_c
		or      a,@0x10
		iow     p5_seg_c
		
		ior     p5_seg_c
		or      a,@0x20
		iow     p5_seg_c
		bc      p5.5
		
		ior     p5_seg_c
		and     a,@0xbf
		iow     p5_seg_c
		bs      p5.6
		
		bs      count_en.0
		jmp 	main
;※※※※※※※※※※※※※※※※※※※※※※※※※※
;※※※※※※※※※※※main over※※※※※※※※※※
;※※※※※※※※※※※※※※※※※※※※※※※※※※
key_check: 
		jbs     set
		jmp     kc3
kc1:
		jbs     up
		jmp     kc3	
kc2:
		jbs     down
		jmp     kc3
		bc     key
		bc     key_f
		ret
kc3:		
		jbc     key_f
		jmp     kc4
		clr     data0
		bc     int_4ms
kc4:
		bs      key_f
		jbs     int_4ms
		ret	
		jbc     key
		ret
		bs      key
		jbs     set
		bs      set_f
		jbs     up
		bs      up_f
		jbs     down
		bs      down_f		
		ret                     ;4-down,2-up,1-set
;※※※※※※※※※※※※※※※※※※※※※※※※※※
cont1_int:
		mov     a_ram,a
		mov 	a,r4     		;push R4
		mov 	tempr4,a
		mov     a,status
		mov     status_ram,a
		bc      int_status.3
				
		inc     data2
		jbc     status.2
		inc     dd1
		jbc     status.2
		nop		
	mov     a,@0xff
	xor     p7,a	
intend1:
		mov     a,status_ram
		mov     status,a
		mov 	a,tempr4 		;pop R4
		mov 	r4,a
		mov     a,a_ram
		reti
;※※※※※※※※※※※※※※※※※※※※※※※※※※
cont2_int:
		mov     a_ram,a
		mov 	a,r4     		;push R4
		mov 	tempr4,a
		mov     a,status
		mov     status_ram,a
		bc      int_status.4
		
		inc 	data0   		;b4产生4ms时基中断
		jbs     data0.6;5
		jmp     intend2
		bs      int_4ms	
		clr     data0
		inc     data7	
intend2:
		mov     a,status_ram
		mov     status,a
		mov 	a,tempr4 		;pop R4
		mov 	r4,a
		mov     a,a_ram
		reti
;※※※※※※※※※※※※※※※※※※※※※※※※※※
ext_int0:
		bc      count_en.0	    ;关计数器0
		mov     a_ram,a
		mov 	a,r4     		;push R4
		mov 	tempr4,a
		mov     a,status
		mov     status_ram,a
		mov     a,data2
		mov     to7,a
		mov     a,dd1
		mov     dd2,a
		bc      int_status.1				
intend3:
		mov     a,status_ram
		mov     status,a
		mov 	a,tempr4 		;pop R4
		mov 	r4,a
		mov     a,a_ram
		reti
;※※※※※※※※※※※※※※※※※※※※※※※※※※		
		end

⌨️ 快捷键说明

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