武汉理工大学嵌入式课程设计
摘要
本设计是基于单片机 AT89S52 的作息时间控制器。主要通过软件来实现,采
用 AT89S52 单片机芯片、直接驱动 LED 显示电路。外接 4 个按钮组成键盘,AT89S52
为 51 内核。另外,AT89S52 本身无专门的液晶驱动接口,因此,本作息时间控
制器采用数码管显示方式。数码管作为一种主动显示器件,具有亮度高、价格便
宜等优点,而且市场上也有专门的时钟显示组合数码管,接线简单,使用方便。
相比与一些以数字计数芯片为核心的硬件设计系统而言,该设计操作更为简单,
工作更加稳定,成本也进一步降低。
该作息时间控制器由四位七段数码管来显示当前的时间,即显示时和分,用
LED 灯的闪烁来表示秒,本设计中 LED1 灯闪烁的时间间隔设定为 1s,即每分钟
闪烁 60 次。该作息可控制器外围的按键电路由 4 个按键组成,其中 S1 作为时间
和闹钟加调整而 S2 作为时间和闹钟的减调整,S3 作为校时的功能按键,S4 作为
闹钟调整和响铃时间功能按键。由于冬季与夏季作息时间分别用加和减来调整是
为了校时和响铃时间更加方便和快捷。另外在设计中又加入正点报时功能起到提
醒的功能。
关键词:单片机 AT89S52,作息时间控制器,数码管,LED 灯。
-
-1
武汉理工大学嵌入式课程设计
目录
1 概述............................................................................................................................ 1
1.1 作息时间控制器的设计................................................................................ 1
1.2 作息时间控制器的应用................................................................................. 1
1.3 作息时间控制器的要求................................................................................ 1
2 系统设计方案............................................................................................................ 2
2.1 系统总体设计................................................................................................ 2
2.2 最小系统设计................................................................................................ 2
2.3 数码管动态显示............................................................................................ 3
2.4 蜂鸣器驱动电路............................................................................................ 4
2.5 按键扫描电路................................................................................................ 4
3 软件设计.................................................................................................................... 6
3.1 定时器 0 的初始化........................................................................................ 6
3.2 时分显示函数................................................................................................ 6
3.3 按键扫描函数................................................................................................ 8
4 proteus 仿真.......................................................................................................... 11
5 课程设计体会........................................................................................................................... 12
参考文献........................................................................................................................................ 13
附录 1:源程序代码.................................................................................................................. 14
附录 2:总电路图.......................................................................................................................26
-
-2
武汉理工大学嵌入式课程设计
1 概述
1.1 作息时间控制器的设计
作息时间钟的设计基本组成由电源模块、微处理器模块、时间获取模块、键
盘模块和数据显示模块构成。在本方案设计选择时可以选择小规模数字集成电
路;我们可采用 AT89S52 单片机,因为此单片机的工作频率在 12MHz 左右,而且
内部还有定时、计数器,可以产生精确的 1S 定时,由次可以用定时中断的方式
产生精确的 1S 时间,秒位不断的加 1,再设计分、时的进制,使产生进位。本
设计只需要单片机最小系统加上显示电路,再设计简单的程序算法就可以实现。
在显示电路上,采用数码管就可以将年时分显示出来,通过发光二极管闪烁来表
示秒计数。
1.2 作息时间控制器的应用
良好的作息习惯使我们学习效率高的保证,本次设计作息时间控制器简
单实用,可以根据自己的需要来设定自己的作息时间,达到预定时间之后单片机
可以驱动蜂鸣器,从而起到提醒自己按时作息的作用。而且响铃时间也可以根据
自己的需要设定。另外在程序中还加入整点报时功能。作息时间控制器采用加、
减校时使校时上下可调。减少了自己设定闹钟和校时调节的时间
1.3 作息时间控制器的要求
【1】设计制作一个单片机数字钟及控制电路。
【2】使用 4 位七段显示器来显示现在的时间。显示格式为“时分”,由 LED 闪
动作为秒计数表示。
【3】可以设定作息时间,并进行到时提示。
【4】能够根据预先设定好的作息时间表自动启停控制电路,完成对外部设备的
实时控制。
【5】可以设置现在的时间及显示定时设置时间。
-
-1
武汉理工大学嵌入式课程设计
2 系统设计方案
2.1 系统总体设计
在系统的总体设计中,系统硬件的设计可以根据系统的各个功能,把整个系
统划分成若干个模块,分别对这些模块来进行设计,然后在通过单片机程序来实
现对各个硬件模块功能的调度。本系统涉及到的硬件模块有:按键电路、复位电
路、显示电路。
系统电源供电方式采用 USB 供电。作息时间控制器的显示电路是有四个数码
管显示,分别显示时和分,而秒的显示有发光二极管的闪动来表示,闪一次就为
一秒。
根据以上设计思路,系统的总体设计框图如下图 2.1 所示。
2.2 最小系统设计
单片机虽然集成了很多电路,但仍旧不能独立运行,必须要外连一些电路,
才能是单片机运行起来。这种能是单片机正常工作的最简电路我们叫做单片机最
小系统。图 2-2 中,有 40 个引脚就是 AT89S52 单片机,它的核心是 MCS-51 单片
机。首先是单片机的时钟电路,通过连接一个晶振和两个 30pF 电容,构成了单
片机的时钟电路。晶振是一种能够输出为定的震荡周期的元件,通过它单片机才
能有时间概念才可以去读指令;其次是单片机的复位电路,通过一个 10uF 电容
和一个 4.7k 的电阻组成。单片机的 9 因较为复位功能引脚。当这个引脚又连续
-
-2
武汉理工大学嵌入式课程设计
两个以上机器周期的高电平时,单片机就会复位。我们电路设计是,电容充电瞬
间是导通电流通过电容器,然后向电阻方向放电,这是电容的“-”端就用一个
很高的电势。电容充电时间是有限,当选择合适的电容,其充电时间就会大于
2us,这时,复位条件就成立了。最小系统如下图:
2.3 数码管动态显示
作息时间控制器的显示,采用的是数码管动态显示,也即将所有的位数码管
的段选线并连在一起而有位选线控制哪一位数码管有效。这样一来无论几个数码
管我们就可以用一个 P0 口来实现所有数码管的段选。而 P1 口的前四位来作为位
选。这样一来就大大简化了硬件电路节省了 I/O 端口。选亮数码管采用动态扫描
显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用数
码管的余辉和人眼视觉暂留作用,是人的感觉好像是个位数码管同时都在显示。
动态显示的亮度比静态显示要差一些。数码管连接如下图所示
-
-3
P
2
.
0
P
2
.
1
P
2
.
2
P
2
.
3
P
2
.
4
P
2
.
5
P
2
.
6
P
2
.
7
P
3
.
0
P
3
.
1
P
3
.
2
P
3
.
3
P
3
.
4
P
3
.
7
P
3
.
6
P
3
.
5
P
1
.
0
P
1
.
1
P
1
.
2
P
1
.
3
P
1
.
4
E
A
/
V
P
3
1
X
1
1
9
X
2
1
8
R
E
S
E
T
9
R
D
1
7
W
R
1
6
I
N
T
0
1
2
I
N
T
1
1
3
T
0
1
4
T
1
1
5
P
1
0
1
P
1
1
2
P
1
2
3
P
1
3
4
P
1
4
5
P
1
5
6
P
1
6
7
P
1
7
8
P
0
0
3
9
P
0
1
3
8
P
0
2
3
7
P
0
3
3
6
P
0
4
3
5
P
0
5
3
4
P
0
6
3
3
P
0
7
3
2
P
2
0
2
1
P
2
1
2
2
P
2
2
2
3
P
2
3
2
4
P
2
4
2
5
P
2
5
2
6
P
2
6
2
7
P
2
7
2
8
P
S
E
N
2
9
A
L
E
/
P
3
0
T
X
D
1
1
R
X
D
1
0
A
T
8
9
C
5
1
1
K
R
1
1
0
u
F
3
0
p
F
C
1
1
2
M
H
Z
+
5
v
S
0
1
0
K
R
2
3
0
p
F
C
2
+
5
v
武汉理工大学嵌入式课程设计
2.4 蜂鸣器驱动电路
因为单片机的 I/O 口的输出电流太小从而无法驱动蜂鸣器,是蜂鸣器响铃。
所以我们利用三极管的放大作用来驱动蜂鸣器,当单片机的 P3^0 输出高电平时
PNP 截止蜂鸣器不发声,当 P3^0 输出低平时 PNP 导通蜂鸣器发声。
2.5 按键扫描电路
本次设计采用四个按键来实现电路的校时和闹铃设定。S1 作为时间和闹
钟加调整而 S2 作为时间和闹钟的减调整,S3 作为校时的功能按键,S4 作为闹钟
调整和响铃时间功能按键。当有按键按下时,就会是相连的 I/O 口出现低电平,
-
-4
武汉理工大学嵌入式课程设计
单片机就会扫描到是哪个按键按下,让后进入函数来显示案件的功能。
-
-5