8路抢答器,有裁判复位
- 定义中断初始化函数,代码如下:
void init(void){EX0=1;ET0=1;EX1=1;ET1=1;EA=1;}
- 定义9秒倒计时函数,用的是空跑延迟的方法,想用定时器的可以自己改,具体代码如下:
void countdown(){int i;for(i=9;i>0;i-- ){P1=~seg[i]; //用的共阳极数码管,数组用了共阴极的所以要非,用的延迟函数,没有用定时器delay(1000);}
设置外部中断0的函数,因为外部中断0的优先级默认比1高,所以不设置优先级了,使用外部中断0来接裁判的复位开始按钮,实现裁判按下后开始9秒倒计时,然后外部中断1才能响应抢答,具体代码如下:
void int0() interrupt 0{EA=0;EX1=1;num=0;countdown();EA=1;}
- 八个选手都通过外部中断1来抢答,所以用了与门判断,实现1人抢答后别的选手按按钮无效,具体代码如下:
void int1() interrupt 2{EA=0;EX1=0; //关闭外部中断1temp=~P2;num=log(temp)/log(2)+1; //计算哪个选手按下了EA=1;}
- 主函数,主函数初始化中断和用while循环显示抢答未开始的初始0,具体代码如下:
void main(void){ //countdown(); init();while(1){ P1=~seg[num]; }}
仿真图
几乎都是用这个人的设计和代码,自己加了倒计时51单片机外部中断复用实例-八人抢答器_哔哩哔哩_bilibili
所有代码如下:
#include <reg52.h> #include <math.h>unsigned char seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//数码管字模 unsigned char temp,num; void init(void);void delay(int ms) {int x,y;for(x= ms;x>0;x--)for(y=110;y>0;y--); }void countdown(){int i;for(i=9;i>0;i-- ){P1=~seg[i];delay(1000);} } void main(void){ //countdown(); init();while(1){P1=~seg[num];}}void init(void){EX0=1;ET0=1;EX1=1;ET1=1;EA=1;}void int0() interrupt 0{EA=0;EX1=1;num=0;countdown();EA=1;} void int1() interrupt 2{EA=0;EX1=0;//关闭外部中断1temp=~P2;num=log(temp)/log(2)+1;EA=1;}
8路抢答器,有裁判复位相关推荐
- 单片机8位抢答器实训机电报告_16路抢答器单片机实训报告.docx
<16路抢答器单片机实训报告.docx>由会员分享,可在线阅读,更多相关<16路抢答器单片机实训报告.docx(33页珍藏版)>请在微传网上搜索. 1.四川信息职业技术学院课程 ...
- 计算机应用系统设计---8路抢答器
<计算机应用系统设计> 具体内容 一.课程设计的内容及其要求 1. 项目要求 设计一个多路定时抢答器.主持人控制抢答开关模块,按下开始键之后开始 抢答.选手使用抢答按键进行地答,显示模 ...
- 带有显示的8路抢答器课程设计
一:课程设计目的 抢答器是竞赛问答中一种常用的必备装置智力竞赛时一般分为若干组各组对主持人提出的问题进行抢答.抢答时要判定哪组优先并予以指示和鸣叫.其设计包含了组合逻辑电路和时序逻辑电路的部分原理.. ...
- 单片机六位抢答器c语言程序,八路电子抢答器(基于51单片机的8路抢答器设计C语言程序)...
哥,你还有AT89C51单片机8路抢答器的资料吗 哥,你还有AT89C51单片机8路抢答器的资料吗 AT89C51单片机8路抢答器的资料 源程序如下 #include #define uchar un ...
- 详细教程||基于51单片机开发的十路抢答器设计
一.设计要求 (1)抢答器同时供10名选手或10个代表队比赛. (2)设置一个系统清除和抢答控制开关S,该开关由主持人控制. (3)抢答器具有锁存与显示功能.即选手按动按钮,锁存相应的编号,并在LED ...
- 数电课设-4路抢答器
前言: 这是之前帮朋友做的一个4路抢答器.由于时间太久了,我已经忘记怎么做的了.现分享仿真原理图给大家,希望对大家有所帮助. 设计要求: 4名选手编号为:S1,S2, S3 ,S4.各有一个抢答按钮, ...
- 8路抢答器proteus仿真 2种电路图
8路抢答器proteus仿真 第一种 涉及到的元件有 1. 7448(芯片) 2. res(电阻) 3. OR_4(4路或门) 4. BUTTON(按钮) 5. OR_8(8路或门 ...
- c语言抢答器程序,单片机六路抢答器C语言程序
<单片机六路抢答器C语言程序>由会员分享,可在线阅读,更多相关<单片机六路抢答器C语言程序(4页珍藏版)>请在人人文库网上搜索. 1.单片机六路数显计时抢答器c语言程序#inc ...
- 【单片机系列】基于51单片机的16路抢答器
1.功能介绍 抢答器是一种应用非常广泛的设备,在各种竞赛.抢答场合中,它能迅速.客观的分辨出最先获得发言权的选手.早期的抢答器只有几个三极管.可控硅.发光管等组成,能通过发光管的指示辨认出选手 ...
最新文章
- python输入一组身高_一起学Python系列之用户输入
- 企业ERP选型的两难困惑
- python进阶04IO的同步异步,阻塞非阻塞
- VS2010下配置OpenCV2.2
- ThinkPhp学习01
- 190313每日一句
- 【服务器托管单线、双线以及多线如何区别】
- Oracle 官网登录账户 下载资源
- 忆过去 想未来 人有情
- 牛客小白月赛1 F.三视图
- excel查找出不来了_Excel技巧:明明看到1了,为什么查找不到?
- iOS 真机模拟内存警告
- 1024@程序员:图灵社区福利来了,请本人签收
- 使用Stream操作List
- 基于Arduino的土壤湿度检测
- 人的顶级能量从哪里获取?
- 大数据面前无隐私 到底谁才是老大哥
- 阿里云esc服务器真垃圾啊
- ATmega128型号标识说明
- 写matlab代码思考1-条件语句判断条件怎么写好
热门文章
- [论文研读]天天看到的 ground truth,到底是什么意思?
- sequelize 向数据库插入数据,自增id该如何添加
- wps文本中表格表头重复_WPS表格如何在每页都设置相同表头,原来是这样的
- clock_gettime
- 内置CRC于文本文件中的方法
- world quant global alphathon 全球总决赛 第二名经验分享
- eclipse链接Hadoop集群时报错Error:Call From xxx/xxx.xxx.xxx.xxx to hostname1:9000 failed on connection excep
- 将实验数据用matlab连成平滑的曲线图
- 区块链投资需要多少钱
- Spring Boot 之 MDC 实现全链路调用日志跟踪