📄 clock1.asm
字号:
;***************
;clock1 _program 2000-5-20
;***************
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
seach_led equ led5+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
flash equ beep_timer+1h
set_timer equ flash+1h
led_1 bit p3.7
led_2 bit p3.5
led_3 bit p3.4
led_4 bit p3.3
led_5 bit p3.2
HA BIT P3.0
key_f bit p3.1
timer_50ms bit 00h
timer_1s bit 01h
timer_3s bit 03h
; timer_20s bit 04h
timer_1min bit 05h
timer_10min bit 06h
timer_am bit 07h
key_set_f bit 08h
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_f+2h
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
;*****************
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 al1_m,#00d
mov al1_h,#7d
mov al2_m,#10d
mov al2_h,#13d
setb al_out_f
setb tr1
setb ea
STAR_BI:
acall led_jmp_1;led_times
aCALL KEY_1
acall al_out_beep
sjmp star_bi
;;;;;;;;;;;;;;;;;
;****************************
; key_pragm
;****************************
KEY_1:
clr led_1
clr led_2
clr led_3
clr led_4
clr led_5
mov p1,#0ffh
clr key_f
mov a,p1
setb key_f
anl a ,#11000000b
cjne a,#11000000b,you_key_1
key_e:
setb led_1
setb led_2
setb led_3
setb led_4
setb led_5
mov p1,#0ffh
mov key_power,#00h
key_1_end:
ret
you_key_1:
setb key_f
lcall led
clr led_1
clr led_2
clr led_3
clr led_4
clr led_5
mov p1,#0ffh
clr key_f
mov a,p1
setb key_f
anl a ,#11000000b
cjne a,#11000000b,you_key_2
sjmp key_e
you_key_2: jb acc.7 ,key_set
mov key_power,#01h
key_set: jb acc.6 ,you_key_3
mov key_power,#02h
you_key_3:
setb key_f
acall led
clr led_1
clr led_2
clr led_3
clr led_4
clr led_5
mov p1,#0ffh
clr key_f
mov a,p1
setb key_f
anl a ,#11000000b
cjne a,#11000000b,you_key_3
setb key_f
setb led_1
setb led_2
setb led_3
setb led_4
setb led_5
mov p1,#0ffh
mov b,#08h
bb_1: clr ha
push b
setb key_f
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 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 dptr,#led_order_3
mov a,seach_set
movc a,@a+dptr
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:
acall led
ret
timer_led1:
mov a,min
mov c,acc.7
mov a,flash
mov acc.1,c
mov acc.2,c
mov flash,a
mov a,min
clr acc.7
acall bcd_8
mov led1,a
mov a,b
mov led2,a
;;;;;;;;;;;;;;;
mov a,hour
mov c,acc.7
mov a,flash
mov acc.3,c
mov acc.4,c
mov flash,a
mov a,hour
clr acc.7
acall bcd_8
mov led3,a
mov a,b
jnz tt_2
tt_1: mov a,#led_blk
tt_2:
mov led4,a
mov a,week
mov c,acc.7
mov a,flash
mov acc.5,c
mov flash,a
mov a,week
clr acc.7
mov led5,a
;;;;;;;;;;;;;;;;;;;
mov c,timer_1s
mov a,flash
mov acc.0,c
mov flash ,a
ret
date_led1:
mov a,day
mov c,acc.7
mov a,flash
mov acc.1,c
mov acc.2,c
mov flash,a
mov a,day
clr acc.7
acall bcd_8
mov led1,a
mov a,b
jz kk_1
mov led2,a
sjmp kk_2
kk_1:
mov led2,#led_blk
kk_2:
mov a,mou
mov c,acc.7
mov a,flash
mov acc.3,c
mov acc.4,c
mov flash,a
mov a,mou
clr acc.7
lcall bcd_8
mov led3,a
mov a,b
jnz ke_1
mov led4,#led_blk
sjmp ke_2
ke_1:
mov led4,a
ke_2:
mov a,week
mov c,acc.7
mov a,flash
mov acc.5,c
; mov acc.4,c
mov flash,a
mov a,week
clr acc.7
mov led5,a
; setb date_f
mov a,flash
setb acc.0
mov flash,a
ret
al1_led1:
mov a,al1_m
mov c,acc.7
mov a,flash
mov acc.1,c
mov acc.2,c
mov flash,a
mov a,al1_m
clr acc.7
lcall bcd_8
mov led1,a
mov a,b
mov led2,a
;;;;;;;;;;;;
mov a,al1_h
mov c,acc.7
mov a,flash
mov acc.3,c
mov acc.4,c
mov flash,a
mov a,al1_h
clr acc.7
acall bcd_8
mov led3,a
mov a,b
jnz tt_6
tt_5: mov a,#led_blk
tt_6:
mov led4,a
mov led5,#01h
mov a,flash
clr acc.0
mov flash,a
ret
al2_led1:
mov a,al2_m
mov c,acc.7
mov a,flash
mov acc.1,c
mov acc.2,c
mov flash,a
mov a,al2_m
clr acc.7
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -