对于这在被单片机课程设计折磨的小伙伴们,这或许是一个不错的选择!简单方便,成本低廉首先声明,本设计由本人独立完成,代码原创的,在普中科技开发板上实验成功了。下面附上代码,由于都有注释,就不废话了,如果看不懂,可以连线调试一下(这是作为一个硬件生应该掌握的基本技能。可惜我不是。。。)或者可以留言回复哦!前方代码简单,大神请绕道,本人自身也很水,是到最后一周开始学习单片机的,并且花了半天的时间写出这家伙,无比鄙视自己ing。。。

#include<reg51.h>#define uchar unsigned char
#define uint unsigned int
#define WHO P0sbit player1=P1^0;
sbit player2=P1^1;
sbit player3=P1^2;
sbit player4=P1^3;
sbit Ensure=P3^7;
sbit beep=P1^6;
sbit LSA=P3^2;
sbit LSB=P3^3;
sbit LSC=P3^4;uchar state=0;
uchar ssec=0;
uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar OUT[]={0x71,0x77,0x38,0x38};void delay(uint time)
{uint x,y ;for(x=time;x>0;x--)for(y=130;y>0;y--);
}void Delay2(uint i)
{while(i--);
}void Show(uchar content[])
{uchar i;for(i=0;i<4;i++){switch(i)    //位选,选择点亮的数码管,{case(0):LSA=0;LSB=0;LSC=0; break;//显示第0位case(1):LSA=1;LSB=0;LSC=0; break;//显示第1位case(2):LSA=0;LSB=1;LSC=0; break;//显示第2位case(3):LSA=1;LSB=1;LSC=0; break;//显示第3位}P2=content[i];//发送段码Delay2(100); //间隔一段时间扫描 P2=0x00;//消隐}
}void InitTimer0(void)
{TMOD = 0x01;TH0 = 0x0D8;TL0 = 0x0F0;EA = 1;ET0 = 1;TR0 = 1;
}void main()
{Ensure=1;while(1){if(player1==0)    //玩家1进入抢答状态{delay(10);  //延时,按键消抖if(player1==0)    //再次判断是否进入抢答状态 {if(state==0)  //前方无人抢答状态{InitTimer0();state=1;  //将抢答状态置为1,防止其他玩家抢答while(!player1)     //抢答成功,蜂鸣器发声{beep=~beep;delay(1); }WHO=table[1];  //数码管显示抢答成功的玩家编号}}}if(player2==0)   //以下结构类似于玩家1{delay(10);if(player2==0){if(state==0){InitTimer0();state=1;while(!player2){beep=~beep;delay(1); }WHO=table[2];}}}if(player3==0){delay(10);if(player3==0){if(state==0){InitTimer0();state=1;while(!player3){beep=~beep;delay(1); }WHO=table[3];}}}if(player4==0){delay(10);if(player4==0){if(state==0){InitTimer0();state=1;while(!player4){beep=~beep;delay(1); }WHO=table[4];}}}}
}void Timer0() interrupt 1
{TH0=(65536-45872)/255;    //给定时器赋初值,定时50msTL0=(65536-45872)%255;ssec++;if(Ensure){if(ssec>=100)  //5s{EA=0; while(1) Show(OUT);}}else{delay(10);if(Ensure==0){while(!Ensure);Ensure=0;if(ssec>=100){EA=0;} }}
}

【单片机系列】基于51单片机的四路抢答器相关推荐

  1. 51系列—基于51单片机的校园教室打铃系统(代码+仿真+电路图超级全)

    基于51单片机的校园教室打铃系统(代码+仿真+电路图超级全) 本文主要介绍基于51单片机实现的校园打铃系统设计,实现了基本的上下课打铃功能.本设计基于51单片机,使用单片机定时计数器及LCD1602接 ...

  2. 51单片机sht30_基于51单片机和机智云的WIFI智能插座(2019版)

    和大家分享一下我做STC15W4K56S4单片机(51单片机)连接机智云WIFI智能插座的过程,实现了网络时间获取.温湿度采集.定时开关.OLED屏幕显示.定时开关.数据定时保存等功能,供参考和交流. ...

  3. 【51单片机】基于51单片机的智能浇花系统的设计与实现

    技术:C语言.单片机等 摘要: 本设计是基于51系列单片机而设计的智能浇花系统,本系统结合单片机编程技术.传感器技术以及GSM通信技术实现系统基本功能,使系统根据不一样的土壤湿度,能够相应的改变浇水要 ...

  4. 【Proteus仿真】【51单片机】基于51单片机防火防盗设计

    文章目录 一.功能简介 二.软件设计 三.实验现象 联系作者 一.功能简介 本项目使用Proteus8仿真51单片机控制器,使用声光报警模块.LCD1602显示模块.DS18B20温度.烟雾传感器模块 ...

  5. 基于74LS148的简单四路抢答器 Multisim

    基于74LS148的简单四路有优先报警器 Multisim 上数电课的作业:假如有四个病房,四个病人的病情情况不同,分别对应优先级:最高.高.中.低.优先级低的会被优先级高得中断,此处用LED灯的亮灭 ...

  6. p620光耦接单片机_基于51单片机的可控硅调压调光程序-带过零检测

    标签: 单片机 单片机(Microcontrollers,亦称MCU)包括了CPU.随机存储器RAM.只读存储器ROM.多种I/O口和中断系统.定时器/计数器等功能集成到一块硅片上构成的一个小而完善的 ...

  7. 多功能数字钟c语言单片机PPT,基于51单片机多功能数字钟的设计

    多功能数字钟设计 摘要 本设计以AT89C52单片机.DS1302时钟芯片和DS18B20温度传感器为核心,采用LCD1602液晶显示,辅以必要的电路,共同构成一个具有多功能的数字钟.该系统能够准确的 ...

  8. C语言 | 基于51单片机实现MPU6050的卡尔曼滤波算法(代码类2)

    github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 之前写过一个博客(代码分享:单片机开发 | ...

  9. 单片机四路抢答器课程C语言设计,基于51单片机四路抢答器设计

    内容简介: 毕业设计 基于51单片机四路抢答器设计 共25页,9905字 随着经济水平的不断提高,人们在物质文明得到满足的同时更注重精神文明的追求,各种娱乐节目不断涌现,提高节目的质量尤为重要..本次 ...

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

    0 要求介绍 使用51单片机设计一个思路抢答器 正常抢答:主持人按下开始按钮后数码显示管显示最先按下按钮台号,蜂鸣器发出音响,其它抢答按钮无效:主持人按下开始按钮之前,若选手按下抢答器,抢答违规,显示 ...

最新文章

  1. Linux后台开发应该具备技能
  2. 计算机语言中display翻译,display的意思在线翻译,解释display中文英文含义,短语词组,音标读音,例句,词源,同义词,反义词【澳典网ODict.Net】...
  3. Python基础——Anaconda的安装使用
  4. 每天一道LeetCode-----根据中序遍历和后序遍历重构二叉树
  5. Python数据预处理数据的方法总结(使用sklearn-preprocessing)
  6. 时间管理 SMART 与 四象限
  7. OLEDB, ODEB, ADO.NET Abbreviation
  8. 迭代器,生成器,三元表达式,列表解析式
  9. 一个计算周次和本周时间范围的代码(c#)
  10. 超微小加速度传感器ADXL362设计
  11. 【常用办公软件】万彩办公大师教程丨全能图片转换工具
  12. CS5213 HDMI转VGA带音频DAC输出|HDMI to VGA withDAC转换
  13. 【深度学习】01-04-深度学习(选修)-李宏毅老师2122深度学习课程笔记
  14. 不规格图片等比例展示---上下/左右留白
  15. 鸿蒙系统小白,站在小白用户的立场上看待华为的鸿蒙系统
  16. Java 16 藏刀而来,Java 8 面不改色 | 它强任它强,我用 Java 8,嘿嘿
  17. Java中字符串为什么不以\0结尾
  18. 电视android停止运行怎么操作,智能电视提示应用停止运行怎么办,这几种解决办法最实用...
  19. 串口通信——接收串口数据并处理(C语言)
  20. C#高级编程9 第11章 Linq

热门文章

  1. 爱立信忙收5G专利费;中兴助力LPWAN物联网商用| IoT黑板报
  2. android联想功能介绍,在Android世界中联想推出了功能强大的手机Z5 Pro GT
  3. 华为服务器怎么连接显示器,服务器怎么链接显示器
  4. VMware提示此主机支持Intel VT-x,但Intel VT-x处于禁用状态——解决方法
  5. 微信小程序-公廉租房维保系统
  6. python 中range(10)什么意思_请问在Python中for i in range(10,0,-1)是什么意思
  7. .NET中使用ORACLE函数和过程并输出参数(2)
  8. PCB电路设计的十四个误区
  9. 岁月(胡军、于和伟)
  10. STATA:陈强教授 计量经济学及stata应用第四章 一元线性回归