基于单片机的多功能电子万年历的设计毕业论文
2020-02-19 20:37:49
摘 要
时间的记录工具经历了不同的发展历史,从日晷,摆钟逐渐发展为今天的电子万年历。单片机的出现,使各个领域的思维方式也发生了剧烈转变,当然也应用到了电子万年历方面。对于单片机学习者来说,设计并实现一款低成本的、有操作性的,提供年,月,周,日,时,分,秒等基本计时功能的万年历系统,显得特别实用,特别有意义。
本文详细地介绍了基于单片机的多功能万年历的设计过程,硬件部分以AT89S52作为控制核心,用时钟芯片DS1302设置时钟电路,用DS18B20进行温度检测,在液晶显示屏 LCD1602上显示,另外增加了闹钟报时的功能。软件部分采用C语言编程,实现了时间和日期的设置程序、温度显示程序、闹钟设置程序。在设计该系统总体方案的基础上,完成了该系统的原理图和实物设计。此万年历具有读取方便、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。
关键词:万年历;DS1302;DS18B20;液晶显示
ABSTRACT
Time recording tools have undergone different development histories, from sundials and pendulum clocks to today's electronic calendar. The emergence of MCU has dramatically changed the way of thinking in various fields, of course, also applied to the electronic calendar. For MCU learners, it is particularly practical and meaningful to design and implement a low-cost, operational calendar system that provides basic timing functions such as year, month, week, day, hour, minute, and second.
This paper describes in details the design process of multi-functional calendar based on MCU. In terms of hardware, the AT89S52 works as the central control module, the clock chip DS1302 is used for clock circuit settings, DS18B20 for temperature detection, LCD1602 screen for display, and the time service function of alarm clock is additionally added. For the software, C language programming is used to achieve the time and date setup program, temperature display program and alarm clock setup program. The system scheme and hardware scheme are also designed. This electronic calendar is easy to read and versatile with low power, low cost, it has a broad market
prospect.
Key words: Calendar; DS1302; DS18B20; LCD display
目 录
第1章 绪论 1
1.1 课题研究的背景 1
1.2 课题的研究目的与意义 1
1.3 研究现状分析 2
1.4 课题解决的主要内容 4
第2章 系统的方案设计与论证 5
2.1 时钟模块 5
2.2 显示模块 6
2.3 按键控制模块 6
2.4 温度采集模块设计与论证 6
第3章 系统硬件的设计 7
3.1 AT89S52单片机 7
3.2 时钟芯片DS1302接口设计与性能分析 7
3.2.1 DS1302性能简介 7
3.2.2 DS1302接口电路设计 8
3.3 LCD显示模块 10
3.3.1 LCD1602的特性及使用说明 10
3.3.2 1602LCD的RAM地址映射及标准字库表 11
3.3.3 LCD1602与MCU的接口电路 12
3.4 温度芯片DS18B20接口设计与性能分析 12
3.4.1 DS18B20性能简介 12
3.4.2 DS18B20接口电路设计 14
3.5 按键模块设计 15
第4章 系统软件的设计 16
4.1 主程序流程图的设计 16
4.2 程序设计 16
4.2.1 DS1302读写程序设计 16
4.2.2 温度程序设计 19
第5章 系统的机体设计及调试 21
5.1 PROTEUS简介 21
5.2 系统软件调试与仿真 22
5.3 系统硬件调试 23
第6章 结论 25
参考文献 26
致 谢 27
第1章 绪论
1.1 课题研究的背景
随着科学技术的飞速发展,时间的流逝,从观察太阳、发明钟摆再到电子钟,人类不断地学习,不断地创新记录。目前,单片机技术的应用产品已进入千家万户。电子日历的出现给人们的生活带来了许多便利。随着微电子技术的蓬勃发展,单片机在国民经济的个人领域得到了广泛的应用。单片机具有体积小、功能齐全、性价比高等优点,在工业控制、家用电器、通信设备、信息处理等测控领域应用中得到众多专业人员的青睐。单片机的开发技术已经成为电子信息、电气、自动化、机电一体化等专业技术人员必须掌握的技术。
单片机体积小、成本低,可广泛应用于诸如玩具、家用电器、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、个人信息终端、通信产品等诸多领域,它已成为现代电子系统的重要组成部分。于是基于单片机的简单实用的电子版万年历顺应而出。基于单片机的电子万年历将时钟和日历功能结合在一起,并将它们集成在一起。它可以在显示时间的同时显示日期、年份和月份。它主要通过单片机读取时钟芯片的时间和日期,然后发送到显示模块。电子万年历作为一种小型的电子设计,不仅受到市场的青睐,而且是单片机实验的一个常见的课题。
1.2 课题的研究目的与意义
在现如今繁忙的工作和生活中,时间与我们每个人都有着非常密切的关系,每个人都受到时间的影响。为了更好地利用我们自己的时间,就必须有一个时间度量,所以时钟就产生了。传统钟表的功能单一,在很大程度上不能满足人们的需要。随着世界经济的快速发展和信息时代的到来,各种电子产品在我们的生活中应运而生。电子日历逐渐取代了传统的钟表,应用于家庭和车站、医院、学校、宾馆、银行、办公室等公共场所,给人们的生活、学习、工作和娱乐带来了极大的便利。基于单片机的电子时钟设计主要采用现代电子技术对时钟进行电子化和数字化。与传统的机械钟相比,电子钟具有精度高、显示直观、无机械传动装置、成本低等优点,因此得到了广泛的应用。此外,在生活和工农业生产中,人们对电子钟的功能提出了许多要求:闹钟、日历、温度显示等,这就要求电子钟具有多功能性。因此,为了满足更多人和更多场合的需要,我在时钟上增加了这些辅助功能,设计成一种基于单片机的多功能电子万年历,这是我毕业设计的主要研究方向。
多功能电子万年历的设计要求设计者熟悉和掌握单片机的结构及工作原理;在设计、制作实物的同时考察焊接、布局、电路检查能力;在实际程序设计和调试过程中考察设计者模块化程序设计方法和调试技术,要求设计者有一定的软件设计与调试能力;通过完成一个实际电子产品从电路设计、程序开发、系统调试的完整过程,熟悉以单片机核心的应用系统开发的全过程,掌握硬件电路设计的基本方法和技术,掌握相关电路参数的计算方法。所以基于单片机的多功能电子万年历无论是从实用的角度还是培养能力的角度,都具有十分深刻的意义。
1.3 研究现状分析
数千年来,人们发明了无数的计时装置,但它们有一个共同点,那就是都依赖于有规则振荡周期的自然现象。计时就是简单地计数这些振荡来标记时间的流逝。最早出现的是日晷,即日影钟,它用沿着日影路径的刻度将一天划分为若干时段。然而,除非阳光灿烂,日晷是无用的。于是人们陆续发明了像水钟、蜡烛钟和沙漏这样的机械计时装置。17世纪发明了摆钟,它比以前的任何计时装置都要精确得多。其振荡周期由重力加速度和摆长决定。由于这个周期比地球每天自转的时间短得多,所以时间可以细分成更小的间隔,这样就可以测量秒,甚至是一秒的几分之一。随着技术的进步,对高分辨率计时的需求也在增加。摆钟逐渐被石英钟取代,第一个石英钟是1927年由沃伦·玛丽森 (Warren Marrison) 和约瑟夫·霍顿 (Joseph Horton) 在美国贝尔电话实验室研制的。在这些装置中,电流使石英晶体以远高于摆钟振荡频率的某个特定频率共振。与老式计时装置相比,这种时钟的频率对环境扰动的敏感度较低,因此更为准确。即便如此,石英钟依赖于机械振动,其频率取决于晶体的大小、形状和晶体温度。没有两块晶体是完全相同的,所以它们必须用另一个参考进行校准——这就是地球的自转周期,秒被定义为平太阳日的1/86400。然而,秒的这种定义存在一些问题。随着我们测量这一时间单位的能力提高,越来越清楚的事实是,地球的自转周期并非恒定。这个周期不仅由于潮汐摩擦作用逐渐变慢,而且随着季节的变化而变化,更糟的是,它还以不可预测的方式波动。1955年,路易斯·埃森 (Louis Essen) 和杰克·帕里 (Jack Parry) 在NPL研制出第一个实用的铯原子频标,从而启动了计时领域的革命[1]。
二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求。因此,电子万年历的出现带来了钟表计时业界跨跃性的进步[2]。
以前的万年历一开始是采用数字电路实现的,电路复杂,精确度差,每天都需要调时,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得它的电路越来越简单,精确度越来越高。例如基于74系列芯片的数字电子钟,通过晶体振荡器产生时钟脉冲,经过分频器得到1 Hz和星期的计数,再配合74LS248译码器进行基本时间显示[3]。现在的电子万年历一般都是集成芯片和软件结合实现,电路简单,制作方法简便,给人们生产生活带来了极大的便利,它已成为我们生活中不可缺少的家居用品。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
尽管如此,基于单片机的万年历设计方案也不尽相同。例如,以ATMEL公司生产的ATmega16单片机作为整个电路的微控制器,依次读取时钟芯片及温度传感器中的数据并进行处理后将显示数据从列驱动电路送出,然后打开行选通信号,轮流在LED点阵显示屏显示出当前的日期、时间、温度等信息。当时钟芯片走时有误差时,通过遥控发射器调节日期和时间[4]。还有基于MSP430G2系列单片机的电子钟,这款电子钟除了有基本的时间显示功能,还具有LED显示秒数、闹钟、整点报时的功能。时间是在G2扩展板上的LCD上显示,闹钟和时间提示采用了蜂鸣器来实现,时间校准既可以通过单片机上的按键实现,也可以采用硬件UART通过PC调制来实现[5]。还有基于IAP15系列芯片的:采用OLED显示屏进行显示,采用DHT11温湿度传感器收集温湿度信息[6]。
此外,还有基于STM32的[7],51系列的单片机[8]也一直是热门。
目前,我国市场上出售的数字万年历品种很多,其中大部分是基于单片机技术设计的电子系统。它们一般由输入脉冲电路、单片机、晶振和复位电路、外路存储器电路和显示电路组成。当今,电子万年历主要用于计时、自动报时,定时,日期查询以及自动控制等方面。由于单片机技术以及数字集成电路技术的发展,如今的电子万年历系统具有体积小、计时准确、耗电省、维护方便、性能稳定、走时准确、携带方便等优点。另外,现在市场上已有现成的电子万年历集成电路芯片出售而且价格便宜,使用也很方便。电子万年历技术已经进入了优化人-家庭-环境的整体关系的阶段,它向着超微型、超高效以及集成电路的微型化方向发展。
1.4 课题解决的主要内容
本课题所研究的电子万年历是单片机控制技术的一个具体应用,主要研究内容包括以下几个方面:
(1)器件选用时,应重点考虑功能实在、使用方便、低功耗、抗断电的器件。
(2)根据选用的器件设计外围电路和单片机的接口电路。
(3)在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。
(4)完成硬件电路原理图的设计,再根据硬件电路图,完成器件的焊接。
(5)根据设计的硬件电路,编写控制AT89S52芯片的单片机程序。
(6)通过编程、编译和调试,先利用proteus进行仿真,再把程序下载到单片机上运行,并实现本设计的功能。
(7)在硬件电路和软件程序设计时,主要考虑提高人机界面的友好性,方便用户操作等因素。
第2章 系统的方案设计与论证
制作单片机电子万年历的方法有很多种,使用的元件和技术方案也有很多种。因此,在满足系统功能的前提下,系统的总体设计方案应充分考虑使用的环境,所选结构应易于使用和实现。元器件的选择应注重适当的参数、稳定的性能、低功耗和低成本。按照系统设计的要求,初步确定系统由电源模块、时钟模块、显示模块、按键模块、温度测量模块和闹钟模块共六个模块组成,电路系统构成框图如图2.1所示。
图2.1 硬件电路框图
2.1 时钟模块
方案一:利用单片机自带的定时计数器提供秒信号,再编写程序实现年、月、日、周、时、分、秒计数。该方案可以减少芯片的使用,节省成本,但时间误差较大;另一方面,需要设置中断、查询等,这也消耗了单片机的资源。
方案二:采用DS1302时钟芯片。DS1302是一款实时时钟芯片,可提供时间和日期信息,DS1302可以对年、月、日、时、分、秒进行计时,计时精度高,且具有闰年补偿等多种功能。另外DS1302掉电时也能持续计时,这归功于其双电源供电的设计,在主电源关闭情况下,备用电源持续供电,也能保持时钟的连续运行,当再次供电时,自动切换至主电源。
DS1302时钟芯片优势明显,功耗也低,解决这个问题同时还解决了方案一中单片机资源耗费的问题。
2.2 显示模块
方案一:通过液晶显示屏显示时间数字。液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射、平面直角显示以及影像稳定不闪烁等优势,因其可视面积大,画面效果好,分辨率高,抗干扰能力强,控制方便,时序简单,技术成熟而被广泛使用。
方案二:采用传统的LED数码管显示。数码管具有低能耗、低损耗、寿命长、操作简单、资源占用较少等优点,但不如液晶显示屏显示得直观清晰,而且需要占用主控制器许多端口,驱动电路也更加复杂,显示的信息也没有液晶的丰富。
综上,选择LCD液晶屏作为显示屏,本次设计选择LCD1602型液晶显示屏。
2.3 按键控制模块
方案一:采用矩阵键盘,由于按键多可实现数值的直接键入,但在系统中需要CPU不间断的对其端口扫描。
方案二:采用独立按键,查询简单,程序处理简单,可节省CPU资源。
因系统中所需按键不多,为了释放更多的CPU占有时间,操作方便,故采用方案二。
2.4 温度采集模块设计与论证
方案一:采用温度传感器(如热敏电阻或AD590),再经AD转换得到数字信号,该方案精度较准,但成本较高,电路较复杂。
方案二:采用数字式温度传感器DS18B20,它能直接读出被测温度不需要额外的AD转换芯片,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式,但准确度不高,误差最大达2度。
因为用DS18B20温度芯片,采用单总线访问,降低成本、降低制作难度且可节省单片机资源,故采用方案二。
第3章 系统硬件的设计
根据上面所确定的系统方案,下面进行系统硬件电路的设计,系统的具体设计在下面会详细地进行描述。
3.1 AT89S52单片机
本系统采用的是美国ATMEL公司生产的AT89S52单片机, AT89S52单片机与MCS-51完全兼容,51系列单片机虽有多种型号,但其用法大同小异,这里不作详述,初学者可自行参考芯片资料以及相关书籍。
3.2 时钟芯片DS1302接口设计与性能分析
3.2.1 DS1302性能简介
DS1302是Dallas公司生产的一款实时时钟芯片。通过单片机串行数据传输,可向单片机提供秒、分、时、日、月、年等实时时间信息,并可自动调整月末日期和闰年天数。拥有主电源和备用电源,主电源关闭时时钟能通过备用电源供电来持续工作。此外,它还能提供31字节的用于高速数据暂存的RAM [9]。
DS1302时钟芯片主要包括移位寄存器、控制逻辑电路和振荡器。DS1302与单片机系统之间的数据传输可以通过RST、I/O和SCLK这三个引脚完成。其工作过程可以概括为:首先将RST引脚驱动至高电平,然后在SCLK时钟脉冲的作用下,通过I/O引脚将地址/命令字节输入到DS1302,然后在SCLK时钟脉冲的配合下,从I/O引脚输入地址/命令字节。因此,其与单片机之间的数据传输非常容易实现,DS1302的引脚排列如图3.1:
图3.1 DS1302的引脚