要求:

1、八人抢答逻辑:只有一个最先抢答有效。

2、在主持人控制下,10秒内抢答有效。

3、采用数码管显示抢答10秒倒计时,若有抢答直接结束,显示结果。

4、抢答结束后用数码管显示抢答结果:抢答有效人编号;若有异常(提前抢答,犯规),显示抢答人编号和E,本次抢答结束 。

5、设主持人控制键、复位键。

控制键:启动抢答

复位键:系统复位

6、开始、正常结束、抢答结束、违规抢答采用声音提示。

7、最后5S开始倒计时的时候有滴滴滴的计时音。

获取该程序的方式:

1、CSDN下载:

https://download.csdn.net/download/qq_38351824/11267213

2、关注微信公众号下载:

     ① 关注微信公众号:Tech云  

     ②

3、可以关注点赞并在下方评论,我给你邮箱发过去。

一、Protues仿真图:

二、程序源码:

因为注释非常的全,这里就不再进行讲解了。

/*******************************************************************************
================================================================================
【平    台】STC89C51_sumjess平台
【编    写】sumjess
【E-mail  】1371129880@qq.com
【软件版本】V2.0
【最后更新】2019年06月10日
【相关信息参考下列地址】
【网    站】https://blog.csdn.net/qq_38351824http://www.51hei.com/bbs/mcu-2-1.html
---------------------------------------------------------------------------------
【dev.env.】MDK4.02及以上版本
【Target  】STC89C51
第一次修订:2019/05/09
第二次修订:2019/05/21
第三次修订:2019/06/10
【problem 】                             (1)库内补充的不全面;(2)库内解释部分不全面;(3)库内还存在一定的bug;
【direction】下一步的目标就是把库继续集成!
【explain 】为了方便使用,我也自己写了很多的库,和优化了算法和表示方式!
【warning】目前程序中暂无错误 !
---------------------------------------------------------------------------------
没有完美的代码,只有不断的奉献,大家一起努力;
赠人玫瑰手留余香,欢迎大家反馈bug!
================================================================================
********************************************************************************/   #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,js=0;      //djs和bt是初始倒计时时间unsigned char flag=0;int table[]={0x5f,0x44,0x9d,0xd5,0xc6,0xd3,0xdb,0x45,0xdf,0xd7,0x80,0x9b};void delayms(uint z)    //毫秒
{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);
}void Timer0_init()         //定时器0初始化
{js=0;TMOD=0x01;                  //设置定时器0为工作方式1(M1M0为01)TH0=(65536-45872)/256;      //装初值11.0592M晶振定时50ms数为45872TL0=(65536-45872)%256;     ET0=1;                     //开定时器0中断EA=1;                     //开总中断
}void timer0() interrupt 1 using 1  //定时器0中断服务函数
{TH0=(65536-45872)/256;        //装初值11.0592M晶振定时50ms数为45872TL0=(65536-45872)%256; js++;                     //叠加20次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 djsxse() //第二位数码管显示 E{P0=0x9b;            //第三位数码管显示Esmg2=0;delayms(3);             smg2=1;}
void djsxs30() //第三位数码管显示 -{P0=0x80;           //第三位数码管显示-smg4=0;delayms(3);             smg4=1;}
void djsxs22() //4位数码管显示- - - -          {  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()  //第一位数码管显示1{P0=table[1];       //第一位数码管显示1smg1=0;delayms(3);smg1=1;                }
void djsxs2()  //第一位数码管显示2{P0=table[2];smg1=0;delayms(3);smg1=1;             //第一位数码管显示2}
void djsxs3()  //第一位数码管显示3{P0=table[3];smg1=0;delayms(3);smg1=1;           //第一位数码管显示3}
void djsxs4()  //第一位数码管显示4{P0=table[4];smg1=0;delayms(3);smg1=1;          //第一位数码管显示4}
void djsxs5()  //第一位数码管显示5{P0=table[5];smg1=0;delayms(3);smg1=1;        //第一位数码管显示5}
void djsxs6()  //第一位数码管显示6{P0=table[6];smg1=0;delayms(3);smg1=1;         //第一位数码管显示6}
void djsxs7()  //第一位数码管显示7{P0=table[7];smg1=0;delayms(3);smg1=1;       //第一位数码管显示7
}
void djsxs8()  //第一位数码管显示8{P0=table[8];smg1=0;delayms(3);smg1=1;      //第一位数码管显示8}
void main()
{int djs1=10;             //修改倒计时第一处,共两处Timer0_init();             //初始化定时器中断spk=0;delayms(500);spk=1; //蜂鸣器不响djs=10;                       //修改倒计时第二处,共两处之后的请下载进行查看,注释非常的全

课程设计题一:八人抢答器相关推荐

  1. 在设计四人抢答器中灯全亮_数字电子技术课程设计报告(四人抢答器).doc

    Word格式 完美整理 数字逻辑电路 课程设计报告 系 (部): 三 系 专 业: 通 信 工 程 班 级: 12 通 信 2 班 姓 名: 杨 超 学 号: 20120306201 成 绩: 指导老 ...

  2. HNU工训中心: 三人表决器及八人抢答器实验报告

    工训中心的牛马实验 三人表决器: 实验目的 1) 辨识数字IC功能说明. 2) 测试数字集成门电路,掌握输出故障排除.使用注意事项. 3) 掌握逻辑函数搭建三人表决器. 2.实验资源 HBE硬件基础电 ...

  3. 三人表决器与八人抢答器实验

    三人表决器与八人抢答器实验 三人表决器实验报告 一.实验目的 1.辨识数字IC功能说明. 2.测试数字集成门电路,掌握输出故障排除.使用注意事项. 3.掌握逻辑函数搭建三人表决器. 二.实验资源 1. ...

  4. 单片机六位抢答器c语言程序,单片机八人抢答器程序设计

    有一个<单片机八人抢答器程序设计>的题目. 设计要求: 利用 KEIL 软件编制控制程序. 利用 PROTEUS 仿真软件,绘制单片机控制系统: P1 口接 8 个按钮,编号为1.2.3. ...

  5. 八人抢答器讲解_八人抢答器

    有一个<单片机八人抢答器程序设计>的题目.设计要求:利用 KEIL 软件编制控制程序.利用 PROTEUS 仿真软件,绘制单片机控制系统:P1 口接 8 个按钮,编号为1.2.3....7 ...

  6. Verilog实现八人抢答器

    Verilog实现八人抢答器 一设计需求 二模块划分和代码 1.抢答模块 2.倒计时模块 3.分频模块 4.扫描显示模块 5.蜂鸣器 三.顶层 四.一些问题及总结 一设计需求 抢答器由FPGA中ver ...

  7. 八人抢答器讲解_课程设计题一:八人抢答器

    要求: 1.八人抢答逻辑:只有一个最先抢答有效. 2.在主持人控制下,10秒内抢答有效. 3.采用数码管显示抢答10秒倒计时,若有抢答直接结束,显示结果. 4.抢答结束后用数码管显示抢答结果:抢答有效 ...

  8. 八人抢答器讲解_八人抢答器_课程设计.doc

    编号: 1 电力电子技术课程设计 报告书 课 题: 数字式竞赛抢答器 院 (系): 机电工程学院 专 业: 电气工程及其自动化 学生姓名: 蒋岷君 学 号: 0800120313 题目类型:(理论研究 ...

  9. 八人抢答器讲解_八人智力竞赛抢答器

    1 摘 要 本报告设计的八路智力竞赛抢答器电路主要采由 74 系列常用集成电路组成,涉及到触 发器.编码器.加法器.译码器和 RC 电路组成的多谐振荡电路.该抢答器具有基本的抢答 功能, 通过共阴极数 ...

最新文章

  1. 底部导航栏Bottom navigation规范指南
  2. 班尼机器人怎么拆_512个焊点独自焊完,武汉一高中生在机器人比赛中摘得五块奖牌...
  3. asp.net写入日志到文本文件
  4. Macaca:南方航空人工测试的拯救者
  5. 免费人脸识别工具可以跟踪社交媒体网站上的人
  6. Zookeeper(三)——选举机制
  7. (190)FPGA变量初始化方法initial
  8. 【less-11】基于SQLI的POST字符型SQL注入
  9. Win7下使用VFW库连接摄像头
  10. html字体颜色闪动,HTML最简单的文字闪烁代码
  11. 用android实现GB28181前端设备接入平台
  12. python:对英文段落进行分句(对一段英语进行整句切分,切分句子)
  13. 【Lerna 基本使用】
  14. 男人和女人是怎样吹牛的
  15. 特殊矩阵——对称矩阵(Symmetric Matrix)
  16. 深入了解中文版AutoCAD 2022:功能、优势和应用
  17. [ERROR] Slave SQL for channel ‘‘: Could not execute Write_rows event on table xxx.xxx; Duplicate ent
  18. 5G有源、无源室分对比
  19. python产品发布会_阅读虫师django开发发布会系统以及django开发Web接口分享
  20. Dr_can Kalman Filter学习笔记(三)

热门文章

  1. 牛逼!知道这100 个网络基础知识,成了半个网络高手!(文末附PDF版本)
  2. 产品思维训练 | 百度网盘的会员制变更
  3. (嵌入式)ARM开发环境入门-----一个简单的LED灯闪烁的实现
  4. Spring实现策略模式
  5. <<视觉问答AAAI>>2022:An Empirical Study of GPT-3 for Few-Shot Knowledge-Based VQA
  6. 基于J2EE的Ajax宝典------ AjaxTags
  7. 经典SQL语句大全(绝对的经典)
  8. 都市霓虹灯设计欣赏图鉴。
  9. vscode 插件导出_vscode插件篇
  10. 实战案例|聚焦攻击面管理,腾讯安全威胁情报守护头部券商资产安全