设计目的:设计一个八路抢答器,抢答时间为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单片机】相关推荐

  1. 八路抢答器c语言程序,八路抢答器-51单片机(附Proteus仿真、C代码、原理图及PCB、论文和元器件清单)...

    获取全套设计资源,请见后文说明- 设计要求 1)抢答器同时供8名选手或2个代表队比赛,分别用8个按钮S0-S7表示: 2)设置一个系统清除和抢答控制开关S,该开关由主持人控制: 3)抢答器具有锁存与显 ...

  2. c语言写51单片机八路抢答器,51单片机八路抢答器的程序问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 各位大佬,我是一名单片机小白,要求一个选手通过P2按键抢答后其他选手按下时没反应,可是我的程序按了其他按键数字也跟着变,换了几种方式都改变不了,请大家帮我 ...

  3. 八位抢答器原理图与PCB

    八位抢答器原理图与PCB

  4. 51单片机八位抢答器c语言设计,基于51单片机八路抢答器的设计

    基于51单片机八路抢答器的设计 毕业设计(论文)题 目:基于 51 单片机八路抢答器的设计 系 部: 专 业: 学 号: 学生姓名: 指导教师姓名: 指导教师职称: 2013 年 xx 月 xx 日X ...

  5. proteus四人抢答器_51单片机四路抢答器PROTEUS仿真报告(含C语言程序).doc

    51单片机四路抢答器PROTEUS仿真报告(含C语言程序) HEFEI UNIVERSITY 四路抢答器仿真设计 题 目 四路抢答器仿真设计 班 级 自动化(1)班 成 员 YCT * PT * WW ...

  6. c语言抢答器程序,单片机六路抢答器C语言程序

    <单片机六路抢答器C语言程序>由会员分享,可在线阅读,更多相关<单片机六路抢答器C语言程序(4页珍藏版)>请在人人文库网上搜索. 1.单片机六路数显计时抢答器c语言程序#inc ...

  7. c51抢答器程序汇编语言,c51单片机汇编语言单片机八位抢答器程序

    OK EQU 20H RING EQU 22H ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP T0INT ORG 0013H AJ ...

  8. 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 ...

  9. c51单片机c语言音乐播放器,51单片机做音乐播放器的问题

    主程序代码如下: #include "ZNFAT.H" #include "sd.h" #include "uart.h" #include ...

  10. 【单片机系列】基于51单片机的16路抢答器

     1.功能介绍    抢答器是一种应用非常广泛的设备,在各种竞赛.抢答场合中,它能迅速.客观的分辨出最先获得发言权的选手.早期的抢答器只有几个三极管.可控硅.发光管等组成,能通过发光管的指示辨认出选手 ...

最新文章

  1. LeetCode简单题之自除数
  2. AUC是什么?AUC的的意义是什么?AUC的判断分类器优劣标准是什么?AUC如何计算?
  3. 【云栖大会】人工智能:智,在云端
  4. HTTP API 设计指南(基础部分)
  5. Careercup | Chapter 1
  6. 中国最懂自动驾驶量产公司秀肌肉:自动驾驶算力怪兽、百亿参数云端超大模型、百万公里路测里程...
  7. Fiddler抓取https相关设置
  8. linux 触摸屏在dev的那个目录下,各硬件设备在Linux中的文件名
  9. extern c作用_extern “C”的作用详解
  10. AutoPostBack与AutoComplete介绍
  11. 中缀表达式转化成后缀表达式
  12. AppStore安装历史版本,利用Charles抓包安装历史版本
  13. 在质疑声中,81岁的丁肇中或将证实“反物质世界”的存在
  14. 【重磅首发新品】AM335x全面升级处理器——AM62x,四核Cortex-A53+M4F,主频1.4GHz
  15. nodejs微信公众号开发第一步(接入指南)--wechat模块
  16. 『喜报』WoS数据C1和EM字段不再重复
  17. 北京小学几年级学计算机,北京小学低年级开学时间2021最新消息
  18. python之循环语句
  19. python是一种跨平台开源解释型的_Python是一种跨平台、开源、免费的动态编程语言。...
  20. 一招解决苹果签名包掉包问题,一年只需签一次

热门文章

  1. rufus 制作 Android U盘启动盘的方法
  2. VSCode工具右键单击后无Open In Default Browser选项
  3. 懒人工作源码分析(1)
  4. 几个小伙伴的进入信息安全行业的经历
  5. 生活随记 - 2020国庆第四天
  6. 手机号归属地查询实例
  7. docker打包informix镜像
  8. voice VLAN配置案例
  9. 毕业设计论文选题系统系统用例图_基于UML的毕业设计管理系统的分析与设计
  10. 人类(行为)动力学(1)——初步了解