基于单片机的定时闹钟设计.docx

上传人:b****5 文档编号:3614993 上传时间:2022-11-24 格式:DOCX 页数:26 大小:68.69KB
下载 相关 举报
基于单片机的定时闹钟设计.docx_第1页
第1页 / 共26页
基于单片机的定时闹钟设计.docx_第2页
第2页 / 共26页
基于单片机的定时闹钟设计.docx_第3页
第3页 / 共26页
基于单片机的定时闹钟设计.docx_第4页
第4页 / 共26页
基于单片机的定时闹钟设计.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

基于单片机的定时闹钟设计.docx

《基于单片机的定时闹钟设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的定时闹钟设计.docx(26页珍藏版)》请在冰豆网上搜索。

基于单片机的定时闹钟设计.docx

基于单片机的定时闹钟设计

基于单片机的定时闹钟设计

摘要:

随着科技的快速发展和生活水平的不断提高,人们对时钟的精确度和实用性要求越来越高。

本定时时钟系统使用单片机AT89S52为主控芯片,由时钟芯片DS1302提供实时时间,采用LCD1602显示日期、时间和星期等信息;系统提供4个按键供人机交互,用户可根据需要修改时间和设置定时闹钟;实时时间和定时闹钟设置的时间一致时,系统会通过蜂鸣器发出警报声。

单片机数字钟不管在性能还是在样式上都发生了质的变化。

关键字:

定时闹钟;DS1302;LCD1602;AT89S52;蜂鸣器

DesignofAlarmClockBasedontheAT89S52

Abstract:

Withtherapiddevelopmentofscienceandtechnologyandthecontinuousimprovementoflivingatandards,therequirementforprecisionandpracticabilityoftheclockishigherandhigher.Thetimingalarmclockusessingle-chipmicrocomputerAT89S52asmaincontrolchip.TimeisprovidedbyclockchipDS1302,andLCD1602displayinformationsuchandate,time,andweek.Thesystemprovidesfourbuttonsforhuman-computerinteraction.Theusercanmodifythetimeandsetthealarmclocktimerwhentheyneed.Thesystemwillsendoutalarmthroughthebuzzerwhenrealtimeisthesameastimingalarm.SCMdigitalclockhavebeengreatlyimprovedinperformanceandstyle.

Keywords:

timingalarmclock,DS1302,LCD1602,AT89S52,buzzer

第1章绪论

1.1选题背景

随着大规模、超大规模集成电路技术的发展和计算机微型化的需要,把微型计算机的基本功能部件:

中央处理器(CPU)、存储器、输入/输出接口、定时器/计数器、中断系统等多种资源集成在一个半导体芯片上,使得一块集成电路芯片就能构成一个完整的微型计算机,这种集成电路芯片被称为单片微型计算机(SingleChipMicrocomputer),简称单片机[1]。

单片机技术发展十分迅速,产品种类也非常多。

自从1975年美国德克萨斯仪器公司的第一个单片机TMS-1000问世以来,迄今为止单片机技术已成为计算机技术的一个独特分支,在众多领域尤其是在智能仪器仪表、检测和控制系统中有着广泛的应用[1]。

随着科技的快速发展和生活水平的不断提高,人们对时钟的精确度和实用性要求越来越高。

单片机数字时钟具有设置时间、日期、星期的基本功能,并且能够显示年、月、日、时、分、秒、星期。

单片机数字钟不管在性能还是在样式上都发生了质的变化,实践证明单片机数字时钟具有更加准确性、精密性等功能。

单片机具有集成度高、功能强、通用性好、特别是它能耗低、价格便宜、可靠性高、抗干扰能力强和使用方便等独特的优点,所以单片机现在广泛的应用到家用电器、机电产品、儿童玩具、机器人、办公自动化产品等领域。

1.2选题的目的和意义

定时闹钟设计可采用数字电路实现,也可以采用单片机来完成。

定时闹钟是用数字集成电路构成的,用数码管显示“时”,“分”,“秒”的现代计时装置。

若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。

若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成。

那么就降低了硬件电路的复杂性,而且其成本也有所降低。

1.3论文主要内容

该论文研究的是基于单片机的定时闹钟设计。

设计的主要内容有以下3点:

1.能正确显示年、月、日、时、分、秒和星期的信息。

2.能够校正当前时间。

3.能够设置闹铃时间,并在设定时间发出警报声。

论文分别叙述从硬件和软件上实现该设计的过程。

第3章主要介绍设计实现需要解决的硬件问题。

依次介绍所使用的各种硬件的使用方法,并附上仿真电路图和文字说明。

第4章从软件的角度说明实现该设计需要解决的问题。

第2章系统总体设计

2.1系统设计需求

系统要求实现以下功能:

1.当电源接通时,系统能正确显示当前时间。

2.当前时间和日期与实时时间和日期有误差时,可以通过键盘调整当前时间和日期。

3.系统允许进行闹钟设置,开启闹钟功能时,当设置的闹钟时间与当前时间一致的时候,系统通过蜂鸣器发出警报声。

2.2系统设计思想

1.主控芯片选择

方案一:

AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes

的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。

方案二:

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K系

统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。

另外,AT89S52可在线擦写,AT89C52不能。

综上所述,选择AT89S52作为本设计的主控芯片。

2.时钟电路选择

方案一:

采用AT89S52芯片内部时钟为系统提供时间,但从长远计时来看,

误差较大,走时不够精确,且不能提供日期星期等信息。

方案二:

采用DS1302实时时钟为系统提供准确的时间,以及星期和日期等

信息。

长时间的走时比较精确,且编程简单。

综上所述,采用方案二中的DS1302实时时钟芯片为系统提供时间、日期和星期等信息。

3.显示方式的选择

方案一:

LED数码管由多个发光二极管封装在一起组成“8”字型的器件,

引线已在内部连接完成,只需引出它们的各个笔划,公共电极。

主要用于楼体墙面,广告招牌,高档的DISCO、酒吧、夜总会、会所的门头广告牌等。

方案二:

液晶显示器,或称LCD,为平面超薄的显示设备,它由一定数量

的彩色或黑白像素组成,放置于光源或者反射面前方。

液晶显示器功耗很低,因此倍受工程师青睐。

LCD显示比LED显示更加美观。

综上所述,采用显示友好的LCD为系统显示时间等信息。

2.3系统软件设计

本设计在Keil编程环境下,使用C语言进行编程的编辑。

编辑成功后,通过仿真软件Proteus进行仿真测试。

系统从实时芯片DS1302指定地址中读取时间,并将数据发送至AT89S52,然后编写显示指令并将数据发送至液晶显示屏LCD1602显示。

系统带有一个定时中断,定时中断每秒刷新液晶显示。

当有按键被按下时,系统的外中断被触发。

当设置闹钟的时候,系统持续从日历芯片DS1302读取时间但不在LCD上显示,而显示的是闹钟设置界面;当修改当前时间的时候,系统停止从DS1302读取时间。

当系统时间重新设置完毕或闹钟时间设置完毕后,确定刚才操作,系统将修改后的时间从AT89S52写入DS1302,并将闹钟时间存入缓存区,系统显示修改后的时间和日期。

2.4系统硬件需求

由章节2.2可知系统的主要硬件,另外,系统需要额外一些硬件,详细硬件清单如下:

主控芯片:

AT89S52

时钟芯片:

DS1302

液晶显示屏:

LCD1602

闹钟提示:

蜂鸣器

人机交互:

按键×4

晶振:

12KHz×1,32.678KHz×1

排阻:

7408

电容:

30pf×2,10uf×1

第3章系统硬件设计

3.1系统硬模块及功能

系统硬件模块主要分为以下几个模块:

1.主控模块:

控制其他子模块。

2.实时时钟模块:

为系统提供实时时间。

3.液晶显示LCD模块:

显示系统日期、时间和星期等信息。

4.控键模块:

用户通过控键进行人机交互,修改实时时间和设置闹钟时间。

5.闹钟模块:

在所设闹钟时间发出警报声。

3.2主控模块

AT89S52功能特性描述

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8k在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保护,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

AT89S52的主要特性是:

1.与MCS-51单片机产品兼容

2.8k字节在系统可编程Flash存储器

3.1000次插写周期

4.全静态操作:

0Hz~33Hz

5.三级加密程序存储器

6.32个可编程I/O口线

7.3个16位定时器/计数器

8.8个中断源

9.全双工UART串行通道

10.低功耗空闲和掉电模式

11.掉电后中断可唤醒

12.时器

13.指针

14.掉电标识符

AT89S52引脚图如图3-1所示。

图3-1AT89S52引脚图

包括时钟电路和复位电路。

1..时钟电路

利用芯片内部的振荡电路,在XTAL1、XTAL2的引脚上外接定时元件,内部振荡器便能产生自激振荡。

定时元件可以采用石英晶体和电容组成的并联谐振电路,如图3-2所示。

晶振可以在1.2~12MHZ之间任选,甚至可以达到24MHz,但是频率越高功耗也就越大。

和晶振并联的电容C1、C2的大小对振荡频率有微小影响,可以起到频率微调作用。

当采用石英晶振时,电容可以在20~40pF之间选择[2]。

在设计印刷电路板(PCB)时,晶体和电容应尽可能与单机片芯片靠近,以减少引线的寄生电容,保证振荡器可靠工作[2]。

2..复位电路

复位是单片机的初始化操作。

单片机启动运行时,都需要先复位,作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。

因此,复位是一个很重要的操作方式。

但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。

单片机通电时,从初始态开始执行程序,称为上电复位。

单片机死机时,通过手工按“重启”键使其从初始态开始执行程序,称为手工复位。

复位条件:

复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作;但如果RST持续为高电平,单片机就处于循环复位状态。

图3-2振荡电路仿真

如图3-2所示,将一个手动开关与电阻串联后再和复位电容并联起来,当系统上电后,由于开关没有导通,还是一个基本的阻容复位电路,系统会可靠地复位。

如果在调试过程中需要对系统进行复位,这时不需要断电再接通电源,只需要按一下复位开关即可。

当复位开关按下后,电容被短路,在RESET脚上由于电阻分压会得到一个复位的高电平,达到复位效果。

3.3时钟电路模块

DS1302芯片是美国DALLAS公司推出的一种高性能、低功耗、带RAM的适时时钟芯片。

它的实时时钟电路提供秒、分、时、日、月、周和年的信息。

每月的天数和闰年的天数可自动调整,时钟操作可通过指令设定为24或12小时格式。

DS1302与单片机之间能简单地采用同步串行的方式进行通信[1]。

DS1302的性能特性[11]:

1.实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数。

2.用于高速数据暂存的31×8RAM。

3.最少引脚数的串行I/O。

4.2.5~5.5V电压工作范围。

5.2.5V时耗电小于300nA。

6.用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据传送方式。

7.8引脚DIP或可选的用于表面安装的8引脚SOIC封装。

8.简单的3线接口。

9.TTL兼容。

DS1302的引脚排列如图3-3所示。

图3-3DS1302引脚图

DS1302引脚说明如表3-1。

表3-1DS1302引脚说明

引脚号

名称

功能

1

Vcc2

电源输入2

2

X1

32.768kHz晶振输入

3

X2

32.768kHz晶振输出

4

GND

5

RST

复位

6

I/O

数据输入/输出

7

SCLK

串行时钟

8

Vcc1

电源输入1

DS1302慢速充电时钟芯片包括实时时钟/日历和31字节的静态RAM,它经过一个简单的串行接口与微处理器通信。

实时时钟/日历提供秒、分、时、日、周、月和年等信息。

对于小于31天的月,月末的日期自动进行调整,还包括了闰年校正的功能。

时钟的运行可以采用24小时或带AM(上午)/PM(下午)的12小时格式。

使用同步串行通信,简化了DS1302与微处理器的通信[2]。

与时钟/RAM通信仅需要3根线:

1.RST复位(实际上是当作片选线使用)。

2.I/O数据线。

3.SCLK串行时钟。

数据可以以每次一个字节或多达31字节的多字节形式传送至时钟/RAM或从其中送出。

DS1302设计成能在非常低的功耗下工作,消耗小于1uW的功率便能保存数据和时钟信息[2]。

时钟仿真电路图如图3-4所示。

图3-4时钟仿真电路

时钟仿真电路接口说明:

1.Vcc1:

与+5V电压输入端相连作为DS1302工作时的供电电源。

2.Vcc2:

接地。

3.晶振:

X1和X2直接和32.768kHz的晶振两端相连。

4.数字部分:

SCLK、I/O、RST分别与AT89C52的P2.0、P2.1、P2.2引脚相连。

3.4液晶显示LCD

3.4.11602字符型LCD简介

字符型LCD专门用于显示数字、字母、图形符号及少量自定义符号。

这类显示器把LCD控制器、点阵驱动器、字符存储器等做在一块板上,再与液晶屏一起组成一个显示模块。

因此,这类显示器的安装与使用都非常简单。

显示原理:

液晶显示的原理是利用液晶的物理特性,通过电压对显示区域进

行控制,只要输入所需的控制电压,就可以显示出字符。

LCD能够显示字符的关键在于其控制器,目前大部分点阵型LCD都使用日立公司的HD44780集成电路作为控制器。

HD44780是集驱动器与控制器于一体,专用于字符显示的液晶显示控制驱动集成电路。

主要特点:

1.显示缓冲区及用户定义区的字符发生器CGRAM全部全部内藏在片内。

2.接口数据传输有8位和4位两种传输模式。

3.具有简单而功能很强的指令集,可以实现字符的移动、闪烁等功能。

HD44780的工作原理较为复杂,但它的应用却非常简单。

只要将待显示字符的标准ASCII码放入内部数据显示用存储器(DDRAM),内部控制线路就会自动将字符传送到显示器上。

例如,要LCD显示字符“A”,则只需将A的ASCII码41H存入DDRAM,控制线路就会通过HD44780的另一个部件字符产生器(CGROM)将A的字型点阵数据找出来显示在LCD上。

1602型LCD的主要技术参数如下:

1.显示容量:

16×2个字符

2.芯片工作电压:

4.5~5.5V

3.工作电流:

2.0mA(5.0V)

4.模块最佳工作电压:

5.0V

5.字符尺寸:

2.95×4.35(W×H)mm

1602型LCD引脚如图3-5所示:

图3-51602型LCD引脚图

引脚说明:

引脚1(GND):

电源地

引脚2(VCC):

电源正极

引脚3(VL):

反视度调整,使用可变电阻调整,通常接地

引脚4(RS):

寄存器选择,RS=1,选择数据寄存器;RS=0,选择指令寄存器

引脚5(R/W):

读/写选择。

R/W=1,读;R/W=0,写

引脚6(E):

模块使能端,当E由高电平跳变成低电平时,液晶模块开始执行命令

引脚7~引脚14(D0~D7):

双向数据总线的第0~7位

引脚15(BL+):

背光显示器电源+5V(也可接地,此时无背光但不易发热)

引脚16(BL-):

背光显示器接地

LCD仿真电路如图3-6所示。

图3-6LCD1602仿真电路图

时钟仿真电路接口说明:

1.LCD1602的双向数据总线第0~7位(D0~D7)分别与AT89S52的引脚P0.0~P0.7相连。

2.脚RS接P2.7,RW接P2.6,E接P2.5

3.引脚VDD接电源,引脚VSS和VEE均接地。

3.5键控模块

键盘的常用类型有独立式键盘,行列式键盘。

方案一:

采用独立式键盘

独立式键盘指每个按键按一对一的方式直接连接到I/O输入线上所构成的键

盘。

每一个按键对应AT89S52芯片的一个引脚,各键是相互独立的。

应用时,由

软件来识别键盘上的键是否被按下。

当某个键被按下时,该键所对应口线将由高电平变为低电平。

反过来,如果检测到某口线为低电平,则可判断出该口线对应的按键被按下。

所以,通过软件可判断出各按键是否被按下。

对于按键直接编码的独立式键盘,单片机可以直接读取I/O口的工作状态,

以获取键盘接口的直接状态值,根据状态值,就可以进行按键的识别。

独立式键盘的结构简单,按键的识别比较容易[10]。

独立式键盘的缺点是需要占用较多的I/O口线,当单片机应用系统中需要的

按键比较少或者I/O口线比较富余时,可以采用这种类型的键盘[10]。

方案二:

采用行列式键盘

行列式键盘是使用n条I/O线作为行线,m条I/O线作为列线,组成的键盘。

在行线和列线的每一个交叉点上,设置一个按键。

这样,键盘中按键的个数是m×n个。

它适合于构成按键数目比较多的键盘。

这种形式的键盘结构,能够有效地提高单片机系统中I/O引脚的利用率[10]。

由于行列式键盘的输入口的每条输入线都对应若干个按键,所以,不能像独立式键盘那样,靠键盘输入口的输入状态直接编码去识别按键,而需要更加复杂的按键编码[10]。

结合系统需求,由于系统只涉及4个按键,按键数量较少,加上独立式键盘编程灵活的优点,所以本系统采用独立式键盘为用户提供人机交互。

独立式键盘中,键盘有几个按键,键盘接口就需要相应的使用几根I/O口线。

在图3-7中,键盘接口使用了4根I/O口线,该键盘有4个按键。

这种类型的键盘,由于键盘的按键比较少,且键盘中各个按键的工作互不干扰。

因此,可以根据实际需要对键盘中的按键进行灵活的编程。

图3-7键盘仿真电路图

键盘仿真电路接口说明:

K1与AT89S52的引脚P1.0相连,K2接P1.1,K3接P1.2,K4接P1.5。

3.6闹钟模块

3.6.1蜂鸣器简介

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。

蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

市场上出售的一种小型蜂鸣器因其体积小(直径只有11mm)、重量轻、价格低、结构牢靠,而广泛地应用在各种需要发声的电器设备、电子制作和单片机等电路中。

有源蜂鸣器,高度9mm,而无源蜂鸣器的高度为8mm。

蜂鸣器实物图如图3-8所示。

长引脚为正极,短引脚为负极。

图3-8蜂鸣器实物图

3.6.2蜂鸣器仿真电路

图3-9蜂鸣器仿真电路

仿真电路接口说明:

蜂鸣器长引脚接P1.3,短引脚接地。

第4章系统软件设计

4.1系统软件设计概述

该部分主要分为实时时钟模块、液晶显示模块、键盘中断模块、闹钟模块。

实时时钟部分主要包括实时时间的读写,时间和日期的修改。

液晶显示模块主要包括显示屏的初始化,显示的命令字。

键盘中断模块包括各键的定义和作用,按键的消抖,各按键跳转的子程序分配。

闹钟模块包括闹钟时间的设置,以及对蜂鸣器启动和停止条件的设置和处理。

4.2主程序设计

主程序包含三个部分。

一是主函数部分,负责系统的初始化操作;从DS1302取得实时时间;判断闹钟时间是否与实时时间相等并在相等时发出警报声。

第二部分是定时中断部分,分两种情况:

负责处理从DS1302获得的时间数据并送至LCD1602显示缓冲显示,或者显示闹钟设置界面并显示闹钟时间的设置过程。

第三部分是外部中断,主要定义4个按键的作用,分配每一个按键跳转的子程序。

第三部分负责时间和日期的修改,闹钟时间的设置,停止蜂鸣器鸣叫的功能。

4.3单机片的中断系统

中断系统在单片机应用系统中起着十分重要的作用,是现代嵌入式控制系统广泛采用的一种适时控制技术,能对突发事件进行及时处理,从而大大提高系统对外部事件的处理能力。

正是有了中断技术,单片机才得以能够普及。

因此,中断技术是单片机的一项重要技术,掌握中断技术能开发出灵活、高效的单机片应用系统。

4.3.1中断源

要让单机片停止当前的程序去执行其他程序,需要向它发出请求信号,CPU接收到中断请求信号后才能产生中断。

让CPU产生中断的信号称为中断源(又称中断请求源)[4]。

单片机提供5个中断源,其中两个为外部中断请求源INT0(P3.2)和INT1(P3.3),两个片内定时器/计数器T0和T1的溢出请求中断源TF0和TF1,1个片内串行口发送或接收中断请求源T1和R1[4]。

4.3.2中断的优先级别

单片机内的CPU工作时,如果一个中断源向它发出中断请求信号,它就会产生中断。

但是,如果同时有两个中断源发出中断请求信号,CPU就会优先接收级别高的中断请求源,然后再接收优先级别低的中断请求。

表4-1列出5个独立中断请求源由其硬件结构决定的自然优先级排列顺序[4]。

表4-1单片机中断源的自然优先级、入口地址及中断编号

中断源

自然优先级

中断入口地址

中断编号

外部中断INT0

0003H

0

定时器T0

000BH

1

外部中断INT1

0013H

2

定时器T1

001BH

3

串行口通信中断R1或T1

0023H

4

对应于单片机的5个独立中断源,应有相应的中断服务程序。

这些中断服务程序有专门规定的存放位置,即表4-1的中断入口地址。

当有了中断请求后,CPU可以根据入口地址迅速找到中断服务程序并开始执行,大大提高执行效率[4]。

4.4实时时钟模块

4.4.1DS1302数据操作原理

DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被输入。

无论是读周期还是写周期,开始8位指定40个寄存器中哪个将被访问到。

在开始8个时钟周期,把命令字节装入移位寄存器后,另外的时钟周期在读操作时输出数据,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1