全球旧事资料 分类
用数码管(8位)显示的数字时钟程序
用数码管(8位)显示的数字时钟,由于是在开发板上写的程序,所以51单片机的一些IO口设定并不完全一样,以下程序仅供参考i
cludereg52hsbitdulaP26段选锁存器sbitwelaP27位选锁存器sbitkey1P32INT0选择键sbitkey2P34T0时间增加sbitkey3P36S4时间减少chara0hour0mi
ute0seco
ed0charh1h2m1m2s1s2char
um0charcodetable0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6fvoiddelaycharz
charxyforxzx0x
fory110y0yvoiddisplay_hourcharh显示小时
h1h10h2h10wela1P00xfe11111110wela0P00xffdula1P0tableh1dula0delay5wela1P00xfd11111101wela0P00xffdula1P0tableh2
fdula0delay5voiddisplay_mi
utecharm显示分钟
m1m10m2m10wela1P00xf711110111wela0P00xffdula1P0tablem1dula0delay5wela1P00xef11101111wela0P00xffdula1P0tablem2dula0delay5voiddisplay_seco
edchars显示秒
s1s10s2s10wela1P00xbf10111111wela0P00xffdula1P0tables1dula0delay5wela1P00x7f01111111
fwela0
P00xff
dula1
P0tables2
dula0
delay5

voidi
it初始化函数

TMOD0x01定时器0工作方式1
TH06553645872256装初值晶振11059250ms为45872
TL06553645872256
EA1开总中断
ET01开定时器0中断
TR01开启定时器0

voidkey按键函数,功能为对时间进行调整

ifkey10key1键按下进入选择并停止定时器

delay10
whilekey1松手检测
TR00

um没按一次key1
um自加1
if
um1
key1按一次进行“小时”调整

ifkey20key2按下时间增加

delay10
whilekey2
hour
ifhour24
hour0

ifkey30key3按下时间减少

delay10
fwhilekey3
hour
ifhour0
hour23


if
um2按下key1两次进行“分钟调整”

ifkey20

delay10
whilekey2
mi
ute
ifmi
ute60
mi
ute0

ifkey30

delay10
whilekey3
mi
ute
ifmi
ute0
mi
ute59

if
um3
key1按下三次对“秒”进行调节

ifkey20

delay10
whilekey2
seco
ed
ifseco
ed60
seco
ed0

ifkey30

delay10
fwhilekey3seco
edifseco
ed0seco
ed59if
um4key1按下四次认为调节完毕开启定时器并将
um清0
um0TR01voidmai
i
itwhile1display_seco
edseco
ed显示“秒,分,时”display_mi
utemi
utedisplay_hourhourifa20判断定时器是否到1sa0seco
edifseco
ed59seco
ed0mi
uteifmi
ute59
mi
ute0hourifhour23
hour0
fkeyvoidtimei
terrupt1TH06553645872256TL06r
好听全球资料 返回顶部