5345|2

1297

帖子

2

TA的资源

纯净的硅(中级)

楼主
 

[XMC4700 Relax 5V shield 评测]05 xmc4700驱动LCD5110 [复制链接]

在上次评测中,我们用到串口来做交互。这在玩单片机时,最最基本的用户交互界面。不过为了直观起见,还是用显示屏更好点。 前一阵刚好玩过nokia的5110屏,尝试移植到xmc4700下看看。市面上封装好的5110屏还蛮多的,手上拿到的是图1这种的。 从左到右,分别是VCC、GND、CS、RST、D/C、MOSI、CLK和背光控制引脚。其中Vcc一般接3.3V,IO则3.3和5V通吃。 CS、MOSI和CLK是SPI接口,D/C决定输入的是指令还是数据,RST负责reset。


图1 lcd5110外观

和单片机的连接上,直接使用开发板上的arduino接口。具体连接如下:

  • SCLK: P3.9
  • MOSI: P3.8
  • D/C: P1.11
  • RST: P1.10
  • CS: P1.9

因此在dave app上,我们就需要1个SPI(负责SCLK和MOSI),3个DIGITAL_IO(负责后三个控制管脚)。我们先来添加一个digital_io。


图2 添加GPIO

并把它配置成输入输出模式(没有单纯的输出模式),初始输出为高电平。指定label为“LCD5110_CS”


图3 修改label

同样,我们再搞定另外2个DIGITAL_IO,分别是LCD5110_RST和LCD5110_DC。过程同上。 简单的办法就是使用右键菜单中的,add new instance,然后copy config,在新的上面past config就好了。


图4 增加新的instance

接着添加SPI_MASTER,在第一页设定总线速度为1MHz,在第二页,设定slave选择线为0,也就是自己控制CS脚的电平。设置如下图所示。


图5 SPI配置

最后我们来分配引脚,如下图所示。注意到LCD5110并不需要MISO,因此对应的引脚并没有分配。


图6 指定引脚

生成代码以后,就要添加用户代码啦。我们在项目下新建user目录,把需要用到的驱动代码放进去。


图7 添加用户代码

这里面的代码原来是51下的,其实移植非常简单,就是原来的IO控制代码改成DIGITAL_IO的控制代码。 然后模拟时序的SPI读写用SPI_MASTER_Transmit(&SPI_MASTER_0,&dat,1)代替就好了。 下图中展示了这两个例子。红线以上是IO控制代码,下方是SPI的代码。 IO部分注释掉的就是51的代码,用相应的DIGITAL_IO_SetOutput代替。 SPI部分,注释掉的是用IO模拟实现的SPI通信,最后用SPI_MASTER_Transmit函数代替的结果。 其实SPI部分的还是有个坑的,因为直接使用Transmit函数是不够的,必须用while(SPI_MASTER_IsTxBusy(&SPI_MASTER_0)); 判断是否传输完成,而这之后,还要增加大约1个字节的传输时延。


图8 代码移植示例

最后在主函数添加少量代码就可以使用LCD了,非常的方便。


图9 主函数添加代码

图10 LCD效果展示

小结:本次评测中,使用了SPI_MASTER,并配合DIGITAL_IO,实现了nokia5110液晶显示屏的基本英文字符驱动。 随着所使用的外设功能的复杂化,单靠经验主意是不够了,必须配合APP的文档,才能完成基本代码。如果要深入的话,可能还是要翻阅芯片手册的。



此内容由EEWORLD论坛网友johnrey原创,如需转载或用于商业用途需征得作者同意并注明出处

06SPIconfig.png (27.04 KB, 下载次数: 0)

06SPIconfig.png
此帖出自单片机论坛

最新回复

祝楼主圣诞、元旦快乐。  详情 回复 发表于 2017-12-24 14:26
点赞 关注
 

回复
举报

7671

帖子

18

TA的资源

五彩晶圆(高级)

沙发
 
确实开发很方便
此帖出自单片机论坛
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 

回复

964

帖子

24

TA的资源

纯净的硅(初级)

板凳
 
祝楼主圣诞、元旦快乐。
此帖出自单片机论坛
 
个人签名这个人不懒,但是仕么都没留下
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表