找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机8路抢答器,按键输入电路8个独立按键转换成两行的矩阵按键

查看数: 4712 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-12-6 22:38

正文摘要:

#include<reg51.h> typedef unsigned char uchar; typedef unsigned int  uint; sbit K0=P3^0;                sbit beep=P3^7;  ...

回复

ID:169944 发表于 2018-12-7 17:45
你把按键检测函数放在中断里边,一直检测,检测到有按键按下,保存键值,加个标志,中断禁能,在主函数显示键值,清标志,然后重新使能就可以了
ID:439133 发表于 2018-12-7 16:13
wulin 发表于 2018-12-7 09:30
这个8路抢答器程序本身设计就有问题,8个抢答按键逐个判断,虽然单片机速度足够快,但从逻辑上评判这是不公 ...

可以麻烦您帮我修改一下void key()内的按键扫描函数嘛?
ID:441503 发表于 2018-12-7 11:03
mark,学习下
ID:213173 发表于 2018-12-7 09:30
本帖最后由 wulin 于 2018-12-7 09:50 编辑

这个8路抢答器程序本身设计就有问题,8个抢答按键逐个判断,虽然单片机速度足够快,但从逻辑上评判这是不公平的。楼主想要把抢答按键做成2*4矩阵,除了节省2个IO口外并不能消除甚至扩大了不公平。因为程序处理矩阵按键往往比逐个判断更复杂。如果用同一组端口设8个独立按键,在程序进入抢答阶段设置一个有条件死循环,高速读键(或用中断方式)。只要P1 != 0xff,立即锁死所有按键,保存键值,跳出死循环,再后续处理得到的数据。

评分

参与人数 1黑币 +10 收起 理由
聆烟雨 + 10 很给力!

查看全部评分

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表