基于单片机的多功能电子万年历的设计
基于单片机的多功能电子万年历的设计.docx
《基于单片机的多功能电子万年历的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的多功能电子万年历的设计.docx(56页珍藏版)》请在冰点文库上搜索。
1、基于单片机的多功能电子万年历的设计基于单片机的多功能电子万年历的设计摘 要随着科技的快速发展,自从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。本文主要介绍了基于单片机的智能电子万年历的研制,该万年历能够实时显示公历年、月、日、时、分、秒,以及对应的农历日期、24节气、天干地支、闹铃功能,同时还能够实时测取环境温度。本系统的硬件部分主要由AVR单片机、时钟芯片、温度传感器等部件组成,文中给出了详细的硬件设计实现及相关电路图;软件部分主要包含公历转农历的算法设计模块、显示模块、时间的读取、温度的检测模块,按键的扫描输入模块等,文中给出了系统的软件程序流程图及各功能模块的软件程序清单,最后
2、介绍了整体系统的设计实现、仿真及调试过程,给出了下一步的改进方案等。关键词:单片机;液晶技术;万年历;时钟芯片Design of Multifunctional digital Perpetual Calendar Based on MCUAbstractWith the development of technology,Since the concept of the sun, Baizhong, andnow the electronic bell,human beings continue to study and constant innovation record。This pap
3、er-based Microcontroller Development of Intelligent electronic calendar, The calendar can display real-time in the calendar year, month, day, hours, minutes and seconds,a nd the correspond ing date of the Lunar New Year, 24 Solar Terms,at the same time also to real-time measurement from the ambient
4、temperature,In addition to the user through the keyboard input years of history,for the correspond ing period of the Lunar.The system hardware from some of the major AVR microcontroller, a number of digital control, decoder, the clock chip,temperature sensors and other components,the paper gives a d
5、etailed design and implementation of hardware and related circuit;Software contains some of the major Lunar calendar to the algorithm design module,dynamic digital display modules,time to read,temperature detection module,Press enter the scanning module.In this paper, the system software modules and
6、 flow chart of the list of software programs,Finally, the realization of the overall system design, simulation and debugging process, the next step is the improvement programmes.Keywords:MCU;crystal technology;Calendar;Clock chip引言1第1章 绪论2 1.1 课题的背景与意义2 1.2 数字万年历的现状与发展2 1.3 论文的主要工作及章节安排3 1.4 本章小结3第2
7、章 方案论证比较 4 2.1 多功能数字万年历系统概述 42.2计时方案42.3温度检测方案52.4显示方案5 2.5本章小结5第3章 系统硬件设计63.1 主控制器ATmega16 单片机介绍63.2 时钟电路DS130263.3 温度检测DS18B2073.4 动态显示83.5 键盘接口83.6 语音闹铃模块83.7 电源设计9 3.8本章小结11第4章 系统软件设计124.1 公历计算显示程序设计134.1.1 DS1302 内部寄存器134.1.2 时间读取程序设计154.2 农历转换程序设计164.2.1 公历转农历算法研究164.2.2 干支纪年简介184.2.3 公历转农历程序1
8、84.3 温度测量程序设计204.3.1 DS18B20 的测温原理204.3.2 温度程序214.4 二十四节气算法研究234.5系统仿真24 4.6本章小结25结论与展望26致谢27参考文献28附录 A 电子万年历原理图29附录 B 外文文献与译文30附录 C 参考文献题录及摘要35附录D 电子万年历源程序37插图清单表格清单引言人类的日常生活离不开时间,任何具有周期性变化的自然现象都可以用来测量时 间。远古时代的中国人通过观测日影的位置以确定当时的时辰或刻数,发明了古老的计 时工具日晷。日晷虽然只由一根晷针和刻有刻线的晷面组成,但是它确利用了复杂的天 体运动规律,这反映了我国古代劳动人民
9、的智慧。随着科技的进步以及中西文化的交融 , 希腊人根据水流从一个容器滴漏到另一个容器的数量来计量时间从而发明了滴漏,在当 时得到了普遍的应用。到十四世纪,简易的机械钟开始在欧洲流行,1656 年出现了有摆 的座钟。它是以伽利略发现的摆动具有规则性这个原理为基础而发明的。自此以后人类 掌握了比较精确的计时工具,并不断改进计时方法。现在人们日常生活中广泛使用的是 机械表、电子表、电子钟等。对于日以上的时间系统计量与安排则属于历法范畴,历法在我们几千年的华夏文明 中占有重要的地位,中华子孙繁衍生息,最早就是依靠耕种为主的农业,那时人们是日 出而作、日落而息。后来经过长期的经验积累,掌握了太阳的变化
10、,发现年、月、日都 直接与天体运行周期相关。因此,人们就把四季更迭的周期定为年,把月亮盈亏变化的 周期定为月。一回归年 365.2422 日,一朔望月为 29.5306 日,它们既不是月的整数倍, 也不是日的整数倍,使用起来很不方便。因此在人为规定历法中的年和月都是整数日, 这种整数日的年和月,称为历年和历月。这就是早期的历法,根据春夏秋冬的季节变化 及天干地支时间为依据万年历算法,来确定什么时候应该耕种,什么时间该收获,这些历法一直延 续了几千年,这是在世界上也是首屈一指的。现在人们日常生活中广泛使用的有日历和 挂历等。以上介绍的记录时间的钟表和记录年、月、日的挂历都只具有某一方面的功能,比 如钟表只
11、能记录时间,即便是比较先进的钟表顶多也只能多一个记录日期的功能;挂历 也只能记录日期而不能记录时间。随着科技的发展,电子技术和计算机应用领域不断扩 大,特别是单片机的出现,是近代计算机技术发展史上的一个重要里程碑,因为单片机 的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。单片机 单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表 、 汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端 及通讯产品中,成为现代电子系统中最重要的智能化工具,于是基于单片机的醒目而时 尚的电子版万年历顺应而生。基于单片机的电子万年历结合了时钟
12、和日历的功能,将其二者融为一体,在显示时间的同时还能显示日期和年、月,它主要是通过单片机来读取时钟芯片的时间、日期,然后送给显示设备显示出来。本文设计的数字万年历与普通万年历相比具有一下特点:1.除了能显示通用的公历外还能显示我国的农历,除了能显示农历的日、月外还能显示农历的年号、节气。它是根据单片机读取到的时钟芯片的日期计算出农历的日期、年号和节气,然后通过单片机的I/O口直接送给液晶显示屏,通过软件程序来控制显示内容; 2.能查询1921年2月8日至2100年2月8日间任意一天的公历和农历的对应关系;3.能实时准确显示它所处环境的温度。本设计所采用的测温元件是美国DALLAS半导体公司生产
13、的一种智能温度传感器DS18B20,测温范围为55125,最高分辨率达到0.0625;4.能实现多点定时并且语音报时。第1章 绪论1.1 课题的背景与意义随着电子技术的迅速发展,特别是大规模集成电路出现,给人类生活带来了根本性的改变,尤其是单片机技术的应用产品已经走进了千家万户。近年来,我国科技的不断发展,我国经济发展的支柱产业电子产业获得长足发展,各种电子产品琳琅满目,随处可见,随着电子产品的更新速度的加快,各种功能强大,款式新颖的电子产品不断问世。数字万年历便是这一发展趋势中的代表,数字万年历则顺应了人们对时间方面的要求。它的出现给人们的生活带来的诸多方便,在时间极显宝贵的现代生活中,其作
14、用更是不言而喻。它在学校、车站、码头、剧院、医院、办公室等公共场所的应用非常广泛。但传统的数字万年历除显示时间之外,功能较为单一,逐渐失去了市场。顺应技术发展和人们生产、生活需求,各种功能的新式万年历不断涌现,且功能不断更新。数字万年历作为电子类的小产品以其方便、实用等优势成为市场上的宠儿,同时也成为单片机设计培训中一个很实用的课题。因为这个课题有很好的的开发性和可发挥性,因此对设计者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。而且要求设计的数字万年历在操作上力求简洁,功能上尽量齐全,显示界面也要出色。所以数字万年历无论从实用的角度和培养能力的角度都很有价值。1.2
15、 数字万年历的现状与发展当前,数字万年历技术已经进入了优化人-家庭 -环境的整体关系的阶段,它向着超微型、超高效以及集成电路的微型化方向发展,并为数字万年历上的集中控制提供了基础。目前,市场上出售的数字万年历品种很多,其中大部分是基于单片机技术设计的电子系统。它们一般由输入脉冲电路、单片机、晶振和复位电路、外部存储器电路和LED显示电路组成。当今,数字万年历主要还是用于计时、自动报时、定时、日期查询以及自动控制等方面。由于单片机技术以及数字集成电路技术的发展和采用了先进的石英技术,使得如今的数字万年历系统具有体积小、耗电省、计时准确、性能稳定、维护方便、走时准确、携带方便等优点,此外,现在市场
16、上已有现成的数字万年历集成电路芯片出售,而且价格便宜、使用也很方便。日历的发展经历了数千年的历史。现代日历随着使用范围的不断扩大,功能日益增加,种类也越来越多。从70年代以来,随着单片机和超大规模集成电路的发展,为数字万年历的飞速发展奠定了物质基础。近几年来,数字万年历的发展方向是朝着走时精度高、稳定性好、使用方便、耗电量小、走时延续时间长、体积小、功能多、制造成本低等方向发展。最新的数字万年历,它除了具有常见万年历功能外,而且还具有倒计时、多点定时、语音报时、实时温度测量等功能。在硬件方面它并没有太大的变化,主要是通过增加软件部分来实现倒计时、多点定时的功能。 不难想像,随着科学技术的飞速发
17、展, 各种高新技术的出现并被广泛应用到生产、生活中,未来数字万年历产品也必将沿着体积小、耗电省、计时准确、性能稳定、维护方便、走时准确、性能稳定、携带方便等方向发展而其成本却越来越低。1.3 论文的主要工作及章节安排论文主要围绕对数字万年历系统的设计为主线展开,主要包括复位电路设计、时钟电路设计、按键电路设计、实时控制电路设计、报时电路设计、数字万年历显示电路设计等硬件电路的设计以及为实现其各项功能而编写的软件程序设计等。论文具体章节的安排如下:第一章:阐述本课题的背景与意义,并对数字万年历系统的现状与发展展开了叙述,以及按章节具体介绍了论文所需要完成的工作。第二章:介绍了本套系统的组成,并讨
18、论了本套数字万年历系统的几种方案设计以及主要电路的方案设计与比较,从而从理论上得出了本套系统最合理的方案设计。第三章:介绍了本套系统的各硬件模块设计,提出了几种基本硬件电路的设计。第四章:介绍了数字万年历系统的软件设计以及如何读取DS1302时间以及公历与农历如何转换等。1.4 本章小结 本章首先讲述了本文的选题来源及研究意义,然后讲述了数字万年历系统在国内外的发展过程及当前现状,其中叙述了数字万年历系统的优点,最后根据论文需要研究的主要内容,对课题的来源与所要完成的工作做了进一步的交代。第2章 方案论证比较2.1 多功能数字万年历系统概述本设计是利用键盘模块进行输入控制,将控制指令传送到单片
19、机,通过单片机的数据处理,配合复位电路以及时钟电路来驱动LCD显示和闹铃音乐,从而实现该数字万年历的各项功能。单片机是整个系统的核心,它既是协调整机工作的控制器,又是数据处理器,AVR公司的Mega系列能完成本系统所要求的所有功能,所以选用单片机ATmega16;时钟芯片采用DALLAS公司的DS1302涓流充电时钟芯片;按键电路拟采用四个按键,分别实现校时、定时功能,并且定时时间到可报时;显示电路采用12864点阵字符液晶显示器;语音系统是提示用户系统的实时状态或对系统进行操作,语音电路可提供整点报时、闹铃等功能,本系统选用简单的蜂鸣器来完成。系统整体设计框图如图 2-1 所示:图 2-1
20、系统总体框图2.2 计时方案时钟是本电子万年历最主要的部分,根据需要,可利用两种方案实现。方案一:本方案完全用软件实现走时,原理为:利用定时器与软件结合实现 1 秒定时中断,每产生一次中断,存储器内相应的秒值加 1;若秒值达到 60,则将其清零,并 将相应的分字节值加 1;若分值达到 60,则清零分字节,并将时字节值加 1;若时值达 到 24,则将十字节清零。该方案具有硬件电路简单的特点,但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高,而且,由于是软件实现,当单片机不上电万年历算法,程序不执行时,时钟 将不工作。方案二:采用 Dallas 公司的专用时钟芯片 DS1302。该芯片内部采用
21、石英晶体振荡器,其芯片精度不大于 10ms/年,可直接读取时间、日期,使得软件编程相对简单。而 且 DS1302 可以在很小电流的后备电源(2.5V-5.5V,在2.5V 时耗电小于 300nA)下继续计时,时钟在电网电压不足或突然掉电等突发情况下仍能正常工作。基于时钟芯片的上述优点,本电子万年历设计采用方案二完成时钟的功能。2.3 温度检测方案方案一:采用传统的方法,测温元件用热电偶或热电阻,但它们测出的一般都是电 压,再转换成对应的温度,需要比较多的外部硬件支持,电路复杂,软件调试复杂,制 作成本高。方案二:用一种智能传感器 DS18B20 作为检测元件,测温范围-55125,分辨 率最大
22、可达 0.0625。DS18B20 可以直接读出被测温度值,而且采用 3 线制与单片机相 连,减少了外部硬件电路,具有低成本和易使用的特点。基于 DS18B20 的上述优点,本电子万年历的测温设计采用方案二完成温度的检测。2.4 显示方案方案一:采用数字万年历显示。数字万年历亮度高、体积小、重量轻,但其显示信息简单、有限,在本题目中应用受到很大的限制。 方案二:采用液晶显示。液晶显示功耗低,轻便防震。采用液晶显示界面友好清晰,操作方便,显示信息丰富。能使成品具有美观与人性化等特点,故采用此方案。2.5 本章小结 章本章主要围绕电子万年历这一整套系统为主线展开,首先讲述了电子万年历的组成,然后介
23、绍了计时方案、温度检测方案和显示方案的论证比较,选择最优方案。 第三章 系统硬件设计本系统以单片机为核心控制器,包含了时钟芯片的接口、键盘接口、温度检测接口以及液晶显示输出接口,因此在硬件设计中合理分配单片机的输入输出端口尤为重要,通过综合比较市场上的元器件的价格以及分析单片机的I/O 口数量,本系统最终选择了AVR 单片机中的 MEGA16 型,设计的硬件电路图见附录2,其单片机的I/O的分配如下:11个I/O口用于液晶显示,4个I/O口用于按键输入,3个 I/O 口用于时钟芯片,1个 I/O口用于温度检测,1个I/O口用于声音输出,单片机的20个I/O口充分利用。下面从系统硬件的各个组成部
24、分一一做介绍。3.1 主控制器 ATmega16 单片机介绍ATmega16带有16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字 节的EEPROM,1K字节的SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描 的JTAG 接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C), 片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可 选差分输入级可编程增益(TQFP 封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。工作于空闲模式时CPU
25、停止工作,而USART、两线接口、A/D转换器、SRAM、T/C、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态;ADC噪声抑制模式时终止CPU和除了异步定时器与ADC以外所有I/O模块的工作,以降低ADC转换时的开关噪声;Standby 模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展 Standby 模式下则允许振荡器和异步定时器继续工作。该芯片是以Atmel高密度非易失性存储器技术生产
26、的。片内ISP Flash允许程序存储器通过ISP 串行接口,或者通用编程器进行编程,也可以通过运行于AVR内核之中的引 导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用 Flash存储区 (Application Flash Memory)。在更新应用 Flash存储区时引导 Flash区(Boot Flash Memory)的程序继续运行,实现了RWW操作。通过将8位RISC CPU与系统内可编程的Flash集成在一个芯片内,ATmega16成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。3.2 时钟电路 DS1302本系统时钟芯片选择了DS1302
27、芯片,该芯片是DALLAS 公司推出的涓流充电时钟 芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行 通信实。时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰 年的天数可自动调整,时钟操作可通过AM/PM 指示决定采用24或12小时格式。DS1302与 单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线:(1)RES(复位);(2)I/O( 数 据 线 );(3)SCLK(串行时钟)。时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。DS1302由DS1202改进而来,有主电源、后备电源双电源引 脚:Vcc1在单
28、电源与电池供电的系统中提供低电源,并提供低功率的电池备份;Vcc2在 双电源系统中提供主电源。在这种运用方式中,Vcc1连接到后备电源,以便在没有主电 源的情况下能保存 时间信息以 及数据。 DS1302由Vcc1或Vcc2中较大者供电。当 Vcc2(Vcc1+0.2V)时,Vcc2给DS1302供电;当 Vcc2Vcc1时,DS1302由Vcc1供电。DS1302 工作时功耗很低,保持数据和时钟信息时功率小于1mW。DS1302与ATmega16的接口电路图如图3-1所示:图 3-1 DS1302 与 ATmega16 的接口电路图3.3 温度检测 DS18B20随着现代信息技术的飞速发展和传统工业改造的逐步实现,温度自动检测和显示系统在很多领域得到广泛应用,传统的温度检测元件如热敏电阻、AD590,虽然成本低,但因其后续处理电路复杂、可靠性相对较差、测量准确度低,因此逐步被新型温度传感器所代替,本万年历采用了美国 DAL-LAS公司最新推出的 DS18B20数字式温度传感器 ,并由 DS18B20和ATmega16组成了室