[PIC®/AVR®/dsPIC®产品] 【8月晒板卡】+ 步步为营之驱动LCD5110显示屏篇

[复制链接]
 楼主| hu9jj 发表于 2019-10-14 14:44 | 显示全部楼层 |阅读模式
本帖最后由 hu9jj 于 2019-10-14 14:52 编辑

    调试了几天,终于成功驱动了LCD5110显示屏。下面是显示屏的特写,这个屏有点缺陷,有排横点没有显示。



    下面是全貌:



    首先是在MCC中配置引脚,将相应的驱动引脚设置成输出。LCD5110共需要5个引脚驱动,我选择了PE0~PE3加PF4(后改为PB3)。我将相应的代码复制过来后,开始编译没有通过:









    经过反复调试排错后,编译总算通过了,但LCD屏幕没有任何显示,反复查找、测试都找不到问题所在,无奈之下只好动用逻辑分析仪:



    通过观看时序,相应的引脚信号与要求相差甚远,5个引脚的时序几乎完全相同,说明相关的驱动代码有问题:


    下面是放大后的时序:






    为了方便测试引脚控制的代码,我将各引脚分别接上LED灯来测试:



    我开始是用下列的宏定义,但只有PE0和PE1的宏定义能够控制相应的引脚,其他宏定义则不起作用,一直找不到原因:

/*****************************************
*
* 定义LCD相关的管脚功能
*
*****************************************/
#define LCD_RST_1  do { PORTF_OUTSET = 0x8; } while(0)    //复位脚① PE3 0x8
#define LCD_RST_0  do { PORTF_OUTCLR = 0x8; } while(0)    //复位脚①
#define LCD_CE_1   do { PORTE_OUTSET = 0x4; } while(0)    //片选脚② PE2 0x4
#define LCD_CE_0   do { PORTE_OUTCLR = 0x4; } while(0)
#define LCD_DC_1   do { PORTE_OUTSET = 0x2; } while(0)    //数据/命令选择脚③ PE1 0x2
#define LCD_DC_0   do { PORTE_OUTCLR = 0x2; } while(0)
#define LCD_DIN_1  do { PORTE_OUTSET = 0x1; } while(0)    //数据输入④ PE0 0x1
#define LCD_DIN_0  do { PORTE_OUTCLR = 0x1; } while(0)
#define LCD_CLK_1  do { PORTE_OUTSET = 0x10; } while(0)    //时钟信号脚⑤PF4 0x10
#define LCD_CLK_0  do { PORTE_OUTCLR = 0x10; } while(0)

经过测试,通过宏定义嵌套才解决了问题,代码如下:
#define LCD_RST_1  do { IO_PE3_SetHigh(); } while(0)      //复位脚① PE3 0x8
#define LCD_RST_0  do { IO_PE3_SetLow(); } while(0)       //复位脚①
#define LCD_CE_1   do { IO_PE2_SetHigh(); } while(0)    //片选脚② PE2 0x4
#define LCD_CE_0   do { IO_PE2_SetLow(); } while(0)
#define LCD_DC_1   do { IO_PE1_SetHigh(); } while(0)      //数据/命令选择脚③ PE1 0x2
#define LCD_DC_0   do { IO_PE1_SetLow(); } while(0)
#define LCD_DIN_1  do { IO_PE0_SetHigh(); } while(0)     //数据输入④ PE0 0x1
#define LCD_DIN_0  do { IO_PE0_SetLow(); } while(0)
#define LCD_CLK_1  do { IO_PB3_SetHigh(); } while(0)     //时钟信号脚⑤PF4 0x10
#define LCD_CLK_0  do { IO_PB3_SetLow(); } while(0)
/**************结束管脚定义******************/



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| hu9jj 发表于 2019-10-14 14:47 | 显示全部楼层
    这是测试工程文件压缩包:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
dongnanxibei 发表于 2019-11-5 13:20 | 显示全部楼层
装备可以,看看楼主发帖就行了。这个液晶屏蛮好用。
51xlf 发表于 2019-11-6 14:53 | 显示全部楼层
LCD5110显示屏            
i1mcu 发表于 2019-11-6 14:54 | 显示全部楼层

nokia5110液晶为什么要设置偏压
pmp 发表于 2019-11-6 14:55 | 显示全部楼层
很不错的lcd5110 资料   
mmbs 发表于 2019-11-6 14:55 | 显示全部楼层
lcd5110的操作界面?
1988020566 发表于 2019-11-6 14:56 | 显示全部楼层
5110 闪屏是什么情况?   
lzbf 发表于 2019-11-6 14:56 | 显示全部楼层
5110的驱动程序?
houjiakai 发表于 2019-11-6 14:57 | 显示全部楼层
汉字显示的不错。
youtome 发表于 2019-11-6 14:57 | 显示全部楼层
这个和12864有什么不同吗?   
cemaj 发表于 2019-11-6 14:57 | 显示全部楼层
能不能设计带字库的?
jimmhu 发表于 2019-11-6 14:58 | 显示全部楼层
代码很给力,谢谢楼主。         
youtome 发表于 2019-11-6 14:58 | 显示全部楼层
直接输入汉字显示吗?
51xlf 发表于 2019-11-6 14:58 | 显示全部楼层
lcd5110跟lcd1602可以互换吗
houjiakai 发表于 2019-11-6 14:58 | 显示全部楼层
怎么没有大小写呢?   
i1mcu 发表于 2019-11-6 14:58 | 显示全部楼层
nokia5110 液晶屏模块分辨率是多少  
lzbf 发表于 2019-11-6 14:58 | 显示全部楼层
楼主设计的非常棒呢。   
pmp 发表于 2019-11-6 14:58 | 显示全部楼层
最常用的液晶显示屏有1602   
1988020566 发表于 2019-11-6 14:58 | 显示全部楼层
楼主设计的非常稳定呢。   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:Microchip
简介:让我们来为您提供帮助。我们可提供各种资源来帮助您解决一切问题。是否需要与我们的客户支持团队联系?您可以通过电话、在线聊天功能或电子邮件与他们联系。

151

主题

1063

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部