TFTLCD汉字显示

TFTLCD上显示汉字的相关准备工作:

1、硬件平台:STM32开发板、TFTLCD显示模块

2、代码编辑、编译:Keil uVision4

3、程序下载方法:使用“mcuisp”,利用串口助手将程序下载到开发板

4、取模工具:TFTLCD显示汉字需要用到的取模软件如下图

5、硬件电路设计:

LCD_LED
对应 PC10;

LCD_CS 对应 PC9;

LCD _RS 对应 PC8;

LCD _WR 对应 PC7;

LCD _RD 对应 PC6;

LCD _D[17:1]
对应 PB[15:0];

在这里只列出了硬件原理图,在显示汉字的时候会用到前面章节学习到的内容TFTLCD显示。这里只讲解汉字显示方法。接下来介绍与汉字显示相关的函数。

//画点

//x,y:坐标

//POINT_COLOR:此点的颜色

void LCD_DrawPoint(u16 x,u16 y)

{

LCD_SetCursor(x,y);
//设置光标位置

LCD_WriteRAM_Prepare();
//开始写入GRAM

LCD->LCD_RAM=POINT_COLOR;

}

//在LCD上的(x,y)处画点

//color:点的颜色

void LCD_Draw_Point(u16 x,u16 y,u16 color)

{

u16 temp;

temp=POINT_COLOR;

POINT_COLOR=color;

LCD_DrawPoint(x,y);

POINT_COLOR=temp;

}

//在指定位置 显示1个16*16的汉字

//(x,y):汉字显示的位置

//index:tfont数组里面的第几个汉字

//color:这个汉字的颜色

//

void LCD_Show_CH_Font16(u16 x,u16 y,u8 index,u16 color)

{

u8 temp,t,t1;

u16 y0=y;

for(t=0;t<32;t++)//每个16*16的汉字点阵 有32个字节

{

if(t<16)temp=tfont16[index*2][t];      //前16个字节

else temp=tfont16[index*2+1][t-16];    //后16个字节

for(t1=0;t1<8;t1++)

{

if(temp&0x80)LCD_Draw_Point(x,y,color);//画实心点

else LCD_Draw_Point(x,y,BACK_COLOR);   //画空白点(使用背景色)

temp<<=1;

y++;

if((y-y0)==16)

{

y=y0;

x++;

break;

}

}

}

}

//在指定位置 显示1个24*24的汉字

//(x,y):汉字显示的位置

//index:tfont数组里面的第几个汉字

//color:这个汉字的颜色

void LCD_Show_CH_Font24(u16 x,u16 y,u8 index,u16 color)

{

u8 temp,t,t1;

u16 y0=y;

for(t=0;t<72;t++)//每个24*24的汉字点阵 有72个字节

{

if(t<24)temp=tfont24[index*3][t];           //前24个字节

else if(t<48)temp=tfont24[index*3+1][t-24]; //中24个字节

else temp=tfont24[index*3+2][t-48];         //后24个字节

for(t1=0;t1<8;t1++)

{

if(temp&0x80)LCD_Draw_Point(x,y,color);//画实心点

else LCD_Draw_Point(x,y,BACK_COLOR);   //画空白点(使用背景色)

temp<<=1;

y++;

if((y-y0)==24)

{

y=y0;

x++;

break;

}

}

}

}

注意:

1、该文章采用的是将取模后的汉字利用头文件保存到工程,然后编译下载到开发板。

这种方法所支持的汉字仅限头文件中包含的经过取模后的汉字。

2、显示汉字函数与取模方法是存在对应关系,取模方法不一样对应的汉字显示函数是不一样的。

本文章上面有取模软件的设置方法,而下面的汉字显示函数是与上面有取模软件的设置方法对应的。

时间: 2024-10-19 13:20:01

TFTLCD汉字显示的相关文章

YL-236 LCD12864汉字显示C语言编程

sfr P0=0x80; sfr P1=0x90; sfr P2=0xa0; sfr P3=0xb0; sbit cs1=P2^0; sbit cs2=P2^1; sbit e=P2^2; sbit rw=P2^3;//可以直接接地 sbit di=P2^4; sbit rst=P2^5;//默认为1,可以直接接电源 extern unsigned char code abc[] ; ys(int ms) { int k,d; for(k=0;k<ms;k++) for(d=0;d<123;d

STemwin汉字显示

硬件环境: STM32F429,电容屏800X480 5点触控RGB屏幕 ,SPI flash: 软件环境: UCOSIII,STemwin: 汉字显示方法: 1.在SPIflash中装在字库XBF_XINSONGTI19: 2.使用U2C.exe工具进行UTF-8到字体的转化: 1)新建test.txt文件,写入汉字“你好”,另存为,选择编码方式:UTF-8: 2)打开软件U2C.exe,载入文件test.txt,导出文件名test.c: 3.在GUIBuider中加入MULTIEDIT文本显

点阵字体显示系列之二:汉字显示

免责声明: 本文是作者在研究过程中的一篇文章,本着互联网共享.自由(free,应该不是“免费”)之精神发布于此.作者才疏学浅,孤陋寡闻,能力有限,对文中出现的术语及概念的描述多有不当之处,由于本文并非学术报告及论文,不对这些概念性东西进行深入调研,如需权威性解释,请自行查阅相关文献.文中错误的地方,欢迎在文后留言,趁作者还有激情研究之时,大家一直探讨,共同学习,天天向上. 计算机中存在许多种格式的编码,比如ASCII.GB2312.GBK.UTF-8,等等.汉字以“内码”的形式存储于计算机中.对

LCD开发之汉字显示

一.LCD显示原理 利用液晶制成的显示器称为LCD,依据驱动方式可分为静态驱动.简单矩阵驱动以及主动矩阵驱动3种.其中,简单矩阵型又可再细分扭转向列型(TN)和超扭转式向列型(STN)两种,而主动矩阵型则以薄膜式晶体管型(TFT)为主流. 一块LCD 屏显示图像不但需要LCD驱动器,还需要有相应的LCD控制器.通常 LCD 驱动器会以 COF/COG的形式与LCD 玻璃基板制作在一起,而 LCD 控制器则由外部电路来实现.许多MCU 内部直接集成了LCD 控制器,通过LCD控制器可以方便地控制

Keil C51汉字显示的bug问题

一.缘起 这两天改进MCU的液晶显示方法,采用“即编即显”的思路,编写了一个可以直接显示字符串的程序.如程序调用disstr("我是你老爸");液晶屏上就会显示“我是你老爸”. 二.问题 但是,花了1天多时间辛辛苦苦改好的程序后,却发现有些汉字显示有问题.比如: P1:在第一行显示“实时参数”,第二行显示“工作状态”,实际上“工作状态”却重复显示了,除了在正确的地方显示外,还在“实时参数”后显示了. P2:"正"字后若有":",则都显示成乱码.如

汉字显示

一.汉字区位码与机内码 1.区位码 为了使每一个汉字有一个全国统一的代码,1980年,我国颁布了第一个汉字编码的国家标准: GB2312-80<信息交换用汉字编码字符集>基本集,这个字符集是我国中文信息处理技术的发展基础,也是目前国内所有汉字系统的统一标准.  所有的国标汉字与符号组成一个94×94的矩阵.在此方阵中,每一行称为一个"区",每一列称为一个"位",因此,这个方阵实际上组成了一个有94个区(区号分别为0 1到94).每个区内有94个位(位号分

【STM32H7教程】第51章 STM32H7的LTDC应用之LCD汉字显示和2D图形显示

完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第51章       STM32H7的LTDC应用之LCD汉字显示和2D图形显示 本章教程为大家讲解LTDC应用中最基本的汉字显示和2D图形显示功能实现. 51.1 初学者重要提示 51.2 LCD相关的基础支持 51.3 LCD硬件设计 51.4 LCD驱动设计 51.5 LCD板级支持包(bsp_ltdc_h7.c和bsp_tft_lcd.c) 51.6 LCD的

Win7剪贴板粘贴汉字显示为乱码的解决办法

http://blog.csdn.net/tanaya/article/details/8684805 最近2天发现在记事本粘贴的时候汉字都显示为乱码了,很纠结,后面发现是[区域和语言]设置中的“文本服务和输入语言”的问题:不知道什么时候默认输入语言变成了“英语(美国) - 美式键盘”,解决办法是: 修改默认输入语言为:“中文(简体,中国) - 中文(简体) - 美式键盘” 即可! 解决前的设置:                                                  

Qt汉字显示乱码的一个简单解决方案

这个方法对于已经在汉语字符串周围使用tr()宏的人来说比较有效.按照说明的方法定义一个宏,将其放到全局可见的地方,然后把所有的tr替换成宏的名字即可 /*在一个汉字字符串可见的地方声明一个QTextCodeC指针,例如某个对话框要显示汉字,那么可以将其声明为该对话框的成员变量*/ QTextCodec *gbCode; /*对话框的构造函数中*/ #define Mtr(s) (gbkCode->toUnicode(s)) AppDialog::AppDialog(QWidget *parent