📄 lcd.lst
字号:
233 SEDA0 = 0;
234 SEDRD = 0;
235 P1 = 0xff;
236 busy = P1&0x40;
237 SEDRD = 1;
238
239 return busy;
240 }
241 */
242 /*
243 void writecmd(unsigned char cmd)
244 {
245 P1=cmd;
246 SEDA0=1;
247 SEDWR=0;
248 SEDWR=1;
249 }
250
251 void writedat(unsigned char dat)
252 {
253 P1=dat;
254 SEDA0=0;
C51 COMPILER V7.06 LCD 04/09/2005 13:15:56 PAGE 9
255 SEDWR=0;
256 SEDWR=1;
257 }
258 */
259 /*
260 unsigned char readdat()
261 {
262 unsigned char dat;
263
264 SEDA0=1;
265 P1=0XFF;
266 SEDRD=0;
267 dat=P1;
268 SEDRD=1;
269
270 return dat;
271 }
272 */
273 void clear(unsigned short addr)
274 {
275 1 unsigned int i;
276 1 writecmd(0x4c); /// CSRDIR 代码
277 1 writecmd(0x46); /// CSRW 代码
278 1
279 1 writedat(addr&0xff); /// 设置参数光标指针低8位
280 1 writedat(addr>>8); /// 设置参数光标指针高8位
281 1 writecmd(0x42); /// MWRITE 代码
282 1 for(i=0;i<9600;i++) ///清64K的显示存储器
283 1 {
284 2 writedat(0x00); /// 写入数据
285 2 }
286 1 }
287 /*
288 void initcgram()
289 {
290 unsigned char i,j;
291 writecmd(0x5c); /// CGRAMADR 代码
292 writedat(0x00); /// 设置SAG=0x8000
293 writedat(0xc0);
294 writecmd(0x46); /// CSRW 代码
295 writedat(0x00); /// 设置CSR=0x8400(字符代码=80H)
296 writedat(0xc4);
297 writecmd(0x4c); /// CSRDIR 代码
298 writecmd(0x42); /// MWRITE 代码
299 for(j=0;j<4;j++)
300 {
301 for(i=0;i<32;i++)
302 {
303 writedat(font16[j][i]); /// 写入字模数据
304 }
305 }
306 }
307 */
308 void delay(ushort dly)
309 {
310 1 uchar i=0;
311 1
312 1 while(dly--)
313 1 while(--i);
314 1 }
315
316 void initlcd()
C51 COMPILER V7.06 LCD 04/09/2005 13:15:56 PAGE 10
317 {
318 1 SEDRST = 0;
319 1 SEDCS = 0;
320 1 delay(1);
321 1
322 1 SEDRST = 1;
323 1 delay(1);
324 1
325 1 SEDDISP = 1;
326 1 delay(1);
327 1 }
328
329 void initdisplay(SystemParam *pSysParam)
330 {
331 1 writecmd(0x40); /// SYSTEM SET代码
332 1
333 1 writedat(pSysParam->param);
334 1 writedat(pSysParam->fx);
335 1 writedat(pSysParam->fy);
336 1 writedat(pSysParam->cr);
337 1 writedat(pSysParam->tcr);
338 1 writedat(pSysParam->lf);
339 1 writedat(pSysParam->apl);
340 1 writedat(pSysParam->aph);
341 1 }
342 /*
343 void sleepin()
344 {
345 writecmd(0x53);
346 }
347 */
348 void setdisplayon(bit bdisplay,unsigned char mode)
349 {
350 1 if(bdisplay)
351 1 {
352 2 writecmd(0x59);
353 2 }
354 1 else
355 1 {
356 2 writecmd(0x58);
357 2 }
358 1 writedat(mode);
359 1 }
360
361 void setdisplayparam(DisplayParam *pDispParam)
362 {
363 1 writecmd(0x44);
364 1
365 1 writedat(pDispParam->saddr1lo);
366 1 writedat(pDispParam->saddr1hi);
367 1 writedat(pDispParam->sl1);
368 1 writedat(pDispParam->saddr2lo);
369 1 writedat(pDispParam->saddr2hi);
370 1 writedat(pDispParam->sl2);
371 1 writedat(pDispParam->saddr3lo);
372 1 writedat(pDispParam->saddr3hi);
373 1 writedat(pDispParam->saddr4lo);
374 1 writedat(pDispParam->saddr4hi);
375 1 }
376
377 void setcursorform(bit mode,unsigned char crx,unsigned char cry)
378 {
C51 COMPILER V7.06 LCD 04/09/2005 13:15:56 PAGE 11
379 1 writecmd(0x5d);
380 1 writedat(crx);
381 1
382 1 cry &= 0x0f;
383 1 if(mode)
384 1 {
385 2 writedat(0x80|cry);
386 2 }
387 1 else
388 1 {
389 2 writedat(0x7f&cry);
390 2 }
391 1 }
392
393 void setcursordirection(CursorDirection csrdrt)
394 {
395 1 writecmd(csrdrt);
396 1 }
397
398 //mode 0 0 0 OV DM2 DM1 MX1 MX0
399 void setoverlay(unsigned char mode)
400 {
401 1 writecmd(0x5b);
402 1 writedat(mode);
403 1 }
404 /*
405 void setcgramaddr(unsigned short addr)
406 {
407 writecmd(0x50);
408 writedat(addr&0xff);
409 writedat((addr>>8)&0xff);
410 }
411 */
412 //dot 0 0 0 0 0 D
413 void sethdot(unsigned char dot)
414 {
415 1 writecmd(0x5a);
416 1 writedat(dot);
417 1 }
418
419 void setcursoraddr(unsigned short cursoraddr)
420 {
421 1 writecmd(0x46);
422 1 writedat(cursoraddr&0xff);
423 1 writedat((cursoraddr>>8)&0xff);
424 1 }
425 /*
426 unsigned short readcursoraddr()
427 {
428 unsigned short addr;
429
430 writecmd(0x47);
431 addr |= readdat();
432 addr <<= 8;
433 addr |= readdat();
434
435 return addr;
436 }
437 */
438 /*
439 void writedispram(unsigned char *pdat,unsigned short len)
440 {
C51 COMPILER V7.06 LCD 04/09/2005 13:15:56 PAGE 12
441 writecmd(0x42);
442
443 while(len--)
444 writedat(*pdat++);
445 }
446 */
447 /*
448 void readdispram(unsigned char *pdat,unsigned short len)
449 {
450 writecmd(0x43);
451
452 while(len--)
453 *pdat = readdat();
454 }
455 */
456 /*
457 void printchar8(unsigned short addr,unsigned char ch)
458 {
459 unsigned char i,j,idx;
460
461 idx = 0xff;
462 for(i=0;i<sizeof(font8)/sizeof(Font8);i++)
463 {
464 if(ch == font8[i].fontcode)
465 {
466 idx = i;
467 break;
468 }
469 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -