想要更多项目私wo!!!
一、电路设计
此电路由AT89C51最小系统、四位数码管、蜂鸣器电路和按键模块组成。
运行原理:
该抢答器电路可同时进行八路优先抢答。按键按下后,蜂鸣器发声,同时数码管
显示优先抢答者的号码,抢答成功后,再按按键,显示不会改变,除非按主持人键。
复位后,显示清零,可继续抢答。
二、运行效果图
文章来源:https://www.toymoban.com/news/detail-505397.html
文章来源地址https://www.toymoban.com/news/detail-505397.html
三、部分代码
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
//按键扫描,判断哪个人抢答
void key()
{
uint n, flag = 1;
n=2200;
display(n);
keep=1;
if(key2==0)
{
delay(5);
if(key2==0)
{
while(1)
{
n=2202;
display(n);
if(flag)
{
keep=0; //开启蜂鸣器
delay(80);
keep=1; // 关闭蜂鸣器
delay(80);
flag = 0;
}
if(key9==0)
{
delay(5);
if(key9==0)
{
keep=1;
n=2200;
display(n);
while(1)return;
}
while(!key9);
delay(5);
while(1);
}
}
}
while(!key2);
delay(5);
}
if(key3==0)
{
delay(5);
if(key3==0)
{
while(1)
{
n=2203;
display(n);
if(flag)
{
keep=0; //开启蜂鸣器
delay(80);
keep=1; // 关闭蜂鸣器
delay(80);
flag = 0;
}
if(key9==0)
{
delay(5);
if(key9==0)
{
keep=1;
n=2200;
display(n);
while(1)return;
}
while(!key9);
delay(5);
while(1);
}
}
}
while(!key3);
delay(5);
}
if(key4==0)
{
delay(5);
if(key4==0)
{
while(1)
{
n=2204;
display(n);
if(flag)
{
keep=0; //开启蜂鸣器
delay(80);
keep=1; // 关闭蜂鸣器
delay(80);
flag = 0;
}
if(key9==0)
{
delay(5);
if(key9==0)
{
keep=1;
n=2200;
display(n);
while(1)return;
}
while(!key9);
delay(5);
while(1);
}
}
}
while(!key4);
delay(5);
}
if(key5==0)
{
delay(5);
if(key5==0)
{
while(1)
{
n=2205;
display(n);
if(flag)
{
keep=0; //开启蜂鸣器
delay(80);
keep=1; // 关闭蜂鸣器
delay(80);
flag = 0;
}
if(key9==0)
{
delay(5);
if(key9==0)
{
keep=1;
n=2200;
display(n);
while(1)return;
}
while(!key9);
delay(5);
while(1);
}
}
}
while(!key5);
delay(5);
}
if(key6==0)
{
delay(5);
if(key6==0)
{
while(1)
{
n=2206;
display(n);
if(flag)
{
keep=0; //开启蜂鸣器
delay(80);
keep=1; // 关闭蜂鸣器
delay(80);
flag = 0;
}
if(key9==0)
{
delay(5);
if(key9==0)
{
keep=1;
n=2200;
display(n);
while(1)return;
}
while(!key9);
delay(5);
while(1);
}
}
}
while(!key6);
delay(5);
}
if(key7==0)
{
delay(5);
if(key7==0)
{
while(1)
{
n=2207;
display(n);
if(flag)
{
keep=0; //开启蜂鸣器
delay(80);
keep=1; // 关闭蜂鸣器
delay(80);
flag = 0;
}
if(key9==0)
{
delay(5);
if(key9==0)
{
keep=1;
n=2200;
display(n);
while(1)return;
}
while(!key9);
delay(5);
while(1);
}
}
}
while(!key7);
delay(5);
}
if(key8==0)
{
delay(5);
if(key8==0)
{
while(1)
{
n=2208;
display(n);
if(flag)
{
keep=0; //开启蜂鸣器
delay(80);
keep=1; // 关闭蜂鸣器
delay(80);
flag = 0;
}
if(key9==0)
{
delay(5);
if(key9==0)
{
keep=1;
n=2200;
display(n);
while(1)return;
}
while(!key9);
delay(5);
while(1);
}
}
}
while(!key8);
delay(5);
}
}
// 主函数
void main()
{
while(1)
{
key(); // 判断按键
}
}
到了这里,关于单片机设计_8路抢答器(AT89C51)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!