基于单片机的数字时钟加闹钟的设计与制作毕业设计.docx
- 文档编号:25677448
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:36
- 大小:803.03KB
基于单片机的数字时钟加闹钟的设计与制作毕业设计.docx
《基于单片机的数字时钟加闹钟的设计与制作毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字时钟加闹钟的设计与制作毕业设计.docx(36页珍藏版)》请在冰豆网上搜索。
基于单片机的数字时钟加闹钟的设计与制作毕业设计
题目基于单片机的数字时钟加闹钟的设计与制作
嵌入式综合课程设计III
(基于单片机的数字时钟加闹钟的设计与制作)
任务提出:
随着单片机技术的飞速发展,在其推动下,现代的电子产品几乎渗透到了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能恥諤銪灭萦欢煬鞏鹜錦。
进一步提高。
时间就是金钱、时间就是生命、时间就是胜利……,准确的掌握时间和分配时间对人们来说至关重要,时钟是我们生活中必不可少的工具。
电子钟的设计方法有很多种,但是基于单片机并通过LCD显示的电子时钟具有编程灵活、精确度高、便于携带、显示直观等特点。
利用STC89C52单片机对DS1302时钟芯片进行读写操作并通过LCD1602字符液晶显示实时时钟信息,这样便构成了一个单片机电子时钟。
鯊腎鑰诎褳鉀沩懼統庫。
设计要求:
利用单片机作为核心控制器件,制作一个数字时钟。
要求其具有如下功能:
1具有年、月、日、星期、时、分、秒显示功能;
2具备年、月、日、星期、时、分、秒校准功能;
3具有闹钟显示、调节设定、鸣叫功能;
4计时器模块能够准确计时;
5显示模块能够清晰、稳定显示,不出现乱码;
6输入模块能够正确输入指令;
7控制模块能够正确控制输入、输出显示;
8整个系统能够正常、稳定工作。
摘要
随着单片机技术的飞速发展,在其推动下,现代的电子产品几乎渗透到了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高。
硕癘鄴颃诌攆檸攜驤蔹。
时间就是金钱、时间就是生命、时间就是胜利……,准确的掌握时间和分配时间对人们来说至关重要,时钟是我们生活中必不可少的工具。
电子钟的设计方法有很多种,但是基于单片机并通过LCD显示的电子时钟具有编程灵活、精确度高、便于携带、显示直观等特点。
利用STC89C52单片机对DS1302时钟芯片进行读写操作并通过LCD1602字符液晶显示实时时钟信息,这样便构成了一个单片机电子时钟。
阌擻輳嬪諫迁择楨秘騖。
【关键词】:
单片机,电子时钟,STC89C52,蜂鸣器
1绪论
1.1引言
时间,对人们来说是非常宝贵的,准确的掌握时间和分配时间对人们来说至关重要。
因此自从时钟发明的那刻起,就成为人类的好朋友。
随着时间的流逝,科学技术的不断发展和提高,人们对时间计量的精度要求越来越高,应用越来越广。
怎样让时钟更好、更方便、更精确的显示时间,这就要求人们不断设计研发出新型的时钟。
氬嚕躑竄贸恳彈瀘颔澩。
高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校。
数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。
在单片机的应用系统中,时钟有两个方面的含义:
一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:
一是用软件实现,即用单片机内部的釷鹆資贏車贖孙滅獅赘。
可编程定时器计数器来实现;二是用专门的时钟芯片实现。
1.2研究目的
通过利用STC89C52单片机和DS1302芯片以及外围的按键和LCD显示器等部件,设计一个基于单片机的电子时钟。
设计的电子时钟通过液晶显示器显示,并能通过按键对时间以及闹钟进行置。
怂阐譜鯪迳導嘯畫長凉。
1.3系统基本方案选择和论证
1.3.1单片机芯片的选择方案和论证:
方案一:
采用STC89C52芯片作为硬件核心。
STC89C52内部具有8KBROM存储空间,512字节数据存储空间,带有2K字节的EEPROM存储空间,与MCS-51系列单片机完全兼容,STC89C52可以通过串口下载。
谚辞調担鈧谄动禪泻類。
方案二:
采用AT89S52。
AT89S52片内具有8K字节程序存储空间,256字节的数据存储空间没有EEPROM存储空间,也与MCS-51系列单片机完全兼容,具有在线编程可擦除技术。
两种单片机都完全能够满足设计需要,STC89C52相对ATS89C52价格便宜,且抗干扰能力强。
考虑到成本因素,因此选STC89C52。
嘰觐詿缧铴嗫偽純铪锩。
1.3.2显示模块选择方案和论证:
方案一:
采用点阵式数码管显示。
点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且也相对较高,所以不用此种作为显示。
熒绐譏钲鏌觶鷹緇機库。
方案二:
采用LED数码管动态扫描。
LED数码管价格便宜,对于显示数字最合适,但功耗较大,且显示容量不够,所以也不用此种方案。
方案三:
采用LCD液晶显示屏。
液晶显示屏的显示功能强大,可显示大量文字,显示多样,清晰可见,且价格适中,所以采用LCD数码管作为显示。
鶼渍螻偉阅劍鲰腎邏蘞。
1.3.3时钟芯片的选择方案和论证:
方案一:
直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。
采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。
所以不采用此方案。
纣忧蔣氳頑莶驅藥悯骛。
方案二:
采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA.颖刍莖蛺饽亿顿裊赔泷。
1.3.4电路设计最终方案确定
综上各方案所述,对此次作品的方案选定:
采用STC89C52单片机作为主控制系统;采用DS1302作为时钟芯片;采用LCD1602液晶作为显示器件。
濫驂膽閉驟羥闈詔寢賻。
1.4硬件系统框图
单
片
机
DS1302计时模块
键盘输入模块
LCD1602显示模块
蜂鸣器
该系统采用单片机89C52作为控制芯片,把DS1302计时模块传来的信息和键盘输入的指令进行处理,控制着液晶屏LCD1602的显示和蜂鸣器的驱动。
銚銻縵哜鳗鸿锓謎諏涼。
2主要元件介绍
2.1STC89C52以及最小系统介绍
2.1.1ST89C52单片机:
1.主要性能参数:
①与MCS-51产品指令和引脚完全兼容。
②8字节可重擦写FLASH闪速存储器
③1000次擦写周期
④全静态操作:
0HZ-24MHZ
⑤三级加密程序存储器
⑥256X8字节内部RAM
⑦32个可编程I/0口线
⑧3个16位定时/计数器
⑨8个中断源
⑩可编程串行UART通道、低功耗空闲和掉电模式。
挤貼綬电麥结鈺贖哓类。
2.功能特性:
STC89C52提供以下标准功能:
8字节FLASH闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电上作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器.串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位.赔荊紳谘侖驟辽輩袜錈。
3.管脚图:
STC89C52引脚介绍:
①主电源引脚(2根)
VCC(Pin40):
电源输入,接+5V电源
GND(Pin20):
接地线
②外接晶振引脚(2根)
XTAL1(Pin19):
片内振荡电路的输入端
XTAL2(Pin20):
片内振荡电路的输出端
③控制引脚(4根)
RST/VPP(Pin9):
复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):
地址锁存允许信号
PSEN(Pin29):
外部存储器读选通信号
EA/VPP(Pin31):
程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
塤礙籟馐决穩賽釙冊庫。
④可编程输入/输出引脚(32根)
STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
裊樣祕廬廂颤谚鍘羋蔺。
P0口(Pin39~Pin32):
8位双向I/O口线,名称为P0.0~P0.7
P1口(Pin1~Pin8):
8位准双向I/O口线,名称为P1.0~P1.7
P2口(Pin21~Pin28):
8位准双向I/O口线,名称为P2.0~P2.7
P3口(Pin10~Pin17):
8位准双向I/O口线,名称为P3.0~P3.7
2.1.2计时芯片DS1302:
1.概述:
DS1302是DALLAS公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整。
时钟操作可通过AM/PM指示决定采用24或12小时格式。
DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线①RES复位②I/O数据线③SCLK串行时钟。
RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。
DS1302工作时功耗很低保持数据和时钟信息时功率小于1mW。
仓嫗盤紲嘱珑詁鍬齊驁。
2.DS1302功能特性:
双电源管脚用于主电源和备份电源供应VCC1为可编程涓流充电电源;附加七个字节的存储器;实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力31*8位暂存数据存储RAM;串行I/O口方式使得管脚数量最少;宽范围工作电压2.0~5.5V;工作电流2.0V时,小于300nA;读/写时钟或RAM数据时有两种传送方式:
单字节传送和多字节传送字符组方式;8脚DIP封装或可选的8脚SOIC封装;简单3线接口;与TTL兼容(VCC=5V);可选工业级温度范围:
-40℃~+85℃。
绽萬璉轆娛閬蛏鬮绾瀧。
3.管脚描述:
X1、X2——32.768KHz晶振管脚
GND——地
RST——复位脚
I/O——数据输入/输出引脚
SCLK——串行时钟
VCC1、VCC2——电源供电管脚
4.DS1302的控制字如表所示。
控制字节最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进骁顾燁鶚巯瀆蕪領鲡赙。
行读操作,控制字节总是从最低位开始传输。
DS1302控制字
数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
其读写时序如图示:
瑣钋濺暧惲锟缟馭篩凉。
DS1302读写时序
2.1.3字符液晶显示屏LCD1602资料:
1.概述:
工业字符型液晶,1602是指显示的内容为16*2,即能够同时显示两行,每行16个符。
常见的1602字符液晶有两种,一种显示的是绿色背光黑色字体,另一种显示蓝色背光白色字体,目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的。
本课题所用1602液晶模块,显示屏是蓝色背光白色字体。
如图鎦诗涇艳损楼紲鯗餳類。
2.引脚功能说明:
第1脚:
GND为地电源。
第2脚:
VCC接5V正电源。
第3脚:
VO为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,
对比度过高时会产生重影,使用一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
DB0~DB7为8位双向数据线。
第15~16脚:
背光灯电源。
DS1302读写时序
3.LCD1602液晶屏的使用时序:
LCD1602读时序
LCD1602写时序
4.LCD1602存储器RAM:
1602液晶控制器芯片内部带有80个8位的RAM缓冲区,其地址和屏幕的对应关系如图示:
2.1.4电源模块:
系统的供电采用5V供电,具体的连接如图示:
变压器采用的是:
AC220~AC9V,稳压芯片是LM7805。
3.硬件电路连接图:
以STC89C52单片机最小系统为核心控制,时钟电路由DS1302芯片提供,采用三线与单片机进行通信,用四个独立的按键进行年、月、日、时间、星期等调整,最终的结果通过LCD1602液晶显示屏显示出来。
栉缏歐锄棗鈕种鵑瑶锬。
3.1单片机的连接图
其中XTAL1和XTAL2接11.0592MHZ的晶振,RST经开关接+5V,控制系统的复位。
P1口与DS1302计时模块连接,进行通信与对其控制。
P2口与LCD1602液晶显示模块连接,控制着LCD1602的显示。
P3口与按键连接,通过P3口输入控制信号。
辔烨棟剛殓攬瑤丽阄应。
3.2DS1302计时模块
其中X1、X2接晶振32.768KHZ,VCC1、VCC2接电源I/O接单片机的P1.1,,进行数据的交换,SCLK接单片机的P1.0,RST接单片机的P1.2引脚,进行指令的接收。
峴扬斕滾澗辐滠兴渙藺。
3.3LCD1602液晶显示模块
其中DB0~DB7分别接单片机的P2.0~P2.7,进行数据的传输,VO接电阻进行背光亮度的调节,RS、RW和EN分别接单片机的P1.3~P1.5,用于单片机的指令接收。
詩叁撻訥烬忧毀厉鋨骜。
3.4按键模块
开关一端接地,另一端接P3.0~P3.3,单片机用检测P3.0~P3.3引脚的电位判断是否有键按下。
4.系统的软件设计:
4.1软件设计流程图:
首先,编写主程序,对计时模块DS1302和显示模块LCD1602进行初始化,同时定义计时模块、显示模块和按键模块的控制程序,之后读取DS1302计时模块预先设定数据,显示模块LCD1602进行显示。
按键检测程序一直在检测是否有键按下,如果S1键按下一次,主函数调用计时控制和显示控制的函数对秒进行操作,此时秒闪烁,如果此时按下S2、S3可对其进行加减调整;按下如果S1按下两次,主函数调用计时控制和显示控制的函数对分进行操作,此时分闪烁,如果此时按下S2、S3可对其进行加减调整;按下如果S1按下三次,主函数调用计时控制和显示控制的函数对时进行操作,此时时闪烁,如果此时按下S2、S3可对其进行加减调整;按下如果S1按下四次,主函数调用计时控制和显示控制的函数对年进行操作,此时年闪烁,如果此时按下S2、S3可对其进行加减调整;按下如果S1按下五次,主函数调用计时控制和显示控制的函数对月进行操作,此时月闪烁,如果此时按下S2、S3可对其进行加减调整;按下如果S1按下六次,主函数调用计时控制和显示控制的函数对日进行操作,此时日闪烁,如果此时按下S2、S3可对其进行加减调整;按下如果S1按下七次,主函数调用计时控制和显示控制的函数对周进行操作,此时周闪烁,如果此时按下S2、S3可对其进行加减调整;按下如果S1按下八次,程序进入主函数。
则鯤愜韋瘓賈晖园栋泷。
5.系统的调试:
将系统的电源、计时模块、按键模块、显示模块、控制模块,按照附录一的电路做成PCB电路板,把元器件焊接在板子上。
进行硬件的搭建。
搭建好硬件之后,将编译好的软件程序下载到STC89C52中。
检查无误后,接通电源,看是否能够实现预期的功能。
在单个的模块调试中,各个模块均能够正常稳定的工作,但是在将它们装配在一块,进行整体的调试时,就出现了其他一些问题,不能实现预期的功能。
经过仔细的检查和查阅资料、询问老师同学等方式,进行解决。
现在系统能够稳定、正常的工作。
胀鏝彈奥秘孫戶孪钇賻。
调试过程:
①检查各个器件完好,连接正常之后,接通电源,此时电源指示灯亮,液晶显示屏LCD1602同时亮,依次出现开机画面;②数秒之后,显示初始的年、月、日、星期、时、分、秒。
③通过模式选择键可以在时间显示模式和闹钟模式之间切换,④通过移位键可以使液晶屏上的光标依次移位,⑤将光标移位在想要的调节的位置,按加、减键可以进行该位置的数字的调整。
⑥加、减键可以在按下移位键之后,调节光标闪烁位置的数字。
⑦将模式切换到闹钟模式,依次调整时、分,当时间到预设的时间,蜂鸣器发出”滴滴…”声。
鳃躋峽祷紉诵帮废掃減。
6.总结:
通过本次课程设计,使我加深了对单片机的认识,并且掌握了单片机系统的设计、制作流程,收获丰硕。
功能上基本达标:
时钟与闹钟的显示,调时间和闹钟功能以及闹钟鸣叫功能。
时钟与闹钟显示功能,精确度完全可以满足日常生活显示时间的需要;调时间与闹钟功能,方便快捷。
硬件设施基本合乎要求,软件设计可以配合硬件实现其功能。
稟虛嬪赈维哜妝扩踴粜。
技术在不断进步,机械式时钟已经被淘汰,取而代之的是具有高度准确性和直观性且无机械装置,具有更长的使用寿命等优点的电子时钟。
电子时钟更具人性化,更能提高人们的生活质量,更受人们欢迎。
机械时代已经远去,电子时代已经到来。
做为新时代的我们,更应该提高自身能力,适应新时代的发展。
知识来自实践,多从生活中探寻所需要的。
陽簍埡鲑罷規呜旧岿錟。
从这次的课程设计中,我真正的体会到,知识的重要性,特别是要理论联系实际,把我们所学的理论知识运用到实际生活当中,学以致用。
沩氣嘮戇苌鑿鑿槠谔應。
参考文献
[1]李广第,朱月秀,冷租祁.单片机基础第三版.北京:
北京航空航天大学出版社(1——259)。
[2]李庆亮.C语言程序设计实用教程.北京:
机械工业出版社,2005.3(1——100)。
[3]康华光.电子技术基础数字部分.北京:
高等教育出版社,2008(1——560)。
[3]康华光.电子技术基础模拟部分.北京:
高等教育出版社,2008(1——560)。
[4]杨志忠.数字电子技术.北京:
高等教育出版社,2003.12(30——100)。
[5]及力.Protel99SE原理图与PCB设计教程.北京:
电子工业出版社,2007.8(48——100)。
钡嵐縣緱虜荣产涛團蔺。
[6]杨欣.电子设计从零开始.北京:
清华大学出版社,2005(10——200)。
[12]邢小杰.单片机电子时钟设计.中国科技博览,2009。
懨俠劑鈍触乐鹇烬觶騮。
附录一:
整体电路连接图:
附录二:
源程序代码:
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
bitflag;
uchars1num;
charnian,yue,ri,shi,fen,miao,week;
chara_fen=10,a_shi=10;//初始值年周月时分秒
ucharkaiji[]="^-^-Welcome!
-^-^";//开机画面显示
ucharkaiji1[]="***GoodLuck!
***";
//123456789abcdefg
ucharalarm_table[]="Alarm:
";
ucharwrite_add[7]={0x8c,0x8a,0x88,0x86,0x84,0x82,0x80};謾饱兗争詣繚鮐癞别瀘。
ucharread_add[7]={0x8d,0x8b,0x89,0x87,0x85,0x83,0x81};呙铉們欤谦鸪饺竞荡赚。
sbitrs=P1^5;//1602定义
sbitrw=P1^4;
sbite=P1^3;
sbitsck=P1^0;//1302定义
sbitio=P1^1;
sbitrst=P1^2;
sbits1=P3^2;//调整按键
sbits2=P3^1;//加1
sbits3=P3^0;//减1
sbits4=P3^3;//模式选择
sbitdd=P3^4;//蜂鸣器
voiddelay_1ms(ucharm)//延时函数
{
uchari,j;
for(j=0;j for(i=0;i<110;i++); } voidbeep()//蜂鸣器发声 { dd=0; delay_1ms(50); dd=1; } voidwrite_com(ucharcom)//lcd1602写指令 { e=0; rs=0; rw=0; P2=com; delay_1ms (1); e=1; delay_1ms (1); e=0; } voidwrite_data(uchardat)//lcd1602写数据 { e=0; rs=1; rw=0; P2=dat; delay_1ms (1); e=1; delay_1ms (1); e=0; } voidwrite_sfm(ucharadd,uchardat)//时分秒刷新显示函数莹谐龌蕲賞组靄绉嚴减。 { ucharshi,ge; shi=dat/10; ge=dat%10; write_com(0xc0+add); write_data(0x30+shi); write_data(0x30+ge); } voidwrite_nyr(ucharadd,uchardat)//年月日刷新显示函数 { ucharshi,ge; shi=dat/10; ge=dat%10; write_com(0x80+add); write_data(0x30+shi); write_data(0x30+ge); } voidwrite_ds1302_byte(ucharadd)//ds1302 { uchari; for(i=0;i<8;i++) { sck=0; io=add&0x01; add=add>>1; sck=1; } } voidwrite_ds1302(ucharadd,uchardat) { rst=0; _nop_(); sck=0; _nop_(); rst=1; _nop_(); write_ds1302_byte(add); write_ds1302_byte(dat); rst=0; _nop_(); io=1; sck=1; } voidwrite_tran_data(ucharadd,uchardat)//十进制转换成BCD码麸肃鹏镟轿騍镣缚縟糶。 { uchart; t=dat/10; dat=dat%10;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 数字 时钟 闹钟 设计 制作 毕业设计
![提示](https://static.bdocx.com/images/bang_tan.gif)