2.26 深大实验--硬件SPI驱动OLED显示图片、图形、字符
2.26.1. 实验介绍 1、本实验项目主要目的: Ø 硬件SPI驱动OLED显示 Ø 如何实现显示图片、6*8点阵字符、8*16点阵字符、16*16点阵汉字 Ø 如何画直线、方框、圆 2、掌握Ai8051U实验箱原理图中SPI驱动OLED电路 3、了解图片取模的原理,并熟练使用AIapp-ISP系统软件中图片取模工具 4、了解字库生成原理,并熟练使用AIapp-ISP系统软件中字库生成工具 5、继续熟悉如何管理多文件项目
2.26.1.1. Aiapp-ISP系统软件图片取模工具的使用 打开AIapp-ISP系统软件: Ü 点击菜单栏“工具”à“图片取模工具”,打开“图片取模工具”浮窗 Ü 点击“打开图片”按钮,选择准备要取模的图片 Ü 点击“打开”按钮 如下图: 此时,在打开的“图片取模工具”浮窗,我们看到被选择的图片显示在原始图片区和转换后的图片区: Ü 扫描模式:选择“垂直扫描,从左到右,从上到下” Ü 存储顺序:选择“高位在前” Ü 数据格式:选择“C表格格式” Ü 勾选“图片反色” Ü 设置:宽度:128;高度:64;输出格式:1位单色 Ü 点击“开始转换” 就会生成相应的点阵图片C代码,如下图: 将点阵图片生成的C代码数据拷贝出来,本例是将此段代码放在“pic.h”中,形成表格数据,方便程序加载并在OLED上显示出来。
2.26.1.2. Aiapp-ISP系统软件字库生成工具的使用 打开AIapp-ISP系统软件,点击菜单栏“工具”à“字库生成工具”,打开“字库生成工具”浮窗: Ü 在“输入字符”区输入想要取模的文字,本例输入“深圳大学” Ü 点击第一行的工具栏上的“汉”按钮,打开“设置字体”浮窗,字库字体选择“宋体” Ü 扫描模式:选择“垂直扫描,从左到右,从上到下” Ü 数据格式:选择“C表格-格式2(后索引模式)” Ü 存储顺序:选择“低位在前” Ü 点击“生成字库” 就会生成相应的点阵字库代码,如下图: 将点阵字库生成的C代码拷贝出来,本例是将此段代码放在“font.h”中,形成表格数据,方便程序查询并提取字库。
2.26.1.3. 使用Aiapp-ISP系统软件图片取模工具生成ASCII的点阵字符C代码 在AIapp-ISP系统软件的字库生成工具中,我们除了可以像上述操作步骤生成标准点阵字符C代码,还可以自己手动描点生成自己想要的点阵字符C代码。 打开AIapp-ISP系统软件,点击菜单栏“工具”à“字库生成工具”,打开“字库生成工具”浮窗。 先进行相应的设置: Ü 点击“字库生成工具”浮窗第一行的“M”按钮,清空字符点阵区域 Ü 确定点阵宽度:6;点阵高度:8(本例中有6*8的点阵ASCII字符C代码数据和8*16的点阵ASCII字符代码数据) Ü 扫描模式:选择“垂直扫描,从左到右,从上到下” Ü 数据格式:选择“C表格-格式1(纯数据格式)” Ü 存储顺序:选择“低位在前” 如下图: 现在手动用鼠标在窗口左上角点阵描图区域,进行描图。 以ASCII码的“0”为例,进行如下图中的描绘,再点击“生成字库”按钮,即可生成相应的字库C代码数据。 以此类推,生成自己想要的全部ASCII码的点阵字库C代码数据。 将点阵字库生成的C代码拷贝出来,本例是将此段代码放在“ascii.h”中,形成表格数据,方便程序查询并提取字库。
2.26.1.4. 认识Ai8051U实验箱和OLED屏 Ai8051U实验箱: J9:OLED插座。Ai8051U实验箱上的J9插座可插7线或8线的OLED屏,本实验使用的OLED屏是7线,第8脚浮空。 详见Ai8051U实验箱中J9原理图。
OLED屏
2.26.1.5. Keil环境下多文件项目管理说明 当项目的功能比较复杂时,就需要在Keil中建立多文件项目,以方便分工合作、代码复用、模块化管理、增强可读性和可维护性。 Ø 比较好的建议是将项目功能模块化,不同模块的实现代码放在不同的.c文件中。 Ø 一般建议是一个模块对应一个.c程序文件和一个.h头文件 Ø 模块的初始化函数以及相关的数据处理函数都在.c文件中实现 Ø 与模块相关的全局变量也必须在.c文件中进行定义,一定不能在.h文件中定义变量 Ø 如果有其他模块需要使用本模块定义的变量或函数,则这些函数和变量都需要在.h文件中声明。 Ø 特别提醒:在.h文件中声明外部变量必须使用extern关键字,否则就变成变量定义了,这样会出现变量重复定义的错误 Ø 为防止头文件被多次包含而产生错误或者警告,在头文件中使用类似如下的条件编译组合语句,可避免在同一个.c文件中对同一个.h头文件进行多次包含: #ifndef XXXX #define XXXX ... #endif
|