您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 基于单片机的电子时钟和显示屏的设计
0目录1方案设计...................................................................................................1.1单片机电子时钟的背景................................................................11.2电子时钟的意义............................................................................11.3电子时钟的工作原理及其具体实现...........................................11.4设计任务.......................................................................................22电路方案设计........................................................................................32.1模块一电路图...............................................................................32.2模块二电路图...............................................................................32.3模块三电路图...............................................................................42.4总电路图.......................................................................................43程序设计..................................................................................................53.1主程序流程图...............................................................................53.2模块一DS1302流程图.................................................................63.3模块二12864LCD流程图............................................................83.4模块三DS18B20流程图..............................................................93.5源程序............................................................................................94仿真与调试...........................................................................................32总结语.......................................................................................................36参考文献...................................................................................................3711方案设计1.1单片机电子时钟的背景随着电子技术和计算机技术的迅速发展,单片机已经在工业过程控制、智能仪表、计算机集成控制、人工智能、通信设备的智能化以及家电的智能化等方面得到广泛的应用。以单片机和微控制器为核心仍然是当今实现智能化技术的主流。随着单片机技术广泛地应用与人们生活的各个方面,一些人们经常使用的产品大多数是基于单片机研发的,如电子时钟。钟表从原来的沙漏计时和机械打点塔钟等演变到如今的电池驱动钟、交流钟、指针式石英电子钟表和数字式石英电子钟表,并且钟表的准确度越来越高了。随着人们的时间观念逐渐地增强,时钟在我们人类的世界里扮演着一个非常重要的角色,几乎出现在我们生活的各个角落里,并且人们几乎离不开它了。如今的时钟的功能更加全面,与机械时钟相比具有更高的正确性和直观性,且无机械装置,具有更长的寿命,因此广泛地应用于人类正常生活中,得到人们的关注和研发。1.2电子时钟的意义电子时钟采用数字电路实现对时、分、秒和数字显示的计时装置,广泛使用于个人家庭、车站、机场等公共场所,成为人们日常生活中不可缺少的必需品,给人们的生活、学习、工作、娱乐带来了极大的方便。由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得电子时钟的精度、稳定性大幅度提高。现在的钟表的功能越来越强,具有定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动启闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,因此,研究数字时钟及其扩展,有着重大意义。1.3电子时钟的工作原理及其具体实现电子时钟的工作原理是采用单片机最小系统,用DS1302时钟芯片和12864LCD液晶显示屏芯片以及DS18B20温度传感器分别进行寄存相关信息、显示年月日时分秒和采取温度,用四个键分别实现选择调整对象为、增加调节对象的数值、减少调节对象的数值和调整确定,采用24小时制、定时器0中断和外部中断0,从而实现可调式中文电子日历、温度及整点报时功能。采用定时器0中断,定时50ms,其中断服务程序的功能是将时间和日期显2示到LCD上。每1s时间,刷新液晶显示屏上的秒钟数值;每60s时间,刷新显示屏的分钟数值;每60min时间,刷新显示屏的小时数值;每24h时间,刷新显示屏的日期;星期是通过年月日进行调整;温度是通过温度传感器芯片DS18B20进行调整;时钟每次到整点时,通过蜂鸣器进行整点报时。采用外部中断0实现时钟的调整,将四个键通过“与门”连接单片机P3^2端口,从而通过键产生外部中断信号。当要调整日期时间的时候,首先要按K1键来选择调整对象,否则按其他键不会进行时间调整,然后可以按K2和K3键对日期时间进行加减调整,最后按K4键可以将改动的日期时间重新显示到LCD上。并且每次按下键后,都会通过蜂鸣器发出按键声音。1.4设计任务(1)可调式中文电子日历的硬件和软件设计;(2)画出程序流程图;(3)编写代码;(4)程序分析与调试;32电路方案设计2.1模块一电路图该模块主要通过DS1302时钟芯片实现计算秒、分、时、星期、日、月、年的信息,且具有闰年补偿的功能,其在proteus中的电路图如图2.1.1所示。图2.1.1记录年月日秒分时星期的电路图2.2模块二电路图该模块主要通过12864LCD实现中文电子日历功能,其在proteus中的电路图如图2.2.1所示图2.2.1显示时间电路图42.3模块三电路图该模块主要通过DS18B20温度传感芯片、四个键以及蜂鸣器实现温度采集,时间调节和闹钟等功能。图2.3.1时间调整电路图2.4总电路图如图2.4.1所示。图2.4.1总体硬件电路图53程序设计3.1主程序流程图开始调用液晶初始化调用读取温度函数调用延时显示年的固定前两位显示固定汉字中断初始化装定时器0初值开定时器1Adjust_Index==-1调用显示当前时间函数显示温度值温度超过65?报警整点?调用音乐播放函数NYYNYYN图3.1.1主函数流程图63.2模块一DS1302流程图读读读读读读读读读读读读读DS1302读读读读读读读读读读读读DS1302读读读读读读读读读读DS1302读读读读读读读图3.2.1获取当前时间的流程图是年需要调整?是月需要调整?是日需要调整?是时需要调整?是分需要调整?是秒需要调整?根据相应的条件进行调整调用判断年是否为闰年来获取2月的天数如果年份变化后当前月份的天数大于上限则设为上限调用刷新星期函数break根据相应的条件进行调整获取2月天数如果月份变化后当前月份的天数大于上限则设为上限刷新星期break根据年份得出该年中2月的天数根据当前月份决定调节日期的上限,在进行相应的调整刷新星期break根据相应的条件进行调整break根据相应的条件进行调整break根据相应的条件进行调整breakNYNYNNbreakNYYYNY图3.2.2年月日时分秒++/--流程图7重装定时器的初值++tCount!=2tCount=0;调用显示年后两位值、月、日、星期、时分秒的值YN中断返回图3.2.3定时器0的中断服务程序K1==0选择调整对象K2==0对对象进行加K3==0对对象进行减K4==0将调整后的时间写入DS1302操作索引重设为-1,时间继续正常显示中断返回YYNNYNYN图3.2.4外部中断0服务程序83.3模块二12864LCD流程图初始化LCD包括8位形式,2行字符;开显示;清屏;画面不动光标右移;设置起始行调用LCD发送命令检查LCD是否忙?给相关的引脚赋相应的值返回N图3.3.1LCD初始化流程图第p页第L列小于64?L列+W字节小于64?全部显示在右半屏全部显示在左半屏如果越界则跨越左右半屏显示返回NYYN图3.3.2通用显示函数流程图93.4模块三DS18B20流程图判断DS18B20是否出故障?调用写一字节来跳过序列号置传感器标志位为0调用写一字节来启动温度转换调用函数使DS18B20初始化跳过序列号读取温度寄存器读取温度低8为读取温度高8位置传感器正常标志位为1NY图3.41读取温度值3.5源程序#includereg51.h#includeintrins.h#includestring.h#defineucharunsignedchar10#defineuintunsignedintsbitSDA=P1^0;/*DS1302数据线*/sbitCLK=P1^1;/*DS1302时钟线*/sbitRST=P1^2;/*DS1302复位线*/sbitK1=P3^4;/*选择键*/sbitK2=P3^5;/*加键*/sbitK3=P3^6;/*减键*/sbitK4=P3^7;/*确定键*/sbitSPK=P2^6;/*************子函数定义***************//*************显示年函数***************/externvoidLCD_Initialize();/*液晶初始化函数*//*******读取温度值******/externvoidRead_Temperature();externvoidDisplay_Temperature();/*显示时间函数*/externvoidDisplay_A_Char_8X16(ucharP,ucharL,ucha*M)reentrant;/*显示年月日,星期,时分秒的固定汉字函数*/externvoidDisplay_A_WORD(ucharP,ucharL,uchar*M)reentrant;voidBeep();/*启动蜂鸣器函数*//*在调整日期时间时,用该位决定是否反白显示*/externbitReverse_Display;externucharDisplay_Digit[]={0,0,0,0};/*待显示的各温度数位*/externbitDS18B20_IS_OK=1;/*传感器正常标志*//***
本文标题:基于单片机的电子时钟和显示屏的设计
链接地址:https://www.777doc.com/doc-4288372 .html