当前位置:文档之家› 电子万年历设计报告书

电子万年历设计报告书

电子万年历设计报告书
电子万年历设计报告书

题目:带温度显示的万年历的设计姓名:

学院:

组别:

万年历的设计与实现

摘要

随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,能够显示从2000至2099年的年、月、日、星期、时、分、秒。同时还可以对当前环境温度进行实时测量。系统具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

关键词:单片机,时钟芯片,多功能万年历,数码管,温度传感器

ABSTRACT

With the rapid development of science and technology, the passage of time, to

from the view of the sun, pendulum clock to the present clock, humans continue to study, and continuously record. DALLAS United States that have launched small trickle charge current to a low-power real time clock circuitry of the DS1302. It can be year, month, day, Sunday, hours, minutes, seconds for time, but also has a leap year compensation to a variety of functions, and the DS1302's long life, small error. For the digital electronic calendar using an intuitive digital display can simultaneously display year, month, day, Sunday, hours, minutes, seconds, and temperature and other information, but also a time-calibration and other functions.

The circuit uses AT89S52 microcontroller as the core,, can demonstrate from 2000 to 2099 year, month, Japan, week, divides, the second and carries on the integral point to report time.. The system has the read to be convenient, the demonstration is direct-viewing, the function is diverse, the electric circuit is succinct, cost inexpensive and so on many merits, conforms to the electronic instrumentation measuring appliance's trend of development, has the broad market prospect.

KEY WORDS: monolithic integrated circuit;real time clock;multi-purpose ten thousand calendars;LED;temperature sensor.

一、设计要求与方案论证

1.1 设计要求:

①系统具有年、月、日、星期、时、分等功能;

②系统具有温度计功能;

③系统具备年、月、日、星期、时、分校准功能;

1.2 系统基本方案选择和论证

1.2.1单片机芯片的选择方案和论证:

方案一:

采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。

采用AT89S52,片内ROM全都采用Flash ROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。综合选择所以采用方案二作为主控制系统。

1.2.2 显示模块选择方案和论证:

方案一:

采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用LCD液晶显示屏。

方案二:

采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,控制比较复杂,且价格也相对较高,所以也不用此种作为显示。

方案三:

采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少,与译码器74LS138配合来控制16个数码管,清晰调理。所以采用了LED数码管作为显示。

综合以上方案,考虑实际价格因素,降低设计难度,最后决定选用方案三LED数码管作为显示。

1.2.3时钟芯片的选择方案和论证:

方案一:

直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大,编程复杂。所以不采用此方案。

方案二:

采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA.

综合考虑,采用方案二用DS1302时钟芯片实现时钟。

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

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

方案二:

采用数字式温度传感器DS18B20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单片机连接,可以去除A/D模块,降低硬件成本,简化系统电路。另外,数字式温度传感器还具有测量精度高、测量范围广等优点。

综合以上方案,采用方案二。

1.3 电路设计最终方案决定

综上各方案所述,对此次作品的方案选定:采用AT89S52作为主控制系统; DS1302提供时钟;数字式温度传感器;数码管与译码器74LS138配合完成显示。

二.系统的硬件设计与实现

2.1 电路设计框图

2.2 系统硬件概述

本电路是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的

实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能,同时也可通过键盘来调试;温度的采集由DS18B20构成;显示部份由译码器74LS138和数码管配合完成显示任务。

2.3 主要单元电路的设计

2.3.1单片机主控制模块的设计

AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3, MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端. 如图-1 所示:

图2.1 主控制系统

2.3.2时钟电路模块的设计

图-2示出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进行操作。如果在传送过程中RSTS置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电动行时,在Vcc大于等于2.5V之前,RST必须保持低电平。中有在SCLK 为低电平时,才能将RST 置为高电平,I/O为串行数据输入端(双向)。SCLK始终是输入端。

图2.2 DS1302的引脚图

2.3.3温度采集模块设计

如图-3所示。采用数字式温度传感器DS18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用P0.7与DS18B20的I/O口连接加一个上拉电阻,Vcc接电源,Vss接地。

图2.3 DS18B20温度传感器

2.3.4 电路原理及说明

(1) 时钟芯片DS1302的工作原理:

DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置“0”,接着把RST端置“1”,最后才给予SCLK脉冲;读/写时序如下图4所示。图5为DS1302的控制字,此控制字的位7必须置1,若为0则不能把对DS1302进行读写数据。对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0。位1至位5指操作单元的地址。位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。表6为DS1302的日历、时间寄存器内容:“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。“WP”是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。当“WP”为1时,写保护位防止对任一寄存器的写操作。

(2) DS1302的控制字节

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

RAM RD

1 / CK A4 A3 A

2 A1 A0 /WR

表-1 DS1302的控制字格式

(3) 数据输入输出(I/O)

在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,

数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK 脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。如下图-4所示

图2.4 DS1302读/写时序图

(4) DS1302的寄存器

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

表-2 DS1302的日历、时间寄存器

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

2.3.5数码管显示的设计及其控制

1.

2.

图2.数码管显示及其驱动模块电路

2.3.6稳压电源设计

电源是设计的关键,一个好的电源可以使系统变的更加稳定,要输出一个5V的电源,要用到7805芯片,其输出电压为5V,电路简单。要求纹波系数小,工作稳定,负载电阻的改变对稳压源的影响小等。具体设计思路是:采用12的直冲式电源先将220伏的交流电变成12伏,整流后通过大电容滤波,之后送7805稳压芯片稳压,再经过小电容滤波进一步减少纹波系数后输出。

图2.6系统电源电路

三.系统的软件设计

3.1程序设计流程图

图3.1 设计流程图 左图是住程序流程 右图是循环程序流程

3.1.1基本程序设计思想

1,在程序循环运行阶段,我们采用了严格的60Hz 的刷新频率,使得用户使用时感觉不到数码管任何的闪烁。每个小循环控制在16.6ms 左右,在这个时间之内扫描每个数码管,和处理由于中断产生的数据变动,由于DS18B20的温度转换时间接近500ms ,所以不能在对其写入命令后进行延时等待,那样会使得数码管显示错乱的停滞,不流畅,所以采用了一个循环16.6ms ,运行60的小循环后再进行读取DS18B20的温度数据。

2,在调整时间时,为了保证调时时相应位的闪烁,在小循环的每一位数码管的显示前加了一个判断标志,使得该位数码管的显示与否可以由该标志控制,从而通过中断设置时间时,置位或者清零该标志位,同时修改时间。

3,为了保证能让时间修改后能够实现实时更改数据显示,在60个小循环后再添加了一个小的时间修改函数,该函数由时间修改标志位控制,而该标志又是由中断来设置。固可以使得中断时间尽量减少,且可以达到实时修改时间和显示时间。

4,本程序主要的设计思想就是通过中断修改标志位从而显示各数码管和修改时间,同时有非常严谨的时间概念,使得数码管的显示刚好达到标准的60HZ.

3.2时钟及温度传感器程序块的设计

1,DS18B20温度传感器的通信方式为一线制,所以对时间的要求非常之高,在编写该块程序时,我们对每一个语句进行了仿真测试其运行的时间,并进行了计算,使得一线制通信成功运行。

2,1302时钟芯片采用的是I2C通信方式,通过参考芯片手册编写程序。四.系统测试与仿真

4.1仿真

仿真原理图

4.2测试

电子万年历是多功能的数字型单片机应用产品,它可以显示当前日期,时间,还有温度。电子成年历功能较多,所以它的程序也较为复杂,所以在编写程序和调试时出现了相对较多的问题。最后经过多次的模块子程序的修改,一步一步的完成,最终解决了这些问题。在软硬件的调试过程中主要遇到的问题如下:

1.在数码管显示的时候数码管亮度很小,理论上的原因分析之后觉得是驱动电流太小,但是已经接了一个74245,所以我们再次检查该元件的连接是否正常,最终察觉到是电源引脚没接。

2.由于本万年历的数码管数量大,连线相对比较复杂,数码管出现多次乱码,

显示的数据与预想数据不相符,解决方法是一遍一遍地检查电路连接,确保段选和为选没有搞错,最终数码显示正常。

3.

4.3测试结果分析与结论

经过多次的反复测试与分析,可以对电路的原理及功能更加熟悉,同时提高了设计能力与及对电路的分析能力.同时在软件的编程方面得到更到的提高,对编程能力得到加强.同时对所学的知识得到很大的提高与巩固.

五、结束语

通过这次创新实验,使我们学到了很多东西,

5.1设计总结

参考文献

1 戴仙金,51单片机及其C语言程序开发实例北京:清华大学出版社,2008 2王静霞,单片机应用技术北京电子工业出版社,2009

附录一:系统总电路图

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