范文基于单片机的电子书设计 - 图文

更新时间:2024-07-08 03:27:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

毕业论文(设计)

题 目 基于单片机的电子书设计

学生姓名 倪其玲 学 号 20081305041

院 系 电子与信息工程

专 业 电子信息工程

指导教师 单慧琳

二O一二 年 五 月 二十五 日

目 录

1引言........................................................................................................................1 2方案论证................................................................................................................2 3硬件电路设计.........................................................................................................3 3.1总体电路设计...................................................................................................4 3.2单片机最小系统...............................................................................................4 3.2.1电源电路.....................................................................................................4 3.2.2复位电路.....................................................................................................5 3.2.3时钟振荡电路.............................................................................................5 3.3 SD存储系统.....................................................................................................5 3.3.1电平转换.....................................................................................................6 3.3.2 SD卡通讯模式选择...................................................................................7 3.4 TFT-LCD液晶显示系统..................................................................................9 3.5按键控制系统...................................................................................................9 4元器件介绍..........................................................................................................10

4.1 STC89C52RD+...............................................................................................10 4.1.1功能特性...................................................................................................10 4.1.2 STC89C52RD+单片机的标准工作模式..................................................11 4.1.3引脚说明...................................................................................................11 4.1.4内部原理图...............................................................................................13 4.1.5存储器.......................................................................................................13 4.1.6定时器/计数器..........................................................................................14 4.2SD卡...............................................................................................................15 4.2.1功能特性...................................................................................................15 4.2.2引脚说明...................................................................................................16 4.2.3内部原理图...............................................................................................17 4.3TFT-LCD液晶显示屏.....................................................................................18 4.3.1液晶显示屏的基本原理...........................................................................18 4.3.2TFT-LCD液晶显示屏基本结构................................................................18 4.4AMS1117.........................................................................................................19

4.4.1功能特性...................................................................................................19 4.4.2内部原理图...............................................................................................19 4.4.3引脚说明...................................................................................................20 5软件设计..............................................................................................................21 5.1总体设计........................................................................................................21 5.1主函数模块.....................................................................................................21 5.2存储模块........................................................................................................22 5.2.1SD.c...........................................................................................................22 5.2.2FAT32.c......................................................................................................24 5.3显示模块........................................................................................................27 5.3.1LCD.c.........................................................................................................27 5.3.2show.c.........................................................................................................28 6结束语..................................................................................................................32 参考文献.................................................................................................................32 致谢.........................................................................................................................33

基于单片机的电子书设计

倪其玲

南京信息工程大学电子信息工程系,南京210044

摘要:论文详细介绍了一款电子书的设计和开发过程。本系统采用STC89C52单片机控制实现电子书图片、文字的存

储、显示功能。硬件上分析了电子书阅读器的结构、各模块的设计方案以及电路实现,软件上重点介绍了通过51单片机实现FAT32文件系统上的SD卡信息读取、TFT-LCD液晶的文本显示。最后,对所设计的电子书阅读器的硬件和软件部分进行了仿真调试,结果验证了本文所研究的基于51单片机的电子书设计的正确性,满足设计目标要求。 关键词:STC89C52;SD卡;TFT-LCD;电子书

1引言

数字阅读是近几年兴起的新型阅读形式,随着网络技术的发展、人类阅读方式的转变日益兴盛。电子书的出现革新了图书信息的承载方式以及阅读方式。阅读方式的这种转变极大地促进了整个图书制造业和出版行业的转型。数字出版的发展虽起步较晚,但发展极为迅速,并日趋完善,当然目前仍然存在着一定的问题。在这种转变的过程当中,越来越多的出版、图书、IT业者将焦点放在电子书产业。目前,电子阅读的迅速发展也为整个世界带来了新一轮的阅读热潮,使数字阅读加快了前进的步伐。移动数字阅读的队伍在迅速持续扩大之中,特别是近几年电子书阅读器崭露头角以来,这一产业吸引了越来越多的竞争者入驻市场。

电子书,即电子阅读器,是以电子数据内容为流通介质的一种崭新的信息载体,是一种新兴产物。电子书经历了三个重要的发展阶段:第一个阶段[1]是采用login 授权的方法,远程登录到存放电子书资源的服务器去取阅;第二个阶段[1]是应用各种阅读器软件,将符合相关格式要求的电子书资源下载到PC上,用专门的阅读器软件来看。这种下载到PC的电子书,能够保持原书的排版和色彩,又能够限制复制和打印,深受图书作者和出版社的欢迎。但是这些阅读器软件之间不能相互兼容,另外,阅读者无法脱离PC机进行阅读,很不方便;第三个阶段[1]才是我们现在使用的真正意义上的“电子书”,它是一个普通书本大小的独立的电子图书阅读器硬件,可从网上下载电子书资源进行阅读 [1]。

电子书是一种新兴的科技产物,相对于传统的出版类书籍,它具有无法比拟的优越性[1]:经济,虽然目前电子书的单位价格不低,但其存储容量极大,平均到每本书籍的价格极低;实用,一本电子书只有几百克重,相当于一本薄薄小书的重量,便于携带,减轻出行负担;节能,可多次循环使用,勿需印刷,节约纸张,保护森林资源,节省油墨、保护水资源;环保,不会产生造纸、印刷、运输等过程中产生的环境污染;降低了出版门槛[2],更多的人可以通过网络渠道自行出版和发行书籍;充分挖掘现存纸书价值,进行二次开发,增加电子图书这一新品种,尤其对于存有电子文档的图书,稍加格式转换即成电子书籍;书籍内容的更正、修订、改版等易如反掌。

1

2方案论证

方案一 基于DSP的电子书设计

该系统由CIS图像扫描传感器、FPGA逻辑电路实现单元、外部存储器、液晶显示器、键盘控制、中央处理器DSP组成,其原理框图如图1所示。

图1基于DSP的电子书的原理框图

方案二 基于ARM的电子书设计

该系统由SD存储、上位机、键盘控制、ARM单片机最小系统组成,上位机可上传数据,单片机将数据存储到SD卡中,通过键盘可查询SD卡中内容,并显示在液晶显示屏上,其原理框图如图2所示。

图2基于ARM的电子书的原理框图

方案三 基于51单片机的电子书设计

该系统由SD存储、键盘控制、51单片机最小系统组成,其原理框图如图3所示。

2

图3基于51单片机的电子书的原理框图

DSP,ARM,51单片机本质上都是控制类芯片,都是嵌入式系统的核心芯片的类型选择,现在的嵌入式系统都是高度面向对象的,即要求所选用芯片与项目规模和对效率的要求相符合,并结合制作成本综合考虑。

DSP是一款独特的微处理器,有着自己完整的指令系统,是以数字信号来处理大量信息的器件。它不仅具有在线可编程的特性,而且具有远超过普通微处理器的速度,每秒可实时运行千万条复杂的指令程序。它的最值得称道的两大特色是强大的数据处理能力和高运行速度。由于采用软件编程,灵活高效,运算能力强,运行速度快,体积小,因此可以为各种复杂计算的应用提供一款高效处理器。不过,相比较于普通微处理器,该款芯片的其他模块功能就相对较弱些。电子书阅读器对数据处理能力和运行速度的要求较低,无法发挥DSP的对于高速离散量的数据处理的优势。

ARM是由微处理器届的一家知名公司面向低预算市场设计生产制造的高性能、低价格、低耗能的RISC处理器,并配有相关技术支持及软件。ARM基本上算是32位单片机的行业标准,它提供一系列内核、体系扩展方案、微处理器和系统芯片方案,这四个功能模块可供生产厂家根据不同客户群的不同要求来配置生产。所有的产品统一采用一个通用软件体系,所以同一款软件可在所有的产品中运行,兼容性较好。本文旨在设计一款具有阅读功能的简单的电子书阅读器,使用ARM会造成其较多通用功能的浪费。

51系列单片机[3]是迄今应用最为广泛的八位单片机,由于产品硬件结构合理,指令系统规范,加之生产历史“悠久”,有先入为主的优势。目前世界上非常多著名的芯片公司都购买了51系列芯片的核心专利技术,并在其原有的基础上进行了功能上的扩充,使得该系列芯片功能上得到进一步的加强,形成了一个庞大的应用体系,直到现在仍在不断改进和发展。51单片机位处理器和双重功能的地址区间都给使用者提供了极大的方便。51单片机的结构功能以及运算速度符合本设计的功能要求,并且它成本低廉,经济方面亦符合要求[3]。

通过功能资源有效利用和控制成本等各方面比较,最终选择方案三。

由于SD卡上的数据是以数据块(512B)的方式进行存储,也就是扇区存储,所以需要单片机在进行SD卡的读取操作时需要提供大于512B的可用RAM,以供缓冲使用,故选择STC89C52RD+(后缀RD+表明扩展RAM是1024字节,RC表明扩展RAM256字节)。

3硬件电路设计

3

3.1总体电路设计

本系统是基于STC89C52单片机控制器的电子书设计,要实现文字和图片的显示功能,选用SD卡作为文字、图片的存储器,TFT型液晶显示器完成输出显示功能。

系统总的原理框图如图3所示。本系统主要包括STC89C52单片机最小系统、SD存储系统、TFT-LCD液晶显示系统、按键控制系统四个部分。系统在单片机最小系统的控制下,从SD存储系统读取图片或文字信息,并将这些信息发送到TFT-LCD液晶显示系统进行输出显示。系统工作过程中,可以通过按键控制实现向前翻页和向后翻页的功能。系统总的原理图见附录。

3.2单片机最小系统

STC89C52单片机最小系统原理图如图4所示。

图4 单片机最小系统电路图

3.2.1电源电路

4

电源电路如图5所示,该电路为单片机工作提供稳定的5V电压,其中连接一个0.01u的铝电解电容和10u的瓷片电容起到了滤波作用,若在电路中没有加滤波电容,将会使得系统不稳定。

图5 电源电路图

3.2.2复位电路

复位电路如图6所示,复位是单片机的初始化操作,其主要功能是使单片机进入系统。除了正常初始化外,当单片机运行遇到困境,比如由于操作错误、程序运行出错导致系统处于死锁状态时,也需要按复位键初始化。按下复位键时,RST脚输入高电平,若高电平持续2us以上便可以成功复位。

图6 复位电路图

3.2.3时钟振荡电路

STC89C52内部集成有一个高增益反相放大器,用于构成振荡器,如图7所示,引脚18和19分别是此放大器的输入端口和输出端口。时钟有内部和外部两种产生方式。本系统时钟信号由11.0592MHz的内部晶体振荡器产生。两个30pf的电容起到微调频率的作用,当系统启动后,便产生1us机器周期信号。

图7 时钟振荡电路图

3.3 SD存储系统

5

本系统选用的存储系统是SD卡,其外部电路和电平转换电路如下图所示。SD卡的工作电压是3.3V,不能与5V的单片机直接相连,所以在SD卡和单片机之间连接电平转换电路,使单片机的5V电压信号降为3.3V输到SD卡数据接口(SCK、DIN、CS),使SD卡可以安全使用。SD卡上DOUT接口是数据输出口,输出电平信息到单片机,不用担心烧坏器件,从制作成本考虑,直接用导线与单片机相连。

(a)

(b)

图8 SD存储系统电路图

3.3.1电平转换

SD引脚与单片机STC89C52的I/O口不能直接相连,因为SD卡的逻辑电平相当于3.3V TTL电平标准,而控制芯片STC89C52的逻辑电平为5V COMS电平标准,直接相连会有烧坏SD卡的可能。因此,必须进行电平转换。

要解决电平匹配的问题,最根本的就是解决逻辑器件接口的电平兼容问题,有两条主要原则[4]:输出电平接口输出高电平的最小电压值,应该大于接受电平接口识别为高电平的最小电压值;输出电平接口输出低电平的最大电压值,应该小于接受电平接口识别为低电平的最大电压值,如图9所示。

6

图9 电平兼容说明

通常来说,电平转换会采用类似SN74ALVC4245[4]的专用芯片,该类芯片可实现升压、降压功能,并且可允许两边电源不同步。但是,这种专用芯片一般都是同时转换8路、16路或者更多的电平,且代价相对昂贵,本系统仅仅需要转换3路电平(Dout是数据输出,刚好满足电平兼容原则,可勿需电平转换,直接相连),使用专用芯片会造成极大的资源浪费,导致系统制作成本的提高。

考虑SD卡在SPI通讯模式下,单向通讯,可采用AMS1117,它可固定输出3.3V电压,且满足电平转换兼容原则。为确保AMS1117的稳定性,在输入和输出部分各连接一个小电容,其基本电路如图9(b)。

3.3.2 SD卡通讯模式选择

3.3.2.1 SD模式

在SD模式通讯模式下,CPU使用SD总线访问SD卡,其拓扑结构如图10所示。

图10 SD存储(SD模式)的总线拓扑结构

SD总线上的信号线的详细功能描述如表1所示。

7

表1 SD总线信号线功能描述

3.3.2.2SPI模式

在SPI通讯模式模式下,SPI总线以字节为单位进行数据的传输,所有数据令牌都是字节(8位)的整数倍,而且字节需要与CS片选信号对齐。其拓扑结构如图11所示。

图11 SD存储(SPI模式)的总线拓扑结构

SD卡的SPI接口兼容绝大多数控制器的SPI接口。卡的SPI总线的信号线如表2所示。

表2 SD卡的SPI接口描述

3.3.2.3模式选择

SD卡有两种可供选择的通讯协议[4]:SD模式和SPI模式。SD模式是SD卡的标准读写方式,但是SD模式需要与之相连的MCU带有SD卡控制器接口,否则必须额外加入控制SD卡的单元以支持SD卡的读写功能。然而,STC89C52单片机本身没有集成SD卡控制器接口,若选用SD模式通讯就必须额外加入控制SD卡的单元,势必会增加产品的硬件成本。在SD卡数据读写对时间的要求不是很精确的时候,选用

8

SPI模式不需要SD控制器,且使用我们比较熟悉的同步串行传输方式,通过SPI总线控制集成在SD卡内部的控制器来驱动flash和内部ROM模块,仅需四条线就能完成对SD卡的数据读写、命令发送与相应命令的返回,而且目前市场上很多MCU都集成有现成的SPI接口电路,操作相对简单,是一种比较方便实用的解决方案。采用SPI模式对SD卡进行读写操作可大大简化硬件电路的设计,降低硬件设计成本。

虽然STC89C52不带SD卡硬件控制器,也没有现成的SPI接口模块,但是可以用软件模拟出SPI总线时序。本文用SPI总线模式读写SD卡。

3.4 TFT-LCD液晶显示系统

由于本系统为电子书阅读器设计,因此液晶显示器要求显示较多信息,所以,本设计采用了320*240的TFT-LCD液晶显示屏进行显示。液晶驱动控制器以及背光升压电路集成在模块内部,图12为液晶显示系统电路,图的左边为液晶显示模块的接口电路,其中滑动变阻器可实现LED屏亮度调节,右边为液晶模块。

图12 TFT-LCD液晶显示电路

TFT液晶模块引脚中,DB0~DB7是八位数据传输端口;CS片选信号;WR是写入使能;RS是指令\\数据选择信号;RESET复位信号;NC为空脚。电路工作时,TFT-LCD模块的1脚与液晶接口的3脚对应,模块2脚与接口4脚对应,依次顺次,将TFT-LCD液晶模块插入接口槽中(接口槽的1脚、2脚空着)。

3.5按键控制系统

由于按键控制不需要太多的键,因此采用独立按键的形式,按键按下,单片机对应I/O口置低电平。整个按键控制部分使用两个独立按键,分别实现上翻和下翻功能,以实现SD卡的数据显示控制,其电路图如图13所示。

9

图13 按键控制电路

4元器件介绍

4.1 STC89C52RD+

4.1.1功能特性

STC89C52RD+单片机[5]是宏晶科技推出的新一代高速、低功耗、超强抗干扰的单片机,指令代码完全兼容传统8051单片机,1个时钟/机器周期,可用低频晶振,大幅降低EMI,采用增强型8051内核,速度比普通8051更快速。STC89C52 单片机是一种高性能的CMOS8位微控制器,三种工作模式,更低功耗。该器件指令与工业标准的80C51指令集兼容。片内程序存储器允许重复多次在线和在应用编程。它的应用范围广泛,可用于解决复杂的控制问题,且成本较低。

具有如下特性:

l 完全兼容51系列产品

l 工作电压:5.5V~3.3V(5V单片机) 3.8V~2.4 V(3V单片机) l 工作频率范围:0~35MHz,相当于普通8051的0~420MHz l 8K字节可擦写1000次的在线可编程闪存

l 在系统可编程ISP和在应用可编程IAP,勿需专用编程器,勿需专用仿真器,用户可通过串口直

接下载程序,高效快速 l 片上集成1024字节内部RAM l 32条可编程I/O线 l 3个16位定时器/计数器

l 通用异步串行口(UART),还可用定时器软件实现多个UART l 低功耗空闲方式和掉电方式 l 看门狗定时器 l EEPROM功能

l 兼容TTL和COMS逻辑电平 l 双DPTR数据指针 l PDIP封装

10

4.1.2 STC89C52RD+单片机的标准工作模式

l l l

掉电模式:典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序 空闲模式:典型功耗2mA

正常工作模式:典型功耗4mA~7mA

其中掉电模式和空闲模式是该芯片的低功耗设计,可由外部中断唤醒,适用于电池供电系统,如气表、水表、便携应用设备等。

4.1.3引脚说明

图14 STC89C52单片机引脚图

按照功能,STC89C52的引脚可分为多功能I/O口、主电源、外接晶体振荡或振荡器、控制和复位等。 1) 多功能I/O口

STC89C52共有四个8位的通用I/O端口:P0、P1、P2、P3,对应的引脚分别是:P0.0 ~ P0.7,P1.0 ~ P1.7,P2.0 ~ P2.7,P3.0 ~ P3.7,共32个I/O口。每个口可以单独用作输入或者输出。

① P0端口,该口是一个8位漏极开路的双向I/O端口。在作输入口时,写入高电平,可作高阻收入;作输出口时,每个引脚可带动8个TTL输入负载。当存取外部程序或数据存储器时,P0可用作低字节地址或者数据总线(此模式内部集成有上拉电阻);当编程Flash存储器时,P0端口将用于接收代码字节;在校验时,则输出代码字节(此模式需外加上拉电阻)。

② P1端口,该口是8位双向I/O端口,集成有内部上拉电阻。对端口写“1”时,通过内上拉电阻把端口拉到高电位,此时可用作输入口。因为有上拉电阻,P1口作输入口使用时,那些被外部信号拉低电平的

11

引脚会输出电流信号。此外,P1.0和P1.1引脚可配置成定时/计数器2的外部计数输入端(P1.0/T2)与定时/计数器2的触发输入端(P1.0/T2EX),如表3所示。

表3 P1口管脚复用功能

③ P2端口,该口用作输入口时,与P1端口功能特性一样;在访问16位的外部数据存储器或者程序存储器时,P2端口发送高8位字节地址;在访问外部数据存储器时,P2口引脚上的信息内容访问期间保持。在对Flash编程和程序校验时,P2口也可以接收高位地址和控制信号。

④ P3端口,该口是8位双向I/O端口,内部带有上拉电阻。P3口作输入口使用时,内部有上拉电阻,被外部信号拉低的端口会输出一个电流。在STC89C52中, P3端口还用于一些其他复用功能,如表4所示。在对Flash编程和程序校验期间,P3口可接收控制信号。

表4 P3端口引脚与复用功能表

2)RST :复位输入端

单片机振荡器运行时,在复位RST端口输入两个机器周期的高电平,实现复位操作。 3)ALE/PROG:地址锁存允许信号

在外部存储器存取时,这个信号的作用是锁存低字节地址信号。在对Flash存储器编程时,该引脚的作用是输入编程脉冲PROG。

4)PSEN 程序存储器允许信号:该信号的作用是读外部程序存储器。 5)EA/Vpp 外部存取允许信号

为了确保单片机从外部程序存储器中读取代码,要把EA接地;当执行内部程序时,EA应接到Vcc。 6)XTAL1、XTAL2 :片内振荡电路的输入/输出,外接晶振的两端。

12

4.1.4内部原理图

STC89C52单片机内部构造如图15所示。

图15 STC89C52单片机内部构造

4.1.5存储器

51系列单片机的存储器[3]结构与常见的微型计算机不同,它将程序存储器和数据存储器分为不同的存储空间,各存储空间各有自己的寻址系统、控制信号、功能。存储器的结构如下图所示。

13

图16 存储器结构

程序存储器和数据 [3]分为不同的逻辑空间,这样可用8位地址来访问数据存储器,提高CPU的存储和处理速度。也可通过数据指针(DPTR)寄存器来产生16位的数据存储器地址。程序存储器只可读取,不可写入,內存有编辑好的程序和表格常数。数据存储器在物理和逻辑上都分为两个地址空间,分别是内部数据存储器空间和外部数据存储器空间。访问外部数据存储器时,CPU发出读信号RD和写信号WR。将RD和PSEN两个信号加到一个与门的输入端,用与门的输出作为外部程序/数据存储器的读选通脉冲。这样可将外部程序存储器空间和外部数据存储器空间合并在一起[3]。

4.1.6定时器/计数器

MCS-51单片机具有两个可编程的16位定时器/计数器,即T0和T1,STC89C52增加了一个16位定时器/计数器2(T2)。

1) 定时器/计数器0和定时器/计数器1

14

15

它还具有低功耗、非易失性、保存数据无需消耗能量等特点。利用SD卡作为文本阅读器的存储模块具有价格低廉、操作简单的优点。

具有如下特性: l l l l l l l l l l

容量:32MB/64MB/128MB/256MB/512MB/1Gbytes 卡上错误校正 支持CPRM

两个可选通讯模式:SD模式、SPI模式 时钟频率范围0~25MHz 工作电压:2.0V~3.6V

低功耗:自动断电、自动睡醒、智能电源管理 勿需额外编程电压 带电插拔保护功能 高速串行接口(随即存取) --双通道闪存交叉存取

--快写技术:超高速闪存访问、高可靠数据存储的低成本方案 --最大读写速率:10Mbytes/s l l l l

4.2.2引脚说明

正向兼容MMC卡

数据寿命:10万次编程/擦除 PIP封装

尺寸:24mm宽×32mm长×1.44mm厚

图18 SD卡引脚图

SD卡存储[6]时,每个时钟周期传输一个命令或数据位,频率可在0~25MHz之间变化,SD卡内部集成的总线管理器可以不受限制地自由产生0~25MHz的频率;命令从CMD口串行传输,一个命令作为一次主机到SD卡操作的开始,命令可以以寻址命令或者广播命令方式发送;回复也是从CMD口上串行传

16

输,一个命令是作为对之前发出命令的回答,回复可以来自单机或者是SD卡;数据信息通过数据线进行传输,可以从卡传向主机或副versa。具体引脚功能如表6所示。

表6 SD卡引脚功能表

4.2.3内部原理图

图19 SD卡内部原理图

17

4.3TFT-LCD液晶显示屏

4.3.1液晶显示屏的基本原理

液晶[9]是一种介于固态和液态之间的特殊物质,是具有规则性分子排列的有机化合物,当它被加热时,会呈现出透明的液体状态,冷却后又会结晶成混乱的固态。液晶分子在不同电场下,会发生不同程度的偏转,从而调节透过光的强度,液晶显示屏正是利用了液晶的这一物理特性。液晶按照分子结构排列的不同分为四种: 类似粘土状的层状液晶、类似细火柴棒的线状液晶、类似胆固醇状的胆固醇液晶以及类似碟状的碟状液晶。这四种液晶的物理特性都不尽相同,用于液晶显示器的是层状液晶[9]。

LCD[10]是由二层玻璃基板夹住液晶组成的,上层的玻璃基板是彩色滤波片,而下层的玻璃上镶嵌有电晶体,二层之间形成一个平行板电容器,通过嵌入在下玻璃基板上的TFT对这个电容器和内置的存储电容充电,维持每幅图像所需要的电压直到下一幅画面更新。液晶的彩色都是透明的,且LCD面板本身并不发光,必须给LCD衬以白色的背光板,来提供一个分布均匀的亮度,才能将五颜六色表达出来。LCD实际上是通过对每个像素上的三基色的不同配比来达到显示彩色的目的[10]。

图20 TFT-LCD液晶显示原理图

TFT-LCD液晶显示原理图如图20所示,首先,背光板提供均匀稳定的白光,经过电路板和液晶板共同组成的器件后,得到一定光强,再经过滤光板后,就得到了我们所需要的某种颜色的光,进而可以在TFT液晶面板上进行显示。

4.3.2TFT-LCD液晶显示屏基本结构

液晶显示屏[7]就是利用液晶本身的特性, 适当的利用电压, 来控制液晶分子的转动, 进而影响光线的行进方向, 来形成不同的灰阶, 作为显示影像的工具。当然, 单靠液晶本身是无法完成显示, 构成显示屏的,还需要其它材料的配合。其基本物理结构如图21所示,其中,偏光板是在生产工艺的过程中,所加入的,可以使光的质量更好的装置。

18

图21 TFT-LCD液晶显示屏基本结构

4.4AMS1117

4.4.1功能特性

AMS1117是一款正向低压降稳压管,有两个版本:固定电压输出版本和可调电压输出版本,固定输出版本的输出电压可以为:1.8V、3.3V、5.0V,可调低压输出版本能提供的电压输出范围为1.8V~5.5V。其内部集成过热保护和限流电路,确保芯片和系统电路的稳定性。

具有如下特性:

l 能提供包括固定电压输出版本(固定电压包括1.8V、3.3V、5.0V)跟三端可调电压输出版本 l 最高输出电流可达1A l 输出电压精度高达2% l 稳定工作电压范围高达12V l 限流功能 l 过热切断

l 温度范围:-20℃~120℃

4.4.2内部原理图

19

图22 AMS1117内部原理图

4.4.3引脚说明

图23 AMS1117引脚图 表7 AMS1117引脚功能表

20

为了确保AMS1117的稳定性,对于可调电压版本,输出需要连接一个至少22uF的电容;对于固定电压版本,可采用更小的电容,具体的电容取值可以根据实际应用确定。通常,线性调整器的稳定性随着输出电流增加而降低。

5软件设计

5.1总体设计

main.c FAT32.c show.c SD.c LCD.c

图24 软件总体设计图

整个系统的软件设计由三个模块组成,分别是主函数模块main.c、存储模块(包括SD驱动函数SD.c和文件系统函数FAT32.c)、显示模块(包括TFT液晶驱动函数LCD.c和显示函数show.c)。

5.1主函数模块

主函数模块是通过对存储模块和显示模块功能函数的调用,最终实现系统的TXT文本文件的读取显示。首先实现各元件的初始化,然后目录寻址,打开需要读取的TXT文本文件和汉字库文件,最后调用show.c中的液晶显示函数对所打开文件中的信息进行显示。

21

FAT32文件系统的目录[8]是树状结构,它是有方向的,对于FAT分区内的任一文件,均需从根目录寻址开始找,也就是说,根目录是我们访问任何文件和目录的入口,同时根目录也没有子目录特有的当前目录和上级目录这两个特殊目录项。FAT32文件系统的一个特别之处是把目录当作一个特殊的文件来处理,根目录也不例外。FAT分区中所有的目录文件,实际上是作为一个存放存储器中寻找其他文件进入参数的数据列表。目录文件通常是占据较小空间,可以把它看作是一个简易的二维数表组成的文件。系统通常会以32个字节为单位进行该目录文件的簇分配,不管该目录文件占多少个簇,每簇包含多少个字节,这32字节用来确定偏移,以此来定义本目录下的文件属性,实际上就是一个简单的二维表。 l DATA

DATA数据区[8]是存储器数据存储的地方,位于根目录区的后面,占据了存储器上大部分的空间,并且按照格式化的规格划分为若干小的存储块,在读写时需按这种存储块为单位进行访问。格式化 FAT32分区时,格式化程序根据分区的容量来确定簇的大小,然后根据根目录扇区数、保留扇区数、FAT表所占空间和数据区可分的簇数来确定FAT表所需要的扇区数目,并将计算后的扇区数记录到DBR的相关位置。 2) 最小分配单位

存储器的最小读写单位是扇区(存储块),但FAT32对存储器的管理并不是以扇区为最小分配单位,而是以簇为最小分配单位,一个文件在存储设备里总是占用若干个整簇。一般来讲,1个簇对应2n个连续的扇区,对于不同的存储器,n值是固定的,n值的大小由采用的文件系统和分区的容量来决定。表8列出来部分容量的存储器在FAT32文件系统下的簇大小。

表8 FAT32单位簇的大小

5.3显示模块

5.3.1LCD.c

LCD.c是系统的液晶模块驱动程序,提供液晶复位与初始化、清屏函数、ASCII码显示函数以及汉字显示函数供显示函数供show.c调用。

TFT-LCD有两种数据通信方式,命令写入和数据写入,这是MCU控制液晶进行显示的基础,其时序

27

如图31所示。

图31 数据通讯时序图

TFT液晶的复位和初始化非常关键,是成功驱动液晶的前提。往液晶模块RESET接口发送至少1ms的低电平,液晶进行复位操作,复位之后,液晶内部所有的功能寄存器回复初值。初始化的过程就是根据自己的要求,通过向索引寄存器写入命令和数据,给液晶内部大量的功能寄存器进行赋值,以达到系统的设计要求。

由于ASCII码和汉字的数据信息不能在TFT-LCD上直接显示,需要将ASCII码和汉字的信息转化成液晶可以显示的子模信息,所以程序中必须包含一个读子模的操作。函数流程图如图32所示。

开始 开辟显示窗口 读子模信息 ASCII码或汉字显示 结束

图32ASCII码、汉字显示函数流程图

5.3.2show.c

该部分是系统的核心,实现文本文件在TFT-LCD液晶上的显示功能。函数内部流程图如图33所示。

28

开始 液晶初始化 获首簇地址 读首簇 读当前簇首扇区 汉字 格式判断 ASCII码 汉字显示 ASCII码显示 N 读下一扇区 簇是否读完 Y 读下一簇 N 文本是否读完 Y 结束

图33 显示函数内部流程图

读下一簇 屏显示部分函数: total++;

if(total>txt_info.TXT_Filesize)return; if(y >= 20) {

while(1)

29

{

P32 = 1; if(!P32) {

Delay_ms(20); P32 = 1; if(!P32) {

while(!P32);

CLR_Screen(BCOLOR);

y = 0; break; } } } }

if(buffer[j] < 0x80)

{

LCD_PutChar8x16( x*8 , y*16 , buffer[j] ,CCOLOR,BCOLOR); j++;

x++; if(x >= 30) { x = 0; y ++; } } else {

if(!CHINA_FLAG) {

tmp_char[0] = buffer[j];

if(x >= 29) { x = 0; y ++;

30

} j++;

CHINA_FLAG = 1; } else {

tmp_char[1] = buffer[j];

PutGB1616(x*8,y*16 ,tmp_char,CCOLOR,BCOLOR); j++; x += 2;

CHINA_FLAG = 0; } }

本系统选用的液晶屏为320x240的彩屏,一屏可显示16x16的汉字20行,每行15个字;每行可显示16x8的ASCII码30个。该部分程序如上所示,主要包括三个判断,首先是一个整个文本信息是否显示完毕的判断,显示完毕则退出,否则继续;然后是一个屏是否显示完毕的判断,显示完毕则下一屏显示,否则进行行显示完毕判断;最后就是行显示完毕判断,显示完毕则下一行显示,否则继续本行显示。屏显示部分逻辑流程图如图34所示。

开 始 获取数据信息 文件是否读完 N 屏是否显示满 Y 结 束 N 继续本行显示 显示下一屏 Y 显示下一行 Y 行是否显示满 N

图34屏显示部分逻辑流程图

31

本文来源:https://www.bwwdw.com/article/2lh.html

Top