1602万年历设计论文

更新时间:2023-09-24 07:36:01 阅读量: IT计算机 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

摘要 摘要

本文介绍了基于AT89S52单片机的多功能电子万年历的硬件结构和软硬件设计方法。本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。系统以AT89S52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。温度采集选用DS18B20芯片,万年历采用直观的数字显示,数据显示采用12864A液晶显示模块,可以在LCD上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。

关键字:万年历 温度计 液晶显示

I

ABSTRACT ABSTRACT

This paper introduces the based on AT89S52 multi-function electronic calendar of the hardware structure and software and hardware design method. This design by data display module, temperature acquisition module, time processing module and set module four modules. With AT89S52 single-chip microcomputer system for the controller to serial clock calendar chip DS1302 record calendar and time, it can be to date and time, minutes and seconds for the time, also has a leap year compensation and other functions. Temperature gathering choose DS18B20 chip, calendar by using object digital display, data showed that the 12864 A liquid crystal display module, can be in the LCD shows at the same time year, month, day, Sunday, when, minutes and seconds, still have time calibration etc. Function. This calendar has read the convenient, direct display, functional diversity, simple circuit, low cost, and many other advantages, has a broad market prospect.

Key words:Perpetual Calendar thermometer LCD display

II

目录 目录

摘要 ..................................................... I ABSTRACT ................................................ II 前言 .................................................... IV 1 绪论 ................................................... 1

1.1 课题研究的背景 .................................... 1 1.2课题的研究目的与意义 .............................. 1 1.3课题解决的主要内容 ................................ 1 2 系统的方案设计与论证 ................................... 2

2.1单片机芯片设计与论证 .............................. 3 2.2按键控制模块设计与论证 ............................ 3 2.3时钟模块设计与论证 ................................ 3 2.4温度采集模块设计与论证 ............................ 4 2.5显示模块模块设计与论证 ............................ 4 3 系统硬件的设计 ......................................... 5

3.1 AT89S51单片机 .................................... 5 3.2时钟芯片DS1302接口设计与性能分析 ................. 8 3.3温度芯片DS18B20接口设计与性能分析 ............... 11 3.4 LCD显示模块 ..................................... 15 3.5按键模块设计 ..................................... 17 3.6复位电路的设计 ................................... 17 4 系统的软件设计 ........................................ 19

4.1主程序流程图的设计 ............................... 19 4.2 程序设计 ......................................... 20 5 系统的机体设计 ........................................ 24

5.1系统的模块组成 ................................... 24 5.2 功能实现 ......................................... 24 结论 .................................................... 26 参考文献 ................................................ 27 致谢 .................................................... 28 附录 .................................................... 29

III

前言 前言

随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。目前,单片机技术的应用产品已经走进了千家万户。电子万年历的出现给人们的生活带来了诸多方便。随着微电子技术的高速发展,单片机在国民经济的个人领域得到了广泛的运用。单片机以体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。

单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具,于是基于单片机的醒目而时尚的电子版万年历顺应而生。基于单片机的电子万年历结合了时钟和日历的功能,将其二者融为一体,在显示时间的同时还能显示日期和年、月,它主要是通过单片机来读取时钟芯片的时间、日期,然后送给显示设备显示出来。而电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。数字显示的日历钟已经越来越流行,特别是适合在家庭居室、办公室、大厅、会议室、车站和广场等使用,壁挂式LED数码管显示的日历钟逐渐受到人们的欢迎。LED数字显示的日历钟显示清晰直观、走时准确、可以进行夜视,并且还可以扩展出多种功能。

IV

黑龙江八一农垦大学毕业设计(论文) 1 绪论

1.1 课题研究的背景

随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。

此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

1.2课题的研究目的与意义

二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代扮演着极为重要的角色。电子万年历的开发与研究在信息化时代的今天亦是当务之急,因为它应用在学校、机关、企业、部队等单位礼堂、训练场地、教学室、公共场地等场合,可以说遍及人们生活的每一个角落。所以说电子万年历的开发是国家之所需,社会之所需,人民之所需。

由于社会对信息交换不断提高的要求及高新技术的逐步发展,促使电子万年历发展并且投入市场得到广泛应用。

1.3课题解决的主要内容

本课题所研究的电子万年历是单片机控制技术的一个具体应用,主要研究内容包括以下几个方面:

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

(2)根据选用的电子万年历芯片设计外围电路和单片机的接口电路。 (3)在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。

(4)根据硬件电路图,在开发板上完成器件的焊接。

(5)根据设计的硬件电路,编写控制AT89S52芯片的单片机程序。

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

(7)在硬件电路和软件程序设计时,主要考虑提高人机界面的友好性,方便用户操作等因素。

1

黑龙江八一农垦大学毕业设计(论文) 器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。WDT 在默认情况下无法工作;为了激活WDT,用户必须往WDTRST 寄存器(地址:0A6H)中依次写入01EH 和0E1H。当WDT激活后,晶振工作,WDT在每个机器周期都会增加。WDT计时周期依赖于外部时钟频率。除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。当WDT溢出,它将驱动RSR引脚输出一个高电平。

? 可编程串口(UART)在AT89S52中,UART 的操作与AT89S52 和AT89C52 一样。AT89S52系列单片机的串行通信口可以工作于同步和异步通信方式。当工作于异步方式时,它具有全双工的操作功能,也就是说,它可以同时进行数据的发送和接收。串行口内的接收器采用的是双缓冲结构,能够在接收到的第一个字节从接收寄存器读走之前就开始接收第二个字节(当然,如果第二个字节接收完毕,而第一个字节仍然没有被读走,那将会丢掉一个字节)。串行口的发送和接收操作都是通过特殊功能寄存器中的数据缓冲寄存器SBUF进行的,但在SBUF的内部,接收寄存器和发送寄存器在物理结构上是完全独立的。如果将数据写入SBUF,数据会被送入发送寄存器准备发送。如果执行SBUF指令,则读出的数据一定来自接收缓存器。因此,CPU对SBUF的读写,实际上是分别访问2个不同的寄存器。这2个寄存器的功能决不能混淆。

? 振荡电路:AT89S52系列单片机的内部振荡器,由一个单极反相器组成。XTAL1反相器的输入,XTAL2为反相器的输出。可以利用它内部的振荡器产生时钟,只要XTAL1和XTAL2引脚上一个晶体及电容组成的并联谐振电路,便构成一个完整的振荡信号发生器,此方式称为内部方式。另一种方式由外部时钟源提供一个时钟信号到XTAL1端输入,而XTAL2端浮空。在组成一个单片机应用系统时,多数采用这种方式,这种方式结构紧凑,成本低廉,可靠性高。在电路中,对电容C1和C2的值要求不是很严格,如果使用高质的晶振,则不管频率为多少,C1、C2通常都选择30pF。

? 定时/计数器:AT89S52单片机内含有2个16位的定时器/计数器。当用于定时器方式时,定时器的输入来自内部时钟发生电路,每过一个机器周期,定时器加1,而一个机器周期包含有12个振荡周期,所以,定时器的技术频率为晶振频率的1/12,而计数频率最高为晶振频率的1/24。为了实现定时和计数功能,定时器中含有3种基本的寄存器:控制寄存器、方式寄存器和定时器/计数器。控制寄存器是一个8位的寄存器,用于控制定时器的工作状态,方式寄存器是一个8位的寄存器,用于确定定时器的工作方式,定时器/计数器是16位的计数器,分为高字节和低字节两部分。

? RAM:高于7FH内部数据存储器的地址是8位的,也就是说其地址空间只有256字节,但内部RAM的寻址方式实际上可提供384字节。的直接地址访问同一个存储空间,高于7FH的间接地址访问另一个存储空间。这样,虽然高128字节区分与专用寄器 ,即特殊功能寄存器区的地址是重合的,但实际上它们是分开的。究竟访问哪一区,存是通过不同的寻址方式加以区分的。

? SFR:SFR是具有特殊功能的所有寄存器的集合,共含有22个不同寄存器,

7

黑龙江八一农垦大学毕业设计(论文) 它们的地址分配在80H~FFH中。虽然如此,不是所有的单元都被特殊功能寄存器占用,未被占用的单元,其内容是不确定的。如对这些单元进行读操作,得到的是一些随机数,而写入则无效,所以在编程时不应该将数据写入这些未确定的地址单元中,特殊功能寄存器主要有累加器ACC、B寄存器、程序状态字寄存器PSW、堆栈指针SP、数据指针DPTR、I/O端口、串行口数据缓冲器SBUF、定时器寄存器、捕捉寄存器、控制寄存器。

? 中断系统:AT89S52单片机有6个中断源,中断系统主要由中断允许寄存器IE、中断优先级寄存器IP、优先级结构和一些逻辑门组成。IE寄存器用于允许或禁止中断;IP寄存器用于确定中断源的优先级别;优先级结构用于执行中断源的优先排序;有关逻辑门用于输入中断请求信号。在整个中断响应过程中CPU所执行的操作步骤如下:

(1)完成当前指令的操作 (2)将PC内容压入堆栈 (3)保存当前的中断状态

(4)阻止同级的中断请求

(5)将中断程序入口地址送PC寄存器 (6)执行中断服务程序 (7)返回

3.2时钟芯片DS1302接口设计与性能分析

3.2.1DS1302性能简介

DS1302是Dallas公司生产的一种实时时钟芯片。它通过串行方式与单片机进行数据传送,能够向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息,并可对月末日期、闰年天数自动进行调整;它还拥有用于主电源和备份电源的双电源引脚,在主电源关闭的情况下,也能保持时钟的连续运行。另外,它还能提供31字节的用于高速数据暂存的RAM。

DS1302时钟芯片内主要包括移位寄存器、控制逻辑电路、振荡器。DS1302与单片机系统的数据传送依靠RST,I/O,SCLK三根端线即可完成。其工作过程可概括为:首先系统RST引脚驱动至高电平,然后在SCLK时钟脉冲的作用下,通过I/O引脚向DS1302输入地址/命令字节,随后再在SCLK时钟脉冲的配合下,从I/O引脚写入或读出相应的数据字节。因此,其与单片机之间的数据传送是十分容易实现的,DS1302的引脚排列及内部结构图如图2: DS1302引脚说明:

8

黑龙江八一农垦大学毕业设计(论文) X1,X2 32.768kHz晶振引脚

GND 地线 RST 复位端

I/O 数据输入/输出端口 SCLK 串行时钟端口 VCC1 慢速充电引脚

VCC2 电源引脚 图2 DS1302管脚

图2 DS1302的引脚

3.2.2DS1302接口电路设计

1时钟芯片DS1302的接口电路及工作原理:

图3 DS1302与MCU接口电路

图3为DS1302的接口电路,其中Vcc1为后备电源,Vcc2为主电源。VCC1在单电源与电池供电的系统中提供低电源并提供低功率的电池备份。VCC2在双电源系统中提供主电源,在这种运用方式中VCC1连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。

DS1302由VCC1或VCC2 两者中较大者供电。当VCC2大于VCC1+0.2V时,VCC2给DS1302供电。当VCC2小于VCC1时,DS1302由VCC1供电。

9

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

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

表2 DS1302的控制字格式

1 RAM/CK

A4 A3 A2 A1 A0 RD/WR

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

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

图4 DS1302读/写时序图

4、DS1302的寄存器AM

DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的

10

———

黑龙江八一农垦大学毕业设计(论文) 数据位为BCD码形式,其日历、时间寄存器及其控制字见表3。

表3 DS1302的日历、时间寄存器

写寄存器 读寄存器 Bit7 80H 82H 84H 86H 88H 8AH 8CH 8EH

81H 83H 85H 87H 89H 8BH 8DH 8FH

WP CH 12/24 0 0 0

——

Bit6 Bit5 10秒 10分

Bit7 Bit3 Bit2

秒 分

Bit1 Bit0

0 0 0 0 0

10

——

时 时 日 月

0 0

0 星期 年

0

0

AM/PM 10 日 0 0 0

10月 0 0

10年

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

3.3温度芯片DS18B20接口设计与性能分析

3.3.1DS18B20性能简介 1.DS18B20的主要特性

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式。现场温度直接以\一线总线\的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。其性能特点可归纳如下:

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

2测温范围在-55℃到125℃,分辨率最大可达0.0625℃; 3采用了3线制与单片机相连,减少了外部硬件电路; 4零待机功耗;

5可通过数据线供电,电压范围在3.0V-5.5V;

11

附录 }

if(menu_1 == 0)

if(open1 == 1) //如果闹钟打开 { if((fen == fen1) && (shi == shi1) && (miao == 0)) { flag_clock_en = 1; //有报警 打开蜂鸣器响的标志位 } if(flag_clock_en == 1) //闹钟以被打开 { beep = ~beep; //蜂鸣器叫3秒 }

}

/************主函数**************/ void main() {

beep = 0; //开机叫一声 //

delay_1ms(150);

P0 = P1 = P2 = P3 = 0xff; //单片机IO口初始化为1 init_ds1302(); //ds1302初始化 read_clock();

init_12864(); //lcd12864初始化 init_12864_dis(); //lcd12864初始化显示 time0_init(); //初始化定时器

temperature = read_temp(); //先读出温度的值 delay_1ms(650);

temperature = read_temp(); //先读出温度的值 while(1) { beep = 0; key(); if(key_can < 10)

{

if(flag_clock_en == 0) //只有闹钟关了的时候才能进入设置 key_with();

42

附录 }

}

else

{ beep = 1; flag_clock_en = 0; //按下任意键可关闭闹钟 } }

if(flag_200ms == 1) { flag_200ms = 0; ds1302_dis(); //时钟显示函数 temperature = read_temp(); //先读出温度的值 }

if(flag_100ms == 1) {

menu_dis(); //闹钟报警函数 flag_100ms = 0; }

delay_1ms(1);

/*********************定时器0中断服务程序************************/ void time0_int() interrupt 1 {

static uchar value; //定时10ms中断一次 TH0 = 0x3c;

TL0 = 0xb0; //50ms value ++;

if(value % 2 == 0) { }

flag_100ms = 1; }

if(value % 20 == 0) { flag_200ms = 1; }

43

本文来源:https://www.bwwdw.com/article/120d.html

Top