【51单片机】【protues仿真】 基于51单片机八路抢答器系统

目录

一、主要功能

二、使用步骤

三、硬件资源

四、软件设计

五、实验现象

一、主要功能

1、数码管显示

2、主持人按下开始,8位选手开始抢答

3、可以进行简单的加减乘除运算

4、倒计时最后5秒蜂鸣器会滴滴提醒

5、选手抢答成功,数码管会显示其号码

6、按下清楚按键进入新一轮

7、抢答成功后蜂鸣器响2秒

二、使用步骤

基于51单片机的八路抢答器设计支持8路独立抢答输入,主持人通过"开始"键启动抢答流程,抢答成功后锁定其他输入。数码管实时显示抢答者编号,同时对应LED灯点亮。

三、硬件资源

1、51单片机核心模块

2、按键模块

3、LED指示灯模块

4、继电器模块

5、数码管显示模块

四、软件设计

#include<reg51.h>

#include<intrins.h>

sbit smg1=P2^4;

sbit smg2=P2^6;

sbit smg3=P2^7;

sbit smg4=P2^5;

sbit keyks=P2^2;

sbit keytz=P2^1;

sbit keyqc=P2^0;

sbit key1=P1^4;

sbit key2=P1^5;

sbit key3=P1^6;

sbit key4=P1^7;

sbit key5=P3^4;

sbit key6=P3^5;

sbit key7=P3^6;

sbit key8=P3^7;

sbit spk=P1^0;

int djs=60,js=0;

unsigned char flag=0;

int table[]={0x5f,0x44,0x9d,0xd5,0xc6,0xd3,0xdb,0x45,0xdf,0xd7,0x80};

void main()

{

int djs1=60;

Timer0_init();

spk=1;

djs=60;

while(1)

{

LOOP1: djs=djs1;

djsxs22();

if(key1==0)

{

delayms(3);

if(key1==0)

{

while(!key1);

djs=60;

while(1)

{

TR0=0;

djsxs();

if(key2==0)

{

delayms(8);

if(key2==0)

{

do

{

while(!key2);

delayms(5);

}

while(key2!=1);

djs++;

djs1=djs;

}

}

if(key3==0)

{

delayms(8);

if(key3==0)

{

do

{

while(!key3);

delayms(5);

}

while(key3!=1);

djs--;

djs1=djs;

}

}

if(key1==0)

{

delayms(3);

if(key1==0)

{

while(!key1);

goto LOOP1;

}

}

}

}

}

if(keyks==0)

{

delayms(3);

if(keyks==0)

{

while(!keyks);

TR0=1;

while(1)

{

djsxs();

if(keytz==0)

{

delayms(3);

if(keytz==0)

{

while(!keytz);

{

TR0=0;

flag=0;

spk=1;

}

}

}

if(keyks==0)

{

delayms(3);

if(keyks==0)

{

while(!keyks);

TR0=1;

}

}

if((key1==0)&&(TR0==1))

{ spk=0;

delayms(3);

if(key1==0)

{

while(!key1);

{

spk=1;

flag=0;

}

while(1)

{

TR0=0;

djsxs1();

djsxs30();

djsxs();

if(keyqc==0)

{

delayms(3);

if(keyqc==0)

{

while(!keyqc);

goto LOOP1;

}

}

}

}

}

if((key2==0)&&(TR0==1))

{ spk=0;

delayms(3);

if(key2==0)

{

while(!key2);

{

spk=1;

flag=0;

while(1)

{

TR0=0;

djsxs2();

djsxs30();

djsxs();

if(keyqc==0)

{

delayms(3);

if(keyqc==0)

{

while(!keyqc);

goto LOOP1;

}

}

}

}

}

if((key3==0)&&(TR0==1))

{ spk=0;

delayms(3);

if(key3==0)

{

while(!key3);

{

spk=1;

flag=0;

while(1)

{

TR0=0;

djsxs3();

djsxs30();

djsxs();

if(keyqc==0)

{

delayms(3);

if(keyqc==0)

{

while(!keyqc);

goto LOOP1;

}

}

}

}

}

if((key4==0)&&(TR0==1))

{ spk=0;

delayms(3);

if(key4==0)

{

while(!key4);

{

spk=1;

flag=0;

}

while(1)

{

TR0=0;

djsxs4();

djsxs30();

djsxs();

if(keyqc==0)

{

delayms(3);

if(keyqc==0)

{

while(!keyqc);

goto LOOP1;

}

}

}

}

}

if((key5==0)&&(TR0==1))

{ spk=0;

delayms(3);

if(key5==0)

{

while(!key5);

{

spk=1;

flag=0;

}

while(1)

{

TR0=0;

djsxs5();

djsxs30();

djsxs();

if(keyqc==0)

{

delayms(3);

if(keyqc==0)

{

while(!keyqc);

goto LOOP1;

}

}

}

}

}

if((key6==0)&&(TR0==1))

{ spk=0;

delayms(3);

if(key6==0)

{

while(!key6);

{

spk=1;

flag=0;

}

while(1)

{

TR0=0;

djsxs6();

djsxs30();

djsxs();

if(keyqc==0)

{

delayms(3);

if(keyqc==0)

{

while(!keyqc);

goto LOOP1;

}

}

}

}

}

if((key7==0)&&(TR0==1))

{ spk=0;

delayms(3);

if(key7==0)

{

while(!key7);

{

spk=1;

flag=0;

}

while(1)

{

TR0=0;

djsxs7();

djsxs30();

djsxs();

if(keyqc==0)

{

delayms(3);

if(keyqc==0)

{

while(!keyqc);

goto LOOP1;

}

}

}

}

}

if((key8==0)&&(TR0==1))

{ spk=0;

delayms(3);

if(key8==0)

{

while(!key8);

{

spk=1;

flag=0;

}

while(1)

{

TR0=0;

djsxs8();

djsxs30();

djsxs();

if(keyqc==0)

{

delayms(3);

if(keyqc==0)

{

while(!keyqc);

goto LOOP1;

}

}

}

}

}

}

}

}

}

}

五、实验现象

演示视频:

相关推荐
数据知道1 天前
claw-code 源码分析:大型移植的测试哲学——如何用 unittest 门禁守住「诚实未完成」的口碑?
开发语言·python·ai·claude code·claw code
LCMICRO-133108477461 天前
长芯微LPC556D1完全P2P替代DAC8830,是引脚兼容的16位数模转换器,该系列产品为单通道、低功耗、缓冲电压输出型DAC
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·电压输出型dac
小堃学编程1 天前
【项目实战】基于protobuf的发布订阅式消息队列(2)—— 线程池
java·开发语言
forAllforMe1 天前
如何用定时器PWM产生SPWM?--电机驱动控制
嵌入式硬件
每日任务(希望进OD版)1 天前
线性DP、区间DP
开发语言·数据结构·c++·算法·动态规划
怨言.1 天前
Java内部类详解:从基础概念到实战应用(附案例)
java·开发语言
AC赳赳老秦1 天前
OpenClaw image-processing技能实操:批量抠图、图片尺寸调整,适配办公需求
开发语言·前端·人工智能·python·深度学习·机器学习·openclaw
XiYang-DING1 天前
【Java】 Java 集合框架
java·开发语言
charlie1145141911 天前
嵌入式C++教程实战之Linux下的单片机编程(9):HAL时钟使能 —— 不开时钟,外设就是一坨睡死的硅
linux·开发语言·c++·单片机·嵌入式硬件·c
diving deep1 天前
从零构建大模型--实操--搭建python环境
开发语言·python