找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3357|回复: 6
打印 上一主题 下一主题
收起左侧

单片机io口的复用问题,求大神带

[复制链接]
跳转到指定楼层
楼主
ID:496604 发表于 2019-5-3 12:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机的P2^0,P2^1,P2^2控制38译码器的三个引脚,三八译码器控制8个数码管的使能,同时P2的8个口作为矩阵按键的输入和输出,其中P2^0,P2^1,P2^2作为输入1输入2输入3,如何使按键矩阵扫描的同时,可以由数码管显示出哪一个按键被按下?想了好久想不懂,非常感谢.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:401564 发表于 2019-5-3 21:37 | 只看该作者
一个单片机有那么多的IO,你一定要这样用吗?
你这样用肯定是不行的,不用多想
一个LED亮或者是不亮,是通过一个IO电平的变化去控制的
一个IO的按键输入就会产生一个电平的变化,那么,当你按下按键的时候电平就产生变化了,LED也就跟着亮或者灭了
回复

使用道具 举报

板凳
ID:522450 发表于 2019-5-3 22:28 | 只看该作者
38译码器后增加一个锁存器,另外需要一个io口控制锁存器使能端,先通过P2口输出位选信号,决定哪个数码管接受收据,之后锁存,然后再扫描键位,扫描到后输出到段选锁存器,你应该有个段选锁存器的,然后输出对应的按键数据,就可以了吧,从逻辑上应该是可以的,但是锁存器的使能端需要增加一个io口控制。
回复

使用道具 举报

地板
ID:144730 发表于 2019-5-4 15:23 | 只看该作者
建一个变量,把p2口的值赋值给这个变量,通过读这个变量的值就知道哪个按键按下了
回复

使用道具 举报

5#
ID:496604 发表于 2019-5-4 17:34 | 只看该作者
Y_G_G 发表于 2019-5-3 21:37
一个单片机有那么多的IO,你一定要这样用吗?
你这样用肯定是不行的,不用多想
一个LED亮或者是不亮,是 ...

因为数码管扫描是有时间差的,小于十微秒的人眼看不到,在这个空隙可以扫描按键
回复

使用道具 举报

6#
ID:496604 发表于 2019-5-4 17:35 | 只看该作者
tigerlyt 发表于 2019-5-3 22:28
38译码器后增加一个锁存器,另外需要一个io口控制锁存器使能端,先通过P2口输出位选信号,决定哪个数码管接 ...

谢谢,但是锁存器这个,,,暂时不采用
回复

使用道具 举报

7#
ID:158375 发表于 2019-5-5 10:58 | 只看该作者
利用人眼的视觉暂留,在每次改变显示图像之前,用很短的时间检查按键,是完全可以并大量使用这种方法。
你可以看看按键芯片资料例如传统的键盘智能控制芯片HD7279A。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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