花了10天连写带调试到没有BUG,一个51的单片机多功能电子钟,不仅具有万年历的功能,还具有很多有用的其他功能,注意我用的是定时器加软件补偿,但是加了断电后开机傻瓜调节时间法,没有用1302但是软件补偿后调试日误差可以小于1秒。
该电子中具有以下的功能:
1.万年历,自动换算大小月自动算星期,任何时候都不会出现超出天数范围的情况
2.温度显示,精确到小数点后1位
3.电子闹钟,可以设置打开或关闭,光标调节时间,默认为OFF关闭
4.两种调时方法,一种是断电后的傻瓜调节,一次只调一个参数,一种是主界面后的移动光标调节。
5.温度报警,可以设置 单开上限或者下限或者上下限或者关闭,温度调节自己设置为0-50度,可改范围,默认为NO-NO关闭。
6.秒表 可以选择秒表打开,暂停,计次,清零,秒表范围9999秒,精度到10MS,自己对着IPHONE优化调试后误差在0.00-0.02之间,做一般的秒表没问题。
7.所有模块的开启或者关闭都没有冲突与BUG,比如秒表与走时可以同时打开没有冲突等,所以设置带记忆功能
8.按键手感优化调试后,也没有BUG,不会出错速度也比较舒服。
需要的硬件很简单,只要一个有源(无源亦可)蜂鸣器+单片机最小系统+18B20温度传感器+4个按键就好了,这样可以满足多功能的电子钟还是很划算的,为什么不用1302是因为我在软件补偿后发现日误差可以达到一个很高的精度,而实测在室内温度飘移的影响几乎没有发现,只用了一个定时器0就可以满足所有模块的计时要求而且不会冲突,精度日误差补偿后可以小于1秒,如果用1302还得买单独的电池焊接,懒得弄了。
本人是新手,学了刚好一个月,由于只花了几天时间匆匆写的肯定还有很多不够精简的地方,代码不完善之处还请大神轻喷,代码写的比较长但是都是经过测试后没有什么发现问题的,欢迎大家在自己板子上调试一下,发出来仅供大家互相学习。
说明一下 ,K1键为选择位减,K2加键,K3减键,K4确定键,所有参数调节到最大或者最小后都会自动复位最小或最大,方便调节,但是比如K3键还有清零等其他功能大家可以自己摸索出来。
|