I
4 位竞赛抢答器的设计
【摘 要】随着科学技术的发展和普及,各种各样的竞赛越来越多,其中抢答器的作
用也越来越重要。本文设计出以 AT89C51 单片机为核心的 4 位抢答器,采用了数字显示器
直接指示,自动锁存显示结果,并自动复位的设计思想,它能根据不同的抢答输入信号,
经过单片机的控制处理并产生不同的与输入信号相对应的输出信号,最后通过 LED 数码管
显示相应的路数,充分利用了单片机系统结构简单、功能强大、可靠性好、实用性强的特
点。
【关键词】抢答器;AT89C51;LED 数码管显示;定时/计数器;
II
目 录
1 概述................................................................................................................................................................3
1.1 课程设计目的 .......................................................................................................................................3
1.2 任务和要求 ...........................................................................................................................................3
1.3 系统结构图 ...........................................................................................................................................4
2 理论分析与计算 ............................................................................................................................................4
3 硬件设计........................................................................................................................................................4
3.1 AT89C51 最小系统 ................................................................................................................................5
3.2 显示模块 ...............................................................................................................................................6
3.3 键盘模块 ................................................................................................................................................7
3.4 蜂鸣器模块 ............................................................................................................................................8
4 软件设计........................................................................................................................................................9
4.1 主程序 .................................................................................................................................................10
4.2 按键扫描子函数 .................................................................................................................................12
4.3 显示子程序 ..........................................................................................................................................13
4.4 蜂鸣器提示子函数 ..............................................................................................................................14
5 PROTEUS EDA 仿真测试..............................................................................................................................15
5.1 PROTEUS EDA 仿真图绘制 ..................................................................................................................15
5.2 测试 .....................................................................................................................................................15
6 总结以及展望 ..............................................................................................................................................18
参考文献............................................................................................................................................................19
3
1 概述
1.1 课程设计目的
(1) 综合所学的单片机原理及接口技术等课程的理论知识完成本课程设计;
(2) 学习并掌握基本电路设计与使用方法,单片机的编程与应用方法;
(3) 提高综合分析、解决实际问题的能力。
1.2 任务和要求
本设计是以抢答为出发点。考虑到依需设定限时回答的功能,利用 AT89C51
单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的
原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码
管能够正确地显示时间。用开关做键盘输出,发光二极管和蜂鸣器发出提示。同
时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为
无效;在软件中还应用了外部中断,通过中断解除抢答的锁存,似的设计更加灵
活,实用性更强。
本设计主要设计指标:
(1) 按键输入模块,包括主持人时间加,时间减,开始抢答,新一轮 4 个
按键和选手 1 号到 4 号共抢 4 答按键;
(2) 显示模块,可以抢答实现倒计时和显示抢答选手编号。
(3) 蜂鸣器模块,用于倒计时提醒,倒计时开始后发出短暂的声响,声响
持续的时间为 0.5s 左右。
4
1.3 系统结构图
图 1 系统结构图
主持人控制抢答器时间加减和开始,设置好时间或者使用默认时间后,按下
开始按键即开始倒计时,每倒计时一秒蜂鸣器短暂鸣 0.5 提醒选手。选手在开始
抢答后按下各自的按键抢答,一旦按下会显示选手编号。一轮抢答结束后,主持
人按下新一轮即可进入下一轮的抢答。
2 理论分析与计算
倒计时主要应用了 51 单片机的定时器,本设计应用定时器产生 50ms 定时。
以 12Mhz 的晶振来说,机器周期是 1us,计满 TH0、TL0 就需要 216-1 个数,再
来一个数就“溢出”产生中断,一次溢出也就是 65536us,约等于 65.5ms,假若
定时 50ms 需要一个预装值(初值),总值-需要值=预装值。预装后,定时器从预
装值开始加值,定时器溢出中断后,会重新从预装值开始加值加到 50ms 就再产
生 中 断 , 从 而 达 到 了 定 时 的 目 的 。 如 果 要 定 时 1s 就可 以 让 定 时 器 中 断
1000ms/50ms=20 次。
3 硬件设计
根据系统结构图,系统由:AT89C51 最小系统、显示模块、按键模块和蜂鸣
5
器模块组成。
3.1 AT89C51 最小系统
AT89C51 是美国 ATMEL 公司生产的低电压,高性能 CMOS4 位单片机,片内含 4k
bytes 的可反复擦写的只读程序存储器和 128 bytes 的随机存取数据存储器,期
间采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系
统,片内置通用 4 位中央处理器和 Flash 存储单元,功能强大的 AT89C51 单片机
可灵活应用于各种控制领域。
AT89C51 提供以下标准功能:4k 字节 Flash 闪速存储器,128 字节内部 RAM,
32 个 I/O 口线,两个 16 位定时/计数器,一个 5 向量两级中断结构,一个全双
工串行通信口,片内振荡器及时钟电路。同时,AT89C51 可降至 0Hz 的静态逻辑
操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许
RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内
容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
本系统中央控制器采用的单片机 AT89C51,复位电路采用上电复位电路。外
接的晶振为 12MHz 晶振。
图 2 AT89C51 最小系统