基于单片的万年历设计.docx
- 文档编号:30701672
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:72
- 大小:231.65KB
基于单片的万年历设计.docx
《基于单片的万年历设计.docx》由会员分享,可在线阅读,更多相关《基于单片的万年历设计.docx(72页珍藏版)》请在冰豆网上搜索。
基于单片的万年历设计
基于单片机的多功能电子万年历的设计
摘要
随着科技的快速发展,自从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。
本文主要介绍了基于单片机的智能电子万年历的研制,该万年历能够实时显示公历年、月、日、时、分、秒,以及对应的农历日期、24节气、天干地支、闹铃功能,同时还能够实时测取环境温度。
本系统的硬件部分主要由AVR单片机、时钟芯片、温度传感器等部件组成,文中给出了详细的硬件设计实现及相关电路图;
软件部分主要包含公历转农历的算法设计模块、显示模块、时间的读取、温度的检测模块,按键的扫描输入模块等,文中给出了系统的软件程序流程图及各功能模块的软件程序清单,最后介绍了整体系统的设计实现、仿真及调试过程,给出了下一步的改进方案等。
关键词:
单片机;液晶技术;万年历;时钟芯片
DesignofMultifunctionaldigitalPerpetualCalendarBasedonMCU
Abstract
Withthedevelopmentoftechnology,Sincetheconceptofthesun,Baizhong,andnowtheelectronicbell,humanbeingscontinuetostudyandconstantinnovationrecord。
Thispaper-basedMicrocontrollerDevelopmentofIntelligentelectroniccalendar,Thecalendarcandisplayreal-timeinthecalendaryear,month,day,hours,minutesandseconds,andthecorrespondingdateoftheLunarNewYear,24SolarTerms,atthesametimealsotoreal-timemeasurementfromtheambienttemperature,Inadditiontotheuserthroughthekeyboardinputyearsofhistory,forthecorrespondingperiodoftheLunar.
ThesystemhardwarefromsomeofthemajorAVRmicrocontroller,anumberofdigitalcontrol,decoder,theclockchip,temperaturesensorsandothercomponents,thepapergivesadetaileddesignandimplementationofhardwareandrelatedcircuit;
SoftwarecontainssomeofthemajorLunarcalendartothealgorithmdesignmodule,dynamicdigitaldisplaymodules,timetoread,temperaturedetectionmodule,Pressenterthescanningmodule.Inthispaper,thesystemsoftwaremodulesandflowchartofthelistofsoftwareprograms,Finally,therealizationoftheoverallsystemdesign,simulationanddebuggingprocess,thenextstepistheimprovementprogrammes.
Keywords:
MCU;crystaltechnology;Calendar;Clockchip
引言……………………………………………………………………………………………1
第1章绪论……………………………………………………………………………………2
1.1课题的背景与意义………………………………………………………………………2
1.2数字万年历的现状与发展………………………………………………………………2
1.3论文的主要工作及章节安排……………………………………………………………3
1.4本章小结…………………………………………………………………………………3
第2章方案论证比较………………………………………………………………………4
2.1多功能数字万年历系统概述…………………………………………………………4
2.2计时方案…………………………………………………………………………………4
2.3温度检测方案……………………………………………………………………………5
2.4显示方案…………………………………………………………………………………5
2.5本章小结…………………………………………………………………………………5
第3章系统硬件设计………………………………………………………………………6
3.1主控制器ATmega16单片机介绍………………………………………………………6
3.2时钟电路DS1302………………………………………………………………………6
3.3温度检测DS18B20……………………………………………………………………7
3.4动态显示…………………………………………………………………………………8
3.5键盘接口…………………………………………………………………………………8
3.6语音闹铃模块……………………………………………………………………………8
3.7电源设计…………………………………………………………………………………9
3.8本章小结………………………………………………………………………………11
第4章系统软件设计………………………………………………………………………12
4.1公历计算显示程序设计………………………………………………………………13
4.1.1DS1302内部寄存器………………………………………………………………13
4.1.2时间读取程序设计…………………………………………………………………15
4.2农历转换程序设计……………………………………………………………………16
4.2.1公历转农历算法研究………………………………………………………………16
4.2.2干支纪年简介………………………………………………………………………18
4.2.3公历转农历程序……………………………………………………………………18
4.3温度测量程序设计……………………………………………………………………20
4.3.1DS18B20的测温原理………………………………………………………………20
4.3.2温度程序……………………………………………………………………………21
4.4二十四节气算法研究…………………………………………………………………23
4.5系统仿真………………………………………………………………………………24
4.6本章小结………………………………………………………………………………25
结论与展望…………………………………………………………………………………26
致谢…………………………………………………………………………………………27
参考文献……………………………………………………………………………………28
附录A电子万年历原理图…………………………………………………………………29
附录B外文文献与译文……………………………………………………………………30
附录C参考文献题录及摘要………………………………………………………………35
附录D电子万年历源程序…………………………………………………………………37
插图清单
表格清单
引言
人类的日常生活离不开时间,任何具有周期性变化的自然现象都可以用来测量时间。
远古时代的中国人通过观测日影的位置以确定当时的时辰或刻数,发明了古老的计时工具日晷。
日晷虽然只由一根晷针和刻有刻线的晷面组成,但是它确利用了复杂的天体运动规律,这反映了我国古代劳动人民的智慧。
随着科技的进步以及中西文化的交融,希腊人根据水流从一个容器滴漏到另一个容器的数量来计量时间从而发明了滴漏,在当时得到了普遍的应用。
到十四世纪,简易的机械钟开始在欧洲流行,1656年出现了有摆的座钟。
它是以伽利略发现的摆动具有规则性这个原理为基础而发明的。
自此以后人类掌握了比较精确的计时工具,并不断改进计时方法。
现在人们日常生活中广泛使用的是机械表、电子表、电子钟等。
对于日以上的时间系统计量与安排则属于历法范畴,历法在我们几千年的华夏文明中占有重要的地位,中华子孙繁衍生息,最早就是依靠耕种为主的农业,那时人们是日出而作、日落而息。
后来经过长期的经验积累,掌握了太阳的变化,发现年、月、日都直接与天体运行周期相关。
因此,人们就把四季更迭的周期定为年,把月亮盈亏变化的周期定为月。
一回归年365.2422日,一朔望月为29.5306日,它们既不是月的整数倍,也不是日的整数倍,使用起来很不方便。
因此在人为规定历法中的年和月都是整数日,这种整数日的年和月,称为历年和历月。
这就是早期的历法,根据春夏秋冬的季节变化及天干地支时间为依据,来确定什么时候应该耕种,什么时间该收获,这些历法一直延续了几千年,这是在世界上也是首屈一指的。
现在人们日常生活中广泛使用的有日历和挂历等。
以上介绍的记录时间的钟表和记录年、月、日的挂历都只具有某一方面的功能,比如钟表只能记录时间,即便是比较先进的钟表顶多也只能多一个记录日期的功能;挂历也只能记录日期而不能记录时间。
随着科技的发展,电子技术和计算机应用领域不断扩大,特别是单片机的出现,是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。
单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具,于是基于单片机的醒目而时尚的电子版万年历顺应而生。
基于单片机的电子万年历结合了时钟和日历的功能,将其二者融为一体,在显示时间的同时还能显示日期和年、月,它主要是通过单片机来读取时钟芯片的时间、日期,然后送给显示设备显示出来。
本文设计的数字万年历与普通万年历相比具有一下特点:
1.除了能显示通用的公历外还能显示我国的农历,除了能显示农历的日、月外还能显示农历的年号、节气。
它是根据单片机读取到的时钟芯片的日期计算出农历的日期、年号和节气,然后通过单片机的I/O口直接送给液晶显示屏,通过软件程序来控制显示内容;2.能查询1921年2月8日至2100年2月8日间任意一天的公历和农历的对应关系;3.能实时准确显示它所处环境的温度。
本设计所采用的测温元件是美国DALLAS半导体公司生产的一种智能温度传感器DS18B20,测温范围为-55℃~125℃,最高分辨率达到0.0625℃;4.能实现多点定时并且语音报时。
第1章绪论
1.1课题的背景与意义
随着电子技术的迅速发展,特别是大规模集成电路出现,给人类生活带来了根本性的改变,尤其是单片机技术的应用产品已经走进了千家万户。
近年来,我国科技的不断发展,我国经济发展的支柱产业——电子产业获得长足发展,各种电子产品琳琅满目,随处可见,随着电子产品的更新速度的加快,各种功能强大,款式新颖的电子产品不断问世。
数字万年历便是这一发展趋势中的代表,数字万年历则顺应了人们对时间方面的要求。
它的出现给人们的生活带来的诸多方便,在时间极显宝贵的现代生活中,其作用更是不言而喻。
它在学校、车站、码头、剧院、医院、办公室等公共场所的应用非常广泛。
但传统的数字万年历除显示时间之外,功能较为单一,逐渐失去了市场。
顺应技术发展和人们生产、生活需求,各种功能的新式万年历不断涌现,且功能不断更新。
数字万年历作为电子类的小产品以其方便、实用等优势成为市场上的宠儿,同时也成为单片机设计培训中一个很实用的课题。
因为这个课题有很好的的开发性和可发挥性,因此对设计者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。
而且要求设计的数字万年历在操作上力求简洁,功能上尽量齐全,显示界面也要出色。
所以数字万年历无论从实用的角度和培养能力的角度都很有价值。
1.2数字万年历的现状与发展
当前,数字万年历技术已经进入了优化人-家庭-环境的整体关系的阶段,它向着超微型、超高效以及集成电路的微型化方向发展,并为数字万年历上的集中控制提供了基础。
目前,市场上出售的数字万年历品种很多,其中大部分是基于单片机技术设计的电子系统。
它们一般由输入脉冲电路、单片机、晶振和复位电路、外部存储器电路和LED显示电路组成。
当今,数字万年历主要还是用于计时、自动报时、定时、日期查询以及自动控制等方面。
由于单片机技术以及数字集成电路技术的发展和采用了先进的石英技术,使得如今的数字万年历系统具有体积小、耗电省、计时准确、性能稳定、维护方便、走时准确、携带方便等优点,此外,现在市场上已有现成的数字万年历集成电路芯片出售,而且价格便宜、使用也很方便。
日历的发展经历了数千年的历史。
现代日历随着使用范围的不断扩大,功能日益增加,种类也越来越多。
从70年代以来,随着单片机和超大规模集成电路的发展,为数字万年历的飞速发展奠定了物质基础。
近几年来,数字万年历的发展方向是朝着走时精度高、稳定性好、使用方便、耗电量小、走时延续时间长、体积小、功能多、制造成本低等方向发展。
最新的数字万年历,它除了具有常见万年历功能外,而且还具有倒计时、多点定时、语音报时、实时温度测量等功能。
在硬件方面它并没有太大的变化,主要是通过增加软件部分来实现倒计时、多点定时的功能。
不难想像,随着科学技术的飞速发展,各种高新技术的出现并被广泛应用到生产、生活中,未来数字万年历产品也必将沿着体积小、耗电省、计时准确、性能稳定、维护方便、走时准确、性能稳定、携带方便等方向发展而其成本却越来越低。
1.3论文的主要工作及章节安排
论文主要围绕对数字万年历系统的设计为主线展开,主要包括复位电路设计、时钟电路设计、按键电路设计、实时控制电路设计、报时电路设计、数字万年历显示电路设计等硬件电路的设计以及为实现其各项功能而编写的软件程序设计等。
论文具体章节的安排如下:
第一章:
阐述本课题的背景与意义,并对数字万年历系统的现状与发展展开了叙述,以及按章节具体介绍了论文所需要完成的工作。
第二章:
介绍了本套系统的组成,并讨论了本套数字万年历系统的几种方案设计以及主要电路的方案设计与比较,从而从理论上得出了本套系统最合理的方案设计。
第三章:
介绍了本套系统的各硬件模块设计,提出了几种基本硬件电路的设计。
第四章:
介绍了数字万年历系统的软件设计以及如何读取DS1302时间以及公历与农历如何转换等。
1.4本章小结
本章首先讲述了本文的选题来源及研究意义,然后讲述了数字万年历系统在国内外的发展过程及当前现状,其中叙述了数字万年历系统的优点,最后根据论文需要研究的主要内容,对课题的来源与所要完成的工作做了进一步的交代。
第2章方案论证比较
2.1多功能数字万年历系统概述
本设计是利用键盘模块进行输入控制,将控制指令传送到单片机,通过单片机的数据处理,配合复位电路以及时钟电路来驱动LCD显示和闹铃音乐,从而实现该数字万年历的各项功能。
单片机是整个系统的核心,它既是协调整机工作的控制器,又是数据处理器,AVR公司的Mega系列能完成本系统所要求的所有功能,所以选用单片机ATmega16;时钟芯片采用DALLAS公司的DS1302涓流充电时钟芯片;按键电路拟采用四个按键,分别实现校时、定时功能,并且定时时间到可报时;显示电路采用128×64点阵字符液晶显示器;语音系统是提示用户系统的实时状态或对系统进行操作,语音电路可提供整点报时、闹铃等功能,本系统选用简单的蜂鸣器来完成。
系统整体设计框图如图2-1所示:
图2-1系统总体框图
2.2计时方案
时钟是本电子万年历最主要的部分,根据需要,可利用两种方案实现。
方案一:
本方案完全用软件实现走时,原理为:
利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。
该方案具有硬件电路简单的特点,但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高,而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。
方案二:
采用Dallas公司的专用时钟芯片DS1302。
该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,可直接读取时间、日期,使得软件编程相对简单。
而且DS1302可以在很小电流的后备电源(2.5V-5.5V,在2.5V时耗电小于300nA)下继续计时,时钟在电网电压不足或突然掉电等突发情况下仍能正常工作。
基于时钟芯片的上述优点,本电子万年历设计采用方案二完成时钟的功能。
2.3温度检测方案
方案一:
采用传统的方法,测温元件用热电偶或热电阻,但它们测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,电路复杂,软件调试复杂,制作成本高。
方案二:
用一种智能传感器DS18B20作为检测元件,测温范围-55℃~125℃,分辨率最大可达0.0625℃。
DS18B20可以直接读出被测温度值,而且采用3线制与单片机相连,减少了外部硬件电路,具有低成本和易使用的特点。
基于DS18B20的上述优点,本电子万年历的测温设计采用方案二完成温度的检测。
2.4显示方案
方案一:
采用数字万年历显示。
数字万年历亮度高、体积小、重量轻,但其显示信息简单、有限,在本题目中应用受到很大的限制。
方案二:
采用液晶显示。
液晶显示功耗低,轻便防震。
采用液晶显示界面友好清晰,操作方便,显示信息丰富。
能使成品具有美观与人性化等特点,故采用此方案。
2.5本章小结
章本章主要围绕电子万年历这一整套系统为主线展开,首先讲述了电子万年历的组成,然后介绍了计时方案、温度检测方案和显示方案的论证比较,选择最优方案。
第三章系统硬件设计
本系统以单片机为核心控制器,包含了时钟芯片的接口、键盘接口、温度检测接口以及液晶显示输出接口,因此在硬件设计中合理分配单片机的输入输出端口尤为重要,通过综合比较市场上的元器件的价格以及分析单片机的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口充分利用。
下面从系统硬件的各个组成部分一一做介绍。
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停止工作,而USART、两线接口、A/D转换器、SRAM、T/C、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态;ADC噪声抑制模式时终止CPU和除了异步定时器与ADC以外所有I/O模块的工作,以降低ADC转换时的开关噪声;Standby模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby模式下则允许振荡器和异步定时器继续工作。
该芯片是以Atmel高密度非易失性存储器技术生产的。
片内ISPFlash允许程序存储器通过ISP串行接口,或者通用编程器进行编程,也可以通过运行于AVR内核之中的引导程序进行编程。
引导程序可以使用任意接口将应用程序下载到应用Flash存储区(ApplicationFlashMemory)。
在更新应用Flash存储区时引导Flash区(BootFlashMemory)的程序继续运行,实现了RWW操作。
通过将8位RISCCPU与系统内可编程的Flash集成在一个芯片内,ATmega16成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。
3.2时钟电路DS1302
本系统时钟芯片选择了DS1302芯片,该芯片是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信实。
时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。
DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线:
(1)RES(复位);
(2)I/O(数据线);(3)SCLK(串行时钟)。
时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。
DS1302由DS1202改进而来,有主电源、后备电源双电源引脚:
Vcc1在单电源与电池供电的系统中提供低电源,并提供低功率的电池备份;Vcc2在双电源系统中提供主电源。
在这种运用方式中,Vcc1连接到后备电源,以便在没有主电源的情况下能保存时间信息以及数据。
DS1302由Vcc1或Vcc2中较大者供电。
当Vcc2>(Vcc1+0.2V)时,Vcc2给DS1302供电;当Vcc2 DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW。 DS1302与ATmega16的接口电路图如图3-1所示: 图3-1DS1302与ATmega16的接口电路图 3.3温度检测DS18B20 随着现代信息技术的飞速发展和传统工业改造的逐步实现,温度自动检测和显示系统在很多领域得到广泛应用,传统的温度检测元件如热敏电阻、AD590,虽然成本低,但因其后续处理电路复杂、可靠性相对较差、测量准确度低,因此逐步被新型温度传感器所代替,本万年历采用了美国DAL-LAS公司最新推出的DS18B20数字式温度传感器,并由DS18B20和ATmega16组成了室温测量系统,可根
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片 万年历 设计