首页 > 嵌入式/内核开发 > 嵌入式/内核开发 > [蓝桥杯嵌入式有手就行]6_LCD
前言
一、LCD模块分析
1、原理图
2、LCD显示过程及原理(不考,会用就行)
二、软件部分
1.导入库文件
1、复制文件
2、添加进keil工程
2、代码实例
三、问题
1、有时我只更改一个字,却要全屏清除,快了就会闪屏,看着难受
2、自定义颜色
3、关于格式化字符
总结
前言
注:本系列基于2023年蓝桥杯实战情况就行编写,所有软件均采用2023年赛点资源包
LCD是最简单也是最复杂的。简单是因为,你只需要记住4个函数,复杂是因为,程序功能基本以界面作为划分,合理的规划变得尤为重要。
在编程时,我个人习惯按照各个界面去划分不同的功能,以便防止干扰。
一、LCD模块分析
这个比较简单,我们只需要导入三个现成的库文件,即可。
1、原理图

2、LCD显示过程及原理(不考,会用就行)
二、软件部分
1.导入库文件
1、复制文件

从液晶驱动参考程序中,复制以下三个文件到我们的工程下对应的目录。
文件夹 文件
src lcd.c
Inc lcd.h,fonts.h
2、添加进keil 工程
添加后别忘了点击build,这样头文件 才会被引用,否则不会有代码提示。

如果你不是放在Inc文件夹,那么需要手动添加头文件路径。

2、代码实例
以下代码请写在while(1)或者LCD操作之前
LCD_Init(); LCD_Clear(White);//清屏 LCD_SetBackColor(White);//背景设置为白色 LCD_SetTextColor(Black);//字体设置为黑色
接着我们就可以编写功能代码了。
void hello(void)
{
int n=1;
unsigned char str[21];
sprintf((char *)str,"%d" ,n);
LCD_DisplayStringLine(Line4, (unsigned char *)" Hello,world. ");
LCD_DisplayStringLine(Line5, str);
}
库文件中定义了行数和列数。从Line0到Line9一共10行,每行20个字符。注意:题目中示意图大概率第一行是1不是0,也就是Line n-1
三、问题
1、有时我只更改一个字,却要全屏清除,快了就会闪屏,看着难受
可以使用LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii)函数。

这里4点坐标为(注意方向):
点 坐标
a (0,15)
b (0,319)
c (216,15)
d (216,319)
2、自定义颜色
关于颜色,可能就不太好计算了。

这里采用的是16位二进制数来表示颜色,依次是5红,6绿,5蓝
3、关于格式化字符
名称 符号
字符 %c
整数 %d
浮点数 %f
不带先导十六进制 %x
百分号 %%
自动补0 %02d
指定小数位 %.2f
总结
lcd比较简单,但是是所有功能的基础,一定要能熟练运用。
下一篇文章,我们将分析串口,这应该算是蓝桥杯噩梦(做过停车场计费系统的应该知道)。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70050091/viewspace-3117698/ ,如需转载,请注明出处,否则将追究法律责任。