加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

8路抢答器,小白出品,c语言编写

2018/07/25
81
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

家里领导有令,命我做个抢答器给她,领导有令,怎敢不从,与领导沟通,做个八路抢答器。
首先,做这东西,单片机永远比数字电路简单,而且成本更低。但是C语言都忘光了,又找出郭天祥的书啃了一天。
那就开始做吧
其实逻辑很简单,AT89C51单片机检测io口,有信号,显示并锁存。复位重新开始。
要显示信号,就驱动数码管最简单,八路抢答器,需要8个io口,数码管需要7个io,那单片机选择最简单的stc89c52
要想显示数码管数字,先定义数码管字符
语句:unsigned char code disp[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0xbf}
其中0xf9----0xbf为16进制机器懂得语言
单片机检测io语句:P0=0xff
有按键动作,要识别是人为抢答按下还是干扰,所以要加一个消抖
语句:
button=P0
delay(1200)
判断是抢答按键,那就开始io动作
语句:
button=P0
switch(button)
再判断io是p几,也就是按键值跳转
语句:
case 0xfe: P1=disp[0];delay(10000);while(1);break; //0按下,显示1,待机
case 0xfd: P1=disp[1];delay(10000);while(1);break; //1按下,显示2,待机
case 0xfb: P1=disp[2];delay(10000);while(1);break; //2按下,显示3,待机
case 0xf7: P1=disp[3];delay(10000);while(1);break; //3按下,显示4,待机
case 0xef: P1=disp[4];delay(10000);while(1);break; //4按下,显示5,待机
case 0xdf: P1=disp[5];delay(10000);while(1);break; //5按下,显示6,待机
case 0xbf: P1=disp[6];delay(10000);while(1);break; //6按下,显示7,待机
case 0x7f: P1=disp[7];delay(10000);while(1);break; //7按下,显示8,待机
default: break;
程序就这些,然后把头文件等组装起来,搞定
下面开始仿真:
模型电路

上电复位

按键检测

程序与仿真搞定,那就开始做实物吧
最小系统版搭个模型出来

完成

测试,1---8抢答正常

复位正常
工作电流16ma
里面电池是:1800mAh*4=7200mAh,够用好长时间哈
最后整体图

  • 八路抢答器.rar
    描述:程序16进制
  • 原文地址.rar
    描述:原文出处

相关推荐

电子产业图谱