⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 键盘.lst

📁 4X4矩阵键盘+LCD1602显示源码及编程文件
💻 LST
字号:
C51 COMPILER V8.05a   键盘                                                                 09/21/2008 10:48:04 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE 键盘
OBJECT MODULE PLACED IN 键盘.OBJ
COMPILER INVOKED BY: D:\C51v805\C51\BIN\C51.EXE 键盘.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1           #include <AT89X51.h> 
   2           #include <1602.c>
   3           #include <0832.c>
   4           #include <TLV5638.c>
   5           unsigned char a[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,},da
             -ta1[4]={6,7,8,9},c=0x01;
   6           unsigned int jianzhi,p=0,num=0,weizhi=0,flog=1;
   7           unsigned int b[3];
   8           void key(void)
   9          {
  10   1       unsigned int hengzhi,leizhi=0,n,r=0x01;
  11   1      
  12   1       if(P0_4==0)
  13   1       hengzhi=0;
  14   1       if(P0_5==0)
  15   1       hengzhi=1;
  16   1       if(P0_6==0)
  17   1       hengzhi=2;
  18   1       if(P0_7==0)
  19   1       hengzhi=3;
  20   1       for(n=0;n<4;n++)
  21   1       {
  22   2        P0=~(r<<n);
  23   2       if((P0_4&&P0_5&&P0_6&&P0_7)!=1)
  24   2        {leizhi=n;break;}
  25   2       }
  26   1               
  27   1        jianzhi=hengzhi*4+leizhi;
  28   1       
  29   1       }
  30          void qujiao(void);
  31          void qujiao(void)//取消按键的功能
  32          {
  33   1        uchar i;
  34   1        for(i=0;i<4;i++)
  35   1           {b[i]=0x00;}
  36   1        p=0;
  37   1        weizhi=0;
  38   1      }
  39          
  40          void int0() interrupt 1
  41          {       
  42   1              TH0=0x3c;
  43   1          TL0=0xb0;
  44   1              P3_3=~P3_3;
  45   1      }
  46          
  47          
  48          void qieding(void);
  49          void qieding(void)//确定键的功能
  50          {
  51   1              uchar sum=0,da,da1,da2,da3,da4;
  52   1              while(flog)
  53   1              {
  54   2                      sum=b[0]*10+b[1];
C51 COMPILER V8.05a   键盘                                                                 09/21/2008 10:48:04 PAGE 2   

  55   2                      da=adc0832(1);
  56   2                      da2=da/80;
  57   2                      da3=da/8;
  58   2                      da1=(da%80)/8;
  59   2                      wzhilin(0x80|0x00);
  60   2                      wshuju(lcd3[da2]);
  61   2                      wzhilin(0x80|0x01);
  62   2                      wshuju(lcd3[da1]);
  63   2                      if(sum>da3)
  64   2                         {
  65   3                                      P2_4=1;
  66   3                                      seta(fastsp,external,12,6.5);
  67   3                         }
  68   2                      else if(sum<da3) 
  69   2                              {
  70   3                                      P2_4=0;
  71   3                                      da4=da3-sum;
  72   3                                      if((da4>=30))
  73   3                                              seta(fastsp,external,12,9.0);
  74   3                                      if((da4>=25)&(da4<30))
  75   3                                              seta(fastsp,external,12,8.5);
  76   3                                      if((da4>=20)&(da4<25))
  77   3                                              seta(fastsp,external,12,8.0);                                   
  78   3                                      if((da4>=15)&(da4<20))
  79   3                                              seta(fastsp,external,12,7.5);
  80   3                                      if((da4>=10)&(da4<15))
  81   3                                              seta(fastsp,external,12,7.0);
  82   3                                      if((da4>=5)&(da4<10))
  83   3                                              seta(fastsp,external,12,6.5);
  84   3                                      if(da4<5)
  85   3                                              seta(fastsp,external,12,6.0);                           
  86   3                              }
  87   2                      else if(sum==da3)
  88   2                              flog=0;
  89   2              }
  90   1              flog=1;
  91   1              wzhilin(0x01);
  92   1              Delay1ms(1); 
  93   1          wzhilin(0xc0|0x07);
  94   1          printf ("^-^");
  95   1      }
  96          
  97          
  98           void main(void) 
  99          {
 100   1       uchar k=1;
 101   1      
 102   1       TMOD=0x01;
 103   1       TH0=0x3c;
 104   1       TL0=0xb0;
 105   1       IE=0x82;
 106   1       P3_3=0;
 107   1      
 108   1       chushihua();
 109   1       Delay1ms(10);
 110   1       wzhilin(0x80|0x04);
 111   1       printf ("welcome!");
 112   1      
 113   1       while(1)
 114   1       {
 115   2       P0=0xf0;
 116   2       P2_4=0;
C51 COMPILER V8.05a   键盘                                                                 09/21/2008 10:48:04 PAGE 3   

 117   2       jianche:
 118   2       while((P0&0xf0)==0xf0)
 119   2       {
 120   3           ;
 121   3       }
 122   2       Delay1ms(10);
 123   2       if((P0&0xf0)==0xf0)
 124   2       goto jianche;
 125   2        
 126   2        key();
 127   2        wzhilin(0x80|0x04);
 128   2        printf ("        ");
 129   2        
 130   2        while((P0&0xf0)!=0xf0)//等待按键放开
 131   2         { ;}
 132   2        switch(jianzhi)
 133   2        {
 134   3           case 10:if(k)         //灯
 135   3                               {
 136   4                                        P3_3=1;
 137   4                            wzhilin(0x80|0x08);
 138   4                                        printf ("open! ");
 139   4                                        k=0;
 140   4                                        TR0=0;
 141   4                                }
 142   3                                else
 143   3                                {
 144   4                                        P3_3=1;
 145   4                                        TR1=1;                                  
 146   4                            wzhilin(0x80|0x08);
 147   4                                        printf ("flash!");
 148   4                                        k=1;
 149   4                                }
 150   3                    break;
 151   3          case 11:wzhilin(0x01); //取消
 152   3                      Delay1ms(10);
 153   3                  wzhilin(0x80|0x04);
 154   3                              printf ("welcome!");
 155   3                  qujiao(); 
 156   3                  break;
 157   3              case 12:b[p]=jianzhi;   //数字
 158   3                              wzhilin(0xc0|weizhi);
 159   3                              wshuju(lcd3[jianzhi]);
 160   3                              weizhi++; 
 161   3                  break;
 162   3              case 13:qieding();break;  //确定
 163   3          default:b[p]=jianzhi;
 164   3                              wzhilin(0xc0|weizhi);
 165   3                              wshuju(lcd3[jianzhi]);
 166   3                  p++;
 167   3                              weizhi++;
 168   3                              break; 
 169   3         
 170   3        }
 171   2        
 172   2        if(p>=3)
 173   2        {
 174   3                      wzhilin(0xc0|6);
 175   3                      printf ("error!");
 176   3                      Delay1ms(500);
 177   3                      wzhilin(0xc0|6);
 178   3                      printf ("      ");   
C51 COMPILER V8.05a   键盘                                                                 09/21/2008 10:48:04 PAGE 4   

 179   3                      p=3;
 180   3      
 181   3        }
 182   2       }
 183   1      }
 184          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1554    ----
   CONSTANT SIZE    =     74    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     43      34
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -