📄 lcd_driver_user.lst
字号:
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 + -