TFTLCD彻底解析和程序Word格式.docx
- 文档编号:15994138
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:19
- 大小:19.47KB
TFTLCD彻底解析和程序Word格式.docx
《TFTLCD彻底解析和程序Word格式.docx》由会员分享,可在线阅读,更多相关《TFTLCD彻底解析和程序Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
为0时26万色,为1时8位色。
D1、D0、BASEE这个三个位用来控制显示开关与否的。
当全部设置为1的时候开启显示,全为0是关闭。
我们一般通过该命令的设置来开启或关闭显示器,以降低功耗。
R32,R33,设置GRAM的行地址和列地址。
R32用于设置列地址(X坐标,0~239),R33用于设置行地址(Y坐标,0~319)。
当我们要在某个指定点写入一个颜色的时候,先通过这两个命令设置到改点,然后写入颜色值就可以了。
R34,写数据到GRAM命令,当写了这个命令之后,地址计数器才会自动的增加和减少。
该命令是我们要介绍的这一组命令里面唯一的单个操作的命令,只需要写入该值就可以了,其他的都是要先写入命令编号,然后写入操作数。
R80~R83,行列GRAM地址位置设置。
这几个命令用于设定你显示区域的大小,我们整个屏的大小为240*320,但是有时候我们只需要在其中的一部分区域写入数据,如果先用写坐标,后写数据这样的方式来实现,则速度大打折扣。
此时我们就可以通过这几个命令,在其中开辟一个区域,然后不停的丢数据,地址计数器就会根据R3的设置自动增加/减少,这样就不需要频繁的写地址了,大大提高了刷新的速度。
通过以上介绍,我们可以得出TFT-lcd显示需要的相关设置步骤如下:
(1)设置单片机(STM32)与TFT-LCD模块相连的IO口
这一步,先将我们与TFT-LCD模块相连的IO口设置为输出,具体使用哪些IO口,这里需要根据连接电路以及TFT-LCD模块的设置来确定;
(2)初始化TFT-LCD模块
通过向TFT-LCD写入一系列的设置,来启动TFT-LCD的显示,为后续显示字符和数字做准备;
(3)通过函数将字符和数字显示到TFT-LCD模块上
这里就是通过我们设计的程序,将要显示的字符送到TFT-LCD模块就可以了。
#include"
lcd.h"
fonts.h"
staticvu16TextColor=0x0000,BackColor=0xFFFF;
voidDelay(intn)
{
unsignedinti,j;
for(i=0;
i<
n;
++i)
for(j=0;
j<
3000;
++j);
}
//LCD寄存器初始化
#definelcm_mdelay(X)Delay(X)
voidlcd_reg_init(void)
LCD_WriteReg(0x0000,0x0001);
lcm_mdelay(1000);
//atleast100ms
LCD_WriteReg(0x0001,0x0000);
//setSSandSMbit//LCD_CtrlWrite(0x0003,0x1030);
//setGRAMwritedirectionandBGR=1.
LCD_WriteReg(0x0010,0x1790);
LCD_WriteReg(0x0060,0x2700);
LCD_WriteReg(0x0061,0x0001);
LCD_WriteReg(0x0046,0x0002);
LCD_WriteReg(0x0013,0x8010);
LCD_WriteReg(0x0012,0x80fe);
LCD_WriteReg(0x0002,0x0500);
LCD_WriteReg(0x0003,0x1030);
LCD_WriteReg(0x0030,0x0303);
LCD_WriteReg(0x0031,0x0303);
LCD_WriteReg(0x0032,0x0303);
LCD_WriteReg(0x0033,0x0300);
LCD_WriteReg(0x0034,0x0003);
LCD_WriteReg(0x0035,0x0303);
LCD_WriteReg(0x0036,0x0014);
LCD_WriteReg(0x0037,0x0303);
LCD_WriteReg(0x0038,0x0303);
LCD_WriteReg(0x0039,0x0303);
LCD_WriteReg(0x003a,0x0300);
LCD_WriteReg(0x003b,0x0003);
LCD_WriteReg(0x003c,0x0303);
LCD_WriteReg(0x003d,0x1400);
LCD_WriteReg(0x0092,0x0200);
LCD_WriteReg(0x0093,0x0303);
LCD_WriteReg(0x0090,0x080d);
LCD_WriteReg(0x0003,0x1018);
//setGRAMwritedirectionandBGR=1.
LCD_WriteReg(0x0007,0x0173);
//LCD初始化
voidSTM3210B_LCD_Init(void)
vu16dummy=0;
LCD_CtrlLinesConfig();
lcd_reg_init();
dummy=LCD_ReadReg(0);
//设置文字颜色
voidLCD_SetTextColor(vu16Color)
TextColor=Color;
//设置背景色
voidLCD_SetBackColor(vu16Color)
BackColor=Color;
//清除行,Line:
0-9
voidLCD_ClearLine(u8Line)
LCD_DisplayStringLine(Line,"
"
);
//LCD清屏
voidLCD_Clear(u16Color)
u32index=0;
LCD_SetCursor(0x00,0x0000);
LCD_WriteRAM_Prepare();
/*PreparetowriteGRAM*/for(index=0;
index<
76800;
index++)
LCD_WriteRAM(Color);
//LCD光标设置
voidLCD_SetCursor(u8Xpos,u16Ypos)
LCD_WriteReg(R32,Xpos);
LCD_WriteReg(R33,Ypos);
//在LCD指定位置上显示
voidLCD_DrawChar(u8Xpos,u16Ypos,uc16*c)
u32index=0,i=0;
u8Xaddress=0;
Xaddress=Xpos;
LCD_SetCursor(Xaddress,Ypos);
for(index=0;
24;
/*PreparetowriteGRAM*/for(i=0;
i<
16;
i++)
if((c[index]&
(1<
<
i))==0x00)
LCD_WriteRAM(BackColor);
else
LCD_WriteRAM(TextColor);
Xaddress++;
//显示一个字符
voidLCD_DisplayChar(u8Line,u16Column,u8Ascii){
Ascii-=32;
LCD_DrawChar(Line,Column,&
ASCII_Table[Ascii*24]);
//LCD显示字符串
voidLCD_DisplayStringLine(u8Line,u8*ptr)
u32i=0;
u16refcolumn=319;
//319;
while((*ptr!
=0)&
&
(i<
20))//20
/*DisplayonecharacteronLCD*/
LCD_DisplayChar(Line,refcolumn,*ptr);
/*Decrementthecolumnpositionby16*/
refcolumn-=16;
/*Pointonthenextcharacter*/
ptr++;
/*Incrementthecharactercounter*/
i++;
//设置LCD显示模式
voidLCD_SetDisplayWindow(u8Xpos,u16Ypos,u8Height,u16Width)
if(Xpos>
=Height)
LCD_WriteReg(R80,(Xpos-Height+1));
LCD_WriteReg(R80,0);
LCD_WriteReg(R81,Xpos);
if(Ypos>
=Width)
LCD_WriteReg(R82,(Ypos-Width+1));
LCD_WriteReg(R82,0);
/*VerticalGRAMEndAddress*/
LCD_WriteReg(R83,Ypos);
LCD_SetCursor(Xpos,Ypos);
//LCD窗口模式配置
voidLCD_WindowModeDisable(void)
LCD_SetDisplayWindow(239,0x13F,240,320);
LCD_WriteReg(R3,0x1018);
//LCD画线
voidLCD_DrawLine(u8Xpos,u16Ypos,u16Length,Direction)
if(Direction==Horizontal)u8LCD_WriteRAM(TextColor);
LCD_SetCursor(Xpos-CurX,Ypos+CurY);
/*PreparetowriteGRAM*/LCD_WriteRAM(TextColor);
LCD_SetCursor(Xpos-CurX,Ypos-CurY);
/*PreparetowriteGRAM*/LCD_WriteRAM(TextColo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TFTLCD 彻底 解析 程序