當前位置:首頁 » 編程語言 » 4x4鍵盤掃描c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

4x4鍵盤掃描c語言

發布時間: 2022-03-05 20:10:50

① 求由51單片機控制4x4鍵盤輸入,4個數碼管(採用動態掃描)顯示 c語言編程思路!

  1. 定義一個10個元素的數組static unsigned char m_arrDigital[10],做一個數碼管0~9的位段表。前提是你的數碼管接在同一組IO上,比如P0。

  2. 定義一個4個元素的數據staticunsigned charm_arrValue[4],可初始化為0,對應於數碼管的4位。刷新數碼管時依次取這個數組中的值。

  3. 掃描按鍵,一般也是接到同一組IO上,比如P1,可以是高4位輸出,低4位輸入。

  4. 轉換按鍵值,並把值寫入m_arrValue[0]中,在寫之前先把m_arrValue的前3個元素依次往後移一位,比如這樣寫:*((uisigned long *)m_arrValue) <<= 8;

  5. 把m_arrValue中的值顯示到數碼管上,m_arrValue[0]對應最右一位,m_arrValue[3]對應最左一位。m_arrValue可以作為m_arrDigital的索引。

② 求一個4x4矩陣鍵盤掃描c程序

1、若鍵盤不能使用,建議多換幾個介面試試
2、或者安裝驅動人生這個軟體,打開檢測一下外設驅動看看列印機的驅動需要安裝嗎
3、你掃描,這個是能掃描的硬體設備嗎?
4、那建議你去這個掃描設備的官網下載驅動安裝

③ 尋單片機「經典鍵盤」的掃描程序(要C語言的)

uchar keyscan()
{
uchar key,i,keyscan;
P3=0x3d; //准備讀取P3.2~P3.5 51的I/0為准雙向I/0口 作為輸入是最好先將其置1
//讀取接地按鍵值
if((P1&0x3d)!=0x3d){ //若無按鍵按下 P3.2~P3.5為高
delay(); //延時去抖動
if((P1&0x3d)!=0x3d){//判斷哪個按鍵按下
key=P1&0x3d;
return key;
}
}

keyscan=0x3D;
for(i=0;i<4;i++){
P1=keyscan; //輸出I/O口掃描 輸出 判斷
if(P1!=keyscan){ //讀取I/O口,看輸出掃P1.0~P1.5的值是否與掃描不同
key=P1&0x3D; //轉換掃描碼
return key;
}
keyscan=(keyscan<<1)|0x01; //逐行輸出掃描 0
}
return 0;
}

④ 4*3矩陣鍵盤掃描C語言

循環加判斷
int i,j;
for(i = 0; i < 3; i ++) //行
{
for(j = 0; j < 4; j++) //列
{
if(條件)
//todo
}
}

⑤ 本人初學單片機,現請求各位大俠,有沒有MCS51機的外部中斷法4X4鍵盤掃描匯編語言程序

這個是我以前做的掃描法,電路如圖所示,程序附上。

ORG00H

LJMPMAIN

ORG30H

MAIN:LCALLLOOP1

LCALLDELAY

LCALLLOOP1

LCALLLOOP2

LCALLLOOP3

LJMPMAIN

LOOP1:MOVP2,#0F0H;判斷有鍵按下?

MOVA,P2

MOVB,A

MOVP2,#0FH

MOVA,P2

ORLA,B

MOV30H,A

CJNEA,#0FFH,LOOP11

LJMPMAIN

LOOP11:RET

LOOP2:MOVR3,#00H;比較計算得出鍵值

LOOP21:MOVA,R3

INCR3

MOVDPTR,#TAB

MOVCA,@A+DPTR

CJNEA,30H,LOOP21

RET

LOOP3:MOVA,R3;數碼管顯示

MOVDPTR,#TAB1

MOVCA,@A+DPTR

MOVP1,A

;MOVP1,#0F1H

RET

DELAY:;延時R5×10MS

MOVR6,#50

DELAY1:MOVR7,#100

DJNZR7,$

DJNZR6,DELAY1

RET

TAB:

DB0EEH,0EDH,0EBH,0E7H

DB0DEH,0DDH,0DBH,0D7H

DB0BEH,0BDH,0BBH,0B7H

DB07EH,07DH,07BH,077H

TAB1:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H

DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH

這個是我以前做的掃描法,電路如圖所示,程序附上。

⑥ 求把這段4x4鍵盤顯示的匯編語言的改寫成C語言

這程序,有點濫。

得重新編寫。

⑦ 根據這個c語言程序,寫一個匯編的獨立鍵盤掃描程序。 圖中是一個按鍵的,求寫出有4個按鍵的匯編鍵盤掃

樓主的要求,不夠詳盡。

http://blog.163.com/asm_c/blog/static/2482031132014427210656/

參考。

⑧ 求一個單片機4X4矩陣鍵盤掃描程序,C語言的。

淘bao 旺鋪: 廣州華電 單片機學習板 單片機外圍學習模塊/感測器模塊
//4*4鍵盤檢測程序,按下鍵後相應的代碼顯示在數碼管上
#include<reg51.h>
sbit beep=P2^3;
sbit la=P2^6;
sbit wela=P2^7;
unsigned char i=100;
unsigned char j,k,temp,key;
void delay(unsigned char i)
{
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
display(unsigned char num)
{
P0=table[num];
la=1;
la=0;
P0=0xc0;
wela=1;
wela=0;
}
void main()
{
la=0;
wela=0;
while(1)
{
P3=0xfe;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xee:
key=0;
break;
case 0xde:
key=1;
break;
case 0xbe:
key=2;
break;
case 0x7e:
key=3;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
beep=0;
}
beep=1;
display(key);
P1=0xfe;
}
}
P3=0xfd;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xed:
key=4;
break;
case 0xdd:
key=5;
break;
case 0xbd:
key=6;
break;
case 0x7d:
key=7;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
beep=0;
}
beep=1;
display(key);
}
}
P3=0xfb;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xeb:
key=8;
break;
case 0xdb:
key=9;
break;
case 0xbb:
key=10;
break;
case 0x7b:
key=11;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
beep=0;
}
beep=1;
display(key);
}
}
P3=0xf7;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xe7:
key=12;
break;
case 0xd7:
key=13;
break;
case 0xb7:
key=14;
break;
case 0x77:
key=15;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
beep=0;
}
beep=1;
display(key);
}
}
}
}

⑨ C51單片機4X4矩陣鍵盤檢測程序問題

可以參考:
http://hi..com/%d7%f6%b6%f8%c2%db%b5%c0/blog/item/ef086222268d4f4eac34de59.html
程序中,讀取4*4矩陣鍵盤的函數,可以得到0~f,和16。
當讀出為16的時候,即是按鍵放手了,可以執行對應的功能程序。

⑩ C語言中讀取鍵盤掃描碼的問題

這個 C 語言的問題你可以發到shx.io 這個網站,這個程序員問答網站有很多大神,你復制一下發過來,我讓朋友現在就幫你答