-
页眉
本
电子闹钟的设计是以单片机技术为核心,采用了小规模集成度的单
片机制作的功能相对完
善的电子闹钟。硬件设计应用了成熟的数字钟电路
的基本设计方法,并详细介绍了系统的
工作原理。硬件电路中除了使用
AT89C51
外,另外还有晶
振、电阻、电容、发光二极管、开关、喇叭等元
件。在硬件电路的基础上,软件设计按照
系统设计功能的要求,运用所学
的汇编语言,实现的功能包括
‘
时时
-
分分
-
秒秒
’
显示,设定和修改定时时间
p>
的小时和分钟、校正时钟时间的小时、分钟和秒、定时时间到能发出一分
钟的报警声。
一
芯片介绍
AT89C51
是一种带
4K
字节
FLA
SH
存储器的低电压、高性能
CMOS
8
位微处理器,
俗称单片机。
AT8
9C51
是一种带
2K
字节闪存可编程
可擦除只
读存储器的单片机。单片机的可擦除只读存储器可以反复擦除
< br>1000
次。该
器
件
采
用
ATMEL
高
密
度
非
易
失
存
储
器
制
造
技
术
制
造
,
与
工
业
标
准
的<
/p>
MCS-51
指令集和输出管脚相兼容。由于将多功能
8
位
CPU
和闪烁存储器
组合在单个芯片中,
ATMEL
的
p>
AT89C51
是一种高效微控制器,
AT
89C51
是它的一种精简版本。
AT89C51
单片机为很多嵌入式控制系统提供了一种
灵活性高且价廉的方案,外形及引脚
排列如图
1-1
所示。
图
1-1
AT89C51
引脚图
74LS573
的八个锁存器都是透明的
D
型锁存器
,当使能(
G
)为高时,
1
/
241
页眉
Q
输出将随数据(
D
)输入而变。当使能为低时,输出将锁存在已建立的
数据电平上。输出控制不影
响锁存器的内部工作,即老数据可以保持,甚
至当输出被关闭时,新的数据也可以置入。
这种电路可以驱动大电容或低
阻抗负载,可以直接与系统总线接口并驱动总线,而不需要
外接口。特别
适用于缓冲寄存器,
I/O
通道,双向总线驱动器和工作寄存器。外形及引脚
排列如图
1-2
所示。
图
1-2
74LS573
引脚图
2
/
242
页眉
二
硬件电路设计
1
时钟电路设计
AT89C51
系列的单片机的时钟方式分为内部方式和外部方式。内部方
式就是在单
片机的
XTAL1
和
XTAL2
的两引脚外接晶振,就构成了自己振
荡器在单片机内部产生时钟脉冲信
号。外部时钟方式是把外部已经有的时
钟信号引入到单片机内部。时钟电路在计算机系统
中起着非常重要的作用,
是保证系统正常工作的基础。在一个单片机应用系统中,时钟有
两方面的
含义:一是指为保障系统正常工作的基准震荡定时信号,主要由晶振和外
围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统
的标准定时时钟,即定时时间。其电路图如图
2-1
所示。<
/p>
图
2-1
时钟电路图
2
复位电路设计
< br>复位操作完成单片机内电路的初始化,使单片机从一种确定的状态开
始运行。
p>
当
AT89C51
单片机的复位引脚
RST
出现
5ms
以上的高电平时,
单片机
就完成了复位
操作。
如果
RST
持续为高电平,
p>
单片机就处于循环复位状态,
而无法执行程序。
因此要求单片机复位后能脱离复位状态复位操作通常有
2
种
基本形式:上电复位、开关复位。上电复位要求接通电源后,自动实现
复位操作。开关复
位要求在电源接通的条件下,在单片机运行期间,如果
发生死机,用按钮开关操作使单片
机复位。其电路图如图
2-2
所示。
3
/
243
页眉
图
2-2
复位电路图
3
键盘电路设计
< br>本次电子闹钟的设计共使用了
4
个按键,各个按键的功能
如表
1
所示。
表
1
各按键的接法和功能
按键名称
K1
K2
K3
K4
连线方法
一端接
P1.0,
一端接地
一端接
p>
P1.1,
一端接地
一端接
P1.2,
一端接地
p>
一端接
P1.3,
一端接地
按键功能
控制调整当前时
间;
同时使闹钟的分加
1
控制闹钟时间
定时闹钟时小时加
p>
1
;时间显示时分加
1
刷新当前显示时间
4
显示电路设计
< br>数码显示有静态显示方式与动态显示方式两种。工作在静态显示方式
时,数码管的
位线与电源一直相联,每个数码管均处在通电状态,电路的
待显示信号经译码驱动电路后
分别传输给显示电路,每个数码管同时收到
并显示各自接受到的信号。静态显示时每个数
码管均联接有
7
段线,即每
个数码管都
需要
7
个联接端口,这样显示电路在输出端需要的联接端口数<
/p>
等于
7
,
数字电
路的待显示信号位数越多,
显示电路需要的联接端口就越多。
工作在动态显示方式时,数码管的位线在扫描控制电路的控制下按设
4
/
244
页眉
< br>定顺序导通,即电路中的数码管是逐个接通电源,数码管的段线以并联的
方式与译
码电路联接,扫描控制电路按照设定顺序将数字电路的待显示信
号逐个传输给数码管,数
码管也按照扫描控制电路设定的显示顺序逐个进
行字符显示。动态显示时,数码管的位线
数增加,每个数码管均有一个位
线控制其是否通电,但是数码管的段线却大幅减少,不论
待显示信号的个
有多少,数码管的段线都是根。
比较两种显示方式可以看出,采用静态显示方式时显示电路需要占用
比较多的
联接端口,即数字电路的输出端占用了比较多的管脚资源,较多
的输出联接端使得电路的
布线复杂
,
焊点增加,电路板制作成本上升,同时,
一直通电的数码管功率损耗数值也较大;而采用动态显示方式时显示电路
所
需要的输出端口数比较少,间断通电的数码管功率损耗也比较小。由于
显示电路的上述特
点,因此,此次电子闹钟的设计采用了动态数码显示。
5
/
245
页眉
三
软件实现
软件设计的重点在于秒脉冲信号的产生、显示的实现、以及按键的处
理等方面。基于软件的秒脉冲信号通常有延时法和定时中断法。延时法一
般采用查询
方式,在延时子程序前后必然需要查询和处理的程序,导致误
差的产生,因此其秒脉冲的
精度不高;中断法的原理是,利用单片机内部
的定时器溢出中断来实现。
1
主模块的设计
主模块是系统软件的主框架。结构化程序设计一般有“自上而下”和
“
自下而上”两种方式,
“自上而下”法的核心就是主框架的构建。它的合
理与否关系到程序最终的功能的多少和性能的好坏。本系统的主模块的程
序框图
如图
3-1
所示。
图
3-1
主程序流程图
显示刷新
显示待机指示符
判设置闹铃时间否?
Y
设定闹铃时间
判是否到闹铃时间?
Y
闹铃
延时
判1秒到否?
Y
秒指示
中断初始化
串口初始化
判时或分变化否?
Y
刷新显示
CPU系统初始化
定时0初始化
启动走时
有关变量初始化
2
基本显示模块设计
基本显示模块设计
的重点是由显示代码取得相应的段码,显示段码数
据的并行发送,高精度的计时工具大多
数都使用了石英晶体振荡器,由于
电子钟,石英表,石英钟都采用了石英技术,因此走时
精度高,稳定性好,
使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码
代替
6
/
246
页眉
机械式传动,用
LED
显示器代替显示
器代替指针显示进而显示时间,减小
了计时误差,这种表具有时,分,秒显示时间的功能
,还可以进行时和分
的校对,片选的灵活性好。程序流程如图
3
-2
所示。
将
16
进制时分秒数据转化为
BCD
显示代码
关显示以免显示抖动
通过串口将时分秒数据传入数码管
打开显示
图
3-2
基本显示流程图
3
时间设定模块设计
时间设定模块的设计要点是按键的去抖处理与“一键多态”的处理。
即只涉及
4
个键完成了
6
位时间参数的设定。软件法去抖动的实质是软件
延时,即检测到某一键状态变化后延时
一段时间,再检测该按键的状态是
否还保持着,如是则作为按键处理,否则,视为抖动,
不予理睬。去抖中
的延时时间一般参考资料多描述为
10ms<
/p>
左右,实际应用中,应大于
20ms
,<
/p>
否则,会导致按一次作多次处理,影响程序正常执行。
“一键多态
”即多功
能键的实现思想是,根据按键时刻的系统状态,决定按键采取何种动作,
即何种功能,其流程图如图
3-3
所示。
p>
7
/
247
页眉
N
设置键吗?
设置模块初始化
将在编参数送显示缓冲区
N
闪烁标志为真?
N
+键吗?
根据当前位的性质分别进行
+1处理(含上下限判断)
N
将当前位的显示代码置暗代码
调基本显示模块刷新显示
设置键吗?
当前编辑的是分各位?
当前编辑位下移(下一位)
N
结束设定
图
3-3
时间设定流程图
4
闹钟功能实现模块设计
闹铃功能的实现涉及到两个方面:闹铃时间设定和是否闹铃判别与相
应处
理。闹铃时间设定模块的设计可参照时间设定模块,这里着重阐述闹
铃判别与处理模块的
设计问题。闹铃判别与闹铃处理的关键在于判别何时
要进行闹铃。当时十位、时个位、分
十位、分个位中任一位发生改变(进
位)时,就必须进行闹铃判别。译码显示电路将“时
”
、
“分”
、
“秒”计数
器的输出送到七段显示译码驱动器译码驱动,通过六个七段
< br>LED
显示器显
示出来。闹铃电路根据计时系统的输出状
态产生一脉冲信号,然后加上一
个高频或低频信号送到放大电路驱动蜂鸣器发声实现报时
。校时电路是直
接加一个脉冲信号到时计数器或者分计数器或者秒计数器来对
“时”、
“分”、“秒”显示数字进行校对调整,其流程图如图
3-4
所示。
8
/
248
页眉
闹铃判别处理
时十位、个位,分十位、个位改变了
是否设置了闹铃
Y
Y
设置闹铃标志
中断返回
判当前时间是设定时间
N
清除闹铃标志
中断返回
图
3-4
闹钟功能实现流程图
9
/
249
页眉
四
调试
1
硬件调试
在电路板焊接好后,经硬件调试未能实现预期的实验结果,经过仔细
检查发现两个故障
:有一个引脚的导线和地线短路;
MAX232
的
R1in
和
T1out
与串
口下载器件的
2,3
引脚接反了,导致实验结果不正确。
2
软件调试
<
/p>
在硬件调试无误的基础上,将程序烧入到
AT89C51
芯片中,实现了在
Proteus
中仿真的结果
。
3
综合调试
经过硬件调试和软件调试,
各个程序模块的功能都能正确的运行,电
子闹钟正确的实现了设计的结果。
10
/
2410
页眉
五
结论
<
/p>
通过这次课程设计,使我对单片机这门功课有了更深刻的认识和了解。
首先对于硬件电路的工作原理有了进一步系统的学习,同样就有了进一步
的认识,使
我懂得了理论与实际相结合的重要性,只有理论知识是远远不
够的,只有把所学的理论知
识与实践相结合起来,才能提高自己的实际动
手能力和独立思考的能力。其次,也培养了
我在面对问题的时候能够独立
思考的能力。
< br>但是在这次课程设计中也有不足之处,比如闹钟并不能整点报时,还
有在对电子闹
钟设定定时时间时只能对时、
分依次加
1
,
不能对其减
1
操作,
这是本次课程设计的不足之处。因此还需要在以后的学习中,拓宽自己的
知识
面,解决设计的不足。
总之,通过这次课程设计不仅使我巩固
了本课程所学的基本知识,还
使我具有了撰写科研报告的能力,我相信这些能力在我以后
的工作或者是
再学习中一定会起到不小的作用,一切的辛苦和艰难都是值得的。
11
/
2411
页眉
参考文献
[1]
李群芳,肖看
.
单片机原理、接口及应用
< br>----
嵌入式系统技术基础
[M]
,北京:清华大学出
版社,
2005.
< br>[2]
杨金泉
.
单片机原理及应
用实验指导手册
[M]
12
/
2412
-
-
-
-
-
-
-
-
-
上一篇:英语专业就业方向
下一篇:ACS355变频器485设置说明