ST7735S简介
ST7735S 是 262K 彩色图形型 TFT-LCD 的单芯片控制器/驱动程序。它由396条源线和162门线驱动电路组成。该芯片能够直接连接到外部微处理器,并接受串行外围接口 (SPI)、8 位/9 位/16 位/18 位并行接口。显示数据可以存储在 132 x 162 x 18 位的片上显示数据 RAM 中。它可以在没有外部操作时钟时执行显示数据 RAM 读写操作,以最大限度地降低功耗。此外,由于驱动液晶所需的集成电源电路,因此可以制造出组件较少的显示系统。
TFT简介
我使用的TFT屏幕1.44寸的TFT彩屏,驱动IC就是用的ST7735S的液晶驱动IC板子上的SPI接口引脚已经引出,很方便的可以直接使用断杜邦线接线省去了自己焊接的麻烦,所使用的MCU为增强型的51单片机STC12系列的MCU,图片如下:
引脚说明
PIN | Parameter |
---|
VCC | 5V/3.3V电源接入 | GND | 接地 | CS | 液晶屏片选信号,低电平使能 | RESET | 液晶屏复位信号,低电平复位 | A0 | 液晶屏寄存器/数据选择信号,高电平:寄存器,低电平:数据 | SDA | SPI总线写数据信号 | SCK | SPI总线时钟信号 | LED | 背光控制,高电平点亮,如无需控制则接3.3V常亮 |
程序驱动
流程框架如下
Created with Rapha?l 2.3.0
初始化
编写显示函数
显示
结束
yes
主要命令控制
上图中我们可以看到如果想要软重启液晶屏的话,可以直接看我圈中的那一行,D/CX为0,意思就是需要选择写入命令,个人建议写SPI代码的时候传输数据代码选择高位在前,这样就可以直接使用HEX那一栏的数据,即直接使用MCU_write_TFT_Byte(0x01)即可,即可完成软重启。 上图中的三个命令2A,2B.2C,分别为配置地址选择区域和填色命令,在选择好地址写入对应的数据构造函数即可完成屏幕的取地址和填色处理。
部分代码框架
初始化代码,取自屏幕官方文档配置的驱动。
*配置好屏幕退出睡眠模式,配置帧速率等操作,如果有需求进行屏幕镜像的可以去参考文档中的36命令那里着重看下*
void TFT_init()
{
TFT_BL=0;
TFT_RESET=0;
TFT_delay500ms();
TFT_RESET=1;
TFT_delay500ms();
MCU_write_TFT_Byte(0x11,TFT_COMMAND);
TFT_delay500ms();
MCU_write_TFT_Byte(0xB1,TFT_COMMAND);
MCU_write_TFT_Byte(0x01,TFT_DATA);
MCU_write_TFT_Byte(0x2C,TFT_DATA);
MCU_write_TFT_Byte(0x2D,TFT_DATA);
MCU_write_TFT_Byte(0xB2,TFT_COMMAND);
MCU_write_TFT_Byte(0x01,TFT_DATA);
MCU_write_TFT_Byte(0x2C,TFT_DATA);
MCU_write_TFT_Byte(0x2D,TFT_DATA);
MCU_write_TFT_Byte(0xB3,TFT_COMMAND);
MCU_write_TFT_Byte(0x01,TFT_DATA);
MCU_write_TFT_Byte(0x2C,TFT_DATA);
MCU_write_TFT_Byte(0x2D,TFT_DATA);
MCU_write_TFT_Byte(0x01,TFT_DATA);
MCU_write_TFT_Byte(0x2C,TFT_DATA);
MCU_write_TFT_Byte(0x2D,TFT_DATA);
MCU_write_TFT_Byte(0xB4,TFT_COMMAND);
MCU_write_TFT_Byte(0x07,TFT_DATA);
MCU_write_TFT_Byte(0xC0,TFT_COMMAND);
MCU_write_TFT_Byte(0xA2,TFT_DATA);
MCU_write_TFT_Byte(0x02,TFT_DATA);
MCU_write_TFT_Byte(0x84,TFT_DATA);
MCU_write_TFT_Byte(0xC1,TFT_COMMAND);
MCU_write_TFT_Byte(0xC5,TFT_DATA);
MCU_write_TFT_Byte(0xC2,TFT_COMMAND);
MCU_write_TFT_Byte(0x0A,TFT_DATA);
MCU_write_TFT_Byte(0x00,TFT_DATA);
MCU_write_TFT_Byte(0xC3,TFT_COMMAND);
MCU_write_TFT_Byte(0x8A,TFT_DATA);
MCU_write_TFT_Byte(0x2A,TFT_DATA);
MCU_write_TFT_Byte(0xC4,TFT_COMMAND);
MCU_write_TFT_Byte(0x8A,TFT_DATA);
MCU_write_TFT_Byte(0xEE,TFT_DATA);
MCU_write_TFT_Byte(0xC5,TFT_COMMAND);
MCU_write_TFT_Byte(0x0E,TFT_DATA);
MCU_write_TFT_Byte(0x36,TFT_COMMAND);
switch (DISPLAY_DIRECTION)
{
case 0: MCU_write_TFT_Byte(0xC8,TFT_DATA);break;
case 1: MCU_write_TFT_Byte(0xA8,TFT_DATA);break;
case 2: MCU_write_TFT_Byte(0x08,TFT_DATA);break;
default : MCU_write_TFT_Byte(0x68,TFT_DATA);break;
}
MCU_write_TFT_Byte(0xE0,TFT_COMMAND);
MCU_write_TFT_Byte(0x0F,TFT_DATA);
MCU_write_TFT_Byte(0x1A,TFT_DATA);
MCU_write_TFT_Byte(0x0F,TFT_DATA);
MCU_write_TFT_Byte(0x18,TFT_DATA);
MCU_write_TFT_Byte(0x2F,TFT_DATA);
MCU_write_TFT_Byte(0x28,TFT_DATA);
MCU_write_TFT_Byte(0x20,TFT_DATA);
MCU_write_TFT_Byte(0x22,TFT_DATA);
MCU_write_TFT_Byte(0x1F,TFT_DATA);
MCU_write_TFT_Byte(0x1B,TFT_DATA);
MCU_write_TFT_Byte(0x23,TFT_DATA);
MCU_write_TFT_Byte(0x37,TFT_DATA);
MCU_write_TFT_Byte(0x00,TFT_DATA);
MCU_write_TFT_Byte(0x07,TFT_DATA);
MCU_write_TFT_Byte(0x02,TFT_DATA);
MCU_write_TFT_Byte(0x10,TFT_DATA);
MCU_write_TFT_Byte(0xE1,TFT_COMMAND);
MCU_write_TFT_Byte(0x0F,TFT_DATA);
MCU_write_TFT_Byte(0x1B,TFT_DATA);
MCU_write_TFT_Byte(0x0F,TFT_DATA);
MCU_write_TFT_Byte(0x17,TFT_DATA);
MCU_write_TFT_Byte(0x33,TFT_DATA);
MCU_write_TFT_Byte(0x2C,TFT_DATA);
MCU_write_TFT_Byte(0x29,TFT_DATA);
MCU_write_TFT_Byte(0x2E,TFT_DATA);
MCU_write_TFT_Byte(0x30,TFT_DATA);
MCU_write_TFT_Byte(0x30,TFT_DATA);
MCU_write_TFT_Byte(0x39,TFT_DATA);
MCU_write_TFT_Byte(0x3F,TFT_DATA);
MCU_write_TFT_Byte(0x00,TFT_DATA);
MCU_write_TFT_Byte(0x07,TFT_DATA);
MCU_write_TFT_Byte(0x03,TFT_DATA);
MCU_write_TFT_Byte(0x10,TFT_DATA);
MCU_write_TFT_Byte(0xF0,TFT_COMMAND);
MCU_write_TFT_Byte(0x01,TFT_DATA);
MCU_write_TFT_Byte(0xF6,TFT_COMMAND);
MCU_write_TFT_Byte(0x00,TFT_DATA);
MCU_write_TFT_Byte(0x3A,TFT_COMMAND);
MCU_write_TFT_Byte(0x05,TFT_DATA);
MCU_write_TFT_Byte(0x29,TFT_COMMAND);
TFT_set_region(0,127,0,127);
TFT_clear(BLACK);
TFT_BL=1;
}
驱动展示
总结
关键初始化框架给出,方便直接配置使用,一些构造函数可在下方留言邮箱获取,这边看到会发送的哦,长期发布类似文章,欢迎关注,欢迎随时留言。
|