wangpeng 发表于 2021-12-31 16:21:13

[复旦微FM33LG0系列开发板测评]LCD使用及真值表工具使用说明

[复旦微FM33LG0系列开发板测评]LCD使用及真值表工具使用说明


原帖地址:[复旦微FM33LG0系列开发板测评]LCD使用及真值表工具使用说明 - 国产芯片交流 - 电子工程世界-论坛 (eeworld.com.cn)

本次测试的是FM33LG0的LCD模块,并且使用LCD真值表工具可以快速的定义COM和SEG对应的显示数据寄存器数据。使用一块4COM-9SEG的LCD段码液晶屏并改写官方例程。LCD概述         LCD 显示驱动模块用于驱动段码式液晶屏,能够支持 4、6、8COM,最大显示段数分别为 128 段(4COM)、180 段(6COM)和 224 段(8COM)。主要特点:
[*]最大支持 8×40、6×42、4×44 的显示段数
[*]1/3bias、1/4bias
[*]16 级灰度可调
[*]LCD 驱动支持片内电阻型、片外电容型 2 种模式
[*] 支持闪烁功能,且闪烁频率可调
[*] 支持间歇式点亮功能,点亮、熄灭时间可配置
[*]支持全亮、全灭功能
[*]低功耗,LCD 驱动可以在 Active 模式、Sleep 模式和 DeepSleep 模式下工作
[*]支持 Type A 和 Type B 两种 LCD 驱动波形(可配置)
[*]典型帧刷新频率 64Hz
使用流程1. 接线说明:                COM脚:4COM必须顺序连接到COM0-3                SEG脚:不必连续使用,可以用SEG0-SEG2-SEG3···等。注意SEG29-31和COM复用,没使用的引脚不要初始化为SEG功能。2. 配置LCD真值表:                以下内容根据液晶屏真值表和连接的引脚填入
http://bbs.eeworld.com.cn/data/attachment/forum/202111/29/014851rkblk0wffvmk0sbk.png.thumb.jpg

         生成的文件在LCD真值表.exe同目录上                .xml文件为界面的配置文件信息,是为了方便客户在下一次用的时候直接进行导入,无需再进行配置。                  .h文件为复旦微芯片COM和SEG对应的显示寄存器的数据。3. 把.h文件拷贝进LCD例程http://bbs.eeworld.com.cn/data/attachment/forum/202111/29/015003mtm2muu5p56j5fff.png.thumb.jpg
4. GPIO根据实际连接初始化http://bbs.eeworld.com.cn/data/attachment/forum/202111/29/015013acfimjz0iaaam2zs.png.thumb.jpg
5. LCD初始化http://bbs.eeworld.com.cn/data/attachment/forum/202111/29/015027y5qr9grrlbm5rqcb.png.thumb.jpg
6. 用COM和SEG对应的显示寄存器的数据         SET_VALUE_XXX将点亮液晶指定段,RESET_VALUE_XXX将熄灭液晶指定段。控制液晶值调用相应字段后,将DISPDATA[]中的数据更新值LCD显示数据寄存器即可实现液晶显示控制。比如要显示LCD的数字1
http://www.elecfans.com/uploads/allimg/171206/095Z362L-0.jpg                SET_VALUE_1B;//显示第一位的段码B                SET_VALUE_1C;//显示第一位的段码C                FL_LCD_WriteData(LCD, FL_LCD_DATA_REG0, DISPDATA); //刷新缓冲区                FL_LCD_WriteData(LCD, FL_LCD_DATA_REG1, DISPDATA); //刷新缓冲区                FL_LCD_WriteData(LCD, FL_LCD_DATA_REG2, DISPDATA); //刷新缓冲区                FL_LCD_WriteData(LCD, FL_LCD_DATA_REG3, DISPDATA); //刷新缓冲区7. 代码中还有一个快速显示数字的函数先定义数码管显示数组0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f,0x6f,//0~9 //数码管显示数组                  //------------ 第1个"8"字符 ----------                  if( (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
http://bbs.eeworld.com.cn/data/attachment/forum/202111/29/015052d291dp149p91v56d.png.thumb.jpg
总结         在本次试验中发现复旦微的芯片有以下几个优点:1. 例程库很全; 2. LCD模块的SEG脚可以灵活配置方便布线;3. 芯片可以在低功耗下运行LCD模块;4. LCD真值表工具可以快速的定义COM和SEG对应的显示数据寄存器数据,节约大量的时间。




数字显示的函数有个BUG 需要修改以下函数:void LCD_Num_Data( uint8_t Num, uint8_t Show)
{
      unsigned char Result;

      Result = LCD_Table( Show & 0x0f );
    Num = 4 - Num;
      switch( Num )
      {
                case 0x01:
                //------------ 第1个"8"字符 ----------
                if( (Result&0x01) == 0x01 ) {      SET_VALUE_1A;}      else {RESET_VALUE_1A;}//1A
                if( (Result&0x02) == 0x02 ) {      SET_VALUE_1B;}      else {RESET_VALUE_1B;}      //1B
                if( (Result&0x04) == 0x04 ) {      SET_VALUE_1C;}      else {RESET_VALUE_1C;}      //1C
                if( (Result&0x08) == 0x08 ) {      SET_VALUE_1D;}      else {RESET_VALUE_1D;}      //1D
                if( (Result&0x10) == 0x10 ) {      SET_VALUE_1E;}      else {RESET_VALUE_1E;}      //1E
                if( (Result&0x20) == 0x20 ) {      SET_VALUE_1F;}      else {RESET_VALUE_1F;}      //1F
                if( (Result&0x40) == 0x40 ) {      SET_VALUE_1G;}      else {RESET_VALUE_1G;}      //1G
                break;

                case 0x02:
                //------------ 第2个"8"字符 ----------
                if( (Result&0x01) == 0x01 ) {      SET_VALUE_2A;}      else {RESET_VALUE_2A;}      //2A
                if( (Result&0x02) == 0x02 ) {      SET_VALUE_2B;}      else {RESET_VALUE_2B;}      //2B
                if( (Result&0x04) == 0x04 ) {      SET_VALUE_2C;}      else {RESET_VALUE_2C;}      //2C
                if( (Result&0x08) == 0x08 ) {      SET_VALUE_2D;}      else {RESET_VALUE_2D;}      //2D
                if( (Result&0x10) == 0x10 ) {      SET_VALUE_2E;}      else {RESET_VALUE_2E;}      //2E
                if( (Result&0x20) == 0x20 ) {      SET_VALUE_2F;}      else {RESET_VALUE_2F;}      //2F
                if( (Result&0x40) == 0x40 ) {      SET_VALUE_2G;}      else {RESET_VALUE_2G;}      //2G
                break;

                case 0x03:
                //------------ 第3个"8"字符 ----------
                if( (Result&0x01) == 0x01 ) {      SET_VALUE_3A;}      else {RESET_VALUE_3A;}      //3A
                if( (Result&0x02) == 0x02 ) {      SET_VALUE_3B;}      else {RESET_VALUE_3B;}      //3B
                if( (Result&0x04) == 0x04 ) {      SET_VALUE_3C;}      else {RESET_VALUE_3C;}      //3C
                if( (Result&0x08) == 0x08 ) {      SET_VALUE_3D;}      else {RESET_VALUE_3D;}      //3D
                if( (Result&0x10) == 0x10 ) {      SET_VALUE_3E;}      else {RESET_VALUE_3E;}      //3E
                if( (Result&0x20) == 0x20 ) {      SET_VALUE_3F;}      else {RESET_VALUE_3F;}      //3F
                if( (Result&0x40) == 0x40 ) {      SET_VALUE_3G;}      else {RESET_VALUE_3G;}      //3G
                break;
               
      default:
                break;
      }
      
}


页: [1]
查看完整版本: [复旦微FM33LG0系列开发板测评]LCD使用及真值表工具使用说明