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

📄 8.5.lst

📁 LCD液晶显示器
💻 LST
字号:
C51 COMPILER V7.09   8_5                                                                   08/23/2005 18:45:43 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE 8_5
OBJECT MODULE PLACED IN 8.5.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 8.5.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #include <absacc.h>
   3          
   4          #define uchar unsigned char
   5          #define uint unsigned int
   6          
   7          #define LcdCommand           XBYTE[0xFFFF]
   8          #define LcdDataWrite         XBYTE[0xFFFE]
   9          
  10          uchar code ZKWU[]=
  11          {0x00,0x10,0x1F,0xF8,0x10,0x10,0x10,0x10,0x1F,0xF0,0x00,0x00,0x00,0x10,0x3F,
  12          0xF8,0x01,0x00,0x01,0x04,0xFF,0xFE,0x02,0x80,0x02,0x40,0x04,0x20,0x18,0x1C,0x60,
  13          0x08};
  14          
  15          uchar code ZKLIN[]=
  16          {0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0xFD,0xFE,0x10,0x20,0x10,0x60,0x38,0x70
  17          ,
  18          0x34,0xB0,0x54,0xA8,0x51,0x28,0x92,0x26,0x14,0x24,0x10,0x20,0x10,0x20,0x10,0x20}
  19          ;           
  20                                       
  21          void Initialize(void);
  22          void delay(uint);
  23          void SetCursor(uchar,uchar);
  24          void WriteOneWork(uchar,uchar,uchar *);
  25          void WriteLine(uchar,uchar,uchar);
  26          
  27          void main(void)
  28          {
  29   1              SP=0x60;        
  30   1              EA=0;
  31   1              delay(0x30);
  32   1              Initialize();
  33   1              delay(0x9);
  34   1              LcdCommand=0x4f;        /* 光标地址自动向下增一 */
  35   1              
  36   1              WriteOneWork(0,0,ZKWU);
  37   1      
  38   1              WriteOneWork(0x2,0x80,ZKLIN);
  39   1                           
  40   1              while(1);
  41   1      }
  42          
  43          /******************************** 初始化LCD函数 
  44          ********************************/
  45          void Initialize(void)
  46          {
  47   1              uint i;
  48   1              
  49   1              LcdCommand=0x40;       /* ---------LCD SYSTEM SET系统设置令,8个参数-----
  50   1      --- */
  51   1              LcdDataWrite=0x30;
  52   1              LcdDataWrite=0x87;
  53   1              LcdDataWrite=0x07;
  54   1              LcdDataWrite=39;       /* 显示域长度为320dot */
  55   1              LcdDataWrite=0x36;     /* 确定液晶工作频率 */
C51 COMPILER V7.09   8_5                                                                   08/23/2005 18:45:43 PAGE 2   

  56   1              LcdDataWrite=239;      /* 显示屏高度为240dot */
  57   1              LcdDataWrite=40;       /* 显示屏一行所占显示缓冲区字节数(L) */
  58   1              LcdDataWrite=0;        /* 显示屏一行所占显示缓冲区字节数(H) */
  59   1              delay(0x9);
  60   1              
  61   1              LcdCommand=0x44;       /* ---------LCD SCROLL显示区设置命令,最多10个参
  62   1      数--------- */
  63   1              LcdDataWrite=0x00;     /* 显示1区对应的显示RAM起始高8位地址 */
  64   1              LcdDataWrite=0x00;     /* 显示1区对应的显示RAM起始低8位地址 */
  65   1              LcdDataWrite=240;      /* 显示1区占用240个dot行 */
  66   1              LcdDataWrite=0x80;     /* 显示2区对应的显示RAM起始低8位地址 */
  67   1              LcdDataWrite=0x25;     /* 显示2区对应的显示RAM起始高8位地址 */
  68   1              LcdDataWrite=240;      /* 显示3区占用240个dot行 */
  69   1              LcdDataWrite=0x00;     /* 显示3区对应的显示RAM起始低8位地址 */
  70   1              LcdDataWrite=0x4b;     /* 显示3区对应的显示RAM起始高8位地址 */
  71   1              delay(0x9);
  72   1              
  73   1              LcdCommand=0x5a;       /* 水平卷动,初始化时必须清零 */
  74   1              LcdDataWrite=0x00;
  75   1              delay(0x9);
  76   1              
  77   1              LcdCommand=0x5b;       /* 各个显示区的合成方式,1个参数 */
  78   1              LcdDataWrite=0x1c;     /* 参数:显示方式为三屏图形叠加,逻辑或 */
  79   1              delay(0x9);
  80   1              
  81   1              LcdCommand=0x59;       /* 打开显示,1个参数 */
  82   1              LcdDataWrite=0x04;     /* 只显示第一个区并关闪烁 */
  83   1              delay(0x9);
  84   1              
  85   1              LcdCommand=0x4c;       /* 光标自动向右增一?*/
  86   1              delay(0x9);
  87   1              
  88   1              LcdCommand=0x46;       /* 设定光标位置命令 */
  89   1              LcdDataWrite=0;        /* 从0000位置开始 */
  90   1              LcdDataWrite=0;
  91   1              delay(0x9);
  92   1              
  93   1              LcdCommand=0x42;       /* 允许MPU连续地把显示数据写入显示区内命令 */
  94   1      
  95   1              for(i=0;i<32760;i++)
  96   1              {
  97   2                      LcdDataWrite=0;  /* 将32K显缓全部清零,即LCD不显示任何东西 */
  98   2              }
  99   1      }
 100          
 101          /* --------------------------设定光标,允许显示------------------------- */
 102          void SetCursor(uchar CursorHIGH,uchar CursorLOW)
 103          {        
 104   1              delay(0x9);
 105   1              LcdCommand=0x46;       /* 设定光标位置命令 */
 106   1              LcdDataWrite=CursorLOW;        /* 从0000位置开始 */
 107   1              LcdDataWrite=CursorHIGH;
 108   1              delay(0x9);
 109   1              LcdCommand=0x42;       /* 允许MPU连续地把显示数据写入显示区内命令 */
 110   1      }
 111          
 112          /* ---------------------------在指定位置显示一个汉字--------------------------- 
 113          */
 114          void WriteOneWork(uchar CurHIGH,uchar CurLOW,uchar * ZiKu)
 115          {
 116   1              uchar i;
 117   1              SetCursor(CurHIGH,CurLOW);         /* 设定光标,允许显示 */
C51 COMPILER V7.09   8_5                                                                   08/23/2005 18:45:43 PAGE 3   

 118   1              i=0;
 119   1              do
 120   1              {
 121   2                      LcdDataWrite=ZiKu[i];
 122   2                      i=i+2;
 123   2              }
 124   1              while(i<0x1e);
 125   1      
 126   1              SetCursor(CurHIGH,CurLOW+1);
 127   1              i=1;
 128   1              while(i<0x1f)
 129   1              {
 130   2                      LcdDataWrite=ZiKu[i];
 131   2                      i=i+2;
 132   2              }
 133   1      
 134   1      } 
 135          
 136          
 137          /* ----------------------延时子程序----------------------------- */
 138          void delay(uint delx)
 139          {
 140   1              uint i=0;
 141   1              while(i<delx)
 142   1              {
 143   2                      i++;
 144   2              }
 145   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    349    ----
   CONSTANT SIZE    =     64    ----
   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 + -