黎明职业大学 机电工程系 课程设计
机 电 工 程 系
课 程 设 计 报 告
题目: 简易秒表(LED 数码管显示接口技术应用)
专
班
学
业:
机电一体化
级:
08 纺电
号:0806100108
0806100117
姓
名:
应彦
同 组 人:
许伟龙
指导老师:______ 杨俊鸣
答辩日期:
12 月 31 日
共 12 页
第 - 1 - 页
黎明职业大学 机电工程系 课程设计
一、 绪论
本设计是一个由 AT89C51 单片机控制,结合显示电路、电源电路、LED 数
码管以及键盘电路按键计时来实现的多功能秒表系统。
在本次设计中我们以 AT89C51 单片机为主要器件,利用它的定时器/计数器
定时原理,上电加按钮复位电路,晶体振荡电路,由 P0 口驱动的 LED 动态显示
电路,键盘电路等来完成多功能秒表的设计。这个多功能秒表系统能够实现八位
LED 显示,显示的时间为 00.00.00.00~24h.59f.59s.99,精确到 0.01s,每秒
自动加一,同理,每分、每小时自动加一基本上实现了老师的要求。我们使用汇
编语言来编写程序,采用模块化程序设计方法,主程序有多个子程序构成,这些
子程序可以单独的设计,调试和管理,其中包括主程序、中断服务子程序、定时
器中断服务子程序和显示子程序等。将源程序代码在 keil 中进行编译和调试,
硬件系统利用仿真软件来实现,可以方便的看到运行结果。
二、对本实验设计的分析
2.1 实验内容
用 AT89C51 设计一个 8 位 LED 数码显示“简易秒表”,显示时间为时,分,
秒,精确到 0.01s,每秒自动加一,同理,每分、每小时自动加一。另设计一个
“开始”按键和一个“复位”按键。再增加一个“暂停”按键。按键说明:按“开
始”按键,开始计数,数码管显示从 00.00.00.00.;开始每秒自动加一;按“复
位”按键,系统清零,数码管显示 00.00.00.00;按“暂停”按键,系统暂停计
数,数码管显示当时的计数。
2.2 实验要求
了解 8051 芯片的工作原理和工作方式 ,使用该芯片对 LED 数码管进行显
示控制,实现用单片机的端口控制数码管,显示时、分、秒,并能用按钮实现
秒表起动、停止、清零功能,精确到 0.01 秒。
要求选用定时器的工作方式,画出使用单片机控制 LED 数码管显示的电路
共 12 页
第 - 2 - 页
黎明职业大学 机电工程系 课程设计
图,并在实验板实现其硬件电路,并编程完成软件部分,最后调试秒表起动、停
止、清零功能。
2.3 设计思路及描述
该实验要求进行计时并在数码管上显示时间,则可利用 51 系列单片机微机
仿真实验系统中的芯片 89C51 中的 P3.2 管脚做为外部中断 0 的入口地址,并实
现“暂停”按键的功能;将 P3.3 做为外部中断 1 的入口地址,并实现“开始”
按键的功能;定时器 T0 作为每秒加 1 的定时器; “清零”按键按下时数码管清
零,此时若再按“开始”按键则又可重新开始计时。
方框图如下图:
开关
MC51
AT89C51
LED 显示电路
图 3 数字秒表设计导向图
三、主要电路模块的实现方案比较及选择
该部分应对第 2 节中的框图内容的实现方案进行对比和选择,要求对电路
进行分析,才能给出结论。
3.1 课题实现方案
方案一:做一个较为简单的秒表,只要实现数码管能够正常的运行。
方案二:在方案一的基础上加上启动、暂停、复位按钮,并做出能够控制秒表
的模拟图。
方案三:在方案二的基础上,把硬件电路做出来,调试出控制秒表系统功能。
3.2 方案比较及选择
共 12 页
第 - 3 - 页
黎明职业大学 机电工程系 课程设计
方案分析:
方案一:要求比较低,容易实现,但功能太少不能满足现实需要。
方案二:多了个启动、暂停、复位的功能,并做出了仿真电路图,实验成本低。
方案三:功能虽较为齐全,但是成本较高。
确定最终方案:根据上述的分析,最终还是采用方案二比较合理。
四、系统电路图
4.1 接口电路
利用 12M 晶振的一个机器周期为 1 微秒,通过循环产生 1 秒时间延迟,扫描
单片机中所存放的时间的值,并通过输出显示在数码管上。如图:
共 12 页
第 - 4 - 页
黎明职业大学 机电工程系 课程设计
4.2 、复位电路及 12M 的晶振电路如下图:
系统复位电路
按键电路:
按键接口分别为 p3.2(暂停),p3.3(开始),p3.5(复位清零);如下
图所示:
共 12 页
第 - 5 - 页
黎明职业大学 机电工程系 课程设计
4.3、硬件实物图
共 12 页
第 - 6 - 页
黎明职业大学 机电工程系 课程设计
五.秒表系统的软件设计
5.1 数字秒表工作流程图:
主程序流程图
定时器中断程序流程图
共 12 页
第 - 7 - 页
黎明职业大学 机电工程系 课程设计
5.2 部分重要程序指令分析:
①:宏定义:时,分,100 微秒,10 微秒
SEC
EQU
20H
MSEC
EQU
21H
FEN
SHI
EQU
22H
EQU
23H
②:主程序分析:
MAIN:
MOV
MOV
MOV
MOV
MOV
TMOD,#61H
TH0,#0D8H ;
TL0,#0F0H
TH1,#0FFH
TL1,#0FFH ;
1、以上几条指令作用为设置定时器 0(T0)工作方式为 1,定时器 1(T1)
工作方式为 2;
2 、 给 定 时 器 T0 赋 初 值 D80FH( 即 55536, 通 过 计 算 得 中 断 时 间
T=65536-55536=10000us=10ms);
3、给定时器 T1 赋初值 FFFFH,当从外部计数引脚输入一个负跳变(即按下
按键)计数器加 1 产生溢出中断,最后将 TH1 中的值给 TL0,重新开始
MOV
IE,#8FH
该条指令为中断允许 IE=10001111B, 使 EA=1(开总中断),ET1=1(开定时器
1 中断),EX1=1(开外部中断 1),ET0=1(开定时器 0 中断),EX0=1(开外部中
断 0)
③:显示子程序
XH:
MOV
A,@R0
MOVC
CJNE
A,@A+DPTR
R0,#32H,LP0
ANL
A,#7FH
LP0:
CJNE
R0,#34H,LP
共 12 页
第 - 8 - 页