本帖最后由 PNK-FU 于 2021-11-29 10:37 编辑
本次测试的是FM33LG0的LCD模块,并且使用LCD真值表工具可以快速的定义COM和SEG对应的显示数据寄存器数据。使用一块4COM-9SEG的LCD段码液晶屏并改写官方例程。
使用流程1. 接线说明: COM脚:4COM必须顺序连接到COM0-3 SEG脚:不必连续使用,可以用SEG0-SEG2-SEG3。。。等。注意SEG29-31和COM复用,没使用的引脚不要初始化为SEG功能。 2. 配置LCD真值表: 以下内容根据液晶屏真值表和连接的引脚填入
生成的文件在LCD真值表.exe同目录上 .xml文件为界面的配置文件信息,是为了方便客户在下一次用的时候直接进行导入,无需再进行配置。 .h文件为复旦微芯片COM和SEG对应的显示寄存器的数据。 3. 把.h文件拷贝进LCD例程
4. GPIO根据实际连接初始化 5. LCD初始化 6. 用COM和SEG对应的显示寄存器的数据
SET_VALUE_XXX将点亮液晶指定段,RESET_VALUE_XXX将熄灭液晶指定段。控制液晶值调用相应字段后,将DISPDATA[]中的数据更新值LCD显示数据寄存器即可实现液晶显示控制。比如要显示LCD的数字1 SET_VALUE_1B;//显示第一位的段码B SET_VALUE_1C;//显示第一位的段码C FL_LCD_WriteData(LCD,FL_LCD_DATA_REG0, DISPDATA[0]); //刷新缓冲区 FL_LCD_WriteData(LCD,FL_LCD_DATA_REG1, DISPDATA[1]); //刷新缓冲区 FL_LCD_WriteData(LCD,FL_LCD_DATA_REG2, DISPDATA[2]); //刷新缓冲区 FL_LCD_WriteData(LCD,FL_LCD_DATA_REG3, DISPDATA[3]); //刷新缓冲区 7. 代码中还有一个快速显示数字的函数 先定义数码管显示数组0x3f, 0x06,0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f,0x6f,//0~9 //数码管显示数组 //------------ 第1个"8"字符 ---------- f( (Result&0x01) == 0x01) { SET_VALUE_1A;} //1A if( (Result&0x02) == 0x02) { SET_VALUE_1B;} //1B if( (Result&0x04) == 0x04) { SET_VALUE_1C;} //1C if( (Result&0x08) == 0x08) { SET_VALUE_1D;} //1D if( (Result&0x10) == 0x10) { SET_VALUE_1E;} //1E if( (Result&0x20) == 0x20) { SET_VALUE_1F;} //1F
if( (Result&0x40) == 0x40) { SET_VALUE_1G;} //1G
例程和LCD工具发在文章后面,有不清楚的可以留言。 |