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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機(jī)按鍵問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:245521 發(fā)表于 2017-11-7 22:54 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
有兩個(gè)關(guān)于按鍵的問題請教大家:
    1.unsigned char key=0;key=0xff&P1;
       這是檢測按鍵語句,為什么改為signed就全為高電平了?


     2.有按鍵按下就需要xiaodou,一種是延時(shí) 比如:
               if(key==0xfd)
                {
                delayms(200);
                if(key==0xfd)                        
                TR0=~TR0;}
   一種是  if(key==0xfd)
                {
                                       
                TR0=~TR0;}
                while(!什么來著)
我看書上在寫按鍵流水燈時(shí)是直接switch(P1&0xff),然后到相應(yīng)的語句,很是疑惑哎,不求甚解。
謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:213173 發(fā)表于 2017-11-8 07:40 | 只看該作者
你這是按鍵掃描程序的簡短寫法,多個(gè)按鍵不必一個(gè)一個(gè)的寫。
1.unsigned char key=0;key=0xff&P1; 定義一個(gè)無符號字符型數(shù)據(jù)變量key,它的值由P1口狀態(tài)賦予。
你改成有符號字符型數(shù)據(jù)不符合應(yīng)用規(guī)則,當(dāng)然出錯(cuò)。
2.按鍵按下就需要消抖,這是用軟件消除按鍵的機(jī)械特性帶來的電氣干擾,方法有多種,delay是最初級的方法。

這是在P1的低4位接4個(gè)獨(dú)立按鍵的掃描程序示例,供參考
#include <reg52.h>
#define uchar unsigned char
#define uint  unsigned int
#define key (P1 & 0x0f)                        //按鍵端口宏定義(P1的低4位)
//sbit key1=P1^0;                //按鍵1定義
//sbit key2=P1^1;                //按鍵2定義
//sbit key3=P1^2;                //按鍵3定義
//sbit key4=P1^3;                //按鍵4定義
sbit led1=P3^6;                //led1端口
sbit led2=P3^5;                //led2端口
sbit led3=P3^4;                //led3端口
sbit led4=P3^3;                //led4端口

void keyscan()                //按鍵掃描程序
{
        static bit sign=0;        //按鍵有效標(biāo)志
        static uint count=0;      //消抖計(jì)數(shù)變量                        
        uchar num=0;              //臨時(shí)變量
        if(key!=0x0f)                        //檢測有鍵按下
        {
                count++;              //消抖計(jì)數(shù)
                if(count>=1000)        //100~1000,根據(jù)主循環(huán)周期調(diào)整約10~20ms
                {                        
                        count=1000;        //防止溢出
                        if(sign==0)       //測試按鍵有效標(biāo)志0
                        {
                                sign=1;         //按鍵有效標(biāo)志置1
                                num=key;        //保存P1低4位值0000 xxxx ,x為0或1
                                switch(num)
                                {
                                        case 0x0e: led1=~led1; break;
                                        case 0x0d: led2=~led2; break;
                                        case 0x0b: led3=~led3; break;
                                        case 0x07: led4=~led4; break;
                                        default: break;
                                }
                        }
                }
        }
        else                    //鍵抬起
        {
                sign=0;              //按鍵有效標(biāo)志清0
                count=0;             //消抖計(jì)數(shù)清0
        }
}

void main()
{        
        while(1)        //程序循環(huán)執(zhí)行
        {
                keyscan();   //按鍵掃描,子函數(shù)        
        }
}
回復(fù)

使用道具 舉報(bào)

板凳
ID:247198 發(fā)表于 2017-11-8 09:51 | 只看該作者
個(gè)人建議哦,不要使用按鍵了,麻煩!你直接用編碼器吧,可以實(shí)現(xiàn)按鍵所有的功能!
回復(fù)

使用道具 舉報(bào)

地板
ID:245521 發(fā)表于 2017-11-9 08:33 來自觸屏版 | 只看該作者
wulin 發(fā)表于 2017-11-8 07:40
你這是按鍵掃描程序的簡短寫法,多個(gè)按鍵不必一個(gè)一個(gè)的寫。
1.unsigned char key=0;key=0xff&P1; 定義一 ...

不符合應(yīng)用規(guī)則??什么意思呢
回復(fù)

使用道具 舉報(bào)

5#
ID:247571 發(fā)表于 2017-11-9 09:40 | 只看該作者
這個(gè)程序是教學(xué)用的,不是真正實(shí)際項(xiàng)目開發(fā)用的。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 麻豆久久久久 | 亚洲精品视频一区二区三区 | 亚洲国产成人久久久 | 国产精品久久久久久久久久久久 | 国产精品久久久久久久久免费相片 | 久久久久久久久久久久91 | 国产区高清 | 久久9999久久 | 日韩和的一区二区 | 亚洲视频在线一区 | 欧美日韩精品影院 | 日本精品在线观看 | 天天色av | 国产精品1区2区3区 男女啪啪高潮无遮挡免费动态 | 成年人免费在线视频 | 亚洲激情自拍偷拍 | 亚洲欧洲中文日韩 | 日本人和亚洲人zjzjhd | 欧美老少妇一级特黄一片 | 免费看欧美一级片 | 亚洲精品一区二三区不卡 | 亚州av | 中文字幕一区二区在线观看 | 精品成人佐山爱一区二区 | 午夜精品在线观看 | 人人澡人人射 | 九九热精品视频 | 精品一区二区在线观看 | 国产精品成人久久久久 | 亚洲免费人成在线视频观看 | 国产成人精品综合 | 99热.com| 波波电影院一区二区三区 | 精品国产一区二区三区久久久蜜月 | 99一级毛片 | 亚洲国产精品一区二区三区 | 日韩一区av | 国产不卡视频 | 国产精品亚洲一区二区三区在线 | 亚洲精品视频在线播放 | 国产精品久久午夜夜伦鲁鲁 |