本帖最后由 kk5290122 于 2012-12-1 14:12 编辑
LCD1602液晶显示之跳动的音符
经过两个多月的轮流试用,爱板网PSOC3开发套件试用活动终于落下了帷幕,我最初试用的PSOC3开发套件最终又回到了我手中,这次网站是把这些学习套件送给前期试用期间表现不错的坛友,而且比原定数量(5块)多送了2块,加上最初免费申请期间赠送的5块,一共为大家免费赠送了12块,我也有幸在赠送之列,爱板真大方,xinxin也很给力!在此还是要向xinxin,向爱板表示感谢,不过我觉得表达谢意的最好方式还是在论坛上多多发表学习心得、多多发帖,下面就和大家分享一下PSOC3开发套件重返我手后所学习的第一篇学习心得,以后也争取写个教程什么的和大家一起分享。 之前我曾在PSOC3开发套件试用期间发表过一篇有关LCD字符液晶显示的帖子,当时只是简单的展示了一下LCD1602字符液晶最基本的显示,对液晶的配置也只是使用了里面最简单的配置,没有使用自定义字符,至于使用过程中应该注意的一些问题大家可参考我前面发表的学习心得帖子之【PSOC3】+迟来的学习心得。今天要分享的是我对LCD1602液晶深层次的配置学习:自定义字符。这也是我在学习了坛友ming1006分享的对液晶的学习方面的一些心得后所想到的,看到后对液晶上面显示的心图形比较感兴趣,就又对LCD1602字符液晶进行了进一步学习,在此也向ming1006表示感谢。完全使用自定义字符的学习,ming1006已经分享,我就不再重复,今天分享的主要是对液晶配置中的垂直条形图(Vertical Bargragh)和水平条形图(Horizontal Bargragh)的学习。
垂直条形图
打开液晶配置窗口,如上图所示,大家可以看到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种不同类型的原因所在,如下图所示:
水平条形图
根据上面对绘制垂直条形图函数LCD_Char_DrawHorizontalBG()的说明,我们就可以通过对函数中不同参数的控制,来实现我们想要显示的条形图,以次来模仿音符跳动的效果,我这里只是做了一个最基本的演示,使用垂直条形图来演示音符的跳动,大家如果想模拟显示不同的音符,只需控制显示不同的垂直条形图即可。水平条形图的控制和显示方法与垂直条形图一样,想必大家看了上面的注解后应该也都明白了,在此我就不再重复。下面是一个简短的视频演示,大家有兴趣的可以看一下,具体的工程大家可下载附件查看。 |