一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

搜索
楼主: hylboo

[其他综合] 求助:按键和位选在同一片595上怎么扫键

[复制链接]
发表于 2013-9-21 22:05 | 显示全部楼层
ayumi7 发表于 2013-9-21 21:35
如果用中断  没按键的 时候 不执行 键盘扫描  怎么会体现不了优势?

要不停的去检测按键每检测一次,要把595重新写过一遍
和164一样了,595是带锁存的,这样和164差不多
回复

使用道具 举报

发表于 2013-9-22 09:47 | 显示全部楼层
stc15f104e版本的白光控制板就是这样的。
回复

使用道具 举报

发表于 2013-9-22 11:34 | 显示全部楼层
gw168sh 发表于 2013-9-21 22:05
要不停的去检测按键每检测一次,要把595重新写过一遍
和164一样了,595是带锁存的,这样和164差不多

你玩过单片机?  中断懂不懂?  不按键的时候不需要去扫描按键啊  
回复

使用道具 举报

发表于 2013-9-22 17:19 | 显示全部楼层
ayumi7 发表于 2013-9-22 11:34
你玩过单片机?  中断懂不懂?  不按键的时候不需要去扫描按键啊

中断定时去扫描,不还是扫描啊,可能较164的显示效果要好些,你说不按键的时候不需要扫描,单片机知道你啥时候去按按键吗?

其实不管是独立按键,还是这样的,都是要扫描的
如果IO够的话,不要这样用,稍微有点麻烦。

我之前是这样做的,定时器中断的时候,把要检测的(595)脚拉低(K1),如:送1111 1110  然后读按键IO,如果低电平说明按键K1按下了,如果高则没有。
在把要检测的(595)脚拉低(K2),如:送1111 1101  然后读按键IO,如果低电平说明按键K2按下了,如果高则没有。

依次把按键都检测完,就完成了一次扫描。
看起来麻烦,其实挺快的,显示暂停一下而已,人眼看不到的。

我刚学的,请老师多多指教。

点评

什么叫做外部中断 自己看看去  发表于 2013-9-22 19:15
回复

使用道具 举报

发表于 2013-9-22 17:35 | 显示全部楼层
本帖最后由 gw168sh 于 2013-9-22 17:38 编辑

刚又看了图片,他这样编程比我之前的办法要好
送个位的同时,检测一下按键是否有按下,
送十位的同时,检测一下按键是否有按下,
送百位的同时,检测一下按键是否有按下,
送千位的同时,检测一下按键是否有按下,

显示函数()
{
显示个位1110       if((key==0) &&(位))  //个位按键成立,
显示十位1101      if ((key==0) &&(位)) //十位按键成立
显示百位1011      if  ((key==0)&&(位))   //百位按键成立
显示千位0111      if ((key==0) &&(位))  //千位按键成立

}
不用去扫描,只需要去判断即可,基本不会浪费时间很好的办法



回复

使用道具 举报

 楼主| 发表于 2013-9-22 19:17 | 显示全部楼层
本帖最后由 hylboo 于 2013-9-22 19:19 编辑
gw168sh 发表于 2013-9-22 17:35
刚又看了图片,他这样编程比我之前的办法要好
送个位的同时,检测一下按键是否有按下,
送十位的同时,检 ...

这个方法的确不错
我用的这种方法,将扫键作为显示的一种,键多效果好像不太好,

显示()

case x:位x;
.
.
case key:扫键;




回复

使用道具 举报

发表于 2013-9-22 20:20 | 显示全部楼层
确实,用外部中断是最好的办法,没有想到这点。谢谢指点
回复

使用道具 举报

发表于 2013-9-22 20:26 | 显示全部楼层
hylboo 发表于 2013-9-22 19:17
这个方法的确不错
我用的这种方法,将扫键作为显示的一种,键多效果好像不太好,

你把按键脚设为外部中断,低电平触发
显示的时候,总要有一位输出低电平的,如果没有按下就不会去检测按键

当有按键按下时,相对与单片机来说,手按下去的时间还是比较长的,总会等到低电平让单片机中断
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-8-19 12:28 , Processed in 0.032937 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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