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

📄 lcd.lst

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

  56   1                      write_LCD_command(GOTO_LINE_2+y);
  57   1      }
  58          void delay100us(unsigned char i)
  59          {
  60   1              unsigned char j=0;
  61   1      /*#pragma asm
  62   1      more:   mov             R3,#48
  63   1                      djnz    R3,$
  64   1                      djnz    R7,more
  65   1      #pragma endasm*/
  66   1              for(i;i>0;i--)
  67   1              for(j=0;j<34;j++);
  68   1                      
  69   1      }
  70          unsigned char scan()//51>1,61>4.71>7,81>0,54>A,64>a,74>up,84>down,72>left,73>right
  71          {
  72   1              unsigned char z,j,a,b;
  73   1              for(z=1;z<=4;z++)
  74   1              {       
  75   2                      switch(z){
  76   3                              case 1:a=0xfe;break;
  77   3                      
  78   3                              case 2:a=253;break;
  79   3                      
  80   3                              case 3:a=0xfb;break;
  81   3                              case 4:a=0xf7;break;
  82   3                      
  83   3                              default :break;
  84   3                      }
  85   2                      SNPT=a;
  86   2                      delay100us(1);
  87   2                      delay100us(1);
  88   2                      delay100us(1);
  89   2                      b=SNPT;
  90   2                      delay100us(10);
  91   2                      if(b!=SNPT) return 0;
  92   2                      b=b>>4;
  93   2                      switch(b){
  94   3                              case 0x0e:j=50+z;
  95   3                                              break;
  96   3                              case 13:j=60+z;
  97   3                                      break;
  98   3                              case 11:j=70+z;
  99   3                                      break;
 100   3                              case 7:j=80+z;
 101   3                                      break;
 102   3                              default :j=0;break;}
 103   2                      if(j!=0) break;
 104   2              }
 105   1              SNPT=0xff;
 106   1      //      P3=j;
 107   1              return j;       
 108   1      }       
 109          unsigned char value(unsigned char i)
 110          {
 111   1              switch(i){
 112   2              case 51: return '3';break;
 113   2              case 52: return '2';break;
 114   2              case 53: return '1';break;
 115   2              case 54: return 'A';break;
 116   2              case 61: return '6';break;
 117   2              case 62: return '5';break;
C51 COMPILER V7.06   LCD                                                                   09/06/2007 17:33:49 PAGE 3   

 118   2              case 63: return '4';break;
 119   2              case 64: return 'V';break;
 120   2              case 71: return '9';break;
 121   2              case 72: return '8';break;
 122   2              case 73: return '7';break;
 123   2              case 74: return 'U';break;
 124   2              case 81: return 'E';break;
 125   2              case 82: return 'B';break;
 126   2              case 83: return '0';break;
 127   2              case 84: return 'D';break;
 128   2              default: return 0;
 129   2              }
 130   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    424    ----
   CONSTANT SIZE    =     11    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       6
   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 + -