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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3656|回復(fù): 8
打印 上一主題 下一主題
收起左側(cè)

中微的單片機(jī)程序請教大神 發(fā)現(xiàn)IO口沒有檢測到上拉的5V,更是檢測不了按鍵

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:607312 發(fā)表于 2020-9-26 09:10 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
以下這個程序我用CMS89F6285B來做的,但是發(fā)現(xiàn)IO口沒有檢測到上拉的5V。更是檢測不了按鍵。請問=大神幫忙看看是哪里錯了

#include <cms.h>


#define                BSET(x,y)        x|=(1<<y)                //將寄存器x第y位置1
#define                BCLR(x,y)        x&=~(1<<y)                //將寄存器x第y位置0

#define                Key1                RB1                                //定義按鍵IO口
#define                Key2                RB2
#define                Key3                RB3
#define                Key4                RB4
#define                Led1                RE3                                //定義Led IO口


volatile unsigned char KeyData;                        //按鍵值
volatile unsigned char KeyFlag;                        //按鍵標(biāo)志,0位有按鍵、1位有短按鍵、2位有長按鍵
//函數(shù)聲明
void Kscan(void);        
void Maink(void);

//主程序
void main(void)
{

        TRISA = 0B11111111;                                //配置IO狀態(tài)
        TRISB = 0B11111111;
        TRISC = 0B11111111;
        TRISE = 0B00000000;
        
        //PORTB = 0B11111111;
        
        WPUA = 0B11111111;                                //配置上拉情況
        WPUB = 0B00011110;
        WPUC = 0B00000000;
        WPUE = 0B00000000;                                                //1為使能上拉,0為禁止上拉
        
        while(1)
        {
                asm("clrwdt");                                        //清看門狗
               
                Kscan();                                                //按鍵掃描
                Maink();                                                //按鍵處理
        }
}

/***********************************************
函數(shù)名稱:Kscan
函數(shù)功能:按鍵掃描
入口參數(shù):無
出口參數(shù):無
備注:
************************************************/
void Kscan()
{        
        static unsigned char keycount,nkeycount,keyold;
        static unsigned int keylong;
        
        KeyData = 0;
        
        if(!Key1)                                                        //為低時有按鍵
                BSET(KeyData,0);
        if(!Key2)               
                BSET(KeyData,1);
        if(!Key3)               
                BSET(KeyData,2);
        if(!Key4)        
                BSET(KeyData,3);
        
        if(KeyData)                                                        //有按鍵                                                
        {        
                if(KeyData == keyold)                        //鍵值等于舊鍵值
                {
                        if(KeyFlag & 0x02)                        //有按鍵判斷長按鍵
                        {
                                if((KeyData == 0x99) && (++keylong >= 200))//匹配有長按鍵的按鍵,如需長按鍵可修改KeyData匹配值
                                {
                                        keylong =0;
                                        BSET(KeyFlag,0);        //有按鍵標(biāo)志
                                        BSET(KeyFlag,2);        //長按鍵標(biāo)志                                       
                                }                                                                                       
                        }                        
                        else if(++keycount >= 5)        //消抖動
                        {
                                BSET(KeyFlag,0);                //有按鍵標(biāo)志
                                BSET(KeyFlag,1);                //短按鍵標(biāo)志
                        }
                }
                else
                {
                        keyold =KeyData;
                        keycount =0;        
                }               
        }
        else                                                                //無按鍵
        {
                keycount =0;
                keylong =0;        
                if(++nkeycount >=5)                                //無按鍵超過5次時清標(biāo)志位
                {
                        KeyFlag =0;
                        KeyData =0;
                        keyold =0;
                }        
        }        
}
/***********************************************
函數(shù)名稱:Maink
函數(shù)功能:按鍵處理
入口參數(shù):無
出口參數(shù):無
備注:
************************************************/
void Maink()
{
        if(KeyFlag & 0x01)
        {        
                BCLR(KeyFlag,0);
                                
                switch(KeyData)
                {
                        case 0x01: Led1 = 1; break;
                        case 0x02: Led1 = 0; break;
                        case 0x04: Led1 = 1; break;
                        case 0x08: Led1 = 0; break;                                                                                       
                }
        }        
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:654028 發(fā)表于 2020-9-26 14:12 | 只看該作者
電壓沒有的話找找電路原因
回復(fù)

使用道具 舉報

板凳
ID:607312 發(fā)表于 2020-9-26 16:26 | 只看該作者
心有浮生 發(fā)表于 2020-9-26 14:12
電壓沒有的話找找電路原因

沒有電路了,我直接把單片機(jī)VCC,GND接2條線出來測試了同樣是沒有電壓,我也打開了上拉。求大神指教啊
回復(fù)

使用道具 舉報

地板
ID:654028 發(fā)表于 2020-9-26 17:41 | 只看該作者
cdiyy 發(fā)表于 2020-9-26 16:26
沒有電路了,我直接把單片機(jī)VCC,GND接2條線出來測試了同樣是沒有電壓,我也打開了上拉。求大神指教啊

沒電壓怎么能驅(qū)動芯片工作啊
回復(fù)

使用道具 舉報

5#
ID:607312 發(fā)表于 2020-9-27 09:57 | 只看該作者
心有浮生 發(fā)表于 2020-9-26 17:41
沒電壓怎么能驅(qū)動芯片工作啊

5V是正常的,配置了IO口為輸入腳,同時打開了上拉電阻,可是該IO腳沒有輸入的檢測5V
回復(fù)

使用道具 舉報

6#
ID:235954 發(fā)表于 2020-9-27 17:00 | 只看該作者
TRISA<7:0>: PORTA 三態(tài)控制位 1 = PORTA 引腳被配置為輸入(三態(tài)) 0 = PORTA 引腳被配置為輸出
回復(fù)

使用道具 舉報

7#
ID:235954 發(fā)表于 2020-9-27 17:01 | 只看該作者
WPUA<7:0>: 弱上拉寄存器位 1 = 使能上拉 0 = 禁止上拉
回復(fù)

使用道具 舉報

8#
ID:607312 發(fā)表于 2020-9-29 14:09 | 只看該作者
梁廷明 發(fā)表于 2020-9-27 17:01
WPUA: 弱上拉寄存器位 1 = 使能上拉 0 = 禁止上拉

求大神幫忙看看如何修改啊,搞得懷疑人生了
回復(fù)

使用道具 舉報

9#
ID:705966 發(fā)表于 2021-11-6 10:50 | 只看該作者
        TRISA = 0B11111111;                                //配置IO狀態(tài)
        TRISB = 0B11111111;
        TRISC = 0B11111111;
1全改為0試試
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品永久| 天天草视频 | 99精品国产在热久久 | 日韩一二区在线观看 | 国产91一区 | 久久久精品国产 | 黄色一级免费观看 | 日本成人在线观看网站 | 色黄网站 | 波多野结衣一二三区 | 日韩中文字幕一区二区 | 日韩www| 中文字幕在线三区 | 久久69精品久久久久久久电影好 | 国产综合久久 | 久久aⅴ乱码一区二区三区 亚洲国产成人精品久久久国产成人一区 | 亚洲精品视频在线 | 欧美xxxx黑人又粗又长 | 国产精久久久久久久 | 欧美日韩一区在线 | 国产精品一区二区欧美 | 精品美女久久久 | 国产视频中文字幕 | 91亚洲精品久久久电影 | 欧美激情一区二区三区 | 精品国产欧美 | 亚洲成人av在线播放 | 欧美男人的天堂 | 久久成人精品视频 | 一区二区三区四区五区在线视频 | 日韩中文字幕在线观看 | 欧美综合一区二区 | 在线观看精品 | 国产二区三区 | 小川阿佐美pgd-606在线 | 日韩av网址在线观看 | 欧美 视频 | 久久伊人一区二区 | 欧美日韩成人 | 成人中文字幕在线观看 | 日韩在线一区二区三区 |