打印
[PIC®/AVR®/dsPIC®产品]

【8月晒板卡】+ 步步为营之驱动LCD5110显示屏篇

[复制链接]
1165|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
    这是测试工程文件压缩包:
LCD_example_1.X.rar (303.14 KB)

使用特权

评论回复
板凳
dongnanxibei| | 2019-11-5 13:20 | 只看该作者
装备可以,看看楼主发帖就行了。这个液晶屏蛮好用。

使用特权

评论回复
地板
51xlf| | 2019-11-6 14:53 | 只看该作者
LCD5110显示屏            

使用特权

评论回复
5
i1mcu| | 2019-11-6 14:54 | 只看该作者

nokia5110液晶为什么要设置偏压

使用特权

评论回复
6
pmp| | 2019-11-6 14:55 | 只看该作者
很不错的lcd5110 资料   

使用特权

评论回复
7
mmbs| | 2019-11-6 14:55 | 只看该作者
lcd5110的操作界面?

使用特权

评论回复
8
1988020566| | 2019-11-6 14:56 | 只看该作者
5110 闪屏是什么情况?   

使用特权

评论回复
9
lzbf| | 2019-11-6 14:56 | 只看该作者
5110的驱动程序?

使用特权

评论回复
10
houjiakai| | 2019-11-6 14:57 | 只看该作者
汉字显示的不错。

使用特权

评论回复
11
youtome| | 2019-11-6 14:57 | 只看该作者
这个和12864有什么不同吗?   

使用特权

评论回复
12
cemaj| | 2019-11-6 14:57 | 只看该作者
能不能设计带字库的?

使用特权

评论回复
13
jimmhu| | 2019-11-6 14:58 | 只看该作者
代码很给力,谢谢楼主。         

使用特权

评论回复
14
youtome| | 2019-11-6 14:58 | 只看该作者
直接输入汉字显示吗?

使用特权

评论回复
15
51xlf| | 2019-11-6 14:58 | 只看该作者
lcd5110跟lcd1602可以互换吗

使用特权

评论回复
16
houjiakai| | 2019-11-6 14:58 | 只看该作者
怎么没有大小写呢?   

使用特权

评论回复
17
i1mcu| | 2019-11-6 14:58 | 只看该作者
nokia5110 液晶屏模块分辨率是多少  

使用特权

评论回复
18
lzbf| | 2019-11-6 14:58 | 只看该作者
楼主设计的非常棒呢。   

使用特权

评论回复
19
pmp| | 2019-11-6 14:58 | 只看该作者
最常用的液晶显示屏有1602   

使用特权

评论回复
20
1988020566| | 2019-11-6 14:58 | 只看该作者
楼主设计的非常稳定呢。   

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

144

主题

1031

帖子

11

粉丝