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

📄 key_lcd.lst

📁 运用89C51或者89S51、52是初学者调试液晶好的学习资料
💻 LST
字号:
C51 COMPILER V8.05a   KEY_LCD                                                              05/23/2008 20:23:31 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE KEY_LCD
OBJECT MODULE PLACED IN key_lcd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE key_lcd.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>
   2          #include<intrins.h>
   3          #define uchar unsigned char
   4          #define uint unsigned int
   5          #define shuju P0
   6          #define bus P1
   7          //#define lcdbus P3
   8          sbit rs=P2^7;
   9          sbit rw=P2^6;
  10          sbit e=P2^5;
  11          sbit sda=P2^0;                          //IO口定义
  12          sbit scl=P2^1;
  13          uchar r;
  14          void delayms(int i)
  15                  {
  16   1              int j;
  17   1              for(j=0;j<i;j++);
  18   1              }
  19          void enable()
  20                  {
  21   1              rs=0;
  22   1              rw=0;
  23   1              e=0;
  24   1              delayms(65000);
  25   1              e=1;
  26   1              }
  27          void write()
  28                  {
  29   1              rs=1;
  30   1              rw=0;
  31   1              e=0;
  32   1              delayms(65000);
  33   1              e=1;
  34   1              }
  35          void chushi()
  36                  {
  37   1              sda=0;
  38   1              scl=0;
  39   1              shuju=0x01;
  40   1              enable();
  41   1              shuju=0x38;
  42   1              enable();
  43   1              shuju=0x0f;
  44   1              enable();
  45   1              shuju=0x06;
  46   1              enable();
  47   1              shuju=0x80;
  48   1              enable();
  49   1              }
  50          void display(uchar i)
  51                  {
  52   1              shuju=i;
  53   1              write(); 
  54   1              }
  55          void jianpan()
C51 COMPILER V8.05a   KEY_LCD                                                              05/23/2008 20:23:31 PAGE 2   

  56          {  
  57   1         uchar a;
  58   1         uchar k;
  59   1         bus=0xff;
  60   1         bus=0xef;      //扫描第一行
  61   1         delayms(6000);
  62   1         a=bus;
  63   1         a=a&0x0f;
  64   1         if(a!=0x0f)
  65   1        {
  66   2         delayms(2000);
  67   2          if(a!=0x0f)
  68   2         {
  69   3           switch(a)
  70   3          {
  71   4           case 0x0e:
  72   4                k=0x41;
  73   4      
  74   4                break;
  75   4           case 0x0d:
  76   4                k=0x42;
  77   4         
  78   4                break;
  79   4           case 0x0b:
  80   4                k=0x43;
  81   4               
  82   4                break;
  83   4           case 0x07:
  84   4                k=0x44;
  85   4             
  86   4                break;
  87   4          }
  88   3            display(k);
  89   3                 r=r-1;
  90   3           while(a!=0x0f)
  91   3           {
  92   4                bus=0x0f;
  93   4                delayms(2000);
  94   4                a=bus;          
  95   4           }
  96   3         }
  97   2         }  
  98   1          bus=0xdf;        //扫描第二行
  99   1          delayms(6000);
 100   1          a=bus;
 101   1          a=a&0x0f;
 102   1          if(a!=0x0f)
 103   1          {
 104   2           delayms(2000);
 105   2           if(a!=0x0f)
 106   2           {
 107   3           switch(a)
 108   3           {
 109   4            case 0x0e:
 110   4                 k=0x45;
 111   4                 break; 
 112   4            case 0x0d:
 113   4                 k=0x46;
 114   4                 break;
 115   4            case 0x0b:
 116   4                 k=0x47;
 117   4                 shuju=0x07;
C51 COMPILER V8.05a   KEY_LCD                                                              05/23/2008 20:23:31 PAGE 3   

 118   4                 break;
 119   4            case 0x07:
 120   4                 k=0x48;
 121   4                 break;
 122   4           }
 123   3           display(k);
 124   3               r=r-1;
 125   3           while(a!=0x0f)
 126   3            {
 127   4             bus=0x0f;
 128   4                 delayms(2000);
 129   4             a=bus;
 130   4                 
 131   4            }
 132   3           }  
 133   2          }     
 134   1          bus=0xbf;        //扫描第3行
 135   1      
 136   1              delayms(6000);
 137   1          a=bus;
 138   1          a=a&0x0f;
 139   1          if(a!=0x0f)
 140   1          {
 141   2           delayms(2000);
 142   2           if(a!=0x0f)
 143   2           {
 144   3           switch(a)
 145   3           {
 146   4            case 0x0e:
 147   4                 k=0x49;
 148   4                
 149   4                 break; 
 150   4            case 0x0d:
 151   4                 k=0x4a;
 152   4                 
 153   4                 break;
 154   4            case 0x0b:
 155   4                k=0x4b;
 156   4                 break;
 157   4            case 0x07:
 158   4                 k=0x4c;
 159   4                 break;
 160   4           }
 161   3           display(k);
 162   3                r=r-1;
 163   3           while(a!=0x0f)
 164   3            {
 165   4            bus=0x0f;
 166   4                 delayms(2000);
 167   4             a=bus;
 168   4               
 169   4            }
 170   3           }  
 171   2          }     
 172   1           bus=0x7f;        //扫描第4行
 173   1               delayms(6000);
 174   1          a=bus;
 175   1          a=a&0x0f;
 176   1          if(a!=0x0f)
 177   1          {
 178   2           delayms(2000);
 179   2           if(a!=0x0f)
C51 COMPILER V8.05a   KEY_LCD                                                              05/23/2008 20:23:31 PAGE 4   

 180   2           {
 181   3           switch(a)
 182   3           {
 183   4            case 0x0e:
 184   4                 k=0x4d;
 185   4                 break; 
 186   4            case 0x0d:
 187   4                 k=0x4e;
 188   4                 break;
 189   4            case 0x0b:
 190   4                 k=0x4f;
 191   4                 break;
 192   4            case 0x07:
 193   4                 k=0x50;
 194   4                 break;
 195   4           }
 196   3           display(k);
 197   3                r=r-1;
 198   3           while(a!=0x0f)
 199   3            {
 200   4             bus=0x0f;
 201   4                 delayms(2000);
 202   4             a=bus;      
 203   4            }
 204   3           }  
 205   2          }     
 206   1       } 
 207          void main()
 208                  {
 209   1                      while(1)
 210   1                      {
 211   2                              chushi();
 212   2                              r=0x10;
 213   2                              while(r>0)
 214   2                                      {
 215   3                                      jianpan();
 216   3                                      }
 217   2                              shuju=0xc0;
 218   2                              enable();
 219   2                              r=0x10;
 220   2                              while(r>0)
 221   2                                      {
 222   3                                      jianpan();
 223   3                                      }
 224   2                      }
 225   1              }
 226          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    456    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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