微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 关于8位单片机驱动液晶屏的应用总结

关于8位单片机驱动液晶屏的应用总结

时间:12-01 来源:互联网 点击:

册)

LCDtype:1.45”activematrixTFT-LCD

Rsolution:128(W)X128(H)Pixels

Displaymode:transmissivetype

Displaycolor:262Kcolor

driverIC:ILI9163C

Luminance:120cd/m2

Contrastratio:400:1

Viewingdirection:6o’clock

Interface:4wireSPIinterface

Backlight:1whiteLED,18ma,3,15V

2、引脚说明:

VCC:电源+3,3V

GND:电源地

CS:片选(低电平有效)

RST:复位(低电平有效)

AO:寄存器选择信号(低电平:选择命令寄存器;高电平:选择数据寄存器)

SDA:datainputinSPImode在SPI模式下的数据输入

SCL:在SPI模式下的同步时钟输入

LED:背光LED电源,

呵呵,从引脚定义上就可以看出是不是在SPI模式下只需要4条IO口线就可以和MCU构成一个显示系统了。(其实还用一种模式只要3条IO口线就可以)。

再看1.8寸TFT的相关数据

显示点阵数:128Wx160Hdots

模块外形尺寸:34Wx45.83Hx2.65Tmm

可视区域:28.03Wx35.04Hmm

像素尺寸:0.06W*3*0.18Hmm

像素中心距:0.18W*0.18Hmm

占空比:1/400

视角:6点钟

LCD模式:260kcolor

IC:ST7735B

主要引脚定义:同1.44’

再看2.2英寸的屏

Size2.2inch

Resolution:240*320

Interface4-wireSPI

Colordepth262k/65k

Technologya-Si

Pixelpitch(mm):0.141*0.141

Viewingdirection:6o’clock

LEDnumbers4LEDs

DriverICILI9340C

主要引脚定义同1.44’英寸。

从上面不同尺寸液晶屏的引脚的定义看出,1.44英寸和1.8英寸及2.2英寸的TFT液晶屏,在和MCU构成显示系统时操作方式是一样的(因为都是4线 SPI),尽管他们使用的驱动IC型号不同。但是只要你翻看IC的数据手册就会发现,他们的寄存器的定义基本是一样的,操作原理相同。

如何构成一个显示系统:

电源+MCU+TFT液晶屏

呵呵,是不是觉得少了点什么?驱动IC那里去了?

其实驱动IC我们是看不到的,它被集成在了液晶屏中,我们只要知道它的寄存器的定义,利用液晶屏的端口会进行读写即可。

电源:3.3V的直流电源,呵呵,这个不用细说,小功率的可以利用ASM1117-3;大功率的可以利用LM2596S-3.3(最高3A的输出)来构成一个电源。

MCU:主要是3个要求。

工作电压,3.3V

够大,

够快。

够大才能存的下程序和数据,够快才会图像流畅。

本人手头只有15L2K08S2这个单片机,8K程序存储区,2K的SRAM,最高时钟33.1776MHz,最高输出8MHz的外部时钟,比起60S2的60KB的FLASH,小了不少,但是对于普通的不太复杂的应用已经足够了,主要是搞通应用的原理。

液晶屏:

以上列举的液晶屏都是串口屏,所以屏的引出脚较少,除此之外还有引出管脚较多的并口屏,

当然串口屏的数据是一位一位的送出的,速度相对是比较慢的。

在操作上,串口和并口原理差不多。这里就先介绍串口屏的使用。

好了,你有了上面的3大件下面在准备点辅料。

1、数据线,USB转串口数据线,用于烧写MCU

2、字符LCD点阵提取软件:百度一下吧,zimo221.exe

3、图片点阵数据提取软件:同样百度,Image2Lcd.exe

4、编程软件:KEIL

5、单片机烧写软件:这个不多说了,看你用的芯片而定。

好的,齐活了,准备开工。

用导线将单片机的电源接口和LCD的电源及LED端口同3.3V电源的输出连接起来。供电的问题解决了。

用导线将自己选择的单片机的端口和LCD的REST、CS、SCL、AO、SDA一一对应的连接起来。数据输出的问题解决。

硬件问题解决,开始代码的编写

TFT初始化函数:

也就是对液晶屏进行基本的配置。

这个基本直接套用就行。(除了个别地方需要修改,后面会说)

TFT驱动芯片的手册还是有必要看看的,最好是看英文原版内容比较详细。

也没有必要全部看,但是下面初始化代码中涉及到的指令及4wireSPI的时序图,还是很有必要了解的,不然显示的界面出了问题,就会感觉无从下手解决。

写数据和写命令

很明显要想让液晶屏显示字符或图像,必须要把要显示的内容转换成数据写到液晶屏的控制器,想写内容数据还要对液晶屏的控制寄存器进行设置,也就是写命令数据。只有一条SDA串口数据线,怎么区分是内容数据还是命令数据呢,那就要靠AO(RS):寄存器选择信号(低电平:选择命令寄存器;高电平:选择数据寄存器)。

写命令

voidwrite_command(ucharc)

{

cs=0;//片选有效

rs=0;//选择命令寄存器

bitdata=c;//送数据

sda=bit7;scl=0;scl=1;

sda=bit6;scl=0;scl=1;

sda=bit5;scl=0;scl=1;

sda=bit4;scl=0;scl=1;

sda=bit3;scl=0;scl=1;

sda=bit2;scl=0;scl=1;

sda=bit1;scl=0;scl=1;

sda=bit0;scl=0;scl=1;

cs=1;//片选无效

}

写数据

voidwrite_data(uchard)

{

cs=0;

rs=1;

bitdata=d;

sda=bit7;scl=0;scl=1;

sda=bit6;scl=0;scl=1;

s

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top