- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
智能电子钟的设计与制作 电子钟的功能 我们组员分析了基于STC89C52以及DS12C887芯片进行电子钟设计的基本原理和硬软件设计方法,本设计可实现显示年、月、日、星期、时、分、秒等基本功能,并通过简易的按键操作可实现时制切换、到时闹铃功能。 系统方案设计 本系统利用单片机(STC89C52)和DS12C887时钟芯片实现对时间的控制。在1602液晶上显示年,月,日,星期,时,分,秒,并且按秒实时更新显示;具有闹铃报警功能;并可任意更改时间;采用个性化的液晶显示,当开始供电时以屏幕的平移为起始,时间信息从右往左平移至中央 ;利用DS12C887自身掉电可继续走时的特性,实现断电后时间不停,再次上电时时间仍准确显示在液晶上的功能。以上各种功能依据一定的联系,组成一个比较完整的系统 主控单元方案选择 ?STC89C52是一种低损耗、高性能、CMOS八位微处理器,片内有4k字节的在线可重复编程快擦快写程序存储器,能重复写入/擦除1000次。它与MCS-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。STC89C52可构成真正的单片机最小应用系统,缩小系统体积, 增加系统的可靠性,降低了系统成本。因此,本设计主控芯片采用STC89C52。 显示方案选择 ?方案一:普通LED数码管显示。最简单最容易操作的显示方法。采用8段数码管既经济实惠,效果也比较好,但是本次设计需要的显示数据比较多,此时数码管显示就显得捉襟见肘了。? 方案二:LCD1602液晶显示。可以较为清晰的显示出字母和数字,显示效果出众,可以方便与单片机进行通信。1602液晶提供了2行16列的显示范围,足够显示年月日星期以及时间了。 ?方案三:点阵式LCD12864显示,这种显示器操作最为复杂,指令繁多,但是显示效果最好,不仅可以显示数字,字母,还可以显示汉字,图形等。??????? ?比较上述方案,我们选择方案二。原因有几点:需要显示2行字母及数字;价格实惠;最容易操作控制。 时钟信号来源方案选择 ?电子钟的时钟信号的来源一般有两种:单片机提供和时钟芯片提供。这两种时钟信号各有其利弊。???????????? ??????? ?采用单片机提供的方案电路结构简单,程序编写方便,但由于不同单片机工作的时钟频率不同程序的移植性不强,时钟的精度不高,一般还需占据单片机的一两个定时计数器,在系统设计时占用了宝贵资源。采用时钟芯片提供的方案虽然电路复杂一些但具有很高的时钟精度和程序的可移植性。通过比对本设计采用了时钟芯片DS12C887来提供时钟信号。 硬件电路分析与设计 硬件电路原理图 最小系统图 硬件电路分析与设计 STC89C52原理图 硬件电路分析与设计 1602晶体与单片机连接图 1.液晶1,2端为电源,15,16为背光电源,为防止直接加5V电压烧坏背光灯,在15脚串联10欧电阻限流。 液晶3端为液晶对比度调节端,通过一个10K欧电位器接地来调节液晶显示对比度 硬件电路分析与设计 DS12C887与单片机连接图 1.IRQ为DS12C887的中断申请端,必须和单片机的外部中断引脚相联。 注:P0同时与液晶和DS12C887相联,这样复用并不会发生冲突,因为单片机在操作液晶的时候是不会操作DS12C887的,它们都有各自的片选信号。 程序流程说明 图 主程序流程图 电子钟程序 #includereg52.h #define uchar unsigned char #define uint unsigned int sbit rs=P3^5;//液晶数据命令选择断 sbit lcden=P3^4;//液晶使能端 sbit s1=P3^6;//功能键 sbit s2=P3^1;//增大键 sbit s3=P3^2;//减小键 sbit beep=P2^3;//蜂鸣器 sbit dscs=P1^4;//芯片片选端 sbit dsas=P1^5;//地址选通输入端 sbit dsrw=P1^6;//写允许输入 sbit dsds=P1^7;//读允许输入 电子钟程序 sbit dsirq=P3^3;//终端请求输出 uchar count,s1num,flag; bit flag1; char miao,shi,fen,nian,yue,ri,week; uchar code table[]= 20 - - ;//液晶固定显示 uchar code table1[]= : : ; uchar code table2[]= Hell
文档评论(0)