📄 62429.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 + -