當前位置:編程學習大全網 - 編程語言 - 用c51單片機按下4*4矩陣按鍵,數碼管顯示0-F,能正常顯示,只是0號和7號有時會出錯,請高手幫忙,

用c51單片機按下4*4矩陣按鍵,數碼管顯示0-F,能正常顯示,只是0號和7號有時會出錯,請高手幫忙,

/************************************************************

類型:矩陣鍵盤。

現象:按下鍵盤後,數碼管顯示相應的數字0-F

聲明此程序僅用於學習與參考,引用請註明版權和作者信息!

************************************************************/

#include<reg52.h> //52單片機頭文件,壹般不要改動,裏面包含特殊功能寄存器的定義

#define uchar unsigned char //將unsigned char定義為uchar,簡化輸寫。提高編程速度

#define uint unsigned int //將unsigned char定義為uint,簡化輸寫。提高編程速度

sbit H1=P0^4; //高四位分別對應P04-P07

sbit H2=P0^5;

sbit H3=P0^6;

sbit H4=P0^7;

void main()

{

P2=0x00; //關數碼管,數碼管不顯示

while(1)

{

P0=0xfe;

if(H1==0){P2=0x3f;} //按鍵盤S1,顯示"0"

if(H2==0){P2=0x06;} //按鍵盤S2,顯示"1"

if(H3==0){P2=0x5b;} //按鍵盤S3,顯示"2"

if(H4==0){P2=0x4f;} //按鍵盤S4,顯示"3"

P0=0xfd;

if(H1==0){P2=0x66;} //按鍵盤S5,顯示"4"

if(H2==0){P2=0x6d;} //按鍵盤S6,顯示"5"

if(H3==0){P2=0x7d;} //按鍵盤S7,顯示"6"

if(H4==0){P2=0x07;} //按鍵盤S8,顯示"7"

P0=0xfb;

if(H1==0){P2=0x7f;} //按鍵盤S9,顯示"8"

if(H2==0){P2=0x6f;} //按鍵盤S10,顯示"9"

if(H3==0){P2=0x77;} //按鍵盤S11,顯示"A"

if(H4==0){P2=0x7c;} //按鍵盤S12,顯示"b"

P0=0xf7;

if(H1==0){P2=0x39;} //按鍵盤S13,顯示"c"

if(H2==0){P2=0x5e;} //按鍵盤S14,顯示"d"

if(H3==0){P2=0x79;} //按鍵盤S15,顯示"E"

if(H4==0){P2=0x71;} //按鍵盤S16,顯示"F"

}

}

壹定要給分啊,我要下東西,程序壹定沒問題!!

  • 上一篇:車子高速時出現p0300故障碼,是什麽原因啊
  • 下一篇:成都哪裏可以進行無人機技能培訓?比如植保機的培訓
  • copyright 2024編程學習大全網