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

📄 lcd_driver_user.lst

📁 凌巨12864 sed1565芯片的液晶lcd驱动程序.
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   LCD_DRIVER_USER                                                       03/06/2007 23:20:31 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/02/25
   6          // 描  述: 底层接口驱动扩展程序集
   7          //
   8          // 参  考: 请参考具体显示器的硬件描述说明书或者是DataSheet,并以此来编写底
   9          //                      层接口驱动程序,以及LCD的初始化代码
  10          // 版  本:
  11          //      2007/02/25      First version    Mz Design
  12          // 注  意: 
  13          //                      该驱动程序当中有很多已经被屏蔽掉的子程序,用户可根据自己的应用
  14          //                      取消屏障并作一定的修改(如果可能的话)
  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                  *DAT_W_ADDR = Dat;
  31          }
  32          //========================================================================
  33          // 函数: unsigned char LCD_DataRead(void)
  34          // 描述: 从LCD中的显示缓冲RAM当中读一个字节的显示数据
  35          // 参数: 无  
  36          // 返回: 读出的数据,
  37          // 备注: 
  38          // 版本:
  39          //      2007/01/09      First version
  40          // 注意: 
  41          //========================================================================
  42          unsigned char LCD_DataRead(void)
  43          {
  44                  unsigned char Read_Data;
  45                  Read_Data = *DAT_R_ADDR;
  46                  Read_Data = *DAT_R_ADDR;//
  47          //SPLC501在读出数据时需要连续两次读操作方可读出
  48                  return Read_Data;
  49          }*/     
  50          //========================================================================
  51          // 函数: void LCD_RegWrite(unsigned char Command)
  52          // 描述: 写一个字节的数据至LCD中的控制寄存器当中
  53          // 参数: Command                写入的数据,低八位有效(byte) 
  54          // 返回: 无
  55          // 备注: 
C51 COMPILER V7.50   LCD_DRIVER_USER                                                       03/06/2007 23:20:31 PAGE 2   

  56          // 版本:
  57          //      2007/01/09      First version
  58          //========================================================================
  59          void LCD_RegWrite(unsigned char Command)
  60          {
  61   1              *COM_W_ADDR = Command;
  62   1      }
  63          //========================================================================
  64          // 函数: void Write_Dot_LCD(int x,int y,unsigned int i)
  65          // 描述: 在LCD的真实坐标系上的X、Y点绘制填充色为i的点
  66          // 参数: x              X轴坐标
  67          //               y              Y轴坐标
  68          //               i              要填充的点的颜色 
  69          // 返回: 无
  70          // 备注: 
  71          // 版本:
  72          //      2006/10/15      First version
  73          //              2007/01/09              V1.2 
  74          //========================================================================
  75          void Write_Dot_LCD(unsigned char x,unsigned char y,unsigned char i)
  76          {
  77   1              unsigned char x_low,x_hight;                                                    //定义列地址的高低位指令
  78   1              unsigned char Dot_Mask_Buf=0x01;
  79   1              unsigned char y_Page;                                                           //用于存放要画点的位置所在的byte数据位置
  80   1              x = x+4;
  81   1              x_low = (x&0x0f);                                                                       //定位列地址设置的低位指令
  82   1              x_hight = ((x>>4)&0x0f)+0x10;                                           //定位列地址设置的高位指令
  83   1      //      y_Page = y&0x07;                                                                        //取低三位
  84   1              switch(y&0x07)
  85   1              {
  86   2                      case 0: Dot_Mask_Buf = 0x01;break;
  87   2                      case 1: Dot_Mask_Buf = 0x02;break;
  88   2                      case 2: Dot_Mask_Buf = 0x04;break;
  89   2                      case 3: Dot_Mask_Buf = 0x08;break;
  90   2                      case 4: Dot_Mask_Buf = 0x10;break;
  91   2                      case 5: Dot_Mask_Buf = 0x20;break;
  92   2                      case 6: Dot_Mask_Buf = 0x40;break;
  93   2                      case 7: Dot_Mask_Buf = 0x80;break;
  94   2              }
  95   1              y_Page = (y>>3)+0xb0;                                                           //Get the page of the byte
  96   1              *COM_W_ADDR = y_Page;//LCD_RegWrite(y_Page);
  97   1              *COM_W_ADDR = x_low;//LCD_RegWrite(x_low);
  98   1              *COM_W_ADDR = x_hight;//LCD_RegWrite(x_hight);
  99   1              *COM_W_ADDR = 0xe0;//LCD_RegWrite(0xe0);                                                                //设置为读写改模式
 100   1              y_Page = *DAT_R_ADDR;
 101   1              y_Page = *DAT_R_ADDR;//LCD_DataRead();                                          //
 102   1              if(i) y_Page |= Dot_Mask_Buf;
 103   1              else y_Page &= ~Dot_Mask_Buf;
 104   1              *DAT_W_ADDR = y_Page;//LCD_DataWrite(y_Page);                                                   //
 105   1              *COM_W_ADDR = 0xee;//LCD_RegWrite(0xee);                                                                //读写改模式结束
 106   1      }
 107          /*
 108          //========================================================================
 109          // 函数: void Clear_Dot_LCD(int x,int y)
 110          // 描述: 清除在LCD的真实坐标系上的X、Y点
 111          // 参数: x              X轴坐标
 112          //               y              Y轴坐标
 113          // 返回: 无
 114          // 备注: 暂不使用该函数
 115          // 版本:
 116          //      2006/10/15      First version
 117          //========================================================================
C51 COMPILER V7.50   LCD_DRIVER_USER                                                       03/06/2007 23:20:31 PAGE 3   

 118          void Clear_Dot_LCD(int x,int y)
 119          {
 120                  //可根据自己的需要填写代码
 121                  x = y;                                          //无意义,仅为了让系统不提示警告
 122          }
 123          //========================================================================
 124          // 函数: unsigned int Get_Dot_LCD(int x,int y)
 125          // 描述: 获取在LCD的真实坐标系上的X、Y点上的当前填充色数据
 126          // 参数: x              X轴坐标
 127          //               y              Y轴坐标
 128          // 返回: 该点的颜色
 129          // 备注: 暂不使用该函数
 130          // 版本:
 131          //      2006/10/15      First version
 132          //========================================================================
 133          unsigned int Get_Dot_LCD(int x,int y)
 134          {
 135                  unsigned int Read_Data;

⌨️ 快捷键说明

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