-
設定鍵盤程式?
這是設計,對吧? 應根據鍵盤電路進行設計。 不同的電路導致不同的程式。
-
用C的話來說; 這是反轉線法; 轉到**查詢一些資訊; 源程式很簡單,高四低四; 不要自己編造,浪費你的時間。 當你使用它時,你可以使用它;
-
這與設定無關,但您需要在上面寫乙個鍵盤掃瞄器!
-
源程式不會發布,所以讓我們談談這個想法。
按鍵掃瞄:一般按鍵的模式為行列掃瞄模式,假設5*5鍵盤一共25個按鍵,占用51個微控制器和10個IO口。
掃瞄方式 一般採用定時掃瞄方式,在定時中斷中進行按鍵掃瞄操作。
可以先將第一行的io口設定為0,然後掃瞄列中的5個io口,看看哪乙個是0,表示按下了這個位置的按鈕。
然後將第二行的 io 設定為 0,重複上述判斷。
依次掃瞄其餘三個。
當然,要想做好,就得加防抖,重複按鍵判斷,長按鍵操作處理。
-
#include""
#define uint unsigned int#define uchar unsigned charuchar key;
uchar code tab=;
void delay(uchar z)
void display(uchar num)void keys():掃瞄金鑰。
while(temp!=0xf0)等待金鑰釋放}}p3=0xfd;
temp=p3;
temp=temp&0xf0;
if(temp!=0xf0)
while(temp!=0xf0)等待金鑰被釋放} }p3=0xfb;
temp=p3;
temp=temp&0xf0;
if(temp!=0xf0)
while(temp!=0xf0)等待金鑰釋放}}p3=0xf7;
temp=p3;
temp=temp&0xf0;
if(temp!=0xf0)
while(temp!=0xf0)等待金鑰被釋放}}}void main()}
-
網上有很多,自己找吧。
-
P2的按鍵掃瞄與實時時鐘模組共享IO,雖然概率很小,但仍有誤觸發和資料讀取錯誤的幾率。
-
前面的巨集定義 define k p0
您的金鑰正在使用 P3 埠。
-
uchar code act[4]=;
char scan_key(void)}}
if(find==0)return-1;返回值為-1,返回1為正常返回,返回-1為異常返回程式只是程式編寫的標準,即沒有鍵。
return(ini*4+inj);i 是上四位數字的判斷,j 是後四位數字的判斷。
0 1 2 3 為零 0,1,2,3 如果開關 0 開啟,則 p4 為 0,即 1110 1110
4 5 6 7 向右移動補 1,得到 1111 1110,j 為 0
8 9 A b 開關 1 開啟 p5 為 0,即 1101 1110,右移 1111 1101
c d e f 可以判斷 j 為 1,也可以推斷出 1 一樣。
p4 5 6 7
按照這個想法,4個埠只能實現4個開關4*4=16,2*2=4必須改變思維方式,如果是因為埠太緊,可以使用P3埠,或者使用分壓讀取AD判斷按鈕(AD鍵盤)。
-
根據圖中所示的接線方法,此程式中至少有 4 列鍵盤。 如果你想把它改成你為鍵盤圖示的程式,我會寫乙個,不除錯可能會有問題。 嘗試使用示例程式的樣式。
uchar code act[3]=;
char scan_key(void)}}if(find==0)return-1;
return(ini*4+inj);}
-
這本書上的鍵盤掃瞄器本身並不是很有效。
鍵盤掃瞄的基本思想是將整個鍵盤視為乙個整體,並使用變數來儲存每個鍵的狀態,乙個鍵對應 1 位。
例如:如果有 8 個鍵,設定乙個無符號 char 變數來儲存其狀態,該變數需要設定 3,乙個用於當前鍵狀態(命名為 cur)(全域性變數),乙個用於第乙個掃瞄按鈕(命名為 a)(臨時變數)和乙個用於掃瞄後去抖動的鍵(命名為 b)(臨時變數)取乙個, 比較 a,cur 相同,相同表示金鑰沒有變化,退出金鑰掃瞄否則延遲 10ms 借記,取 B,比較 a,b 相同,相同的金鑰更改有效,cur=a;執行金鑰更改處理**。 否則,金鑰將被錯誤觸發,金鑰掃瞄將被退出。
當然,這是基本思想,**延時也可以優化,涉及計時器,有很多字。
-
uchar code act[4]=;
char scan_key(void)}}
if(find==0)return-1;返回值為-1,返回1為正常返回,返回-1為異常返回程式只是程式編寫的標準,即沒有鍵。
return(ini*4+inj);i 是上四位數字的判斷,j 是後四位數字的判斷。
0 1 2 3 為零 0,1,2,3 如果開關 0 開啟,則 p4 為 0,即 1110 1110
4 5 6 7 向右移動補 1,得到 1111 1110,j 為 0
8 9 A b 開關 1 開啟 p5 為 0,即 1101 1110,右移 1111 1101
c d e f 可以判斷 j 為 1,也可以推斷出 1 一樣。
p4 5 6 7
按照這個想法,4個埠只能實現4個開關4*4=16,2*2=4必須改變思維方式,如果是因為埠太緊,可以使用P3埠,或者使用分壓讀取AD判斷按鈕(AD鍵盤)。
-
發一張鍵盤部分的截圖,蚊子描述不容易理解。
鍵盤程式與硬體鏈結有很大關係。
-
哪些系列的MCU有P4埠?
-
只有30分鐘,我想找人教你。
-
你用低位,你為什麼要放高位,看你的程式有點不清楚! ~
您的 P3 埠是集合的最低位,您的情況不是這樣的。
你的這個時間可能是乙個無休止的迴圈。
-
是不是第乙個函式被呼叫了,然後就進入了乙個無限迴圈,所以第二個函式就呼叫不了了。
-
首先,微控制器引腳預設輸出高電量。 讓鍵盤控制一行(假設第n行)的引腳為0,然後按該行上的乙個鍵,然後逐個檢查低電平(假設檢測為m列),這樣就按了nm鍵。 這個想法是使行為低並檢查列(反之亦然)。
-
建議看一下行列式鍵盤的工作原理。
首先,您必須開啟 Total Break EA
其次,開啟五個小中斷:et0、et1、es、int0、int1,一旦與中斷對應的介面收到重要電平,它就會啟動。 >>>More
AT89C52 C 系列是早期產品。 沒有了程式設計和看門狗,為了區別於早期產品,將新產品改為具有看門狗和ISP功能的AT89S52,ISP就是程式設計的意思。早期是晶格的專利技術,現在被大量使用。 >>>More