📄 clock0.asm
字号:
;***************
;clock0 _program 2000-5-17
;***************
key_power equ 08h
timers equ key_power+1
;**************************************************
min equ timers+2h
hour equ timers+3h
week equ timers+4h
day equ timers+5h
mou equ timers+6h
al1_m equ timers+7h
al1_h equ al1_m+1h
al2_m equ al1_m+2h
al2_h equ al1_m+3h ;ram addres at 14h
sec equ al2_h+1h
timer_no equ sec+1h
year equ timer_no+1h
;*************************************************
time_led1 equ 24h
time_led2 equ time_led1+1
time_led3 equ time_led2+1
led1 equ time_led3+1h
led2 equ led1+1
led3 equ led2+1
led4 equ led3+1
led5 equ led4+1
timer_ting equ led5+1
timer_charge equ timer_ting+1
;charge_t equ timer_charge+1
;charge_d1 equ charge_t+1
seach_led equ timer_charge+1h
seach_key equ seach_led+1h
seach_set equ seach_key+1h
moue_2 equ seach_set+1h
beep_timer equ moue_2+1h
led_1 bit p3.0
led_2 bit p3.1
led_3 bit p3.2
led_4 bit p3.3
led_5 bit p3.4
jian_f bit p3.5
HA BIT P1.7
key_f_charge bit p3.7
ting_f bit 00h
charge_f bit ting_f+1h
all_am bit charge_f+1h
al1_am bit all_am+1h
al2_am bit al1_am+1h
timer_50ms bit al2_am+1h
timer_1s bit al2_am+2h
timer_3s bit al2_am+3h
; timer_20s bit al2_am+4h
timer_1min bit al2_am+5h
timer_10min bit al2_am+6h
timer_am bit al2_am+7h
key_set_f bit al2_am+8h
sec_flash_f bit key_set_f+1h
c_f bit sec_flash_f+1h
date_f bit c_f+1h
stop_f bit date_f+1h
adj_f bit stop_f+1h
all1_am bit adj_f+1h
al_f bit all1_am+1h
al_out_f bit al_f+1h
c_temp bit al_out_f+1h
tih equ 3ch ;9e58h 6MHz
til equ 0b0h ;3cb0h 12MHz
tis equ 10d ;19d 12MHz, 9d 6MHz
ti_no equ 3h
led_blk equ 0ah
led_c equ 0bh
led_e equ 0ch
oRG 0000H; ;
sJMP start
ORG 0003H; ;
reti;
ORG 000BH ;
reti ;
ORG 0013H
reti ;
ORG 001BH ;
aJMP T1 ;
ORG 0023H ;
RETI; AJMP RS_485 ;
;**************************************
;**************************************
start:
MOV R7,#78h ;
MOV R0,#07H ;
CLR A ;
CR: INC R0 ;
MOV @R0,A ;
djnz r7,cr ;CLR RAM
MOV SP,#3aH ;
clr ea
;************** INT_CTRL
; SETB ie0 ;
; SETB EX0 ;
; SETb ex1 ;
setB ET0 ;
SETB ET1 ;
; SETB IT0 ;
; setb IT1 ;
MOV TMOD,#00010001b ;
MOV TH1,#tih
mov tl1,#til
mov th0,#00h
mov tl0,#00h
;***********RS_CTRL
; MOV SCON,#00H ;
;*****************
; MINI_Pragram
;*****************
;setb tr0
;setb sec_flash_f
setb timer_am
mov timers,#tis
mov sec,#00d
mov hour ,#12d
mov min ,#00d
mov day ,#1d
mov mou ,#01d
mov week ,#01d
mov timer_no,#ti_no
mov year,#00h
mov beep_timer,#8d
mov timer_charge,#02h
mov al1_m,#00d
mov al1_h,#6d
setb al1_am
mov al2_m,#10d
mov al2_h,#1d
clr al2_am
setb al_out_f
setb tr1
setb ea
STAR_BI:
acall led_jmp_1;led_times
acall led_j
;*******************************
mov c,stop_f
orl c, ting_f
jc ma_1 ;ting_dian to turn off led
aCALL KEY_1
ma_1:
acall ting_dian_ji
acall charge
acall al_out_beep
sjmp star_bi
;****************************
; key_pragm
;****************************
KEY_1: ; clr you_key_f
mov p3,#01111111b
mov a,p3
anl a ,#00000011b
cjne a,#00000011b,you_key_1
mov p3,#0ffh
mov key_power,#00h
key_1_end:
ret
you_key_1:
setb key_f_charge
lcall led
;mov a,#10000000b
;mov c,ha
;mov acc.7,c
mov p1,#0ffh
;mov p1,#10000000b
;clr key_f_charge
mov p3,#01111111b
mov a,p3
mov p3,#0ffh
anl a ,#00000011b
cjne a,#00000011b,you_key_2
sjmp key_1_end
you_key_2: jb acc.0 ,key_set
mov key_power,#01h
key_set: jb acc.1 ,you_key_3
mov key_power,#02h
you_key_3:
setb key_f_charge
acall led
mov p1,#0ffh
; mov c,ha
; mov acc.7,c
; mov p1,a
mov p3,#01111111b
mov a,p3
mov p3,#0ffh
anl a ,#00000011b
cjne a,#00000011b,you_key_3
mov p3,#0ffh
mov b,#02h
bb_1: clr ha
push b
acall led
pop b
djnz b ,bb_1
setb ha
;******************************************
mov dptr,#key_ord_1
mov a,key_power
mov b,#03h;!!!!!!!!!!!!!!!
mul ab
jmp @a+dptr
key_ord_1: ljmp key_k0_0
ljmp key_k1_0
ljmp key_k2_0
key_k0_0: ;no key
ajmp key_1_end
key_k1_0: ;seach and up key
mov a,seach_set
jz k_seach
;*****************************************
mov a,seach_set
xrl a,#02h
jnz pp_0
mov r0,time_led2
mov a,@r0
clr acc.7
jb timer_am ,qq_1
add a,#12d
qq_1:
inc a
cjne a,#25d ,aam_1
aam_2: mov a,#01h
aam_1:
cjne a,#12d ,aam_3
aam_4:
setb timer_am
sjmp aam_5
aam_3:
jc aam_4
clr timer_am
clr c
subb a,#12d
aam_5:
setb acc.7
mov @r0,a
sjmp pp_2
pp_0:
mov r0,time_led2
mov a,@r0
clr acc.7
inc a
mov r3,a
mov dptr,#led_order_2
mov a,seach_set
movc a,@a+dptr
mov b,a
mov a,r3
cjne a ,b ,pp_1
mov a,#01d
pp_1:
setb acc.7
mov @r0 ,a
pp_2:
ajmp key_1_end
k_seach:
inc seach_led
mov a,seach_led
cjne a ,#08h ,ks_1
clr timer_3s
mov seach_led,#00h
ks_1:
ajmp key_1_end
key_k2_0: ;set key
mov r0,time_led2
mov a,@r0
clr acc.7
mov @r0,a
inc seach_set
mov a,seach_set
cjne a,#0dh ,se_1
mov seach_set,#00h
se_1:
mov b,#min
mov a,seach_set
add a,b
dec a
mov r0,a
mov a,@r0
setb acc.7
mov @r0,a
mov a,r0
mov time_led2,a
mov dptr,#led_order_1
mov a,seach_set
movc a,@a+dptr
mov seach_led,a
ajmp key_1_end
;******************************************** led
led_jmp_1:
mov dptr,#led_ord_3
mov a,seach_led;data
mov b,#02h
mul ab
jmp @a+dptr
led_ord_3: ajmp led_k0_2
ajmp led_k1_2
ajmp led_k2_2
ajmp led_k3_2
ajmp led_k4_2
ajmp led_k5_2
ajmp led_k6_2
ajmp led_k7_2
led_k0_2: ; timer and date to led
acall timer_led1
jnb timer_3s, led_k0_21
acall date_led1
led_k0_21:
ajmp led_jmp_5_end
led_k1_2: ; timer to led
acall timer_led1
ajmp led_jmp_5_end
led_k2_2: ;date to led
acall date_led1
; clr sec_flash_f
ajmp led_jmp_5_end
led_k3_2: ;al1 to led
acall al1_led1
ajmp led_jmp_5_end
led_k4_2: ;al2 to led
acall al2_led1
ajmp led_jmp_5_end
led_k5_2: ; turn off led
acall sec_led
ajmp led_jmp_5_end
led_k6_2: ;
acall wei_ti
ajmp led_jmp_5_end
led_k7_2: ; turn off led
acall year_led
led_jmp_5_end:
ret
timer_led1:
mov a,min
acall led_flash_set
mov led1,a
mov a,b
mov acc.7,c
mov led2,a
mov a,hour
acall led_flash_set
mov led3,a
mov a,b
jnz tt_2
tt_1: mov a,#led_blk
tt_2:
mov acc.7,c
mov c, timer_am
mov acc.5 ,c
mov c,timer_1s
mov acc.6,c
mov led4,a
mov led5,week
ret
date_led1:
mov a,day
acall led_flash_set
mov led1,a
mov a,b
jz kk_1
mov acc.7,c
mov led2,a
sjmp kk_2
kk_1:
mov led2,#led_blk
kk_2:
mov a,mou
acall led_flash_set
mov led3,a
mov a,b
jnz ke_1
mov led4,#led_blk
sjmp ke_2
ke_1:
mov acc.7,c
mov led4,a
ke_2:
mov led5,week
setb date_f
ret
al1_led1:
mov a,al1_m
acall led_flash_set
mov led1,a
mov a,b
mov acc.7,c
mov led2,a
mov a,al1_h
acall led_flash_set
mov led3,a
mov a,b
jnz tt_6
tt_5: mov a,#led_blk
tt_6:
mov acc.7,c
mov c,al1_am
mov acc.5,c
mov c,timer_1s
mov acc.6 ,c
mov led4,a
mov led5,#01h
ret
al2_led1:
mov a,al2_m
acall led_flash_set
mov led1,a
mov a,b
mov acc.7,c
mov led2,a
mov a,al2_h
acall led_flash_set
mov led3,a
mov a,b
jnz tt_3
tt_3: mov a,#led_blk
tt_4:
mov acc.7,c
mov c,al2_am
mov acc.5,c
mov c,timer_1s
mov acc.6 ,c
mov led4,a
mov led5,#02h
ret
sec_led:
mov a,sec
acall led_flash_set
mov led1,a
mov a,b
mov acc.7,c
mov led2,a
mov a,#led_blk
mov led3,a
mov led4,a
mov led5,#led_c
ret
wei_ti:
mov a,timer_no
acall led_flash_set
mov led1,a
mov a,b
mov acc.7,c
mov led2,a
mov a,#led_blk
mov led3,a
mov led4,a
mov led5,#led_e
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -