51单片机4位抢答器_倒计时可调仿真设计

51单片机4位抢答器_倒计时可调仿真设计

目录标题

  • 51单片机4位抢答器_倒计时可调仿真设计
    • 基本功能
      • 课程设计目的
      • 任务和要求
      • 系统结构图
    • 理论分析与计算
    • 硬件设计
      • AT89C51最小系统
      • 键盘模块
      • 蜂鸣器模块
    • 软件设计
      • 主程序
    • 仿真图
    • 设计 告
    • 资料清单

(程序+proteus仿真+ 告)

Proteus仿真版本:proteus 7.8

程序编译器:keil 4/keil 5

编程语言:C语言

设计编 :Q001

基本功能

以单片机为核心,设计一个4位竞赛抢答器:同时供4名选手或4个代表队比赛,分别用4个按钮S0~S4表示。

1.设置一个系统清除和抢答控制开关S,开关由主持人控制。

2.抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编 ,并在优先抢答选手的编 一直保持到主持人将系统清除为止。

3.抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如20秒)。

4.当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0.5s左右。

参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编 和抢答的时间,并保持到主持人将系统清除为止。

5.如果在主持人启动”开始”键前抢答 ,抢答无效。且显示器上会显示抢答选手编 。

6.如果定时时间已到,无人抢答,本次抢答无效,系统 警并禁止抢答,定时显示器上显示00。

课程设计目的

(1) 综合所学的单片机原理及接口技术等课程的理论知识完成本课程设计;

(2) 学习并掌握基本电路设计与使用方法,单片机的编程与应用方法;

(3) 提高综合分析、解决实际问题的能力。

任务和要求

本设计是以抢答为出发点。考虑到依需设定限时回答的功能,利用AT89C51单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,发光二极管和蜂鸣器发出提示。同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;在软件中还应用了外部中断,通过中断解除抢答的锁存,似的设计更加灵活,实用性更强。

本设计主要设计指标:

(1) 按键输入模块,包括主持人时间加,时间减,开始抢答,新一轮4个按键和选手1 到4 共抢4答按键;

(2) 显示模块,可以抢答实现倒计时和显示抢答选手编 。

(3) 蜂鸣器模块,用于倒计时提醒,倒计时开始后发出短暂的声响,声响持续的时间为0.5s左右。

系统结构图

图2 AT89C51最小系统

*3**.2* *显示模块*

本次设计采用八段数码管显示,是四位一体共阴极数码管,由四个八段数码管集成,高电平点亮。在显示上我们通常采用两种方法:一种是静态显示,一种是动态显示。

静态显示是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态显示的优点是编程简单,显示亮度高,缺点是占用I/O端口多,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

LED数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态显示是将所有数码管的8个显示笔划”a,b,c,d,e,f,g,dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态显示。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,但能够节省大量的I/O端口,而且功耗更低。故本次设计采用动态显示方法。其原理图如图3所示。

图4 显示电路驱动电路

键盘模块

键盘是人机交互的接口,本设计中,我们采用独立键盘。按钮需要12个,分别为4位抢答按键、开始抢答键、新一轮按键、抢答时间加键和抢答时间减键。当按键按下,与主控芯片连接的端口被降为低电平,按键松开则也升为高电平。按键采用的是Tack Switch按钮开关,它具有自动恢复的功能。当我们按下按钮时,其中的接点接通,放开按钮后,接点恢复为切断。虽然Tack Switch有4个引脚,但实际上,其内部只有一对a接点,即其中两个引脚是内部相连通的,而另外两个引脚内部也是相连通的。

本设计中12个按键实现了抢答,时间调节等功能,独立按键的引入使得体现了本设计的人性化,智能化,功能的强大。其电路分为主持人部分和选手部分。分别实现了控制、调节功能和抢答功能。其电路图如图4所示。

图5 蜂鸣器电路

软件设计

图6 系统流程框图

根据系统软件设计要求将软件划分为:主程序、显示子程序、按键子程序、蜂鸣器子程序

主程序完成外部中断初始化、定时器初始化、蜂鸣器模块初始化。主程序扫描主持人不断扫描按键,进行对应的操作。

主程序

进入主程序后,显示显示预设的倒计时数字20,程序扫描主持人按键倒计时加减键和开始按键。按下开始按键后,倒计时开始工作,实时刷新倒计时数字,每倒计时1秒蜂鸣器beep引脚拉低0.5秒,蜂鸣器短鸣0.5秒。在扫描到选手按下按键后,倒计时定时器停止工作,显示选手编 和按下抢答键的时间。

主要(关键)代码:

此段程序是完成外部中断初始化、定时器初始化、蜂鸣器模块初始化。完成后进入大循环。

这段函数完成了倒计时的显示和扫描是否开始倒计时。在没有开始抢答时,选手按下按键会显示选手编 和清零时间,一起防止选手抢答。开始抢答后,标志位flag变为1。开始执行按键扫描函数check2();

/p>

假如按键1按下,会显示选手编 。同时程序会卡在while(m);循环。此时除了新一轮按键之外的任何按键都系统没有任何变化。

新一轮按键是系统复位,即使程序一直在执行while(m)循环,按下按键后,程序会执行一次硬件复位,将变量清零,函数重新执行按键扫描。

仿真图

设计 告

资料下载链接

文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览113091 人正在系统学习中 嘉盛单片机

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年7月27日
下一篇 2022年7月27日

相关推荐