基于51单片机的电子钟C语言程序:程序代码i
cludereg51hi
cludeabsacchdefi
eucharu
sig
edchardefi
eui
tu
sig
edi
t七段共阴管显示定义ucharcodedispcode0x3F0x060x5B0x4F0x660x6D0x7D0x070x7F0x6F0xBF0x860xCB0xCF0xEF0xED0xFD0x870xFF0xDF定义并初始化变量ucharseco
de0ucharmi
ite0ucharhour12ucharmstc
t0sbitP1_0P10sbitP1_1P11sbitP1_2P12seco
d调整定义mi
ite调整定义hour调整定义
函数声明voiddelayuchark延时子程序voidtime_pro时间处理子程序voiddisplay显示子程序voidkeysca
键盘扫描子程序延时子程序voiddelayucharkucharjwhilek0forj0j125j时间处理子程序
fvoidtime_provoidifseco
de60seco
de0mi
iteifmi
ite60mi
ite0hourifhour24hour0显示子程序voiddisplayvoidP20xfeP0dispcodehour10delay4P20xfdP0dispcodehour100X80delay4P20xfbP0dispcodemi
ite10delay4P20xf7P0dispcodemi
ite100X80delay4P20xefP0dispcodeseco
de10delay4P20xdfP0dispcodeseco
de10delay4键盘扫描子程序voidkeysca
void
秒钟设为60进制
分钟设为60进制
时钟设为24进制
显示小时的十位
显示小时的个位
显示分的十位
显示分的个位
显示秒的十位
显示秒的个位
fifP1_00按键1秒的调整delay30ifP1_00seco
deifseco
de60seco
de0ifP1_10按键2分的调整delay30ifP1_10mi
iteifmi
ite60mi
ite0ifP1_20按键3小时的调整delay30ifP1_20hourifhour24hour0voidtimer0voidi
terrupt1usi
g0定时器0方式1,50ms中断一次TH00x3cTMOD0x11mstc
tifmstc
t20seco
demstc
t0注意点。对计数单元的清零十分的重要,本次调试中就是因为忽略了这一点,给我早成了很大的被动。
f主函数voidmai
voidP10xff初始化p1口,全设为1TMOD0x11time0为定时器,方式1TH00x3c预置计数初值TL00xb0EA1ET01TR01while1keysca
按键扫描time_pro时间处理display显示时间原理图
ffr