电子万年历及温度计设计毕业设计.docx
- 文档编号:2902390
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:47
- 大小:764.19KB
电子万年历及温度计设计毕业设计.docx
《电子万年历及温度计设计毕业设计.docx》由会员分享,可在线阅读,更多相关《电子万年历及温度计设计毕业设计.docx(47页珍藏版)》请在冰点文库上搜索。
电子万年历及温度计设计毕业设计
毕业设计
题目电子万年历及温度计设计
学院自动化与电气工程学院
摘要
电子万年历及电子温度计具有精度高、显示美观的优点,在商场、家庭、宾馆、银行、车站等场合都有应用。
电子万年历具有显示直观、读取方便、功能多样、电路简洁、成本低廉等很多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
它可以对年、月、周、日、时、分、秒等进行计时,而且具有闰年补偿功能;温度作为人们日常生活中不可或缺的信息,关系千家万户。
随着人们生活水平的不断提高,电子万年历或将逐步取代传统的日历,并将越来越受到人们的欢迎。
本设计以STC89C52单片机为主控芯片,系统采用温度传感器DS18B20进行温度测量,利用时钟芯片DS1302实现实时时钟功能,并在LCD12864液晶屏上显示实时时钟、当前温度等信息。
能够开发学生的专用芯片、总线技术、电子线路、单片机等基础知识的应用能力,特别是对于单片机的学习,具有重要的实践意义。
关键词:
单片机;电子万年历;温度传感器;LCD12864;键盘
ABSTRACT
Electroniccalendarandelectronicthermometerwithhighaccuracy,andshowtheadvantagesofappearance,areappliedinshoppingmalls,family,hotels,banks,railwaystationsandotheroccasions.Electroniccalendarwithintuitive,easytoreaddisplay,versatile,simplecircuit,lowcost,andmanyotheradvantages,inlinewiththetrendofdevelopmentofelectronicinstrumentation,andhasbroadmarketprospects.Itcanontheyear,month,week,day,hour,minute,secondtiming,butalsotheleapyearcompensationfunction;temperatureastheinformationindispensableindailylife,relationships,millionsofhouseholds.Withthecontinuousimprovementofpeople'slivingstandard,electroniccalendar,ortograduallyreplacethetraditionalcalendar,andmoreandmorepeoplearewelcome.
ThisdesignmicrocontrollertoSTC89C52asthemainchiptemperaturesensorDS18B20temperaturemeasurement,theclockchipDS1302real-timeclockfunction,andLCD12864LCDscreendisplaysreal-timeclock,thecurrenttemperatureandotherinformation.Candevelopstudents'basicknowledgeofthededicatedchipbustechnology,electroniccircuits,microcontrollerapplications,especiallyinsingle-chiplearning,hasimportantpracticalsignificance.
Keywords:
Singlechipcomputer;electroniccalendar;temperaturesensor;liquidcrystaldisplay;keyboard
1前言
电子万年历的出现给人们的生活带来的极大的方便,电子万年历的核心是单片机。
近年来,电子技术的发展迅速,特别是大规模集成电路的出现,HMOS和CHMOS技术的越来越成熟化,单片机技术也越来越成熟,单片机技术的应用产品也已经走进了千家万户,人类生活发生了根本性的变革[1]。
而随着单片机的发展,电子万年历的制造也越来越小型化、更加智能化,电子万年历采用数字电路实现对时、分、秒以及数字的显示,成为了人们日常生活的必需品甚至已经远远超过老式的钟表,给人们的生活、学习、工作带来了极大方便。
随着人们生活水平的提高,智能产品将会越来越受到人们的欢迎,前景非常广阔。
而今天单片机已经渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的制造,计算机的网络通讯,飞机上的各种各样仪表,工业自动化的控制以及数据处理,使用频繁的各式各样智能IC卡,豪华轿车的安全系统,摄像机、录像机、全自动洗衣机的控制,以及程序控制玩具、电子宠物等,这些都是离不开单片机的[1]。
伴随着迅猛发展的科技,时间的飞逝,人类的观测从太阳和钟摆到现在电子钟,人类从事的研究从未间断过,纪录也在不断创新。
DALLAS公司推出的具有低功耗性能的实时时钟电路DS1302,它可以对秒、分钟、小时、星期、日、月份、年份进行准确计时,同时还具有补偿闰年等好多种不同功能,DS1302使用很长时间也不会坏,误差相对小。
电子万年历采用了很直观的数字化液晶显示,可以同时显示秒、分钟、小时、星期、日、月份、年份和温度等信息,还可以准确校准时间。
本次设计采用STC89S52单片机作为MCU,只有很小的功耗,甚至能在3V这么低的低压下工作,从而可选用3~5V的电压作为供电电压。
从以上所述来看,电子万年历具有方便读取、液晶显示非常直观、功能也很多样化、价格低等许多优点,顺应了电子仪表未来的发展趋势,市场前景非常广阔[2]。
电子万年历及电子温度计具有精度高、显示美观的优点,在商场、家庭、宾馆、银行、车站等场合都有应用。
本课题拟以单片机为核心,采用专用万年历芯片和温度检测芯片,应用One-Wire总线技术,不仅能够开发学生的各种专用芯片、总线技术、电子线路、单片机等基础知识的应用能力,特别是对于单片机的学习,具有重要广阔的实践意义[3]。
因此,单片机的学习、开发与应用可以对以后的工作、就业都会有很大的帮助,也可以造就一批熟悉计算机应用与智能化控制的工程师、甚至科学家以及相关的技术人员。
2总体设计
本设计以STC89C52单片机为主控芯片,根据独立按键设定日期、时间,系统采用温度传感器DS18B20进行温度测量,利用时钟芯片DS1302实现实时时钟功能,并在LCD12864液晶屏上显示实时时钟、当前温度等信息。
整个系统共由6部分组成:
(1)STC89C52单片机作为主控芯片;
(2)DS18B20温度测量模块;(3)LCD12864液晶屏显示模块;(4)DS1302实时时钟模块;(5)键盘模块;(6)USB电源模块;
系统框图如图2.1所示。
图2.1系统框图
3系统硬件设计
3.1控制模块
本次设计采用的主控芯片为STC89C52单片机,STC89C52单片机是由STMicroelectronics公司生产的一种高性能、低电压COMOS8位单片机。
片内含有8K的可反复擦写的flash程序存储器和512bytes的随机存取数据存储器。
该型号的单片机采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容[4]。
因为8位CPU和Flash存储器组合在单个芯片中,因此STC89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性好、价格低廉的方案。
图3.1是STC89C52单片机的外形。
图3.1STC89C52单片机的外形
3.1.1STC89C52单片机的特性:
STC89C52单片机的时钟频率为11.0592MHz,有32个双向I/O口,以及3个16位定时器/计数器,加上6个中断源(2个串行中断、2个外部中断源、2个读写中断口线)和3个加密位,有可编程UART串行通道和低功耗的闲置和掉电模式,还有软件设置睡眠和唤醒功能。
3.1.2单片机的引脚说明:
STC89C52单片机的外形结构为40条引脚双列直插式封装。
其引脚排列如图3.2所示。
图3.2单片机的引脚
(1)主电源引脚
VCC(40脚):
接+5V电源正端。
GND(20脚):
接+5V电源地端。
(2)外接晶体引脚
XTAL1(18脚、19脚):
外部一端接到石英晶体。
它作为一个反相放大器的输入端存在于单片机的内部,这个片内振荡器就是由这个放大器构成的。
当外部时钟被采用时,对于HMOS单片机,该引脚是要接地的;对于CHMOS单片机,该引脚要作为外部振荡信号的输入端来使用。
(3)输入/输出引脚
P0口(39~32脚):
P0.0~P0.7统称为P0口。
在不接片外存储器与不扩展I/O口时,可作为准双向输入/输出口使用。
在接扩展I/O口或接片外存储器时,P0口作为地址总线和数据总线复用。
P1口(1~8脚):
P1.0~P1.7统称为P1口,可用作准双向I/O口。
对于52子系列单片机,P1.0与P1.1还具有第二功能:
P1.0可用作定时器/计数器2的计数脉冲输入端使用,P1.1可用作它的外部控制端使用。
P2口(21~28脚):
P2.0~P2.7统称为P2口,一般用作准双向I/O口;但在作为扩展I/O口或片外存储器使用时,P2口用作为高8位地址总线使用。
P3口(10~17脚):
P3.0~P3.7统称为P3口。
除作为准双向I/O口外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。
P3口的第二功能具体如下所示:
P3.0—(10脚)RXD:
串行数据接收端。
P3.1—(11脚)TXD:
串行数据发送端。
P3.2—(12脚)
:
外部中断0请求端,低电平有效。
P3.3—(13脚)
:
外部中断1请求端,低电平有效。
P3.4—(14脚)T0:
定时器/计数器0外部事件计数输入端。
P3.5—(15脚)T1:
定时器/计数器1外部事件计数输入端。
P3.6—(16脚)
:
外部数据存储器写选通,低电平有效。
P3.7—(17脚)
:
外部数据存储器读选通,低电平有效[5]。
3.1.3内部资源简介:
单片机内部由CPU、RAM、ROM、T/C等组成,并带有32个I/O口。
CPU:
由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;RAM:
用以存放可以读写的数据,如欲显示的数据、最终结果以及运算的中间结果;
ROM:
用以存放程序、表格和原始数据;I/O口:
四个8位并行I/O口,既可用作输入,也可用作输出;T/C:
两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式。
3.1.4单片机的最小系统
单片机的最小系统是智能化仪器的基础,也是测控、监控的重要组成部分。
用最少的元件组成的单片机系统就是单片机的最小系统。
对STC89C52单片机来说,最小系统包括:
单片机本身、晶振电路、复位电路。
当单片机开始工作时,首先需要复位,使CPU处在确定的初始工作状态,并从这个初始状态进行工作。
因此,复位是对单片机的工作来说非常重要。
但是单片机本身并不能完成复位功能,必须要配合相应的外部电路才能实现。
图3.4是STC89C52单片机的复位电路。
本设计采用按键复位电路,在复位电容上并联一个开关,当开关被按下时,电容会放电,与此同时复位引脚RST的电平也被拉高。
由于电容的充电效应,高电平会被保持一段时间以使单片机有足够的时间来复位。
晶振电路也称时钟电路,单片机片内振荡器电路就为反相放大器,XTAL1和XTAL2分别为反相放大器的输入端和输出端。
石晶振荡和陶瓷振荡都能够被采用,本设计采用晶振,C1和C2的值为30pF。
如果时钟电路要采用外部时钟驱动,XTAL2应悬空,外部时钟信号应该加在XTAL1引脚上。
此外晶振还有一个非常重要的参数—负载电容值,如果选择与负载电容值相等的并联电容时,就会得到晶振标称的谐振频率[7]。
图3.3为STC89C52单片机的最小系统电路。
图3.3单片机的最小系统
3.2按键模块
3.2.1键盘设计需要解决的问题
键盘是操作人员向系统提供操作命令及数据的外部设备,可分为编码键盘和非编码键盘两种类型。
编码键盘能够自动识别操作人员按下的键并产生相应的ASCII码或其他代码,并传送给CPU。
编码键盘的优点是接口简单、使用方便、响应速度快,但是其所用到的硬件电路非常复杂。
非编码键盘并不直接提供按键的编码信息,而是用较简单的硬件电路和通过软件编写程序的方式来识别按键的位置信息。
虽然非编码键盘不如编码键盘操作方便,但是非编码键盘有一个显而易见的优点,就是它并不需要有复杂的硬件支持,从而简化了外围电路,进而在实践中得到了广泛的应用[9]。
虽然键盘设计硬件较为简单,但在设计时必须解决下述一些问题:
(1)重键与连击的处理
在实际的按键操作中,若有意或无意中同时或先后按下两个及两个以上的按键,系统确定哪个键操作是有效的,完全取决设计者的意图。
如最先按下的键为系统的有效按键,或者把按下时间最长的按键作为有效按键,除此之外也可以将最后按下或释放的按键作为系统的有效按键。
由于单片机的局限性,通常认为单键按下为有效按键,而多键同时按下时是无效按键。
有时候操作人员按键动作不够熟练,可能会出现按键一次但产生多次击键以及重键的情况。
为了消除重键与连击的影响,编写程序时可将按键的释放作为按键的结束。
等按键释放后再转去执行相应的程序,以防止连击的发生。
(2)按键去抖
键盘按下去后一般都会有抖动,即实际波形在按下和释放的瞬间都会有抖动,按键的机械特性控制着抖动时间的长短,一般为5~10ms[13]。
图3.4为按键被按下时电压的变化。
图3.4按键被按下时电压的变化
我们在操作时对按键的动作决定了按键稳定闭合时间的长短。
如果按键时抖动则会引起一次按键被认为是输入了多次即CPU多次响应指令。
为了确保CPU对一次按键的动作仅处理一次,必须要去除按键抖动。
按键消抖,分为硬件去抖和软件去抖两种方法。
硬件去抖是通过硬件电路消除按键过程中抖动的影响,是一种广为采用的措施。
当按键的数目比较少的时候可以用硬件的方法消除抖动。
由于本设计按键较多,因此采用软件消抖,即当检测出按键闭合后会执行一个延时程序,产生5ms~10ms的延时,延时程序结束后再次检测按键的状态,如果仍保持闭合状态,则确认为真正有键按下,反之认为产生抖动。
当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。
3.2.2键盘的结构形式
键盘的结构形式一般有两种:
独立式键盘与矩阵式键盘。
独立式键盘的按键是相互独立的,每个按键有一根线接到对应的I/O口,每根与I/O口相连的线上的按键相互之间都不影响。
独立键盘与单片机相连接时,每个按键都需要单片机的一个I/O口。
独立键盘操作简便,但需要较多的I/O口。
如果一个系统使用较多的按键,则独立键盘会占用过多的I/O口,为了节省I/O口线通常会使用矩阵键盘。
矩阵式键盘又叫行列式键盘。
用I/O口线组成行、列结构,键位设置在行列的交点上。
在检测时需要认为的通过I/O口送出低电平,检测时先送一列低电平,其余的全为高电平,然后轮流检测一次各行是否有低电平。
若检测到某一行为低电平,则便可以确认当前被按下的键是哪一行哪一列的,用同样的方法可以检测剩余的按键。
虽然矩阵键盘操作较为复杂,但会节省大量的I/O口资源。
考虑到本设计要简单实用并尽量降低成本,因此本设计采用三个独立按键[8]。
如图3.5所示。
图3.5独立按键电路
3.2.3键盘工作方式
键盘的工作方式应根据实际应用系统中CPU的工作状态来选择,其选取的原则是既要保证CPU能及时响应按键操作,又不过多地占用CPU的工作时间。
通常,键盘的工作方式有两种,即循环扫描和中断扫描。
(1)循环扫描方式
循环扫描方式是在主程序中插入键盘扫描子程序,键盘扫描子程序会在主程序执行完一次时就对键盘进行检测。
若没有键按下,则跳过按键识别,接着顺序执行其它程序;若检测到有按键被按下,则系统会执行键盘检测子程序来识别按键,获得按键的编码值。
然后系统根据按键编码值来进行相应的处理,处理完毕后再去执行主程序,依次循环。
(2)中断工作方式
采用扫描工作方式时,虽然能够响应按键输入的数据或命令,但是该方式不管是否有键盘按下,CPU总要不断的扫描键盘;而当计算机在工作时,并不需要经常有按键输入,因此CPU常常空扫描。
为提高CPU的工作效率,可以采用中断工作方式,只有键盘中有按键被按下时发中断请求,CPU响应中断请求,随后转中断服务程序,进行键盘扫描并识别键码。
键盘中没有键被按下时,CPU可以去做其他的事情。
3.3测温模块
测量温度是本设计的重要组成部分,只有采集到符合设计要求的准确的温度,才能完成温度的测量,实现设计基本要求。
本设计通过热敏电阻与DS18B20进行对比,发现DS18B20具有很多热敏电阻所不具有的特性与优点,更符合设计要求且操作相对简单,最终采用DS18B20温度传感器。
DS18B20是新一代的“一线总线”数字化温度传感器,具有以下特性:
(1)独特的单线接口仅需一个端口引脚进行通讯;
(2)测温范围-55~+125℃,误差为0.5℃以内;
(3)温度转换时间为200ms,以9位数字量输出;
(4)不需要外部器件,驱动电路极其简单;
(5)零待机功耗,可通过数据线供电。
DS18B20具有三个引脚,1脚为GND,接电源负极;2脚为DQ,与I/O口相连,与单片机通信,用于数据输入输出;3脚为VDD,接电源正极。
驱动电路如图3.6所示。
图3.6DS18B20驱动电路
3.4显示模块
本设计通过LCD1602与LCD12864的对比发现LCD12864具有很多LCD1602
不具有的优点,比如可以显示汉字等等。
所以最后确定显示模块采用LCD12864显示用于显示当前温度、当前时钟等信息。
LCD12864的驱动电路较为简单,如下图3.7所示。
本设计采用并行模式,2、3引脚之间与电位器相连用于调整显示屏背光,使显示效果更好。
图3.7LCD12864的引脚
LCD12864各引脚说明如下表3.1所示:
引脚号
引脚名称
方向
功能说明
1
VSS
-
LCD12864的电源地
2
VDD
-
LCD12864的电源正极
3
V0
-
LCD12864调整背光的电压输入端
4
RS(CS)
H/L
串行模式为片选端;并行模式为数据/指令选择端
5
R/W(SID)
H/L
串行模式为数据口;并行读/写选择信号端
6
E(CLK)
H/L
串行模式为同步时钟;并行模式为使能信号
7
DB0
H/L
数据0
8
DB1
H/L
数据1
9
DB2
H/L
数据2
10
DB3
H/L
数据3
11
DB4
H/L
数据4
12
DB5
H/L
数据5
13
DB6
H/L
数据6
14
DB7
H/L
数据7
15
PSB
H/L
串/并行接口选择端口
16
NC
空脚
17
/RET
H/L
复位
18
NC
空脚
19
LED_A
-
背光源的正极(LED+5V)
20
LED_K
-
背光源的负极(LED-OV)
表3.112864各管脚说明
3.5实时时钟模块
本设计采用DS1302慢速充电时钟芯片,它通过一个串行接口与单片机进行通信,与时钟/RAM通信只需要三根线:
(1)SCLK(串行时钟),
(2)I/O(数据线),(3)RST(复位)。
每次可以只发一个字节的数据,也可一次发送多达31字节的数据给时钟/RAM或从其中送出。
实时时钟/日历提供年、月、周、日、时、分、秒等信息。
还可自动进行月末日期调整、闰年校正。
时钟可以采用带AM/PM的12小时格式或24小时格式运行。
DS1302设计可在非常低的功耗下工作,这也是它的一大特点。
它的主要特性为:
(1)实时时钟,提供年、月、周、日、时、分、秒等信息,还可进行自动整定;
(2)具有31×8RAM,可用来暂存数据;
(3)仅需三条线与单片机相连;
(4)工作电压范围为2.5-5.5V;
(5)功耗极低,工作电压低于2.5V时,电流小于300nA;
(6)与TTL电平兼容(VCC=5V);
(7)可选的工业温度范围-40℃至+85℃。
实际应用电路如图3.8所示。
图3.8DS1302工作电路
DS1302外接32.768K晶振,为芯片提供计时脉冲。
Vcc外接3V直流电源,Vcc2外接5V直流电源。
当Vcc>Vcc2+0.2V时,由Vcc向DS1302供电,当Vcc DS1302与单片机的连接仅需要3条线: CE引脚、SCLK串行时钟引脚、I/O串行数据引脚,并外接上拉电阻。 DS1302读/写时序图如下图3.9和3.10所示: 3.9单字节读 3.10单字节写 4系统软件设计 4.1软件总体设计 在进行软件的详细设计之前应该首先站在全局高度上进行总体设计,选择合理恰当的软件结构,从而开发出高质量的软件系统。 一个高质量的软件系统应具有以下特点: (1)软件结构清晰、流程合理。 根据软件功能要求,将系统软件分成多个模块,每个模块完成一个其中的某一个功能,最后把这些模块连接起来。 (2)为了提高系统软件设计的效率,应该首先对方案进行简明直观的描述,在编写程序之前,应当绘制出程序流程图。 (3)程序设计结构化,各功能程序模块化,编为子程序的形式。 这样既便于调试、链接,又便于移植、修改。 (4)要合理分配系统资源,包括I/O口、ROM、RAM、定时数器以及中断等资源。 (5)在程序的合适的位置写上功能注释,以增强程序的可读性。 (6)增强软件的抗干扰能力,提高软件的可靠性[9]。 通过各模块的确定从而来进一步的设计软件。 运用计算机对各模块进行仿真测试逐步实现LCD电子万年历的各项性能指标。 LCD电子万年历的软件设计包括时钟显示程序、独立键盘程序、温度采集程序、LCD12864显示程序。 在程序设计中采用模块化设计思想,能使程序可读性加强,而且编写时很方便,将要实现的功能分成几部分,由于某些功能使用不仅仅只有一次,将它编成一个子程序,既可随时随意的多次调用已经编写好的子程序,而且修改时也不会影响其他程序的编写与运行[10]。 系统主程序框图如图4.1所示。 图4.1系统的主程序流程图 编写程序时要以此框图为依据,首先初始化程序,然后检测是否有按键按下,如果有键按下,就进入日期、时间调整模式,然后根据需要调整日期、时间,如果没有键按下,则跳过该环节,直接读取DS1302中的日期、时间、温度等数据并显示在LCD12864的液晶屏幕上。 4.2温度模块软件设计 温度模块程序框图如下4.2图所示: 图4.2DS18B20流程图 4.3DS1302流程图 时钟模块程序的编写主要分为两部分,阳
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 万年历 温度计 设计 毕业设计