找回密码
 立即注册
楼主: kaily

Ai8051U-实验指导书:实验内容与源代码

[复制链接]
  • 打卡等级:常住居民I
  • 打卡总天数:79
  • 最近打卡:2025-09-08 09:33:55

5

主题

201

回帖

1201

积分

超级版主

积分
1201
发表于 6 天前 | 显示全部楼层
2.25         大型综合实战--大学课程设计:硬件SPI读写串行Flash

2.25.1.           实验介绍
                                 1、本实验项目主要目的:
                                      Ø  掌握串口通讯
                                      Ø  硬件SPI读写串行Flash
                                 2、掌握Ai8051U实验箱原理图中的串口通信电路、硬件SPI电路
                                 3、熟悉AIapp-ISP系统软件中串口助手工具
                                 4、熟悉如何管理多文件项目

2.25.1.1.        按键去抖动说明
                                 如按键要判断为正常按下,而不是抖动,需要该按键保持按下持续保持为低状态时间是20ms ~ 50ms
                                 主循环中有个1ms的时间基准,将按键扫描程序作为1ms事件,按键状态维持50ms不变,即可对按键去抖动,得到稳定的键码。

2.25.1.2.        实验现象和操作说明
                                 Ai8051U的实验箱正面图:
                                  截图202509081102021112.jpg

                                 1、J20:          USB转双串口U2(Ai8H2K12U)TypeC接口。本实验需要用TypeA(连接电脑)-TypeC(连接实验箱J20)线相连。
                                                      (详见Ai8051U实验箱中J20-U2原理图)
                                 2、J18跳线:   本实验需要将实验箱上“J18跳线C”的跳线连上。
                                     Ø  J18.C:   使主控芯片UART1的P3.7/TxD_2与双串口U2(Ai8H2K12U)联通。
                                                       详见Ai8051U实验箱中J18跳线原理图
                                 3SPI-Flash:详见Ai8051U实验箱中U6原理图

2.25.1.3.          Keil环境下多文件项目管理说明
                                 当项目的功能比较复杂时,就需要在Keil中建立多文件项目,以方便分工合作、代码复用、模块化管理、增强可读性和可维护性
                                     Ø   比较好的建议是将项目功能模块化,不同模块的实现代码放在不同的.c文件中。
                                     Ø   一般建议是一个模块对应一个.c程序文件和一个.h头文件
                                     Ø   模块的初始化函数以及相关的数据处理函数都在.c文件中实现
                                     Ø   与模块相关的全局变量也必须在.c文件中进行定义,一定不能在.h文件中定义变量
                                     Ø   如果有其他模块需要使用本模块定义的变量或函数,则这些函数和变量都需要在.h文件中声明。
                                     Ø   特别提醒:在.h文件中声明外部变量必须使用extern关键字,否则就变成变量定义了,这样会出现变量重复定义的错误
                                     Ø   为防止头文件被多次包含而产生错误或者警告,在头文件中使用类似如下的条件编译组合语句,可避免在同一个.c文件中对同一个.h头文件进行多次包含:
                                              #ifndef XXXX
                                              #define XXXX
                                              ...
                                              #endif

截图202509081102388684.jpg

Project-SPI(硬件SPI读写串行Flash)-Ai8051U.zip (17.41 KB, 下载次数: 2)
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:79
  • 最近打卡:2025-09-08 09:33:55

5

主题

201

回帖

1201

积分

超级版主

积分
1201
发表于 6 天前 | 显示全部楼层
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系统软件:
                                     Ü  点击菜单栏“工具”à“图片取模工具”,打开“图片取模工具”浮窗
                                     Ü  点击“打开图片”按钮,选择准备要取模的图片
                                     Ü  点击“打开”按钮
                                如下图:
                                 截图202509081131114857.jpg   
                                此时,在打开的“图片取模工具”浮窗,我们看到被选择的图片显示在原始图片区和转换后的图片区:
                                     Ü  扫描模式:选择“垂直扫描,从左到右,从上到下”
                                     Ü  存储顺序:选择“高位在前”
                                     Ü  数据格式:选择“C表格格式”
                                     Ü  勾选“图片反色”
                                     Ü  设置:宽度:128;高度:64;输出格式:1位单色
                                     Ü  点击“开始转换”
                                就会生成相应的点阵图片C代码,如下图:
                                 截图202509081131281272.jpg
                                将点阵图片生成的C代码数据拷贝出来,本例是将此段代码放在“pic.h”中,形成表格数据,方便程序加载并在OLED上显示出来。

2.26.1.2.        Aiapp-ISP系统软件字库生成工具的使用
                                打开AIapp-ISP系统软件,点击菜单栏“工具”à“字库生成工具”,打开“字库生成工具”浮窗:
                                     Ü  在“输入字符”区输入想要取模的文字,本例输入“深圳大学”
                                     Ü  点击第一行的工具栏上的“汉”按钮,打开“设置字体”浮窗,字库字体选择“宋体”
                                     Ü  扫描模式:选择“垂直扫描,从左到右,从上到下”
                                     Ü  数据格式:选择“C表格-格式2(后索引模式)”
                                     Ü  存储顺序:选择“低位在前”
                                     Ü  点击“生成字库”
                                就会生成相应的点阵字库代码,如下图:
                                 截图202509081131459396.jpg
                                将点阵字库生成的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(纯数据格式)”
                                     Ü  存储顺序:选择“低位在前”
                                如下图:
                                  截图202509081132012009.jpg
                                现在手动用鼠标在窗口左上角点阵描图区域,进行描图。
                                ASCII码的“0”为例,进行如下图中的描绘,再点击“生成字库”按钮,即可生成相应的字库C代码数据。
                                以此类推,生成自己想要的全部ASCII码的点阵字库C代码数据。
                                将点阵字库生成的C代码拷贝出来,本例是将此段代码放在“ascii.h”中,形成表格数据,方便程序查询并提取字库。
                                 截图202509081132219083.jpg

2.26.1.4.        认识Ai8051U实验箱和OLED
                                Ai8051U实验箱:
                                 截图202509081132331031.jpg
                                J9:OLED插座。Ai8051U实验箱上的J9插座可插7线或8线的OLED屏,本实验使用的OLED屏是7线,第8脚浮空。
                                      详见Ai8051U实验箱中J9原理图。

                                OLED屏
                                 截图202509081132445074.jpg

2.26.1.5.        Keil环境下多文件项目管理说明
                                当项目的功能比较复杂时,就需要在Keil中建立多文件项目,以方便分工合作、代码复用、模块化管理、增强可读性和可维护性
                                     Ø   比较好的建议是将项目功能模块化,不同模块的实现代码放在不同的.c文件中。
                                     Ø   一般建议是一个模块对应一个.c程序文件和一个.h头文件
                                     Ø   模块的初始化函数以及相关的数据处理函数都在.c文件中实现
                                     Ø   与模块相关的全局变量也必须在.c文件中进行定义,一定不能在.h文件中定义变量
                                     Ø   如果有其他模块需要使用本模块定义的变量或函数,则这些函数和变量都需要在.h文件中声明。
                                     Ø   特别提醒:在.h文件中声明外部变量必须使用extern关键字,否则就变成变量定义了,这样会出现变量重复定义的错误
                                     Ø   为防止头文件被多次包含而产生错误或者警告,在头文件中使用类似如下的条件编译组合语句,可避免在同一个.c文件中对同一个.h头文件进行多次包含:
                                          #ifndef XXXX
                                          #define XXXX
                                          ...
                                          #endif

截图202509081133418351.jpg

Project-SPI(硬件SPI驱动OLED显示图片、图形、字符)-Ai8051U.zip (175.41 KB, 下载次数: 2)

回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-9-14 16:31 , Processed in 0.115808 second(s), 53 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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