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

📄 lcd_driver_user.lst

📁 MzL728-240128液晶模块采用T6963C控制芯片的KeilC51的源程序代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
 185          {
 186                  LCDBYTE Read_Data;
 187                  //可根据自己的需要填写代码
 188                  x = y;                                          //无意义,仅为了让系统不提示警告
 189                  return Read_Data;
 190          }          */
 191          
 192          //========================================================================
 193          // 函数: void Set_Dot_Addr_LCD(int x,int y)
 194          // 描述: 设置在LCD的真实坐标系上的X、Y点对应的RAM地址
 195          // 参数: x              X轴坐标
 196          //               y              Y轴坐标
 197          // 返回: 无
 198          // 备注: 仅设置当前操作地址,为后面的连续操作作好准备
 199          //               Mz 通用版LCD驱动程序 标准子函数
 200          // 版本:
 201          //      2006/10/15      First version
 202          //              2007/01/09              V1.2 
 203          //========================================================================
 204          void Set_Dot_Addr_LCD(DOTBYTE x,DOTBYTE y)
 205          {
 206   1              WORD Dot_Addr;                                                  //定义列地址的高低位指令
 207   1              Dot_Addr = (x>>3)+0x0800;
 208   1              Dot_Addr += (((WORD)y)<<5);
 209   1              if(LCD_TestStatus(0x03))
 210   1                      LCD_DataWrite((LCDBYTE)(Dot_Addr&0x00ff));
 211   1              if(LCD_TestStatus(0x03))
 212   1                      LCD_DataWrite((LCDBYTE)(Dot_Addr>>8));
 213   1              if(LCD_TestStatus(0x03))
 214   1                      LCD_RegWrite(0x24);
 215   1      }
 216          /*
 217          //========================================================================
 218          // 函数: void LCD_Fill_s(WORD Number,LCDBYTE Color)
 219          // 描述: 连续填充以Color色调的Number个点
 220          // 参数: Number 填充的数量    Color  像素点的颜色  
 221          // 返回:
 222          // 备注: 该函数可能会使用到
 223          // 版本:
 224          //      2006/10/15      First version
 225          //              2007/01/09              V1.2 
 226          //========================================================================
 227          void LCD_Fill_s(WORD Number,LCDBYTE Color)
 228          {
 229                  while(Number!=0)
 230                  {
 231                          LCD_DataWrite(Color);                                           //
 232                          Number--;
 233                  }
 234          } */
 235          //========================================================================
 236          // 函数: void LCD_Fill(unsigned int Data)
 237          // 描述: 会屏填充以Data的数据至各点中
 238          // 参数: Data   要填充的颜色数据
 239          // 返回: 无
 240          // 备注: Mz 通用版LCD驱动程序 标准子函数
C51 COMPILER V8.12   LCD_DRIVER_USER                                                       06/13/2008 15:12:12 PAGE 5   

 241          // 版本:
 242          //      2006/10/15      First version
 243          //              2007/01/09              V1.2 
 244          //========================================================================
 245          void LCD_Fill(LCDBYTE Data)
 246          {
 247   1              DOTBYTE i,j=0;
 248   1              DOTBYTE uiTemp;
 249   1              uiTemp = Dis_X_MAX;
 250   1              uiTemp = uiTemp>>3;
 251   1              for(i=0;i<=Dis_Y_MAX;i++)                                                               //往LCD中填充初始化的显示数据
 252   1              {
 253   2                      Set_Dot_Addr_LCD(0,i);
 254   2                      if(LCD_TestStatus(0x03))
 255   2                              LCD_RegWrite(0xb0);
 256   2                      for(j=0;j<=uiTemp;j++)
 257   2                      {
 258   3                              if(LCD_TestStatus(0x08))
 259   3                                      LCD_DataWrite(Data);
 260   3                      }
 261   2                      if(LCD_TestStatus(0x03))
 262   2                              LCD_RegWrite(0xb2);
 263   2              }
 264   1      }
 265          //========================================================================
 266          // 函数: void LCD_PortInit(void)
 267          // 描述: 与LCD连接的端口初始化代码
 268          // 参数: 无  
 269          // 返回: 无
 270          // 备注: Mz 通用版LCD驱动程序 标准子函数
 271          // 版本:
 272          //      2007/01/09      First version
 273          // 注意: 
 274          //========================================================================
 275          void LCD_PortInit(void)
 276          {
 277   1              LCD_Data_BUS_Dir = 0xff;
 278   1              LCD_Data_BUS_Out = 0xff;
 279   1      
 280   1              LCD_CS = 1;
 281   1              LCD_A0 = 1;
 282   1              LCD_RE = 1;
 283   1              LCD_WR = 1;
 284   1              LCD_RD = 1;
 285   1              LCD_FS = 0;
 286   1      }
 287          //========================================================================
 288          // 函数: void LCD_Init(void)
 289          // 描述: LCD初始化程序,在里面会完成LCD初始所需要设置的许多寄存器,具体如果
 290          //               用户想了解,建议查看DataSheet当中各个寄存器的意义
 291          // 参数: 无 
 292          // 返回: 无
 293          // 备注: Mz 通用版LCD驱动程序 标准子函数
 294          // 版本:
 295          //      2006/10/15      First version
 296          //              2007/01/09              V1.2 
 297          //========================================================================
 298          //延时程序
 299          
 300          void TimeDelay(WORD Time)
 301          {
 302   1              WORD i;
C51 COMPILER V8.12   LCD_DRIVER_USER                                                       06/13/2008 15:12:12 PAGE 6   

 303   1              while(Time > 0)
 304   1              {
 305   2                      for(i = 0;i < 200;i++)
 306   2                      {
 307   3                              ;//asm("nop");
 308   3                      }
 309   2                      Time --;
 310   2              }
 311   1      }
 312          void LCD_Init(void)
 313          {
 314   1              //LCD驱动所使用到的端口的初始化(如果有必要的话)
 315   1              LCD_PortInit();
 316   1      //      LCD_CMD_Buffer &= (~LCD_RE);
 317   1              LCD_RE = 0;
 318   1              TimeDelay(40);
 319   1      //      LCD_CMD_Buffer |= LCD_RE;
 320   1              LCD_RE = 1;
 321   1              TimeDelay(20);
 322   1              //设置TEXT文本层的显存起始位置
 323   1              if(LCD_TestStatus(0x03))
 324   1                      LCD_DataWrite(0x00);
 325   1              if(LCD_TestStatus(0x03))
 326   1                      LCD_DataWrite(0x00);
 327   1              if(LCD_TestStatus(0x03))
 328   1                      LCD_RegWrite(0x40);
 329   1              //设置CGRAM的起始位置
 330   1              if(LCD_TestStatus(0x03))
 331   1                      LCD_DataWrite(0x20);
 332   1              if(LCD_TestStatus(0x03))
 333   1                      LCD_DataWrite(0x00);
 334   1              if(LCD_TestStatus(0x03))
 335   1                      LCD_RegWrite(0x41);
 336   1              //设置图形层的起始位置(本驱动仅使用图形层)
 337   1              if(LCD_TestStatus(0x03))
 338   1                      LCD_DataWrite(0x00);
 339   1              if(LCD_TestStatus(0x03))
 340   1                      LCD_DataWrite(0x08);
 341   1              if(LCD_TestStatus(0x03))
 342   1                      LCD_RegWrite(0x42);
 343   1              //设置一行占用的显存数量
 344   1              if(LCD_TestStatus(0x03))
 345   1                      LCD_DataWrite(0x20);
 346   1              if(LCD_TestStatus(0x03))
 347   1                      LCD_DataWrite(0x00);
 348   1              if(LCD_TestStatus(0x03))
 349   1                      LCD_RegWrite(0x43);
 350   1              //
 351   1              if(LCD_TestStatus(0x03))
 352   1                      LCD_RegWrite(0xa7);
 353   1              //
 354   1              if(LCD_TestStatus(0x03))
 355   1                      LCD_RegWrite(0x80);
 356   1              //图形显示层开,其它关
 357   1              if(LCD_TestStatus(0x03))
 358   1                      LCD_RegWrite(0x98);
 359   1              
 360   1              LCD_Fill(LCD_INITIAL_COLOR);
 361   1      }
 362          


C51 COMPILER V8.12   LCD_DRIVER_USER                                                       06/13/2008 15:12:12 PAGE 7   

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