南京大学毕设基于单片机的多功能万年历设计Word文档格式.docx
《南京大学毕设基于单片机的多功能万年历设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《南京大学毕设基于单片机的多功能万年历设计Word文档格式.docx(53页珍藏版)》请在冰豆网上搜索。
Alongwiththetechnicalfastdevelopment,intheearlystage,peoplebegintoviewofthesun,pendulumclocktoviewtheelectronicclocknow.Throughthestudyofhumanconstantly,constantlyinnovation,electroniccalendarhasnotpreviouslythatinbookforminpeople'
slife,butintheformofelectronicproducts,andalsohasanadditionalalarm,calendar,andotherfunctions,itcanbeyears,months,days,hours,minutes,secondsfortime,alsohasaleapyearcompensationandotherfunctions,socalendarcalledmultifunctionelectroniccalendar.
ThedesignisbasedonAT89S52singlechipmicrocomputerasthecore,combinedwiththeDS1302clockchip,andtheLCD1602liquidcrystaldisplay.Themultifunctionalelectroniccalendarcandisplayyear,month,day,week,time,minutesandseconds,andotherinformation,butalsohastheadjustmenttime,alarmclockandalarmfunction.ClockchipsystemusedisDS1302,thischiphasthecharacteristicsofhighperformance,lowpowerconsumption,simpleinterface,thedesignofthecircuitissimple,easyinprogramming.Thedesignofelectroniccalendaroflowprice,andcanbewidelyusedinthelife,studyandworkinanyfield,andhasplayedanimportantrole.
Keywords:
TheElectronicCalendarClock;
Liquid-crystaldisplay
;
TheTimeCalendarClock;
Single-chipMicrocomputer
第一章绪论
1.1多功能万年历的研究背景及意义
随着科学技术的快速发展,时间的流逝,从早期人们观太阳、摆钟到现在的电子钟,人类不断地研究,不断地创新纪录。
电子万年历已经不像先前那样以书本形式出现在人们生活中,而是以电子产品形式出现,并且还附加有闹钟提示、日历查看等功能,它可以对年、月、日、周、时、分、秒进行计时,还具有闰年补偿等多种功能,因此万年历被称为多功能电子万年历。
目前多功能电子万年历已经被广泛地应用在电子产品的各个领域中,如在手机、电脑、空调等方面,因而采用电子钟作为时间显示已经成为一种时尚。
目前市场上出现的电子时钟,各式各样,但多数还只能对时间进行显示,功能很单一,无法满足人们的需求。
本设计提出了一种方案,是基于AT89S52单片机的多功能电子万年历设计,采用了LCD1602液晶显示。
方案中以AT89S52单片机为核心,与时钟芯片DS1302、蜂鸣器、按键、LCD1602液晶显示等模块组成硬件系统。
在硬件系统中设有4个独立按键和一个LCD1602液晶显示,能显示相应的功能信息,并能根据使用者的需求,随时对时间进行校准、选择时间、星期以及对闹钟的设置,还有对日历的查询。
此电子万年历具有很多优点,例如:
显示直观、功能多样、电路简单、成本低廉等等,符合电子仪器仪表的未来发展趋势,具有广阔的市场前景。
1.2多功能万年历的发展现状
如今社会,基于单片机的产品已经渗透到我们日常生活的方方面面,几乎已经很难找到那个方面没有应用单片机的。
现在,单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等,这些都离不开单片机。
因而,在科学领域对于单片机的学习、开发与应用是不可忽略的。
生活中智能化的东西越多,单片机对于社会发展也就越为重要。
国内生产的电子万年历有很多种,但主要的都是以多功能万年历设计为主,使万年历不仅仅可以显示时间,日期等基本功能,还具有闹钟,查看日历的功能。
对于商家而言,他们生产的电子万年历更是从质量,价格,使用等方面考虑,不断对电子万年历的设计进行改进,使其更具有市场。
1.3本设计的研究目的和主要研究内容
本设计是采用AT89S52单片机芯片作为系统主要芯片,该芯片内部既有FlashROM,又与MCS-51单片机完全兼容,而且ISP在线编程技术适用于AT89S52芯片,这样既降低了成本也无需反复插拔芯片,可避免损坏芯片;
而且AT89S52单片机芯片的性能很稳定,且该芯片内部存储器ROM为8kB存储空间。
采用LCD1602液晶显示,很适合显示数字和字母,并且采用动态扫描法与单片机连接,占用单片机接口线少,这样使得电路简单。
采用时钟芯片DS1302来实现时钟功能,DS1302时钟芯片是一种高性能的时钟芯片,可自动对秒、分、时、周、日、月、年以及闰年补偿的年进行计数,而且精度高,将8位的RAM作为数据暂存区。
因而选择AT89S52单片机作为本次设计的主要芯片,具有精度高,成本低,易于制作研究等特点。
1.4多功能万年历系统主要实现的功能
(1)设计一个电子万年历可以显示年、月、日、周、时、分、秒,时钟的运行,采用24h格式;
(2)用液晶进行显示,用按键进行调整,可以调整日期和时间,可以与即时时间同步;
(3)具有闹钟设置功能,根据个人需要,可以任意设置时间闹钟;
(4)具有日历查询功能,可以根据需要查看特殊的节日,以英文的形式送显示;
第二章单片机的简介
2.1单片机的介绍
单片机也称为单片微型计算机,它采用了超大规模集成电路技术,将具有数据处理能力的中央处理器(CPU)、中断系统、随机存储器(RAM)、只读存储器(ROM)、多种输入/输出(I/0)接口、定时器/计时器等功能,有的还包括脉宽调制电路(PAM)、模/数转换器(ADC)、显示驱动电路,单片机将这些都集成到一块硅片上,从而构成的一个小而完善的微型计算机系统[1]。
单片机的特点是控制性能好、可靠性高,单片机的实时控制功能特别强,其CPU可以对I/O端口直接进行操作,位操作能力更是其他计算机无法比拟的。
并且,因为中央处理器(CPU)、存储器和I/O接口都集成在同一芯片内,所以各部件间的连接非常紧凑,使得数据在传送过程中受干扰较小,且受环境条件的影响很小,所以单片机具有高可靠性的特点。
单片机的种类很多,功能也是各式各样。
对于不同的单片机都有着不同的硬件和软件特征,单片机芯片的内部结构决定了该单片机的硬件特征,因而在用户使用某种单片机之前,必须要先了解这种类型产品是否满足想要实现的功能。
在利用单片机的时候我们要注意它的指令系统特性还有它的开发环境,也就是我们需要注意的软件特性,此外我们还有注意它的指令特性,包括输入输出的特性、数据处理和逻辑处理方式、单片机的寻址方式、以及对电源的要求等等。
当然我们还要注意开发环境,包括系统是否支持软件、以及兼容的问题、还有可移植性好坏。
利用某种型号的单片机来实现自己需要开发的应用系统,掌握其技术特征和结构特征是必不可少的。
单片机现在已经涉及到人们生活的方方面面,扮演着重要的角色。
小到生活必需品,例如:
闹钟、遥控玩具、全自动洗衣机的控制、保安系统、录像机、摄像机、智能IC卡;
大到科学领域,例如:
导弹的导航装置,飞机上仪表的控制,以及计算机的网络通讯与数据传输,这些都离不开单片机。
更不用说自动控制领域的机器人、医疗器械、智能仪表以及各种智能机械了。
因此,单片机的学习、开发与应用,推动着社会不断进步与发展。
第三章系统硬件电路的设计
3.1AT89S52性能介绍及其外围电路
3.1.1AT89S52单片机主要功能[2]
AT89S52单片机基本特性有:
8位的CPU,片内有振荡器和时钟电路,工作频率为0~24MHz;
片内有256字节数字存储器RAM和8K字节程序存储器ROM;
4个8位的并行I/O口(P0,P1,P2,P3);
1个具有全双工通信的串行通讯口;
3个16位定时器/计数器(T0,T1,T2);
可处理6个中断源,两级中断优先级。
另外,AT89S52可降至频率为0Hz静态逻辑进行操作,支持2种软件可选择节电模式。
在空闲模式下,CPU就停止工作,并且允许数字存储器(RAM)、定时器/计数器、串口、中断继续工作。
在掉电保护方式下,数字存储器(RAM)的内容被保存,振荡器被冻结,单片机就停止一切工作,直到下一个中断或硬件复位为止。
3.1.2AT89S52引脚介绍[2]
图3.1单片机引脚图
P0口:
P0口是一个8位的漏极开路的准双向I/O口,它内置场效应管上拉。
当P0口作为输出口使用时,每一位都能驱动8个TTL逻辑电平。
P0口作为输入口时,要对其写“1”,引脚用作高阻抗输入。
当寻址外部程序存储器(ROM)时,P0口被作为双向8位数据口和低8位输出作为地址复用口;
当不接外部程序存储器(ROM)时,P0口可作为8位准双向I/O口使用。
P1口:
P1口是一个8位准双向I/O口,它内置了上拉电阻。
当P1口作为输出口使用时,每一位都可以驱动4个TTL逻辑电平。
对P1口端口进行写“1”时,内部的上拉电阻把端口拉高,此时P1口可以作为输入口使用。
当单片机访问外部程序(ROM)和数据存储器(RAM)时,P1口被作为低8位地址/数据复用端口使用。
P2口:
是一个8位准双向I/O口(内置了上拉电阻)。
当P2口作为输出口使用时,每一位都可以驱动4个TTL逻辑电平。
对P2口端口写“1”时,内部的上拉电阻把端口拉高,此时P2口则可以作为输入口使用。
在寻址外部程序存储器时,P2口输出高8位地址;
在不接外部程序存储器时,P2口则可被作为8位准双向I/O口使用。
P3口:
是一个8位准双向I/O口,与P1,P2相同,也内置了上拉电阻。
当它被作为输出口时,P3口中的每一位能驱动4个TTL逻辑电平。
当我们对P3口端口写“1”时,内部的上拉电阻把端口拉高,此时P3口可以作为输入口使用。
当P3口作为输入口使用时,外部的引脚被拉低,由于内部电阻的原因,P3口将输出电流。
P3口还可以作为第二功能使用(如下表3.1所示);
当我们不使用P3口的第二功能时,它就只是作为普通的通用准双向I/O口使用。
表3.1AT89S52单片机P3口第二功能表
VCC,GND:
正电源端与接地端
RST:
复位端(正脉冲有效,宽度>
10ms)
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器的反相放大器输出端。
/VPP:
寻址外部程序存储器(ROM)控制端/编程电源输入端。
寻址外部程序存储器(ROM)控制端为低有效,在片内无寻址外部程序存储器(ROM)时必须接地,片内有寻址外部程序存储器(ROM)时应当接高电平。
ALE/
:
地址锁存允许信号输出引脚/编程脉冲输入引脚,ALE在访问外部程序存储器(ROM)时,ALE锁存低8位地址的输出脉冲。
当我们进行flash编程时,(
)则作为编程脉冲的输入引脚。
外部程序存储器选通信号输出引脚,当AT89S52从外部程序存储器(ROM)中执行外部代码时,
引脚将会在每个机器周期内被激活两次;
但是当AT89S52访问外部数据存储器(ROM)时,
将不会被激活。
3.1.3AT89S52最小系统
AT89S52单片机的最小系统是指能够使单片机进行正常工作的最简单电路。
AT89S52最小应用系统电路如图3.2所示,它主要包含了五个电路部分:
电源电路、复位电路、时钟电路、输入/输出接口电路、片内外程序存储器(ROM)选择电路[2]。
电源电路:
芯片引脚VCC一般接+5V直流稳压源,引脚GND接在电源+5V的负极。
复位电路:
接在单片机9号引脚上,复位电路使得引脚RST保持正脉冲宽度大于10ms以上的高电平。
如图3.2所示的复位电路是一个手动&
上电复位,这样的好处是因为上电复位电路有时候会反应慢,每次插电源比较麻烦,则需增加按钮,当按钮按下,+5V稳压电送出,电路导通,人手动按钮到松开之间的时间大约20ms(>
10ms),完成满足复位的时间,因而可通过复位按钮对单片机复位。
时钟电路:
单片机18和19引脚之间外接晶振和电容,晶振的频率一般选择11.059212/12MHz,单片机的工作频率取决于晶振XT的频率,C2,C3电容为30P,这两个电容起谐振电容的作用。
图3.2AT89S52最小系统
3.2时钟芯片DS1302接口设计和性能分析
3.2.1DS1302性能介绍
DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据[3]。
这种实时时钟可以对年、月、日、周、时、分、秒自动进行调整;
并且对于一个月中出现(28/29,30,31)不等天数的时候,不需要我们在程序用用伪代码写出来,DS1302时钟可以自动调整,且不需要对闰年就行特殊的说明,因为此实时时钟具有闰年补偿功能。
DS1302时钟芯片的工作电压在2.5~5.5V之间。
可以采用双电源供电,即是主电源和备用电源。
3.2.2DS1302引脚介绍[3]
图3.3DS1302引脚分配图
DS1302时钟芯片引脚分配如图3.3所示[3],各引脚的功能为:
8、Vcc1:
备用电池端;
7、SCLK:
串行时钟,输入;
6、I/O:
数据输入/输出;
5、CE/RST:
复位脚
1、Vcc2:
5V电源。
当Vcc2>
Vcc1+0.2V时,由Vcc2向DS1302时钟芯片进行供电,当Vcc2<
Vcc1时,则由Vcc1向DS1302时钟芯片进行供电。
23、X1、X2是外接晶振脚(32.768KHZ的晶振)
4、地(GND)
3.2.3DS1302接口电路设计
(1)时钟芯片DS1302的接口电路和工作原理
图3.4DS1302与单片机的接口电路
图3.4DS1302与单片机的接口电路[3],DS1302最大的特点是利用主电源和备份电源的双电源引脚,其中VCC1为后备电源,VCC2为主电源。
DS1302时钟芯片是由VCC或VCC2两者中较大者供电。
Vcc1+0.2V时,由Vcc2向DS1302时钟芯片供电,当Vcc2<
Vcc1时,由Vcc1向DS1302时钟芯片供电[4]。
串行DS1302时钟芯片的主要组成部分如图3.5所示[3],主要包括输入移位寄存器、电源控制、通讯与控制逻辑、晶体振荡器及倒计数链、实时时钟以及31×
8的外部数据存储器(RAM)。
为了初始化任何的数据传送,把CE置为高电平且把提供地址和命令信息的8位装入到移位寄存器。
数据在时钟信号SCLK的上升沿时刻,串行输入。
不论我们的传送方式是单字节传送,还是多字节的传送;
也不论我们是在读周期还是在写周期,提供地址和命令信息的8位是指定的是40个字节中是哪个被访问了。
命令字通过开始的8个时钟周期装入到移位寄存器后,另外的时钟周期执行的是:
在进行读操作时,输出数据;
在进行写操作时,输入数据。
在单字节的方式下,时钟脉冲的个数时8加8;
而在多字节的方式下,时钟脉冲的个数却是8加上8的倍数,甚至可以加上248。
图3.5串行时钟芯片
(2)DS1302的控制字
DS1302实时时钟的控制字如表3.2所示[3]。
控制字的最高有效位(位7)必须是逻辑1,如果位7为0,我们就不能把数据写入到DS1302中。
位6:
如果为0,则选择
有效,表示存取的是日历时钟数据;
如果为1,则选择RAM有效,表示存取RAM数据;
位5至位1(A4~A0):
指示操作单元的地址;
位0(最低有效位):
位0为0时,选中
(低有效),则表示要进行写操作;
位0为1时,选中RD(高有效),则表示进行读操作。
表3.2DS1302的控制字
(3)数据输入/输出(I/O)口
写操作:
在控制字指令(RD/
)输入后,当SCLK时钟信号下一个上升沿到来时,数据被写入DS1302,要注意的是数据的输入顺序是从最低位(位0)开始的;
读操作:
在上一个8位的控制字指令之后,在下一个SCLK时钟信号脉冲的下降沿到来时,读出DS1302的数据,并且数据是按照最低位(D0)到最高位(D7)这样的顺序读出。
如图3.6所示[3]。
图3.6DS1302读写时序
(4)DS1302的寄存器
在DS1302的寄存器中与时间、日期有关的一共有12个,其中有7个寄存器是用来存放年、月、日、周、时、分、秒的数据格式,其读写地址如表3.3所示[3]。
关于这7个寄存器来获取实时时间和日期的说明如下:
1、秒寄存器(81h、80h):
其中读寄存器地址为81h,写寄存器地址为80h。
秒寄存器的的BIT7被定义为时钟暂停标志(CH),BIT6~BIT4为秒的十位,而BIT3~BIT0为秒的个位。
2、小时寄存器(85h、84h):
其中读寄存器地址为85h,写寄存器地址为84h。
时寄存器的BIT7用与决定DS1302时钟芯片是采用12小时模式,还是24小时模式。
当位为高时,选择PM,即选择12小时模式。
在12小时模式下,BIT5是表示时的十位;
在24小时模式下,BIT5则表示第二个10小时位。
3、控制寄存器(8Fh、8Eh):
其中读寄存器地址为8Fh,写寄存器地址为8Eh。
控制寄存器BIT7是写保护位(WP),其它的BIT6~BIT0均置为0。
在对任何的时钟和RAM进行写操作之前,WP位必须置为0。
如果WP位为1时,进行写保护位,不能对任一寄存器进行写操作。
也就是说在电路上电的初始态WP为1时,此刻不能对上面任何一个时间寄存器进行改写的,只有我们先将WP改写为0,才能对其它寄存器进行写操作。
表3.3DS1302的日历和时间寄存器
3.3LCD1602液晶显示模块
3.3.1LCD1602液晶概述
LCD1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
LCD1602液晶显示器由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。
字符位之间有一个点距的间隔,每行之间也有一定的间隔,因此LCD1602液晶是无法显示图形的。
1602LCD顾名思义也就是16X2,即可以显示两行,而且每行有16个字符。
常见的LCD1602液晶有两种,一种显示出来的是绿色背光黑色字体的效果,而另一种显示出来的是蓝色背光白色字体的效果。
这次设计所用的LCD1602液晶,它的显示屏是蓝色背光白色字体。
如图3.7LCD1602液晶实物所示。
图3.7LCD1602液晶实物
3.3.2LCD1602液晶的特性介绍
(1)+5V电压,对比度可以通过电位器来调节;
(2)LCD1602液晶内部带有复位电路,这样方便对液晶进行初始化;
(3)对DDRAM的内容和地址进行操作,拥有11条控制命令,如:
清屏指令、光标归为指令、光标闪烁、显示移位、功能设定指令(初始化时使用)等多种功能指令;
(4)有80字节显示数据存储器(DDRAM);
(5)内部有160个5X7点阵的字型的字符存储器(CGROM);
(6)8个5X7的字符发生器CGRA,可由用户自定义;
3.3.3LCD1602液晶引脚介绍
表3.4是LCD1602液晶显示器的引脚功能[5],LCD1602字符液晶有两种,一种是有14条引脚的,另一种具有16条引脚。
对于拥有16条引脚的LCD,它的15脚是背光电源线VCC,16脚是地线GND,其中引脚4(RS)、引脚5(R/W)、引脚6(E)分别接AT89S52单片机P2.0、P2.1、P2.2口;
引脚7—14则作为数据总线(DB0-DB7)接AT89S52单片机P0.0~P0.7口;
在引脚2和引脚3之间接了一个可调电位器,其作用是来调整LCD1602液晶显示屏的对比度
表3.4LCD1602液晶显示器的引脚功能
3.3.4LCD1602字符液晶使用方法
(1)基本操作时序
如表3.5、图3.8所示[5]。
表3.5
1602液晶读时序图
1602液晶写时序
图3.81602液晶读写时序
(2)1602液晶的RAM缓存区
DDRAM也就是显示数据RAM,是用来存放待显示的字符代码,一共有80个字节,即一行有40个地址。
但是在LCD1602液晶使用中,我们就用前16个地址(00H~0FH),第二行也一样用前16个地址(40H~4FH)。
DDRAM地址与显示位置的对应关系如图4.9所示。
图4.9
(3)1602字符液晶字库
在LCD1602模块上固话了字模存储器,也就是CGROM和CGRAM[4]。
LCD模块的HD44780字模存储器内置了192个常用字符的字模,存储于字符产生器CGROM中,另外还有八个允许用户自定义的字符产生RAM[4]。
字符字模关系对照表如表3.6所示[4],可见这些字符包括:
阿拉伯数字、英文大小写字母、常用的符号等。
由对照表可知,每一个字符都有相对应的代码,比如数字“1”的代码是00110001B(31H),当送到1602液晶进行显示时,地址被写入,液晶显示屏上会显示出点阵字符图形“3”。
表3.6
3.3.5LCD1602液晶与AT89S52单片机的接口电路