打印

LCD1602液晶显示之跳动的音符

[复制链接]
2755|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 kk5290122 于 2013-8-4 18:22 编辑

今天我要和大家分享的是我对LCD1602液晶深层次的配置学习:自定义字符。今天分享的主要是对液晶配置中的垂直条形图(Vertical Bargragh)和水平条形图(Horizontal Bargragh)的学习。打开液晶配置窗口,如下图1所示,大家可以看到LCD液晶自定义字符集中有4个选项,由上到下分别是:
§1) None(无)(默认) – 不对自定义字符执行任何操作。
§ 2)Vertical Bargraph(垂直条形图) – 生成自定义字符和 API 以操控垂直条形图。
§ 3)Horizontal Bargraph(水平条形图) – 生成自定义字符和 API 以操控水平条形图。
4)User Defined(用户定义的) – 创建自定义字符和 API 以操控它们。


有关LCD字符液晶的详细配置说明,大家可以参考相应的数据手册。我这里首先选用的是第二个配置垂直条形图,选定后大家可以看到在右侧有相应的供显示的垂直条形图,一共有8种不同的条形图,显示出来的阴影条形高度逐次加1,我们就可以利用这些不同的垂直条形图来实现类似于我们看到的音乐音符跳动的现象。那么我们应该如何控制液晶让它显示出不同的条形图呢?按垂直条形图配置好液晶,建立工程后打开LCD_Char_BarGragh.c文件,也可参看数据手册,大家会看到有这么一个函数:
void LCD_Char_DrawHorizontalBG(uint8 row, uint8 column, uint8 maxCharacters, uint8 value)
该函数的作用就是绘制垂直条形图,函数有4个参数,各参数意义如下:
1)uint8 行:条形图中第一个字符的行。
2)uint8 列:条形图中第一个字符的列。
3)uint8 maxCharacters:条形图使用的所有字符数量。根据条形图选择表示高度或宽度。每个字符为5像素宽和8像素高。
4)uint8 值:要绘制的阴影像素数。不能超过条形图的总像素长度(高度)。

注解:绘制垂直条形图和绘制水平条形图的区别就在于第3个参数和第4个参数的取值不同,由于自定义字符每个字符或条形图的最大像素为5宽*8高,所以当使用垂直条形图时第3个参数表示条形图的最大高度(8个),第4个参数则表示要显示的条形图的高度,在1-8之间取值;而当选择使用水平条形图时第3个参则数表示条形图的最大宽度(5个),第4个参数表示要显示的条形图的宽度,在1-5之间取值。这也正是我们在配置液晶为水平条形图时,为什么右侧的条形图显示只有5种不同类型的原因所在,如下图2所示:


    根据上面对绘制垂直条形图函数LCD_Char_DrawHorizontalBG()的说明,我们就可以通过对函数中不同参数的控制,来实现我们想要显示的条形图,以次来模仿音符跳动的效果,我这里只是做了一个最基本的演示,使用垂直条形图来演示音符的跳动,大家如果想模拟显示不同的音符,只需控制显示不同的垂直条形图即可。水平条形图的控制和显示方法与垂直条形图一样,想必大家看了上面的注解后应该也都明白了,在此我就不再重复。下面是一个简短的视频演示,大家有兴趣的可以看一下,具体的工程大家可下载附件查看。
    下面是显示效果

http://v.youku.com/v_show/id_XNDgxNzMwODU2.html

LCD1602液晶显示之跳动的音符.zip (1.8 MB)

字符LCD数据手册.pdf (597.09 KB)


沙发
outstanding| | 2013-7-30 13:13 | 只看该作者
  牛X

使用特权

评论回复
板凳
missnihao| | 2013-7-30 13:37 | 只看该作者
资料不错,楼主辛苦了

使用特权

评论回复
地板
kk5290122|  楼主 | 2013-7-30 14:01 | 只看该作者
missnihao 发表于 2013-7-30 13:37
资料不错,楼主辛苦了

呵呵…………互相学习!!

使用特权

评论回复
5
shibalihuandao| | 2013-7-30 15:47 | 只看该作者
大家一起交流交流

使用特权

评论回复
6
zgsxhzac| | 2013-7-30 15:51 | 只看该作者
真复杂,这是个什么呀

使用特权

评论回复
7
sishangcine| | 2013-7-30 15:52 | 只看该作者
什么不会,说出来大家一块交流

使用特权

评论回复
8
kk5290122|  楼主 | 2013-7-30 16:30 | 只看该作者
outstanding 发表于 2013-7-30 13:13
牛X

就一个1602液晶呀…………

使用特权

评论回复
9
kk5290122|  楼主 | 2013-7-30 16:32 | 只看该作者
zgsxhzac 发表于 2013-7-30 15:51
真复杂,这是个什么呀

这不就是个1602液晶么…………

使用特权

评论回复
10
outstanding| | 2013-7-30 17:08 | 只看该作者
kk5290122 发表于 2013-7-30 16:30
就一个1602液晶呀…………

做的比较有新意

使用特权

评论回复
11
kk5290122|  楼主 | 2013-7-30 20:23 | 只看该作者
outstanding 发表于 2013-7-30 17:08
做的比较有新意

呵呵…………多多交流!!

使用特权

评论回复
12
重邮king| | 2013-8-14 17:01 | 只看该作者
很好,顶一个!

使用特权

评论回复
13
kk5290122|  楼主 | 2013-8-14 17:10 | 只看该作者
重邮king 发表于 2013-8-14 17:01
很好,顶一个!

多多交流…………

使用特权

评论回复
14
outstanding| | 2013-10-23 14:01 | 只看该作者
outstanding 发表于 2013-7-30 17:08
做的比较有新意

资料不充足啊。要用专用的LCD1602么?

使用特权

评论回复
15
wgj2778| | 2013-10-23 19:25 | 只看该作者
不错不错

使用特权

评论回复
16
kk5290122|  楼主 | 2013-10-23 22:37 | 只看该作者
outstanding 发表于 2013-10-23 14:01
资料不充足啊。要用专用的LCD1602么?

不需要的,就用普通的LCD就行…………

使用特权

评论回复
17
kk5290122|  楼主 | 2013-10-23 22:38 | 只看该作者
wgj2778 发表于 2013-10-23 19:25
不错不错

你终于发现它了呀…………;P

使用特权

评论回复
18
outstanding| | 2013-10-23 22:46 | 只看该作者
kk5290122 发表于 2013-10-23 22:37
不需要的,就用普通的LCD就行…………

那个取码的是什么软件?

使用特权

评论回复
19
kk5290122|  楼主 | 2013-10-23 23:27 | 只看该作者
outstanding 发表于 2013-10-23 22:46
那个取码的是什么软件?

哪里有取代码的呢??

使用特权

评论回复
20
wgj2778| | 2013-10-24 08:31 | 只看该作者
kk5290122 发表于 2013-10-23 22:38
你终于发现它了呀…………

是啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

584

主题

6533

帖子

14

粉丝