关于单片机的按键问题
图一
图二
不可以,图二每一个按键都会把所有io拉低,三个IO也直接相连,按下一个相当于同时按三个按钮
对哦,,那请问书上的按键为什么没接电容电阻?他这样不是不稳定吗?
TX-1C是用软件消抖
好奇怪,,我试过软件消抖在STM32的板子上面不好用的...可是在STC51的板子上一点问题也没有...
估计是延时不够,因为STM32比51的速度快很多,消抖处理会有所不同,我在STM32上判断按键释放都要连续判断两次才比较准确
STC单片机内I/O口可以使能内部上拉的。
可以把工程项目发一下,学习学习。
接电容是硬件消抖,这样一般应用于没有单片机的场合,一般都是软件消抖
发个神级软件防抖动,STM32也闯不过,工业控制,我一直用它
unsigned char i=0;
//////////////////PB0输入:K1按键//////////////////////
if(K1==0)//按键是否为0
{
for(i=0; K1==0 && i<200; i++)//多次检测
{delay_ms(2);}//去抖动
if(i>190) //确认输入
{
LED_1;//置位,开指示灯//在这里写执行的代码
while(K1==0){;} //按键是否松开
}
}
以上是8位机
STM32要加大检测次数
unsigned int i=0;
//////////////////PB0输入:K1按键//////////////////////
if(K1==0)//按键是否为0
{
for(i=0; K1==0 && i<2000; i++)//多次检测
{delay_ms(1);}//去抖动
if(i>190) //确认输入
{
LED_1;//置位,开指示灯//在这里写执行的代码
while(K1==0){;} //按键是否松开
}
}
/////////////////////////////////////////////////////////
改:if(i>1900) //确认输入
神马二次滤波,三次滤波的,什么电容,都是菜,就用上面那个,包你按键输入不用愁
用for与delay做去抖动会占用系统时间的~最好还是用中断做
怎么这样搞啊,图2每一个按键都会把所有io拉低,3个IO也直接相连,按下一个相当于同时按3个按钮怎么控制。QQ:459023641
能多几个IO当然是首选,实在不行的话,试试中断优先级。
我是个一般股民,前些年也是在水深火热中,现在有了一位老师(亦 师亦友)的点评与推荐,这两年受益不浅。作为他的粉丝,我愿意与 大家一起分享.当然,这里也有老师自己的考虑,这是一个积累粉丝 的过程,希望大家能够体谅,相信不会让大家失望。大家只需关注老 师空间每日动态就行,无需聊天,群众的眼睛是雪亮的,老师每日点 评及推荐牛股到底怎么样,大家一看便知。老师如何抓涨停、如何抓 尾盘股、如何把握大盘走势,技术分析本身比较复杂,在这里不是三 言两语能说清。空间每天随时都有动态更新,推荐个股涨幅都很好, 请关注。老师【476013621】 V信:wzs11888 验证码888(必填) 不然加不上的。不卖软件,不搞分成,百分百不收取任何费用。如果 所说不实,请随时拉黑
一个按键觉得太大了占地方 ,三个就不占地方了?好逗