毕设课设 单片8路抢答器仿真设计

本文介绍了使用AT89C51单片机构建的一款8路抢答器,包括电路设计、运行原理和部分关键代码。项目展示了四位数码管显示抢答者号码及蜂鸣器响应功能,适用于课程设计或毕业设计实践。
摘要由CSDN通过智能技术生成

简介

Hi,大家好,今天向大家介绍一个学长做的单片机项目

毕设课设 单片8路抢答器仿真设计

大家可用于 课程设计 或 毕业设计

🔥 项目分享:
https://gitee.com/feifei1122/simulation-project

一、电路设计

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

运行原理:

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

二、运行效果图

三、部分代码

  #include
​    #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();  // 判断按键
       }
    }  


​    
​    

🔥 项目分享:
https://gitee.com/feifei1122/simulation-project

数显智力抢答器抢答器课程设计任务书数显式八抢答器............范文:数显式八抢答器原文:摘 要为了适应现代电子技术飞速发展的需要,更好的培养出21世纪的应用型人才,每个高校都开设的《数字电子技术基础》这门课程。判断一名21世纪的大学生是否符合应用型人才的标准,数字电子技术的实际应用能力也在其中起到了举足轻重的地位!随着社会不断的发展,电子技术也的到了飞速的发展,各中电子产品的质量也的到了质的突飞猛进。其中的抢答器也由以前的简单、功能单一的电路,变为现在复杂、实现功能多的电子产品。本次数电课程设计的编写是以实际动手研究为主线,以科学研究所研究到的所应用的的实际技术为主要内容。培养学生掌握电子技术的科学规律、技术,测量技术等研究方法使其具有独立动手研究的能力,以变在未来的工作中开拓创新。抢答器是一种能使任何比赛及竞争性的游戏体现公平、公正的电子装备。在比赛中为了准确、公正、直观地判断出第一抢答者,所设计抢答器通常由数码显示、灯光、音响等多种手段指示出第一抢答者。同时还应设计记分、犯规和奖惩记录等多种功能。为了全面运用科学动手研究的技术方法,在加强的直接动手方法的同时,力求让学生在短时间里得以掌握先进科学技术:如本设计中所使用到的EWB,Protel99等技术手段,新工具。也培养了自己理论联系实际、设计电路的能力及正确的的处理数据、分析。由于时间仓促及个人水平有限,文档内容难免有错,敬请各位提出批评并指正。 关键字:抢答器、定时、记时。八数显智力抢答器抢答器课程设计任务书数显式八抢答器............范文:数显式八抢答器原文:摘 要为了适应现代电子技术飞速发展的需要,更好的培养出21世纪的应用型人才,每个高校都开设的《数字电子技术基础》这门课程。判断一名21世纪的大学生是否符合应用型人才的标准,数字电子技术的实际应用能力也在其中起到了举足轻重的地位!随着社会不断的发展,电子技术也的到了飞速的发展,各中电子产品的质量也的到了质的突飞猛进。其中的抢答器也由以前的简单、功能单一的电路,变为现在复杂、实现功能多的电子产品。本次数电课程设计的编写是以实际动手研究为主线,以科学研究所研究到的所应用的的实际技术为主要内容。培养学生掌握电子技术的科学规律、技术,测量技术等研究方法使其具有独立动手研究的能力,以变在未来的工作中开拓创新。抢答器是一种能使任何比赛及竞争性的游戏体现公平、公正的电子装备。在比赛中为了准确、公正、直观地判断出第一抢答者,所设计抢答器通常由数码显示、灯光、音响等多种手段指示出第一抢答者。同时还应设计记分、犯规和奖惩记录等多种功能。为了全面运用科学动手研究的技术方法,在加强的直接动手方法的同时,力求让学生在短时间里得以掌握先进科学技术:如本设计中所使用到的EWB,Protel99等技术手段,新工具。也培养了自己理论联系实际、设计电路的能力及正确的的处理数据、分析。由于时间仓促及个人水平有限,文档内容难免有错,敬请各位提出批评并指正。 关键字:抢答器、定时、记时。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值