《微机应用系统设计》课程设计
一、设计课题
数字电子钟的设计
二、设计要求
(一)实现基本数字电子钟的设计,要求能够显示时和分;
(二)通过按键有设置闹钟功能;
(三)有整点报时功能;
(四)通过按键设置能够进行分校时;
(五)用 proteus 画出原理图,说明各个控制信号的作用;
(六)画出程序流程图,编写程序,采用 Proteus 软件实现软硬件仿真。
三、设计目的
通过数字电子钟这一课程设计的锻炼,理解单片机系统的组成,及以单片机
为主的系统设计方法,掌握单片机最小系统、键盘模块、LED 数码管显示系统及
各种扩展电路的应用,加深对微控制器系列课程的理解。
四、小组分工
五、材料清单
PART-REFS
---------
QTY
---
Resistors
---------
5
1
1
R1-R5
R6
R7
Capacitors
----------
VALUE
-----
4k7
1k
200
CODE
----
W4K7
1
2
C1
C2,C3
1uF
33pF
Integrated Circuits
-------------------
1
1
U1
U2
Transistors
-----------
1
Q1
Miscellaneous
-------------
4
ADD,CONFIRM,MODE,
MOVE
LS1
RP1
1
1
1
X1
AT89C51
74LS245
NPN
SPEAKER
RESPACK-8
CRYSTAL
硬件组成单片机复位电路、按键电路、蜂鸣器驱动电路和显示模块电路四大
模块。
六、模块功能说明
(一)按键模块:通过 keyscan()函数扫描按键,识别外设 P3 端口要完成
的按键功能。本次设计因为按键较少并且需要独立控制所以采用了 4 个独立按
键,分别是 mode(P3==0XFF)、add(P3==0XFD)、move(P3==0XFB)和
confirm(P3==0XF7)。当按 mode 键一次为调时,两次为调闹。通过由 add()函数
和 confirm()函数同时完成,在不同的模式下,完成时间的更改和确定。硬件方
面,本次设计用 AT89C51 单片机内部定时/计数器 T0 作为电子表时钟参考;
(二)显示模块:由函数 show()、show1()、show2()、show3()和 show4
()分别完成正常时间显示、调试模式显示、闹钟设定模式显示、调整位标记显
示和闹钟开闭显示程序。硬件采用共阳方式,外加 5V 稳压电源供电,通过 8 个
数码管,采用一片 74LS245 芯片来驱动位码,用 P2 口进行位选扫描;
(三)响铃模块:由 beep()函数完成,用于闹钟和整点报时的响铃。硬件
是通过 NPN 三极管放大后驱动蜂鸣器工作,单片机 I/O 接三极管基极。整点报时
时由 zhengdian()函数 beep()函数完成,功能是能够在每个整点报时,每次响铃
默认 10s。闹钟由 alarm_judge()判断函数和 beep()函数完成,常规响铃 1 分钟;
(四)复位模块:由独立按键 RES 来完成复位,此功能为 AT89C51 单片机完
成。
七、参数计算
(一)定时器 T0
1.方式控制寄存器 TMOD
T1
T0
D7
GATE
D6
C/T
D5
M1
D4
M0
D3
GATE
D2
C/T
D1
M1
D0
M0
TMOD 用以设定通用定时/计数器 T0 和 T1 工作方式。GATE 位为门控位,
GATE=1 时,T0、T1 分别受 INT0、INT1 引脚输入电平控制,常用于测量对应正脉
冲的宽度;C/T 用于选择定时、计数功能。
本次设计选择 T0 做定时器用,工作在方式 1,故 TMOD = 0X01;
2.控制寄存器 TCON
T1
T0
INT
1
INT
0
D7
D6
D5
D4
D3
D2
D1
D0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TR0 用于开/关定时器 T0,TF0 为 T0 溢出标志位。
3.中断允许控制寄存器 IE
D7
EA
D6
/
D5
/
D4
ES
D3
ET1
D2
EX1
D1
ET0
D0
EX0
EA 为总中断允许位,ET0 为 T0 中断允许位。
(二) 定时器 T0 初值计算
初值计算公式: 2
X
n
f
osc
12
T
(1)
X—定时器初值
n—定时器位数(方式 0:13 位;方式 1: 16 位;方式 2: 8 位)
fosc—单片机主频(本次设计取 12MHz)
T—机器周期时间
为了获得 1s 的时钟周期,需要先获得 50ms 的时钟周期,每 20 次中断一次,
就能完成时间为 1s 的获得。选择计时器 T0 工作在方式 1 下,fosc=12MHz,T=50ms,
带入公式(1),解得初值 X=3CB0H,所以 TH0 = 0X3C,TL0 = 0XB0。
八、电路及软件流程
(一)系统框图总览
(二)单片机复位电路
(三)按键电路
(四)蜂鸣器驱动电路
(五)显示模块电路
(六)主函数流程图
主函数流程图
(二)定时器 T0 中断服务程序流程图
定时器 T0 中断服务程序流程图
(三)闹钟响应程序流程图
闹钟响应程序流程图