基于单片机的多功能电子钟设计Word格式文档下载.docx
《基于单片机的多功能电子钟设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的多功能电子钟设计Word格式文档下载.docx(39页珍藏版)》请在冰豆网上搜索。
![基于单片机的多功能电子钟设计Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-12/30/f8fdcbb0-3d8c-4323-a3ed-c6ba19c41bf3/f8fdcbb0-3d8c-4323-a3ed-c6ba19c41bf31.gif)
Keywords:
PerpetualCalendar,Thetemperaturesensor,LCDdisplay
1绪论
1.1课题研究的背景
对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、时、分、秒和温度等信息,拥有定时闹钟、时间校准等功能。
该电路采用AT89C52单片机作为核心,功耗小,可在3V的低压工作,亦能在3~5V电压下正常工作。
在日益繁忙的今天,人们每天都为生存而奔波,人们对时间看的更为重要,因此在手表上下功夫,实现电子手表的多功能化是完全可行的,符合未来人们对时间的追求。
中国产业信息网数据显示:
2014年10月全国表产量为14,342,164.00只,同比增长9.57%,2014年1-10月全国表产量为144,817,082.00只,同比增长6.69%。
2014年1-10月全国表产量及其增长统计表
产品
2014年10月
本月产量
本月止累计
本月同比增长(%)
本月止累计同比增长(%)
表(只)
14,342,164.00
144,817,082.00
9.57
6.69
表1.1
不难看出我国表产量保持着一定的增长率,市场比较大,电子钟表行业未来的前景比较好。
1.2课题的研究目的与意义
二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代扮演着极为重要的角色。
所以说电子万年历的开发是国家之所需,社会之所需,人民之所需。
数字化是未来科技发展的热点,无论是在可视化还是时钟的精确上,数字钟都要优越于传统的机械手表。
由于社会对信息交换不断提高的要求及高新技术的逐步发展,促使电子万年历发展并且投入市场得到广泛应用。
1.3课题解决的主要内容
本课题所研究的电子万年历是单片机控制技术的一个具体应用,主要研究内容包括以下几个方面:
(1)选用电子万年历芯片时,应重点考虑功能实在、使用方便、单片存储、低功耗、抗断电的器件。
(2)根据选用的电子万年历芯片设计外围电路和单片机的接口电路。
(3)在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。
(4)根据硬件电路图,在开发板上完成器件的焊接。
(5)在keil软件上编写控制AT89C52芯片的单片机程序。
(6)通过编程、编译、调试,把程序下载到单片机上运行,并实现本设计的功能。
(7)在硬件电路和软件程序设计时,主要考虑提高人机界面的友好性,方便用户操作等因素。
2系统的方案设计与论证
2.1系统的方案设计
单片机电子万年历的制作有多种方法,可供选择的器件和运用的技术也有很多种。
设计者应该考虑到多方面的因素,比如分析方案的可行性,成本是否符合设计者的经济状况,尽可能的做出物美价廉、性能优越的产品。
按照系统设计的要求,初步确定系统由单片机模块、电源模块、时钟模块、显示模块、按键模块、温度测量模块和闹钟模块共七个模块组成,电路系统构成框图如图2.1所示。
图2.1硬件模块框图
2.1.1系统的模块组成
本设计由单片机模块、电源模块、时钟模块、显示模块、键盘接口模块、温度测量模块和闹钟模块七个模块组成。
系统的核心采用的AT89C52单片机;
数据显示模块采用的是QC12864B液晶显示;
温度采集模块用的是DS18b20温度传感器,该传感器所采用的是单总线传输,内部带有A/D转换,用起来非常方便;
时钟模块用的是DS1302时钟芯片,可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能;
闹钟模块由一个蜂鸣器作为媒介。
调整设置模块共包括四个按键:
模式选择键、功能选择键、调整加按键、调整减按键。
2.1.2功能实现
系统在正常工作时,LCD液晶上第一行显示多功能电子日历,第二行显示阳历,第三行显示农历与星期,第四行显示时间和温度。
如果想要对时间进行调整,可以通过调整设置模块来实现。
当按下k4键时,系统进入另一模式,时间,闹钟的开关都可以用k2,k3键进行调整。
2.2系统方案论证
2.2.1单片机芯片设计与论证
方案一:
AT89C51芯片为核心硬件,使用快闪记忆体,内部使用4KB存储空间,可以为3v低电压工作,和MCS-51系列单片机完全兼容,但当用于电路设计由于没有ISP在线编程技术,在电路调试、修改或由于程序错误程序的新功能需要老化,反复拉塞芯片会对芯片造成一定损害。
方案二:
AT89C52芯片为核心的硬件,使用闪存,可以在3v低电压工作,并与MCS-51系列单片机是完全兼容的内存芯片8KB存储空间。
支持ISP在线编程功能,该功能的优点是重写程序在单片机内存不需要把芯片的工作环境。
是一个强大易用的功能。
最高工作频率为33MHz,比AT89C51具有更高工作频率,从而具有了更快的计算速度。
由于AT89C52内部具有8KBROM存储芯片并且支持ISP在线编程,因此采用AT89C52作为主控芯片。
2.2.2按键控制模块设计与论证
方案一:
采用独立键盘,由于按键多可实现数值的直接键入,但在系统中需要CPU不间断的对其端口扫描。
方案二:
采用独立按键,查询简单,程序处理简单,可节省CPU资源。
因系统中所需按键不多,为了释放更多的CPU占有时间,操作方便,故采用方案二。
2.2.3时钟模块设计与论证
直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。
采用此种方案能够减少芯片的使用,节约成本,但是,实现的时间误差比较大。
DS1302是一款高性能的实时时钟芯片,以计时准确、接口简单、使用方便、工作电压范围宽和低功耗等优点,得到广泛的应用,实时时钟有秒、分、时、星期、日、月和年,月小于31天时可以自动调整,并具有闰年补偿功能,而且在掉电时能够在外部纽扣电池的供电下继续工作。
单片机有定时器的功能,但时间误差较大,且需要编写时钟程序。
由于DS1302时钟芯片计数时间精度高,而且具有闰年补偿功能等优点,故采用方案二。
2.2.4温度采集模块设计与论证
采用温度传感器,再经AD转换得到数字信号,精度较准,但价格昂贵,电路较复杂。
采用数字式温度传感器DS18B20,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式,但准确度不高,误差最大达2度。
因为用DS18B20温度芯片,采用单总线访问,降低成本、降低制作难度且可节省单片机资源,故采用方案二。
2.2.5显示模块模块设计与论证
采用静态显示方法,静态显示模块的硬件制作较复杂及功耗大,要用到多个移位寄存器,但不占用端口,只需两根串口线输出。
采用动态显示方法,动态显示模块的硬件制作简单,段扫描和位扫描各占用一个端口,总需占用单片机14个端口,采用间断扫描法功耗小、硬件成本低及整个硬件系统体积相对减小。
方案三:
采用LCD的方法,具有硬件制作简单可直接与单片机接口,显示内容多,功耗小,成本低等优点,QC12864B可显示32个字符,采用LCD的缺点是亮度不够。
比较以上三种方案:
方案一硬件复杂体积大、功耗大;
方案二硬件简单、功耗小;
方案三硬件简单,显示内容多,功耗小,成本低等。
本系统设计要求达到功耗小、体积小、成本低,显示信息多等要求,权衡三种方案,选择方案三。
3系统硬件设计
根据上述所确定的系统方案构想,下面进行系统硬件电路的具体设计,系统的具体设计在下面会详细介绍。
3.1AT89C52单片机
本系统采用的是美国ATMEL公司生产的AT89C52单片机,首先我们来熟悉一下AT89C52单片机的外部引脚和内部结构。
1.单片机的引脚功能
AT89C52单片机有40个引脚。
Vcc:
电源电压+5V
GND:
接地
P0口:
P0口是一组8位漏极开路型双向I/O口,即复用口地址/数据总线。
吸收当前可用作为输出,每路驱动八TTL逻辑门。
图3.1AT89C52的管脚图
对端口写“1”可以作为高阻抗输入终端。
在访问外部数据内存或程序内存,这组口线分时线转换地址以低(8位)和数据总线,激活内部上拉电阻访问期间。
在Flash编程中,P0口接收指令字节,例行检查,输出命令字节,检查外部阻力的要求。
P1口:
P1口是一个内部上拉电阻与8位双向I/O,P1水平输出缓冲区可以开车(或吸收输出电流)四个TTL逻辑门。
对端口口写“1”,通过内部上拉电阻拉对端口到一个很高的水平,可以使输入端口。
使用时输入端口,因为内部上拉电阻,确定由外部信号电流时的输出。
闪存编程和在一次例行检查,P1接收低8位地址。
P2口:
P2口是一个带内部上拉电阻的8位双向I/O,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(MOVX@Ri指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。
Flash编程和程序校验期间,P2亦接收低高位地址和其他控制信号。
P3口:
P3口是一组带内部上拉电阻的8位双向I/O,P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部的上拉电阻拉高并可作为输入端口。
作输入端时,被外部拉低的P3口将用上拉电阻输出电流。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,见图3.2所示:
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
下图P3口的第二功能图
图3.2
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
WDT溢出将使引脚输出高电平,设置SFR-AUXR的DISRT0(地址8EH)可打开或关闭该功能。
DISRT0位缺省为RESET输出高电平打开状态。
EA/VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。
需要注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的变成电压Vpp.
XTAL1:
振荡器反相放大器及内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
AT89C52单片机内部结构
2.AT89C52单片机与MCS-51完全兼容
振荡电路:
AT89C52系列单片机的内部振荡器,由一个单极反相器组成。
XTAL1反相器的输入,XTAL2为反相器的输出。
可以利用它内部的振荡器产生时钟,只要XTAL1和XTAL2引脚上一个晶体及电容组成的并联谐振电路,便构成一个完整的振荡信号发生器,此方式称为内部方式。
另一种方式由外部时钟源提供一个时钟信号到XTAL1端输入,而XTAL2端浮空。
在组成一个单片机应用系统时,多数采用这种方式,这种方式结构紧凑,成本低廉,可靠性高。
在电路中,对电容C1和C2的值要求不是很严格,如果使用高质的晶振,则不管频率为多少,C1、C2通常都选择30pF。
定时/计数器:
AT89C52单片机内含有2个16位的定时器/计数器。
当用于定时器方式时,定时器的输入来自内部时钟发生电路,每过一个机器周期,定时器加1,而一个机器周期包含有12个振荡周期,所以,定时器的技术频率为晶振频率的1/12,而计数频率最高为晶振频率的1/24。
为了实现定时和计数功能,定时器中含有3种基本的寄存器:
控制寄存器、方式寄存器和定时器/计数器。
控制寄存器是一个8位的寄存器,用于控制定时器的工作状态,方式寄存器是一个8位的寄存器,用于确定定时器的工作方式,定时器/计数器是16位的计数器,分为高字节和低字节两部分。
RAM:
高于7FH内部数据存储器的地址是8位的,也就是说其地址空间只有256字节,但内部RAM的寻址方式实际上可提供384字节。
的直接地址访问同一个存储空间,高于7FH的间接地址访问另一个存储空间。
这样,虽然高128字节区分与专用寄器,即特殊功能寄存器区的地址是重合的,但实际上它们是分开的。
究竟访问哪一区,存是通过不同的寻址方式加以区分的。
SFR:
SFR共含有22个不同寄存器,它们的地址分配在80H~FFH中。
虽然如此,不是所有的单元都被特殊功能寄存器占用,未被占用的单元,其内容是不确定的。
如对这些单元进行读操作,得到的是一些随机数,而写入则无效,所以在编程时不应该将数据写入这些未确定的地址单元中,特殊功能寄存器主要有累加器ACC、B寄存器、程序状态字寄存器PSW、堆栈指针SP、数据指针DPTR、I/O端口、串行口数据缓冲器SBUF。
中断系统:
AT89C52单片机有6个中断源,中断系统主要由中断允许寄存器IE、中断优先级寄存器IP、优先级结构和一些逻辑门组成。
IE寄存器用于允许或禁止中断;
IP寄存器用于确定中断源的优先级别;
优先级结构用于执行中断源的优先排序;
有关逻辑门用于输入中断请求信号。
在整个中断响应过程中CPU所执行的操作步骤如下:
(1)完成当前指令的操作
(2)将PC内容压入堆栈
(3)保存当前的中断状态
(4)阻止同级的中断请求
(5)将中断程序入口地址送PC寄存器
(6)执行中断服务程序
(7)返回
3.2时钟芯片DS1302接口设计与性能分析
3.2.1DS1302性能简介
DS1302是美国达拉斯的公司推出了一个高性能、低功耗实时时钟芯片,另外31个字节静态RAM,三线与CPU使用SPI接口同步通信,并使用的突发方式传输多个字节的时钟信号和RAM数据。
当实时时钟可以提供第二,一分钟,一天,一周,一月,一年,小,一个月31天可以自动调整,并具有闰年补偿功能。
宽工作电压2.5V至5.5V。
双电源系统(主电源和备用电源),可以设置备用电源充电方式,提供了细微电流进行背面的电源电流充电容量。
DS1302外部引脚分配如图所示。
DS1302的数据记录,尤其是对一些特殊意义的记录数据点,可以实现数据的数据时间记录同时,由微处理器进行数据交换,第一个字节电路发送命令,命令字节最高写保护(D7)必须是一个逻辑0,如果D7=1,禁止写DS1302,即写保护;
D6=0,指定时钟数据,D6=1,指定内存数据;
因此,其与单片机之间的数据传送是十分容易实现的,DS1302的引脚排列及内部结构图如图3.3:
DS1302引脚说明:
X1,X232.768kHz晶振引脚
GND地线
RST复位端
I/O数据输入/输出端口
SCLK串行时钟端口
VCC1慢速充电引脚
VCC2电源引脚
图3.3DS1302管脚
3.2.2DS1302接口电路设计
1、时钟芯片DS1302的接口电路及工作原理:
图3.4DS1302与MCU接口原理图
图3.5DS1302与MCU接口电路图
DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置“0”,接着把RST端置“1”,最后才给予SCLK脉冲;
读/写时序如下图3.6所示。
图3.7为DS1302的控制字,此控制字的位7必须置1,若为0则不能对DS1302进行读写数据。
对于位6,若对时间进行读/写时,CK=0,对程序进行读/写时RAM=1。
位5指操作单元的地址。
位0是读/写操作位,进行读操作时,该位为1;
进行写操作时,该位为0。
控制字节总是从最低位开始输入/输出的。
图3.7为DS1302的日历、时间寄存器内容:
“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;
当该位为0时,时钟开始运行。
“WP”是写保护位,在任何的对时钟和RAM的写操作之前,“WP”必须为0。
当“WP”为1时,写保护位防止对任一寄存器的写操作。
2、DS1302的控制字
DS1302的控制字如表2所示。
每个数据传输是发起一个命令字节,控制字节的高有效位(第7位)必须是一个逻辑“1”。
如果是零,写入DS1302将被禁用。
位6指定时钟/日历数据如果逻辑“0”或RAM数据逻辑“1”。
位一个通过五指定指定寄存器输入或输出,和LSB(位0)指定一个写操作(输入)如果逻辑“0”或读操作(输出)如果逻辑“1”。
命令字节总是输入从LSB(0)。
3、数据输入输出(I/O)
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从0位开始。
注意,在第一个下降沿的最后一个字节后发生第一个数据位传输。
额外SCLK周期传输的数据字节应该是发生的,只要RST够高。
此外,I/O销数量在每个SCLK边缘上升。
数据输出从0。
如下图3.6所示。
图3.6
4、DS1302的寄存器
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见图3.7。
图3.7
3.3温度芯片DS18B20接口设计与性能分析
3.3.1DS18B20性能简介
1.DS18B20的主要特性
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式。
DS18B20的信息发送到/从机接口,只需要一线连接DS18B20。
其性能特点可归纳如下:
1)独特的接口仅需要一个端口引脚进行通信;
2)测温范围在-55℃到125℃,分辨率最大可达0.0625℃;
3)报警搜索命令识别并标志超过程序限定温度的器件;
4)最多在750ms将12位温度转换为数字;
5)用户可定义的非易失性温度报警设置;
6)负电压特性,电源极性接反时,温度计不会因发热烧毁,只是不能正常工作。
2.DS18B20工作原理
DS18B20的读写时序和