1、本科毕业设计(论文)(20 届)基于单片机的数字秒表设计所在学院专业班级 电子信息科学与技术学生姓名指导教师完成日期目 录摘要 .IIIAbstract.IV第 1 章 绪论 .1第 2 章 硬件设计 .22.1 单片机的选择 .22.1.1 AT89C51 单片机的介绍 .22.1.2 单片机的外部结构 .22.2 单片机电路的设计 .42.2.1 方案设计 .42.2.2 显示模块的设计 .62.2.3 时钟电路模块的设计 .92.2.4 按键电路的设计 .102.2.5 复位电路的设计 .122.2.6 系统电路的设计 .12第 3 章 软件设计 .143.1 汇编语言介绍 .143.2
2、 内部存储器的分配 .143.3 主程序设计 .153.4 中断程序设计 .16第 4 章 数字电子秒表的安装与调试 .214.1 软件的仿真与调试 .214.2 硬件的安装与调试 .214.2.1 晶振电路的测试 .214.2.2 复位电路的测试 .224.2.3 显示电路的测试 .224.3 系统程序的烧录 .224.4 数字电子秒表的精度调试 .23结束语 .24参考文献 .25附录 A 程序 .26附录 B 秒表设计原理图 .32致谢 .33基于单片机的数字秒表设计摘要本设计是一个基于单片机的数字秒表设计。为了解决传统的秒表计时精度不够高造成的误差,所以本论文设计的秒表计时精度设计为
3、10ms,满足一般体育竞赛的计时要求,是普通体育竞赛中必备设备之一。本设计的数字电子秒表采用 AT89C51 用为核心,利用 T0 定时器/计数器定时和记数原理,结合显示电路、LED 八段数码管以及外部中断电路来设计的计时器。将硬件和软件有机地联系在一起,使本设计能够实现 6 位LED 显示,显示的时间范围为 059 分 59.99 秒,计时的精度为 10ms,在进行计时的同时,能保存一次时间,并在下次计时后能查询上一次计时的时间。软件系统设计采用的是汇编语言编写程序,其中包括定时中断服务,显示程序,延时程序,外部中断服务程序等。关键词:秒表;单片机;LED 八段数码管Based on SCM
4、 Digital Stopwatch DesignAbstractThis design is a digital stopwatch design based on single chip. In order to solve the traditional stopwatch precision insufficient high errors, so this paper designed stopwatch for 10ms pure design, meet general sports contests timing requirements, is common in one o
5、f the necessary equipment for sports contest. The designed digital electronic stopwatch adopted with as the core, use AT89C51 T0 timer/counter timing and numeration theory, combined with display circuit, LED erection of digital tube, and external interruption, circuit to design timer. The hardware a
6、nd software organically relates in together, make this design can realize six LED display, display time range is 0 59 points 59.99 seconds, the accuracy of 10ms clock for the timing, at the same time, can save another time, and in the next time the last time after time can inquires. Software system
7、design USES is the assembler language program, including timing interrupt service, show program, delay program, external interrupt service routine, etc. Key words : Stopwatch,SCM,LED Erection of Eigital Tube 第 1 章 绪论数字电子秒表是电器制造,自动化控制、国防、实验室及科研单位必不可少的仪器,它广泛应用于各种继电器、电磁开关,控制器、延时器、定时器等的时间测试。在现在的高端体育竞赛中,
8、随着运动员的水平不断提高,差距在不断缩小。很多体育竞赛对时间精度的要求越来越高,有时比赛冠亚军之间的差距仅仅只有几毫秒,因此就需要有较高精度,以及较低误差的秒表来记录比赛成绩。本设计采用 AT89C51 单片机的 T0 定时器/计数器定时和记数的原理,使秒表能精确的计时。使用中断系统来实现开始和暂停的功能。P0 口输出字形代码数据,P2 口的P2.02.5 口作列扫描位输出,而 P1.1、P1.6 、P3.2 、P3.3 分别接 4 个按钮型开关,使其分别控制暂停计时、查看上一次暂停的计录时间、停止计时和开始计时的功能,另外RET 复位键连接一个按钮型开关,使其能控制显示器显示归零,即复位。显
9、示电路由6 位共阴极 LED 数码管组成,通过 P0 口、P2 口以及 5 个按钮开关来控制秒表的计时与显示。根据以上设计思路就能够实现数字电子秒表的计时和查看上一次记录时间的功能。第 2 章 硬件设计2.1 单片机的选择2.1.1 AT89C51 单片机的介绍本 设 计 选 用 由 美 国 ATMEL 公 司 生 产 单 的 AT89C511。 AT89C51 是 一 种 带 4K字 节 FLASH 存 储 器 ( FPEROMFlash Programmable and Erasable Read Only Memory) 的 低 电 压 、 高 性 能 CMOS 8 位 微 处 理 器
10、。 AT89C51 是 一 种 带 2K 字 节 闪存 可 编 程 可 擦 除 只 读 存 储 器 的 单 片 机 。 单 片 机 的 可 擦 除 只 读 存 储 器 可 以 反 复 擦 除1000 次 。 该 器 件 采 用 ATMEL 高 密 度 非 易 失 存 储 器 制 造 技 术 制 造 , 与 工 业 标 准 的MCS-51 指 令 集 和 输 出 管 脚 相 兼 容 。 由 于 将 多 功 能 8 位 CPU 和 闪 烁 存 储 器 组 合 在单 个 芯 片 中 , ATMEL 的 AT89C51 是 一 种 高 效 微 控 制 器 , AT89C51 是 它 的 一 种 精简
11、版 本 。 AT89C51 单 片 机 为 很 多 嵌 入 式 控 制 系 统 提 供 了 一 种 灵 活 性 高 且 价 廉 的 方 案 。AT89C51 的主要特征: 与 MCS-51 兼容; 4K 字节可编程 FLASH 存储器; 寿命:1000 写/擦循环; 数据保留时间:10 年; 全静态工作:0Hz-24MHz; 三级程序存储器锁定; 1288 位内部 RAM; 32 可编程 I/O 线; 两个 16 位定时器/计数器; 5 个中断源; 可编程串行通道; 低功耗的闲置和掉电模式; 片内振荡器和时钟电路。2.1.2 单片机的外部结构由 于 AT89C51 单片机与 8051、80C5
12、1 完全兼容,所以为了介绍方便以下统一使用 8051 单片机进行介绍。8051 单片机采用 40 引脚 2的双列直插封装方式。引脚排列图和 40 条引脚说明 2如图 2.1 所示;图 2.1 8051 单片机的引脚图 Vss 接地 Vcc 正常操作时为+5 伏电源 XTAL1 内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。 XTAL2 内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到RST/VPD高跳变) ,将使单片机复位在 Vcc 掉电期间,此引脚可
13、接上备用电源,由 VPD 向内部提供备用电源,以保持内部 RAM 中的数据。 正常操作时为 ALE 功能(允许地址锁存)提供把地址的低字节锁OGALE/存到外部锁存器,ALE 引脚以不变的频率(振荡器频率的 1/6)周期性地发出正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。对于 EPROM 型单片机,在 EPROM 编程期间,此引脚接收编程脉冲( 功能) 。PROG 外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)PSEN期间, 在每个机器周期内两次有效。 同样可以驱动八 LSTTL 输入。SEN 、 为内部程序存储器和外部程序存储器选择端。当 为/VpA/ /Vp
14、EA高电平时,访问内部程序存储器,当 为低电平时,则访问外部程序存储器。对/VpA于 EPROM 型单片机,在 EPROM 编程期间,此引脚上加 21 伏 EPROM 编程电源(Vpp) 。 P0 口(P0.00.7)是一个 8 位漏极开路型双向 I/O 口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0 口能以吸收电流的方式驱动八个 LSTTL负载。 P1 口(P1.01.7)是一个带有内部提升电阻的 8 位准双向 I/O 口。能驱动(吸收或输出电流)四个 LSTTL 负载。 P2 口(P2.0P2.7)是一个带有内部提升电阻的 8 位准双向 I/O 口,在访问外部存储器时,它
15、输出高 8 位地址。P2 口可以驱动(吸收或输出电流 )四个 LSTTL 负载。 P3 口(P3.03.7)是一个带有内部提升电阻的 8 位准双向 I/O 口。能驱动(吸收或输出电流)四个 LSTTL 负载。 运算器的功能是进行算术运算和逻辑运算。可以对半字节(4 位) 、单字节等数据进行操作。例如能完成加、减、乘、除、加 1、减 1、BCD 码十进制调整、比较等算术运算和与、或、异或、求补、循环等逻辑操作,操作结果的状态信息送至状态寄存器。8051 运算器还包含有一个布尔处理器,用来处理位操作。 程序计数器 PC 用来存放即将要执行的指令地址,共 16 位,可对 64K 程序存储器直接寻址。
16、执行指令时,PC 内容的低 8 位经 P0 口输出,高 8 位经 P2 口输出。 指令寄存器是用作存放指令代码。CPU 执行指令时,由程序存储器中读取的指令代码送入指令寄存器,经译码后由定时与控制电路发出相应的控制信号,完成指令功能。2.2 单片机电路的设计2.2.1 方案设计本设计的目标是设计一个带有查看上一次计时的数字电子秒表,并且具有显示直观、精度高、读取方便等优点,在日常生活中能广泛的使用。本设计用单片机组成数字电子秒表,力求结构简单、计时精度高为目标。硬件电路设计主要有主控制器,计时器、显示电路、复位电路、开始计时、暂停计时、停止计时电路等。使用 AT89C51 单片机做主控制器,显
17、示电路采用共阴极 LED八段数码管。本设计利用 AT89C51 单片机的定时器/计数器定时和记数的原理,使其能精确计时。利用中断系统使其能实现开始暂停的功能。P0 口的 P0.00.7 输出段码字形数据,P2 口的 P2.02.5 口作列扫描位输出,而 P1.1、P1.6 、P3.2 、P3.3 分别接 4 个按钮型开关,使其分别控制暂停计时、查看上一次暂停的计录时间、停止计时和开始计时的功能,另外 RET 复位件连接一个按钮型开关,使其能控制显示器显示归零,即复位。显示电路由 6 位共阴极 LED 数码管组成,通过 P0 口、P2 口以及 5 个按钮开关来控制显示。电路原理图设计最基本的要求
18、是正确性,布局合理,在保证正确性和布局合理的前提下要求设计更美观。硬件电路布局如图 2.2 所示;控制开关 AT89C51单片机6 位数码管位驱动图 2.2 数字秒表硬件电路布局原理图根据要求知道秒表设计主要实现的功能是计时和显示。本设计中,数码管显示的数据存放在内存单元 79H7EH 中。其中 79H 存放十毫秒位数据,7AH 存放百毫秒位数据,7BH 存放秒位数据,7CH 存放十秒位数据,7DH 存放分位数据,7EH 存放十分位数据,每一个地址单元内存放的数据均为十进制 BCD 码。由于采用动态扫描电路实现数据显示功能,显示所用的段码十进制 BCD 码数据存放在 RAM 表中。显示时,取出 79H7EH 中的一个地址中的数据,然后查得对应的显示用段码,并从 P0 口输出该段码,P2 口将对应的数码管点亮,从而显示该地址单元的数据值,如此循环取地址中的数据进行显示,达到动态显示。将上一次暂停显示的时间存放在 59H5EH 内存单元中,数据存放规则和79H7EH 一样。与 79H7EH 存储区不同的是:59H5EH 存储的内容为数字秒表上一次计时显示的时间,而 79H7EH 为当前计时时间存储区。