基于51单片机的电子钟C语言程序
i
cludereg51hi
cludeabsacchdefi
eucharu
sig
edchardefi
eui
tu
sig
edi
t七段共阴管显示定义ucharcodedispcode0x3F0x060x5B0x4F0x660x6D0x7D0x070x7F0x6F
0xBF0x860xCB0xCF0xEF0xED0xFD0x870xFF0xDF定义并初始化变量ucharseco
de0ucharmi
ite0ucharhour12ucharmstc
t0
sbitP1_0P10sbitP1_1P11sbitP1_2P12
seco
d调整定义mi
ite调整定义hour调整定义
函数声明voiddelayucharkvoidtime_provoiddisplayvoidkeysca
延时子程序时间处理子程序
显示子程序
键盘扫描子程序
延时子程序voiddelayucharkucharjwhilek0
forj0j125j
时间处理子程序voidtime_provoid
fifseco
de60秒钟设为60进制
seco
de0mi
ite
ifmi
ite60设为60进制
mi
ite0hour
ifhour24时钟设为24进制
hour0
显示子程序voiddisplayvoid
P20xfeP0dispcodehour10显示小时的十位delay4P20xfdP0dispcodehour100X80时的个位delay4P20xfbP0dispcodemi
ite10显示分的十位delay4P20xf7P0dispcodemi
ite100X80的个位delay4P20xefP0dispcodeseco
de10示秒的十位delay4P20xdfP0dispcodeseco
de10示秒的个位
分钟
显示小
显示分显显
fdelay4
键盘扫描子程序
voidkeysca
void
ifP1_00
按键1秒
的调整
delay30
ifP1_00
seco
de
ifseco
de60
seco
de0
ifP1_10
按键2分的
调整
delay30
ifP1_10
mi
ite
ifmi
ite60
mi
ite0
ifP1_20
按键3小时的
调整
delay30
ifP1_20
hour
ifhour24
hour0
fvoidtimer0voidi
terrupt1usi
g0中断一次
定时器0方式1,50ms
TH00x3c
TL00xb0TMOD0x11
mstc
tifmstc
t20
seco
demstc
t0的重要,本次调试中就是早成了很大的被动。
注意点。对计数单元的清零十分因为忽略了这一点,给我
主函数
voidmai
void
P10xff
设为1
TMOD0x11time0为定时器,方式1
TH00x3c
预置计数初值
TL00xb0
EA1
ET01
TR01
while1
keysca
按键扫描
time_pro时间处理
display显示时间
初始化p1口,全
ffr