请教4x4矩阵键盘

[复制链接]
 楼主| zxser09 发表于 2010-1-25 18:55 | 显示全部楼层 |阅读模式
我现在想写这样一段程序,实现如下功能:我按下第一个键显示0,当我接着按第一个键时数字往上递增,一直到F,到F后归0继续这样循环。按第二个按键显示1,继续按第二个键数字也往上递增。接下来的14个按键 都要有相应功能。请问如何实现,用C的 。
 楼主| zxser09 发表于 2010-1-25 22:24 | 显示全部楼层
HWM 发表于 2010-1-25 23:33 | 显示全部楼层
4X4键盘扫描接口相关设计是非常经典的内容,找本微机原理和接口技术的书好好看看。至于那些功能,(估计)只是为了测试你的接口技术假设的而已,非常简单。
bbsidking 发表于 2010-1-25 23:47 | 显示全部楼层
您是要程序?
 楼主| zxser09 发表于 2010-1-25 23:53 | 显示全部楼层
关键偶现在写不出来~这是我自己想的~·我买了板子在玩···不知道怎么写了
maychang 发表于 2010-1-26 10:03 | 显示全部楼层
很基本的功能。估计楼主以前没有写过多少程序。
检测到有键按下,再检测是否释放,若未释放开始计时,每零点几秒加一,若释放返回。
单片机里面当然需要若干字节记录计数值。根据计数值显示。
需要用到定时中断。
这倒是锻炼新手的一个好习题。
 楼主| zxser09 发表于 2010-1-26 18:05 | 显示全部楼层
哦 p3口用来做按键控制了。这时候再用开定时 和中断,对按键有没影响啊?比如EA=1 啊什么的
maychang 发表于 2010-1-26 18:30 | 显示全部楼层
7楼:
照3楼说的话办。
 楼主| zxser09 发表于 2010-1-26 19:16 | 显示全部楼层
哦,手上没这书```   thanks。16个按键能扫描检测出来,但是用定时中断来怎么实现:当我再次按下第一个按键它能从原来的0变为1,依次这样下去。
 楼主| zxser09 发表于 2010-1-28 20:01 | 显示全部楼层
这么多天 还是不会,高手指点下
maychang 发表于 2010-1-28 20:29 | 显示全部楼层
5楼说买了开发板,基本的几个实验如走马灯,显示单个按键,等等,做了吗?
 楼主| zxser09 发表于 2010-1-28 20:37 | 显示全部楼层
做了··· 基本上都会了···就做到这按键就卡主了··· 独立按键会的!!因为可以设置变量按一下num++ ,但是16个按键对应显示出我按得是哪个键,并且接着按同一个按键往上递增  就不知道怎么实现啊!!!大虾 指点下
maychang 发表于 2010-1-28 20:41 | 显示全部楼层
那么独立按键是如何实现的?是轮流查询各线,还是在定时中断例程里面检查按键?
 楼主| zxser09 发表于 2010-1-28 20:47 | 显示全部楼层
独立按键我就查询那个IO口是否变为低了,要是变低了 我就认为它按下了(稍微延时的),没用到什么定时 和中断!
maychang 发表于 2010-1-28 21:03 | 显示全部楼层
那是低等级的程序。
试写使用定时中断的读键程序。定时中断时间可以设置成10ms,那么就是每10ms检查一次按键,每次检查按键是将键码读入,存到一RAM中,再检查是否与上次读入的键码相同,如相同,可认为已经经过延时,确认此键码(执行操作)并建一个已执行标志(下次若遇已执行标志则不重复执行)。若不同,则将本次键码送入上次键码存储RAM,不能确认(不执行)。
这是比较高级一点的程序。
走马灯也可以利用定时中断。
此帖宜发单片机版面。
maychang 发表于 2010-1-28 21:04 | 显示全部楼层
上面的在定时中断例程中读键完成,再说你那个长按键加一操作。
elenment 发表于 2010-1-28 21:34 | 显示全部楼层
啊 用中断做键盘扫描响应??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

81

主题

208

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

81

主题

208

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部