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

📄 lcd_driver_user.lst

📁 此程序用于测温度值
💻 LST
字号:
C51 COMPILER V7.50   LCD_DRIVER_USER                                                       10/14/2008 23:00:14 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE LCD_DRIVER_USER
OBJECT MODULE PLACED IN LCD_Driver_User.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LCD_Driver_User.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //========================================================================
   2          // 文件名: LCD_Driver_User.c
   3          // 作  者: Xinqiang Zhang(email: Xinqiang@Mzdesign.com.cn)
   4          //                      www.Mzdesign.com.cn
   5          // 日  期: 2007/05/17
   6          // 描  述: 底层接口驱动扩展程序集
   7          //
   8          // 参  考: 请参考具体显示器的硬件描述说明书或者是DataSheet,并以此来编写底
   9          //                      层接口驱动程序,以及LCD的初始化代码
  10          // 版  本:
  11          //      2007/05/17      First version    Mz Design
  12          // 注  意: 
  13          //                      该驱动程序是由通用版LCD驱动程序修改而来,主要为了适应类似于MzL05
  14          //                      这样的仅能写入不能读出数据的LCD而做的
  15          //========================================================================
  16          #include "LCD_Config.h"
  17          #include "LCD_PortConfig.h"
  18          
  19          //========================================================================
  20          // 函数: void LCD_DataWrite(unsigned int Data)
  21          // 描述: 写一个字节的显示数据至LCD中的显示缓冲RAM当中
  22          // 参数: Data 写入的数据 
  23          // 返回: 无
  24          // 备注: 无
  25          // 版本:
  26          //      2007/01/09      First version
  27          //========================================================================
  28          void LCD_DataWrite(unsigned char Dat)//,_Fill_Dot_LCD
  29          {
  30   1              unsigned char Num;
  31   1              LCD_CS = 0;
  32   1              LCD_A0 = 1;
  33   1              for(Num=0;Num<8;Num++)
  34   1              {
  35   2                      if((Dat&0x80) == 0)     LCD_SDI = 0;
  36   2                      else LCD_SDI = 1;
  37   2                      Dat = Dat << 1;
  38   2                      LCD_CLK = 0;
  39   2                      LCD_CLK = 1;
  40   2              }
  41   1              LCD_CS = 1;
  42   1      }
  43          //========================================================================
  44          // 函数: void LCD_RegWrite(unsigned char Command)
  45          // 描述: 写一个字节的数据至LCD中的控制寄存器当中
  46          // 参数: Command                写入的数据,低八位有效(byte) 
  47          // 返回: 无
  48          // 备注: 
  49          // 版本:
  50          //      2007/01/09      First version
  51          //========================================================================
  52          void LCD_RegWrite(unsigned char Command)
  53          {
  54   1              unsigned char Num;
  55   1              LCD_CS = 0;
C51 COMPILER V7.50   LCD_DRIVER_USER                                                       10/14/2008 23:00:14 PAGE 2   

  56   1              LCD_A0 = 0;
  57   1              for(Num=0;Num<8;Num++)
  58   1              {
  59   2                      if((Command&0x80) == 0) LCD_SDI = 0;
  60   2                      else LCD_SDI = 1;
  61   2                      Command = Command << 1;
  62   2                      LCD_CLK = 0;
  63   2                      LCD_CLK = 1;
  64   2              }
  65   1              LCD_CS = 1;
  66   1      }
  67          //========================================================================
  68          // 函数: void LCD_Fill(unsigned int Data)
  69          // 描述: 会屏填充以Data的数据至各点中
  70          // 参数: Data   要填充的颜色数据
  71          // 返回: 无
  72          // 备注: 仅在LCD初始化程序当中调用
  73          // 版本:
  74          //      2006/10/15      First version
  75          //              2007/01/09              V1.2 
  76          //========================================================================
  77          void LCD_Fill(unsigned char Data)
  78          {
  79   1              unsigned char i,j;
  80   1              unsigned char uiTemp;
  81   1              uiTemp = Dis_Y_MAX;
  82   1              uiTemp = uiTemp>>3;
  83   1              for(i=0;i<=uiTemp;i++)                                                          //往LCD中填充初始化的显示数据
  84   1              {
  85   2                      LCD_RegWrite(0xb0+i);
  86   2                      LCD_RegWrite(0x01);
  87   2                      LCD_RegWrite(0x10);
  88   2                      for(j=0;j<=Dis_X_MAX;j++)
  89   2                      {
  90   3                              LCD_DataWrite(Data);
  91   3                      }
  92   2              }
  93   1      }
  94          //========================================================================
  95          // 函数: void LCD_Init(void)
  96          // 描述: LCD初始化程序,在里面会完成LCD初始所需要设置的许多寄存器,具体如果
  97          //               用户想了解,建议查看DataSheet当中各个寄存器的意义
  98          // 参数: 无 
  99          // 返回: 无
 100          // 备注:
 101          // 版本:
 102          //      2006/10/15      First version
 103          //              2007/01/09              V1.2
 104          //              2007/06/27              V1.21 
 105          //========================================================================
 106          //延时程序
 107          
 108          void TimeDelay(int Time)
 109          {
 110   1              int i;
 111   1              while(Time > 0)
 112   1              {
 113   2                      for(i = 0;i < 800;i++)
 114   2                      {
 115   3                              _nop_();
 116   3                      }
 117   2                      Time --;
C51 COMPILER V7.50   LCD_DRIVER_USER                                                       10/14/2008 23:00:14 PAGE 3   

 118   2              }
 119   1      }
 120          void LCD_Init(void)
 121          {
 122   1              //LCD驱动所使用到的端口的初始化(如果有必要的话)
 123   1              TimeDelay(200);
 124   1              LCD_RES = 0;
 125   1              TimeDelay(200);
 126   1              LCD_RES = 1;
 127   1              TimeDelay(20);
 128   1                      
 129   1              LCD_RegWrite(M_LCD_ON);                                                 //LCD On
 130   1              LCD_RegWrite(M_LCD_POWER_ALL);                                  //设置上电控制模式
 131   1              
 132   1              LCD_RegWrite(M_LCD_ELE_VOL);                                    //电量设置模式(显示亮度)
 133   1              LCD_RegWrite(0x1f);                                                             //指令数据0x0000~0x003f
 134   1              
 135   1              LCD_RegWrite(M_LCD_VDD_SET);                                    //V5内部电压调节电阻设置
 136   1              LCD_RegWrite(M_LCD_VDD);                                                //LCD偏压设置,V3时选
 137   1              
 138   1              LCD_RegWrite(M_LCD_COM_REV);                                    //Com 扫描方式设置
 139   1              LCD_RegWrite(M_LCD_SEG_NOR);                                    //Segment方向选择
 140   1              LCD_RegWrite(M_LCD_ALL_LOW);                                    //全屏点亮/变暗指令
 141   1              LCD_RegWrite(M_LCD_ALL_NOR);                                    //正向反向显示控制指令
 142   1              
 143   1              LCD_RegWrite(M_LCD_STATIC_OFF);                                 //关闭静态指示器
 144   1              LCD_RegWrite(0x00);                                                             //指令数据
 145   1              
 146   1              LCD_RegWrite(M_LCD_BEGIN_LINE);                         //设置显示起始行对应RAM
 147   1              LCD_Fill(LCD_INITIAL_COLOR);
 148   1      }
 149          


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