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

📄 lcd.lst

📁 一个应用了RTX 51 TINY的工程
💻 LST
字号:
C51 COMPILER V7.06   LCD                                                                   04/16/2008 22:21:21 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN lcd.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE lcd.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //bear zhou 编辑
   2          #include <at89x51.h>
   3          #include <lcd.h>
   4          char code int2charLCD[]="0123456789";//感觉code不用的
   5          void write_LCD_command(unsigned char command)
   6          {
   7   1              rw=WRITE;
   8   1              rs=COMMAND;
   9   1              enable=ENABLE;
  10   1              P1=command;
  11   1              delay100us(20);
  12   1              enable=DISABLE;
  13   1              rw=1;
  14   1      }
  15          void write_LCD_data(unsigned char LCDdata)
  16          {
  17   1              rw=WRITE;
  18   1              rs=DATA;
  19   1              enable=ENABLE;
  20   1              P1=LCDdata;//不管输入什么,他直接编译成二进制
  21   1              delay100us(20);
  22   1              enable=DISABLE;
  23   1              rw=1;
  24   1      }
  25          void init_LCD(void)
  26          {
  27   1              write_LCD_command(TwoLine_8bit);        //0x38
  28   1              write_LCD_command(CURSOR_ON);           //0x0C
  29   1              write_LCD_command(CURSOR_RIGHT);        //0x06
  30   1      }
  31          void clear_LCD(void)
  32          {
  33   1              write_LCD_command(CLEAR);
  34   1              write_LCD_command(CURSOR_HOME);
  35   1      }
  36          
  37          void display_LCD_string(char *p)
  38          {
  39   1              while(*p!='\0')
  40   1              {
  41   2                      write_LCD_data(*p);
  42   2                      p++;
  43   2                      
  44   2              }
  45   1      }
  46          void display_LCD_number(unsigned char number)
  47          {
  48   1              unsigned char x;
  49   1              x=number/100;
  50   1              write_LCD_data(int2charLCD[x]);
  51   1              x=(number/10)%10;
  52   1              write_LCD_data(int2charLCD[x]);
  53   1              x=number%10;
  54   1              write_LCD_data(int2charLCD[x]);
  55   1      }
C51 COMPILER V7.06   LCD                                                                   04/16/2008 22:21:21 PAGE 2   

  56          void gotoxy(unsigned char x,unsigned char y)
  57          {
  58   1              if(x==1)
  59   1                      write_LCD_command(GOTO_LINE_1+y);
  60   1              else
  61   1                      write_LCD_command(GOTO_LINE_2+y);
  62   1      }
  63          void delay100us(unsigned char i)
  64          {
  65   1              unsigned char a,j;
  66   1              for(a=0;a<i;a++)
  67   1              for(j=0;j<34;j++);
  68   1      }
  69          unsigned char scan(unsigned char* key_v)//51>1,61>4.71>7,81>0,54>A,64>a,74>up,84>down,72>left,73>right
  70          {
  71   1              unsigned char i1,i2,j,a,b,c,i=0;
  72   1              P0=0x0f;
  73   1              b=P0;
  74   1              if(b==0x0f) 
  75   1              {
  76   2                      *key_v='\0';
  77   2                      return 0;
  78   2              }
  79   1      //      gotoxy(2,0);
  80   1              for(i1=1;i1<=4;i1++)
  81   1              {       
  82   2      
  83   2                      switch(i1){
  84   3                              case 1:a=0xfe;break;
  85   3                              case 2:a=0xfd;break;
  86   3                              case 3:a=0xfb;break;
  87   3                              case 4:a=0xf7;break;
  88   3                              default: break;
  89   3                      }
  90   2                      P0=a;
  91   2                      delay100us(10);
  92   2                      b=P0;
  93   2                      c=b;
  94   2                      delay100us(10);
  95   2                      b=P0;
  96   2                      //display_LCD_number(b);
  97   2                      if(b!=c) return i1;
  98   2                      b=b>>4;
  99   2                      for(i2=0;i2<=3;i2++)
 100   2                      {
 101   3                              switch(i2){
 102   4                                      case 0:a=b|14;break;
 103   4                                      case 1:a=b|13;break;
 104   4                                      case 2:a=b|11;break;
 105   4                                      case 3:a=b|7;break;
 106   4                                      default: break;
 107   4                              }
 108   3                              switch(a){
 109   4                                      default: j=0;break;
 110   4                                      case 0x0e:j=50+i1;
 111   4                                                      break;
 112   4                                      case 13:j=60+i1;
 113   4                                              break;
 114   4                                      case 11:j=70+i1;
 115   4                                              break;
 116   4                                      case 7:j=80+i1;
 117   4                                              break;  
C51 COMPILER V7.06   LCD                                                                   04/16/2008 22:21:21 PAGE 3   

 118   4                              }
 119   3                              if(j!=0)
 120   3                              {       
 121   4                                      key_v[i]=value(j);
 122   4                                      key_v[i+1]='\0';
 123   4                                      i++;
 124   4                              }
 125   3                      }                               
 126   2              }
 127   1              return 100;
 128   1      }               
 129          unsigned char value(unsigned char i)
 130          {
 131   1              switch(i){
 132   2              case 51: return '1';break;
 133   2              case 52: return '4';break;
 134   2              case 53: return '7';break;
 135   2              case 54: return '0';break;
 136   2              case 61: return '2';break;
 137   2              case 62: return '5';break;
 138   2              case 63: return '8';break;
 139   2              case 64: return 'l';break;
 140   2              case 71: return '3';break;
 141   2              case 72: return '6';break;
 142   2              case 73: return '9';break;
 143   2              case 74: return 'u';break;
 144   2              case 81: return 'A';break;
 145   2              case 82: return 'a';break;
 146   2              case 83: return 'r';break;
 147   2              case 84: return 'd';break;
 148   2              default: return 0;
 149   2              }
 150   1      }unsigned char VS_key_V(unsigned char* key_v1,unsigned char* key_v2)
 151          {
 152   1              unsigned char i=0;
 153   1              while(i!=17)
 154   1              {
 155   2                      if(key_v1[i]!=key_v2[i]) return 0;
 156   2                      if((key_v1[i]=='\0')&&(key_v2[i]=='\0')) break;
 157   2                      i++;
 158   2                      //key_v2++;
 159   2              }
 160   1      
 161   1              if(i!=17)
 162   1              return 1;
 163   1              return 0;
 164   1      }
 165          void StrToStr(unsigned char* key_v1,unsigned char* key_v2)
 166          {
 167   1              
 168   1              do
 169   1              {
 170   2                      *key_v2=*key_v1;
 171   2                      key_v1++;
 172   2                      key_v2++;
 173   2              }while(*key_v1!='\0');
 174   1              *key_v2='\0';
 175   1      } 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    686    ----
C51 COMPILER V7.06   LCD                                                                   04/16/2008 22:21:21 PAGE 4   

   CONSTANT SIZE    =     11    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      26
   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 + -