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

📄 main.lst

📁 lcd12864 显示汉字图片 反白,是一个非常好的程序,可以和大家共享,
💻 LST
字号:
C51 COMPILER V7.06   MAIN                                                                  03/09/2008 16:42:09 PAGE 1   


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

stmt level    source

   1          
   2          #include <AT89X52.H>
   3          
   4          #define uchar unsigned  char
   5          #define uint unsigned int
   6          #define lcd_clr 0x01
   7          #define you_on  0x0f
   8          
   9          //全局变量定义
  10          sbit rs = P2^0;
  11          sbit rw  = P2^1;
  12          sbit e = P2^2;
  13          sbit psb = P2^3;
  14          sbit rst = P2^5;
  15          //sbit lcd_deng = P2^3;
  16          
  17          
  18          //函数申明
  19          void lcd_ini(void);     
  20          void lcd_wrc(uchar com);
  21          void lcd_wrd(uchar dat);
  22          void lcd_checkbusy();
  23          delay(uchar n);
  24          ldelay(uint n);
  25          void lcd_on();
  26          void lcd_off();
  27          uchar lcd_read_ac();
  28          void lcd_dis_num(uint dat);
  29          void lcd_dis_ch(uchar h,uchar l);
  30          void lcd_add(uchar h,uchar l);
  31          
  32          
  33          
  34          
  35          void main()
  36          {
  37   1              uchar i;
  38   1      //      lcd_off();
  39   1      //      lcd_on();
  40   1              lcd_ini();
  41   1      
  42   1      //      lcd_wrd(0xb5);
  43   1      //      lcd_wrd(0xf1);
  44   1              while(1)
  45   1              {
  46   2                      lcd_add(2,2);
  47   2                      lcd_dis_ch(0xb4,0xa1);
  48   2              }
  49   1      
  50   1      //      for(i=0;i<10;i++)
  51   1      //      {
  52   1      //              lcd_wrd(0x30+i);
  53   1      //      }
  54   1      
  55   1              lcd_dis_ch(0xb4,0xa1);
C51 COMPILER V7.06   MAIN                                                                  03/09/2008 16:42:09 PAGE 2   

  56   1      //      lcd_wrc(0x01);
  57   1      //      lcd_wrc(0x0f);
  58   1      
  59   1              lcd_dis_ch(0xb4,0xa1);
  60   1              i=lcd_read_ac();
  61   1              i=lcd_read_ac();
  62   1              lcd_dis_num(i);
  63   1              lcd_wrc(you_on);
  64   1              lcd_wrc(0x10);
  65   1              lcd_wrd(0x05);
  66   1      
  67   1              while(1);
  68   1      }
  69          
  70          
  71          void lcd_ini()
  72          {
  73   1      
  74   1              delay(100);
  75   1              psb = 1;
  76   1              delay(100);
  77   1              rst = 1;
  78   1              delay(100);
  79   1      //      lcd_wrc(0x34);
  80   1              lcd_wrc(0x30);
  81   1              delay(10);
  82   1              lcd_wrc(0x30);
  83   1              delay(10);
  84   1              lcd_wrc(0x01);
  85   1              delay(10);
  86   1              lcd_wrc(0x06);
  87   1              delay(10);
  88   1              lcd_wrc(0x0c);
  89   1              delay(100);
  90   1      }       
  91          void lcd_wrc(uchar com)
  92          {
  93   1              lcd_checkbusy();
  94   1              rs = 0;
  95   1              rw = 0;
  96   1              e = 1;
  97   1              P0 = com;       
  98   1              P0 = com;
  99   1              delay(10);
 100   1              e = 0;
 101   1      }
 102          
 103          void lcd_wrd(uchar dat)
 104          {
 105   1              lcd_checkbusy();
 106   1              rs = 1;
 107   1              rw = 0;
 108   1              e = 1;
 109   1              P0 = dat;
 110   1              P0 = dat;
 111   1              delay(10);
 112   1              e = 0;
 113   1      }
 114          void lcd_checkbusy()
 115          {
 116   1              uchar busy;
 117   1              P0 = 0XFF;
C51 COMPILER V7.06   MAIN                                                                  03/09/2008 16:42:09 PAGE 3   

 118   1              busy = P0;
 119   1              if(busy>0x7f)
 120   1              {
 121   2                      rs = 0;
 122   2                      rw = 1;
 123   2                      e = 1;
 124   2                      busy = P0;
 125   2                      e = 0;
 126   2                      delay(10);
 127   2              }
 128   1      }
 129          uchar lcd_rdd();
 130          delay(uchar n)
 131          {
 132   1              while(n--);
 133   1      }
 134          ldelay(uint n)
 135          {
 136   1              uint a;
 137   1              for(a=0;a<10000;a++)
 138   1              {
 139   2                      while(n--);
 140   2              }
 141   1      }
 142          /*
 143          void lcd_on()
 144          {
 145                  lcd_deng = 0;
 146          }
 147          void lcd_off()
 148          {
 149                  lcd_deng = 1;
 150          }
 151          */
 152          uchar lcd_read_ac()
 153          {
 154   1              uchar dat;
 155   1      //      P0 = 0X00;
 156   1              rs = 0;
 157   1              rw = 1;
 158   1              e = 1;
 159   1              dat = P0;
 160   1              dat = P0;
 161   1              e = 0;
 162   1              return(dat&0x7f);
 163   1      }
 164          void lcd_dis_num(uint dat)
 165          {
 166   1          uint a=0;
 167   1          dat =dat%10000;
 168   1          a =dat/1000;
 169   1          lcd_wrd(0x30+a);
 170   1          dat =dat%1000;
 171   1          a =dat/100;
 172   1          lcd_wrd(0x30+a);
 173   1          dat =dat%100;
 174   1          a=dat/10;
 175   1          lcd_wrd(0x30+a);
 176   1          dat =dat%10;
 177   1          lcd_wrd(0x30+dat);
 178   1      }
 179          void lcd_dis_ch(uchar h,uchar l)
C51 COMPILER V7.06   MAIN                                                                  03/09/2008 16:42:09 PAGE 4   

 180          {
 181   1          lcd_wrd(h);
 182   1          lcd_wrd(l);
 183   1      }
 184          
 185          void lcd_add(uchar h,uchar l)       //定位地址
 186          {
 187   1        l--;
 188   1        switch(h)
 189   1        {
 190   2          case 1:
 191   2          {
 192   3            lcd_wrc(0x80+l);
 193   3            break;
 194   3          }
 195   2          case 2:
 196   2          {
 197   3            lcd_wrc(0x90+l);
 198   3            break;
 199   3          }
 200   2          case 3:
 201   2          {
 202   3            lcd_wrc(0x88+l);
 203   3            break;
 204   3          }
 205   2          case 4:
 206   2          {
 207   3            lcd_wrc(0x98+l);
 208   3            break;
 209   3          }
 210   2        }
 211   1      }


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