找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6292|回复: 24
收起左侧

基于LCD 1602的电子多功能万年历

  [复制链接]
ID:168632 发表于 2017-4-9 13:43 | 显示全部楼层 |阅读模式
花了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键还有清零等其他功能大家可以自己摸索出来。


评分

参与人数 2黑币 +8 收起 理由
close_two + 5 很给力!
hzh嘎嘎嘎 + 3 赞一个!

查看全部评分

回复

使用道具 举报

ID:1 发表于 2017-4-9 14:52 | 显示全部楼层
只学一个月就达到这这样的程度,也是很难得的了,楼主能分享一下源码和原理图吗?传个附件
回复

使用道具 举报

ID:74784 发表于 2017-4-9 22:00 | 显示全部楼层
支持不用1302做数字表!
回复

使用道具 举报

ID:157238 发表于 2017-4-9 22:19 | 显示全部楼层
求源代码
回复

使用道具 举报

ID:168632 发表于 2017-4-15 12:43 | 显示全部楼层
本帖最后由 打死大四多 于 2017-4-17 20:46 编辑

抱歉来晚了,第一次玩论坛,前几天新加了I/O口控制背光自动熄灭,还有一些小细节就不说了。
自己焊了硬件调试了一周了,没有发现有BUG,误差也很小,秒表的精度也非常高
源代码在下面,写的程序逻辑较多,大神见笑了


多功能电子万年历.zip (5.94 KB, 下载次数: 79)

评分

参与人数 1黑币 +80 收起 理由
admin + 80 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:168632 发表于 2017-4-15 12:52 | 显示全部楼层
本帖最后由 打死大四多 于 2017-4-15 17:05 编辑

代码在附件里,还有注意事项
回复

使用道具 举报

ID:168632 发表于 2017-4-15 12:54 | 显示全部楼层
admin 发表于 2017-4-9 14:52
只学一个月就达到这这样的程度,也是很难得的了,楼主能分享一下源码和原理图吗?传个附件

源代码发了,在楼下好像还在审核,不知道为什么没有显示
原理图我没有画,因为用到的东西太少了,我是直接焊接的
回复

使用道具 举报

ID:168632 发表于 2017-4-15 12:55 | 显示全部楼层

在楼下面,正在审核不知道为什么不显示
回复

使用道具 举报

ID:189954 发表于 2017-4-15 20:30 | 显示全部楼层
我也是新人,学一个月能独立写出万年历已经很厉害了
回复

使用道具 举报

ID:190036 发表于 2017-4-16 09:49 | 显示全部楼层
能不能看一下原理图?
回复

使用道具 举报

ID:190036 发表于 2017-4-16 09:49 | 显示全部楼层
能不能看一下原理图?
回复

使用道具 举报

ID:190036 发表于 2017-4-16 09:55 | 显示全部楼层
楼主,你的程序里
sbit DQ=P3^6;
sbit bg=P2^7;
DQ,bg分别是什么意思?
回复

使用道具 举报

ID:168632 发表于 2017-4-16 15:23 来自手机 | 显示全部楼层
sum 发表于 2017-4-16 09:55
楼主,你的程序里
sbit DQ=P3^6;
sbit bg=P2^7;

原理图我没有画,我直接焊接的,过两天画一个,很简单的可以说没有什么硬件,最近在弄霍尔传感器测速。
bg是指背光变量,你把1602的背光k极连到bg就行了,自动控制背光,这样省电很多
DQ是18b20的数据传输位

回复

使用道具 举报

ID:140489 发表于 2017-4-17 12:13 | 显示全部楼层
本帖最后由 lids 于 2017-4-17 14:17 编辑

仿真了一下,不能实时显示温度值,一直显示15.9℃,用手摸18B20温度值不变,其他都正常
回复

使用道具 举报

ID:140489 发表于 2017-4-17 14:47 | 显示全部楼层
本帖最后由 lids 于 2017-4-17 15:58 编辑

static u16 i;               
    TH0=(65535-923)/256;        
        TL0=(65535-923)%256;        
        i++;
        beiguangpd();
        if(mbflag==1)
        {
         mbw++;
         if(mbw==10)
         {
         mbw=0;
         MB1++;
         }
        }
        if(i==1000)
        {
    k++;
        if(beiguang<60)
        beiguang++;
         i=0;buchang++;        
         temper=ReadTemperature();
    }        
        if(k==60)
        {
          k=0;
      e++;
        }
        if(buchang==5000)                                     //精度补偿部分,不一定适合你的晶振
        {
     buchang=0;k+=1;
         }
         if(e==60)
    {
           e=0;
           d++;
         }
         if(d==24)
         {
           d=0;
楼主用的是11.0592MHz的晶振吗?923*1.085us=1001us,我的实验板上是11.0592MHz的晶振,实际测试时间太慢了,10分钟过后就慢了2分钟。
一句注释都没有,过段时间可能楼主自己都不知道那些代码的意思了
回复

使用道具 举报

ID:160317 发表于 2017-4-17 14:56 | 显示全部楼层
哪位大神帮帮忙啊,红外遥控的毕设啊啊!!!
回复

使用道具 举报

ID:168632 发表于 2017-4-17 17:11 | 显示全部楼层
本帖最后由 打死大四多 于 2017-4-17 17:20 编辑
lids 发表于 2017-4-17 14:47
static u16 i;               
    TH0=(65535-923)/256;        
        TL0=(65535-923)%256;        ...

不好意思,仿真没调试过是因为我是直接KEIL做的,proteus仿真里的18B20温度时序图要求比较严格,有很多情况是实物没问题仿真却出问题了,你可以在实物上试试肯定没问题的,想要仿真没问题就把18B20里的时序图程序重新严格写一下就好了,我用的是12M晶振的不是11.05,如果你用11.05的话就改一下中断里的923,通过KEIL算一下每一步的时间然后实际调试一下再改buchang就好了,肯定是没问题的,程序没注释确实是疏忽了,最近在玩霍尔测速比较忙,我再搞个注释版和原理图给大家吧。
回复

使用道具 举报

ID:140489 发表于 2017-4-17 17:20 | 显示全部楼层
打死大四多 发表于 2017-4-17 17:11
仿真没调试过是因为我是直接KEIL做的,仿真18B20温度时序图可能比较严格,但是实物绝对没有问题,我用的 ...

期待楼主的详细注释版
回复

使用道具 举报

ID:168632 发表于 2017-4-17 19:46 | 显示全部楼层
花了两个小时搞了一下注释
下面是详细注释版+原理图+仿真
  大家要注意你的晶振,因为我手头没有11.05M的晶振只有12M的所以11.05M晶振的朋友请根据KEIL仿真或者实物测速修改中断里的923这个值就可以了,剩下的注意事项我都在程序里写了,感谢支持!
源程序(注释版)带仿真原理图.zip (441.8 KB, 下载次数: 104)

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:168632 发表于 2017-4-17 19:48 | 显示全部楼层
lids 发表于 2017-4-17 17:20
期待楼主的详细注释版

已经发了,带原理图带仿真带注释程序 审核中。。。
回复

使用道具 举报

ID:191196 发表于 2017-4-19 13:49 来自手机 | 显示全部楼层
楼主厉害,我最近也在做  感谢楼主的程序
回复

使用道具 举报

ID:216813 发表于 2017-7-11 09:47 | 显示全部楼层
点赞,点赞,点赞!
回复

使用道具 举报

ID:241829 发表于 2017-10-29 11:30 | 显示全部楼层
楼主我的1602是51板子,接口默认是P0  但是我换了你的1602接口接上去没反应
回复

使用道具 举报

ID:692999 发表于 2020-2-17 21:37 | 显示全部楼层
非常好  感谢楼主
回复

使用道具 举报

ID:1064915 发表于 2023-5-19 15:00 | 显示全部楼层
独立按键消抖如何处理
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表