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

📄 lcd_dis.lst

📁 这是我以前做过的51单片机实验代码
💻 LST
字号:
C51 COMPILER V8.08   LCD_DIS                                                               04/26/2008 14:04:56 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE LCD_DIS
OBJECT MODULE PLACED IN LCD_Dis.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE LCD_Dis.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //========================================================================
   2          // 文件名: LCD_Dis.c
   3          // 作  者: Xinqiang Zhang(email: Xinqiang@Mzdesign.com.cn)
   4          //                      www.Mzdesign.com.cn
   5          // 日  期: 2007/05/17
   6          // 描  述: 串行接口版LCD用户接口层程序集
   7          //
   8          // 参  考: 请参考具体显示器的硬件描述说明书或者是DataSheet,并以此来编写加速
   9          //                      版接口程序;适用于MCS51系列MCU驱动串行的只写入无法读出的LCD
  10          // 版  本:
  11          //      2007/05/17      First version    Mz Design
  12          //========================================================================
  13          #include "LCD_Driver_User.h"                                    //LCD底层驱动声明头文件
  14          #include "LCD_Config.h"                                                 //LCD的配置文件,比如坐标轴是否倒置等的定义
*** WARNING C318 IN LINE 14 OF LCD_Dis.c: can't open file 'LCD_Config.h'
  15          
  16          
  17          extern code unsigned char Asii0608[];                   //6X8的ASII字符库
  18          extern code unsigned char Asii0816[];                   //8X16的ASII字符库
  19          extern code unsigned char GB1616[];                             //16*16自定义的汉字库
  20          
  21          unsigned char X_Witch;                                                                  //字符写入时的宽度
  22          unsigned char Y_Witch;                                                                  //字符写入时的高度
  23          unsigned char Font_Wrod;                                                                //字体的每个字模占用多少个存储单元数
  24          unsigned char *Char_TAB;                                                //字库指针
  25          //unsigned char Plot_Mode;                                                                      //绘图模式
  26          unsigned char BMP_Color;
  27          unsigned char Char_Color;
  28          
  29          //========================================================================
  30          // 函数: void FontSet(int Font_NUM,unsigned int Color)
  31          // 描述: 文本字体设置
  32          // 参数: Font_NUM 字体选择,以驱动所带的字库为准
  33          //               Color  文本颜色,仅作用于自带字库  
  34          // 返回: 无
  35          // 备注: 
  36          // 版本:
  37          //      2006/10/15      First version
  38          //========================================================================
  39          void FontSet(unsigned char Font_NUM,unsigned char Color)
  40          {
  41   1              switch(Font_NUM)
  42   1              {
  43   2                      case 0: Font_Wrod = 16; //ASII字符A
  44   2                                      X_Witch = 8;
  45   2                                      Y_Witch = 2;
  46   2                                      Char_Color = Color;
  47   2                                      Char_TAB = (unsigned char *)(Asii0816 - 32*16);
  48   2                      break;
  49   2                      case 1: Font_Wrod = 6;  //ASII字符B
  50   2                                      X_Witch = 6;
  51   2                                      Y_Witch = 1;
  52   2                                      Char_Color = Color;
  53   2                                      Char_TAB = (unsigned char *)(Asii0608 - (32*6));
  54   2                      break;          
C51 COMPILER V8.08   LCD_DIS                                                               04/26/2008 14:04:56 PAGE 2   

  55   2                      case 2: Font_Wrod = 32; //汉字A
  56   2                                      X_Witch = 16;
  57   2                                      Y_Witch = 2;
  58   2                                      Char_Color = Color;
  59   2                                      Char_TAB = (unsigned char *)GB1616;
  60   2                      break;
  61   2      /*              case 3: Font_Wrod = 16; //汉字B
  62   2                                      X_Witch = 16;
  63   2                                      Y_Witch = 2;
  64   2                                      Char_Color = Color;
  65   2                                      Char_TAB = GB16;
  66   2                      break;*/
  67   2                      default: break;
  68   2              }
  69   1      }
  70          //========================================================================
  71          // 函数: void PutChar(unsigned char x,unsigned char y,char a)  
  72          // 描述: 写入一个标准字符
  73          // 参数: x  X轴坐标     y  Y轴坐标(0~7页)
  74          //               a  要显示的字符在字库中的偏移量  
  75          // 返回: 无
  76          // 备注: ASCII字符可直接输入ASCII码即可
  77          // 版本:
  78          //      2006/10/15      First version
  79          //              2007/05/17              V2.1  for seriea port LCD
  80          //========================================================================
  81          void PutChar(unsigned char x,unsigned char y,char a)       
  82          {
  83   1              unsigned char i,j;
  84   1              unsigned char code *p_data; 
  85   1              p_data = Char_TAB + a*Font_Wrod;        //要写字符的首地址
  86   1              x = x+1;                                                        //Edit by xinqiang
  87   1              for(j=0;j<Y_Witch;j++)
  88   1              {
  89   2                      if((y+j) < (Dis_Y_MAX/8))
*** ERROR C202 IN LINE 89 OF LCD_DIS.C: 'Dis_Y_MAX': undefined identifier
  90   2                              LCD_RegWrite(y+j+0xb0);
  91   2                      LCD_RegWrite(((x&0xf0) >> 4)|0x10);     //设置初始地址 
  92   2                      LCD_RegWrite(x&0x0f);
  93   2                      for(i=0;i<X_Witch;i++)
  94   2                      {  
  95   3                              if(((x+i) < Dis_X_MAX)&&((y+j) < (Dis_Y_MAX/8)))
*** ERROR C202 IN LINE 95 OF LCD_DIS.C: 'Dis_X_MAX': undefined identifier
  96   3                                      LCD_DataWrite(*p_data++);
  97   3                      }
  98   2              }
  99   1      }
 100          
 101          //========================================================================
 102          // 函数: void PutString(unsigned char x,unsigned char y,char *p)
 103          // 描述: 在x、y为起始坐标处写入一串标准字符
 104          // 参数: x  X轴坐标     y  Y轴坐标(0~7页)
 105          //               p  要显示的字符串  
 106          // 返回: 无
 107          // 备注: 仅能用于自带的ASCII字符串显示
 108          // 版本:
 109          //      2006/10/15      First version
 110          //========================================================================
 111          void PutString(unsigned char x,unsigned char y,char *p)
 112          {
 113   1              while(*p!=0)
 114   1              {
C51 COMPILER V8.08   LCD_DIS                                                               04/26/2008 14:04:56 PAGE 3   

 115   2                      PutChar(x,y,*p);
 116   2                      x += X_Witch;
 117   2                      if((x + X_Witch) > Dis_X_MAX)
*** ERROR C202 IN LINE 117 OF LCD_DIS.C: 'Dis_X_MAX': undefined identifier
 118   2                      {
 119   3                              x = 0;
 120   3                              if((Dis_Y_MAX - y) < Y_Witch) break;
*** ERROR C202 IN LINE 120 OF LCD_DIS.C: 'Dis_Y_MAX': undefined identifier
 121   3                              else y += Y_Witch;
 122   3                      }
 123   2                      p++;
 124   2              }
 125   1      }
 126          //========================================================================
 127          // 函数: void SetPaintMode(int Mode,unsigned int Color)
 128          // 描述: 绘图模式设置
 129          // 参数: Mode 绘图模式    Color  像素点的颜色,相当于前景色  
 130          // 返回: 无
 131          // 备注: Mode无效
 132          // 版本:
 133          //      2006/10/15      First version
 134          //========================================================================
 135          void SetPaintMode(unsigned char Mode,unsigned char Color)
 136          {
 137   1              Mode = Mode;//Plot_Mode = Mode;         //仅仅是为了保持与其它驱动的一至性,绘图模式在该版驱动中未用
 138   1              BMP_Color = Color;
 139   1      }
 140          //========================================================================
 141          // 函数: void Rectangle(unsigned char left, unsigned char top, unsigned char right,
 142          //                                               unsigned char bottom, unsigned char Mode)
 143          // 描述: 以x,y为圆心R为半径画一个圆(mode = 0) or 圆面(mode = 1)
 144          // 参数: left - 矩形的左上角横坐标,范围0到126
 145          //               top - 矩形的左上角纵坐标(0~7页),范围0到6
 146          //               right - 矩形的右下角横坐标,范围1到127
 147          //               bottom - 矩形的右下角纵坐标(0~7页),范围0到7
 148          // 返回: 无
 149          // 备注: 画圆函数执行较慢,如果MCU有看门狗,请作好清狗的操作
 150          // 版本:
 151          //      2005/05/21      First version
 152          //              2007/05/17              V2.1  for seriea port LCD
 153          //========================================================================
 154          void Rectangle(unsigned char left, unsigned char top, unsigned char right, unsigned char bottom)
 155          {
 156   1              unsigned char uiTemp,ucTemp2;
 157   1              if(left>right)
 158   1              {
 159   2                      uiTemp = left;
 160   2                      left = right;
 161   2                      right = uiTemp;
 162   2              }
 163   1              if(top>bottom)
 164   1              {
 165   2                      uiTemp = top;
 166   2                      top = bottom;
 167   2                      bottom = uiTemp;
 168   2              }
 169   1              for(uiTemp=top;uiTemp<=bottom;uiTemp++)
 170   1              {
 171   2                      LCD_RegWrite(uiTemp+0xb0);
 172   2                      LCD_RegWrite(((left&0xf0) >> 4)|0x10);  //设置初始地址 
 173   2                      LCD_RegWrite(left&0x0f);
 174   2                      for(ucTemp2=left;ucTemp2<=right;ucTemp2++)
C51 COMPILER V8.08   LCD_DIS                                                               04/26/2008 14:04:56 PAGE 4   

 175   2                      {
 176   3                              LCD_DataWrite(BMP_Color);
 177   3                      }
 178   2              }
 179   1      }
 180          //========================================================================
 181          // 函数: void ClrScreen(unsigned int Mode)
 182          // 描述: 清屏函数,执行全屏幕清除或填充前景色
 183          // 参数: Mode   0:全屏除屏
 184          //                              1:全屏填充前景色
 185          // 返回: 无
 186          // 备注: 
 187          // 版本:
 188          //      2007/01/11      First version
 189          //========================================================================
 190          void ClrScreen(unsigned char Mode)
 191          {
 192   1              if(Mode==0)
 193   1                      LCD_Fill(LCD_INITIAL_COLOR);
*** ERROR C202 IN LINE 193 OF LCD_DIS.C: 'LCD_INITIAL_COLOR': undefined identifier
 194   1              else
 195   1                      LCD_Fill(BMP_Color);
 196   1      }

C51 COMPILATION COMPLETE.  1 WARNING(S),  5 ERROR(S)

⌨️ 快捷键说明

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