当前位置:文档之家› 基于单片机的万年历设计课程设计_毕业论文

基于单片机的万年历设计课程设计_毕业论文

基于单片机的万年历设计课程设计

摘要

电子万年历是一种非常广泛的日常计时工具,它不仅能够对时间技术,还能够对日期、温度、湿度等进行显示,所以在现代社会受到广泛应用。

本设计是一个基于AT89C51单片机的多功能日历显示系统,本设计能显示公历年、月、日,以及时、分、秒、温度、星期等信息,而且还具有日期调整、时间校准以及温度采集等功能。系统所用的时钟日历芯片DS1302和数字式温度传感器DS18B20具有高性能、低功耗、接口简单的特点,使本系统电路简化,编程方便,同时功能也很强。采用AT89C51单片机的万年历系统可以很好的改善传统采用模拟电路引起的计时不准确,不可靠,一致性差等问题。

本文设计是用单片机为主控制,通过电路仿真而实现的。在Proteus7软件绘制硬件电路原理图,用Keil软件进行编程与调试,最终生成hex文件,载入单片机,从而实现仿真效果。

本文设计经过最终调试,能够正确显示年、月、日、周、时、分、秒以及温度等所需信息,并能正常使用对日期与时间的调整与校正功能。系统使用1602LCD 液晶屏显示信息,界面简洁、直观、易于操作。

关键词:万年历;单片机;AT89C51;DS1302;DS18B20

目录

1 引言 (1)

1.1研究的目的和意义 (1)

1.2本系统主要研究的内容 (1)

2 系统方案论证 (2)

2.1控制部分的选择方案与论证 (2)

2.2显示部分的选择方案与论证 (2)

2.3时钟芯片的选择方案与论证 (2)

2.4温度传感器的选择方案与论证 (3)

2.5电路设计最终方案系统原理及总体结构图 (3)

3 系统设计 (4)

3.1 系统硬件仿真原理图 (4)

3.2 单片机89C51控制模块的设计 (4)

3.3 LCD液晶显示模块设计 (7)

3.4 DS1302时钟模块的设计 (9)

3.5 DS18B20温度采集模块的设计 (12)

4 系统调试 (15)

4.1硬件调试 (15)

4.2软件调试 (15)

5 结论 (15)

参考文献 (16)

物理与电子工程学院2011级本科课程设计

附录 (17)

物理与电子工程学院2011级本科课程设计

1 引言

人类的日常生活离不开时间,任何具有周期变化的自然现象都可用来测量时间。而现在人们日常生活中广泛使用的是机械表、电子表、电子中等。

随着科技的发展,电子技术和计算机应用领域不断扩大,特别是单片机的出现,是近代计算机技术发展史上的一个重要里程碑。基于单片机的万年历结合了时钟和日立的功能,将其二者融为一体,在现实时间的同时还能显示日期和年月,它主要通过单片机来读取时钟芯片的时间、日期,然后送给显示设备显示出来。

本系统的万年历除了显示年月日外还能准确显示温度它所处环境的温度。本设计采用的测温元件是美国DALLAS半导体公司生产的一种智能温度传感器DS18B21,测温范围为-55~125C,最高分辨率达到0.0625C。

1.1研究的目的和意义

随着电子技术的迅速发展,特别是大规模集成电路出现,给人类生活带来了根本性的变化,尤其是单片机技术的应用产品已经走进了千家万户。近年来,我国科技不断发展,我国经济发展的支柱产业——电子产业获得长足发展,各种电子产品琳琅满目,随处可见,随着电子产品的更新速度的加快,各种功能强大,款式新颖的电子产品不断问世。

万年历便是这一发展趋势中的代表,万年历则顺应了人们对时间方面的要求。它的出现给人们的生活带来的诸多方便,在时间极显宝贵的现代生活中,起作用更是不言而喻的。他在学校、车站、码头、剧院、医院、办公室等公共场所的应用非常广泛。但传统的万年历除了显示时间之外,功能较为单一,逐渐失去了市场。顺应技术发展和人们生产生活需求,各种功能的新式万年历不断涌现,且功能不断更新。

万年历作为电子类的小产品以其方便、实用等优势成为市场上的宠儿,同时也成为单片机设计培训中一个很实用的课题。因为这个课题有很好的开发性和可发挥性,因此对设计者的要求比较高,不仅考察了队单片机的掌握能力更加强调了对单片机扩展的应用。而且要求设计的万年历在操作上力求简洁,功能上尽量齐全,显示界面也要出色。所以万年历不论从实用角度还是培养能力角度都很有价值。

1.2本系统主要研究的内容

本系统的主要研究内容是:

(1)选用电子万年历芯片时,应重点考虑功能实在、使用方便、单片存储、低功耗、抗断电的器件。

(2)根据选用的电子万年历芯片设计外围电路和单片机的接口电路。

(3)在硬件设计时,结构要尽量简单实用,易于实现,是系统电路尽量简单。

(4)根据硬件电路,编写控制AT89C51芯片的单片机程序。

(5)通过编程、编译、调试,把程序下载到单片机上运行,并实现本设计的功能。

2 系统方案论证

2.1控制部分的选择方案与论证

方案一:用可编程逻辑器件设计

可采用PLD器件,设计起来结构清晰,各个模块从硬件上设计起来相对简单,控制与显示的模块间连接也会比较方便。但是考虑到本设计的特点,EDA在能够扩展上比较受局限,占用的资源也多。从成本上讲,可编程逻辑器件价格比较高。

方案二:用单片机设计

用51

AT单片机芯片作为控制部分,单片机有丰富的中断源,它的准确度89C

相当高,并且C语言的灵活运用,给编程带来了方便。单片机I/O功能也比较强大,容易对其进行扩展,使设计更加完善,此外单片机的成本也比较低。

综上所述,51

AT资源丰富,程序编写也灵活简单,可移植性强,性价比

89C

也高,所以选择51

AT作为主控芯片。

89C

2.2显示部分的选择方案与论证

方案一:采用点阵式数码管显示

点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较合适,但是基于电子万年历主要是显示数字,就显得太浪费了,且价格相对较高。

方案二:采用LCD液晶显示屏

LCD液晶显示屏的显示功能特别强大,可以显示大量文字、图形,显示多样清晰可见,使得万年历的内容更加丰富,加上动态显示效果,更加吸引观众的眼球。

2.3时钟芯片的选择方案与论证

方案一:直接采用单片机定时计数器

直接采用单片机定时计数器提供时间单位秒,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现时间误差较大,而且不具有实时性,必须用到断电存贮资料,否则一断电,时钟就不会准确,误差太大。

方案二:采用DS1302时钟芯片实现时钟

DS1302时钟芯片是一种高性能的时钟芯片,可自动对秒、时、分、日、周、月、年以及闰年补偿的年进行计数,而且精度高的RAM作为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300mA。此外可以外接电池,具有实时

性,断电后时间还会走,比较精准。

2.4温度传感器的选择方案与论证

方案一:使用热敏电阻作为传感器

用热敏电阻与一个相应该阻值相串联分压,用热敏电阻随温度变化的特性,采集这两个电阻变化的分压值,并用A/D转换。此设计方案需用A/D转换电路,增加硬件成本而且热敏电阻的温性曲线并不是严格线性的,会产生较大测量误差。

方案二:采用数字式温度传感器DS18B20

此类传感器为数字式传感器,而且仅需要一条数据线进行数据传输,易于与单片机连接,可以去除A/D模块,降低硬件成本,简化系统电路,测量温度精度高。

2.5电路设计最终方案系统原理及总体结构图

本系统包括主控模块,显示模块,时钟模块,温度采集模块,综上各方案所述,电路设计最终方案:采用51

AT作为主控制系统,1602LCD液晶作为显示

89C

部分,DS1302作为时钟模块,DS18B20传感器来采集温度信息。

根据上述电路设计最终方案,系统总体设计方案如图2-1所示

设计的电路主要由四大模块构成:温度传感器电路,单片机控制电路,显示电路以及校正电路。

图2-1 系统总体结构图

当温度传感器接受到外面的信号,送入单片机,单片机将接受到的信号输出,让它在液晶上显示。

同时由单片机控制的万年历以及时间显示,当时间及秒计数计满60时就向分进位,分计数器计满60分后向时计数器进位,小时计数器按“24翻1”规律计数。

时、分、秒的计数结果经过数据处理可直接送显示器显示。当计时发生误差的时候可以用校时电路进行校正。时计数器计满24小时后自动向日计数器进一,日计数器由平年、闰年的28/30/31对大、小月和二月的判断应与当月相应的日期相一致,当日计数器计满时,向月计数器进位,月计数器计满12月向年计数器进位,当年计数器计满100时所以计数器清零。设计采用的是年、月、日和时、分、星期显示,所以在单片机通过对数据处理进行同时在液晶上显示。

3 系统设计

3.1 系统硬件仿真原理图

本次设计是在Proteus软件绘制的硬件图,如下图3-1所示

图3-1 硬件仿真原理图

3.2 单片机89C51控制模块的设计

AT89C51是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含4KB的可反复擦除的只读程序存储器(PEROM)和128B随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和FLASH存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合。

主要性能参数:

①与MCS-51产品指令系统完全兼容

②4K字节可重擦写FLASH闪速存储器

③1000次擦写周期

④全静态操作:0HZ-24MHZ

⑤三级加密程序存储器

⑥128 8字节内部RAM

⑦32个可编程I/O口线

⑧2个16位定时/计数器

⑨6个中断源

⑩可编程串行UART通道

图3-2 AT89C51 引脚封装图

芯片引脚介绍:

(1)主电源引脚

① VCC:+5 V电源

② VSS:地线。

(2)时钟电路引脚

XTAL1和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。

(3)控制信号引脚

① RST/VPD:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作;当单片机掉电时,此引脚上可接备用电源,由VPD向片内RAM提供备用电源,一保持片内RAM中的数据不丢失。

② ALE/PROG:地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。

对于EPROM型单片机,在EPRAM编程期间,此引脚接收编程脉冲。

③ PSEN:片外程序存储器读选通信号输出端。

④ EA/VPP:访问程序存储控制信号。当EA信号为低电平时,对ROM的读操作限定在外部程序存储器;当EA信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。

对于EPROM型单片机,在EPRAM编程期间,此引脚接上加21V EPROM编程电源VPP。

(4)I/O引脚

P0.0 ~ P0.7: P0口8位双向口线,P1.0 ~ P1.7 :P1口8位双向口线,P2.0 ~ P2.7 :P2口8位双向口线,P3.0 ~ P3.7 :P3口8位双向口线。

P3口线的第二功能。P3的8条口线都定义有第二功能,详见表3-21。

表3-1 P3口各引脚与第二功能表

引脚第二功能信号名称

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 外部RAM写选通

P3.7 RD 外部RAM读选通

以上把8051单片机的全部信号引脚分别以第一功能和第二功能的形式列出。对于各种型号的芯片,其引脚的第一功能信号是相同的,所不同的只在引脚的第二功能信号。对于9、30和31三个引脚,由于第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾。但是P3口的情况却有所不同,它的第二功能信号都是单片机的重要控制信号。因此,在实际使用时,都是先按需要选用第二功能信号,剩下的才以第一功能的身份作数据位的输入/输出使用。

图3-3 单片机控制模块

3.3 LCD液晶显示模块设计

显示模块主要是用来显示公历年、月、日以及时、分、秒、温度、星期等信息。LCD智能型显示模块则是一种低功耗、低价值、低损耗的显示器件,它不但可以显示各式各样的字符、汉子和图形,同时具有可编程能力,且与单片机接口方便,基于以上优点,LCD智能型显示模块获得了广泛的应用。1602LCD点阵液晶显示模块是由16*2个液晶显示点组成的一个16列*2行的阵列。每个显示点对应一位二进制数,1表示亮,0表示灭。存储这些点阵信息的RAM称为显示数据存储器,要显示某个图形或汉字就是将相应的点阵信息写入到相应的存储单元中。图形或汉字的点阵信息当然有自己设计,问题的关键就是显示点在液晶屏上的位置(行或列)与其在存储器中的地址之间的关系。每个存储单元存储8个液晶点的显示信息。

下面是关于1602LCD液晶相关信息:

(1)引脚说明如下表所示

表3-2 1602LCD引脚说明

引脚符号功能说明

1 VSS 一般接地

2 VDD 接电源(+5V)

3 V0 液晶显示器对比度调整端,接正电源时对比度最弱,接地电源

时对比度最高(对比度过高时会产生“鬼影”,使用时可以通

过一个10K的电位器调整对比度)。

4 RS RS为寄存器选择,高电平1时选择数据寄存器、低电平0时

选择指令寄存器。

5 R/W R/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进

行写操作。

6 E E(或EN)端为使能(enable)端,下降沿使能。

7 DB0 底4位三态、双向数据总线 0位(最低位)

8 DB1 底4位三态、双向数据总线 1位

9 DB2 底4位三态、双向数据总线 2位

10 DB3 底4位三态、双向数据总线 3位

11 DB4 高4位三态、双向数据总线 4位

12 DB5 高4位三态、双向数据总线 5位

13 DB6 高4位三态、双向数据总线 6位

14 DB7 高4位三态、双向数据总线 7位(最高位)(也是busy fl

ag)

15 BLA 背光电源正极

16 BLK 背光电源负极

①请在DB0~DB7数据线中加入10K上拉电阻,特别是使用单片机中的三态I/O 口时。

②V0需要一个外部的0V~10V负压输入,是液晶显示,可串入电位器调整液晶灰度。

(2)下面为1602LCD的指令集表:

表3-3 1602LCD指令集

3.4 DS1302时钟模块的设计

DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。

⑴ DS1302的引脚排列

其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc>2.0V之前,RST必须保持低电平。只有在SCLK 为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。下图为DS1302的引脚功能图:

图3-4 DS1302的引脚功能图

⑵ DS1302的控制字节

DS1302 的控制字如表3-4所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。

表3-4 DS1302的控制字格式

⑶ DS1302数据的输入输出

在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK 脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。

图3-5 DS1302读写时序图

⑷DS1302的寄存器

DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见下表。

此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。

表3-5 DS1302的日历、时钟寄存器及其控制字

寄存器

命令字取值

范围

各位内容

写操作读操作7 6 5 4 3 2 1 0

秒寄存器80H 81H 00-59 CH 10SEC SEC 分钟寄存器82H 83H 00-59 0 10MIN MIN

小时寄存器84H 85H

01-12或

00-23

12/

24

10

AP

HR HR

日期寄存器86H 87H

01-28,29,

30,31

0 0 10DATE DATE

月份寄存器88H 89H 01-12 0 0 0 IOM MONTH

周日寄存器8AH 8BH 01-07 0 0 0 0 0 DAY

年份寄存器8CH 8DH 00-99 10YEAR YEAR DS1302时钟芯片与AT89C51的连接图如下:

图3-6 DS1302时钟芯片与AT89C51的连接图

3.5 DS18B20温度采集模块的设计

采用数字式温度传感器DS18B20,有DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事领域的温度测量及控制仪器、测量系统和大型设备中。

(1)DS18B20的性能特点可归纳如下:

1)独特的单线接口仅需一个端口引脚进行通信;

2)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温;

3)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;

4)测温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃;

5)可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温;

6)在9位分辨率时最多在 93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快;

相关主题
文本预览
相关文档 最新文档