欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 51單片機矩陣鍵盤控制LED數碼管顯示0-F源程序 [打印本頁]

作者: zhangyu111    時間: 2021-12-8 11:26
標題: 51單片機矩陣鍵盤控制LED數碼管顯示0-F源程序
通過4*4的矩陣鍵盤,控制數碼管顯示0-F
原理:
先設置某一列為低電平,這樣如果這一列有按鍵被按下,這樣就會兩邊都是低電平,就相當于閉合。這樣就能檢測出來了。循環三次就行了

代碼亂碼了  看附件吧

單片機源程序如下:
  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. //延時函數

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

  16. //主函數

  17. main( )                                      
  18. {
  19.          uchar temp;//定義臨時變量
  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];    //判斷第一列是否有按鍵被按下,如果被按下,則結果可能是 0 4 8 c
  27.                                                                                                                                 
  28.       if (L2==0) P0= dis[i*4+1];          //同樣的 判斷第二列是否有按鍵按下 結果是....
  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的高電位(若被按下,則立即變為低電位)
  40.         P1=temp; //換為第二行掃描,繼續下一輪
  41.     }
  42.    }
  43. }
復制代碼

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






歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1