基于51单片机的八路竞赛抢答器设计

2023-05-16

目录

    • 基于51单片机的八路抢答器设计
      • 1、主要功能
      • 2、仿真图
      • 3、测试图
      • 4、程序源码
      • 5、资源获取

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

1、主要功能

利用STC89C52单片机及外围接口实现的抢答系统;在抢答过程中,只有启动抢答后才有效,如果在开始抢答前抢答为无效;抢答限定时间为60秒,倒计时为5秒时蜂鸣器报警,选手抢答成功后显示选手编号以及剩余时间。

2、仿真图

在这里插入图片描述

3、测试图

当选手6抢答后,数码管会显示6号选手抢答成功。
在这里插入图片描述

4、程序源码

在这里插入图片描述

/**
  ************************************* Copyright ****************************** 
  File name: // 8路抢答器
  Author:Kevin
  Version: //1.0
  Description: // 用于详细说明此程序文件完成的主要功能
  Others: // 其它内容的说明
  Log: // 公众号:Kevin的学习站
  ******************************************************************************
 */

#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;		//定义1号抢答选手
sbit key2=P1^5;		//定义2号抢答选手
sbit key3=P1^6;		//定义3号抢答选手
sbit key4=P1^7;		//定义4号抢答选手
sbit key5=P3^4;		//定义5号抢答选手
sbit key6=P3^5;		//定义6号抢答选手
sbit key7=P3^6;		//定义7号抢答选手
sbit key8=P3^7;		//定义8号抢答选手
sbit spk=P1^0;		//定义蜂鸣器

int djs=60,js=0;		   //djs和bt是初始倒计时时间,可修改
unsigned char flag=0;
//int table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
int table[]={0x5f,0x44,0x9d,0xd5,0xc6,0xd3,0xdb,0x45,0xdf,0xd7,0x80};

void delayms(int x)	   //延时函数
{
char i;
while(x--)
 {
  for(i=500;i>0;i--); 
 }
}
 


void Timer0_init()			//定时器0初始化
{
      js=0;
	  TMOD=0x01;	  			//T0为定时器方式1
      TH0=60;
	  TL0=176;			
      //TR0=1;//IT1=1;
	  ET0=1;//EX1=1;
	  EA=1;	
}

void timer0() interrupt 1 using 1	//定时器0中断服务函数
{
	    TF0=0;
	 	TH0=60;
		TL0=176;					//赋初值
		js++;
		if(flag==1)
		  {
		   if(js<8)
		      spk=0;
			else spk=1;
		  }
		if(js==20) 
		  { js=0;
		    djs--;					//产生1s的倒计时
		   }
}

void djsxs()				   //显示倒计时函数
{	int b1,b2;
 	b1=djs/10;
	b2=djs%10;				  // 将倒计时时间分成高低位
	P0=table[b1];
    smg2=0;
    delayms(3);
    smg2=1;					 //显示十位数字

	P0=table[b2];
	smg3=0;
	delayms(3);				 //显示个位数字
	smg3=1;
}

void djsxs30() //第二位数码管显示-
{
	  P0=0x80;			//第二位数码管
	  smg4=0;
	  delayms(3);
	  smg4=1;
}
void djsxs22()				 
{	
 	P0=0x80;
    smg1=0;
    delayms(3);
    smg1=1;
						//第一位数码管显示-
    P0=0x80;			//第二位数码管
	smg4=0;
	delayms(3);
	smg4=1;
		
	P0=0x80;
    smg2=0;
    delayms(3);			   //第三位数码管显示-
    smg2=1;

	P0=0x80;
	smg3=0;
	delayms(3);
	smg3=1;				  //第四位数码管显示-
}

void djsxs1()
 {
	P0=table[1];
    smg1=0;
    delayms(3);
    smg1=1;				   //第一位数码管显示1

}
void djsxs2()
 {
	P0=table[2];
    smg1=0;
    delayms(3);
    smg1=1;				//第一位数码管显示2

}
void djsxs3()
 {
	P0=table[3];
    smg1=0;
    delayms(3);
    smg1=1;			  //第一位数码管显示3

}
void djsxs4()
 {
	P0=table[4];
    smg1=0;
    delayms(3);
    smg1=1;			 //第一位数码管显示4

}
void djsxs5()
 {
	P0=table[5];
    smg1=0;
    delayms(3);
    smg1=1;		   //第一位数码管显示5

}
void djsxs6()
 {
	P0=table[6];
    smg1=0;
    delayms(3);
    smg1=1;			//第一位数码管显示6

}
void djsxs7()
 {
	P0=table[7];
    smg1=0;
    delayms(3);
    smg1=1;		  //第一位数码管显示7
}
void djsxs8()
 {
	P0=table[8];
    smg1=0;
    delayms(3);
    smg1=1;		 //第一位数码管显示8

}
void main()
{
int djs1=60;
Timer0_init();	 //初始化定时器中断
spk=1;			  //蜂鸣器不响
        djs=60;		//倒计时赋值
while(1)
{

LOOP1:   djs=djs1;
djsxs22();	//LOOP1是标号,显示 -  --

			if(key1==0)		 //在定时器运行状态下,key1==0 则说明1号选手按下按键
						{
			   				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;		  //goto语句,回到loop1表号处
										}
									}										   
							  }
							}
						}
			if(keyks==0)
			{		   
			  //spk=0;
			   delayms(3);		 //去除按键抖动
			   if(keyks==0)
			   { 
			    while(!keyks);	  //以上表示按下开始按键 
				//spk=1;			   //蜂鸣器不响
				TR0=1;			   //启动定时器 开始倒计时
				while(1)
				  {
				    djsxs();
				if(keytz==0)
						{
			   				delayms(3);			 //此处表示出去抖动, 以后不一一标出
			   				if(keytz==0)
			   				{ 
			   				 while(!keytz);	   //以上表示按下停止按键后 
								{
							     TR0=0;		   //定时器停止
								 flag=0;//
								 spk=1;
								}

							}
						}
				   if(keyks==0)
						{
						    //spk=0;
			   				delayms(3);
			   				if(keyks==0)
			   				{ 
			   				 while(!keyks);	   //以上表示按下清楚按键后 
							 //spk=1;			   //蜂鸣器不响
							    TR0=1;		   //定时器启动

							}
						}
/***************************以下是八个选手抢答,key1表示1号选手,依次类推,注释只写第一位选手,其他和第一个完全一致,************************************/
				if((key1==0)&&(TR0==1))		 //在定时器运行状态下,key1==0 则说明1号选手按下按键
						{		 spk=0;		 //蜂鸣器响
			   				delayms(3);
			   				if(key1==0)
			   				{ 
			   				 while(!key1);	  //去除按键抖动后,重新在判断,是否确实按下
							  {
							    spk=1;		  //蜂鸣器不响
								flag=0;//清0最后五秒响蜂鸣器
							  }
							 while(1)
							  {
							    TR0=0;		  //定时器停止
							 	djsxs1();	  //显示选手编号
								djsxs30();	  //第二位数码管显示-
								djsxs();	  //显示剩余倒计时时间
							   if(keyqc==0)
						           {	
			   							delayms(3);		   //去除抖动
			   							if(keyqc==0)
			   							{ 
			   				 			while(!keyqc); //如果按下清楚键,则回到- --状态

										goto LOOP1;		  //goto语句,回到loop1表号处
										}
										}										   
							  }
							}
						}
				if((key2==0)&&(TR0==1))
						{	spk=0;
			   				delayms(3);
			   				if(key2==0)
			   				{ 
			   				 while(!key2);
							  {
							   spk=1;
							   flag=0;//清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;//清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;//清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;//清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;//清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;//清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;//清0最后五秒响蜂鸣器
							     }
							 while(1)
							  {
							    TR0=0;
							 	djsxs8();
								djsxs30();	  //第二位数码管显示-
								djsxs();
							   if(keyqc==0)
						           {	
			   							delayms(3);
			   							if(keyqc==0)
			   							{ 
			   				 			while(!keyqc);

										goto LOOP1;	
										}
										}	   
							  			}
						     	}
						}  
					 if(djs<=5)  flag=1; //spk=0;	  //到倒计时小于5是,蜂鸣器响
					 if(djs==0)			   //当倒计时时间等于0后,需要按清楚键恢复
					  {
					  flag=0;
					  spk=1;
					  while(1)
					  	{
						 		if(keyqc==0)
						           {	
			   							delayms(3);
			   							if(keyqc==0)
			   							{ 
			   				 			while(!keyqc);
										spk=1;		  
										goto LOOP1;	
										}
										}
						}
					  } 

				  }

				}
			   }
 }
}

5、资源获取

在这里插入图片描述

项目的仿真和程序工程已经放在下面公众号里面,可以关注公众号:Kevin的学习站,输入关键字:“051”,就可以获取啦!创作不易,但您的点赞、关注、收藏就是对我最大的鼓励!
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于51单片机的八路竞赛抢答器设计 的相关文章

  • 目标检测网络中的 bottom-up 和 top-down理解

    看目标检测网络方面的论文时 xff0c 出现了一组对比词汇 xff1a bottom up和top down xff0c 查了一些资料 xff0c 结合个人理解 xff0c 得到的看法是 xff1a top down 顾名思义是自上而下进行
  • 2021.08.26学习内容 Win10+GeForce GTX1650安装NVIDIA显卡驱动及CUDA11.4+cuDNN8.2

    之前主要使用Ubuntu系统 xff0c 但是个人笔记本更多使用windows 为了方便跑一些pytorch的小代码 xff0c 所以想在windows配置一下相关环境 xff0c 达到调用GPU运算的目的 记录也是为了自己以后有安装需求少
  • vscode调试webpack-dev-server项目

    先上结果 vscode下载debugger for chrome 插件 创建launch json 添加的时候选择Chrome Launch会自动生成chrome调试模板 xff0c 主要是要加上 34 preLaunchTask 34 3
  • OpenNetworkLinux:i2c-gpio.c源码学习笔记

    OpenNetworkLinux xff1a i2c gpio c源码学习笔记 i2c gpio的init和exit i2c驱动需要首先在平台驱动上进行注册 xff0c 方可提供自身的总线供适配器进行注册 xff0c 注册流程类似于一个内核
  • 每天一个Lodash源码解析

    每天一个Lodash源码解析 chunk 方法介绍自我实现源码分析代码对比知识点补充浮点数转化为浮点数数组创建方法区别js中切割数组方法 slice 方法介绍自我实现源码分析代码对比知识点补充 96 96 gt gt gt 96 96 移位
  • conda的常用操作

    1 查看conda版本 2 更改安装第三方库的源 将国外的源改为清华镜像源 cmd窗口依次输入 xff1a conda config add channels https mirrors tuna tsinghua edu cn anaco
  • 云技术

    什么是 云 与云技术 xff1f 云技术是在分布式计算技术 网格计算基数基础上发展起来的一种计算技术 云技术基于资源虚拟化的方式 xff0c 为用户提供方便快捷的服务 xff0c 可以实现计算与存储的分布式与并行处理 云技术为其他信息技术
  • 什么是上转型对象及其基本特征

    5 12 什么是上转型对象及其基本特征 xff1f 上转型对象 子类对象赋值给父类变量 例如 xff1a package com wangxing test1 父类 public class Person public void testP
  • 【树莓派入门系列】4 树莓派安装测试torch与torchvision

    树莓派运行YOLOV5项目 安装测试torch amp torchvision 项目目录 点击跳转 0 首页 1 前期准备工作 2 配置树莓派系统 3 安装测试opencv 4 安装测试torch amp torchvision 5 测试y
  • javascript中in和includes的区别

    in的用法 遍历对象 span class token keyword let span names span class token operator 61 span span class token punctuation span n
  • centos安装java环境

    方式一 xff1a 安装java环境 1 先查看本地是否自带java环境 xff1a yum list installed grep java 2 卸载自带的java xff08 输入su xff0c 输入root超级管理员的密码 xff0
  • 计算机网络(五) 网络层(中)

    网络层 xff08 中 xff09 3 划分子网和构造超网3 1划分子网3 2使用子网时分组的转发3 3无分类编址CIDR xff08 构造超网 xff09 4 网际控制报文协议 xff08 ICMP xff09 4 1 ICMP报文的种类
  • 【软件工程学习】软件工程概论

    一 软件工程基础 软件是什么 xff1f xff08 1 xff09 软件独立于硬件 早期软件是作为计算机硬件的零件来开发的 xff0c 40年代中后期和50年代早期时 xff0c 为了利用计算机硬件进行研究 xff0c 使用针对专门的硬件
  • Hadoop (四) ——MapReduce 的原理+实现

    MapReduce简介 MapReduce是一种编程模型 xff0c 用于大规模数据集的并行运算 概念 34 Map xff08 映射 xff09 和 34 Reduce xff08 归约 xff09 xff0c 是它们的主要思想 xff0
  • 51单片机oled12864显示时间日期温度

    思路 xff1a 电源接入 第一行显示时间 第二行显示日期 xff0c 屏幕下面左边显示星期 xff0c 右边显示温度 xff0c 当k1按键第一次按下进入设置页面 xff0c 在设置页面 xff0c k1按键为确定 k2按键为循环选择 k
  • python post请求报错:{“error“:“invalid_request“,“error_description“:“Missing grant type“}

    request post请求报错信息 xff1a error invalid request error description Missing grant type 修改为 xff1a 把headers中的 Content Type 改为
  • Ubuntu下teamviewer的安装及使用

    1 到官网下载对应的安装包 xff0c 官网下载网址 xff1a https www teamviewer cn cn download linux coupon 61 CMP SEM CN 20 amp utm source 61 bai
  • 海南大学考研人,你真的马上就要上岸了

    临考前 xff0c 很多注意事项大家要提前了解 最近很多同学问到试卷拆封的问题 xff0c 今天 我们海大学长学姐们 就给大家详细地说一下考研试卷拆封的整个过程 考研并不是传统的发卷子 xff0c 而是 发信封 自己开封 xff0c 答题
  • (windows+xrdp+ubuntu16.04)远程服务器出错:“password failed error - problem connecting“

    这个问题貌似是2019年1月10日xrdp进行了系统自动更新后导致的 xff0c 有两个解决办法 xff1a 方法1 xff1a 对xrdp进行降级重新安装sudo apt get install xrdp 61 0 6 1 2 方法2 x
  • C# SharpGL-Material材质

    在上一节C SharpGL Light光源讲了我们身边的几个实际场景与OpenGL一些参数对应关系 xff0c 其中讲到了反射光的颜色 xff1a 4 反射的光颜色 xff1a 我们之所以能够看到不发光的物体 xff0c 是因为这些不发光的

随机推荐

  • 海南大学考研经验分享之(考研数学)

    提问 xff1a 2022考研数学会不会是史上最难的一年 答 xff1a 考研就是考数学 这句话对于考试科目中有数学的同学们来说 xff0c 是有一定道理的 每一年都是史上最难 xff0c 不管是不是史上最难的 xff0c 只要认真备考 x
  • 23年海南大学835上岸考研资料(历年真题)及笔记(耗时1年)

    23年 xff0c 海南大学835软件工程 上岸必备资料 xff08 历年真题 xff09 及笔记 xff08 耗时一年 xff09 xff01 首先挂一下22年考试qun图 xff0c qun里给大家每日分享考研英语和数学 xff0c 专
  • 海南大学信号与系统838考研经验(3)

    4 问 xff1a 信号与系统838复习参考书目是什么 xff1f 海大官网是没有明确的参考书籍 xff0c 往届的学长和学姐们都用吴大正 xff0c 手里有第4版的也可以 xff0c 现在是新版第5版 xff0c 当然更好一些 其次是郑君
  • 成都信息工程大学809考研【软件工程】资料笔记真题~

    软件工程考研学长学姐们考研时自己总结的笔记题库 xff0c 不断完善 xff0c 笔记资料齐全 xff0c 取其精华去其糟粕 xff0c 直接只一套到手即可 xff01 包括考前给大家编写的三套模拟押题卷 xff0c 欢迎对比 xff01
  • 【24考研数学找研友】

    24数学考研 听说今年数学考研好难呀 xff0c 有没有同学一起考研一起复习的 大家一起看图交流一下
  • 【24北京交通大学901软件工程考研】

    有没有考北京交通大学901软工的同学 xff0c 一起组个队呀 xff0c 相互监督 xff5e 每日打卡学习
  • 【2024海南大学835软件工程考研笔记】

  • python中的装饰器(基础装饰器)

    文章目录 一 前置知识 高阶函数 xff0c 闭包1 高阶函数2 闭包 二 函数装饰器1 什么是装饰器 xff08 原理 xff09 xff1f 2 装饰器的实现3 何时执行装饰器4 wraps方法 三 类装饰器 一 前置知识 高阶函数 x
  • python中的装饰器二(带参数的装饰器)

    文章目录 前言 一 被装饰函数带参数二 被装饰函数有返回值三 装饰器带参数四 多个装饰器 前言 看大佬们写的代码看的我是眼花缭乱 xff0c 不知所云啊 真是感叹 xff0c 自己还看都看不懂 xff0c 人家就能写出来了 xff0c 人与
  • STlink、Jlink驱动一直安装失败的解决办法

    STlink Jlink驱动一直安装失败的解决办法 STlink驱动安装失败问题详情 Jlink驱动安装的问题也类似 xff0c 总是有一项安装失败 xff01 xff01 xff01 在经过各种尝试完毕之后 xff0c 怀疑是系统的问题
  • 数据可视化--实验四:地理数据可视化

    声明 xff1a 本文CSDN作者原创投稿文章 xff0c 未经许可禁止任何形式的转载 xff0c 原文链接 文章目录 概要实验过程Pyecharts实验结果 概要 学院 xff1a 计算机科学与技术学院实验日期 xff1a 2020 10
  • 课设-基于51单片机的智能小车(循迹+避障+APP控制)

    51单片机课设 智能小车 一 课设任务二 硬件设计及相关传感器模块1 车模2 51单片机3 红外循迹模块4 电机及驱动5 蓝牙模块6 硬件搭建 三 程序代码1 main c文件2 motor c文件 四 我的大学 造车 史 注 xff1a
  • 课设-基于51单片机+超声波模块的避障小车(源码+原理图+Protel仿真)

    基于51单片机 43 超声波模块的避障小车 xff08 源码 43 原理图 43 Protel仿真 xff09 一 功能二 模块2 1 电机驱动模块2 2 超声波模块 三 程序代码四 PCB原理图 一 功能 设计一辆利用超声波传感器来实现避
  • 路径规划(一):使用Matlab快速绘制栅格地图

    目录 一 Matlab快速绘制栅格地图1 几种常用的地图形式 xff1a 1 1 尺度地图 xff1a 1 2 拓扑地图 xff1a 1 3 语义地图 xff1a 2 栅格地图用于路径规划的优势 xff1a 3 matlab绘制栅格地图的核
  • 2、无人驾驶--路径规划算法:Dijkstra

    目录 2 Dijkstra2 1 算法简介2 2 算法思路具体流程 xff1a 2 3 算法具体实现2 3 1 程序详解 2 Dijkstra 声明 xff1a 本文是学习古月居 基于栅格地图的机器人路径规划算法指南 黎万洪 后写的笔记 x
  • 毕设--基于51单片机的温度报警器设计

    目录 1 简介2 设计要求与方案论证2 1 设计要求2 2 系统基本方案选择和论证2 2 1 单片机芯片的选择方案和论证2 2 2 温度传感器设计方案论证 2 3 电路设计最终方案决定 3 硬件设计介绍3 1 STC89C51介绍3 1 1
  • 基于51单片机的篮球比赛计时器

    目录 基于51单片机的篮球比赛计时器1 PCB原理图2 仿真图3 毕设要求 xff1a 4 总体方案设计5 程序源码6 资源下载 基于51单片机的篮球比赛计时器 注 xff1a 本毕设资源可在微信公众号 xff1a Kevin的学习站 中获
  • 毕设--基于51单片机数字电压表的设计

    目录 基于51单片机数字电压表的设计1 PCB原理图2 Proteus 仿真图3 设计目标3 1 基本功能3 2 主要技术参数 4 总设计框图5 硬件设计分析5 1 电源的设计5 2 单片机最小系统5 3 模数转换 6 软件设计的组成7 元
  • 基于51单片机的智能温控风扇(程序+仿真+原理图)

    目录 基于51单片机的智能温控风扇1 主要功能2 实验结果3 仿真工程4 原理图5 程序源码6 资源获取 基于51单片机的智能温控风扇 1 主要功能 基于51单片机的智能温控风扇 xff0c 通过DS180温度传感器采集温度 xff0c 并
  • 基于51单片机的八路竞赛抢答器设计

    目录 基于51单片机的八路抢答器设计1 主要功能2 仿真图3 测试图4 程序源码5 资源获取 基于51单片机的八路抢答器设计 1 主要功能 利用STC89C52单片机及外围接口实现的抢答系统 xff1b 在抢答过程中 xff0c 只有启动抢