基于STM32的汉字显示系统.docx
- 文档编号:16380745
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:10
- 大小:396.82KB
基于STM32的汉字显示系统.docx
《基于STM32的汉字显示系统.docx》由会员分享,可在线阅读,更多相关《基于STM32的汉字显示系统.docx(10页珍藏版)》请在冰点文库上搜索。
基于STM32的汉字显示系统
摘 要
随着社会经济的迅速发展,如今汉字显示系统应用于各个领域中。
LCD显示屏的技术和产业都取得了长足的发展,作为重要的现代信息发布媒体之一,LCD显示屏在证券交易、金融、交通、体育、广告等领域被广泛的应用。
基于STM32的LCD显示可以更好的满足各种需求,也更便于操作和实现。
汉字显示系统主要由STM32芯片作为LCD彩色显示屏的主要核心控制器,并且通过字库制作软件制作相应的字库经过SD卡将自己所制作的字库中的汉字在屏幕中依次显示出来,同时可以通过按键控制,来控制现实的汉字的暂停,继续,更新字库。
本系统是利用STM32开发板配合SD卡实现将已存入字库中的汉字完整的显示在LCD彩色显示屏上。
关键词:
STM32开发板;LCD彩色显示屏;开关
目 录
1 引言 1
2 总体设计 2
2.1汉字显示设计分析 2
2.2汉字显示的基本原理 2
2.3系统的结构框图 3
3 详细设计 4
3.1硬件设计 4
3.1.1芯片介绍 4
3.1.2功能简介 4
3.2 软件设计 8
3.2.1录字软件 8
3.2.2主函数部分 9
3.2.3硬件部分程序 12
3.2.4字库相关程序 14
3.2.5FAT系统 18
3.2.6程序流程图 19
4 实验结果及分析 20
4.1 硬件实验结果 20
4.2 结果分析 20
5 结论 21
参考文献 22
1引言
随着嵌入式技术的迅猛发展,人机交互界面也越来越显示出它的重要性。
实际的LCD应用中要显示的汉字一般很有限,并不需要完整的汉字库,再加上完整字库在程序中要占用大量空间,因而非完整汉字库的研究就有了其自身的现实必要性。
本次课程设计主要以TFTLCD的LCD显示模块,完整的实现了汉字库的建立与显示。
TFT-LCD即薄膜晶体管液晶显示器。
其英文全称为:
ThinFilmTransistor-LiquidCrystalDisplay。
TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。
目前,显示技术和显示工业的发展迅速。
显示技术是传递视觉的信息技术。
液晶显示器件LCD是当今最有发展前途的一种平板显示器件,它具有很多独到的优异特性。
它具有显示信息多、易于多彩化、体积小、重量轻、功耗低、寿命长、价格低、无辐射、无污染、接口控制方便等优点。
2 总体设计
2.1汉字显示设计分析
首先,要通过字库制作软件建立一个小的自己设计的汉字字库;其次需要将创建好的字库文件复制到SD卡中并将其插入到STM32的开发板上;最后就是编写程序,下载程序反复调试得出想要的结果。
具体要实现的目标如下:
1.更新字库,即文档可进行变换;
2.初始状态显示本次课设的基本信息;
3.可以将输出的文字进行字体、颜色、大小的变换;
4.可对显示过的汉字进行计数;
5.显示显每个汉字所对应的内存字节;
6.在运行过程中可实现暂停、继续、变速等功能。
7.每显示一个汉字后,LED0小灯会闪烁提示一下。
2.2汉字显示的基本原理
汉字在液晶上的显示其实就是一些点的显示与不显示,这就相当于我们的笔一样,有笔经过的地方就画出来,没经过的地方就不画,所以只要知道了一个汉字点阵的生成方法,那么我们在程序里面就可以把这个点阵数据解析成一个汉字。
首先需要用字库制作软件制作一个GBK字库,将制作好的字库放在SD卡里面,然后通过SD卡,将字库文件复制到W25X16里,这样,W25X16就相当于一款汉字字库芯片了,从而使STM32芯片读取其中的数据显示到LCD显示屏上。
2.3系统的结构框图
按键控制
暂停
继续
更新字库
显示调速
图2.1系统结构框图
3 详细设计
3.1硬件设计
3.1.1芯片介绍
STM32开发板主要采用STM32F103RBT6作为MCU,STM32F103的型号众多,我们选择这款的原因是看重其性价比,作为一款低端开发板,选择STM32F103RBT6是最佳的选择。
128KFLASH、20KSRAM、2个SPI、3个串口、1个USB、1个CAN、2个12位的ADC、RTC、51个可用IO脚…,这样的配置无论放到哪里都是很不错的了,更重要的是其价格,不到13元的批量价,足以秒杀很多其他芯片了,所以我们选择了它作为我们的主芯片。
3.1.2功能简介
开机的时候先检测W25X16中是否已经存在字库,如果存在,则按次序显示汉字。
如果没有,则检测SD卡和文件系统,并查找SYSTEM文件夹下的FONT文件夹,在该文件夹内查找UNI2GBK.SYS和GBK16.FON。
在检测到这些文件之后,就开始更新字库,更新完毕才开始显示汉字。
每显示一个汉字LED0小灯会闪烁一下。
WK_UP按键调整显示汉字的速度;key1控制继续和暂停;key0更新SD卡。
所要用到的硬件资源如下:
1)STM32F103RBT6。
2)外部LED0。
3)TFTLCD液晶模块。
4)按键WK_UP、key1、key0。
5)W25X16。
6)SD卡。
1、STM32的简单介绍
图3.1STM32原理图
选择STM32F103RBT6作为MCU,原因是其性价比高,128KFLASH、20KSRAM、2个SPI、3个串口、1个USB、1个CAN、2个12位的ADC、RTC、51个可用IO脚…,所以我们选择了它作为我们的主芯片。
2、外部LED0
图3.2外部LED0原理图
其中PWR是系统电源指示灯,为蓝色。
LED0和LED1分别接在PA8和PD2上,PA8还可以通过TIM1的通道1的PWM输出来控制DS0的亮度。
3、TFTLCD液晶模块
图3.3TFTLCD液晶显示原理图
TFT_LCD是一个通用的液晶模块接口。
OLED是一个给OLED显示模块供电的接口,它和TFT_LCD拼接在一起。
当使用2.4’/2.8’的LCD时,我们接到TFT_LCD上就可以了,而当我们使用ALIENTEK的OLED模块时,则接OLED排阵做电源,同时会连接到TFT_LCD上的部分管脚,从而实现OLED与MCU的连接。
4、按键
图3.4按键输入原理图
KEY0和KEY1用作普通按键输入,分别连接在PA13和PA15上,他们都连接在了JTAG相关的引脚上(KEY0还连接在SWDIO上),KEY0和KEY1还和PS/2的DAT和CLK线共用,他们都通过JTAG的上拉电阻来提供上拉。
WK_UP按键连接到PA0(STM32的WKUP引脚),它除了可以用作普通输入按键外,还可以用作STM32的唤醒输入。
这个按键是高电平触发的。
5、W25X16
图3.525X16原理图
这是ALIENTEKMiniSTM32开发板板载的一颗FLASH芯片,型号为W25X16。
这颗芯片的容量为16Mbit,也就是2M字节,容量和AT45DB161一样。
适合存储不常修改的数据,比如字库等。
6、SD卡
图3.6SD卡部分原理图
插入SD卡可以外扩大容量存储设备,可以用来记录数据。
SD卡我们使用的是SPI模式通信,SD卡的SPI接口连接到STM32的SPI1上,SD_CS接在PA3上。
3.2软件设计
汉字显示系统需要有STM32开发板配合SD卡使用,因此其程序需要分为以下几个文件夹,用来读取SD卡上的字库和UNICODE到GBK的转换码表的FAT系统文件,硬件组成文件HARDWARE系统文,汉字字库存储,及读取相应的文件TEXT文件,以及存放主程序文件USER文件件,和STM32的系统文件。
3.2.1录字软件
双击如图所示的软件
,进入主界面,如图3.7。
选择中文—>小字库—>开始输入文本—>创建—>确定,如图3.8。
完成后,将生成的文件拷入SD卡中。
图3.7点阵字库生成器
图3.8创建字库
3.2.2主函数部分
intmain(void)
{
u32fontcnt; u8i,j; u16fx,fy;
u8fontx[2]; u8key; u16t,ts;
Stm32_Clock_Init(9); delay_init(72);
uart_init(72,9600); LCD_Init();
KEY_Init(); LED_Init();
SPI_Flash_Init();
if(Font_Init())
{ UPD:
POINT_COLOR=BLACK;
LCD_Clear(WHITE);
LCD_ShowString(60,50," STM32 ");
LCD_ShowString(60,70,"FontUpdating...");
SD_Initialize();
while(FAT_Init())
{ LCD_ShowString(60,90,"FATSYSERROR");
i=SD_Initialize();
if(i)
{ LCD_ShowString(60,110,"SD_CARDERROR"); }
delay_ms(500);
LCD_Fill(60,90,240,126,WHITE);
delay_ms(500); LED0=!
LED0; LED1=!
LED1; }
while(Update_Font()!
=0)
{ LCD_ShowString(60,110,"SYSTEMfileLOST");
delay_ms(500);
LCD_ShowString(60,130,"PleaseCheck....");
delay_ms(500);
LED0=!
LED0; LED1=!
LED1; };
LCD_Clear(WHITE); }
RESET:
LCD_Clear(WHITE); POINT_COLOR=RED;
Show_Str(5,5,"电子系统设计",16,0);
Show_Str(140,5,"汉字显示系统",16,0);
POINT_COLOR=BLUE;
Show_Str(10,40,"内码:
高字节",16,0);
Show_Str(130,40,"低字节",16,0);
Show_Str(10,60,"对应汉字",16,0);
Show_Str(130,60,"计数器",16,0);
Show_Str(60,270," 张政马舒阳刘佳萍",16,0);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STM32 汉字 显示 系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)