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

2013年07月01日 20:49    发布者:MCU_NEWER
在网上下的程序,针对自己的学习板修改了引脚的定义,并实现/增加了以下功能:1、设置参数其间光标闪烁等待的功能。   网上下的原程序无此功能,设置日期、时间时不知道光标移到哪?当前选中哪个参数,很不方便。   于是我修改了一下设置参数其间光标显示特性为“显示+闪烁”,并增加了等待按键的语句就实现了。 2、增加了一个按键——确认键 S4。   原程序只有3个按键,每次一进入设置参数模式后,都要进入到设置闹钟模式选中字符“@”再按一下加数键或减数键才能返回到正常显示模式,这样至少要按9次S1键(未进入设置闹钟模式、并且无调整过参数大小的情况),或者11次S1键+1次S2/S3键(有进入过设置闹钟的情况、并且无调整过参数大小的情况)。可见会按到你烦。   于是我增加了一个按键——确认键 S4,这样每次进入设置参数模式后,一按S4键就可返回到正常显示模式。 3、增加了闹钟记忆功能。   原程序虽然可以设置闹钟,但每当复位、关断电源后又重新接上电源时原来设置好的闹钟时间就掉失了,要重新设置。   于是我增加了闹钟记忆功能,把设置好的闹钟时间及闹钟开/关状态保存下来,重新接电后就是断电前设置的状态。 注:使用本程序要注意的地方:1、引脚定义时,DS1302、LCD1602 接到 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
该文章有附件资料,如需下载请访问 电脑版

网友评论

MCU_NEWER 2013年07月01日
以前未试过利用时钟芯片DS1302来编时钟程序,通过这次修改程序、增加功能,编写程序摘要文档使我更加理解程序的功能及执行过程,同时也加深了对 DS1302、LCD1602  的了解。

看来编写文档,很好!很好!
MCU_NEWER 2013年07月01日
附件中C源文件生成的HEX文件显示达到9KB之大(我是用 Keil uVision3  来编的),但程序中并未增加以下功能:
1、显示“AM”、“PM” 的功能。
2、12小时制与24小时制之间切换的功能,现在只能以24小时制来显示。
3、在调整参数大小的过程中,不能通过长按加减键来实现自动快速加减数。
4、只能设置1个闹钟,不能设置多个。
5、没有秒表功能。
6、闹钟铃声只有“嘀嘀”声,没有乐曲。
7、也不能通过与PC机连接,进行由PC机来在线实时修改时钟日历的参数。
MCU_NEWER 2013年07月02日
还可以再加上懒人闹钟的功能。
daizhi1970 2013年07月09日
:lol学习O(∩_∩)O谢谢
huangze2012 2013年12月07日
谢谢                             
lq520yxh520 2013年12月30日
:)
Hugo801122 2014年02月18日
楼主真热心,分享这么好的嵌入式系统资料,多谢!
yangxf0120 2014年08月20日
谢谢你提供好的资料,学习学习~
噢噢噢 2014年12月10日
:victory:
渴望 2014年12月14日
看看,,,,
pcbkey 2015年02月02日
楼主厉害
sheron888 2015年04月06日
卡卡看看。。。。
ceip2183 2015年04月07日
这个帖子怎么收藏???
myjanly 2015年04月07日
楼上看什么?
licu 2015年04月13日
學習了,謝謝版主分享!!
tangbaozi 2015年05月16日
谢谢分享
烟敛寒林 2015年05月17日
很好
随心小7 2016年11月10日
楼主为什么按照你的仿真LCD不显示
海潮 2017年04月10日
你好 谢谢分享
无所畏惧 2017年07月26日
注册 学习!
咖啡so 2017年08月02日
想要学习linux底层开发的速加君羊201030910
1207435600 2017年08月08日
我现在也想找一个时钟芯片,要求是外挂晶振的,误差24小时小于1秒,请问那位朋友可以推荐一颗芯片呀,谢谢。