A. 51單片機如何用矩陣按鍵輸入多位數,比如輸入6顯示6,再輸入7顯示67,最好給個c的程序,謝了!
用數組啊,如果是指定位數的就比較簡單
當第一次輸入時i=0,第一個數6放a[0],i=1,第二個數7放a[1],顯示就是
OUT=a[0]*10+a[1]*1
數組用之前初始化為0,a[2]={0}
//這個好用點,遞推
if(key_data)//有按鍵按下
{
for(i=key_count;i>0;i--;)
{
a[i+1]=a[i];
}
a[0]=key_data;
key_count++;
}
//顯示調用,根據你的輸入最大數定數組的位數
Sprint=a[3]*1000+a[2]*100+a[1]*10+a[0]*1;
B. 51單片機矩陣鍵盤輸入11位數字,賦值給一個變數
(1)用手指頭按下矩陣鍵盤的0~9數字鍵即可輸入數值。
(2)最後賦值到一個變數上
unsigned char const str1[]="最後";
unsigned char const* pt1=&str1[0];
這樣就把最後賦值到指針pt1上了
C. 單片機的矩陣按鍵怎麼輸入兩位數,例如,先輸入2,數碼管顯示2,再輸入3,數碼管顯示23,有類似程序更好
我的思路是,把你輸入的數字先保存在一個數組里,然後實時的顯示該數組的內容即可。
#define MAX_NUM 2
uchar num_pos = 0;//輸入數字的個數計數。
char num_buff[MAX_NUM] = {-1,-1};
void DisplayNum()
{
for(i = 0; i < num_pos; i++)
{
//在此將num_buff[]的數據顯示出來,num_buff[i]的值是-1時,不顯示
}
}
void main()
{
while(1)
{
key = KeyScan();//按鍵掃描,得到輸入的數據
if(key >=0 && key <= 9)//有數字按鍵按下
{
if(num_pos >= MAX_NUM) //達到最大顯示個數,清空顯示狀態。
{
num_pos = 0;
for(i = 0; i < MAX_NUM; i++)
{
num_buff[i] = -1;
}
}
num_buff[num_pos] = key;
num_pos++;
}
DisplayNum();
}
}
D. 51單片機怎麼用按鍵控制一個數碼管,按一下顯示一個數字,順序顯示
1、首先,要把代碼寫好,點亮數碼管。
E. 51單片機如何用矩陣鍵盤輸入數值,最後賦值到一個變數上
你好!!
你做矩陣鍵盤檢測的時候,會觸發相關的IO口的狀態,通過分析IO口,就能知道那個鍵按下;
定義一個變數,將按下的鍵值賦給變數就行了