amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
楼主: raosibin

4*4按键,状态机思想:定时扫描+多键组合+连_发功能(具有实际应用意义)

  [复制链接]
发表于 2010-8-16 14:33:04 | 显示全部楼层
mark
发表于 2010-9-16 19:16:10 | 显示全部楼层
mark
发表于 2010-9-16 22:01:38 | 显示全部楼层
mark!~
发表于 2010-10-15 20:38:03 | 显示全部楼层
mark
发表于 2010-10-22 20:44:43 | 显示全部楼层
学习一下
发表于 2010-10-22 20:49:07 | 显示全部楼层
学习一下
发表于 2010-10-31 09:27:34 | 显示全部楼层
mark
发表于 2010-11-20 16:43:18 | 显示全部楼层
写的不错,正是我想要的
发表于 2010-11-30 17:16:01 | 显示全部楼层
mark
发表于 2010-12-7 20:21:57 | 显示全部楼层
留个记号。
发表于 2010-12-14 17:32:54 | 显示全部楼层
mark
发表于 2010-12-19 14:25:14 | 显示全部楼层
mark 学习
发表于 2010-12-24 02:08:26 | 显示全部楼层
就冲楼主这精神也得收藏啊,谢谢分享!!慢慢品了
发表于 2010-12-26 12:46:54 | 显示全部楼层
标记
发表于 2011-3-12 13:18:47 | 显示全部楼层
4*4按键,状态机思想
发表于 2011-3-17 16:50:50 | 显示全部楼层
mark
发表于 2011-3-30 17:22:57 | 显示全部楼层
mark
发表于 2011-4-6 22:43:21 | 显示全部楼层
写的不错,顶一下
发表于 2011-4-7 11:21:36 | 显示全部楼层
MARK
发表于 2011-6-18 11:13:27 | 显示全部楼层
标记下
发表于 2011-6-18 13:46:28 | 显示全部楼层
pass
发表于 2011-6-18 14:01:17 | 显示全部楼层
mark
发表于 2011-6-18 14:06:06 | 显示全部楼层
mark
发表于 2011-6-20 15:20:27 | 显示全部楼层
mark
发表于 2011-6-20 21:53:41 | 显示全部楼层
学习一下
发表于 2011-6-20 22:50:55 | 显示全部楼层
mark
发表于 2011-6-26 22:37:51 | 显示全部楼层
mark
发表于 2011-7-24 19:58:48 | 显示全部楼层
正在学习键盘 有些还看不懂 努力中
发表于 2011-8-2 23:37:33 | 显示全部楼层
55楼 eduhf_123 经历 那个图像丑死了,有点像猪头,看着恶心。
发表于 2011-8-3 02:04:29 | 显示全部楼层
马老师的东西一定要顶的!呵呵
发表于 2011-8-3 09:03:56 | 显示全部楼层
mark
发表于 2011-8-5 11:22:32 | 显示全部楼层
学习了,,,,,
发表于 2011-8-11 09:54:01 | 显示全部楼层
mark一下,呵呵,以前没这么写过,学习了。哈哈~
发表于 2011-8-20 09:27:58 | 显示全部楼层
学习了
发表于 2011-9-4 23:08:24 | 显示全部楼层
回复【6楼】machao
-----------------------------------------------------------------------

马老师好,我一直有个疑问,我觉得LZ的状态1也是没有必要的。
我是这么想的,一旦状态0检测到变化,然后就转到状态1,这中间不是就延时了一定时间了么(不是就已经消抖了么)?这时候如果再检测到有按键按下,那应该就是真的有按键按下了。
不知道理解是否有误,请马老师赐教
发表于 2011-9-5 09:29:15 | 显示全部楼层
学习
发表于 2011-10-21 11:49:05 | 显示全部楼层
学习了
发表于 2011-10-21 12:21:52 | 显示全部楼层
学习了
发表于 2011-10-30 10:31:54 | 显示全部楼层
MARK
发表于 2011-10-30 11:15:01 | 显示全部楼层
mark
发表于 2011-10-31 12:12:16 | 显示全部楼层
mark
发表于 2011-11-5 19:21:35 | 显示全部楼层
不错,顶顶
发表于 2011-11-5 19:34:07 | 显示全部楼层
mark 状态机 组合键
发表于 2011-11-5 21:21:13 | 显示全部楼层
mark
发表于 2011-11-5 21:26:05 | 显示全部楼层
不错!
发表于 2011-11-17 11:29:22 | 显示全部楼层
mark!
发表于 2011-11-17 11:32:52 | 显示全部楼层
mark!
发表于 2011-11-19 20:08:58 | 显示全部楼层
学习!
发表于 2011-11-22 20:38:12 | 显示全部楼层
mark!!
发表于 2011-11-22 21:02:29 | 显示全部楼层
mark
发表于 2011-12-4 10:06:14 | 显示全部楼层
呵呵!新手,先做记号,现在正在摸索单片机键盘的输入!
发表于 2011-12-4 10:46:54 | 显示全部楼层
mark
发表于 2011-12-4 11:22:24 | 显示全部楼层
学习 mark
发表于 2011-12-4 11:29:25 | 显示全部楼层
mark.....不错的资料!
发表于 2011-12-4 12:08:51 | 显示全部楼层
df
发表于 2011-12-4 12:39:54 | 显示全部楼层
mark
发表于 2011-12-5 10:18:46 | 显示全部楼层
回复【158楼】weizhe15
-----------------------------------------------------------------------

学习了
头像被屏蔽
发表于 2011-12-27 23:20:02 | 显示全部楼层
mark
发表于 2011-12-28 00:09:33 | 显示全部楼层
马克
发表于 2012-2-2 23:40:07 | 显示全部楼层
学习了。
发表于 2012-2-3 02:12:27 | 显示全部楼层
mark 4*4按键,状态机思想
发表于 2012-2-16 19:59:41 | 显示全部楼层
mark
发表于 2012-2-27 16:30:34 | 显示全部楼层
mark
发表于 2012-4-9 10:45:28 | 显示全部楼层
留个记号
发表于 2012-4-25 10:09:19 | 显示全部楼层
品味中~~~~~~~
发表于 2012-4-25 10:39:35 | 显示全部楼层
学习标记
发表于 2012-4-25 10:40:40 | 显示全部楼层
实际应用有些按键少些
发表于 2012-5-1 14:53:50 | 显示全部楼层
mark                        
发表于 2012-5-4 08:25:38 | 显示全部楼层
MARK下   
发表于 2012-5-4 09:19:35 | 显示全部楼层
mark,作个参考,想必有用处
发表于 2012-5-13 16:29:49 | 显示全部楼层
学习
发表于 2012-5-25 23:20:06 | 显示全部楼层
#include<reg52.h>
unsigned char delay=0;
sbit key=P3^5;
void init();
main()
{
unsigned char lp=0,time=0,num=0,flag=0,value=0,ldat=0,ndat=0;
init();
P0=0xfe;
P1=0;
while(1){
if(delay){
delay=0;
switch(lp)
{
        case 0:P2=0xf0;if(P2!=0xf0)lp++;if(num++>40)ldat=0;break;
        case 1:if(P2!=0xf0){ndat=P2;P2=ndat|0x0f;ndat=P2;lp++;}else lp=0;num=0;break;
        case 2:if(P2==ndat){if(num++>99)P1=~ndat;}else lp++;break;
        case 3:if(num>99);else{if(ldat!=ndat){ldat=ndat;}else{P0--;}P1=ndat;}num=0;lp=0;break;
}
}
}
}
void init()
{
EA=1;
RCAP2H=55536/256;  
RCAP2L=55536%256;  
TH2=RCAP2H;  
TL2=RCAP2L;
ET2=1;  //开启定时器2中断
TR2=1;  //启动定时器

}
void timer()interrupt 5
{
TF2=0;
delay=1;
}
我感觉4步应该就能实现。具体连发和组合,在最后一步增加对ndat和ldat的判断就可以了
发表于 2012-5-25 23:45:44 | 显示全部楼层
mark标志
发表于 2012-5-30 23:55:11 | 显示全部楼层
组合键操作,mark
发表于 2012-5-31 00:05:43 | 显示全部楼层
收下了,下楼主
发表于 2012-5-31 00:07:30 | 显示全部楼层
顶一下啊
发表于 2012-5-31 06:11:53 | 显示全部楼层
谢谢,学习了/
发表于 2012-6-8 12:51:43 | 显示全部楼层
shouqiang_zhang 发表于 2012-5-31 06:11
谢谢,学习了/

正在研究状态机矩阵键盘。多谢分享!
发表于 2012-6-13 09:34:05 | 显示全部楼层
mark,方便查找!
发表于 2012-6-13 09:55:00 | 显示全部楼层
mark 一下  
发表于 2012-6-24 17:02:20 | 显示全部楼层
mark一下~用到再仔细体会
发表于 2012-6-24 17:26:25 | 显示全部楼层
mark 备用
发表于 2012-6-24 18:32:07 | 显示全部楼层
不错 留个记号
发表于 2012-7-28 14:40:41 | 显示全部楼层
了解下状态机
发表于 2012-8-3 15:58:11 | 显示全部楼层
看看先,回头再仔细看看
发表于 2012-8-9 16:27:05 | 显示全部楼层
mark,,,,,,,
发表于 2012-8-10 00:41:21 来自手机 | 显示全部楼层
嗯嗯,谢谢了!                                             
发表于 2012-9-4 15:53:48 | 显示全部楼层
mark。。。。
发表于 2012-9-14 00:04:09 | 显示全部楼层
严重学习4X4组合按键!
发表于 2012-9-15 08:08:36 | 显示全部楼层
mark
发表于 2012-10-16 11:34:00 | 显示全部楼层
mark
发表于 2012-11-23 14:54:24 | 显示全部楼层
不错    学习                           
发表于 2012-11-28 14:36:07 | 显示全部楼层
代码就应该这样写,按照大部分教科书上那样,太浪费mcu 时间了。希望楼主能发个有关 NEC 红外解码的程序,工程上能用的。
发表于 2012-11-30 20:29:41 | 显示全部楼层
MARK    前段时间一直苦于如果一个矩阵键盘内有三个按键同时按下,该如何扫描出来是哪三个按键按下
发表于 2012-12-22 16:05:53 | 显示全部楼层
原来是CASE、SWITCH
发表于 2012-12-22 16:50:08 | 显示全部楼层
收藏下,多谢了     
发表于 2012-12-27 11:27:09 | 显示全部楼层
太帅了,标记
发表于 2012-12-27 11:52:28 | 显示全部楼层
谢谢收下
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2019-12-7 16:42

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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