#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=P1^6;

sbit k8=P1^7;

sbit k_1=P3^0;

sbit k_2=P3^1;

sbit k_3=P3^2;

sbit k_4=P3^3;

sbit beep=P3^7;

unsigned int ms;          //毫秒

unsigned int s,t0;              //显示值

unsigned char biaozhi,buzhou=0;        //抢答标志,步骤

unsigned char led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};

void delay(unsigned int t)//延时

{

unsigned int i,j;

for(i=0;i

for(j=0;j<110;j++);

}

void disp()//显示

{

unsigned int ge,shi;

ge=s%10;          //提取个位

shi=s/10;  //提取十位

P2=0xfe;

P0=led[ge];  //显示个位

delay(5);

P2=0xfd;

P0=led[shi];        //显示十位

delay(5);

}

void ea()//显示开机界面

{

unsigned char ci;

while(ci<200)//循环200次(持续一段时间)

{

P2=0xfe;

P0=0x77;  //显示A

delay(5);

P2=0xfd;

P0=0x79;        //显示E

delay(5);

ci++;

}

}

void keys()        //抢答按键

{ /*抢答之后显示数值,改变标志终止抢答*/

if(k1==0&&biaozhi==0){s=1;biaozhi=1;beep=0;delay(500);beep=1;}

if(k2==0&&biaozhi==0){s=2;biaozhi=1;beep=0;delay(500);beep=1;}

if(k3==0&&biaozhi==0){s=3;biaozhi=1;beep=0;delay(500);beep=1;}

if(k4==0&&biaozhi==0){s=4;biaozhi=1;beep=0;delay(500);beep=1;}

if(k5==0&&biaozhi==0){s=5;biaozhi=1;beep=0;delay(500);beep=1;}

if(k6==0&&biaozhi==0){s=6;biaozhi=1;beep=0;delay(500);beep=1;}

if(k7==0&&biaozhi==0){s=7;biaozhi=1;beep=0;delay(500);beep=1;}

if(k8==0&&biaozhi==0){s=8;biaozhi=1;beep=0;delay(500);beep=1;}

}

void set_time()        //设置时间,一次5秒

{

if(k_2==0&&biaozhi==0&&s>0)

{

while(k_2==0);

s-=5;

}

if(k_3==0&&biaozhi==0&&s<95)

{

while(k_3==0);

s+=5;

}

}

void main()

{

/*配置定时器*/

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

ea();//开机显示EA

while(1)

{

if(buzhou==0)         set_time();

if(k_1==0&&biaozhi==0&&P1==0xff&&s!=0)//开始抢答

{

while(k_1==0);

for(t0=3;t0>0;t0--)

{

P2=0xfe;

P0=led[t0]; //3秒倒计时

beep=0;delay(80);beep=1;

delay(1000);

}

P2=0xfc;

P0=0x40;

beep=0;delay(1000);beep=1;

buzhou=1;

TR0=1;        //打开定时器开关

}

if(P1!=0xff&&buzhou==1&&t0==0) //抢答

{

TR0=0;//关闭定时器开关

keys();

buzhou=3;

}

if(k_4==0)        //清除

{

beep=k_4;

while(k_4==0);

TR0=0;

s=0;

biaozhi=0;

buzhou=0;

beep=1;

}

disp(); //显示

}

}

void zhongduan() interrupt 1

{ /*启动定时器*/

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;//50000=50毫秒

ms++;

if(ms==20&&s>0)//50毫秒x20次=1秒

{

ms=0;

s--;  //倒计时

if(s==0)

{

TR0=0;

biaozhi=0;

buzhou=0;

beep=0;

}

}

}

html抢答器代码,单片机八路抢答器代码+Proteus仿真相关推荐

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

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

  2. 51单片机 八路抢答器+Proteus仿真

    51单片机 八路抢答器+Proteus仿真 Proteus仿真 实例代码1 直观,任意看懂 #include <reg52.h> unsigned char code led[17]={0 ...

  3. c语言六位抢答器课程设计,51单片机八路抢答器课程设计

    ;说明:本人的这个设计改进后解决了前一个版本中1号抢答优先的问题,并增加了锦囊的设置,当参赛选手在回答问题时要求使用锦囊,则主持人按下抢答开始键,计时重新开始. ;八路抢答器电路请看下图是用ps仿真的 ...

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

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

  5. 基于51单片机智能导盲拐杖Proteus仿真

    功能介绍: 采用51单片机作为主控CPU,采用HC-SR04超声波模块测量障碍物距离,LCD1602显示屏显示当前的障碍物距离,并且可以设置报警的阈值,通过传感器测量障碍物的距离的远近来进行相关报警, ...

  6. 51单片机 DHT11+LCD12864温湿度显示 + Proteus仿真

    51单片机 DHT11+LCD12864温湿度显示 + Proteus仿真 采用的接线方式是IIC接口,在Proteus里面仿真太慢了,不知道是电脑古老问题还是怎么,看图像就知道了,有多卡,感觉电脑运 ...

  7. 51单片机ADC0832模数转换+ LCD1602显示+Proteus仿真

    51单片机ADC0832模数转换+ LCD1602显示+Proteus仿真 Proteus仿真 在Proteus SP2仿真过程中发现无法读取ADC0832的数据.解决办法:在proteus安装目录下 ...

  8. 51单片机 DHT11+LCD1602温湿度显示 + Proteus仿真

    51单片机 DHT11+LCD1602温湿度显示+ Proteus仿真 主程序代码 #include <reg52.h> #include <LCD1602.h> #inclu ...

  9. 51单片机 ADC0809模数转换与显示+Proteus仿真

    51单片机 ADC0809模数转换与显示+Proteus仿真 Proteus仿真 实例代码 /*********************************/ #include <reg52 ...

最新文章

  1. Linux 构建一些 开机就可以使用的命令
  2. 2.4g和5g要不要合并_2.4 序列之字符串
  3. 日常生活小技巧 -- win10造字
  4. Windows+VS2015编译caffe+py-faster-rcnn
  5. kotlin学习笔记——枚举、封闭类
  6. 《React Native跨平台移动应用开发》PDF电子书分享
  7. python 列表推导式
  8. java数组的扩容,将两个数组合并成一个数组
  9. 数据库访问接口的代码
  10. wordpress移除/移动/编辑/定制/独显管理员工具AdminBar
  11. 【Beta】Scrum Meeting 3
  12. linkedin客户开发_10个LinkedIn WordPress插件赢得新客户
  13. 【工程源码】基于FPGA的数码管字体,用来在液晶屏上显示数字
  14. Sketch79 mac专业矢量绘图设计
  15. Intel核芯显卡微架构浅析
  16. 大神解读:谷歌 ARCore 就是低配版 Tango,它比苹果 ARKit 好在哪?
  17. linux查看mysql日志信息,Linux下查看mysql错误日志
  18. CIMPLICITY标签导入导出功能简单介绍
  19. 1vrms等于多少伏
  20. 关掉移动光猫的路由功能,用自己的路由器拨号

热门文章

  1. 构建高校生态,华为云HCSD校园沙龙走进新疆大学
  2. Ruo-Yi前后端分离的数据过滤
  3. vlc下载m3u8视频
  4. 诺禾--实验篇之荧光定量 PCR(上)
  5. 智能合约:BUMO 智能合约介绍
  6. 视频教程-清华-尹成老师-Python爬虫day1-Python
  7. 85人教版高中英语第一册第二课 AT HOME IN THE FUTURE
  8. html5 交互作品,20个交互动效很棒的网页设计例子
  9. SAP BASIS ADM100 中文版 Unit 3(2)
  10. windows cmd命令使用ls