搜索
bottom↓
回复: 54

FATfs+sd+TFT图片显示,电子书,MP3播放

[复制链接]

出0入0汤圆

发表于 2012-1-3 15:34:40 | 显示全部楼层 |阅读模式
一直以来都是免费下载这里面的资源,学到了很多,对此深表感谢。
小弟不才把自个儿的毕业设计也放出来,望大家一起学习学习,高手们指点指点。
题目:数码相框
功能:显示BMP图片+电子书+MP3播放(歌词同步)
芯片:ATmega128+GT23H32(集通字库芯片)
显示:2.8寸TFT彩屏
存储:2G SD卡
文件系统:FATfs

(原文件名:20120103073.jpg)


(原文件名:20120103072.jpg)


(原文件名:20120103074.jpg)


(原文件名:20120103075.jpg)


(原文件名:20120103076.jpg)


(原文件名:20120103077.jpg)


(原文件名:20120103078.jpg)


(原文件名:20120103079.jpg)


(原文件名:20120103080.jpg)


(原文件名:20120103081.jpg)


(原文件名:20120103082.jpg)


(原文件名:20120103083.jpg)

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2012-1-3 15:49:40 | 显示全部楼层
呵呵,手机拍的,不咋的清晰。
BMP图片能显示:单色、16灰、256灰、16位真彩、24位真彩、32位真彩
电子书能放:.TXT文件,.c文件、.h文件、(能设置只放TXT文件,添加其格式主要是用来看歌词.lrc文件的).
MP3播放:能播放.MP3、.wma(其它格式未试),歌词同步显示,读取ID3显示其歌曲名称、作者,播放模式两种:顺序、随机(将加上单曲循环模式)。
再上传一张SD卡内容

(原文件名:SD卡文件夹.jpg)

出0入0汤圆

 楼主| 发表于 2012-1-3 16:20:15 | 显示全部楼层
不知道怎么上传压缩文件和.pdf文件。
我把原理图,我的程序整理一下,也一起上传上去。

出0入0汤圆

 楼主| 发表于 2012-1-3 16:34:57 | 显示全部楼层
呵呵,真不好意思,一开始没看可压缩文件后缀名,我用的是快压所以压缩后的文件后缀名.kz,上传了好几次都说上传失败。
把后缀名改成.RAR,上传成功。功德圆满。
下面是原理图文件和程序;
程序picture.c\music.c\book.c\file.c 都有非常清楚的注释
点击此处下载 ourdev_709961XFZRB8.pdf(文件大小:480K) (原文件名:数码相框1.pdf)
点击此处下载 ourdev_709962PCNNVH.RAR(文件大小:260K) (原文件名:AVR.RAR)

出0入0汤圆

 楼主| 发表于 2012-1-6 02:04:11 | 显示全部楼层
下面小弟聊一下整个制作过程和一些应该注意的地方
控制器就不说了
首先要了解的是TFT彩屏显示模块驱动;程序在3楼可以下载
TFT彩屏的驱动时序,如何写如何读这些省略掉,值得重点注意的几个寄存器:
0x0003进入模式(刷屏方式)
/-----------------------------------------------------------------------------------
AM:控制GRAM更新方向的控制位
      AM = 0: 在水平方向更新地址
      AM = 1: 在垂直方向更新地址
I/D1,I/D0:当更新显示区域的一个像素点的时候,控制AC是增加1还是减少1
例如I/D1,I/D0=00时,水平方向递增更新地址,垂直方向递增更新地址
…………手册第55页。
大家可以各种模式都试玩一下,这样会更直观。
ORG : 当一个窗口的地址区域确定以后,根据上面I/D的设置,来移动原始地址。当高速写窗口地址域时,这个功能将被使能。
      ORG = 0: 原始地址是不移动的。这种情况下,是通过指定地址来启动写操作的,               这个地址是根据窗口显示区域的GRAM的地址表。
      ORG = 1:原始地址是更加I/D的设置相应的移动的。
注意:1、当ORG =1 的时候,设置R20H,R21H,的原始地址的时候,只能设置0x0000
      2、在RAM读操作时,要保证ORG = 0;
/-----------------------------------------------------------------------------------
0x0004改变大小
/-----------------------------------------------------------------------------------
这个寄存器可以设置图片以原始象素、二分之一、四分之一显示
RSZ1,RSZ0:

(原文件名:0x0004.jpg)

当以二分之一显示图片时,如果图片水平象素除2余数不为0时须设置RCH1,RCH0=余数
如果垂直象素除2余数不为0时须设置RCV1,RCV0=余数
当以四分之一显示图片时,如果图片水平象素除4余数不为0时须设置RCH1,RCH0=余数
如果垂直象素除4余数不为0时须设置RCV1,RCV0=余数
/-----------------------------------------------------------------------------------
0X0007显示控制
/-----------------------------------------------------------------------------------
当我们的控制器运行速度不是很快时,切换图片时可以看到明显的刷屏,

(原文件名:Y~UVUDZEXTLI$}HQ[{MVZ6G.jpg)

我们可以在写图片数据前先设置(0X0007)=0X0130隐藏显示,等图片数据全部写完再次设置(0X0007)=0X0133显示,这样就可以非常快的显示整张图片,不过在写数据时屏显示的是一种灰白色,呵呵,我个人不喜欢这种方式。
/-----------------------------------------------------------------------------------
0x000C RGB显示接口控制
/-----------------------------------------------------------------------------------

(原文件名:R_05](60E}4{3XV`WZJ]%}W.jpg)

可以把接口设置成18位、16位、6位,好像现在一般都是使用16位。
/-----------------------------------------------------------------------------------
0X0050,0X0051,0X0052,0X0053,0X0020,0X0021,0X0022
/-----------------------------------------------------------------------------------
0X0050:水平更新起始地址
0x0051:水平更新结束地址(不能超过屏的水平象素值)
0X0052:垂直更新起始地址
0X0053:垂直更新结束地址(不能超过屏的垂直象素值)
上面四个寄存器主要用来设置一个窗口的
0X0020:水平写数据起始地址
0X0021:垂直写数据起始地址
这两个确定了一个起始坐标,但必须在所设置的窗口内
0X0022:存储器写
在设置好起始坐后必须写命令0X0022.
/-----------------------------------------------------------------------------------
了解了上面寄存器,呵呵,那才算得上这个屏玩的有点意思了。其实里面还有很多的功能,大家可以一起玩玩,很有意思的哦。
夜深了,得去梦了。
点击此处下载 ourdev_710654T9OZ9V.pdf(文件大小:1.17M) (原文件名:ILI9325手册.pdf)

出0入0汤圆

 楼主| 发表于 2012-1-7 16:39:01 | 显示全部楼层
3楼上传的AVR文件可能打不开,这里重新上传一次。里面是完整的程序。
点击此处下载 ourdev_711087ORU5FA.rar(文件大小:300K) (原文件名:AVR.rar)

出0入0汤圆

发表于 2012-1-14 22:09:03 | 显示全部楼层
都没有人支持一下
我来支持一下楼主
加油啊

出0入0汤圆

发表于 2012-1-15 22:43:57 | 显示全部楼层
支持下楼主!

出0入0汤圆

发表于 2012-1-18 10:42:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-19 11:28:29 | 显示全部楼层
mark.

出0入0汤圆

发表于 2012-1-20 11:42:09 | 显示全部楼层
支持

出0入0汤圆

发表于 2012-1-30 09:05:26 | 显示全部楼层
楼主太好了,谢谢了谢谢了

出0入0汤圆

发表于 2012-2-4 10:09:07 | 显示全部楼层
顶。

出0入0汤圆

发表于 2012-2-6 09:42:47 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-6 12:49:37 | 显示全部楼层

出0入0汤圆

发表于 2012-2-8 09:12:58 | 显示全部楼层

出0入0汤圆

发表于 2012-2-8 09:21:03 | 显示全部楼层
支持,顶。

出0入0汤圆

发表于 2012-3-6 23:18:18 | 显示全部楼层
多谢了,顶

出0入0汤圆

发表于 2012-4-3 10:32:37 | 显示全部楼层
都没有人支持一下
我来支持一下楼主
加油啊

出0入0汤圆

发表于 2012-4-4 19:03:58 | 显示全部楼层
牛人               

出0入0汤圆

发表于 2012-4-4 20:26:50 | 显示全部楼层
顶啊 楼主  请教你一个问题啊
我用的图片取模软件每个像点16位的,很好用
但是到了显示汉字就有疑问了,软件只能取每个像点一位的,像点阵取点那样的字模啊
求教

出0入0汤圆

发表于 2012-4-8 22:06:31 | 显示全部楼层
想问一下SD卡和M128的引脚怎么接的,怎么还用了PE6做片选啊?

出0入0汤圆

 楼主| 发表于 2012-4-20 20:33:06 | 显示全部楼层
jaarm 发表于 2012-4-8 22:06
想问一下SD卡和M128的引脚怎么接的,怎么还用了PE6做片选啊?

SD卡采用SPI接口方式,直接接M128的SPI接口就行了,片选可以可以任意选一引脚。

出0入0汤圆

 楼主| 发表于 2012-4-20 20:37:20 | 显示全部楼层
slamdunk0223 发表于 2012-4-4 20:26
顶啊 楼主  请教你一个问题啊
我用的图片取模软件每个像点16位的,很好用
但是到了显示汉字就有疑问了,软 ...

建议您换个能取彩色字的字模软件。

出0入0汤圆

发表于 2012-4-20 22:58:12 | 显示全部楼层
taozhihua1314 发表于 2012-4-20 20:37
建议您换个能取彩色字的字模软件。

谢谢 我已经解决了

出0入0汤圆

发表于 2012-4-26 16:31:18 | 显示全部楼层
楼主,我在学习这个,能把你上传的资料(下不了)发到我的邮箱吗?谢谢啦!415645461@qq.com

出0入0汤圆

发表于 2012-4-27 08:38:51 | 显示全部楼层
好人呢。谢谢噢。

出0入0汤圆

发表于 2012-5-1 13:52:16 | 显示全部楼层
好人呢。谢谢噢。

出0入0汤圆

发表于 2012-5-2 20:33:09 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2012-5-5 13:07:44 | 显示全部楼层
mark等待先下载

出0入0汤圆

发表于 2012-5-8 09:29:55 | 显示全部楼层
先mark再说

出0入0汤圆

发表于 2012-5-8 15:16:13 | 显示全部楼层
我晕死,我的要求很简单,我用单片机驱动了2.4TFT,显示了字符,图片,但是不会驱动SD卡啊
就像把图片放入SD,再在TFT上显示出来,做一个电子相册

出0入0汤圆

发表于 2012-5-21 15:21:12 | 显示全部楼层
这个 要好好看一下。。

出0入0汤圆

发表于 2012-5-21 15:42:26 | 显示全部楼层
顶一下!!

出0入0汤圆

发表于 2012-6-8 15:07:59 | 显示全部楼层
楼主,能把东东发到我的邮箱吗?我的邮箱是fly02827@163.com,万分感谢

出0入0汤圆

发表于 2012-6-8 23:04:18 | 显示全部楼层
支持谢谢楼主的分享

出0入0汤圆

发表于 2012-6-25 16:07:40 | 显示全部楼层
先支持一下楼主!小弟最近也在弄这个FAT的操作系统,但是在移植振南的FAT的时候有点问题,老是出现错误,看来不懂原理还是不行的,楼主能把相关资料发我邮箱里面嘛?不慎感激啊!1522684325@qq.com

出0入0汤圆

 楼主| 发表于 2012-9-7 22:07:19 | 显示全部楼层
振南老师是很牛B,但他那个文件系统相比来说慢来许多,不过学习起来超轻松,
刚开始时是用振南老师那个,后来换了。没别的原因,只是都玩玩

出0入0汤圆

发表于 2012-9-8 10:32:21 | 显示全部楼层
楼主的资料很清晰,赞一个。。

出0入0汤圆

 楼主| 发表于 2012-9-8 19:44:19 | 显示全部楼层
sco518 发表于 2012-9-8 10:32
楼主的资料很清晰,赞一个。。

呵呵,谢谢。

出0入0汤圆

 楼主| 发表于 2012-9-8 19:46:21 | 显示全部楼层
茶亦爽 发表于 2012-4-26 16:31
楼主,我在学习这个,能把你上传的资料(下不了)发到我的邮箱吗?谢谢啦! ...

现在能下载了,好像前阵子是莫老大网站在改版吧。

出0入0汤圆

发表于 2012-9-11 14:29:35 | 显示全部楼层
mark!

出0入0汤圆

发表于 2012-12-4 19:42:46 | 显示全部楼层
楼主牛哦,我也想搞一个,可否打包一份发给我啊,谢谢咯   lvbifei@163.com

出0入0汤圆

发表于 2012-12-4 20:22:22 来自手机 | 显示全部楼层
支持一下!

出0入0汤圆

发表于 2012-12-4 21:46:38 | 显示全部楼层
果然是大神,受教了!

出0入0汤圆

发表于 2013-2-6 20:21:23 | 显示全部楼层
Mark,谢谢LZ,也要做毕设~

出0入0汤圆

发表于 2013-2-6 21:24:19 来自手机 | 显示全部楼层
m128建议用petit fatfs。

出0入0汤圆

发表于 2013-2-11 00:22:30 来自手机 | 显示全部楼层
很好的东西!

出0入0汤圆

发表于 2013-2-20 10:42:44 | 显示全部楼层
不错,大学总算是有所收获了,我了解单片机太晚了,杯具

出0入0汤圆

发表于 2013-3-17 17:04:09 | 显示全部楼层
楼主  开源精神值得赞赏

出0入0汤圆

发表于 2013-5-30 14:55:37 | 显示全部楼层
正好目前学习到AVR和TFT显示这块,比较痛苦,正好可以请教一下你

出0入0汤圆

 楼主| 发表于 2013-6-1 14:20:37 | 显示全部楼层
wxr4585 发表于 2013-5-30 14:55
正好目前学习到AVR和TFT显示这块,比较痛苦,正好可以请教一下你

一起学习学习,呵呵。

出0入0汤圆

发表于 2013-6-6 18:21:25 | 显示全部楼层
做的不错,想问一下void scan_file(INT8 *path,UINT16 ch_cnt,UINT16 num,INT8 *suffix,UINT8 type)中的UINT16 ch_cnt参数有什么作用?

出0入0汤圆

发表于 2013-6-8 10:24:23 | 显示全部楼层
taozhihua1314 发表于 2013-6-1 14:20
一起学习学习,呵呵。

你QQ多少?343477809,注明:阿莫论坛

出0入0汤圆

发表于 2013-6-16 09:51:35 | 显示全部楼层
谢谢楼主的开源精神,收下。赞一个。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 22:15

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表