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

📄 lcd_driver_user.lst

📁 本代码实现的是12864图形LCD模块
💻 LST
📖 第 1 页 / 共 2 页
字号:
 158          void Clear_Dot_LCD(int x,int y)
 159          {
 160                  //可根据自己的需要填写代码
 161                  x = y;                                          //无意义,仅为了让系统不提示警告
 162          }
 163          //========================================================================
 164          // 函数: unsigned int Get_Dot_LCD(int x,int y)
 165          // 描述: 获取在LCD的真实坐标系上的X、Y点上的当前填充色数据
 166          // 参数: x              X轴坐标
 167          //               y              Y轴坐标
 168          // 返回: 该点的颜色
 169          // 备注: 暂不使用该函数
 170          // 版本:
 171          //      2006/10/15      First version
 172          //========================================================================
 173          unsigned int Get_Dot_LCD(int x,int y)
 174          {
 175                  unsigned int Read_Data;
 176                  //可根据自己的需要填写代码
 177                  x = y;                                          //无意义,仅为了让系统不提示警告
 178                  return Read_Data;
C51 COMPILER V8.08   LCD_DRIVER_USER                                                       11/02/2007 15:16:56 PAGE 4   

 179          }          */
 180          /*
 181          //========================================================================
 182          // 函数: void Set_Dot_Addr_LCD(int x,int y)
 183          // 描述: 设置在LCD的真实坐标系上的X、Y点对应的RAM地址
 184          // 参数: x              X轴坐标
 185          //               y              Y轴坐标
 186          // 返回: 无
 187          // 备注: 仅设置当前操作地址,为后面的连续操作作好准备
 188          // 版本:
 189          //      2006/10/15      First version
 190          //              2007/01/09              V1.2 
 191          //========================================================================
 192          void Set_Dot_Addr_LCD(unsigned char x,unsigned char y)
 193          {
 194                  unsigned char x_low,x_hight;                                                    //定义列地址的高低位指令
 195                  unsigned char y_Page;                                                           //用于存放要画点的位置所在的byte数据位置
 196                  x = x+1;
 197                  x_low = (x&0x0f);                                                                       //定位列地址设置的低位指令
 198                  x_hight = ((x>>4)&0x0f)+0x10;                                           //定位列地址设置的高位指令
 199                  y_Page = (y>>3)+0xb0;                                                           //Get the page of the byte
 200                  *COM_W_ADDR = y_Page;//LCD_RegWrite(y_Page);
 201                  *COM_W_ADDR = x_low;//LCD_RegWrite(x_low);
 202                  *COM_W_ADDR = x_hight;//LCD_RegWrite(x_hight);
 203          }*/
 204          /*
 205          //========================================================================
 206          // 函数: void LCD_Fill_s(unsigned int Number,unsigned int Color)
 207          // 描述: 连续填充以Color色调的Number个点
 208          // 参数: Number 填充的数量    Color  像素点的颜色  
 209          // 返回:
 210          // 备注: 该函数可能会使用到
 211          // 版本:
 212          //      2006/10/15      First version
 213          //              2007/01/09              V1.2 
 214          //========================================================================
 215          void LCD_Fill_s(unsigned int Number,unsigned char Color)
 216          {
 217                  while(Number!=0)
 218                  {
 219                          LCD_DataWrite(Color);                                           //
 220                          Number--;
 221                  }
 222          } */
 223          //========================================================================
 224          // 函数: void LCD_Fill(unsigned char Data)
 225          // 描述: 会屏填充以Data的数据至各点中
 226          // 参数: Data   要填充的颜色数据
 227          // 返回: 无
 228          // 备注: 仅在LCD初始化程序当中调用
 229          // 版本:
 230          //      2006/10/15      First version
 231          //              2007/01/09              V1.2 
 232          //========================================================================
 233          void LCD_Fill(unsigned char Data)
 234          {
 235   1              unsigned char i,j;
 236   1              unsigned char uiTemp;
 237   1              uiTemp = Dis_Y_MAX;
 238   1              uiTemp = uiTemp>>3;
 239   1              for(i=0;i<=uiTemp;i++)                                                          //往LCD中填充初始化的显示数据
 240   1              {
C51 COMPILER V8.08   LCD_DRIVER_USER                                                       11/02/2007 15:16:56 PAGE 5   

 241   2                      LCD_RegWrite(0xb0+i);
 242   2                      LCD_RegWrite(0x01);
 243   2                      LCD_RegWrite(0x10);
 244   2                      for(j=0;j<=Dis_X_MAX;j++)
 245   2                      {
 246   3                              LCD_DataWrite(Data);
 247   3                      }
 248   2              }
 249   1      }
 250          //========================================================================
 251          // 函数: void LCD_Init(void)
 252          // 描述: LCD初始化程序,在里面会完成LCD初始所需要设置的许多寄存器,具体如果
 253          //               用户想了解,建议查看DataSheet当中各个寄存器的意义
 254          // 参数: 无 
 255          // 返回: 无
 256          // 备注:
 257          // 版本:
 258          //      2006/10/15      First version
 259          //              2007/01/09              V1.2 
 260          //========================================================================
 261          //延时程序
 262          
 263          void TimeDelay(int Time)
 264          {
 265   1              int i;
 266   1              while(Time > 0)
 267   1              {
 268   2                      for(i = 0;i < 800;i++)
 269   2                      {
 270   3                              _nop_();
 271   3                      }
 272   2                      Time --;
 273   2              }
 274   1      }
 275          void LCD_Init(void)
 276          {
 277   1              //LCD驱动所使用到的端口的初始化(如果有必要的话)
 278   1      //      LCD_PortInit();
 279   1      //      P0 = 0xff;
 280   1      //      P2 = 0xff;
 281   1              LCD_RS = 0;
 282   1              TimeDelay(50);
 283   1              LCD_RS = 1;
 284   1              TimeDelay(5);
 285   1                      
 286   1              LCD_RegWrite(M_LCD_ON);                                                 //LCD On
 287   1              LCD_RegWrite(M_LCD_POWER_ALL);                                  //设置上电控制模式
 288   1              
 289   1              LCD_RegWrite(M_LCD_ELE_VOL);                                    //电量设置模式(显示亮度)
 290   1              LCD_RegWrite(0x1f);                                                             //指令数据0x0000~0x003f
 291   1              
 292   1              LCD_RegWrite(M_LCD_VDD_SET);                                    //V5内部电压调节电阻设置
 293   1              LCD_RegWrite(M_LCD_VDD);                                                //LCD偏压设置,V3时选
 294   1              
 295   1              LCD_RegWrite(M_LCD_COM_REV);                                    //Com 扫描方式设置
 296   1              LCD_RegWrite(M_LCD_SEG_NOR);                                    //Segment方向选择
 297   1              LCD_RegWrite(M_LCD_ALL_LOW);                                    //全屏点亮/变暗指令
 298   1              LCD_RegWrite(M_LCD_ALL_NOR);                                    //正向反向显示控制指令
 299   1              
 300   1              LCD_RegWrite(M_LCD_STATIC_OFF);                                 //关闭静态指示器
 301   1              LCD_RegWrite(0x00);                                                             //指令数据
 302   1              
C51 COMPILER V8.08   LCD_DRIVER_USER                                                       11/02/2007 15:16:56 PAGE 6   

 303   1              LCD_RegWrite(M_LCD_BEGIN_LINE+32);                              //设置显示起始行对应RAM
 304   1              LCD_RegWrite(0xe0);                                                             //设置为读写改模式
 305   1              LCD_Fill(LCD_INITIAL_COLOR);
 306   1      }
 307          


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