【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;

}

}

}

}

}

}

}

}

}

}

五、实验现象

演示视频:

相关推荐
Chen不旧7 分钟前
Java模拟死锁
java·开发语言·synchronized·reentrantlock·死锁
菩提树下的凡夫16 分钟前
如何将python的程序py文件转换为exe程序
开发语言·python
萧曵 丶18 分钟前
Java 安全的单例模式详解
java·开发语言·单例模式
ACP广源盛1392462567321 分钟前
GSV2016@ACP#2016产品规格参数详解及产品应用场景分享
单片机·嵌入式硬件·计算机外设·音视频
youcans_21 分钟前
【STM32-MBD】(10)基于 STM32 的处理器在环仿真(PIL)
stm32·单片机·嵌入式硬件·simulink·mbd
superman超哥23 分钟前
Rust 错误处理模式:Result、?运算符与 anyhow 的最佳实践
开发语言·后端·rust·运算符·anyhow·rust 错误处理
lly20240624 分钟前
Web 品质样式表
开发语言
Wang's Blog24 分钟前
Nodejs-HardCore: 模块管理与I/O操作详解
开发语言·nodejs
微爱帮监所写信寄信25 分钟前
微爱帮监狱寄信写信小程序PHP底层优化框架
java·开发语言·数据库·spring·微信·php·mybatis
lly20240627 分钟前
R 语言注释指南
开发语言