基于单片机的万年历设计.docx
- 文档编号:10253796
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:47
- 大小:3.18MB
基于单片机的万年历设计.docx
《基于单片机的万年历设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的万年历设计.docx(47页珍藏版)》请在冰点文库上搜索。
基于单片机的万年历设计
基于单片机的万年历设计
摘要
本文通过对一个基于单片机的能实现万年历功能电子时钟的设计,从而达到学习、了解单片机相关指令在各方面的应用。
系统由主控制器AT89S52、时钟电路DS1302、显示电路1602液晶显示、温度检测电路DS18B20、按键电路、和复位电路等部分构成,能实现时钟三大功能:
实时显示年、月、日、时、分、秒;监测环境温度;电子闹钟。
通过此次设计能够更加牢固的掌握单片机的应用技术,增强动手能力、硬件设计能力以及软件设计能力。
关键词:
单片机,万年历,实时温度检测,电子闹钟
CalendarDesignBasedOnSingleChipMicrocomputer
Author:
Liuyaxuan
Tutor:
Caichaofeng
Abstract
Thisarticlethroughtoabasedonsinglechipmicrocomputercanrealizethedesignofelectronicclock,calendarfunctionsoastolearnandunderstandSCMrelatedinstructioninallaspectsoftheapplication.SystemconsistsofmaincontrollerAT89S52,DS1302clockcircuit,displaycircuit1602liquidcrystaldisplay,DS18B20temperaturedetectioncircuit,keycircuitandresetcircuitandothercomponents,toachieveclockthreefeatures:
real-timedisplayyear,month,day,hours,minutes,seconds;Monitortheenvironmenttemperature;Electronicalarmclock.
Throughthisdesigncanbemoresolidgraspofsingle-chipcomputerapplicationtechnology,strengtheningpracticeability,theabilityofthehardwaredesignandsoftwaredesigncapabilities.
Keyword:
SCMcalendar,Real-timetemperaturedetection,Electronicalarmclock
1绪论
随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。
二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代扮演着极为重要的角色。
当今社会电子技术迅速的发展,特别是随大规模集成电路的出现,给人类生活带来了根本性的改变。
尤其是单片机技术的应用产品已经走进了千家万户。
电子万年历的出现给人们的生活带来了诸多方便。
电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到了广泛应用。
随着人们生活环境的不断改善和美化,在许多场合可以看到数字电子钟。
在城市的主要营业场所、车站、码头等公共场所使用LCD数字电子钟已经成为一种时尚。
但目前市场上各式各样的LCD数字电子钟大多数使用全硬件电路实现,电路结构复杂,功率损耗大等缺点。
因此有必要对数字电子钟进行改进。
目前市场上所售的数字电子钟其主要功能都是依赖于数字电路的各功能模块的组合来实现的。
这些数字钟的芯片组合和电路连接都比较难,而且焊接的过程也比较复杂,相对成本比较高,为了克服这些缺点,且能适合多种场合使用,选择了以单片机编程为主的数字电子钟以满足更多人的需求。
这次主要是通过软件编程来完成的,这样就降低了硬件电路的复杂性,而且其成本也有所降低,摆脱了数字电路设计所带来的电路复杂,焊接过程复杂,成本高等的劣势。
所要设计的数字电子钟充分挖掘了单片机的资源和运算控制能力,具有功能多,显示全的优点。
本设计应用按键控制技术,时间的修改和定时功能更为便捷,应用前景更加广阔。
此万年历可以对年、月、日、时、分、秒进行计时,而且DS1302的使用寿命长,误差小。
对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、时、分、秒和温度等信息,还具有时间校准等功能。
具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
本课题所研究的电子万年历是单片机控制技术的一个具体应用,主要研究内容包括以下几个方面:
(1)选用电子万年历芯片时,应重点考虑功能实在、使用方便、单片存储、低功耗、抗断电的器件。
(2)根据选用的电子万年历芯片设计外围电路和单片机的接口电路。
(3)在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。
(4)根据硬件电路图,在开发板上完成器件的焊接。
(5)根据设计的硬件电路,编写控制AT89S52芯片的单片机程序。
(6)通过编程、编译、调试,把程序下载到单片机上运行,并实现本设计的功能。
(7)在硬件电路和软件程序设计时,主要考虑提高人机界面的友好性,方便用户操作等因素。
(8)软件设计时必须要有完善的思路,要做到程序简单,调试方便。
2系统设计概述
2.1系统设计任务
本课题主要任务是设计一个基于单片机多功能万年历,采用常用的AT89S52芯片作为主控芯片,采用价格低廉的DS1302时钟芯片作为时间控制芯片,采用锂电池为DS1302供电,掉电保护,保证时间数据不会丢失。
显示应用的是LCD1602液晶屏,显示字体清晰,显示效果如图2.1所示。
图2.1电子万年历显示效果示意图
本课题研究的基本内容是利用AT89S52单片机控制时钟芯片DS1302,在此过程中主要实现的功能有:
显示年、月、日;
显示星期;
显示当前的时间;
可设置闹钟;
通过按键可以调整时间,校正时间,闹钟设定;
2.2系统总体设计
本系统是利用AT89S52芯片为核心,控制DS1302时钟芯片及LCD1602液晶,实现年、月、日、星期、时间的准确显示。
AT89S52接受并处理DS1302数据的处理显示及键盘输入的控制信息的处理,输出时间、日期、温度的显示并具有校正功能。
系统模块组成框图如图2.2所示。
图2.2系统硬件电路方框图
系统软件流程图如图2.3所示。
图2.3系统软件程序流程图
3设计方案论证及硬件选型介绍
3.1设计方案论证
3.1.1单片机芯片的选择
经过市场调查,从价格和功能等方面对元器件进行比较,选型方案如下:
方案一:
AT89S52单片机片与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:
0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。
对设计开发非常实用。
方案二:
采用FTC10F04单片机,带有非易失性Flash程序存储器。
它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。
其主要特点如下:
8KBFlashROM,可以擦除1000次以上,数据保存10年,但是成本比较高。
方案三:
采用传统的STC89C52RC作为单片机的控制核心。
单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
由于本系统对CPU运算速度要求很高,需要执行很复杂的运算,方案一成本比较低,适合做设计,本设计采用方案一,即选用AT89S52单片机。
3.1.2时钟芯片的选择
经过市场调查,从价格和功能等方面对元器件进行比较,选型方案如下:
方案一:
直接采用AT89S52单片机内部定时/计数器功能提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。
此定时功能是通过对外部晶振的脉冲进行计数,从而达到计时功能,只要使用12MHZ的晶振就能实现零误差的计时,因此可以利用此功能实现计时,但因为只有单一的计时功能要实现“万年历”的功能需要较复杂的程序,而且如果单片机掉电无法继续进行计时,且实现的时间误差较大,所以使用不便。
方案二:
并行接口时钟芯片DS12887,采用单片机应用系统并行总线(三总线)扩展的接口电路,采用这种接口电路具有操作速度快,编程方便的优点。
但是对于AT89C52单片机来说,低位地址线要通过锁存器输出,还要地址译码器,而且并行口芯片的体积相对较大。
所以不采用此方案。
方案三:
采用DS1302时钟芯片来实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM作为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA。
相比单片机定时计数器和DS12887,DS1302芯片可自动计数且精度更高,所以选择采用DS1302作为时钟芯片。
3.1.3实时环境温度采集模块的选择
经过市场调查,从价格和功能等方面对元器件进行比较,选型方案如下:
方案一:
使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D转换。
此设计方案需用A/D转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差,且不稳定,对环境要求较高。
方案二:
DS18B20是美国DALLAS公司生产的数字温度传感器,采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯,易于与单片机连接,可以去除A/D模块,降低硬件成本,简化系统电路。
单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点。
测量温度范围宽,测量精度高,在使用中不需要任何外围元件,支持多点组网功能多个DS18B20可以并联在惟一的单线上,实现多点测温,供电方式灵活DS18B20可以通过内部寄生电路从数据线上获取电源。
因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。
相比方案一,方案二不需要A/D,可简化电路,精度更高,所以采用DS18B20作为温度传感器。
3.1.4显示模块的选择
经过市场调查,从价格和功能等方面对元器件进行比较,选型方案如下:
方案一:
采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适。
要使数码管正常显示就得有驱动电路驱动相应的段码,数码管的现实方式可分为静态显示和动态显示,静态显示方式只适合显示单个的数字,因此本设计应采用动态显示方式。
采用动态扫描法与单片机连接时,虽然占用的单片机口线少,但电路中的线路相对多,电路过于庞大。
且动态显示方式利用的是人眼视觉暂留的特性,扫描的时间应不大于20毫秒,占用系统资源大,而且显示的个数和字型有限,在本设计中不易采用。
方案二:
采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。
方案三:
采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字、图形,显示多样,清晰可见,虽然价格贵,但却免了一些线路的麻烦,外观优美,且可以显示内容多。
1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。
每位之间有一个点距的间隔,每行之间也有也有间隔,起到了字符间距和行间距的作用。
1602的驱动电路带有11条指令,可以很方便的控制液晶的现实效果如:
清屏、左移右移、光标显示。
而且1602显示的字符在下一条指令为到来之前不会改变,也就是能够维持显示的字符,1602液晶占用的系统资源也少。
相比方案一和方案二,方案三可显示大量内容,且线路简单,所以采用了LCD1602液晶显示屏作为显示。
3.1.5键盘模块的选择
在对日期和时间进行切换,对日期和时间进行调节校准过程中,系统需要产生激励电流,因此需要用按键。
方案一:
使用独立式键盘。
独立式键盘是指直接用I/O口线构成的单个按键电路。
独立式按键电路配置灵活,软件结构简单。
方案二:
使用矩阵式键盘。
矩阵式键盘是由行线和列线组成,按键位于行、列的交叉点上,行线、列线分别连接到按键开关的两端。
其特点是简单且不增加成本,这种键盘适合按键数量较多的场合。
根据以上的论述,因本系统需要的按键不多,日期加1键,月数加1键,年数加1键,分数加1键,时数加1键,时间/日期切换键,要求简单。
所以采用方案一独立式键盘。
3.1.6系统最终方案
综上各方案所述,对此次设计的方案选定:
采用AT89S52单片机作为主控制系统;DS1302提供时钟;采用数字式温度传感器DS18B20;LCD1602液晶显示屏动态扫描作为显示,采用独立式键盘操作。
3.2系统硬件的选型介绍
3.2.1系统硬件概述
设计中主要的硬件系统包括:
单片机控制模块、显示模块、时钟模块、温度传感器模块、按键控制模块。
本电路是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。
可产生年、月、日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;温度的采集由DS18B20构成;显示部份由LCD液晶显示屏显示。
本设计通过按键可实现时间及日期的设定操作,并可实现定时功能,在到达定时时间时,蜂鸣器会根据程序设定做出相应的反应。
3.2.2AT89S52单片机介绍
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案,AT89S52引脚图如图3.2.2所示。
图3.1AT89S52引脚图
AT89S52主要功能及特性:
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
与MCS-51单片机产品兼容
8K字节在系统可编程Flash存储器
1000次擦写周期
全静态操作:
0Hz~33Hz
三级加密程序存储器
32个可编程I/O口线
三个16位定时器/计数器
八个中断源
全双工UART串行通道
低功耗空闲和掉电模式
掉电后中断可唤醒
看门狗定时器
双数据指针
掉电标识符
AT89S52单片机的四个I/O口作用分别如下:
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如表3-1所示。
在flash编程和校验时,P1口接收低8位地址字节。
表3-1P1口的第二功能
引脚号
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
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-2所示:
表3-2P3的特殊功能
口管脚
备选功能
P3.0RXD
(串行输入口)
P3.1TXD
(串行输出口)
P3.2/INT0
(外部中断0)
P3.3/INT1
(外部中断1)
P3.4T0
(记时器0外部输入)
P3.5T1
(记时器1外部输入)
P3.6/WR
(外部数据存储器写选通)
P3.7/RD
(外部数据存储器读选通)
3.2.3DS1302时钟芯片介绍
DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。
实时时钟/日历电路提供秒、分、时、日、周、月、年的信息,每月的天数和闰年的天数可自动调整。
时钟操作可通过AM/PM指示决定采用24或12小时格式。
DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:
(1)RES复位
(2)I/O数据线(3)SCLK串行时钟。
时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。
DS1302工作时功耗很低保持数据和时钟信息时功率小于1mWDS1302是由DS1202改进而来增加了以下的特性:
双电源管脚用于主电源和备份电源供应,Vcc1为可编程涓流充电电源,附加七个字节存储器。
它广泛应用于电话、传真、便携式仪器以及电池供电的仪器仪表等产品领域下面。
将主要的性能指标作一综合:
★实时时钟具有能计算2100年之前的秒、分、时、日、星期、月、年的能力,还有闰年调整的能力;
★318位暂存数据存储RAM
★串行I/O口方式使得管脚数量最少
★宽范围工作电压2.0-5.5V
★工作电流2.0V时,小于300nA
★读/写时钟或RAM数据时有两种传送方式单字节传送和多字节传送字符组方式
★8脚DIP封装或可选的8脚SOIC封装根据表面装配
★与TTL兼容Vcc=5V
★可选工业级温度范围-40+85
★双电源管用于主电源和备份电源供应上是DS1302的一些全面的预览,DS1302芯片外形及引脚定义图分别如图3.2与图3.3所示。
图3.2DS1302外形图
图3.3DS1302引脚图
VCC2:
主用电源引脚;
X1、X2:
DS1302外部晶振引脚;
GND:
地;
RST:
复位引脚;
I/O:
串行数据引脚,数据输出或者输入都从这个引脚;
SCLK:
串行时钟引脚;
VCC1:
备用电源;
DS1302的内部结构如图3.4所示:
图3.4DS1302的内部结构图
DS1302是SPI总线驱动方式。
它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。
要想与DS1302通信,首先要先了解DS1302的控制字。
DS1302的控制字如图3.5所示。
图3.5DS1302的控制字
控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。
位6:
如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;
位5至位1(A4~A0):
指示操作单元的地址;
位0(最低有效位):
如为0,表示要进行写操作,为1表示进行读操作。
控制字总是从最低位开始输出。
在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。
同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。
数据读写时序如图3.6。
图3.6DS1302的读写时序图
DS1302是DALLAS公司的涓流充电时钟芯片,DS1302工作时功耗很低、保持数据和时钟信息功耗小于1mW,仅用一节电池就能唱时间保持数据。
所以总的来说DS1302的操作分2步(显示部分属于液晶显示的内容,不属于DS1302本身的内容),但是在讲述操作时序之前,我们要先看看寄存器:
寄存器样式.jpg上图是DS1302的寄存器样式,我们看到:
1、第7位永远都是12、第6位,1表示RAM,寻址内部存储器地址;0表示CK,寻址内部寄存器;3、第5到第1位,为RAM或者寄存器的地址;最低位,高电平表示RD:
即下一步操作将要“读”;低电平表示W:
即下一步操作将要“写”。
4系统硬件电路设计
4.1单片机最小电路设计
单片机最小系统电路实现对采集数据的处理和输出显示的控制,主控电路由AT89S52单片机、晶振电路、复位电路三部分组成,各部分作用如下所述,由其三部分构成的单片机最小系统电路如图4.1所示。
图4.1最小系统电路图
复位电路是为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。
一般微机电路正常工作需要供电电源为5V±5%,即4.75~5.25V。
由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。
目前为止,单片机复位电路主要有四种类型:
(1)微分型复位电路;
(2)积分型复位电路;(3)比较器型复位电路;(4)看门狗型复位电路。
典型复位电路图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 万年历 设计