基于单片机控制的智能定时闹钟方案设计书含完整程序仿真图.docx

上传人:b****7 文档编号:9795648 上传时间:2023-02-06 格式:DOCX 页数:42 大小:26.52KB
下载 相关 举报
基于单片机控制的智能定时闹钟方案设计书含完整程序仿真图.docx_第1页
第1页 / 共42页
基于单片机控制的智能定时闹钟方案设计书含完整程序仿真图.docx_第2页
第2页 / 共42页
基于单片机控制的智能定时闹钟方案设计书含完整程序仿真图.docx_第3页
第3页 / 共42页
基于单片机控制的智能定时闹钟方案设计书含完整程序仿真图.docx_第4页
第4页 / 共42页
基于单片机控制的智能定时闹钟方案设计书含完整程序仿真图.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

基于单片机控制的智能定时闹钟方案设计书含完整程序仿真图.docx

《基于单片机控制的智能定时闹钟方案设计书含完整程序仿真图.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的智能定时闹钟方案设计书含完整程序仿真图.docx(42页珍藏版)》请在冰豆网上搜索。

基于单片机控制的智能定时闹钟方案设计书含完整程序仿真图.docx

基于单片机控制的智能定时闹钟方案设计书含完整程序仿真图

 

本设计是定时闹钟的设计,由单片机 AT89C51 芯片和 LED 数码管为核心,辅

以必要的电路,构成的一个单片机电子定时闹钟。

电子钟设计可采用数字电路

实现,也可以采用单片机来完成。

数字电子钟是用数字集成电路构成的,用数码

管显示“时”,“分”,“秒”的现代计时装置。

若用数字电路完成,所设计的

电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各

功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。

若用单片机来设

计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电

路的复杂性,而且其成本也有所降低,所以在该设计中采用单片机利用 AT89C51,

它是低功耗、高性能的 CMOS 型 8 位单片机。

片内带有 4KB 的 Flash 存储器,且

允许在系统内改写或用编程器编程。

另外, AT89C51 的指令系统和引脚与 8051

完全兼容,片内有 128B 的 RAM、32 条 I/O 口线、2 个 16 位定时计数器、5 个中

断源、一个全双工串行口等。

AT89C51 单片机结合七段显示器设计的简易定时

闹铃时钟,可以设置现在的时间及显示闹铃设置时间,若时间到则发出一阵声

响,进—步可以扩充控制电器的启停。

设计内容包括了秒信号发生器、时间显示电路、按键电路、供电电源以及

闹铃指示电路等几部分的设计。

采用四个开关来控制定时闹钟的工作状态,分

别为:

 K1、设置时间和闹钟的小时; K2、设置小时以及设置闹钟的开关; K3、

设置分钟和闹钟的分钟;K4、设置完成退出。

课设准备中我根据具体的要求,查找资料,然后按要求根据已学过的时钟

程序编写定时闹钟的程序,依据程序利用 proteus 软件进行了仿真实验,对出

现的问题进行分析和反复修改源程序,最终得到正确并符合要求的结果。

设计完成的定时闹钟达到课程设计的要求,在到达定时的时间便立即发出

蜂鸣声音,持续一分钟。

显示采用的六位数码管电路,如果亮度感觉不够,可

以通过提升电阻来调节,控制程序中延迟时间的长短,可以获得不同的效果。

也可以改蜂鸣器为继电器,通过控制继电器从而进一步扩展的来控制一些家电

开关。

 

1 概述 ....................................................................................................................................................... 3

2 系统总体方案及硬件设计 ................................................................................................................... 4

2.1 总体设计 ..................................................... 4

2.2 系统时钟电路设计 ............................................. 4

2.3 系统复位电路的设计 ........................................... 4

2.4 闹钟指示电路设计 ............................................ 5

2.5 电子闹钟的显示电路设计 ....................................... 5

3 软件设计 ............................................................................................................................................... 6

3.1 概述 ......................................................... 6

3.2 主模块的设计 ................................................. 6

3.3 基本显示模块设计 ............................................. 7

3.4 时间设定模块设计 ............................................. 7

3.5 闹铃功能的实现 ............................................... 8

4.PROTEUS 软件仿真 ......................................................................................................................... 11

5 课程设计体会 ..................................................................................................................................... 13

参考文献 ................................................................................................................................................ 14

附 1:

源程序代码 ................................................................................................................................. 15

附 2:

系统原理图 ................................................................................................................................. 25

1 概述

 

本设计是定时闹钟的设计 ,由单片机 AT89C51 芯片和 LED 数码管为核

心,辅以必要的电路,构成的一个单片机电子定时闹钟。

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

定时闹

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

装置。

单片机具有集成度高、功能强、通用性好、特别是它能耗低、价格便

宜、可靠性高、抗干扰能力强和使用方便等独特的优点,所以单片机现在广

泛的应用到家用电器、机电产品、儿童玩具、机器人、办公自动化产品等领

域。

所以在该设计中采用单片机利用 AT89C51,它是低功耗、高性能的 CMOS

型 8 位单片机。

片内带有 4KB 的 Flash 存储器,且允许在系统内改写或用编

程器编程。

另外, AT89C51 的指令系统和引脚与 8051 完全兼容,片内有 128B

的 RAM、32 条 I/O 口线、2 个 16 位定时计数器、5 个中断源、一个全双工串

行口等。

AT89C51 单片机结合七段显示器设计的简易定时闹铃时钟,可以设

置现在的时间及显示闹铃设置时间,若时间到则发出一阵声响,进 —步可以

扩充控制电器的启停。

设计内容包括了秒信号发生器、时间显示电路、按键电路、供电电源以

及闹铃指示电路等几部分的设计。

采用四个开关来控制定时闹钟的工作状

态,分别为:

K1、设置时间和闹钟的小时;K2、设置小时以及设置闹钟的开

关;K3、设置分钟和闹钟的分钟;K4、设置完成退出。

课设准备中根据具体的要求,查找资料,然后按要求根据已学过的时钟

程序编写定时闹钟的程序,依据程序利用 proteus 软件进行了仿真实验,对

出现的问题进行分析和反复修改源程序,最终得到正确并符合要求的结果。

设计完成的定时闹钟达到课程设计的要求,在到达定时的时间便立即发

出蜂鸣声音,持续一分钟。

显示采用的六位数码管电路,如果亮度感觉不

够,可以通过提升电阻来调节,控制程序中延迟时间的长短,可以获得不同

的效果。

也可以改蜂鸣器为继电器,通过控制继电器从而进一步扩展的来控

制一些家电开关。

2 系统总体方案及硬件设计

 

2.1 总体设计

 

电子闹钟应包括秒信号发生器、时间显示电路、按键电路、供电电源以及

闹铃指示电路等几部分。

按键功能说明:

 K1,设置时间和闹钟的小时; K2,设置小时以及设置闹钟

的开关;K3,设置分钟和闹钟的分钟;K4;设置完成退出。

电子闹钟的系统框图如下所示:

 

复位、时钟等电

6 位数码管显示电路

CPU

按钮电路闹铃声指示电路

 

电源系统

 

图 1

电子闹钟的主电路指的是图1中虚线框内部分,主要涉及到 CPU 电路和按

键按钮电路。

主机的设计具体地说有:

 1)系统时钟电路设计; 2)系统复位电

路设计;3)按键与按钮电路设计;4)闹铃声指示电路设计。

 

2.2 系统时钟电路设计

 

对于时间要求不是很高的系统,只要按图进行设计就能使系统可靠起振并稳定运行。

但由于原理图中的 C1、C2 电容起着系统时钟频率微调和稳定的作用,因此,在本闹钟系统

的实际应用中一定要注意正确选择参数(30±10 PF),并保证对称性(尽可能匹配),选

用正牌厂家生产的瓷片或云母电容,如果可能的话,温度系数要尽可能低。

实验表明,这

2 个电容元件对闹钟的走时误差有较大关系。

2.3 系统复位电路的设计

 

智能系统一般应有手动或上电复位电路。

复位电路的实现通常有两种方

式:

1)RC 复位电路;2)专用 µP监控电路。

前者实现简单,成本低,但复

位可靠性相对较低;后者成本较高,但复位可靠性高,尤其是高可靠重复复

 

位。

对于复位要求高、并对电源电压进行监视的场合,大多采用这种方式。

本次课程设计采用了上电按钮电平复位电路。

2.4 闹钟指示电路设计

 

闹铃指示可以有声或光两种形式。

本系统采用声音指示。

关键元件是蜂鸣

器。

蜂鸣器有无源和有源两种,前者需要输入声音频率信号才能正常发声,后

者则只需外加适当直流电源电压即可,元件内部已封装了音频振荡电路,在得

电状态下即起振发声。

市场上的有源蜂鸣器分为 3V、5V、6V等系列,以适

应不同的应用需要。

闹钟电路是用比较器来比较计时系统和定时系统的输出状

态,如果计时系统和定时系统的输出状态相同,则发出一个脉冲信号,再和一

个高频信号混合,送到放大电路驱动扬声器发声,从而实现定时闹响的功能。

其电路设计参见系统原理图。

 

2.5 电子闹钟的显示电路设计

 

本次课程设计采用了 6 位数码管显示电路。

在 6 位 LED 显示时,为了简化电

路,降低成本,采用动态显示的方式, 6 个 LED 显示器共用一个 8 位的 I/O, 6

位 LED 数码管的位选线分别由相应的 P2. 0~P2. 5 控制,而将其相应的段选线

并联在一起 ,由一个 8 位的 I/O 口控制 ,即 P0 口。

译码显示电路将“时”、

“分”、“秒”计数器的输出状态菁七段显示译码器译码,通过 6 位 LED 七段

显示器显示出来。

到达定时电路时根据计时系统的输出状态产生一脉冲信号,

然后去触发一音频发生器实现闹铃。

校时电路时用来对“时”、“分”、

“秒”显示数字进行校对调整的。

3 软件设计

 

3.1 概述

 

软件设计的重点在于秒脉冲信号的产生、显示的实现、以及按键的处理等

方面。

基于软件的秒脉冲信号通常有延时法和定时中断法。

延时法一般采用查

询方式,在延时子程序前后必然需要查询和处理的程序,导致误差的产生,因

此其秒脉冲的精度不高;中断法的原理是,利用单片机内部的定时器溢出中断

来实现。

例如,设定某定时器每 100ms 中断 1 次,则 10 次的周期为 1s。

本系

统中所使用的晶振频率为 12MHZ。

 

3.2 主模块的设计

 

主模块是系统软件的主框架。

结构化程序设计一般有“自上而下”和“自

下而上”两种方式,“自上而下”法的核心就是主框架的构建。

它的合理与否

关系到程序最终的功能的多少和性能的好坏。

本系统的主模块的程序框图如下

图 2 所示:

 

CPU系统初始化

 

定时0初始化

 

中断初始化

 

串口初始化

 

显示待机指示符

 

判设置闹铃时间否?

启动走时

 

有关变量初始化

 

判时或分变化否?

Y

刷新显示

 

判1秒到否?

Y

秒指示

Y

设定闹铃时间判是否到闹铃时间?

Y

显示刷新

闹铃

 

延时

 

图 2

3.3 基本显示模块设计

 

基本显示模块设计的重点是由显示代码取得相应的段码,显示段码数据的

并行发送,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,

石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,

不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用

LED 显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表

具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性

好。

程序流程如图 3 所示。

 

将16进制时分秒数据转化为BCD显示代码

 

关显示以免显示抖动

 

通过串口将时分秒数据传入数码管

 

打开显示

 

图 3

 

3.4 时间设定模块设计

 

时间设定模块的设计要点是按键的去抖处理与“一键多态”的处理。

即只

涉及 4 个键完成了 6 位时间参数的设定。

软件法去抖动的实质是软件延时,即

检测到某一键状态变化后延时一段时间,再检测该按键的状态是否还保持着,

如是则作为按键处理,否则,视为抖动,不予理睬。

去抖中的延时时间一般参

考资料多描述为 10ms 左右,实际应用中,应大于 20ms,否则,会导致按一次

作多次处理,影响程序正常执行。

“一键多态”即多功能键的实现思想是,根

据按键时刻的系统状态,决定按键采取何种动作,即何种功能。

 

其流程图如下图 4 所示:

 

 

设置键吗?

 

设置模块初始化

 

将在编参数送显示缓冲区

 

闪烁标志为真?

将当前位的显示代码置暗代码

 

调基本显示模块刷新显示

设置键吗?

+键吗?

 

根据当前位的性质分别进行

+1处理(含上下限判断)

当前编辑的是分各位?

结束设定

 

当前编辑位下移(下一位)

 

图 4

 

3.5 闹铃功能的实现

 

闹铃功能的实现涉及到两个方面:

闹铃时间设定和是否闹铃判别与相应处

理。

闹铃时间设定模块的设计可参照时间设定模块,这里着重阐述闹铃判别与

处理模块的设计问题。

闹铃判别与闹铃处理的关键在于判别何时要进行闹铃。

当时十位、时个位、分十位、分个位中任一位发生改变(进位)时,就必须进

行闹铃判别。

译码显示电路将“时”、“分”、“秒”计数器的输出送到七段

显示译码驱动器译码驱动,通过六个七段 LED 显示器显示出来。

闹铃电路根据

计时系统的输出状态产生一脉冲信号,然后加上一个高频或低频信号送到放大

电路驱动蜂鸣器发声实现报时。

校时电路是直接加一个脉冲信号到时计数器或

者分计数器或者秒计数器来对“时”、“分”、“秒”显示数字进行校对调

整。

 

其流程图如下所示:

 

闹铃判别处理

 

时十位、个位,分十位、个位改变了

 

是否设置了闹铃中断返回

判当前时间是设定时间

YN

设置闹铃标志清除闹铃标志

 

中断返回

图 5.1

 

图 5.2

 

考虑到实用性,在该电子钟的设计中修改定时或调整时间时采用了闪烁,而且以定时 20

组闹钟。

在编程上 ,首先进行了初始化定义了程序的入口地址以及中断的入口地址 ,在主程

序的开始定义了一组固定单元用来存储计数的秒,分,时以及定时时间的序号等。

 

在显示程序段中主要进行了闪烁的处理 ,采用定时器中断置标志位 ,再与位选相互结合

的方法来控制调时或定时中的闪烁。

时,分,秒显示则是用了软件译码(查表)的方式,再用了

一段固定的程序段进行进制转化。

初始化之后 ,用中断方式对其计数 ,计数的同时采用了定

时器比较的方法 ,比较当前计数时间与定时时间是否相等 ,若相等则将闹铃标志位置数。

于定义了定时闹钟组,在这里采用中断组次,每中断一次比较一组闹钟,避免了一次比较中断

时间过长,影响下次中断时间。

显示之后查询闹铃标志位是否与前面所置数相等 ,若相等则

响铃。

为了避免响铃影响显示,采用了每显示几屏以后在显示程序中出现脉冲,驱动喇叭,不会

影响显示。

之后用查询方式对按键进行判断,若有键按下,则进行软件延时消抖,避免了抖动

引起的干扰,执行相应的定时,选时或调时程序段。

对当前时间或定时时间修改后又返回到

最初的显示程序段,如此循环下去。

4.Proteus 软件仿真

 

本次课程设计所采用的程序调试软件为 wave6000 集成调试软件,所采用

的仿真软件为 protus 6 professional 软件。

本次实验的效果图如下所示:

 

RP1

9

8

7

6

5

4

3

2

1

RESPACK-8

 

9 8 7 6 5 4 3 2   2 2 2 2 2 2 2 2   1 1 1 1 1 1 1 1

0

A

0/

P

1

A

1/

P

2

A

2/

P

3

A

3/

P

4

A

4/

P

5

A

5/

P

6

A

6/

P

7

A

7/

P

8

0/

P

9

1/

P

0

A

2/

P

1

A

3/

P

2

A

4/

P

3

A

5/

P

4

A

6/

P

5

A

7/

P

D

X

R

0

P

D

X

T

1/

P

0

N

2

P

1

N

3

P

0

4/

P

1

5/

P

R D

W R

P P

U1

AT89C51

SPEAKER

C1

45p

X1

CRYSTAL

1

A

T

X

2

A

T

X

T

R

N

E E

P A E

0 1 2 3 4 5 6 7

P P P P P P P P

C2

45p

9 0 1

1 2 3 4 5 6 7 8

K4

K3

K2

C3

K1

100p

R1

10k

 

性能及误差分析

该电子钟有三个按键:

 K1, K2 和 K3 键。

按 K1 键进行校时,可以分别对时及分进行单

独校时,使其校正到标准时间,校时时需要校正哪一位哪一位就闪烁。

按 K2 键是对闪烁位进

行加一或返回的操作。

按 K3 键调整定时时间和定时组数,需要调整哪一位哪一位就闪烁,该

电子钟最多可定时 20 组闹钟。

经测试该电子钟在一天的累计误差约为 0. 1 秒。

该电子钟

的误差主要由晶振自身的误差所造成 ,晶振的误差约为 0. 0001~0. 000001。

在软件的编

程过程中所产生的误差比较小,在重装初值的过程中大概需要约 8 个机器周期,但在程序开

始对定时器赋初值时,多加了 8 个机器周期,减小了这方面的误差。

另外在中断的过程中,只

会在第一次计时时产生时间的偏移,而它所产生累计误差很小,可以忽略。

结构化软件程序的调试一般可以将重点放在分模块调试上,统调是最后一

环。

软件调试可以采取离线调试和在线调试两种方式。

前者不需要硬件仿真

器,可借助于软件仿真器即可;后者一般需要仿真系统的支持。

本次课设,采

 

用 wave6000 集成调试软件来调试程序,通过各个模块程序的单步或跟踪调试,

使程序逐渐趋于正确,最后统调程序。

仿真部分采用 protus 6 professional 软件,此软件功能强大且操作较为

简单,可以很容易的实现各种系统的仿真。

首先打开 protus 6 professional 软件,在元件库中找到要选用的所有元件,

然后进行原理图的绘制;绘制好后再选择 wave6000 已经编译好的*.hex 文件,

选择运行,观察显示结果,根据显示的结果和课设的要求再修改程序,再运行

查,直到满足要求。

5 课程设计体会

 

单片机是一门应用性很强的学科,课程设计是培养我们综合运用所学知识,

发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工

作能力的具体训练和考察过程。

虽然在做课程设计以前已经系统的把单片机课

本认真的学习了一下,但是在刚拿到设计任务书时还是有点一头雾水,不知道

该从哪里下手。

令人欣慰的是经过一周的学习,虽然过程很艰辛,但是总算实

现了定时闹钟的功能,所有的努力都很值得。

这一周的大部分时间都在研究程

序怎么处理,在这个过程中加深了我对汇编语言命令的应用,而且也更加了解

到软硬件配套的重要性。

通过这次课程设计,使我对这们功课有了更深刻的认识和了解。

首先对于

硬件电路的工作原理有了进一步系统的学习,同样就有了进一步的认识,使我

懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学

的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能

力。

其次软件在这次设计中也有不足之处,比如音乐的响声不连续,但又不知

道从哪个地方入手解决这个问题,这要求在以后的学习中,拓宽自己的知识

面,解决设计的不足之处。

总之,通过这次课程设计不仅使我巩固了本课程所学的基本知识,还使我

具有了撰写科研报告的初步训练能力,我相信这些能力在我以后的工作或者是

再学习中一定会起到不小的作用,一切的辛苦和艰难都是值得的。

参考文献

[1] 余发山 单片机原理及应用技术,徐州:

中国矿业大学出版社,2003

[2] 杨刚,周群 .电子系统设计与实践 .电子工业出版社 .2004:

18-23 341-347

118-122

[3] 何立民 .单片机高级教程(应用与设计) .北京:

北京航空航天大学出版

社,2000 年.53-98

[4] 涂时亮,张友德.单片微机控制技术.清华大学出版社.1994:

86-87 146-147

[5] 《融会贯通 Protel99 电路设计》 弘道工作室 北京 人民交通出版设,2000.

[6] 《单片机原理及接口技术实验》 朱定华 北京 北方交通大学出版社 2002.11

附 1:

源程序代码

 

K1 EQU P1.0;在程序开始前定义变量

K2 EQU P1.1

K3 EQU P1.2

K4 EQU P1.3

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP TIME

ORG 0100H

MAIN:

MOV SP,#50H

MOV 20H,#00H。

时间 BINSECOND

MOV 21H,#00H。

BINMINUTE

MOV 22H,#00H。

BINHOUR

MOV 23H,#01H。

闹铃 BIN

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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