单片机设计_8路抢答器(AT89C51)

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

想要更多项目私wo!!!

一、电路设计

        此电路由AT89C51最小系统、四位数码管、蜂鸣器电路和按键模块组成。

运行原理:

        该抢答器电路可同时进行八路优先抢答。按键按下后,蜂鸣器发声,同时数码管
显示优先抢答者的号码,抢答成功后,再按按键,显示不会改变,除非按主持人键。
复位后,显示清零,可继续抢答。

二、运行效果图

单片机设计_8路抢答器(AT89C51)

 单片机设计_8路抢答器(AT89C51)文章来源地址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模板网!

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

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

相关文章

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

    使用51单片机设计一个思路抢答器 正常抢答:主持人按下开始按钮后数码显示管显示最先按下按钮台号,蜂鸣器发出音响,其它抢答按钮无效;主持人按下开始按钮之前,若选手按下抢答器,抢答违规,显示器显示违规台号,违规指示灯亮,蜂鸣器发出音响,其他按钮不起作

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

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

    2024年04月27日
    浏览(26)
  • 详细教程||基于51单片机开发的十路抢答器设计

    (1)抢答器同时供10名选手或10个代表队比赛。 (2)设置一个系统清除和抢答控制开关S,该开关由主持人控制。 (3)抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直

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

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

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

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

    2024年02月04日
    浏览(33)
  • 基于51单片机的4位竞赛抢答器的设计

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

    2023年04月11日
    浏览(33)
  • 51单片机8位抢答器程序设计与原理图搭建

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

    2024年02月08日
    浏览(31)
  • 【C51】基于51单片机的多路抢答器的设计与制作

        随着社会的进步和科技的发展,当今社会活动对电子设备的使用也越发依赖,此时抢答器也作为一种答题方式所需要的设备应运而生。抢答器的适用方面广泛,可用在当下各种答题节目,知识竞赛等活动之中。但随之而来的也有很多问题,当今市面上有的抢答器使用线

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

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

    2024年02月11日
    浏览(29)
  • 基于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)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包