基于单片机的电子万年历毕业论文.docx

上传人:b****4 文档编号:4193553 上传时间:2022-11-28 格式:DOCX 页数:17 大小:290.03KB
下载 相关 举报
基于单片机的电子万年历毕业论文.docx_第1页
第1页 / 共17页
基于单片机的电子万年历毕业论文.docx_第2页
第2页 / 共17页
基于单片机的电子万年历毕业论文.docx_第3页
第3页 / 共17页
基于单片机的电子万年历毕业论文.docx_第4页
第4页 / 共17页
基于单片机的电子万年历毕业论文.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

基于单片机的电子万年历毕业论文.docx

《基于单片机的电子万年历毕业论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子万年历毕业论文.docx(17页珍藏版)》请在冰豆网上搜索。

基于单片机的电子万年历毕业论文.docx

基于单片机的电子万年历毕业论文

---文档均为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键(加按键

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1