STM8单片机按键检测电路反汇编设计(附代码)

2021-04-09 23:36:38 浏览
硬件环境采用STM8SF103,电压为3.3V。电路需要注意的是STM8SF103这系列的IO作为输入口时只能是上拉输入和悬浮输入,虽然是弱上拉,在VCC为3.3V电压时,仍然能够被拉升至3.0V左右。接下来介绍:STM8单片机按键检测电路反汇编设计及代码。

 

所以按键检测电路IO口一端需要接地,而不是外接上拉。悬浮方式下IO仍然会有0.89V左右电压,读取对应的IO寄存器IDR,仍然处于逻辑高电平状态。

 

 

软件代码相对很简单,只需要将IO口设置成上拉输入即可。采用轮询代码如下:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
//初始化只需要设置IO口模式即可。GPIO_Init(KEY2_PORT,KEY2_PIN,GPIO_MODE_IN_PU_NO_IT);//上拉输入,不产生中断//按键检测部分/*#defineKEY10#defineKEY1_PORT(GPIOD)#defineKEY1_PIN(GPIO_PIN_4)#defineKEY21#defineKEY2_PORT(GPIOC)#defineKEY2_PIN(GPIO_PIN_1)*/u8CheckKey(u8key){if(key==KEY1){if(KEY1_PORT->IDR&KEY1_PIN)//检测到有按键了,IO口电压会被拉低{delay_5ms();if(KEY1_PORT->IDR&KEY1_PIN)//仍然存在低电平{while(!(KEY1_PORT->IDR&KEY1_PIN));//等待放开returnKEY1;}}return0;}elseif(key==KEY2){if(!(KEY2_PORT->IDR&KEY2_PIN))//检测到有按键了{delay_5ms();if(!(KEY2_PORT->IDR&KEY2_PIN))//仍然存在低电平{while(KEY2_PORT->IDR&KEY2_PIN);//等待放开returnKEY2;}}return0;}return0;}

    总结一下,硬件电路将按键IO口的一端接地。软件配置不能使用悬浮输入方式,这种方式电压可能会不稳定。

 
文章标签: STM8单片机反汇编

本文链接地址: STM8单片机按键检测电路反汇编设计(附代码):http://www.mcucd.com/dfb/159.html
联系信息:单片机疑难问题咨询:方先生 手机:15328075932 QQ:67828115

版权声明 本文部分文字和图片来源于互联网,如有侵犯您的权利请发送内容至:173323810@qq.com,我们将立即删除!