基于51单片机的抢答器设计

这篇具有很好参考价值的文章主要介绍了基于51单片机的抢答器设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、设计任务

基于单片机的抢答器的设计,实现抢答器的基本功能。

二、性能指标要求

1. 需要自己设计电路并焊接电路板。

2.有一个主持人控制开关和6路抢答按扭,当主持人允许抢答时才能进行抢答操作,并用一个数码管显示抢答选手的号码,同时其他选手不能再抢答。

3.当主持人允许抢答后倒计时5秒时间,在这5秒内抢答有效,过后就不能进行抢答了。

4.电路上要加个蜂鸣器的电路,当有选手抢答时蜂鸣器响一下。

5.当有选手抢答后,进行倒计时20秒作为选手回答问题时间,用两个数码管显示,倒计时时间到时有声光提示。

6.画电路板时要增加下载接口,方便调试程序。

7.扩展功能(选做)

用按键可设置倒计时的时间,范围在5秒到30秒之间。

三、设计思路及设计框图

1.设计思路

本次设计是基于单片机STC89C52芯片来扩展的抢答器。

首先先设置支持人开始抢答按键,在芯片的P1^6脚处接入按键,按键按下,蜂鸣器响来实现这个抢答开始信号。在主持人开始允许抢答时,六位选手连接的单片机从P1^0—P1^5口的任意一位选手进行抢答,抢答时间为5s,抢答后设定回答问题时间为5s—30s,倒计时5s时LED灯亮,并且蜂鸣器响。所抢答的选手号码、抢答时间与回答时间均将字节送入数码管中显示。用两个按键来掌控回答问题的时间,时间加计数与时间减计数。当需要重新进行抢答时则按下与芯片的RST段(即9脚)连接的按键则可以实现。所抢答的选手号码、抢答时间与回答时间均将字节送入数码管中显示。P0口接的是一个四位一体共阴数码管,P2.4、P2.2、P2.1、P2.0作为数码管的位选。由于单片机自身IO口的驱动能力不能让蜂鸣器发出声音,因此要通过三极管NPN来放大电流,这样才能使蜂鸣器发出声音。

总体设计框图:

基于51单片机的抢答器设计

 电路原理图:

基于51单片机的抢答器设计

部分程序:

#include <reg52.h>
sbit BEEP = P2^0;    
sbit LED1 = P2^3;    
sbit LED2 = P2^2;    
sbit LED3 = P2^1;    

#define duanPore    P0        //数码管段控制端口,高电平有效
sbit DIG1 = P2^4;            
sbit DIG2 = P2^5;            
sbit DIG3 = P2^6;            
sbit DIG4 = P2^7;            

sbit KEY1 = P1^0;        
sbit KEY2 = P1^1;        
sbit KEY3 = P1^2;        
sbit KEY4 = P1^3;        
sbit KEY5 = P1^4;        
sbit KEY6 = P1^5;        
sbit KEY7 = P3^2;        
sbit KEY8 = P3^3;        

unsigned char code tab_duan[19] = 
{
    0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,    
    0x77,0x7c,0x39,0x5e,0x79,0x71,        
    0x40,0x00,0x48                        
};
unsigned char dat_buf[4] = {17, 17, 0, 5};    
int time = 5, time1 = 5, time2 = 20;    
unsigned char i = 0;
unsigned int count = 0;        
bit flag_lock = 1;             

void DelayMs(unsigned int ms);        //延时函数
void dig_scan(unsigned char *dat);  //数码管显示扫描
unsigned char KeyScan(void);        //独立按键扫描
void InitTimer0(void);               //定时器0初始化
void alarm(void);                   //报警函数
void AnswerTask(void);               //抢答任务
void SetTime(void);               //设置倒计时时间
    
void main(void)
{
    BEEP = 0;            
    LED1 = 1;
    InitTimer0();        
    time = time1;        
    while(1)
    {
        if(KeyScan() == 7)    
        {
            alarm();        
            AnswerTask();    
        }
        if(KeyScan() == 8)    
        {
            alarm();        
            SetTime();        
        }

        dat_buf[0] = 17;
        dat_buf[1] = 17;
        dat_buf[2] = time / 10;    
        dat_buf[3] = time % 10;    
        dig_scan(dat_buf);        
    }
}
 

资料内容:

基于51单片机的抢答器设计

需要全部资料可从我的里资源下载。

基于51单片机的抢答器设计

 基于51单片机的抢答器设计

 也可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。

纷传点击用微信打开即可,过程有点繁琐请见谅。文章来源地址https://www.toymoban.com/news/detail-498693.html

到了这里,关于基于51单片机的抢答器设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 51单片机8位抢答器程序设计与原理图搭建

    原理图整体 本设计利用51单片机中断函数来查询抢答位置,除了一般抢答器用到的基本元件外,还用到了74LS30(八路与非门)与74LS04(非门)。下面对原理图进行分块介绍 抢答按钮部分 (注意非门接到AT89C52的P3.3 INT1触发) led灯连接部分  (采用灌电流的形式,注意P0口上拉

    2024年02月08日
    浏览(32)
  • 单片机设计_8路抢答器(AT89C51)

    想要更多项目私wo!!!         此电路由AT89C51最小系统、四位数码管、蜂鸣器电路和按键模块组成。 运行原理:         该抢答器电路可同时进行八路优先抢答。按键按下后,蜂鸣器发声,同时数码管 显示优先抢答者的号码,抢答成功后,再按按键,显示不会改变,除非

    2024年02月11日
    浏览(36)
  • 基于单片机的八路抢答器的设计

    1.设计要求: 1.以单片机为核心,设计一个八位竞赛抢答器:同时供八名选手或八个代表队比赛,分别用八个按钮S0~S7表示。 2.设置一个系统清除和抢答控制开关S,开关由主持人控制。 3.抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号

    2024年02月07日
    浏览(30)
  • 基于51单片机8位竞赛抢答器_倒计时可调+LED跑马灯

    (程序+proteus仿真+报告) Proteus仿真版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:Q006 资料下载链接 1、以单片机位核心,设计一个8位抢答器:同时供8名选手比赛,分别用6个按键表示; 2、无人抢答时,8个跑马灯循环点亮,数码管显示00; 3、设置一个

    2024年02月09日
    浏览(26)
  • 基于单片机16路多路抢答器仿真系统设计

    ** 单片机设计介绍,基于单片机16路多路抢答器仿真系统设计   基于单片机16路多路抢答器仿真系统的设计概要主要涵盖硬件设计、软件编程以及功能实现等方面。以下是针对该设计的详细概述: 一、系统概述 该设计旨在开发一个基于单片机的16路多路抢答器仿真系统,能

    2024年04月27日
    浏览(27)
  • 基于AVR128单片机抢答器proteus仿真设计

    一、系统方案 二、硬件设计 原理图如下: 三、单片机软件设计 1、首先是系统初始化 void timer0_init() //定时器初始化 { TCCR0=0x07; //普通模式,OC0不输出,1024分频 TCNT0=f_count; //初值,定时为10ms TIFR=0x01; //清中断标志位 TIMSK=0x01; //使能定时器0溢出中断 SREG|=0x80; //开启全局中断 }

    2024年02月11日
    浏览(34)
  • 基于C语言的单片机八路抢答器课程设计

    1 、系统总体方案设计 本系统由硬件系统和软件系统组成。 硬件系统包括按键控制模块、中央处理AT89C51系统、指示灯显示模块、LED数码管显示模块和扬声器提示模块。 软件系统包括主程序、定时器0中断服务程序、定时器1中断服务程序、延时程序、按键程序和显示程序。 为

    2024年02月04日
    浏览(34)
  • STM32单片机的抢答器设计

    一.硬件方案          以STM32单片机为核心的八路抢答器采用了数字显示器LCD1602,自动锁存显示结果设计思想,它能根据不同的抢答输入信号,经过单片机的控制处理并产生不同的与输入信号相对应的输出信号,最后通过LCD1602显示,即使两组的抢答时间相差几微秒,也可分

    2024年02月11日
    浏览(29)
  • proteus 仿真 at89c51 单片机八位抢答器,文末附源文件

    在网上没能容易地直接找到仿真文件,所以我把这个上传,希望对各位有所帮助。 倒是有不少好心人给出了图文教学和源代码,对他们表示感谢。我也是用这位老哥的代码和电路稍作了修改,感谢分享。 起初 led 数码管是熄灭的,按下 P2.1 的按钮 会将它们点亮,开始抢答。

    2024年02月09日
    浏览(32)
  • 【单片机项目实训】八路抢答器

    将单片机项目实训——8路抢答器分享出来,如有不足,敬请指出。 【实验图片】  【实验视频】 【项目实训】8路抢答器 目录 一、设计要求 二、方案选择 三、硬件电路设计 五、其他图片 六、资料链接 七、关于作者 八、后记         设计一个共8名选手参加的8路抢答器。

    2024年02月11日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包