找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3270|回復(fù): 0
收起左側(cè)

51單片機(jī)矩陣鍵盤控制LED數(shù)碼管顯示0-F源程序

[復(fù)制鏈接]
ID:666991 發(fā)表于 2021-12-8 11:26 | 顯示全部樓層 |閱讀模式
通過(guò)4*4的矩陣鍵盤,控制數(shù)碼管顯示0-F
原理:
先設(shè)置某一列為低電平,這樣如果這一列有按鍵被按下,這樣就會(huì)兩邊都是低電平,就相當(dāng)于閉合。這樣就能檢測(cè)出來(lái)了。循環(huán)三次就行了

代碼亂碼了  看附件吧

單片機(jī)源程序如下:
  1. #include <reg51.h>
  2. #define uchar unsigned char
  3. sbit L1=P1^0;                        
  4. sbit L2=P1^1;         
  5. sbit L3=P1^2;         
  6. sbit L4=P1^3;         

  7. uchar dis[16]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};        
  8. unsigned int time;

  9. //延時(shí)函數(shù)

  10. delay(time)                           
  11. {  
  12.                 unsigned int j;
  13.            for(j=0;j<time;j++)
  14.             {}
  15. }

  16. //主函數(shù)

  17. main( )                                      
  18. {
  19.          uchar temp;//定義臨時(shí)變量
  20.    uchar i;
  21.          while(1)
  22.          {
  23.     P1=0xef; //先把第一行置于低電位P1.4=0, P1.5-P1.7=1
  24.     for(i=0;i<=3;i++)         
  25.     {  
  26.                         if (L1==0) P0=dis[i*4+0];    //判斷第一列是否有按鍵被按下,如果被按下,則結(jié)果可能是 0 4 8 c
  27.                                                                                                                                 
  28.       if (L2==0) P0= dis[i*4+1];          //同樣的 判斷第二列是否有按鍵按下 結(jié)果是....
  29.                                  
  30.                    if (L3==0) P0= dis[i*4+2];
  31.                                  
  32.       if (L4==0) P0= dis[i*4+3];                  
  33.                                  
  34.         delay(500);
  35.         temp=P1;        
  36.         temp=temp | 0x0f;//保持P1.0-P1.3端口不變
  37.                         
  38.         temp=temp<<1; //0xef-->0xcf  也就是保持第二列為低電平
  39.         temp=temp | 0X0f;         //保持P1.0-P1.3的高電位(若被按下,則立即變?yōu)榈碗娢唬?br />
  40.         P1=temp; //換為第二行掃描,繼續(xù)下一輪
  41.     }
  42.    }
  43. }
復(fù)制代碼

Keil代碼下載:
keil.7z (63.29 KB, 下載次數(shù): 14)

評(píng)分

參與人數(shù) 1黑幣 +30 收起 理由
admin + 30 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表