標(biāo)題: 51單片機按鍵調(diào)試程序 [打印本頁]

作者: yrw123123    時間: 2019-6-20 15:59
標(biāo)題: 51單片機按鍵調(diào)試程序
51單片機按鍵調(diào)試

單片機源程序如下:
  1. #include <reg51.h>
  2. #define uint unsigned int
  3. unsigned char hanshu();
  4. unsigned char jz = 0;
  5. unsigned char val[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xc0};
  6. void delay(uint);

  7. void main()
  8. {       
  9.         unsigned char key = 0;
  10.         while(1)
  11.         {
  12.                 key = hanshu();
  13.                 P2 = 0xf0;
  14.                
  15.                 if(key != 0)       
  16.                 {        WR = 0;
  17.                         P0 = val[jz];
  18.                         WR=1;
  19.                 }
  20.         }               
  21. }



  22. unsigned char hanshu()
  23. {
  24.         unsigned char hang = 0,lie = 0;
  25.         P1 = 0x0f;
  26.         if(P1 != 0x0f)
  27.                 delay(10);
  28.                 if(P1 != 0x0f)
  29.                 {
  30.                         switch(P1)
  31.                         {
  32.                                 case 0x0e:   hang = 1;    break;
  33.                                 case 0x0d:   hang = 2;    break;
  34.                                 case 0x0b:   hang = 3;    break;
  35.                                 case 0x07:   hang = 4;    break;
  36.                                 default:                  break;
  37.                         }
  38.                
  39.                         P1 = 0xf0;
  40.                         delay(10);
  41.                         if(P1 != 0xf0)
  42.                         {
  43.                                 switch(P1)
  44.                                 {
  45.                                         case 0xe0:   lie = 1;     break;
  46.                                         case 0xd0:   lie = 2;     break;
  47.                                         case 0xb0:   lie = 3;     break;
  48.                                         case 0x70:   lie = 4;     break;
  49.                                         default:                  break;
  50.                                 }
  51.                         jz = (lie - 1) * 4 + hang;
  52.                         return jz;          
  53.                         }                               
  54.                 }       
  55.                 return 0;
  56. }


  57. void delay(uint z)
  58. {
  59.         uint x,y;
  60.                 for(x=100;x>0;x--)
  61.                         for(y=z;y>0;y--);
  62. }
復(fù)制代碼

所有資料51hei提供下載:
新建文件夾.zip (28.39 KB, 下載次數(shù): 5)







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