八位抢答器【51单片机】
设计目的:设计一个八路抢答器,抢答时间为30S倒计时,抢到后,有10S的回答问题时间
#include <reg52.h>
#include <absacc.h>
unsigned char code SEG[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管的断码表,共阴级
unsigned char dispbuf[2]={0,0}; //显示缓冲区百十个位
unsigned char flag=0; //1s到标志位
sbit setting=P3^0;
sbit opening=P3^1;
sbit beep=P3^7;
unsigned char number;//存放按键抢答号
unsigned char m;
unsigned char mm=30;//存放答题30秒
/*
定时器初始化函数
@ 彭王冲
*/
void delay();
void display(unsigned char m);
unsigned char anjian();//函数声明
void Timer0_Init()
{ TMOD=0x01; //定时器0方式1TH0=(65536-5000)/256; //定时5msTL0=(65536-5000)%256;ET0=1; //开中断EA=1;TR0=1; //开定时器0
}
void Timer0_ISR() interrupt 1 using 0
{ static unsigned char i=0,k=0;//其中m和mm分别为5秒倒数计时和30秒倒数计时TH0=(65536-5000)/256; //重赋初值TL0=(65536-5000)%256;k++;if(k==200) { k=0;if(mm==0)mm=0;elsemm--;}if(mm==3){for(m=3;m--;m>0){beep=!beep;delay();}}P1=0xff;//关闭数码管if(i==2)P1=SEG[number];elseP1=SEG[dispbuf[i]];P3 = ~(0x08<<i);i++;if(i==3)i=0;display(mm);}
void display(unsigned char m)
{dispbuf[1]= m/10 ; //获取十位dispbuf[0]= m%10 ; //获取个位
}
//盐水
void delay()
{ unsigned char i;for(i=0;i<120;i++); //延时1ms
}void main()
{ Timer0_Init();while(1){ if(opening==0)mm=30;if(P2!=0xff)//如果有按键按下,则返回按键值{number=anjian();mm=10;while(1){if(opening==0){mm=30;number=0;break;}}}}
}
//案件处理函数
unsigned char anjian()
{switch(P2){case 0xfe:return 1;break;case 0xfd:return 2;break;case 0xfb:return 3;break;case 0xf7:return 4;break;case 0xef:return 5;break;case 0xdf:return 6;break;case 0xbf:return 7;break;case 0x7f:return 8;break;default:return 0;}
}
八位抢答器【51单片机】相关推荐
- 八路抢答器c语言程序,八路抢答器-51单片机(附Proteus仿真、C代码、原理图及PCB、论文和元器件清单)...
获取全套设计资源,请见后文说明- 设计要求 1)抢答器同时供8名选手或2个代表队比赛,分别用8个按钮S0-S7表示: 2)设置一个系统清除和抢答控制开关S,该开关由主持人控制: 3)抢答器具有锁存与显 ...
- c语言写51单片机八路抢答器,51单片机八路抢答器的程序问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 各位大佬,我是一名单片机小白,要求一个选手通过P2按键抢答后其他选手按下时没反应,可是我的程序按了其他按键数字也跟着变,换了几种方式都改变不了,请大家帮我 ...
- 八位抢答器原理图与PCB
八位抢答器原理图与PCB
- 51单片机八位抢答器c语言设计,基于51单片机八路抢答器的设计
基于51单片机八路抢答器的设计 毕业设计(论文)题 目:基于 51 单片机八路抢答器的设计 系 部: 专 业: 学 号: 学生姓名: 指导教师姓名: 指导教师职称: 2013 年 xx 月 xx 日X ...
- proteus四人抢答器_51单片机四路抢答器PROTEUS仿真报告(含C语言程序).doc
51单片机四路抢答器PROTEUS仿真报告(含C语言程序) HEFEI UNIVERSITY 四路抢答器仿真设计 题 目 四路抢答器仿真设计 班 级 自动化(1)班 成 员 YCT * PT * WW ...
- c语言抢答器程序,单片机六路抢答器C语言程序
<单片机六路抢答器C语言程序>由会员分享,可在线阅读,更多相关<单片机六路抢答器C语言程序(4页珍藏版)>请在人人文库网上搜索. 1.单片机六路数显计时抢答器c语言程序#inc ...
- c51抢答器程序汇编语言,c51单片机汇编语言单片机八位抢答器程序
OK EQU 20H RING EQU 22H ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP T0INT ORG 0013H AJ ...
- html抢答器代码,单片机八路抢答器代码+Proteus仿真
#include sbit k1=P1^0; sbit k2=P1^1; sbit k3=P1^2; sbit k4=P1^3; sbit k5=P1^4; sbit k6=P1^5; sbit k7 ...
- c51单片机c语言音乐播放器,51单片机做音乐播放器的问题
主程序代码如下: #include "ZNFAT.H" #include "sd.h" #include "uart.h" #include ...
- 【单片机系列】基于51单片机的16路抢答器
1.功能介绍 抢答器是一种应用非常广泛的设备,在各种竞赛.抢答场合中,它能迅速.客观的分辨出最先获得发言权的选手.早期的抢答器只有几个三极管.可控硅.发光管等组成,能通过发光管的指示辨认出选手 ...
最新文章
- LeetCode简单题之自除数
- AUC是什么?AUC的的意义是什么?AUC的判断分类器优劣标准是什么?AUC如何计算?
- 【云栖大会】人工智能:智,在云端
- HTTP API 设计指南(基础部分)
- Careercup | Chapter 1
- 中国最懂自动驾驶量产公司秀肌肉:自动驾驶算力怪兽、百亿参数云端超大模型、百万公里路测里程...
- Fiddler抓取https相关设置
- linux 触摸屏在dev的那个目录下,各硬件设备在Linux中的文件名
- extern c作用_extern “C”的作用详解
- AutoPostBack与AutoComplete介绍
- 中缀表达式转化成后缀表达式
- AppStore安装历史版本,利用Charles抓包安装历史版本
- 在质疑声中,81岁的丁肇中或将证实“反物质世界”的存在
- 【重磅首发新品】AM335x全面升级处理器——AM62x,四核Cortex-A53+M4F,主频1.4GHz
- nodejs微信公众号开发第一步(接入指南)--wechat模块
- 『喜报』WoS数据C1和EM字段不再重复
- 北京小学几年级学计算机,北京小学低年级开学时间2021最新消息
- python之循环语句
- python是一种跨平台开源解释型的_Python是一种跨平台、开源、免费的动态编程语言。...
- 一招解决苹果签名包掉包问题,一年只需签一次