微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于单片机的按键问题

关于单片机的按键问题

时间:10-02 整理:3721RD 点击:
想自己焊一个最小系统板,在焊接案件的时候按照图一焊接觉得太占地方了,就自己想按照图二焊接。各位大神觉得这样可以吗?

图一


图二


不可以,图二每一个按键都会把所有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(必填) 不然加不上的。不卖软件,不搞分成,百分百不收取任何费用。如果 所说不实,请随时拉黑

一个按键觉得太大了占地方 ,三个就不占地方了?好逗

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top