📄 lcd_dis.lst
字号:
345 // 2007/07/19 First version
346 //========================================================================
347 void Circle(unsigned char x,unsigned char y,unsigned char r,unsigned char mode)
348 {
349 1 SPI_SSSet(0);
350 1 if(mode)
351 1 SPI_Send(6);
352 1 else
353 1 SPI_Send(5);
354 1 SPI_Send(x);
355 1 SPI_Send(y);
356 1 SPI_Send(r);
357 1 SPI_SSSet(1);
358 1 }
359 //========================================================================
360 // 函数: void Rectangle(unsigned char left, unsigned char top, unsigned char right,
361 // unsigned char bottom, unsigned char mode)
362 // 描述: 以x,y为圆心R为半径画一个圆(mode = 0) or 圆面(mode = 1)
363 // 参数: left - 矩形的左上角横坐标,范围0到126
364 // top - 矩形的左上角纵坐标,范围0到62
C51 COMPILER V8.16 LCD_DIS 02/11/2009 00:49:30 PAGE 7
365 // right - 矩形的右下角横坐标,范围1到127
366 // bottom - 矩形的右下角纵坐标,范围1到63
367 // Mode - 绘制模式,可以是下列数值之一:
368 // 0: 矩形框(空心矩形)
369 // 1: 矩形面(实心矩形)
370 // 返回: 无
371 // 备注: 画圆函数执行较慢,如果MCU有看门狗,请作好清狗的操作
372 // 版本:
373 // 2007/07/19 First version
374 //========================================================================
375 void Rectangle(unsigned char left, unsigned char top, unsigned char right,
376 unsigned char bottom, unsigned char mode)
377 {
378 1 SPI_SSSet(0);
379 1 if(mode)
380 1 SPI_Send(4);
381 1 else
382 1 SPI_Send(3);
383 1 SPI_Send(left);
384 1 SPI_Send(top);
385 1 SPI_Send(right);
386 1 SPI_Send(bottom);
387 1 SPI_SSSet(1);
388 1 }
389 //========================================================================
390 // 函数: void ClrScreen(void)
391 // 描述: 清屏函数,执行全屏幕清除
392 // 参数:
393 // 返回: 无
394 // 备注:
395 // 版本:
396 // 2007/07/19 First version
397 //========================================================================
398 void ClrScreen(void)
399 {
400 1 //清屏操作
401 1 SPI_SSSet(0); //SS置低电平
402 1 SPI_Send(0x80); //送指令0x80
403 1 SPI_SSSet(1); //完成操作置SS高电平
404 1 }
405 //========================================================================
406 // 函数: void PutBitmap(unsigned char x,unsigned char y,unsigned char width,
407 // unsigned char high,unsigned char *p)
408 // 描述: 在x、y为起始坐标显示一个单色位图
409 // 参数: x X轴坐标 y Y轴坐标
410 // width 位图的宽度
411 // high 位图的高度
412 // p 要显示的位图的字模首地址
413 // 返回: 无
414 // 备注: 无
415 // 版本:
416 // 2008/11/27 First version
417 //========================================================================
418 void PutBitmap(unsigned char x,unsigned char y,unsigned char width,unsigned char high,unsigned char *p)
419 {
420 1 unsigned short Dat_Num;
421 1 //unsigned short i;
422 1 unsigned char ucTemp=0;
423 1 SPI_SSSet(0); //SS置低电平
424 1 SPI_Send(0x0e);
425 1 SPI_Send(x);
426 1 SPI_Send(y);
C51 COMPILER V8.16 LCD_DIS 02/11/2009 00:49:30 PAGE 8
427 1 SPI_Send(width);
428 1 SPI_Send(high);
429 1
430 1 width = width+0x07;
431 1 Dat_Num = (width>>3)*high;
432 1 while(Dat_Num--)
433 1 {
434 2 ucTemp++;
435 2 SPI_Send(*p);
436 2 if(ucTemp>250) //如果改换别的MCU时,这里可能需要适当的调整
437 2 {
438 3 TimeDelay(28); //以及此处,以保证前面传送到LCD模块中的数据已被处理完
439 3 ucTemp = 0;
440 3 }
441 2 p++;
442 2 }
443 1 SPI_SSSet(1); //完成操作置SS高电平
444 1 }
445
446 //========================================================================
447 // 函数: void ShowChar(unsigned char x,unsigned char y,unsigned char Num,unsigned char type)
448 // 描述: 在x、y的位置为显示区域的左上角,显示一个unsigned char型数
449 // 参数: x X轴坐标 y Y轴坐标 Num 要显示的8位宽度的数据 type 显示特性(0,1,2)
450 // 返回: 无
451 // 备注:
452 // 版本:
453 // 2008/11/27 First version
454 //========================================================================
455 void ShowChar(unsigned char x,unsigned char y,unsigned char a,unsigned char type)
456 {
457 1 //显示ASCII字符
458 1 SPI_SSSet(0); //SS置低电平
459 1 SPI_Send(11); //传送指令0x0B
460 1 SPI_Send(x); //要显示字符的左上角的X轴位置
461 1 SPI_Send(y); //要显示字符的左上角的Y轴位置
462 1 SPI_Send(a); //要显示的数据
463 1 SPI_Send(type);
464 1 SPI_SSSet(1); //完成操作置SS高电平
465 1 }
466 //========================================================================
467 // 函数: void ShowShort(unsigned char x,unsigned char y,unsigned short Num,unsigned char type)
468 // 描述: 在x、y的位置为显示区域的左上角,显示一个unsigned short型数(16位宽度)
469 // 参数: x X轴坐标 y Y轴坐标 Num 要显示的16位宽度的数据 type 显示特性(0,1,2)
470 // 返回: 无
471 // 备注:
472 // 版本:
473 // 2008/11/27 First version
474 //========================================================================
475 void ShowShort(unsigned char x,unsigned char y,unsigned short a,unsigned char type)
476 {
477 1 //显示ASCII字符
478 1 SPI_SSSet(0); //SS置低电平
479 1 SPI_Send(12); //传送指令0x0C
480 1 SPI_Send(x); //要显示字符的左上角的X轴位置
481 1 SPI_Send(y); //要显示字符的左上角的Y轴位置
482 1 SPI_Send((unsigned char)(a>>8));
483 1 SPI_Send((unsigned char)a);
484 1 SPI_Send(type); //要显示字符ASCII字符的ASCII码值
485 1 SPI_SSSet(1); //完成操作置SS高电平
486 1 }
487 //========================================================================
488 // 函数: void SetBackLight(unsigned char Deg)
C51 COMPILER V8.16 LCD_DIS 02/11/2009 00:49:30 PAGE 9
489 // 描述: 设置背光亮度等级
490 // 参数: Grade 0~127的等级
491 // 返回: 无
492 // 备注:
493 // 版本:
494 // 2008/11/27 First version
495 //========================================================================
496 void SetBackLight(unsigned char Deg)
497 {
498 1 //显示ASCII字符
499 1 SPI_SSSet(0); //SS置低电平
500 1 SPI_Send(0x8a); //传送指令0x07
501 1 SPI_Send(Deg); //要显示字符的左上角的X轴位置
502 1 SPI_SSSet(1); //完成操作置SS高电平
503 1 }
504
505
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 814 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 45
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 + -