setb p1.5
clr p1.6
setb p1.7
mov a,41h
lcall led_x
lcall delay
mov a,minute ;个位分显示
anl a,#0fh
mov 42h,a
setb p1.5
setb p1.6
setb p1.7
mov a,42h
lcall led_x
lcall delay
mov a,minute ;十位分显示
anl a,#0f0h
swap a
mov 43h,a
clr p1.5
clr p1.6
clr p1.7
mov a,43h
lcall led_x
lcall delay
mov a,clock ;个位时显示
anl a,#0fh
mov 44h,a
clr p1.5
setb p1.6
clr p1.7
mov a,44h
lcall led_x
lcall delay
mov a,clock ;十位时显示
anl a,#0f0h
swap a
mov 45h,a
setb p1.5
setb p1.6
clr p1.7
mov a,45h
lcall led_x
lcall delay
ret
led_x: mov dptr,#led_data
movc a,@a+dptr
mov p0,a
ret
;====================================延迟子程序
delay: mov r7,#10
de1: mov r6,#100 ;延时1ms多一点,因为晶振为11.0592MHz
djnz r6,$
djnz r7,de1
ret
;===================================数码管的段选码
led_data: db 0c0h,0f9h,0a4h,0b0h,099h,92h,82h,0f8h,80h,90h
;=====================================置数子程序
key_d: jnb k1,key1
jnb k2,key2
ret
key1: mov a,minute ;查询方式 ————> 分位置数
clr c ;清零进位,防止干扰da和cjne指令的操作
inc a ;累加器自加一 ,此为加法置数
da a ;十进制处理
cjne a, #60h, k_01 ;判断是否为60,为60清零,跳出
mov a,#00h
k_01: mov minute,a
jnb k1,$
ret
key2: mov a,clock ;时位 置数同上
clr c
inc a
da a
cjne a, #24h,k_11
mov a,#00h
k_11: mov clock,a
本文关键字:电子钟 电脑-单片机-自动控制,电子学习 - 基础知识 - 电脑-单片机-自动控制
上一篇:测试9G9260开发板I2C驱动