这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » MCU可否通过这个电路实现一个IO识别到2个按键吗?

共23条 1/3 1 2 3 跳转至

MCU可否通过这个电路实现一个IO识别到2个按键吗?

工程师
2021-11-09 21:31:13     打赏

我一个单片机板子,主控是一颗8脚的mcu,丝印被磨掉了。其中一个引脚控制了两个按键。对应原理图如下。

识别到2个按键吗?





关键词: 按键     单片机    

专家
2021-11-09 22:08:51     打赏
2楼

看看


工程师
2021-11-09 22:49:39     打赏
3楼

这东西8年前还是多少年前,STC刚出15系列的时候,倒是研究过。
这个电路,需要加个电容,和下拉电阻,

先用强推挽给电容充电,然后转高阻,读取按键,
如果依然是高,说明接地的按键没有按下,不然电容被放电了。
然后,等待一定时间,(取决于电容和下拉电阻),变低了,说明接VCC的按键也没有按下,反之,接VCC按键按下了。


工程师
2021-11-09 22:59:06     打赏
4楼

用ADC去判断,N个按键都行!


工程师
2021-11-09 23:05:47     打赏
5楼

好巧,我以前也应用过这个电路,以下是我的参考代码:

//使用STC15W104系列
#include <STC15F2K60S2.H>
#define uint unsigned int
#define uchar unsigned char
sbit key = P3^2;
sbit LED1= P3^3;
sbit LED2= P3^4;

void delay(uint k)//1ms延时
{
        uint i,j;
        for(i=k;i>0;i--)
                for(j=114;j>0;j--);
}

void key_scan()//按键扫描程序
{
        P2M1|=0x40;        //P2.6设置高阻
        key=0;                //P2.6置0
        if(key==1)        //判断是否为1,S1按下
        {
                delay(10);//延时       
                if(key==1)//再次判断是否为1,S1按下
                {
                        LED1=0;//LED输出状态
                        LED2=1;
                }
        }
        P2M1&=0xBF; //P2.6设置准双向
        key=1;                //P2.6置1
        if(key==0)        //判断是否为0,S3按下
        {
                delay(10);//延时       
                if(key==0)//再次判断是否为0,S3按下
                {
                        LED1=1;//LED输出状态
                        LED2=0;
                }               
        }
}

void main()
{
        P3M0=0x00;        //初始化P3口准双向
        P3M1=0x00;        //初始化P3口准双向
        LED1=1;                //初始化LED1熄灭
        LED2=1;                //初始化LED2熄灭
        while(1)
        {
                key_scan();//按键扫描
        }
}



高工
2021-11-09 23:44:34     打赏
6楼

先学习一下


专家
2021-11-10 00:01:20     打赏
7楼

谢谢分享


专家
2021-11-10 00:02:30     打赏
8楼

感谢楼主的分享,很实用了。


专家
2021-11-10 07:59:58     打赏
9楼

学习了


高工
2021-11-10 08:06:27     打赏
10楼

谢谢分享


共23条 1/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]