久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

請教一個單片機io口識別兩個按鍵的問題

查看數: 5786 | 評論數: 8 | 收藏 1
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2018-5-8 14:59

正文摘要:

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

回復

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

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

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

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

這樣不行,實際電路這樣按鍵S1是一直被按下的狀態,P26一下置1一下置0,檢測P26才1.5V左右跳動,為何就成了高電平?
ID:213173 發表于 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延時
{
        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();//按鍵掃描
        }
}

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久无码av | 日本午夜精品一区二区三区 | 日韩中文在线观看 | 欧美在线一区二区视频 | 在线视频一区二区 | 日日夜夜天天干 | 伊人网在线看 | 成人av大全 | 免费a级毛片在线播放 | 亚洲一区二区在线电影 | 久久中文字幕视频 | 亚洲第一色站 | 久久久久久av | 老牛嫩草一区二区三区av | 亚洲精品久久久久久久久久久 | 欧美精品一区二区三区在线四季 | 免费久久网 | 天堂av中文在线 | 欧美日韩专区 | 男人的天堂久久 | 久久久精品天堂 | 久久久五月天 | 日韩精品 电影一区 亚洲 | а天堂中文最新一区二区三区 | 国产精品久久久久久av公交车 | 九九九视频在线观看 | 天天干天天干 | 激情网站在线观看 | 欧洲视频一区 | 久久久久国产精品午夜一区 | 日韩超碰在线 | 中文字字幕一区二区三区四区五区 | 亚洲精品福利视频 | 狠狠干2020| 激情一区二区三区 | 九九综合九九 | 伦理一区二区 | 国内精品一区二区三区 | 日韩综合网 | 中文二区 | 欧美三级在线 |