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

📄 lcd_driver_user.lst

📁 MzT24_Driver_C8051彩屏液晶驱动
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   LCD_DRIVER_USER                                                       06/27/2007 01:39:54 PAGE 1   


C51 COMPILER V8.02, 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          //========================================================================
   3          // 文件名: LCD_Driver_User.c
   4          // 作  者: Xinqiang Zhang(email: xinqiang@Mzdesign.com.cn)
   5          // 日  期: 2007/04/10
   6          // 描  述: MzT24-1 TFT LCD模块底层接口程序集(C语言版本)  for C8051F020
   7          //                      
   8          //
   9          // 参  考: 请参考具体显示器的硬件描述说明书或者是DataSheet,并以此来编写底
  10          //                      层接口驱动程序,以及LCD的初始化代码
  11          // 版  本:
  12          //      2007/04/10      First version    Mz Design
  13          //========================================================================
  14          #include "LCD_PortConfig.h"
  15          #include "LCD_Config.h"
  16          
  17          //========================================================================
  18          // 函数: void LCD_DataWrite(unsigned char Data)
  19          // 描述: 写一个字的显示数据至LCD中的显示缓冲RAM当中
  20          // 参数: Data 写入的数据 
  21          // 返回: 无
  22          // 备注: 无
  23          // 版本:
  24          //      2007/04/10      First version
  25          //========================================================================
  26          void LCD_DataWrite(unsigned int Data)
  27          {
  28   1      //      *COM_W_ADDR = 0x00;
  29   1      //      *COM_W_ADDR = 0x22;
  30   1      //      *DAT_W_ADDR = (unsigned char)(Data>>8);
  31   1      //      *DAT_W_ADDR = (unsigned char)(Data&0x00ff);
  32   1              LCD_RS = 0;
  33   1              LCD_CS = 0;
  34   1              LCD_WR = 0;
  35   1              P1 = 0;
  36   1              LCD_WR = 1;
  37   1              LCD_WR = 0;
  38   1              P1 = 0x22;
  39   1              LCD_WR = 1;
  40   1              LCD_RS = 1;
  41   1              LCD_WR = 0;
  42   1              P1 = Data>>8;
  43   1              LCD_WR = 1;
  44   1              LCD_WR = 0;
  45   1              P1 = (unsigned char)(Data&0x00ff);
  46   1              LCD_WR = 1;
  47   1              LCD_CS = 1;
  48   1      }
  49          //========================================================================
  50          // 函数: unsigned char LCD_DataRead(void)
  51          // 描述: 从LCD中的显示缓冲RAM当中读一个字节的显示数据
  52          // 参数: 无  
  53          // 返回: 读出的数据
  54          // 备注: 无
  55          // 版本:
C51 COMPILER V8.02   LCD_DRIVER_USER                                                       06/27/2007 01:39:54 PAGE 2   

  56          //      2007/04/10      First version
  57          //========================================================================
  58          unsigned int LCD_DataRead(void)
  59          {
  60   1              unsigned int Read_Data;
  61   1      //      *COM_W_ADDR = 0x00;
  62   1      //      *COM_W_ADDR = 0x00;
  63   1      //      Read_Data = *COM_W_ADDR;//*DAT_R_ADDR;
  64   1      //      Read_Data = Read_Data<<8;
  65   1      //      Read_Data |= *COM_W_ADDR;//*DAT_R_ADDR;
  66   1              LCD_CS = 0;
  67   1              LCD_RS = 0;
  68   1              LCD_RD = 0;
  69   1              LCD_RD = 1;
  70   1              LCD_RD = 0;
  71   1              LCD_RD = 1;
  72   1              P1 = 0xff;
  73   1              LCD_RD = 0;
  74   1              _nop_();
  75   1              Read_Data = P1;
  76   1              Read_Data = Read_Data<<8;
  77   1              LCD_RD = 1;
  78   1              P1 = 0xff;
  79   1              LCD_RD = 0;
  80   1              _nop_();
  81   1              Read_Data |= P1;
  82   1              LCD_RD = 1;
  83   1              LCD_CS = 1;
  84   1              return Read_Data;
  85   1      }
  86          //========================================================================
  87          // 函数: void LCD_RegWrite(unsigned char Reg_Addr,unsigned int Data)
  88          // 描述: 写一个字节的数据至LCD中的控制寄存器当中
  89          // 参数: Reg_Addr       寄存器地址
  90          //               Data           写入的数据 
  91          // 返回: 无
  92          // 备注: 
  93          // 版本:
  94          //      2007/04/10      First version
  95          //========================================================================
  96          void LCD_RegWrite(unsigned char Reg_Addr,unsigned int Data)
  97          {
  98   1      //      *COM_W_ADDR = 0x00;
  99   1      //      *COM_W_ADDR = Reg_Addr;
 100   1      //      *DAT_W_ADDR = Data>>8;
 101   1      //      *DAT_W_ADDR = (unsigned char)(Data&0x00ff);
 102   1              LCD_RS = 0;
 103   1              LCD_CS = 0;
 104   1              LCD_WR = 0;
 105   1              P1 = 0;
 106   1              LCD_WR = 1;
 107   1              LCD_WR = 0;
 108   1              P1 = Reg_Addr;
 109   1              LCD_WR = 1;
 110   1              LCD_RS = 1;
 111   1              LCD_WR = 0;
 112   1              P1 = Data>>8;
 113   1              LCD_WR = 1;
 114   1              LCD_WR = 0;
 115   1              P1 = (unsigned char)(Data&0x00ff);
 116   1              LCD_WR = 1;
 117   1              LCD_CS = 1;
C51 COMPILER V8.02   LCD_DRIVER_USER                                                       06/27/2007 01:39:54 PAGE 3   

 118   1      }
 119          //========================================================================
 120          // 函数: void LCD_Reg22(void)
 121          // 描述: MzT24-1 LCD模块当中,依据控制器SPFD5408的特性,将操作寄存器指向数
 122          //              据寄存器R22h当中,以便于后面的数据连续写操作
 123          // 参数:
 124          // 返回: 无
 125          // 备注: 
 126          // 版本:
 127          //      2007/03/15      First version
 128          //========================================================================
 129          void LCD_Reg22(void)
 130          {
 131   1              LCD_RS = 0;
 132   1              LCD_CS = 0;
 133   1              LCD_WR = 0;
 134   1              P1 = 0;
 135   1              LCD_WR = 1;
 136   1              LCD_WR = 0;
 137   1              P1 = 0x22;
 138   1              LCD_WR = 1;
 139   1              LCD_CS = 1;
 140   1      }
 141          //========================================================================
 142          // 函数: void Fill_Dot_LCD(unsigned int Color)
 143          // 描述: 填充一个点到LCD显示缓冲RAM当中,而不管当前要填充的地址如何
 144          // 参数: Color          要填充的点的颜色 
 145          // 返回: 无
 146          // 备注: 
 147          // 版本:
 148          //      2007/04/10      First version
 149          //========================================================================
 150          void Fill_Dot_LCD(unsigned int Color)
 151          {
 152   1              LCD_RS = 1;
 153   1              LCD_CS = 0;
 154   1              LCD_WR = 0;
 155   1              P1 = Color>>8;
 156   1              LCD_WR = 1;
 157   1              LCD_WR = 0;
 158   1              P1 = (unsigned char)(Color&0x00ff);
 159   1              LCD_WR = 1;
 160   1              LCD_CS = 1;
 161   1      }
 162          //========================================================================
 163          // 函数: void Write_Dot_LCD(int x,int y,unsigned int i)
 164          // 描述: 在LCD的真实坐标系上的X、Y点绘制填充色为i的点
 165          // 参数: x              X轴坐标
 166          //               y              Y轴坐标
 167          //               i              要填充的点的颜色 
 168          // 返回: 无
 169          // 备注: 
 170          // 版本:
 171          //      2007/04/10      First version
 172          //========================================================================
 173          void Write_Dot_LCD(unsigned char x,unsigned int y,unsigned int i)
 174          {
 175   1      
 176   1              LCD_RegWrite(0x20,x);
 177   1              LCD_RegWrite(0x21,y);
 178   1              LCD_DataWrite(i);
 179   1      }
C51 COMPILER V8.02   LCD_DRIVER_USER                                                       06/27/2007 01:39:54 PAGE 4   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -