基于单片机的电子万年历毕业论文.docx
- 文档编号:4193553
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:17
- 大小:290.03KB
基于单片机的电子万年历毕业论文.docx
《基于单片机的电子万年历毕业论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子万年历毕业论文.docx(17页珍藏版)》请在冰豆网上搜索。
基于单片机的电子万年历毕业论文
---文档均为word文档,下载后可直接编辑使用亦可打印---
摘要
现今信息技术飞速发展,时间和每一个人都有非常密切的相互联系,时间对任何人都有着非常重要的影响。
随着科技的快速发展,流逝的时间,我们从根据太阳来判断时间,发展到了用钟摆看时间,到现在又有了各种电子表等。
当各类电子表在我们生活中广泛应用的时候,电子万年历的的出现又把我们引入到一个全新的时代。
电子万年历是一种使用非常广泛的日常计时工具,对现代社会越来越流行。
它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,还具有时间校准等功能。
本设计是基于51系列的单片机进行的电子万年历设计,主要由时钟芯片DS1302采集数据到单片机进行处理再通过LCD1602显示出来。
电子万年历的软件部分是使用c语言编写,主要用到的硬件电路有时钟芯片DS1302、液晶显示LCD1602,主控制芯片AT89C51,还有按键。
关键词:
单片机,LCD602,AT89C51,DS302
Abstract
Nowadaysinformationtechnologydevelopsrapidly,andtimeandeveryonehaveverycloseinterconnections,andtimehasaveryimportantinfluenceonanyone.Withtherapiddevelopmentofscienceandtechnology,thetimeelapsed,wejudgethetimeaccordingtothesun,developtousethependulumtowatchthetime,andnowhaveallkindsofelectronicwatchesandsoon.Whenallkindsofelectronicwatchesarewidelyusedinourlives,theadventofelectroniccalendarbringsustoawholenewera.Electroniccalendarisakindofwidelyuseddailytimingtool,whichisbecomingmoreandmorepopularinmodernsociety.Itcantimetheyear,month,day,Sunday,hour,minute,second,alsohaveleapyearcompensationandsoonmanyfunctions,stillhavetimecalibrationandsoonfunction.
Thisdesignisbasedontheelectroniccalendardesignof51seriesofsingle-chipmicrocomputer,mainlybytheclockchipDS1302collectingdatatothesinglechipmicrocomputerforprocessingandthenthroughLCD1602.Thesoftwarepartoftheelectroniccalendariswritteninclanguage.ThemainhardwarecircuitsusedareclockchipDS1302,liquidcrystaldisplayLCD1602,mastercontrolchipAT89C51,andbuttons.
Keywords:
Microcontroller;LCD1602;AT89C51;DS1302
第1章绪论
1.1背景及目的
1.1.1课题研究背景
在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响,随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。
为了在观测时间的同时,能够了解其它与人类密切相关的信息,比如温度、星期、日期等,电子万年历诞生了,它集时间、日期、星期和温度功能于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势。
伴随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。
由其是单片机技术的应用产品已经走进了千家万户。
电子万年历的出现给人们的生活带来的诸多方便,作为一种附加功能,现在越来越广泛的被应用于各种电子产品中,具有广阔的市场前景。
1.1.2选题的意义及目的
LCD液晶显示的日历钟显示清晰直观、走时准确、可以进行夜视并且还可以扩展出多种功能。
功能也越来越齐全。
由于单片机的性能好,可靠性强,低功耗,抗干扰和使用轻便快捷等优点,且最近几年发展迅速,单片机已经应用于众多行业。
所以单片机技术为核心,软硬件结合,设计出了功能多样、电路简洁,操作简单,功耗低,成本小等多项优点的万年历系统。
适合批量生产,符合电子仪器仪表的未来发展趋势,具有广阔的市场前景。
1.2国内外发展现状及水平
随着社会、科技的发展,集直观性,精度高,寿命长,功能全等为一体的记录方式更为人们所需求。
在电子产业高速发展这一时代背景下,大规模集成电路大量出现,电子万年历也因读取方便、显示直观、功能多样、电路简洁等诸多优点随之诞生,它的出现极大地影响了人们的生活,我们的时间记录更为全面和科学。
因此,对万年历的研究与探索是具有相当重要的现实意义和实用价值。
万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
近些年我国也开始重视对电子万年历的开发与设计,让更多的电子万年历能够走进人民生活,跟多人能够应用到功能强大,精度高的电子万年历。
第2章系统的方案选择及论证
2.1单片机芯片选择
本设计采用AT89C51芯片作为硬件核心,该芯片采用FlashROM,内部具有4KBROM存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,与工业标准的MCS-51指令集和输出管脚相兼容,相对于本设计而言程序空间完全够用。
2.2时钟芯片的选择与论证
方案一:
直接使用单片机定时器提供秒信号,计数的脉冲由外部提供,定时的脉冲由外部晶振提供,定时时间与初值和晶振频率有关。
使用程序实现年、月、日、星期、时、分、秒计数。
采用此种方案虽然减少芯片的使用,节约成本,但程序复杂度较高,计时不精准。
方案二:
采用DS1302时钟芯片,该芯片是由美国DALLAS公司推出的。
该芯片是一种高性能、功耗低、带有RAM的实时时钟电路,采用32.768Khz晶振,可对年、月、日、星期、时、分、秒进行计时,具有闰年补偿功能。
工作电压为2.5~5.5V,可为掉电保护电源提供可编程的涓流电流充电功能;采用接口与CPU进行串行数据传输,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
经过多方面比较,最终选择方案二。
2.3显示模块的选择与论证
方案一:
采用LED数码管显示,数码管显示虽然经济实惠,但是不能显示文字,只能显示数字而且在动态扫描过程中需要用到移位寄存器,在调试过程中会略显繁琐。
方案二:
采用LCD液晶显示,使用LCD1602显示效果明显,操作方便显示功能强大,显示多样化。
对于本设计一个1602就够了,且价格适中接口多方便调试。
综上本设计采用方案二LCD显示。
2.4电路设计最终方案
综合上面各种方案,最终本设计:
采用AT89C51芯片作为主控制系统,采用DS1302提供时钟信号,最后使用LCD1602液晶屏幕进行显示。
第3章系统的硬件设计与实现
3.1电路设计框图
图3-1系统主要框图
3.2系统硬件概述
本电路是由AT89C51单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个用于临时性存放数据的RAM寄存器。
可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;显示部份由LCD液晶显示屏显示。
3.3系统的电路设计
3.3.1系统总体电路设计图
图3.3.1系统总体设计图
按键K0接P2.7口,按下按键后(锁定)进入修改状态,光标闪烁;
按键K1接P2.5口,按下按键后,选择修改的值,按照年份,星期,月,日,时,分,秒的顺序选择。
按键K2接P2.3口,按下按键,相对应的值加1。
按键K3接P2.1口,按下按键,相对应的值减1。
3.3.2单片机主控制模块
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1.芯片引脚图
图3.3.2-1AT89C51引脚图
2.主要特性:
·与MCS-51兼容
·4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
3.管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
表3.3.2-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
/D(外数据存储器读控制信号)
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
4.振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
5.芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
3.3.3时钟电路模块
DS1302时钟芯片,该芯片是由美国DALLAS公司推出的。
该芯片是一种高性能、功耗低、带有RAM的实时时钟电路,采用32.768Khz晶振,可对年、月、日、星期、时、分、秒进行计时,具有闰年补偿功能。
工作电压为2.5~5.5V,可为掉电保护电源提供可编程的涓流电流充电功能;采用接口与CPU进行串行数据传输,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
(1)引脚功能
DS1302芯片引脚图如图3.3-1所示。
图3.3-1DS1302芯片引脚图
图3.3-2DS1302内部结构图
X1、X2:
外接32768Hz晶振。
SCLK:
串行时钟脉冲输入端。
I/O:
串行数据输入/输出端。
______RST:
复位/片选端。
______RST=0,DS1302复位;______RST=1,允许对DS1302读写操作。
Vcc1和Vcc2为主电源,接+5V电源;Vcc1为备用电源,可外接3.6V锂电池。
GND:
接地端。
(2)操作控制字
操作控制字实际上是一个地址有着固定的结构,其中包含了操作对象和操作命令,如表3.3所示。
表3.3DS1302操作控制字
D7:
操作使能位。
1有效,允许操作;0无效,禁止操作。
D6:
操作数据区选择位。
1选择操作RAM,0选择操作时钟。
D5~D1:
被操作单元A4~A0位地址,与其余各位共同组成操作单元8位地址信号,即操作控制字。
D0:
读写选择位。
1表示进行读操作,0表示写操作。
因此,读操作单元地址(控制字)均为奇数,写操作单元地址(控制字)均为偶数。
读写DS1302首先要写入操作控制字。
(3)读写时序
图3.4为DS1302读写时序,其串行数据传输的顺序与80C51串行口相同,无论输入输出,均从低位到高位。
控制字最低位RD/______WR最先串出,待最后操作使能位1串出后,紧接着下一个SCLK脉冲就是数据读写。
写DS1302是上升沿触发,读DS1302是下降沿触发。
图3.4DS1302读写时序
(4)片内寄存器
DS1302内部共有12个寄存器,具有时钟读写、RAM读写、充电和写保护等功能,如表3-5所示.
表3-5DS1302寄存器
1.时钟。
有年、星期、月、日、时、分、秒等日历时钟单元。
寄存器读单元地址与写单元地址分开,读时用单数(81H~8DH),写时用双数(80H~8CH)。
需要注意的是,DS1302在第一次加电后,必须进行初始化操作。
初始化后就可以按正常的方法调整时间,数据格式为BCD码。
其中:
a.秒单元(80H/81H)中的bit7功能特殊,定义为时钟暂停标志CH。
CH=1,时钟振荡器停,DS1302处于低功耗状态;CH=0,时钟振荡器运行。
b.小时单元(84H/85H)可有12小时模式或者24小时模式,由bit7确定:
bit7=0,24小时模式,此时bit5为20小时标志位;bit7=1,12小时模式,此时bit5处于AM/PM模式:
bit5=0,AM(上午);bit5=1,PM(下午)。
c.星期单元(8BH/8AH)中bit3的数据1对应星期日,2~7对应星期一~星期六。
周数据与我国习惯用的星期序数不一样,所以显示程序中做了修改。
2.写保护。
写保护单元(8EH/8FH)中,bit7为写保护位WP,当WP=1且其余各位均为0时禁止写DS1302,保护各寄存器数据不被改写,防止误操作。
WP=0,允许写DS1302。
3.RAM。
DS1302内部有31字节8位RAM,因其有备用电源,供电连续有保障,因此可将一些需要保护的数据存入其中。
RAM地址范围为C0H~FDH,其中奇数为读操作,偶数为写操作。
4.突发操作。
DS1302每次读写一个字节,均要先写入操作控制字比较繁琐。
突发操作用于连续读写,分为时钟突发和RAM突发,可一次性顺序读写多字节时钟数据或RAM数据。
时钟突发控制字为BEH(写)/BFH(读),RAM突发控制字为FEH(写)/FFH(读)。
需要注意的是,突发写时钟必须一次性写满8字节时钟数据(包括写保护寄存器),若少写一个字节,将出错。
但是突发读时钟可只读7字节时钟数据。
3.3.4显示模块
LCD1602液晶显示器由液晶显示屏和驱动控制集成电路(HD44780)组成,分析其功能实际上主要是分析驱动电路HD44780的功能。
LCD1602的外形和引脚结构图3.4所示。
图3.4LCD1602的外形和结构引脚
(1)引脚功能
LCD1602共有16个引脚,其名称和功能如下。
1.Vss:
电源地端。
2.VDD:
电源正级。
4.5~5.5V通常接+5V。
3.Vo:
LCD对比度调节端。
调节范围为0~+5V,接正电源时对比度最弱接地时对比度最高;一般将其调节到0.3~0.4V时对比度效果最好。
4.RS:
寄存器选择端。
RS=1,读写数据寄存器;RS=0,读写指令寄存器。
5.R/——W:
读写控制端。
R/——W=1,读出数据;R/——W=0,写入数据。
6.E:
使能端。
E=1,允许读写操作,下降沿触发;E=0,禁止读写操作。
7.D0~D7:
8位数据线,三态双向,也可采用4位数据传送方式。
8.BLA:
LCD背光源正极。
9.BLK:
LCD背光源负极。
(2)内部寄存器
LCD1602内部寄存器有指令寄存器IR、数据寄存器DR、地址计数器AC、数据显示存储器DDRAM、字符发生存储器CGROM、自定义字符存储器CGRAM、光标控制寄存器、输入/输出缓冲器和忙标志位BF等。
其中与编程应用有关的寄存器简介如下:
1.数据显示存储器DDRAM(DataDisplayROM)。
DDRAM存放LCD显示的点阵字符代码,共有80字节。
LCD1602是2x16位,即可显示2行,每行16个字符。
其对应的存储器地址分别为:
00H~0FH(第一行)和40H~4FH(第二行),其余存储单元可作一般RAM使用。
2.字符发生存储器CGROM内部固化了192个点阵字符(160个5x7点阵字符和32个5x10点阵字符)。
其中,标点符号、阿拉伯数字和英文大小写字母等字符为ASCII码。
3.自定义字符存储器CGRAM。
有64字节RAM,可自定义8个5x8点阵字符或4个5x11点阵字符。
4.地址计数器AC。
作为DDRAM或CGRAM的地址指针,具有自动加1和自动减1功能。
当数据从DR送到DDRAM/CGRAM时,AC自动加1;当数据从DDRAM/CGRAM送到DR时,AC自动减1。
当RS=0、R/——W=1时,在使能端E=1激励下,AC的内容送到D7~D0。
5.忙标志BF。
BF=1时,忙;BF=0时,空闲。
在RS=0、R/——W=1时,令E=1,BF信号输出到D7上,CPU可对其读出判别。
与LED比较,LCD是一种慢响应器件,从地址建立、保持到数据建立、保持均需要时间(ms级),在其内部操作未完成前对其读写,将出错。
因此,LCD1602编程应用时,需要充分考虑延时操作也可以对其“忙”状态查询,在确认LCD1602“空闲”条件下,才能对其进行读写操作。
(3)控制指令
LCD1602读写控制由寄存器RS、读/写控制端R/——W和使能端E确定。
如下表所示。
表3.3.4LCD1602读写控制
在RS=0、R/____W=0并E=1的条件下,写入LCD1602的操作指令如表3.3.5所示。
表3.3.5写入LCD1602的操作指令
第4章系统的软件设计
4.1程序流程框图:
Y
N
NY
图4.1主程序流程图
主程序流程图如上图4.1所示。
由于在硬件电路方面上设计了时间调整按键和开关,因此应有对应的时间调整程序。
时间调整程序的流程图如图4.2所示。
图4.2时间调整程序流程图
K0键为开始,按下K0键后光标闪烁,首先年闪烁,等待修改,按下K1键选择需要修改的值,按照年,星期,月份,日,小时,分钟的顺序循环选择。
第一次修改年份,按下K2键(加按键)有效,年份的值加1,按下K3键(减按键)有效,年份数值减1。
年份值修改完毕后,按下K1键进入修改星期值,对应光标闪烁,按下K2键(加按键)有效,星期的值加1,按下K3键(减按键)有效,星期的数值减1。
星期值修改完毕后,按下K1键进入月调整程序,修改月份值,对应光标闪烁,按下K2键(加按键)有效,月份的值加1,按下K3键(减按键)有效,月份的数值减1。
月份的值修改完毕后,按下K1键进入日调整程序,修改日值,对应光标闪烁,按下K2键(加按键
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 电子 万年历 毕业论文