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

2019-03-04 15:48

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


范文基于单片机的电子书设计 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:总复习题库 2

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: