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

📄 lcd_dis.lst

📁 1602液晶显示程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V8.16   LCD_DIS                                                               02/11/2009 00:49:30 PAGE 1   


C51 COMPILER V8.16, COMPILATION OF MODULE LCD_DIS
OBJECT MODULE PLACED IN .\Output\LCD_Dis.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\LCD_Driver\LCD_Dis.c BROWSE INCDIR(..\..\LCD_Driver) DEBUG OBJECTEXTE
                    -ND PRINT(.\LCD_Dis.lst) OBJECT(.\Output\LCD_Dis.obj)

line level    source

   1          //========================================================================
   2          // 文件名:  LCD_Dis.c
   3          // 作  者: xinqiang Zhang(小丑)  (email: xinqiang@Mzdesign.com.cn)
   4          // 日  期: 2009/02/10
   5          // 描  述: MzLH04-12864 LCD显示模块驱动V1.0版
   6          //                      基本功能接口函数集
   7          //
   8          // 参  考: 无
   9          // 版  本:
  10          //      2009/02/10      First version    Mz Design
  11          //========================================================================
  12          
  13          #include "LCD_Config.h"
  14          
  15          unsigned char X_Witch=6;
  16          unsigned char Y_Witch=10;
  17          unsigned char X_Witch_cn=16;
  18          unsigned char Y_Witch_cn=16;
  19          unsigned char Dis_Zero=0;
  20          //========================================================================
  21          // 函数: void LCD_Init(void)
  22          // 描述: LCD初始化程序,主要在里面完成端口初始化以及LCD模块的复位
  23          // 参数: 无 
  24          // 返回: 无
  25          // 备注:
  26          // 版本:
  27          //      2009/02/10      First version    Mz Design
  28          //========================================================================
  29          void TimeDelay(unsigned int Timers)
  30          {
  31   1              unsigned int i;
  32   1              while(Timers)
  33   1              {
  34   2                      Timers--;
  35   2                      for(i=0;i<100;i++) ;
  36   2              }
  37   1      }
  38          void LCD_Init(void)
  39          {
  40   1              //SS和SCK预先设置为高电平
  41   1              SPI_SCK = 1;
  42   1              SPI_CS = 1;
  43   1              
  44   1              //复位LCD模块
  45   1              SPI_RES = 0;
  46   1              TimeDelay(50);                  
  47   1              //保持低电平大概2ms左右
  48   1              SPI_RES = 1;
  49   1              TimeDelay(80);                                  //延时大概2ms左右
  50   1      }
  51          //========================================================================
  52          // 函数: void SPI_SSSet(unsigned char Status)
  53          // 描述: 置SS线状态
  54          // 参数: Status   =1则置高电平,=0则置低电平  
C51 COMPILER V8.16   LCD_DIS                                                               02/11/2009 00:49:30 PAGE 2   

  55          // 返回: 无
  56          // 版本:
  57          //      2009/02/10      First version    Mz Design
  58          //========================================================================
  59          void SPI_SSSet(unsigned char Status)
  60          {
  61   1              if(Status)                              //判断是要置SS为低还是高电平?//SS置高电平
  62   1                      SPI_CS = 1;
  63   1              else   //SS置低电平
  64   1                      SPI_CS = 0;
  65   1      }
  66          //========================================================================
  67          // 函数: void SPI_Send(unsigned char Data)
  68          // 描述: 通过串行SPI口输送一个byte的数据置模组
  69          // 参数: Data 要传送的数据 
  70          // 返回: 无
  71          // 版本:
  72          //      2007/07/17      First version
  73          //              2007/07/24              V1.2 for MCS51 Keil C
  74          //========================================================================
  75          void SPI_Send(unsigned char Data)
  76          {
  77   1              unsigned char i=0;
  78   1              for(i=0;i<8;i++)
  79   1              {
  80   2                      //SCK置低
  81   2                      SPI_SCK = 0;
  82   2                      if(Data&0x0080)
  83   2                              SPI_SDA = 1;                    
  84   2                      else SPI_SDA = 0;//
  85   2                      //SCK上升沿触发串行数据采样
  86   2                      SPI_SCK = 1;
  87   2                      Data = Data<<1;                                                 //数据左移一位
  88   2              }
  89   1      }
  90          //========================================================================
  91          // 函数: void FontSet(unsigned char Font_NUM,unsigned char Color)
  92          // 描述: ASCII字符字体设置
  93          // 参数: Font_NUM 字体选择,以驱动所带的字库为准
  94          //               Color  文本颜色,仅作用于ASCII字库  
  95          // 返回: 无
  96          // 备注: 
  97          // 版本:
  98          //      2007/07/19      First version
  99          //========================================================================
 100          void FontSet(unsigned char Font_NUM,unsigned char Color)
 101          {
 102   1              unsigned char ucTemp=0;
 103   1              if(Font_NUM==0)
 104   1              {
 105   2                      X_Witch = 6;//7;
 106   2                      Y_Witch = 10;
 107   2              }
 108   1              else
 109   1              {
 110   2                      X_Witch = 8;
 111   2                      Y_Witch = 16;
 112   2              }
 113   1              ucTemp = (Font_NUM<<4)|Color;
 114   1              //设置ASCII字符的字型
 115   1              SPI_SSSet(0);                                   //SS置低电平                    
 116   1              SPI_Send(0x81);                                 //传送指令0x81
C51 COMPILER V8.16   LCD_DIS                                                               02/11/2009 00:49:30 PAGE 3   

 117   1              SPI_Send(ucTemp);                               //选择8X16的ASCII字体,字符色为黑色
 118   1              SPI_SSSet(1);                                   //完成操作置SS高电平    
 119   1      }
 120          //========================================================================
 121          // 函数: void FontMode(unsigned char Cover,unsigned char Color)
 122          // 描述: 设置字符显示覆盖模式
 123          // 参数: Cover  字符覆盖模式设置,0或1
 124          //               Color 覆盖模式为1时字符显示时的背景覆盖色 
 125          // 返回: 无
 126          // 备注: 
 127          // 版本:
 128          //      2008/11/27      First version
 129          //========================================================================
 130          void FontMode(unsigned char Cover,unsigned char Color)
 131          {
 132   1              unsigned char ucTemp=0;
 133   1              ucTemp = (Cover<<4)|Color;
 134   1              //设置ASCII字符的字型
 135   1              SPI_SSSet(0);                                   //SS置低电平                    
 136   1              SPI_Send(0x89);                                 //传送指令0x81
 137   1              SPI_Send(ucTemp);                               //选择8X16的ASCII字体,字符色为黑色
 138   1              SPI_SSSet(1);                                   //完成操作置SS高电平    
 139   1      }
 140          //========================================================================
 141          // 函数: void FontSet_cn(unsigned char Font_NUM,unsigned char Color)
 142          // 描述: 汉字库字符字体设置
 143          // 参数: Font_NUM 字体选择,以驱动所带的字库为准
 144          //               Color  文本颜色,仅作用于汉字库  
 145          // 返回: 无
 146          // 备注: 
 147          // 版本:
 148          //      2007/07/19      First version
 149          //========================================================================
 150          void FontSet_cn(unsigned char Font_NUM,unsigned char Color)
 151          {
 152   1              unsigned char ucTemp=0;
 153   1              if(Font_NUM==0)
 154   1              {
 155   2                      X_Witch_cn = 12;
 156   2                      Y_Witch_cn = 12;
 157   2              }
 158   1              else
 159   1              {
 160   2                      X_Witch_cn = 16;
 161   2                      Y_Witch_cn = 16;
 162   2              }
 163   1              ucTemp = (Font_NUM<<4)|Color;
 164   1              //设置ASCII字符的字型
 165   1              SPI_SSSet(0);                                   //SS置低电平                    
 166   1              SPI_Send(0x82);                                 //传送指令0x81
 167   1              SPI_Send(ucTemp);                               //选择8X16的ASCII字体,字符色为黑色
 168   1              SPI_SSSet(1);                                   //完成操作置SS高电平    

⌨️ 快捷键说明

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