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

简介: 1、主持人按下抢答开始按键,抢答者才可以开始抢答,数码管抢答倒计时20S。2、抢答者按下按键,数码管显示抢答者的编号。3、可以通过按键修改倒计时时间。

基于51单片机的简易抢答器

7255f2c61c39098f82bd551f3e0369c.png

具体功能:

1、主持人按下抢答开始按键,抢答者才可以开始抢答,数码管抢答倒计时20S。

2、抢答者按下按键,数码管显示抢答者的编号。

3、可以通过按键修改倒计时时间。


部分程序代码:


#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define  max 20
uchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};  //共阴数码管段码
sbit d1=P2^4;
sbit d2=P2^5;
sbit x1=P2^6;
sbit x2=P2^7;
sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
sbit k5=P1^4;
sbit k6=P1^5;
sbit k7=P1^6;
sbit k8=P1^7;
sbit zk1=P2^0;
sbit zk2=P2^1;
sbit buz=P2^2;
unsigned char d_num,cnt;
uchar x_flag;
void jianpan();
void init(void)
{
   TMOD=0X01;
   TL0=0XB0; 
   TH0=0X3C;
//   TR0=1;    
   ET0=1;     
   EA=1;
   d_num=max;
}
void delay(uint xms)
{
   uint x,y;
   for(x=xms;x>0;x--)
    for(y=110;y>0;y--);
}
void display()
{
  d1=0;  //位选端;
  P0=tab[d_num/10];//显示倒计时
  delay(5);
  d1=1;
  d2=0;
  P0=tab[d_num%10];
  delay(5);
  d2=1;
  x1=0; //位选端
  P0=tab[x_flag/10];//显示选手号
  delay(5);
  x1=1;
  x2=0;
  P0=tab[x_flag%10];
  delay(5);
  x2=1;
}
void main()
{ init();
  while(1)
  { 
   jianpan();
   display();
  } 
}
void timer0(void) interrupt 1
{ 
   TL0=0XB0; //重装初值
   TH0=0X3C; 
   cnt++;
   if(cnt==20)//1 秒时间到
    {
       cnt=0;//计数清零
    d_num--;
    if(d_num==0)
   {
      d_num=max;
      TR0=0;  //关闭所有操作
          }
    buz=0;  
    delay(20);
    buz=1;
     }   
}



仿真原理图:

e5b7b25fbaed4e95bf614d0a39781d7.png



以下可以忽略不看!


一、复位电路的用途:单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。


二、复位电路的工作原理在书本上有介绍,51单片机要复位只需要在第9引脚接个高电平持续2US就可以实现,那这个过程是如何实现的呢?在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。

开机的时候为什么会复位:在电路图中,电容的的大小是10uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。也就是说在单片机启动的0.1S内,电容两端的电压时在03.5V增加。这个时候10K电阻两端的电压为从51.5V减少(串联电路各处电压之和为总电压)。所以在0.1S内,RST引脚所接收到的电压是5V~1.5V。在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。


按键按下的时候为什么会复位:在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。


相关文章
基于51单片机的8八路抢答器设计
(1)主持人进行复位,依次显示8位选手的分数,8位选手分数显示结束后主持人方可按下开始按键; (2)主持人按下抢答开始按键,抢答者才可以开始抢答,数码管抢答倒计时10S; (3)抢答者按下按键,数码管显示抢答者的编号和答题剩余时间倒计时20S; (4)在20S内,抢答者答题正确,主持人按下加分按键,分数加一,答错主持人按下减分按键,分数减一(默认抢答者的初始分数为60)。
189 0
|
芯片
基于单片机的抢答器设计 proteus仿真资料
基于单片机的抢答器设计 proteus仿真资料
107 0
基于单片机的抢答器设计 proteus仿真资料
|
芯片
基于单片机的八路抢答器设计
基于单片机的八路抢答器设计
176 0
基于单片机的八路抢答器设计
|
21天前
|
编译器 C语言 开发者
单片机原理与应用:探索微型计算机世界
单片机原理与应用:探索微型计算机世界
24 1
|
21天前
|
数据采集 数据处理 C语言
单片机:探索其原理、应用与编程实践
单片机:探索其原理、应用与编程实践
24 1
|
21天前
|
物联网
STC51单片机-实验开发装置仿真-物联网应用系统设计
STC51单片机-实验开发装置仿真-物联网应用系统设计
67 0
|
21天前
|
物联网
STC51单片机-控制LED闪亮的仿真-物联网应用系统设计
STC51单片机-控制LED闪亮的仿真-物联网应用系统设计
47 0
|
21天前
|
芯片
AT89S52单片机的最小应用系统
AT89S52单片机的最小应用系统
16 0
|
21天前
|
存储 芯片
【期末不挂科-单片机考前速过系列P11】(第十一章:15题速过串行口的工作原理和应用)经典例题盘点(带图解析)
【期末不挂科-单片机考前速过系列P11】(第十一章:15题速过串行口的工作原理和应用)经典例题盘点(带图解析)