📄 show.lst
字号:
257 *
258 * 作 者: Aoker
259 * 创建时间: 2004年12月7日
260 ********************************************************************************************************/
261 void LcdClr(void)
262 {
263 1
264 1 BYTE i, j;
265 1
266 1 LcdWriteCmd(0x4C);
267 1 LcdWriteCmd(0x46);
268 1 LcdWriteData(0x00);
269 1 LcdWriteData(0x00);
270 1 LcdWriteCmd(0x42);
271 1
272 1 for(i=0; i<90; i++)
273 1 {
274 2 for(j=0; j<80; j++)
275 2 {
276 3 LcdWriteData(0x00);
277 3 }
278 2 }
279 1 }
280
281
282 /*********************************************************************************************************
283 * 函数名称: LcdDraw
284 *
285 * 功能描述: 在位置(bx, by)处显示点阵为(bWidth x bHeight)大小的图形
286 *
287 * 入口参数: bx, 行坐标,取值范围为0~239
288 * by, 列坐标,取值范围为0~159
289 * bWidth, 图形的宽度
290 * bHeight, 图形的高度
291 * Attr, 图形显示的属性,"1"-反白显示; "0"-正常显示
292 * ptr, 指向图形的字模数据
293 *
294 * 出口参数: 无
295 *
296 * 全局变量: 无
297 *
298 * 调用模块: LcdWriteCmd(),
299 * LcdWriteData(),
300 * LcdRead()
301 *
302 * 作 者: Aoker
303 * 创建时间: 2004年12月7日
C51 COMPILER V7.10 SHOW 06/18/2007 11:05:54 PAGE 6
304 ********************************************************************************************************/
305 void LcdDraw(BYTE bx, BYTE by, BYTE bWidth, BYTE bHeight, bit Attr, BYTE* ptr)
306 {
307 1 BYTE i, j, k, tt=0;
308 1 BYTE uu=0, rr=0, ee=0, ff=0, gg=0;
309 1 WORD l;
310 1
311 1 tt = bx%8;
312 1 bx=bx/8;
313 1 l = by*ap + bx;
314 1 bx = (BYTE)(l&0x00ff);
315 1 by = (BYTE)((l&0xff00)>>8);
316 1
317 1 LcdWriteCmd(0x4C);
318 1 for(i=0; i<bHeight; i++)
319 1 {
320 2 LcdWriteCmd(0x46);
321 2 LcdWriteData(bx);
322 2 LcdWriteData(by);
323 2
324 2 if(tt==0)
325 2 {
326 3 LcdWriteCmd(0x42);
327 3 for(j=0; j<bWidth/8; j++)
328 3 {
329 4 if(Attr)
330 4 LcdWriteData(~(*ptr));
331 4 else
332 4 LcdWriteData(*ptr);
333 4 ptr++ ;
334 4 }
335 3 }
336 2 else
337 2 {
338 3 for(j=0;j<bWidth/8;j++)
339 3 {
340 4 LcdWriteCmd(0x43);
341 4 uu = LcdRead();
342 4 rr = LcdRead();
343 4 if(Attr)
344 4 gg=~(*ptr);
345 4 else
346 4 gg = *ptr;
347 4 ptr++;
348 4 k = uu>>(8-tt);
349 4 k = k<<(8-tt);
350 4 ee = k;
351 4 k = gg>>tt;
352 4 ee = ee|k;
353 4 k = rr<<tt;
354 4 k = k>>tt;
355 4 ff = k;
356 4 k = gg<<(8-tt);
357 4 ff = ff|k;
358 4 LcdWriteCmd(0x4d);
359 4 LcdWriteCmd(0x43);
360 4 LcdRead();
361 4 LcdRead();
362 4 LcdWriteCmd(0x4C);
363 4 LcdWriteCmd(0x42);
364 4 LcdWriteData(ee);
365 4 LcdWriteData(ff);
C51 COMPILER V7.10 SHOW 06/18/2007 11:05:54 PAGE 7
366 4 LcdWriteCmd(0x4d);
367 4 LcdWriteCmd(0x43);
368 4 LcdRead();
369 4 LcdRead();
370 4 LcdWriteCmd(0x4c);
371 4 LcdWriteCmd(0x43);
372 4 LcdRead();
373 4 }
374 3 }
375 2 l=(ap+bx+(by<<8));
376 2 bx=(BYTE)(l&0x00ff);
377 2 by=(BYTE)((l&0xff00)>>8);
378 2 }
379 1 }
380 /*
381 void LcdDraw1(BYTE bx, BYTE by, BYTE bWidth, BYTE bHeight, BYTE* ptr)
382 {
383 BYTE i, j, k, tt=0;
384 BYTE uu=0, rr=0, ee=0, ff=0, gg=0;
385 WORD l;
386
387 tt = bx%8;
388 bx=bx/8;
389 l = by*ap + bx;
390 bx = (BYTE)(l&0x00ff);
391 by = (BYTE)((l&0xff00)>>8);
392
393 LcdWriteCmd(0x4C);
394 for(i=0; i<bHeight; i++)
395 {
396 LcdWriteCmd(0x46);
397 LcdWriteData(bx);
398 LcdWriteData(by);
399
400 if(tt==0)
401 {
402 LcdWriteCmd(0x42);
403 for(j=0; j<bWidth/8; j++)
404 {
405 LcdWriteData(*ptr);
406 ptr++ ;
407 }
408 }
409 else
410 {
411 for(j=0;j<bWidth/8;j++)
412 {
413 LcdWriteCmd(0x43);
414 uu = LcdRead();
415 rr = LcdRead();
416
417 gg = *ptr;
418 ptr++;
419 k = uu>>(8-tt);
420 k = k<<(8-tt);
421 ee = k;
422 k = gg>>tt;
423 ee = ee|k;
424 k = rr<<tt;
425 k = k>>tt;
426 ff = k;
427 k = gg<<(8-tt);
C51 COMPILER V7.10 SHOW 06/18/2007 11:05:54 PAGE 8
428 ff = ff|k;
429 LcdWriteCmd(0x4d);
430 LcdWriteCmd(0x43);
431 LcdRead();
432 LcdRead();
433 LcdWriteCmd(0x4C);
434 LcdWriteCmd(0x42);
435 LcdWriteData(ee);
436 LcdWriteData(ff);
437 LcdWriteCmd(0x4d);
438 LcdWriteCmd(0x43);
439 LcdRead();
440 LcdRead();
441 LcdWriteCmd(0x4c);
442 LcdWriteCmd(0x43);
443 LcdRead();
444 }
445 }
446 l=(ap+bx+(by<<8));
447 bx=(BYTE)(l&0x00ff);
448 by=(BYTE)((l&0xff00)>>8);
449 }
450 }
451 */
452 /*********************************************************************************************************
453 * 函数名称: LcdDraw16
454 *
455 * 功能描述: 在位置(bx, by)处显示固定点阵大小(16 x 16)的图形
456 *
457 * 入口参数: bx, 行坐标,取值范围为0~239
458 * by, 列坐标,取值范围为0~159
459 * Attr, 图形显示的属性,"1"-反白显示; "0"-正常显示
460 * ptr, 指向图形的字模数据
461 *
462 * 出口参数: 无
463 *
464 * 全局变量: 无
465 *
466 * 调用模块: LcdWriteCmd(),
467 * LcdWriteData(),
468 * LcdRead()
469 *
470 * 作 者: Aoker
471 * 创建时间: 2004年12月7日
472 ********************************************************************************************************/
473 void LcdDraw16(BYTE bx, BYTE by, bit Attr, BYTE* ptr)
474 {
475 1 BYTE i, j, k, tt=0;
476 1 BYTE uu=0, rr=0, ee=0, ff=0, gg=0;
477 1 WORD l;
478 1
479 1 tt = bx%8;
480 1 bx=bx/8;
481 1 l = by*ap + bx;
482 1 bx = (BYTE)(l&0x00ff);
483 1 by = (BYTE)((l&0xff00)>>8);
484 1
485 1 LcdWriteCmd(0x4C);
486 1 for(i=0; i<16; i++)
487 1 {
488 2 LcdWriteCmd(0x46);
489 2 LcdWriteData(bx);
C51 COMPILER V7.10 SHOW 06/18/2007 11:05:54 PAGE 9
490 2 LcdWriteData(by);
491 2
492 2 if(tt==0)
493 2 {
494 3 LcdWriteCmd(0x42);
495 3 for(j=0; j<2; j++)
496 3 {
497 4 if(Attr)
498 4 LcdWriteData(~(*ptr));
499 4 else
500 4 LcdWriteData(*ptr);
501 4 ptr++ ;
502 4 }
503 3 }
504 2 else
505 2 {
506 3 for(j=0;j<2;j++)
507 3 {
508 4 LcdWriteCmd(0x43);
509 4 uu = LcdRead();
510 4 rr = LcdRead();
511 4 if(Attr)
512 4 gg=~(*ptr);
513 4 else
514 4 gg = *ptr;
515 4 ptr++;
516 4 k = uu>>(8-tt);
517 4 k = k<<(8-tt);
518 4 ee = k;
519 4 k = gg>>tt;
520 4 ee = ee|k;
521 4 k = rr<<tt;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -