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

📄 12864z.lst

📁 液晶12864驱动c 中英文显示驱动程序
💻 LST
字号:
C51 COMPILER V8.02   12864Z                                                                08/14/2008 17:37:18 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 12864Z
OBJECT MODULE PLACED IN 12864z.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 12864z.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <at892051.h>
   2          #include <intrins.h>
   3          #include <string.h>
   4          
   5          #define uchar unsigned char  //自定义关键字
   6          
   7          #define BUSY_FLAG P1_7       //液晶模块忙标志
   8          #define MPU_RS_CH P3_5       //寄存器选择输入   RS
   9          #define MPU_RW_CH P3_4       //读写控制         RW
  10          #define MPU_ENABLE P3_7      //使能控制         E
  11          #define MPU_PS_CH P3_1       //串/并传输控制    PSB
  12          #define MPU_RESET P3_3       //液晶复位控制     RST
  13          #define LCD_DATA P1          //液晶数据口       P1
  14          
  15          #define LOW    0        //低电平
  16          #define HIGH   1        //高电平
  17          #define OFF    0        //逻辑关
  18          #define ON     1        //逻辑开
  19          
  20          //液晶模块指令集定义
  21          //-----------------------------------------------
  22          
  23          #define cClearDisplay 0x01      //清显示指令
  24          #define cEntryModeSet 0x06      //设置输入模式
  25          #define cDisplayOnCtrl 0x0c     //设置开显控制
  26          #define cFunctionSetB 0x30      //功能设定(基本指令)
  27          #define cFunctionSetE 0x34      //功能设定(扩充指令)
  28          
  29          //-----------------------------------------------
  30          void checkLcdBusy (void) 
  31          {
  32   1       LCD_DATA = 0xff;
  33   1       MPU_RS_CH = LOW;
  34   1       MPU_RW_CH = HIGH;
  35   1       MPU_ENABLE = HIGH;
  36   1       while (BUSY_FLAG);
  37   1       MPU_ENABLE = LOW;
  38   1      }
  39          
  40          //-----------------------------------------------
  41          void delayMs (uchar ms) 
  42          {
  43   1       uchar i;
  44   1       while (--ms)
  45   1       for (i = 0; i < 125; i++);
  46   1      }
  47          
  48          //-----------------------------------------------
  49          void delaySec (uchar sec) 
  50          {
  51   1       uchar i;
  52   1       while (--sec)
  53   1       for (i = 0; i < 200; i++)
  54   1       delayMs (6);
  55   1      }
C51 COMPILER V8.02   12864Z                                                                08/14/2008 17:37:18 PAGE 2   

  56          
  57          //-----------------------------------------------
  58          void lcdWriteCommand (uchar Command) 
  59          {
  60   1       checkLcdBusy();
  61   1       MPU_RS_CH = LOW;
  62   1       MPU_RW_CH = LOW;
  63   1       LCD_DATA = Command;
  64   1       MPU_ENABLE = HIGH;
  65   1       delayMs(1);
  66   1       MPU_ENABLE = LOW;
  67   1      }
  68          
  69          //-----------------------------------------------
  70          void lcdClear (void) 
  71          {
  72   1       lcdWriteCommand(cClearDisplay);
  73   1      }
  74          
  75          //-----------------------------------------------
  76          void lcdInit (void)   //初始化LCD子程序
  77          {
  78   1       MPU_RESET = LOW;
  79   1       delayMs(40);
  80   1       MPU_RESET = HIGH;
  81   1       delayMs(1);
  82   1       MPU_PS_CH = HIGH;
  83   1       lcdWriteCommand(cFunctionSetE);
  84   1       lcdWriteCommand(cFunctionSetB);
  85   1       lcdClear();
  86   1       lcdWriteCommand(cEntryModeSet);
  87   1       lcdWriteCommand(cDisplayOnCtrl);
  88   1      }
  89          
  90          //-----------------------------------------------
  91          void lcdWriteData (uchar Data) 
  92          {
  93   1       checkLcdBusy();
  94   1       MPU_RS_CH = HIGH;
  95   1       MPU_RW_CH = LOW;
  96   1       LCD_DATA = Data;
  97   1       MPU_ENABLE = HIGH;
  98   1       delayMs(1);
  99   1       MPU_ENABLE = LOW;
 100   1      }
 101          
 102          //-----------------------------------------------
 103          void dispString (uchar X, Y, speed, uchar *msg) 
 104          {
 105   1       if (X == 0)      X = 0x80;
 106   1       else if (X == 1) X = 0x90;
 107   1       else if (X == 2) X = 0x88;
 108   1       else if (X == 3) X = 0x98;
 109   1       Y = X + Y;
 110   1       lcdWriteCommand(Y);
 111   1       while (*msg)
 112   1        {
 113   2         lcdWriteData(*msg++);
 114   2         delayMs(speed);
 115   2        }
 116   1      }
 117          
C51 COMPILER V8.02   12864Z                                                                08/14/2008 17:37:18 PAGE 3   

 118          //-----------------------------------------------
 119          void main (void)
 120          {
 121   1       lcdInit (); 
 122   1       lcdClear();
 123   1       while(1)
 124   1       { 
 125   2        dispString(0, 0, 100, "山西华鑫软件公司");  delaySec(1);
 126   2        dispString(1, 2, 100, "皮带运输");          delaySec(1);
 127   2        dispString(2, 1, 100, "综合保护监控");      delaySec(1);
 128   2        dispString(3, 0, 100, "电话:03537040777");  delaySec(6);
 129   2        lcdClear();
 130   2        dispString(0, 0, 100, "公司名称:山西华");  delaySec(1);
 131   2        dispString(1, 0, 100, "鑫电气软件公司");    delaySec(1);
 132   2        dispString(2, 0, 100, "地址:山西省阳泉");  delaySec(1);
 133   2        dispString(3, 0, 100, "市四矿煤山路");      delaySec(6); 
 134   2        lcdClear();
 135   2        dispString(0, 0, 100, "www.sxhxdq.com");    delaySec(1);
 136   2        dispString(1, 0, 100, "shanxihx@163.com");  delaySec(1);
 137   2        dispString(2, 0, 100, "电话:03537040777");  delaySec(1);
 138   2        dispString(3, 0, 100, "传真:03537042240");  delaySec(6); 
 139   2        lcdClear();
 140   2       }
 141   1      }
 142           


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