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

📄 lcd_driver_user.lst

📁 MzT24_Driver_C8051彩屏液晶驱动
💻 LST
📖 第 1 页 / 共 2 页
字号:

 180          
 181          //========================================================================
 182          // 函数: void Clear_Dot_LCD(int x,int y)
 183          // 描述: 清除在LCD的真实坐标系上的X、Y点(清除后该点为黑色)
 184          // 参数: x              X轴坐标
 185          //               y              Y轴坐标
 186          // 返回: 无
 187          // 备注: 
 188          // 版本:
 189          //      2006/10/15      First version
 190          //========================================================================
 191          void Clear_Dot_LCD(int x,int y)
 192          {
 193   1              x = y;//无意义,仅为了不提警告
 194   1      }
 195          //========================================================================
 196          // 函数: unsigned int Get_Dot_LCD(int x,int y)
 197          // 描述: 获取在LCD的真实坐标系上的X、Y点上的当前填充色数据
 198          // 参数: x              X轴坐标
 199          //               y              Y轴坐标
 200          // 返回: 该点的颜色
 201          // 备注: 
 202          // 版本:
 203          //      2007/04/10      First version
 204          //========================================================================
 205          unsigned int Get_Dot_LCD(int x,int y)
 206          {
 207   1              unsigned int Read_Data;
 208   1              LCD_RegWrite(0x20,x);
 209   1              LCD_RegWrite(0x21,y);
 210   1              LCD_Reg22();
 211   1              Read_Data = LCD_DataRead();
 212   1              return Read_Data;
 213   1      }
 214          //========================================================================
 215          // 函数: void Set_Dot_Addr_LCD(int x,int y)
 216          // 描述: 设置在LCD的真实坐标系上的X、Y点对应的RAM地址
 217          // 参数: x              X轴坐标
 218          //               y              Y轴坐标
 219          // 返回: 无
 220          // 备注: 仅设置当前操作地址,为后面的连续操作作好准备
 221          // 版本:
 222          //      2007/04/10      First version
 223          //========================================================================
 224          void Set_Dot_Addr_LCD(int x,int y)
 225          {
 226   1              LCD_RegWrite(0x20,x);
 227   1              LCD_RegWrite(0x21,y);
 228   1              LCD_Reg22();
 229   1      }
 230          //========================================================================
 231          // 函数: void LCD_Fill(unsigned int Data)
 232          // 描述: 会屏填充以Data的数据至各点中
 233          // 参数: Data   要填充的颜色数据
 234          // 返回: 无
 235          // 备注: 仅在LCD初始化程序当中调用
 236          // 版本:
 237          //      2006/10/15      First version
 238          //========================================================================
 239          void LCD_Fill(unsigned int Data)
 240          {
 241   1              unsigned int data i;
C51 COMPILER V8.02   LCD_DRIVER_USER                                                       06/27/2007 01:39:54 PAGE 5   

 242   1              unsigned char data j;
 243   1              Set_Dot_Addr_LCD(0,0);
 244   1              for(i=0;i<320;i++)
 245   1              {
 246   2                      for(j=0;j<240;j++)
 247   2                      {
 248   3                              Fill_Dot_LCD(Data);
 249   3                      }
 250   2              }
 251   1      }
 252          //========================================================================
 253          // 函数: void LCD_Fill_s(unsigned int Number,unsigned int Color)
 254          // 描述: 连续填充以Color色调的Number个点
 255          // 参数: Number 填充的数量    Color  像素点的颜色  
 256          // 返回:
 257          // 备注:
 258          // 版本:
 259          //      2006/10/15      First version
 260          //========================================================================
 261          void LCD_Fill_s(unsigned int Number,unsigned int Color)
 262          {
 263   1              LCD_Reg22();
 264   1              while(Number!=0)
 265   1              {
 266   2                      Fill_Dot_LCD(Color);
 267   2                      Number--;
 268   2              }
 269   1      }
 270          //========================================================================
 271          // 函数: void LCD_Init(void)
 272          // 描述: LCD初始化程序,在里面会完成LCD初始所需要设置的许多寄存器,具体如果
 273          //               用户想了解,建议查看DataSheet当中各个寄存器的意义
 274          // 参数: 无 
 275          // 返回: 无
 276          // 备注:
 277          // 版本:
 278          //      2007/04/10      First version
 279          //      2007/06/27      V1.01
 280          //========================================================================
 281          //延时程序
 282          void TimeDelay(int Time)
 283          {
 284   1              int i;
 285   1              while(Time > 0)
 286   1              {
 287   2                      for(i = 0;i < 1800;i++)
 288   2                      {
 289   3                              _nop_();
 290   3                      }
 291   2                      Time --;
 292   2              }
 293   1      }
 294          void LCD_Init(void)
 295          {
 296   1              //LCD驱动所使用到的端口的初始化
 297   1          LCD_Reset = 0;                                      //复位操作
 298   1              TimeDelay(400);
 299   1              LCD_Reset = 1;
 300   1              //LCD 寄存器初始化
 301   1          TimeDelay(20);
 302   1      
 303   1              LCD_RegWrite(0x0001,0x0100);                            //Driver Output Contral Register 
C51 COMPILER V8.02   LCD_DRIVER_USER                                                       06/27/2007 01:39:54 PAGE 6   

 304   1              LCD_RegWrite(0x0002,0x0700);    //0x0701        //LCD Driving Waveform Contral
 305   1              LCD_RegWrite(0x0003,0x1030);                            //Entry Mode设置
 306   1                                                                                                      //指针从左至右自上而下的自动增模式
 307   1                                                                                                      //Normal Mode(Window Mode disable)
 308   1                                                                                                      //RGB格式
 309   1                                                                                                      //16位数据2次传输的8总线设置
 310   1              LCD_RegWrite(0x0004,0x0000);                            //Scalling Control register
 311   1              LCD_RegWrite(0x0008,0x0207);                            //Display Control 2
 312   1              LCD_RegWrite(0x0009,0x0000);                            //Display Control 3
 313   1              LCD_RegWrite(0x000A,0x0000);                            //Frame Cycle Control
 314   1              LCD_RegWrite(0x000C,0x0000);                            //External Display Interface Control 1
 315   1          LCD_RegWrite(0x000D,0x0000);                                //Frame Maker Position
 316   1              LCD_RegWrite(0x000F,0x0000);                            //External Display Interface Control 2
 317   1              TimeDelay(100);
 318   1              LCD_RegWrite(0x0007,0x0101);                            //Display Control
 319   1              TimeDelay(100);
 320   1              LCD_RegWrite(0x0010,0x16B0);    //0x14B0        //Power Control 1
 321   1              LCD_RegWrite(0x0011,0x0001);    //0x0007        //Power Control 2
 322   1              LCD_RegWrite(0x0017,0x0001);    //0x0000        //Power Control 3
 323   1              LCD_RegWrite(0x0012,0x0138);    //0x013B        //Power Control 4
 324   1              LCD_RegWrite(0x0013,0x0800);    //0x0800        //Power Control 5
 325   1              LCD_RegWrite(0x0029,0x0009);                            //NVM read data 2
 326   1              LCD_RegWrite(0x002a,0x0009);                            //NVM read data 3
 327   1              LCD_RegWrite(0x00a4,0x0000);
 328   1      
 329   1              LCD_RegWrite(0x0050,0x0000);                            //设置操作窗口的X轴开始列
 330   1              LCD_RegWrite(0x0051,0x00EF);                            //设置操作窗口的X轴结束列
 331   1              LCD_RegWrite(0x0052,0x0000);                            //设置操作窗口的Y轴开始行
 332   1              LCD_RegWrite(0x0053,0x013F);                            //设置操作窗口的Y轴结束行
 333   1              LCD_RegWrite(0x0060,0x2700);                            //Driver Output Control
 334   1                                                                                                      //设置屏幕的点数以及扫描的起始行
 335   1              LCD_RegWrite(0x0061,0x0001);                            //Driver Output Control
 336   1              LCD_RegWrite(0x006A,0x0000);                            //Vertical Scroll Control
 337   1              
 338   1              LCD_RegWrite(0x0080,0x0000);                            //Display Position – Partial Display 1
 339   1              LCD_RegWrite(0x0081,0x0000);                            //RAM Address Start – Partial Display 1
 340   1              LCD_RegWrite(0x0082,0x0000);                            //RAM address End - Partial Display 1
 341   1              LCD_RegWrite(0x0083,0x0000);                            //Display Position – Partial Display 2
 342   1              LCD_RegWrite(0x0084,0x0000);                            //RAM Address Start – Partial Display 2
 343   1              LCD_RegWrite(0x0085,0x0000);                            //RAM address End – Partail Display2
 344   1              LCD_RegWrite(0x0090,0x0013);                            //Frame Cycle Control
 345   1              LCD_RegWrite(0x0092,0x0000);                            //Panel Interface Control 2
 346   1              LCD_RegWrite(0x0093,0x0003);                            //Panel Interface control 3
 347   1              LCD_RegWrite(0x0095,0x0110);                            //Frame Cycle Control
 348   1              LCD_RegWrite(0x0007,0x0173);
 349   1      
 350   1              LCD_Fill(LCD_INITIAL_COLOR);  
 351   1      
 352   1      }


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