学年论文-基于STM32的LCD显示屏设计_第1页
学年论文-基于STM32的LCD显示屏设计_第2页
学年论文-基于STM32的LCD显示屏设计_第3页
学年论文-基于STM32的LCD显示屏设计_第4页
学年论文-基于STM32的LCD显示屏设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

前言1.1设计的背景液晶显示器(LCD)已广泛应用于计算机、电视及智能仪表中,它的主要优点是功耗低、控制电压低、集成电路容易控制。LCD显示屏的体积小、重量轻、超薄等特点是其它显示屏无法比拟的。近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。LCD可分为段式LCD、字符式LCD和点阵式LCD。其中段位式LCD和字符式LCD只能用于字符和数字简易显示,而不能够满足图形曲线和汉字显示的要求;而点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线和汉字,并且可以实现屏幕上下左右滚动,动画功能,区分开窗口,反转,闪烁等功能,用途十分广泛[1]。液晶显示器作为一种新型显示输出设备,消除了传统CRT的屏幕闪烁和像素抖动,不仅具有高亮度、对比度,高可靠性、抗干扰能力强等优点,而且体积小,功耗低、宽视野、色彩鲜明、无辐射。随着相关技术的日趋成熟,它的应用领域迅速扩展,尤其是在工业控制,医疗仪器、机电设备、商业消费等方面,正逐渐成为新的热点。LCD显示多采用专用的控制器,功能强大,实了很好的显示效果。但是其价格高昂,且多要求有的操作系统实现控制功能。这必然限制其在功能要求不高、对价格敏感的小型设备中使用。1.2研究现状及发展趋势在LCD显示应用领域,通常数据源输出图像的分辨率是变化的,而从工业生产标准化要求和获得最佳显示效果的角度出发,LCD显示器的物理分辨率则是固定不变的。这就需要将不同分辨率的输入图像经过缩放后输出到分辨率固定的LCD显示器上,当前工业上解决这一问题的方案是在输入数据源和数据显示设备之间设置LCD图像引擎来实现缩放处理[2]。LCD显示器是纯数字设备,数字接口是其最佳的选择,随着数字接口技术标准逐渐地统一起来,越来越多的显示芯片具备了支持数字视频输出的能力,显卡制造商也开始在显卡上集成数字显示接口。基于这种现状,当前LCD图像引擎芯片也就存在基于模拟到接口和数字接口两种类型[3]。两类芯片尽管实现基本功能一致,但是由于标准的不同,结构存在较大差异。采用模拟接口方式时,图像信号处理流程是:显卡首先将数字图像信号变为模拟信号(DAC),然后由电缆送到显示器上,显示器再将模拟信号变为数字信号(ADC),最后经过图像放处理后进行图像显示[4]。这样,信号经由DAC,ADC到最后的信号输出实际上是一个多余循环过程,这个循坏没有任何积极的意义,相反还引入了三个信号失真源:DAC、电缆、ADC,最终影响了图像的输出效果。采用数字接口方式则去掉了这些不必要的环节,直接输出数字视频信号,经图像缩放处理后,就可以直接送到显示器进行显示,图像的输出效果毫无疑问会优于前一种模式。数字接口取代模拟接口是大势所趋,考虑到数模接口兼容,目前很多厂商在同一芯片上不仅提供数字接口,而且提供模拟接口[5]。进入大尺寸LCD图像引擎IC的门槛较LCD驱动IC要高,涉及专利问题较多,由目前主要Genesis、PHILIPS、NS(NationalSemiconductor),ST(STMicroelectronics)等国际大厂控制[6]。在庞大市场需求的强力吸引下,中国台湾陆续有数十家IC设厂投入到LCD显示相关芯片领域。台湾地区厂商晨星(Mstar)、凌泰(Averlogic)、兆宏(Magicpixel)、联咏(Novatek)、瑞昱(Realtek)、晶磊(Smartasic)、创品(Trumpion)、凌越(Topro)、世纪民生(Mysoncentury)、晶捷科技(MRT)等厂家在LCD图像引擎芯片市场也取得了一定份额。目前我国IC设计公司数量已经突破400家大关,但在LCD图像引擎芯片的研发上[7],内地IC设计公司参与者却寥寥无几。目前仅有成都威斯达在进行这方面的研发和设计,其面向LCDTV的主打方案WS1115、WSC2100也已经得到了成功的应用。LCD显示屏的发展主要有如下几个趋势:1)实现分离式图像引擎IC到初期较低程度整合,再到高集成度整合的转变。2)LCD图像引擎数字接口将取代模拟接口。3)低摆幅差分信号RSDS逐步导入控制板的输出介面[8]。4)在控制IC中为家庭中的PC、DVD、TVCable、PS2、xBox等影音数据源提供更加广阔的匹配接口,使大尺寸LCD显示器功能更加多样化。5)LCD面板开始步入10bits,因此支持10bits的LCD像引擎也将成为标准要求,同时宽屏LCD显示器成为了消费者的新宠。总而言之,LCD显示器正朝着更多的输出、更快的速度、更高的品质(考虑电磁兼容等方面的设计加入)、更低的功耗等方向快速发展[9]。2硬件设计2.1系统的总体设计本次设计是通过在STM32进行软件编程来控制LCD液晶显示屏的显示设计。它的整体思想是系统电源部分可以使用5V电源端口供电,再通过3.3V稳压芯片得到单片机与LCD显示模块所需电源。单片机采用STM32系列的STM32F103VET6,采用LCD液晶显示模块作为系统的显示部分。通信接口电路主要是由芯片PL2303构成,它的功能主要是将电脑的USB接口转换为串口,同时还将PC的逻辑电平转换为与单片机系统相同的CMOS电平,方便程序的烧写以及与上位机的通信。系统结构框图如图2.1所示。STM32F103复位电路STM32F103复位电路SD卡读取模块晶振电路晶振电路LCD显示模块LCD显示模块电源电路电源电路图2-1系统结构图2.1.1STM32的主控模块STM32是整个LCD显示设计的核心部分。这是一个具有较高性能而又经济的单片机。本设计选用属于STM32系列的STM32F103VET6作为控制电路的核心部件,该单片机属于ST意法半导体公司生产的32位高性能、低成本、低功耗的增强型系列单片机,它的内核采用的是ARM公司最新研发的CortexTM-M3架构,该内核是专门设计于满足用户对高性能、低功耗和经济实用的要求。ARM

Cortex-M3处理器的架构在系统结构上的增强,最高36MHz工作频率,在存储器的0等待周期访问时可达1.25DMips/MHz(Dhrystone2.1),它使得STM32增强型系列单片机受益无穷,其采用的THUMB-2指令集使得其指令效率更高,而且性能更强。

STM32F103ZET6采用薄型四方扁平式封装技术(LQFP)具有100管脚,片内具有8M的SPIFLASH,64KB的RAM(片上集成12Bit

A/D、D/A、PWM、CAN、USB、安全数字输入输出卡SDIO、可变静态存储控制器FSMC等资源)。1个串行外设接口(SPI)总线控制的M25P16(16MB容量的串行FLASH),用于存储数据、代码、字库及图相等。1个3.2寸240*320分辨率触摸屏,利用MCU的FSMC的16位数据接口模式,触摸屏采用ADS7843(4线电阻触摸屏转换接口芯片)芯片用硬SPI接口控制。STM32单片机采用2.0~3.6V的供电电压,可以工作在-40℃~85℃的温度范围内,其最高的工作频率是72MHz,其最小电路如图2-2所示,其资源图如图2-3所示。图2-232F103VET6的最小系统图2-3硬件资源描述图2.1.2电源模块STM32单片机由AMS1117-3.3芯片电路供电,输入+5V,提供3.3V的固定电压输出,为了降低电磁干扰,需要经C1-C3滤波后再为CPU供电,R38为DGND与AGND的连接电阻,电源电路如图2-4所示。图2-4电源电路2.1.3复位电路模块复位电路对单片机系统非常重要。复位电路有几点要求,其一,上电时有足够的有效复位电平时间,以便CPU在晶振起振达到稳态后可靠复位;其二,系统断电后,复位端能快速放电,以便使系统在连续快速开关时能可靠复位。本电路中,要复位只需要在接高电平持续2us就可以实现。在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。图2-5复位电路2.1.4晶振电路有源晶振是一个完整的谐振振荡器,它是利用石英晶体的压电效应来起振,所以有源晶振需要供电,当我们把有源晶振电路做好后,不需要外接其它器件,只要给它供电,它就可以主动产生振荡频率,并且可以提供高精度的频率基准,信号质量也比无源信号要好。有源晶振通常有4个引脚,VCC,GND,晶振输出引脚和一个使能引脚。电路只需要接到单片机的晶振的输入引脚上,输出引脚上不需要接。图2-6晶振电路2.1.5SD卡读取模块SD卡的数据写入、读取的最小单位是块,每块的大小为512字节。见图19-4,为多个数据块的写入过程。首先软件通过SDIO接口的CMD信号线发送多块写入的命令,接收到正常的响应后,要写入的数据线从4根DAT信号线传输出去,每块结束后是CRC校验码。接着要检测忙状态,数据传输到SD卡后,SD卡启动内部时序保存数据,这时SD卡会把DAT0信号线拉低,表示处于“忙”状态,忙状态结束后,主机才能发送下一个数据块的数据。图2-7STM32的SDIO接口2.2LCD控制器LCD,即液晶显示器,因为其功耗低、体积小,承载的信息量大,因而被广泛用于信息输出、与用户进行交互,目前仍是各种电子显示设备的主流。因为STM32内部没有集成专用的液晶屏和触摸屏的控制接口,所以在显示面板中应自带含有这些驱动芯片的驱动电路(液晶屏和触摸屏的驱动电路是独立的),STM32芯片通过驱动芯片来控制液晶屏和触摸屏。本系统使用的STM32有3.2寸液晶屏(240*320),它使用ILI9341芯片控制液晶屏,通过XPT2046芯片控制触摸屏。2.2.1ILI9341控制器结构液晶屏的控制芯片内部结构非常复杂,见图2-8。最主要的是位于中间GRAM,可以理解为显存。GRAM中每个存储单元都对应着液晶面板的一个像素点。它右侧的各种模块共同作用把GRAM存储单元的数据转化成液晶面板的控制信号,使像素点呈现特定的颜色,而像素点组合起来则成为一幅完整的图像。框图的左上角为ILI9341的主要控制信号线和配置引脚,根据其不同状态设置可使芯片工作在不同的模式,如每个像素点的位数是6、16还是18位;使用SPI接口还是8080接口与MCU进行通讯;使用8080接口的哪种模式。MUC通过SPI或8080接口与ILI9341进行通讯,从而访问它的控制寄存器、地址计数器及GRAM。在GRAM的左侧还有一个LED控制器。LCD为非发光性的显示装置,它需要借助背光源才能达到显示功能,LED控制器就是用来控制它的背光源。图2-8ILI9341控制器内部框图2.2.2像素点的数据格式图像数据的像素点由红(R)、绿(G)、蓝(B)三原色组成,三原色根据其深浅程度被分为0~255个级别,它们按不同比例的混合可以得出各种色彩。如R:255,G255,B255混合后为白色。根据描述像素点数据的长度,主要分为8、16、24及32位。如以8位来描述的像素点可表示28=256色,16位描述的为216=65536色,称为真彩色,也称为64K色。实际上受人眼对颜色的识别能力的限制,16位色与12位色已经难以分辨了。ILI9341最高能够控制18位的LCD,但为了数据传输简便,这里采用的是它的16位控制模式,以16位描述的像素点。按照标准格式,16位的像素点的三原色描述的位数为R:G:B=5:6:5,描述绿色的位数较多是因为人眼对绿色更为敏感。16位的像素点格式见表2.116位像素点格式。表2.116位像素点格式图中的是默认18条数据线时,像素点三原色的分配状况,D1~D5为蓝色,D6~D11为绿色,D13~D17为红色。这样分配有D0和D12位是无效的。若使用16根数据线传送像素点的数据,则D0~D4为蓝色,D5~D10为绿色,D11~D15为红色,使得刚好使用完整的16位。RGB比例为5:6:5是一个十分通用的颜色标准,在GRAM相应的地址中填入该颜色的编码,即可控制LCD输出该颜色的像素点。如黑色的编码为0x0000,白色的编码为0xffff,红色为0xf800。2.2.3ILI9341的通讯时序目前,大多数的液晶控制器都使用8080或6800接口与MCU进行通讯,它们的时序十分相似,本单片机以ILI9341使用的8080通讯时序进行分析,实际上ILI9341也可以使用SPI接口来控制。ILI9341的8080接口有5条基本的控制信号线:(1)用于片选的CSX信号线;(2)用于写使能的WRX信号线;(3)用于读使能的RDX信号线;(4)用于区分数据和命令的D/CX信号线;(5)用于复位的RESX信号线。其中带X的表示低电平有效。除了控制信号,还有数据信号线,它的数目不定,可根据ILI9341框图中的IM[3:0]来设定,这部分一般由制作液晶屏的厂家完成。为便于传输像素点数据,野火使用的液晶屏设定为16条数据线D[15:0]。使用8080接口的写命令时序图见图2-9。图2-9使用18条数据线的8080接口写命令时序由图可知,写命令时序由CSX信号线拉低开始,D/CX信号线也置低电平表示写入的是命令地址(可理解为命令编码,如软件复位命令:0x01),以WRX信号线为低,RDX信号为高表示数据传输方向为写入,同时,在数据线[17:0]输出命令地址,在第二个传输阶段传送的为命令的参数,所以D/CX要置高电平,表示写入的是命令数据。当我们需要向GRAM写入数据的时候,把CSX信号线拉低后,把D/CX信号线置为高电平,这时由D[17:0]传输的数据则会被ILI9341保存至它的GRAM中。

3软件设计3.1字模提取方法3.1.1字模液晶屏是一个由像素点组成的点阵,若要显示文字,则需要很多像素点的共同构成。见图3-1,图中是两个由16*16的点阵显示的两个汉字。图3-1字模如果规定:每个汉字都由这样16*16的点阵来显示,把笔迹经过的像素点以“1”表示,没有笔迹的点以“0”表示,每个像素点的状态以一个二进制位来记录,用16*16/8=32个字节就可以把这个字记录下来。这32个字节数据就称为该文字的字模,还有其它常用字模是24*24、32*32的。在这样的字模中,以两个字节表示一行像素点,16行构成一个字模。如果使用LCD的画点函数,按位来扫描这些字模数据,把为1的位以黑色来显示(也可以使用其它颜色),即可把整个点阵还原出来,显示在液晶屏上。3.1.2制作字模本文采用“字模Ⅲ-增强版v3.91”字模软件来制作中文字库。步骤如下:1、打开字模软件2、点击“批量生成字库”按钮选项3、点击选项“文本文件”,在打开的界面里选择“GB2132.txt”。如图3-5、图3-6所示。此时在“输入批量字符框”里会列出二级汉字的所有汉字,其中共收录了6768个汉字字符。4、点击“字库智能生成”,弹出“字库批量参数确认”对话框。我们在“源字体”选项里面做如下设置,字模宽度和高度都选择16,因为要放在SD卡中,所以选择BIN文件格式。5、点击“开始转换进程”,就会在软件安装目录下会生成Font.dat文件。将生成的汉字字库拷贝到SD卡根目录下并重命名为“HZLIB.bin”。把该文件保存到SD卡中,STM32芯片通过文件系统读取文件即可获得字库的数据。3.2显示中英文及BMP图片系统的流程图如图3-3所示,先将LCD的引脚和寄存器初始化;再向ILI19431写入命令和数据;配置FSMC;再设置ILI9431的GRAM的扫描方向:左上角>右下角为显示中英文的采用的模式,右下角>左上角为显示摄像头图像,右上角>左下角为显示BMP图片;对ILI9431显示器进行设置,读取ILI9431的像素数据;在ILI9431显示器上画出一个矩形;在ILI9431显示器上显示英文、中文字符和BMP图片。图3-3系统流程图3.2.1配置工程环境本实验需要制作字库,其文件名为:HZLIB.bin,三个BMP图片文件,文件名为:pic1.bmp、pic2.bmp、pic3.bmp,把这四个文件保存到SD卡中,再把该SD卡插入开发板的SD卡接口。本实验中要把旧文件:systick.c、usart1.c、lcd.c、ff.c、sdio_sdcard.c、lcd_botton.c文件添加进新工程,新建Sd_bmp.c、sd_fs_app.c文件,分别用于编写BMP文件相关的函数和字模获取函数。3.2.2main文件显示中英文字符和BMP图片用了两个函数,所以在这里放置了两个main函数。显示汉字的main函数它调用了很多函数,主要是将SD卡的读取接口和LCD初始化,再调用扫描和读取的函数,并设置了要显示的中英文。同样的,显示BMP图片的main函数也调用了一些函数用于显示BMP图。//显示汉字的main函数intmain(void){ Sd_fs_init();//初始化SDIO LCD_Init();//LCD初始化 ILI9341_GramScan(1);//设定(坐标轴)扫描方向 ILI9341_Clear(0,0,240,320,macBLACK);ILI9341_DispString_EN(5,5,"Iamqq",macBLACK,macRED); ILI9341_DispString_EN(5,25,"myxuehaois2",macBLACK,macRED) ILI9341_DispString_CH(50,57,"XX大学",macBLACK,macRED);ILI9341_DispString_EN_CH(30,90,"Welcometouse野火ISOStm32开发板bigo",macBLACK,macRED); while(1); }//显示图片的main函数intmain(void){ Sd_fs_init();//初始化SDIO LCD_Init();//LCD初始化 Lcd_show_bmp(10,10,"/pic1.bmp"); //显示BMP图片 Lcd_show_bmp(10,100,"/pic2.bmp"); while(1); }3.2.3显示中英文的主要代码ILI9341_DispString_EN_CH()函数的作用主要为在ILI9341显示器上显示中英文字符串,在得到特定扫描方向下字符串的起始X、Y坐标后进行对像素数据的读取,然后设置字符串的背景色、前景色,将字符显示出来。/***@brief在ILI9341显示器上显示中英文字符串*@paramusX:在特定扫描方向下字符串的起始X坐标*@paramusY:在特定扫描方向下字符串的起始Y坐标*@parampStr:要显示的字符串的首地址*@paramusColor_Background:选择字符串的背景色*@paramusColor_Background:选择字符串的前景色*@retval无*/voidILI9341_DispString_EN_CH(uint16_tusX,uint16_tusY,constuint8_t*pStr,uint16_tusColor_Background,uint16_tusColor_Foreground){ uint16_tusCh; while(*pStr!='\0') { if(*pStr<=126) //英文字符 { if((usX-macILI9341_DispWindow_X_Star+macWIDTH_EN_CHAR)>macILI9341_DispWindow_COLUMN) { usX=macILI9341_DispWindow_X_Star; usY+=macHEIGHT_EN_CHAR; } if((usY-macILI9341_DispWindow_Y_Star+macHEIGHT_EN_CHAR)>macILI9341_DispWindow_PAGE) { usX=macILI9341_DispWindow_X_Star; usY=macILI9341_DispWindow_Y_Star; } ILI9341_DispChar_EN(usX,usY,*pStr,usColor_Background,usColor_Foreground); usX+=macWIDTH_EN_CHAR; pStr++; } else //汉字字符 { if((usX-macILI9341_DispWindow_X_Star+macWIDTH_CH_CHAR)>macILI9341_DispWindow_COLUMN) { usX=macILI9341_DispWindow_X_Star; usY+=macHEIGHT_CH_CHAR; } if((usY-macILI9341_DispWindow_Y_Star+macHEIGHT_CH_CHAR)>macILI9341_DispWindow_PAGE) { usX=macILI9341_DispWindow_X_Star; usY=macILI9341_DispWindow_Y_Star; } usCh=*(uint16_t*)pStr; usCh=(usCh<<8)+(usCh>>8); ILI9341_DispChar_CH(usX,usY,usCh,usColor_Background,usColor_Foreground); usX+=macWIDTH_CH_CHAR; pStr+=2;//一个汉字两个字节}}}3.2.4显示BMP图片的主要代码该函数的主要工作流程是:读取头部信息确定宽度和高度并确定每一行后面具体需要读出的字节数(保证是4字节的倍数);读取一行像素点并显示;读取下一行并显示,直至读完所有行。/***@brief设置ILI9341的截取BMP图片*@paramx:在扫描模式1下截取区域的起点X坐标*@paramy:在扫描模式1下截取区域的起点Y坐标*@parampic_name:BMP存放的全路径*@retval无*/voidLcd_show_bmp(uint16_tx,uint16_ty,uint8_t*pic_name){ inti,j,k; intwidth,height,l_width; BYTEred,green,blue; BITMAPFILEHEADERbitHead; BITMAPINFOHEADERbitInfoHead; WORDfileType; unsignedintread_num; unsignedchartmp_name[20]; sprintf((char*)tmp_name,"0:%s",pic_name); f_mount(0,&bmpfs[0]); BMP_DEBUG_PRINTF("filemountok\r\n"); bmpres=f_open(&bmpfsrc,(char*)tmp_name,FA_OPEN_EXISTING|FA_READ); /**/ if(bmpres==FR_OK) { BMP_DEBUG_PRINTF("Openfilesuccess\r\n"); /*读取文件头信息两个字节*/ f_read(&bmpfsrc,&fileType,sizeof(WORD),&read_num); /*判断是不是BMP文件“BM”*/ if(fileType!=0x4d42) { BMP_DEBUG_PRINTF("fileisnot.bmpfile!\r\n"); return; } else { BMP_DEBUG_PRINTF("Okthisis.bmpfile\r\n"); } /*读取BMP文件头信息*/ f_read(&bmpfsrc,&bitHead,sizeof(tagBITMAPFILEHEADER),&read_num); showBmpHead(&bitHead); /*读取位图信息头信息*/ f_read(&bmpfsrc,&bitInfoHead,sizeof(BITMAPINFOHEADER),&read_num); showBmpInforHead(&bitInfoHead); } else { BMP_DEBUG_PRINTF("fileopenfail!\r\n"); return; }/**/ width=bitInfoHead.biWidth; height=bitInfoHead.biHeight; /*计算位图的实际宽度并确保它为32的倍数*/ l_width=WIDTHBYTES(width*bitInfoHead.biBitCount); if(l_width>960) { BMP_DEBUG_PRINTF("\nSORRY,PICISTOOBIG(<=320)\n"); return; } /*设置LCDGram扫描方向为:右下角->左上角*/ ILI9341_GramScan(1); /*开一个图片大小的窗口*/ ILI9341_OpenWindow(x,y,width,height); ILI9341_Write_Cmd(macCMD_SetPixel); /*判断是否是24bit真彩色图*/ if(bitInfoHead.biBitCount>=24) { for(i=0;i<height;i++) {f_lseek(&bmpfsrc,bitHead.bfOffBits+(height-i-1)*l_width); /*读取一行bmp的数据到数组pColorData里*/ #if0 for(j=0;j<l_width;j++) {f_read(&bmpfsrc,pColorData+j,1,&read_num);} #elif0 f_read(&bmpfsrc,pColorData,l_width/2,&read_num); f_read(&bmpfsrc,pColorData+l_width/2,l_width/2,&read_num); #else f_read(&bmpfsrc,pColorData,l_width,&read_num); #endif for(j=0;j<width;j++) //一行有效信息 { k=j*3; //一行中第k个像素的起点 red=pColorData[k+2]; green=pColorData[k+1]; blue= pColorData[k]; ILI9341_Write_Data(RGB24TORGB16(red,green,blue));//写入LCD-GRAM } } } else {BMP_DEBUG_PRINTF("SORRY,THISPICISNOTA24BITSREALCOLOR"); return; } f_close(&bmpfsrc); }

4系统调试在SD卡中放入HZLIB.bin的字模文件和两个BMP图片pic1.bmp、pic2.bmp,再把该SD卡插入开发板的SD卡接口,然后将野火STM32开发板供电(DC5V),插上JLINK,插上串口线(两头都是母的交叉线),接上液晶屏,将编译好的程序下载到开发板。调试过程中主要出现的问题有:1、如果SD卡中的字模文件出现错误或是没有读取到SD卡的文件,则会出现中文乱码或是图片不显示的问题。2、如果程序出现错误会导致LCD屏无法打开或是产生黑屏的现象,程序与开发板不兼容也会产生同样的现象。最后在不断的调试和改进下,LCD能够根据给出的指令正常显示中、英文字符以及BMP图片,实验现象如图4-1和图4-2所示。 图4-1LCD显示中英文字符 图4-2LCD显示BMP图片

5结论本文通过研究LCD显示屏的显示特点与原理、与STM32单片机的件连接和软件编程,以及字模提取方法和中间退到的问题的解决技术等,得到了以下结论:1.LCD可分为段式LCD、字符式LCD和点阵式LCD。其中段位式LCD和字符式LCD只能用于字符和数字的简易显示,而不能够满足图形曲线和汉字显示的要求;而点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线和汉字,并且可以实现屏幕上下左右滚动,动画功能,分区开窗口,反转,闪烁等功能。2.ILI9341液晶显示模组上提供了液晶显示器的接口及其所需的复位电路等,并把对液晶模组的操作接口引出,方便用户使用;此外还提供有背光、电源指示灯。3.“字模Ⅲ-增强版v3.91”字模软件是针对STM32F103的字模数据提取工具.用户可以利用此工具提取汉字字模BMP位图字模,还可以很方便地提取ASCII码字模。用户还可以利用此工具对所要取的汉字、位图等进行辑;生成的字模数据用以Word(字型〕数据为基本单元,并以数组形式保存;字模数据导出时,可以导出一个.C文件和一个.h的头文件,用户可以直接把这个文件加载到用户的工程中,供汉字显示位图显示使用。综上所述,本设计的硬件部分及软件部分都基本符合所要设计的要求。基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单片机的一体化智能差示扫描量热仪系统研究基于TCP/IP协议的单片机与Internet互联的研究与实现变频调速液压电梯单片机控制器的研究基于单片机γ-免疫计数器自动换样功能的研究与实现基于单片机的倒立摆控制系统设计与实现单片机嵌入式以太网

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论