查看: 15071|回复: 22

基于 AT89S52、DS1302、LCD1602 的 时钟 日历 闹钟(含C源文件、详细程序摘要)

[复制链接]
发表于 2013-7-1 20:49:07 | 显示全部楼层 |阅读模式
在网上下的程序,针对自己的学习板修改了引脚的定义,并实现/增加了以下功能:
1、设置参数其间光标闪烁等待的功能
   网上下的原程序无此功能,设置日期、时间时不知道光标移到哪?当前选中哪个参数,很不方便。
   于是我修改了一下设置参数其间光标显示特性为“显示+闪烁”,并增加了等待按键的语句就实现了。
2、增加了一个按键——确认键 S4。
   原程序只有3个按键,每次一进入设置参数模式后,都要进入到设置闹钟模式选中字符“@”再按一下加数键或减数键才能返回到正常显示模式,这样至少要按9次S1键(未进入设置闹钟模式、并且无调整过参数大小的情况),或者11次S1键+1次S2/S3键(有进入过设置闹钟的情况、并且无调整过参数大小的情况)。可见会按到你烦。
   于是我增加了一个按键——确认键 S4,这样每次进入设置参数模式后,一按S4键就可返回到正常显示模式。
3、增加了闹钟记忆功能。
   原程序虽然可以设置闹钟,但每当复位、关断电源后又重新接上电源时原来设置好的闹钟时间就掉失了,要重新设置。
   于是我增加了闹钟记忆功能,把设置好的闹钟时间及闹钟开/关状态保存下来,重新接电后就是断电前设置的状态。
注:使用本程序要注意的地方:
1、引脚定义时,DS1302LCD1602 接到 AT89S52 的哪个引脚
2、引脚定义部分并未指明 LCD1602 的8位数据线接到单片机的哪个 I/O 口,使用前记得要改为你自己的接法。
   我的学习板接的是P2口,变量P2涉及到以下函数:
   void write_com(uchar com)    //写入lcd显示方式
   void write_data(uchar date)  //向lcd1602写入数据
主要芯片:AT89S52、DS1302、LCD1602
一、系统功能
1、  用液晶屏 LCD1602 分两行显示“ 年、月、日、周日、时、分、秒 ”,格式如下:
2013-06-28          Fri  
15:18:36   
2、  还可以设置1个闹钟。
3、  日期、时间、闹钟均可通过按键来调整。
4、  闹钟时间及开关状态可保存,即关机后再开机会显示上次关机前闹钟的设置
5、  4个独立按键:
S1:功能键。用来选择要更改的项目(年、月、日、周日、时、分、秒、闹钟)。
S2:加数键。按1下则数值加1
S3:减数键。按1下则数值减1
S4:确认键。在设置参数模式下,一按此键程序即返回到正常显示模式的状态。
在设置闹钟模式下,屏幕第二行显示的格式:@ NO 00:00:00

正常显示模式

正常显示模式

设置闹钟模式

设置闹钟模式

DS1302_1602.rar

494.96 KB, 下载积分: 积分 -1

售价: 3 积分  [记录]

C源程序、及摘要

 楼主| 发表于 2013-7-1 20:56:46 | 显示全部楼层
以前未试过利用时钟芯片DS1302来编时钟程序,通过这次修改程序、增加功能,编写程序摘要文档使我更加理解程序的功能及执行过程,同时也加深了对 DS1302、LCD1602  的了解。

看来编写文档,很好!很好!
 楼主| 发表于 2013-7-1 21:21:04 | 显示全部楼层
附件中C源文件生成的HEX文件显示达到9KB之大(我是用 Keil uVision3  来编的),但程序中并未增加以下功能:
1、显示“AM”、“PM” 的功能。
2、12小时制与24小时制之间切换的功能,现在只能以24小时制来显示。
3、在调整参数大小的过程中,不能通过长按加减键来实现自动快速加减数。
4、只能设置1个闹钟,不能设置多个。
5、没有秒表功能。
6、闹钟铃声只有“嘀嘀”声,没有乐曲。
7、也不能通过与PC机连接,进行由PC机来在线实时修改时钟日历的参数。
 楼主| 发表于 2013-7-2 21:41:16 | 显示全部楼层
还可以再加上懒人闹钟的功能。
发表于 2013-7-9 16:01:43 | 显示全部楼层
学习O(∩_∩)O谢谢
发表于 2013-12-7 10:21:49 | 显示全部楼层
谢谢                             
发表于 2013-12-30 14:39:06 | 显示全部楼层
发表于 2014-2-18 18:31:13 | 显示全部楼层
楼主真热心,分享这么好的嵌入式系统资料,多谢!
发表于 2014-8-20 21:52:26 | 显示全部楼层
谢谢你提供好的资料,学习学习~
发表于 2014-12-10 23:49:33 | 显示全部楼层
发表于 2014-12-14 00:31:38 | 显示全部楼层
看看,,,,
发表于 2015-2-2 11:04:50 | 显示全部楼层
楼主厉害
发表于 2015-4-6 14:46:59 | 显示全部楼层
卡卡看看。。。。
发表于 2015-4-7 13:09:58 | 显示全部楼层
这个帖子怎么收藏???
发表于 2015-4-7 17:32:46 | 显示全部楼层
楼上看什么?
发表于 2015-4-13 14:38:49 | 显示全部楼层
學習了,謝謝版主分享!!
发表于 2015-5-16 18:41:34 | 显示全部楼层
谢谢分享
发表于 2015-5-17 14:19:58 | 显示全部楼层
很好
发表于 2016-11-10 19:30:36 | 显示全部楼层
楼主为什么按照你的仿真LCD不显示
发表于 2017-4-10 16:02:30 | 显示全部楼层
你好 谢谢分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表