团队体会和收获-电子信息与通信学院

上传人:泽*** 文档编号:77257657 上传时间:2022-04-19 格式:DOC 页数:11 大小:506.50KB
收藏 版权申诉 举报 下载
团队体会和收获-电子信息与通信学院_第1页
第1页 / 共11页
团队体会和收获-电子信息与通信学院_第2页
第2页 / 共11页
团队体会和收获-电子信息与通信学院_第3页
第3页 / 共11页
资源描述:

《团队体会和收获-电子信息与通信学院》由会员分享,可在线阅读,更多相关《团队体会和收获-电子信息与通信学院(11页珍藏版)》请在装配图网上搜索。

1、电子书阅读器 硬件课设院系:电子与信息工程系团队成员:指导老师:曾喻江完成时间:项目简介1.1 立项依据随着计算机网络技术以及互联网的不断发展,小型消费类电子产品在人们生活中起到了越来越重要的作用,而电子书由于其下载简单、免费、易携带等优点越来越受到人们的青睐,随着技术的不断革新,电子书阅读器在人们的日常生活中将扮演越来越重要的角色。同时我们也觉得这个题目比较的贴近我们,有浓厚的兴趣。1.2 最初的项目设想电子书阅读器作为一个多功能的项目,包括基本功能和扩展功能两部分。基本功能:1)从 SD卡上读取文本文档,在LCD上显示2)通过按键实现手动翻页与自动翻页的模式转换3)自动翻页模式下可智能设置

2、翻页的速度扩展功能:4)智能显示阅读进度5)支持夜间护眼模式,阅读时间提醒,缓解阅读疲劳、改变字体大小6)支持背景音乐设置7)运用蓝牙进行文件传送1.3 最后实现的功能我们实现了了从 sd 卡上读取 txt 格式的电子书,并在触摸屏上显示,中文汉字和英文字母都可以正确显示;由于我们板子上按键较少,我们可以通过触摸屏上面的转换按钮实现手动翻页和自动翻页的转换,同时可以通过触摸屏上面的加速按钮和减速按钮实现自动翻页速度的调节,每按一次加(减)2秒,最快速度为 2 秒翻一页;扩展功能部分我们实现了显示阅读进度(万分之多少)同时可以根据自己喜好任意改变字体,有宋体和黑体两种字体,为了方便测试我们设定当

3、阅读时间到达 50 秒时出现注意阅读时间的提示; 由于我们板子缺少 I2S 接口,无法连接音频解码模块,没法做出播放背景音乐;同时由于能力和时间有限我们没法去学习蓝牙协议栈的相关知识。硬件配置我们选的是ARM Cortex-M0 内核处理器NXP LPC1114 开发板2.1 配置说明板载主控芯片: LPC1114FBD48/302外设资源如下:1.主频最高可达 50MHz,来设置系统时钟,在 lpc1114 上有四个定时器,两个 16 位,两个 32 位,利用系统定时器实现延时,正好可以用来设置翻页的速度,另外通过 CT32B0的时钟产生中断来设置阅读多长时间提醒用户2.32KB FLASH

4、程序存储器3.8K SRAM数据存储器4.字库芯片 W25X16 总共有 2M, 用来存放两种字体的字库和GBK转 Unicode 转换表以及 Unicode 转 GBK转换表5.采用 spi 模式通信6.SD卡,通过移植 fatfs 文件系统来读取 sd 卡7.触摸屏,由于我们的板子按键确实,正好可以在触摸屏上添加按钮来替代2.2 部分电路图Lpc1114液晶显示屏触摸屏芯片 XPT2046电路图连接触摸屏的优势: 在小型手持设备中, 有时候需要执行很多操作, 如果操作比较多的话,只按键就需要好几十个。 如果带上触摸屏的话, 相当于有了无数多个按键,想怎么设置就怎么设置。在我们的开发板上,所

5、用的触摸屏芯片是 XPT2046,这个芯片的本质实际上是一个 12 位的 ADC,电阻式触摸感应原理硬件连接:1. 开发板上的液晶显示屏为 2.4 寸,分辨率是 240*320.它的显示是点阵显示原理,和电脑上的液晶显示器显示原理是一样的,分辨率240*320 的意思就是说屏幕上横着有 240 个点,竖着有 320 个点,它一共有76800 个点,每个点都是由三原色“红绿蓝 RGB“组成的,每个点可以配置成不同颜色,假如要让屏幕显示出白色,那么我们需要将每个点配成白色,我们经常听到的刷屏速度就是说显示一个整屏需要的时间,在这里我们说成点亮76800 个点所用的时间。我们要想让液晶显示屏显示我们

6、所需的内容,其实就是将一个点一个点的显示不同颜色所形成的效果;我们可以把液晶显示屏上的任意一个点设置成任意一种颜色。液晶显示屏模块里面有一个液晶控制器,名字叫做 ILI9325 ,我们就是操作 ILI9325 的寄存器来实现液晶显示器的显示的。 ILI9325 只是当今液晶控制器家族里面的一个成员, ILI9325 有四种总线接口控制液晶显示屏: i80 系统 MPU 接口、 VSYNC 接口、 SPI 接口、 RGB 接口。其中 i80 系统 MPU 接口和 SPI 接口是单片机操纵液晶显示屏最常见的两种总线接口方式。 SPI 接口是串行传输模式, i80 系统 MPU 接口是并行传输模式,

7、我们一般选择并行传输模式, i80 系统 MPU 接口的数据总线可以是 8 位、 9 位、 16 位和 18 位,51 单片机的 IO 口都是 8 位的,所以一般用 8 位的接法;STM32的 IO 口是 16 位的,所以一般用 16 位的接法;我们的开发板的 IO 口是 12 位的,权衡一下后,还是用 8 位数据宽度显示速度最快开发板上的 2.4 寸液晶显示屏与 LPC1114的引脚连接采用 8 位数据总线方式DB0DB7 :空脚DB8DB16 :接与 P2.4P2.11连接( 8 位数据总线连接方式用高8 位)LCD_CS:液晶显示屏片选引脚,低电平有效,与P3.1 引脚相连LCD_RS;

8、“写数据“”写命令“选择引脚。高:写数据;低:写命令。与P3.0 相连LCD_WR :写信号输入引脚,低电平有效。与P3.2 相连LCD_RD :读信号输入引脚,低电平有效。与P3.3 相连LCD_RST;液晶显示器复位引脚, 与 LPC1114 的复位脚相连, 所以 LPC1114 和触摸屏一定是同时复位的软件设计关于软件部分, 我们查阅和学习了很多预备知识, 并进行了明确的分工。 其中马冬梅同学负责了解学习 sd 卡的读取相关的知识、 祁婧同学负责学习了解 fatfs 文件系统以及把它移植到 arm 中,我主要负责对触摸屏的相关知识的学习和了解。以下是我们做的详细内容各部分模块:1.1 板

9、子自身芯片的初始化A.系统时钟配置LPC1114内部有 3 个时钟振荡器: 系统振荡器、 IRC振荡器、 看门狗振荡器。 系统振荡器就是需要配合外部晶振工作的振荡器;IRC振荡器就是内部RC振荡器 (上电就默认选择12MHZ 时钟振荡器,它的精度没有配合外部晶振的系统振荡器高) ;看门狗振荡器跟本实验无关。 通过访问 “主时钟源选择寄存器” 选择 PPL后的时钟 ( SYSCON-MAINCLKSEL= 0x00000003 ; ) ; 通 过访 问 “ 系 统 倍 频 时 钟 源 选 择 寄 存 器 ” 选 择 主 时 钟 源 系 统 振 荡 器(SYSCON-SYSPLLCLKSEL =

10、0x00000001 ;);B字库芯片W25X16 功能设计在显示器上显示汉字和显示英文字母的原理都是需要对应的点阵,相差很大,汉字字库空间占用空间比英文字母大的多,远大于小,因此需要芯片W25X16 来存放字库。W25X16 是一个 2M然而它们的难易程度LPC1114的 RAM 内存大字节的 FLASH存储芯片,一共 32 个 block,每个 block 大小 64K;一共 512 个 sector ,每个 sector 大小 4K。在 W25X16 中存放着一个 16*16 像素的宋体 GBK字库,和两张 Unicode 码与 GBK码的互相转换表,以及一张 16*16 像素的黑体GB

11、K 字库对应的 block占用范围对应内容Block0 Block110x0001000x0BD100宋体 GBK字库Block120x0C00000x0CA34Cuni2gbk 转换表Block130x0D00000x0DBD00gbk2uni 转换表Block14 Block250x0E00000x0ED000黑体 GBK字库Block26 Block31没占用空GBK字库:用来显示汉字,包括繁体字,各种中日韩符合。Uni2GBK 转换表:这张表是在上了文件系统后,读取GBK2UnI 转换表:这张表是在上来文件系统后,读取sd 卡中的文件名用的sd 卡上写中文文件名以及在读取以中文命名的文

12、件内容时用的重要函数介绍:W25X16 的初始化函数 void W25X16_Init(void); 初始化 W25X16 时应注意开发板上有三个器件共享 SPI0口,所以为了避免 SPI0口被重复初始化,应采用条件编译的方式读取 W25X16 的数据 void W25X16_Read(uint8*, uint32, uint16); 第一个参数是读取后将数据存放的数组,第二个参数是开始读取的地址,第三个参数是要读取的最大字节数1.2 数据通信SpI 模式通信 :发送一个字节,接收一个字节有 SPI0和 SPI1 两个通信口1.3 Sd 卡的读取Sd 的应用非常广泛。而且容易受到单片机的控制,

13、所以被广泛应用到工控领域和消费电子领域采集和收集数据。Sd 卡有两种通信接口,分别是sd 模式和 spi 模式,其中sd 模式比 spi 模式的读写速度要快得多,但是由于我们的板子lpc1114 只有 spi 接口,所以我们只能选择使用spi 通信模式读写sd 卡。我这里只简单介绍我们用到的几个关于sd 卡读取的函数:1. sd 卡的初始化完成控制 sd 卡引脚的配置:把 p0.11 脚设置为 GPI0, p0.11 设为输出初始化 sd 卡到 spi 模式2. 读 sd 卡的一个 block函数输入为 sector 的值和数据存储地址3. 读 sd 卡的多个 block1.4 Fatfs 文

14、件系统的移植Fatfs 文件系统是一个通用的文件系统模块,用于在小型嵌入式系统中实现fat文件系统。Fatfs 的编写遵循 ANSIC,因此不依赖于硬件平台。它可以嵌入到便宜的微控制器中而不需要做任何修改,它是一个开源的文件系统。文件结构图如下:支持 fat, fat16 , fat32 ;支持多扇区读写,使得效率更高;支持长文件名读写;支持中文;最重要是移植简单:在 KEIL下编译, 只需修改diskio.c 文件和 ffconf.h 文件就可以了。 其中 ffconf.h 文件是配置文件,可以配置文件系统支持的范围。diskio.c 文件完成和硬件连接的接口设置通过修改diskio.c 文

15、件,我们就可以实现在fatfs 文件系统下完成sd 卡的初始化、sd 卡读写单扇区和多扇区、获取sd 卡的扇区大小等功能支持长文件名:短文件名是指8.3 格式的文件名。8 是指在点之前最多有八个字节,3是指在点之后最多有 3 个字节。比如 xxx.txt 就是短文件名, xxxxxxxxx.txt 就是长文件名了,鉴于短文件的缺点,后来才有了长文件名。为了让文件系统支持长文件名,需要修1.5改 ffconf.h 中的参数触摸屏及液晶显示这部分主要涉及屏幕横坐标X 和纵坐标Y 的读取,以及一些图形用户接口读取坐标:在我们的开发板上面,有两个SSP 口,触摸屏用到了SSP1 口,其他的三个器件:N

16、RF24L01 W25X16 SD 卡用的是 SSP0口,这三个器件的 SPI 时序一模一样,只是用了不同的片选引脚,所以可以同时使用;而触摸屏芯片的SPI 时序和这三个器件有一定的不同,所以选用了SSP1口,在配置通信时序上有些差别,这样的话,四个器件可以同时使用Void Touch_Init(void); 初始化触摸屏,设置片选引脚、SPI 通信通信引脚设置、中断引脚设置Uint16 ADS_Read_AD(uint8); 读取X 轴或者Y 轴的ADC的值,片选为低时开启SPI通信,片选为高时结束SPI通信Uint16uint8ADS_Read_XY(uint8);功能跟上面函数一样,只是

17、多了滤波功能Read_ADS(uint16*, uint16*); 读取 X 轴和 Y 轴的 ADC的值,成功返回0,失败返回1,入口参数为横坐标地址和纵坐标地址uint8Read_ADS2(uint16*, uint16*); 连续两次读取横坐标和纵坐标的ADC,把两次的值做比较,在误差范围为加(减 )50 以内可取,返回的横坐标和纵坐标的ADC 的值可取为0,不可取为 1void Change_XY(void);把读出的ADC 的值转换了横坐标或者纵坐标uint8 Read_Once(void); 读取一次横坐标和纵坐标的值,返回0 表示正确读取, 返回1 表示读取数据失败uint8Rea

18、d_Continue(void); 持续读取横坐标和纵坐标的值,返回0 表示成功读取,返回1 表示读取数据失败图形用户接口 :良好的图形界面可以增加用户的可操作性,而且给人印象比较好LCD_Draw9Point();显示 9*9 的圆点,设置参数为圆点的横坐标和纵坐标以及圆点的颜色 Draw_Button(); 显示标准按钮 (矩形 ),设置参数为按钮的起始横坐标和纵坐标,截止的横坐标和纵坐标,中间的填充颜色默认为灰色SetButton(); 显示按钮被选中状态,设置参数为按钮的起始横坐标和纵坐标,截止的横坐标和纵坐标EscButton();显示按钮被取消状态,设置参数为按钮的起始横坐标和纵坐

19、标,截止的横坐标和纵坐标LCD相关函数:LCD_Init();液晶显示器的初始化函数,运行它后液晶显示器就可以工作了,它需要往ILI9325 的寄存器里面写入数据;初始化函数是对液晶显示器的接口选择以及显示方向的控制, 执行完这个函数, 我们可以在液晶显示器上面任意一个地方显示我们想要的颜色了,这些点组合起来就可以显示线条、字体、图形了LCD_Clear();清屏函数,可以让一整屏显示同一种颜色,入口参数为想要显示的颜色LCD_ShowNum();此函数是显示数字,入口参数包括横坐标、纵坐标、要显示的数字以及数字的长度LCD_ShowChar();显示英文大小写字母以及各类常用标点符号LCD_

20、Show_hz();显示一个汉字,需要配合 W25X16 芯片使用 (要用到字库表,和另外两张转换表 )LCD_ShowString();用来显示字符串,中文英文都可以软件流程图:这是我们之前做的软件流程图, 与实际做出来的有些出入, 主要是没有调节亮度, 字的大小改为不同字体调试故障的检测与分析由于我们几个代码量很少, 对硬件的认识也没有很深刻的认识,因此花了大量的时间来调试,所以在我们做课设的过程中遇到了很多问题,但是经过我们很多次的努力, 解决了一部分的问题,有些问题尽管我们努力了但是水平有限导致有些功能没法实现。其中 sd 卡初始化后读取里面的文件名以及打开文件阅读文字很顺利,然后我们

21、一个功能一个功能的添加, 其中在开始时翻页的时候汉字容易出现乱码,原因是汉字编码是两个字节对应一个汉字, 因此在扇区末尾需要半字节存储,然后进行半字节处理; 然后就是按钮的事件触发,刚开始在阅读是按钮似乎不听话,后来我在浏览文件的函数中重新初始化了一遍液晶显示屏就解决了; 还有就是字库在 W25X16 中存储的地址问题, 导致开始无法正确显示;向上翻页时由于尝试很多次都无法解决乱码问题,我最后直接将文件的读取指针指向文件的开头。团队体会和收获这次硬件课设对于我们组的三个成员来说都是一次全新的挑战,我们三个之前对于硬件的感受基本没有, 没有系统全面的接触过嵌入式板子的开发,通过查阅和学习相关资料

22、,我们对于各种芯片的初始化,什么是中断,以及各模块间的数据通信都有了很深的了解,sd卡的读取,fatfs 文件系统的移植以及触摸屏的使用都使我们对嵌入式开发有了一个更加形象具体的了解和印象, 而我们在开始做课设之前的对具体的开发一头雾水,完全没有概念; 软件方面, 由于我们就靠课堂上学的一点c 语言知识而且没有过多少写代码的经验,因此在刚刚上手时非常痛苦, 但是经过这次课设的锻炼, 我们对于编程似乎没有那么惧怕了,开始对它感兴趣了。 因此这次课设对于我们三个菜鸟来说,在硬件和软件方面的认识和理解有了很大提升。这次课设除了在硬件和软件等专业知识方面的给予我们很大的提升外,我们还学到了其他更重要的东西。 首先就是解决问题的能力, 遇到问题我们要善于学习,学会利用一切资源来解决问题, 在课设期间我们不仅请教老师同学,还充分利用了图书馆的电子文献数据库以及网络资源, 我们查阅了很多资料以及例子来做这个课设,而不是遇到问题就不知道怎么办;然后就是团队合作的精神, 每个人都有自己的特点和兴趣,我们据此进行了明确的分工,使得工作能够又快又好的完成。附录代码压缩包我们将通过邮件发送给指导老师

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!