基于单片机控制LCD显示电子时钟设计.docx
- 文档编号:23807003
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:32
- 大小:408.60KB
基于单片机控制LCD显示电子时钟设计.docx
《基于单片机控制LCD显示电子时钟设计.docx》由会员分享,可在线阅读,更多相关《基于单片机控制LCD显示电子时钟设计.docx(32页珍藏版)》请在冰豆网上搜索。
基于单片机控制LCD显示电子时钟设计
目录
第1章绪论1
1.1电子时钟的研究背景1
1.2电子时钟的国内外研究现状1
第2章设计思路与方案选择3
2.1系统的设计思路3
2.2方案选择3
2.2.1单片机芯片的选择3
2.2.2显示模块及时钟芯片的选择4
2.2.3温度系统方案选择4
2.2.4报警系统的方案比较4
2.2.5键盘控制方案选择4
第3章系统的硬件设计与实现5
3.1电路设计框图5
3.2主要硬件电路的设计5
3.2.1单片机主控制模块的设计5
3.2.2显示模块的设计9
3.2.3时钟电路模块的设计12
3.2.4温度采集模块设计17
3.2.5按键调整系统模块设计17
3.2.6蜂鸣器报警模块18
第4章软件设计19
4.1软件设计总体说明19
4.2程序软件的实现19
第5章总结24
参考文献25
致谢26
摘要
本设计使用11.0592MHZ晶振与单片机AT89C52相连接,以AT89C52芯片为核心,采用1602的并行操作方式显示。
通过使用该单片机,实现把时间和温度显示在1602液晶上,并且按秒实时更新。
STC89C52单片机是由深圳宏晶科技公司推出的,功耗小,电压可选用4~6V电压供电。
通过板子上的按键可随时调节时钟的年、月、日、星期、时、分、秒,按键设计3个有效按键,分别有功能选择键、数值增大键、数值减小键。
在每次的按键按下时,蜂鸣器有“滴”的提示声。
再利用DS12887设计实现断电自动保护显示数字的功能,当下次上电时会接着上次上电前的时间继续运行。
本设计的+5V电源采用LM1117电压转换元件,将电源适配器转换得到的12V电压直接变成5V电压供系统使用。
通过软硬件结合达到最终目的。
关键词:
单片机AT89C52;1602液晶;电子时钟;DS12887芯片
Abstract
Thedesignusesa11.0592MHzcrystalwithAT89C52microcontrollerisconnectedtotheAT89C52chipasthecore,and1602paralleloperation.Byusingthemicrocontroller,thetimeisdisplayedin1602,andupdatedinrealtimeinseconds.STC89C52microcontrollerislaunchedbytheShenzhen-HongCrystalTechnology,Inc.,lowpowerconsumption,voltagecanbeusedto6Vvoltagepowersupply.Throughthekeysontheboardcanalwaysadjusttheclockoftheyear,month,day,week,when,minutes,seconds,buttondesign3effectivekeys,functionselectionkey,increasethevalueofthekey,keydecreasesthevalue.Eachtimethebuttonispressed,thebuzzertone"drop".Re-usetheDS12887designpower-offautomaticallytoprotectthedisplaynumber,thenthelasttimebeforethepowertocontinuerunningwhenthenextpower.Thedesignofthe5VpowersupplyusingLM1117voltageconversiondevice,poweradapterconverteddirectlyinto12Vvoltage5Vvoltageforsystemuse.Throughacombinationofhardwareandsoftwaretoachievetheultimateobjective.
Keywords:
MicrocontrollerAT89C52;1602LCD;Electronicclock;DS12887chip
第1章绪论
1.1电子时钟的研究背景
20世纪末,在电子技术极速发展的推动下,现代电子产品以及各种高科技产品渗透到了社会的多个领域,这有力地推动了社会信息化程度以及综合科技水平的提高,但产品更新的也越来越快。
随着科技的发展和全球化竞争的日益激烈,人们对数字时钟的要求越来越高,传统的时钟已不能满足人们的需求。
多功能电子钟不管在性能、样式还是用途上都发生了重大的变化,许多电子钟都已具备电子秒表、电子闹钟、温度检测等功能。
多功能电子时钟除了具有基本功能外,还可以对环境温度进行检测。
在许多行业生产及日常生活中,对温度的测量及控制十分重要。
目前,较为典型的温度检测控制系统是由模拟式温度传感器、A/D转换电路和各种单片机组成。
由于模拟式温度传感器输出的模拟信号必须经过A/D转换环节转换为数字信号后才能与单片机等微处理器接口进行读写的操作,所以硬件电路会比较复杂,且成本较高。
而以DS18B20为代表的新型单线总线数字式温度传感器改变了这一模式,它集温度测量和A/D转换于一体,这类传感器可以直接输出数字量,同时与单片机接口电路结构简单,可以广泛用于各种场合,具有较强的推广应用价值[1]。
数字电子时钟采用数字电路实现对时、分、秒数字显示,广泛用于家庭,办公室,车站等场所,由于数字集成电路的发展和石英晶体振荡器的推广使用,数字时钟的精度大大提高,数字化钟表给人们的生产生活带来了极大的方便,而且功能得到了拓展。
例如按时自动打铃、定时自动报警、时间程序自动控制、自动启闭路灯、定时广播、通断动力设备、定时开关冰箱等,所有这些都以钟表数字化为基础。
因此,研究数字时钟及扩大其应用,有着非常现实的意义[2]。
1.2电子时钟的国内外研究现状
数字电子时钟给人们的学习、生活、工作、娱乐带来极大的方便,但随着科学技术的不断发展,生活节奏的加快,人们对时间计量的精度要求越来越高。
可以说时间的准确已成为各行各业安全运行的基础,如果时间出现误差而不能及时校正,会造成一系列严重的后果和经济损失[3]。
电子时钟的设计方法有很多种,可用中小规模集成电路组成电子钟,也可以用单片机编程来实现电子钟。
其中,利用单片机实现的电子时钟具有编程灵活、硬件结构简单、便于功能扩展等特点。
用单片机作为数字钟的核心控制器,可以通过它的时钟信号实现计时功能,将时间数据经单片机输出,并利用显示器显示。
通过键盘进行定时、校时。
输出设备显示器可以采用液晶显示技术或者数码管显示技术[4]。
温度是一种基本的环境参数,传统方式是采用热电偶或热电阻进行测控,但是由于其复杂性已逐渐被代替。
近年来,美国DALLAS公司生产的以DSl8B20为代表的新型单总线数字式温度传感器以其突出优点广泛使用于仓储管理、气象观测、科学研究、工农业生产制造以及日常生活中。
DSl8B20集A/D转换和温度测量于一体,直接输出数字量,传输距离远,可以方便地实现多点测量,硬件电路结构简单,与单片机接口几乎不需要外围元件[5]。
智能温度传感器于上世纪90年代中期问世,此类传感器是计算机技术、微电子技术和自动测试技术的结晶。
智能温度传感器内部一般包含温度传感器、信号处理器、A/D转换器、存储器(或寄存器)和接口电路。
有的产品还带多路选择器、随机存取存储器、只读存储器和中央控制器。
智能温度传感器能实时更新并输出温度数据,适配于各种微控制器也就是通常所说的单片机,并可通过软件来实现显示功能,其智能化取决于软件和硬件的综合开发水平。
目前,新型温度传感器正从模拟式向数字式、集成化向智能化及网络化的方向发展[6]。
21世纪后,智能温度传感器毫无疑问正朝着高精度、多功能、总线标准化、高可靠性及高安全性等高科技的方向迅速发展,开发虚拟传感器和网络传感器、研制更先进的单片测温系统已是刻不容缓[7]。
在日常生活和自动控制系统中,我们时常会有对时间和温度同时进行实时监控的需求。
这就给多功能的时钟提供了市场,本文给出了一种基于单片机实现带温度检测的电子时钟的设计方法和实现过程。
第2章设计思路与方案选择
2.1系统的设计思路
本次设计完成电子时钟精确时间的显示、环境温度测量以及定时闹钟的功能。
由于DS12887时钟芯片内置一个锂电池,所以即使出现断电情况依然可以运行十年以上不丢失数据,且重新上电后不用校正时钟。
硬件电路包括单片机最小系统电路、DS12887实时时钟芯片电路模块、LCD1602液晶显示模块、DS18B20温度传感器模块、按键模块、蜂鸣器报警电路模块;软件部分主要通过c程序的编程实现对时钟芯片进行时间数据的读写,然后通过液晶显示时间、按键操作实现功能转换及屏幕切换[8]。
2.2方案选择
2.2.1单片机芯片的选择
STC89C52单片机的主要特性如下:
•与MCS-51产品指令系统完全兼容
•全静态工作模式:
0~33MHz
•4K字节的在线编程Flash存储器,1000次擦写周期
•4.0~5.5V的工作电压范围
•三级程序存储器锁
•128×8字节内部RAM
•32个可编程I/O口线
•2个16位定时/计数器
•6个中断源
•低功耗空闲和掉电模式
•全双工串行UART通道
•中断可从空闲模式唤醒系统
•看门狗(WDT)及双数据指针
•具有掉电状态下的中断恢复功能
•掉电标识和快速编程特性
•灵活的在系统编程(ISP字节或页写模式)[9]
2.2.2显示模块及时钟芯片的选择
采用液晶LCD显示,以电流刺激液晶分子产生点,显示字符的行数和液晶的点阵行。
液晶功耗低、体积小、显示简单。
采用DS12887实现时钟记时,把时间数据送入单片机,由单片机控制显示。
DS12887芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,精度非常高,工作电压范围2.5V~5.5V,最小时耗电小于300mA[10]。
2.2.3温度系统方案选择
采用DS18B20直接进行测温。
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,它可以直接读出被测温度,并可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
温度实现只能通过外部的温度传感器来实现。
经上网查阅及市场考察,DS18b20体积小,电路接法简单。
内部含寄存器为设计实现上下限报警功能提供保障。
精度为0.5℃,符合我们的设计要求。
2.2.4报警系统的方案比较
采用蜂鸣器实现闹钟铃声及温度超限报警。
蜂鸣器具有成本低,电路结构简单,体积小的特点。
基于设计所需功能,蜂鸣器是最佳选择。
2.2.5键盘控制方案选择
购买单个复位开关做成键盘。
因其价格便宜且可以实现所需功能。
对此次作品的方案选定:
采用STC89C52作为主控制系统;DS12887提供时钟;数字式温度传感器;液晶1602作为显示。
第3章系统的硬件设计与实现
3.1电路设计框图
初步确定设计系统由单片机主控模块、时钟模块、测温模块、报警模块、显示模块、键盘接口模块共6个模块组成,电路系统框图如图3-1所示。
STC89C52
主
控
制
模
块
图3-1电路设计框图
3.2主要硬件电路的设计
3.2.1单片机主控制模块的设计
本系统采用的是深圳宏晶科技公司生产的STC89C52单片机,首先我们来熟悉一下STC89C52单片机的外部引脚和内部结构。
如图3-2
(1)单片机的引脚功能
STC89C52单片机有40个引脚。
•Vcc:
电源电压+5V
•GND:
接地
•P0口:
P0口是一组8位漏极开路型双向I/O口。
作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换低8位地址和数据总线服用,在访问期间激活内部上拉电阻。
•P1口、P2口:
带内部上拉电阻的8位双向I/O,P1的输出缓冲级可以驱动4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时为输入口。
因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
图3-2STC89C52管脚图
•P3口:
带内部上拉电阻的8位双向I/O,P3的输出缓冲级也可以驱动4个TTL逻辑门电路。
作输入端时,被外部拉低的P3口将用上拉电阻输出电流。
P3口除了作为一般的I/O口线外,还有第二功能,见表3-1所示:
表3-1P3口的第二功能图
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INT0(外中断0)
P3.3
INT1(外中断1)
P3.4
T0(定时/计时器0外部输入)
P3.5
T1(定时/计时器1外部输入)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器读选通)
•RST:
复位输入端口。
当振荡器工作时,RST引脚出现两个以上高电平机器周期将使单片机复位。
设置SFRAUXR的DISRT0可打开或关闭该功能。
DISRT0位缺省为打开状态。
•ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存地址的低8位字节。
即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,所以它可用于定时,每当访问外部数据存储器时将跳过一个ALE脉冲。
•EA/VPP:
允许外部访问端口。
欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平。
需要注意的是:
如果加密位(LB1)被编程,复位时内部会锁存EA端状态。
如EA端为高电平,CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的变成电压Vpp.
•PSEN:
程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取数据(或指令)时,每个两次PSEN机器周期有效,即输出两个脉冲。
当访问外部数据存储器,无两次有效的PSEN信号。
•XTAL1:
振荡器反相放大器及内部时钟发生器的输入端口。
•XTAL2:
振荡器反相放大器的输出端口。
(2)STC89C52单片机与MCS-51完全兼容
•看门狗(WDT):
WDT由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成,是一种需要软件控制的复位方式。
WDT在默认情况下无法工作;用户必须在WDTRST寄存器(地址:
0A6H)中依次写入01EH和0E1H以激活WDT。
WDT激活后,晶振工作,WDT在每个机器周期都会增加。
除了复位(硬件复位或WDT溢出复位),无法停止WDT工作。
当WDT溢出,它将驱动RSR引脚输出一个高电平。
•可编程串口(UART)在STC89C52中操作与STC89C51和STC89C52一样。
STC89C52系列单片机的串行通信口可以工作于同步和异步通信方式,当工作于异步方式时,可以同时进行数据的发送和接收。
串行口内的接收器采用的是双缓冲结构,可以在接收到的第一个字节被读走之前开始接收第二个字节。
串行口的发送和接收操作都是在特殊功能寄存器中的数据缓冲寄存器SBUF中进行的,如果将数据写入SBUF,数据会被送入发送寄存器准备发送。
如果执行SBUF指令,则读出的数据一定来自接收缓存器。
因此,这2个寄存器的功能决不能混淆[11]。
•振荡电路:
STC89C52系列单片机的内部振荡器,由一个单极反相器组成。
XTAL2为反相器的输出,XTAL1反相器的输入。
在组成一个单片机应用系统时,常采用的方式是由外部时钟源提供一个时钟信号到XTAL1端输入,而XTAL2端浮空。
这种方式结构紧凑,成本低廉,可靠性高。
在电路中,如果使用高质的晶振,C1、C2通常都选择30pF。
•RAM:
高于7FH内部数据存储器的地址是8位的,也就是说其地址空间只有256字节,但内部RAM的寻址方式实际上可提供384字节。
低于7fh的直接地址访问同一个存储空间,高于7FH的间接地址访问另一个存储空间。
这样,虽然高128字节区分于专用寄存器,即特殊功能寄存器区的地址是重合的,但实际上它们是分开的。
访问哪一个区是通过不同的寻址方式加以区分的。
•定时/计数器:
STC89C52单片机内含有2个16位的定时器/计数器。
当用于定时器方式时,它的输入来自内部时钟发生电路,定时器的技术频率为晶振频率的1/12,而计数频率最高为晶振频率的1/24。
为了实现定时和计数功能,定时器中含有3种基本的寄存器:
控制寄存器、方式寄存器和定时器/计数器。
控制寄存器是8位的,用于控制定时器的工作状态,方式寄存器也是一个8位的寄存器,用于确定定时器的工作方式,定时器/计数器是16位的计数器,分为高字节和低字节两部分[12]。
•SFR:
SFR是具有特殊功能的所有寄存器的集合,共含有22个不同寄存器,它们的地址分配在80H~FFH中。
未被占用的单元,内容是不确定的。
所以在编程时不应该将数据写入这些未确定的地址单元中,特殊功能寄存器主要有累加器ACC、B寄存器、堆栈指针SP、程序状态字寄存器PSW、数据指针DPTR、I/O端口、串行口数据缓冲器SBUF、捕捉寄存器、定时器寄存器、控制寄存器。
•中断系统:
STC89C52单片机有6个中断源,中断系统主要由中断允许寄存器IE、中断优先级寄存器IP、优先级结构和一些逻辑门组成。
IE寄存器用于允许或禁止中断;IP寄存器用于确定中断源的优先级别;优先级结构用于执行中断源的优先排序;有关逻辑门用于输入中断请求信号。
在整个中断响应过程中CPU所执行的操作步骤如下:
(1)完成当前指令的操作;
(2)将PC内容压入堆栈;
(3)保存当前的中断状态;
(4)阻止同级的中断请求;
(5)将中断程序入口地址送PC寄存器;
(6)执行中断服务程序;
(7)返回
(2)。
3.2.2显示模块的设计
(1)LCD1602功能介绍
LCD1602各引脚功能如表3-2所示。
表3-2LCD1602管脚功能表
(2)基本操作时序:
LCD1602读写操作时序是直接记忆和总结读写时电平高低和变化,下面就列出典型读写的时序要求,以方便编写程序[13]。
读状态--输入:
RS=L,R/W=H,E=H输出:
D0-D7=状态字
写指令--输入:
RS=L,R/W=L,D0-D7=指令码,E=高脉冲输出:
无
读数据--输入:
RS=H,R/W=H,E=H输出:
D0-D7=数据
写数据--输入:
RS=H,R/W=L,D0-D7=数据,E=高脉冲输出:
无
(3)状态字说明:
表3-3状态字表
对控制器每次进行读写操作之前,都必须进行读写检测,确保STA7为0。
(4)指令说明:
表3-4显示模式设置表
表3-5显示开/关及背光灯设置表
(5)数据控制
控制器内部有一个数据地址指针,用户可通过它们访问内部的全部80字节RAM[15]。
(6)数据指针设置
表3-6数据指针设置表
(7)其他设置
表3-7其他设置指令表
(8)LCD1602初始化过程
a、延时15ms。
b、写指令38H(不检测忙信号)。
c、延时5ms。
d、写指令38H(不检测忙信号)。
e、写指令5ms。
f、写指令38H(不检测忙信号)。
g、之后每次写指令、读/写数据操作之前均需检测忙信号。
h、写指令38H:
显示模式设置。
i、写指令08H:
显示关闭。
j、写指令01H:
显示清屏幕。
k、写指令06H:
显示光标移动设置。
p、写指令0CH:
显示及光标设置。
(9)LCD1602的电路设计
液晶LCD1602的D0-D7引脚与STC89C52芯片的P2口连接,而控制引脚RS,R/W,CS则分别与P1.6,P1.5,P1.4连接。
引脚3接一个1K的电位器来调整对比度,从而达到适合的背光灯对比度[16]。
液晶显示模块电路如图3-3所示。
图3-3液晶显示模块
3.2.3时钟电路模块的设计
(1)DS12887功能特点
DS12887是美国达拉斯半导体公司推出的时钟芯片,此芯片是基于CMOS技术的,将所需的晶振和外部锂电池相关电路集于芯片内部,简化了外围电路,同时它与计算机常用的时钟芯片MC146818B和DS1287芯片引脚兼容,可直接进行对等交换。
主要功能有:
•内含一个锂电池,断电可以运行十年,并且不会丢失数据,时间功能正常运行。
•可计时至2100年前的秒、分、时、星期、日、月、年等日历信息并带有闰年补偿功能。
•可通过编程选择BCD码或者二进制数表示日历和定时闹钟。
•可通过编程选择12小时或24小时制,12小时时钟模式带有PM和AM提示,此外还有有夏令时功能。
•可选择MOTOROLA和INTEL总线时序。
•内部共有128个RAM单元,其中14个字节作为时钟和控制寄存器,114字节为通用RAM,所有ARAM单元数据都具有掉电保护功能。
•中断信号输出(IRQ)和总线兼容,定时闹钟中断、周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试[17]。
•三种可供选择的中断方式
a、时间性中断
b、周期性中断
c、时钟更新结束中断
(2)DS12887的原理及管脚说明
图3-4显示了DS12887管脚排列图。
下面说明管脚功能:
图3-4DS12887管脚图
GND:
电源接地
VCC:
直流电源+5V电压。
若外部提供的VCC电源小于4.25V,读写会被禁止,但芯片内部计时仍在继续,重新通上+5V电源后,通过编程即可显示当前时间;若外部提供的VCC电源小于3V,电源方式切换为内部锂电池提供,同样可以保持芯片内部计时仍然继续。
MOT(模式选择):
接VCC(+5V)时,芯片在MOTOROLA时序下工作,接GND时,芯片在INTEL时序下工作。
SQW(方波信号):
通过15个分频器抽头中的13个提供方波输出。
AD0~AD7(双向地址/数据复用线):
数据和控制指令都通过此8个引脚来于单片机等控制器传输。
DS(数据选通或读输入):
该引脚有两种操作模式,视该芯片是出于MOTOROLA模式或者INTEL模式,当使用MOTOROLA时序时,DS是一正脉冲,出现在总线周期的后段,称为数据选通;若为INTEL时序,DS称作(RD),RD与典型存贮器的允许信号(OE)的定义相同。
R/W(读/写输入):
R/W管脚同样也有两种操作模式。
此引脚的两种模式与DS相似。
CS(片选输入):
在访问DS12887的总线周期内,片选信号必须保持为低。
RESET(复位输出):
若要保证DS12887有效复位,必须让该脚保持低电平时间大于200ms。
IRQ(中断申请输入):
低电平有效,可作微处理的中断输入。
没有中断条件满足时,IRQ处于高阻态。
IRQ线是漏极开路输入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 控制 LCD 显示 电子 时钟 设计