基于单片机AT89C52的多功能液晶电子日历的设计.docx
- 文档编号:9637099
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:71
- 大小:2.29MB
基于单片机AT89C52的多功能液晶电子日历的设计.docx
《基于单片机AT89C52的多功能液晶电子日历的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机AT89C52的多功能液晶电子日历的设计.docx(71页珍藏版)》请在冰豆网上搜索。
基于单片机AT89C52的多功能液晶电子日历的设计
【摘要】随着科技、社会的发展,人们得知时间的方法,从观土圭(日影)、火钟(燃香)、摆钟到现在的机械表、电子钟,不断研究、改革、创新。
在日常生活、工作和学习中,人们会遇到很多很多需要准时去做的事情,时间观念变得尤其重要。
由于生活中时刻都需要关注时间,我设计了这款多功能液晶电子日历,满足对现实生活的需求。
本设计利用了功能较齐全的可再编程的芯片AT89C52,这样我们可以方便得对其功能和性能进行升级。
本设计选用了其他几个性能稳定的模块化芯片来实现功能,时钟芯片DS1302,温度传感器DS18B20和液晶显示屏LCD12864。
从DS1302中读取时间日期相关的数据,从DS18B20读取温度,显示在液晶显示屏12864上,第一行显示“年”“月”“日”,第二行显示“星期”“闹钟”,第三行“时”“分”“秒”,第四行显示“温度”。
AT89C52接按键模块控制时间及闹钟的调整,发声模块提示闹钟时间到了。
为了减少设计成本和提高学习效率,在设计时利用Proteus软件仿真功能对其进行仿真实现设计的功能,仿真实现后,再用AltiumDesignerSummer09进行原理图、PCB图设计,最后购买元件焊接电路、调试电路及程序。
【关键字】单片机AT89C52,时钟芯片DS1302,温度传感器DS18B20,Proteus软件,AltiumDesignerSummer09软件。
AT89C52single-chipmulti-functionLCDelectroniccalendar-baseddesign
【Abstract】Withthedevelopmentofscienceandtechnology,society,peoplelearnedthemethodoftimefromconceptTugui(shadow),thefirebell(incense),themechanicalpendulumclocktothepresentform,electronicclock,continuousresearch,reformandinnovation.Indailylife,workandstudy,peoplewillencounteralotoftimetodoalotofthingsthatneed,theconceptoftimebecomesespeciallyimportant.Astheneedtofocusonallthetimeinlifetime,IdesignedthismultifunctionalLCDelectroniccalendar,tomeettheneedsofreallife.
ThisdesignfeaturesamorecompleteuseofreprogrammablechipAT89C52,sothatwecaneasilygetitsfunctionalityandperformanceupgrade.ThedesignusesastableofseveralotherperformancechiptoachievemodularfunctionclockchipDS1302,DS18B20temperaturesensorandLCDdisplayLCD12864.ReadsthedatafromtheDS1302-relateddateandtime,readthetemperaturefromDS18B20,12864displayedontheLCDscreen,thefirstlineshows"year","month","day",andthesecondlineshows"week","alarmclock","whenthe"thirdline"minute","second",thefourthlineshowsthe"temperature."AT89C52accessbuttonstoadjustthetimeandalarmcontrolmodule,themodulepromptsaudiblealarmtimeisup.InordertoreducedesigncostsandimprovelearningefficiencyintheuseofProteussoftwaresimulationdesignfeaturesitssimulationdesignfeatures,aftersimulation,thenAltiumDesignerSummer09carriedschematics,PCBdesignplans,thefinalpurchasecomponentssolderedcircuitdebuggingcircuitsandprocedures.
【Keywords】MCUAT89C52,theclockchipDS1302,thetemperaturesensorDS18B20,ProteusSoftware,AltiumDesignerSummer09Software.
第一章绪论
1.1课题设计的背景
随着科技、社会的发展,人们得知时间的方法,从观土圭(日影)火钟(燃香)摆钟到现在的机械表、电子钟,不断研究、改革、创新。
在日常生活、工作和学习中,人们会遇到很多很多需要准时去做的事情,时间观念变得尤其重要。
由于单片机的可再编程性能,以及在控制领域的普遍使用和应用技术不断的提高,单片机越来越受到电子设计者的青睐和追捧。
1.2选题的目的与意义
科技是推动社会发展的动力,而二十一世纪又是数字化信息技术高速发展的时代,所以单片机在数字化高速发展的旅程中扮演着尤为重要的角色。
单片机的学习与应用在数字化时代的今天亦是电子科学学习者所必须掌握的基本课程。
本设计是采用单片机为核心设计的多功能液晶日历,普遍应用在家庭,事业单位和公共场合,应该可以说遍及人们生活的每一个角落。
所以说电子日历的设计是生活所需。
功能化模块的使用对电子设计开发提供了很多的便利,时钟芯片DS1302可对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命较长,误差小,有利于提高设计产品的使用寿命和质量。
DS18B20是全世界上第一片支持"一线总线"接口、内部使用了ON-BOARD专利技术的数字化温度传感器。
它的转换电路和传感元件集成在一只形如三极管的集成电路元件内。
简洁的一线总线结构使得数字化温度传感器DS18B20具有经济且独特的特点。
多功能液晶电子日历采用阿拉伯数字显示,同时显示年、月、日、星期、时、分、秒和温度等信息,具有直观的特点,还可根据需要设置定时闹钟功能。
该电路采用单片机AT89C52作为核心,功率消耗小,能在3V的低电压工作,电压一般选用3~5V电压供电。
基于上述原因,我设计了这款基于DS1302、DS18B20和LCD12864的多功能液晶电子日历,方便日常生活的使用。
第二章系统的总体设计
2.1系统功能概述
我们有多种制作多功能液晶电子日历的方法,也有很多种可供选择的器件和运用的技术。
所以,我们应在满足系统的功能的必要条件下,系统的整体设计方案能够充分考虑了系统的环境中,所选择的结构应该是容易实现、使用简单的。
器件方面选择稳定性能、参数合适、低功耗和低成本的。
本设计需要能够显示日期、时间和温度,并能实现时间调整和闹钟功能设定等功能。
为实现这些基本功能,保证产品功能稳定,能直观看出这些数据,选定了AT89C52单片机,时钟芯片DS1302,温度传感器DS18B20,液晶显示器AMPIRE128X64,这四种已经非常成熟的功能模块化产品作为本设计的核心组成部分。
2.2系统功能实现
所有功能的实现都通过单片机AT89C52来控制,从DS1302读取日期时间,从DS18B20采集温度,通过一系列按键调整时间和闹钟,显示在AMPIRE128X64上。
只要根据各模块的时序,编写各模块的读写操作程序,下载到AT89C52中就能实现所需的功能。
系统功能框图如下:
图1系统功能框图
2.3功能模块选择
本设计共分为6个模块,即核心控制模块,时钟模块,温度采集模块,液晶显示模块,时间调整及闹钟设置按键模块,闹钟发声模块。
基于设计的可行性和经济实用性,分别选择如下器材。
2.3.1核心控制模块
该设计中,核心控制模块选用单片机AT89C52。
AT89C52是由全球半导体领先企业美国ATMEL公司生产的高性能,低电压CMOS8位单片机,片内含256bytes的随机存取数据储存器(RAM)和8K的可反复擦写的只读程序储存器(PEROM),是采用ATMEL公司的高密度、非易失性存储技术生产的器件,与8052产品引脚及标准MCS-51指令系统相兼容,片内采用通用8位中央处理器(CPU)和Flash存储单元。
许多较为复杂控制应用场合都可使用功能强大AT89C52单片机。
主要性能参数:
1、兼容MCS51指令系统;
2、8kB可反复擦写(大于1000次)FlashROM;
3、32个双向I/O口;
4、256x8bit内部RAM;
5、3个16位可编程定时/计数器中断;
6、时钟频率0-24MHz;
7、2个串行中断,可编程UART串行通道;
8、2个外部中断源,共8个中断源;
9、2个读写中断口线,3级加密位;
10、软件设置的睡眠和唤醒功能,低功耗空闲模式,低功耗掉电模式;
11、有塑料方块平面封装(PQFP)、塑料双列直插式封装(PDIP)、特殊引脚芯片封装(PLCC)及薄塑封四角扁平封装(TQFP)等多种封装形式,可适应不同产品的需求。
功能特性:
AT89C52是由全球半导体领先企业美国ATMEL公司生产的。
有丰富功能,除具有上述主要性能参数列出的功能外,AT89C52还可降至0Hz的静态逻辑操作,支持两种软件可选的节电工作模式。
在空闲方式下,AT89C52停止CPU的工作,但允许RAM,串行通信口及中断系统,定时/计数器继续工作。
在掉电方式下,RAM中的内容得以保存,振荡器停止工作,其他所有部件停止工作,直到下一个硬件复位开始。
AT89C52的功能强大,完全能够担任本次设计核心控制模块。
AT89C52实物图及引脚图如下:
图2AT89C52实物图
图3AT89C52引脚图
2.3.2时钟模块
本设计中,时钟模块选择DS1302芯片。
美国DALLAS公司推出的有涓细电流充电能力的低功耗实时时钟芯片DS1302。
它可对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能。
实时时钟芯片DS1302利用简单的串行接口与微处理器进行通讯。
有一个AM/PM指示器,时钟可以工作在12小时制或者24小时制。
DS1302与微处理器联系使用同步串行通讯简化了接口。
人性化和简洁的设计使得与时钟/RAM通讯只采用三根线:
CE,I/O(数据线),和SCLK(串行时钟)。
低功耗的设计使得DS1302在非常低的电能下,还能保持数据和时钟信息。
DS1302是DS1202的后继者。
除了拥有DS1202的基本计时功能以外,DS1302有其他特点比如,可编程涓流充电器VCC1,双管脚主电源和备用电源,附加7字节的暂存器。
主要特性:
1、实时时钟计算年、月、日、时、分、秒、星期,直到2100年,并有闰年调节功能;
2、31*8位通用暂存RAM;
3、通讯接口的同步串行使管脚数降到最少;
4、2.0V至5.5V宽电压范围操作;
5、在工作电压为2.0V时工作电流小于300nA;
6、读写时钟或RAM数据时有单字节或多字节(脉冲串模式)数据传送方式;
7、8管脚DIP封装或可选的8管脚表面安装SO封装;
8、简单的3线接口;
9、与TTL兼容(VCC=5V);
10、在工业应用中的温度范围从-40摄氏度到+85摄氏度;
11、与DS1202兼容;
12、经美国最具权威的保险机构美国保险商试验室(UL)的认证。
图4DS1302实物图
图5DS1302引脚图
表1管脚描述
管脚
名称
功能
1
Vcc2
双供电配置中的主电源连接管脚,VCC1连接到芯片备用电源,在主电源失效或电压过低时保持时间和日期数据。
DS1302工作于VCC1和VCC2中较大者。
2
X1
与标准的32.768kHz石英晶体相连。
内部振荡器设计成与指定的6pF装载电容的晶体共同工作。
3
X2
4
GND
电源地
5
RST
输入RST信号在读写时必须保持高电平。
6
I/O
三线接口的双向数据管脚。
7
SCLK
输入SCLK用来同步串行接口上的数据动作。
8
Vcc1
工作在单电源和电池工作系统的低功率备用电池。
这个管脚在使用涓流充电的系统中,连接到可再充能量源。
时序分析
图6DS1302写字节时序图
DS1302写字节时,传输第一个字节是地址,第二个字节是数据。
RST信号需拉高,否则输入的数据是无效的。
在上升沿时由LSB开始读入,地址字节和数据字节的读取才有效。
图7DS1302读字节时序图
读一个字节和写一个字节有着明显的区别,先写入地址字节,然后读数据字节,上升沿时写地址字节有效,而下降沿时读数据字节有效,前提是RST信号必须拉高。
写地址字节和读数据字节同样都是由LSB开始。
表2寄存器地址
读操作
写操作
BIT7
BIT6
BIT5
BIT4
BIT3
BIT2
BIT1
BIT0
取值范围
81h
80h
CH
10Seconds
Seconds
00-59
83h
82h
10Minutes
Minutes
00-59
85h
84h
12/
0
10
Hour
Hour
1-12/0-23
/PM
87h
86h
0
0
10Date
Date
1-31
89h
88h
0
0
0
10Month
Month
1-12
8Bh
8Ah
0
0
0
0
0
Day
1-7
8Dh
8Ch
10Year
Year
00-99
8Fh
8Eh
WP
0
0
0
0
0
0
0
-
91h
90h
TCS
TCS
TCS
TCS
DS
DS
RS
RS
-
2.3.3温度采集模块
本设计中,温度采集模块选择DS18B20芯片。
美国Dallas半导体公司生产的数字化温度传感器DS18B20,是全世界上第一片支持"一线总线"接口、内部使用了ON-BOARD专利技术的数字化温度传感器。
主要特征:
1、一个端口引脚进行通讯的独特的单线接口;
2、器件内部存储器中储存着唯一地址编码(64位序列号);
3、应用在对温度精度要求相对较低的多点分布式测温;
4、无需外部器件;
5、供电稳定可通过数据线供电,电压在3.0V到5.5V之间。
6、测温范围为-55~+125℃;
7、在-10~+85℃范围内精确度为±5℃;
8、9至12位的温度计分辨率可供使用者选择;
9、温度转换时间较迅速,转换12位数字最多在0.75s内完成;
10、与DS1822兼容的软件;
11、应用于包括温度控制、消费品、工业系统、温度计或任何热感测系统。
图8DS18B20实物图
图9DS18B20引脚图
表3引脚说明
T0-9封装
符号
说明
1
GND
接地
2
DQ
数据输入/输出的引脚。
在单线操作:
漏极开路。
3
VDD
VDD引脚。
时序图
与DS18B20之间的通讯都需以初始化序列开始,初始化时序见图10。
DS18B20在一个复位脉冲跟着一个存在脉冲中表明已经做好发送和接收数据的准备。
图10DS18B20初始化时序图
在总线控制器读时序时,DS18B20仅可用于将数据传输到控制器。
所有读时序必须最少持续60us才可完成写时序,括至少两个读周期为1us在恢复时间。
读时序在总线控制器把数据线从逻辑高电平拉到低电平的时候开始,读时序见图11。
图11DS18B20读时序图
写时序有写1时序和写0时序。
总线控制器通过写1时序将逻辑1写到DS18B20,写0时序将逻辑0写到DS18B20。
最少持续60us才可完成写时序,括至少两个读周期为1us在恢复时间。
写时序在总线控制器把数据线从逻辑高电平拉到低电平的时候开始,见图12DS18B20写时序图。
图12DS18B20写时序图
2.3.4液晶显示模块
单片机系统中广泛的应用液晶显示器件(LCD),是因为LCD独具的低压、微功耗特性。
本设计中,由于Proteus仿真只能采用无字库的12864的显示器,故选用AMPIRE128X64作为液晶显示模块。
图13AMPIRE128X64引脚图
表4AMPIRE128X64接口说明表
管脚号
管脚
电平
说明
1
CS1
H/L
低电平有效,选择前64列的片选择信号
2
CS2
H/L
低电平有效,选择后64列的片选择信号
3
GND
0V
逻辑电源地
4
VCC
5.0V
逻辑电源正
5
V0
LCD的驱动电压输入端,可悬空,视具体情况而定
6
RS
H/L
数据\指令选择端:
高电平时,D0-D7送入显示RAM;低电平时,D0-D7送入指令寄存器执行
7
R/W
H/L
读\写选择端:
高电平:
读数据;低电平:
写数据
8
E
H/L
读写使能端
9
DB0
H/L
数据引脚
10
DB1
H/L
数据引脚
11
DB2
H/L
数据引脚
12
DB3
H/L
数据引脚
13
DB4
H/L
数据引脚
14
DB5
H/L
数据引脚
15
DB6
H/L
数据引脚
16
DB7
H/L
数据引脚
17
RST
L
LCD复位信号,低电平有效
18
VOUT
-10V
LCD驱动电源
表5指令描述表
指令名称
控制信号
控制代码
R/W
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
显示开关
0
0
0
0
1
1
1
1
1
1/0
(1)
显示起始行设置
0
0
1
1
X
X
X
X
X
X
(2)
页设置
0
0
1
0
1
1
1
X
X
X(3)
列地址设置
0
0
0
1
X
X
X
X
X
X(4)
读状态
1
0
BUSY
0
ON/OFF
RST
0
0
0
0
写数据
0
1
写数据
读数据
1
1
读数据
(1)显示开关功能:
设置屏幕显示开/关。
DB0=1,开显示;DB0=0,关显示。
(2)显示起始行设置功能:
执行该命令后,屏幕的第一行将显示所设置的行。
(3)页设置功能:
执行本指令后,之后的读写操作将在指定页内执行,直到重新设置为止。
(4)列地址设置功能:
Y地址计数器存储DDRAM的列地址。
状态检测
CODE:
R/W
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
1
0
BUSY
0
ON/OFF
RST
0
0
0
0
功能:
读忙信号标志位(BUSY)、复位标志位(RST)以及显示状态位(ON/OFF)。
BUSY=1:
LCD内部正在执行其他操作;BUSY=0:
LCD处于空闲状态。
RST=1:
LCD正处于复位初始化状态;RST=0:
LCD处于正常状态。
ON/OFF=1:
表示显示关闭;ON/OFF=0:
表示显示开。
写显示数据
CODE:
R/W
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
0
1
D7
D6
D5
D4
D3
D2
D1
D0
功能:
DDRAM是存储图形显示数据的,写数据到DDRAM,写指令执行后Y地址计数器自动加1。
数据位为1表示显示,数据位为0表示不显示。
读显示数据
CODE:
R/W
RS
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
1
1
D7
D6
D5
D4
D3
D2
D1
D0
基本操作时序:
读状态
作输入时:
RS=0,E=1,R/W=1,CS1或CS2=1
作输出时:
D0~D7=状态字
写指令
作输入时:
RS=0,R/W=0,D0~D7=指令码,CS1或CS2=1,E=高脉冲
作输出时:
无
读数据
作输入时:
RS=1,E=1,R/W=1,CS1或CS2=1
作输出时:
D0~D7=数据
写数据
作输入时:
RS=1,R/W=0,D0~D7=数据,CS1或CS2=1,E=高脉冲
作输出时:
无
2.3.5时间调整及闹钟设置按键模块
在本设计中,为实现时间调整及闹钟设置,选用五个按键,分别是时间设置选择按键Key1,闹钟设置选择按键Key5,时间加按键Key2,时间减按键Key3,设置确认键Key4。
图14按键组合图图15按键实物图
如上按键组合图所示,在Key5没有按下的情况下,用Key1选择需要调整的项目,按第一次选择调整秒,按第二次调整分,按第三次调整时,按第四次调整日期,按第五次调整月份,按第六次调整年份,按第七次又跳回调整秒,其中星期与月份和日期相关,不需要手动调整。
按Key2、Key3则相应加减调整项目。
调整好再按Key4退出调整。
按Key5选择是否要设置闹钟,每按一次相应改变闹钟的状态,调整闹钟时间步骤同调整时间。
2.3.6闹钟发声模块
基于操作简便、经济原则,本次设计采用一般蜂鸣器作为闹钟的发声模块,一般单片机输出端口是无法直接驱动蜂鸣器发出声音的,故设计如下驱动电路。
图16蜂鸣器驱动电路图
上图中R2起到限流作用,NPN三极管作为放大器,sounder为高电平,Q1导通即蜂鸣器发声,sounder为低电平,Q1截止即蜂鸣器关闭。
第三章硬件电路及Proteus仿真设计
本次设计,我选用Proteus软件进行仿真。
英国LabCenterElectronics公司出版的Proteus软件是由广州风标电子技术有限公司代理的EDA工具软件。
出色的EDA工具软件仿真
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 AT89C52 多功能 液晶 电子 日历 设计