课程设计题一:八人抢答器
要求:
1、八人抢答逻辑:只有一个最先抢答有效。
2、在主持人控制下,10秒内抢答有效。
3、采用数码管显示抢答10秒倒计时,若有抢答直接结束,显示结果。
4、抢答结束后用数码管显示抢答结果:抢答有效人编号;若有异常(提前抢答,犯规),显示抢答人编号和E,本次抢答结束 。
5、设主持人控制键、复位键。
控制键:启动抢答
复位键:系统复位
6、开始、正常结束、抢答结束、违规抢答采用声音提示。
7、最后5S开始倒计时的时候有滴滴滴的计时音。
获取该程序的方式:
1、CSDN下载:
https://download.csdn.net/download/qq_38351824/11267213
一、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; //修改倒计时第二处,共两处之后的请下载进行查看,注释非常的全
课程设计题一:八人抢答器相关推荐
- 在设计四人抢答器中灯全亮_数字电子技术课程设计报告(四人抢答器).doc
Word格式 完美整理 数字逻辑电路 课程设计报告 系 (部): 三 系 专 业: 通 信 工 程 班 级: 12 通 信 2 班 姓 名: 杨 超 学 号: 20120306201 成 绩: 指导老 ...
- HNU工训中心: 三人表决器及八人抢答器实验报告
工训中心的牛马实验 三人表决器: 实验目的 1) 辨识数字IC功能说明. 2) 测试数字集成门电路,掌握输出故障排除.使用注意事项. 3) 掌握逻辑函数搭建三人表决器. 2.实验资源 HBE硬件基础电 ...
- 三人表决器与八人抢答器实验
三人表决器与八人抢答器实验 三人表决器实验报告 一.实验目的 1.辨识数字IC功能说明. 2.测试数字集成门电路,掌握输出故障排除.使用注意事项. 3.掌握逻辑函数搭建三人表决器. 二.实验资源 1. ...
- 单片机六位抢答器c语言程序,单片机八人抢答器程序设计
有一个<单片机八人抢答器程序设计>的题目. 设计要求: 利用 KEIL 软件编制控制程序. 利用 PROTEUS 仿真软件,绘制单片机控制系统: P1 口接 8 个按钮,编号为1.2.3. ...
- 八人抢答器讲解_八人抢答器
有一个<单片机八人抢答器程序设计>的题目.设计要求:利用 KEIL 软件编制控制程序.利用 PROTEUS 仿真软件,绘制单片机控制系统:P1 口接 8 个按钮,编号为1.2.3....7 ...
- Verilog实现八人抢答器
Verilog实现八人抢答器 一设计需求 二模块划分和代码 1.抢答模块 2.倒计时模块 3.分频模块 4.扫描显示模块 5.蜂鸣器 三.顶层 四.一些问题及总结 一设计需求 抢答器由FPGA中ver ...
- 八人抢答器讲解_课程设计题一:八人抢答器
要求: 1.八人抢答逻辑:只有一个最先抢答有效. 2.在主持人控制下,10秒内抢答有效. 3.采用数码管显示抢答10秒倒计时,若有抢答直接结束,显示结果. 4.抢答结束后用数码管显示抢答结果:抢答有效 ...
- 八人抢答器讲解_八人抢答器_课程设计.doc
编号: 1 电力电子技术课程设计 报告书 课 题: 数字式竞赛抢答器 院 (系): 机电工程学院 专 业: 电气工程及其自动化 学生姓名: 蒋岷君 学 号: 0800120313 题目类型:(理论研究 ...
- 八人抢答器讲解_八人智力竞赛抢答器
1 摘 要 本报告设计的八路智力竞赛抢答器电路主要采由 74 系列常用集成电路组成,涉及到触 发器.编码器.加法器.译码器和 RC 电路组成的多谐振荡电路.该抢答器具有基本的抢答 功能, 通过共阴极数 ...
最新文章
- 底部导航栏Bottom navigation规范指南
- 班尼机器人怎么拆_512个焊点独自焊完,武汉一高中生在机器人比赛中摘得五块奖牌...
- asp.net写入日志到文本文件
- Macaca:南方航空人工测试的拯救者
- 免费人脸识别工具可以跟踪社交媒体网站上的人
- Zookeeper(三)——选举机制
- (190)FPGA变量初始化方法initial
- 【less-11】基于SQLI的POST字符型SQL注入
- Win7下使用VFW库连接摄像头
- html字体颜色闪动,HTML最简单的文字闪烁代码
- 用android实现GB28181前端设备接入平台
- python:对英文段落进行分句(对一段英语进行整句切分,切分句子)
- 【Lerna 基本使用】
- 男人和女人是怎样吹牛的
- 特殊矩阵——对称矩阵(Symmetric Matrix)
- 深入了解中文版AutoCAD 2022:功能、优势和应用
- [ERROR] Slave SQL for channel ‘‘: Could not execute Write_rows event on table xxx.xxx; Duplicate ent
- 5G有源、无源室分对比
- python产品发布会_阅读虫师django开发发布会系统以及django开发Web接口分享
- Dr_can Kalman Filter学习笔记(三)
热门文章
- 牛逼!知道这100 个网络基础知识,成了半个网络高手!(文末附PDF版本)
- 产品思维训练 | 百度网盘的会员制变更
- (嵌入式)ARM开发环境入门-----一个简单的LED灯闪烁的实现
- Spring实现策略模式
- <<视觉问答AAAI>>2022:An Empirical Study of GPT-3 for Few-Shot Knowledge-Based VQA
- 基于J2EE的Ajax宝典------ AjaxTags
- 经典SQL语句大全(绝对的经典)
- 都市霓虹灯设计欣赏图鉴。
- vscode 插件导出_vscode插件篇
- 实战案例|聚焦攻击面管理,腾讯安全威胁情报守护头部券商资产安全