欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索

請(qǐng)教一個(gè)單片機(jī)io口識(shí)別兩個(gè)按鍵的問題

查看數(shù): 6009 | 評(píng)論數(shù): 8 | 收藏 1
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2018-5-8 14:59

正文摘要:

本人菜鳥工程師,最近公司業(yè)務(wù)給我一個(gè)單片機(jī)板子。要抄板。 主控室一顆8腳的mcu,絲印被磨掉了。其中一個(gè)引腳控制了兩個(gè)按鍵。對(duì)應(yīng)原理圖如下。 但程序最終還是無法很好的實(shí)現(xiàn)功能。 給各位一下參 ...

回復(fù)

ID:979299 發(fā)表于 2021-12-2 11:25
圖上不是一個(gè)引腳控制兩個(gè)按鍵,是兩個(gè)按鍵控制一個(gè)引腳,按上面輸入高電平,按下面輸入低電平。又看到回復(fù)S1是一直按下去的,那就一直是高電平了啊,就沒有按鍵的意義了,如果P2.6為低電平按S3沒有作用的,如果P2.6為高電平時(shí),S1常通又按S3相當(dāng)于經(jīng)R7取得一個(gè)中間值,這個(gè)值對(duì)單片機(jī)無用。
ID:966423 發(fā)表于 2021-12-2 10:26
你這樣還不如直接放AD口,兩個(gè)電阻不一樣的話AD值就不一樣了,就可以判斷了
ID:587810 發(fā)表于 2021-11-10 16:15
識(shí)別高低電平就可以了吧
ID:624769 發(fā)表于 2021-11-9 18:35
baobao125 發(fā)表于 2021-11-9 17:55
就上面的電路,用ADC去判斷應(yīng)該可以吧

用ADC判斷就沒必要這樣接了,這樣接明顯是沒有ADC的IO,不過這個(gè)接法有缺陷,雖然IO = 1 可以被接地的按鈕拉低, 但是IO = 0, 不是所有的單片機(jī)都可以被接VCC的按鈕拉高,所以要有通用性的話,還是需要利用電容充放電來確認(rèn)接VCC的按鍵有沒有按下。
ID:960619 發(fā)表于 2021-11-9 17:55
188610329 發(fā)表于 2021-11-9 16:06
這東西8年前還是多少年前,STC剛出15系列的時(shí)候,倒是研究過。
這個(gè)電路,需要加個(gè)電容,和下拉電阻,

就上面的電路,用ADC去判斷應(yīng)該可以吧
ID:624769 發(fā)表于 2021-11-9 16:06
這東西8年前還是多少年前,STC剛出15系列的時(shí)候,倒是研究過。
這個(gè)電路,需要加個(gè)電容,和下拉電阻,

先用強(qiáng)推挽給電容充電,然后轉(zhuǎn)高阻,讀取按鍵,
如果依然是高,說明接地的按鍵沒有按下,不然電容被放電了。
然后,等待一定時(shí)間,(取決于電容和下拉電阻),變低了,說明接VCC的按鍵也沒有按下,反之,接VCC按鍵按下了。
ID:960619 發(fā)表于 2021-11-9 14:57
本帖最后由 baobao125 于 2021-11-9 14:59 編輯
wulin 發(fā)表于 2018-5-8 21:02
//使用STC15W104系列
#include
#define uint unsigned int

這樣不行,實(shí)際電路這樣按鍵S1是一直被按下的狀態(tài),P26一下置1一下置0,檢測(cè)P26才1.5V左右跳動(dòng),為何就成了高電平?
ID:213173 發(fā)表于 2018-5-8 21:02
//使用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延時(shí)
{
        uint i,j;
        for(i=k;i>0;i--)
                for(j=114;j>0;j--);
}

void key_scan()//按鍵掃描程序
{
        P2M1|=0x40;        //P2.6設(shè)置高阻
        key=0;                //P2.6置0
        if(key==1)        //判斷是否為1,S1按下
        {
                delay(10);//延時(shí)       
                if(key==1)//再次判斷是否為1,S1按下
                {
                        LED1=0;//LED輸出狀態(tài)
                        LED2=1;
                }
        }
        P2M1&=0xBF; //P2.6設(shè)置準(zhǔn)雙向
        key=1;                //P2.6置1
        if(key==0)        //判斷是否為0,S3按下
        {
                delay(10);//延時(shí)       
                if(key==0)//再次判斷是否為0,S3按下
                {
                        LED1=1;//LED輸出狀態(tài)
                        LED2=0;
                }               
        }
}

void main()
{
        P3M0=0x00;        //初始化P3口準(zhǔn)雙向
        P3M1=0x00;        //初始化P3口準(zhǔn)雙向
        LED1=1;                //初始化LED1熄滅
        LED2=1;                //初始化LED2熄滅
        while(1)
        {
                key_scan();//按鍵掃描
        }
}

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表