kaily 发表于 2025-9-16 17:03:58

2.14         串口实验 -- 串口通讯(硬件UART2与UART3收发通讯)

2.14.1            实验介绍
                                    1、熟悉串口2/UART2和串口3/UART3的通讯原理                                    2、熟悉STC8H8K64U实验箱及其原理图                                    3、熟练使用AiCube-ISP软件                                    4、认识USB转双串口工具@Ai8H2K12U、杜邦线、USB转串口/TTL连接线                                    5、熟悉如何管理多文件项目
2.14.1.1         认识STC8H8K64U实验箱                                    STC8H8K64U实验箱正面图:                                                                        1、J8:将STC8H8K64U实验箱上“J8跳线”跳线连上,使主控芯片UART2的P4.7/TxD2_2与UART3的P5.0/TxD3联通。                                                实现本实验要求的串口2/UART2和串口3/UART3收发通讯。(详见J7和J8跳线原理图)                                    2、J7:STC8H8K64U实验箱上J7的Pin2通过1根杜邦线连接UART3的P5.1/TxD3到双串口工具(Ai8H2K12U)S-TxD2,                                             使主控芯片UART3的P5.1/TxD3发送的串口数据在电脑端显示。(详见J7和J8跳线原理图)

2.14.1.2         2根杜邦线(1公头、1母头)
                                    

2.14.1.3         USB转串口/TTL连接线
                                    

2.14.1.4         USB转双串口工具@Ai8H2K12U:正面
                                    

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

kaily 发表于 2025-9-16 18:03:00

2.15            串口实验 -- 串口通讯(硬件UART2与UART3数据透传)

2.15.1             实验介绍
                                    1、了解双串口数据透传的原理及应用                                    2、熟悉STC8H8K64U实验箱及其原理图                                    3、熟练使用AiCube-ISP系统软件                                    4、认识USB转双串口工具@Ai8H2K12U、杜邦线、USB转串口/TTL连接线                                    5、熟悉如何管理多文件项目
2.15.1.1         认识STC8H8K64U实验箱                                    STC8H8K64U实验箱正面图:                                                                         1、J8:      STC8H8K64U实验箱上J8的Pin1通过1根杜邦线将UART2的P4.7/TxD2_2发送脚与双串口工具(Ai8H2K12U)的S-TxD相连接;                                                   STC8H8K64U实验箱上J8的Pin2通过1根杜邦线将UART3的P5.0/RxD3接收脚与双串口工具(Ai8H2K12U)的S-RxD2相连接。                                                   (详见J7和J8跳线原理图)                                    2、J7:      STC8H8K64U实验箱上J7的Pin1通过1根杜邦线将UART2的P4.6/RxD2_2接收脚与双串口工具(Ai8H2K12U)的S-RxD相连接;                                                   STC8H8K64U实验箱上J7的Pin2通过1根杜邦线将UART3的P5.1/TxD3发送脚与双串口工具(Ai8H2K12U)的S-TxD2相连接。                                                   (详见J7和J8跳线原理图)
2.15.1.2         5根杜邦线(1公头、1母头)
                                    

2.15.1.3         USB转串口/TTL连接线
                                     https://www.stcaimcu.com/data/attachment/forum/202509/16/170223gfx31zpxllb1xil1.jpg

2.15.1.4         USB转双串口工具@Ai8H2K12U:正面
                                     https://www.stcaimcu.com/data/attachment/forum/202509/16/170231mhs2g359jg8jd8e8.jpg

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

kaily 发表于 2025-9-17 10:23:02

2.16             串口实验 -- 串口1_2_3_4(中断设置标志位,主循环查询),演示实验
                            演示串口1、串口2、串口3、串口4中断同时打开时,                            在各自的中断程序中设置中断事件标志位,                            标志已产生相应的中断,在主循环中查询中断事件标志位,                            来处理不是特急处理的任务,不堵塞其他中断

2.17            串口实验 -- 串口1_2_3_4 + 定时器0_1_3_4 +
                     外部中断INT0_1_2_3 (中断设置标志位,主循环查询),演示实验
                            演示串口1/串口2/串口3/串口4 + 定时器0/1/3/4 + INT0/1/2/3中断同时打开时,                            在各自的中断程序中设置中断事件标志位,标志已产生相应的中断,                            在主循环中查询中断事件标志位,来处理不是特急处理的任务,不堵塞其他中断

kaily 发表于 2025-9-17 11:08:39

2.18         串口实验 -- 串口通讯(串口通讯,串口绘图,ADC检测按键,ADC热敏电阻测温)

2.18.1            实验介绍                                 1、本实验项目主要目的:                                        Ø掌握串口通讯,了解串口绘图工具                                        Ø继续熟悉ADC的应用,熟悉ADC检测按键,熟悉ADC热敏电阻(NTC)测温                                 2、掌握STC8H8K64U实验箱原理图中的串口通信部分电路,ADC应用部分电路                                 3、继续熟悉AiCube-ISP系统软件中串口助手工具,了解串口绘图工具                                 4、掌握USB转双串口工具@Ai8H2K12U的原理及应用                                 5、继续熟悉如何管理多文件项目
2.18.1.1          认识STC8H8K64U实验箱                                 STC8H8K64U的实验箱正面图(稍微倾斜角度拍摄,便于看清跳线引脚):                                                                  1、J8:STC8H8K64U实验箱上J8的PIN1通过1根杜邦线将UART2的P4.7/TxD2_2发送脚和双串口工具(Ai8H2K12U)的S-TxD2相连接。(详见J7和J8跳线原理图)                                 2、J7:STC8H8K64U实验箱上J7的PIN1通过1根杜邦线将UART2的P4.6/RxD2_2接收脚和双串口工具(Ai8H2K12U)的S-RxD2相连接。(详见J7和J8跳线原理图)                                 3、NTC跳线:Negative Temperature Coefficient thermistor,即“负温度系数热敏电阻”,其电阻值随温度升高而减小,                                                       ADC测温通过ADC3通道采集NTC温敏电阻的电压值来计算出温度值。详见NTC原理图所示。                                                       NTC温敏电阻与10K精密电阻R171串联分压后的电压输入到ADC3脚位,而温敏电阻随温度变化,                                                       阻值会产生变化,从而导致分压电压跟着改变,于是通过ADC采集分压电压值进行ADC转换,                                                       将转换的ADC结果通过UART2串口发送到“串口绘图”显示实时采样数据。                                 4、ADC按键:按下不同的ADC按键可以改变P1.0-ADC-KEY脚的电压,ADC通过采集P1.0-ADC-KEY脚的电压进行ADC转换,                                                      然后将转换的ADC结果通过UART2串口发送到“串口绘图”显示实时采样数据。
2.18.1.2         2根杜邦线(1公头、1母头)
                                 

2.18.1.3         USB转串口/TTL连接线
                                 

2.18.1.4         USB转双串口工具@Ai8H2K12U:正面
                                 

2.18.1.5         USB转双串口工具@Ai8H2K12U:背面
                                 

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



kaily 发表于 2025-9-17 11:47:29

2.19            大型综合实战 -- 模拟RTC时钟+数码管+ADC检测按键(查询)

2.19.1                实验介绍                                    1、熟悉ADC按键扫描方法                                    2、了解使用P6、P7口控制LED数码管                                    3、熟悉软件模拟RTC,实现RTC的时、分、秒控制和设置                                    4、扩展部分:如何实现长按键                                    5、熟悉STC8H8K64U实验箱布局及原理图,熟练使用AiCube-ISP系统软件                                    6、熟悉如何管理多文件项目
2.19.1.1             ADC键盘计算键码说明
                                    本ADC键盘方案在很多实际产品设计中,验证了其稳定可靠,即使按键使用导电膜,都很可靠。                                    12位ADC的转换结果范围位0 ~4095,16个键直接使用相同的电阻进行分压,                                    理论上各个键对应的ADC值为 (4096 / 16) * k = 256 * k,k = 1 ~ 16。                                    特别的,k=16时,对应的ADC值是4095。                                    但是实际会有偏差,则判断时限制这个偏差,ADC_OFFSET为+/-偏差,                                    则ADC值在 (256 * k - ADC_OFFSET) 与 (256 * k + ADC_OFFSET)之间为键有效。                                    间隔一定的时间,就采样一次ADC,比如10ms。                                    为了避免偶然的ADC值误判,或者避免ADC在上升或下降时误判,使用连续3次ADC值均在偏差范围内时,ADC值才认为有效。                                    以上算法,能保证读键非常可靠。
2.19.1.2             ADC按键实验现象和操作说明
                                    将本项目的HEX文件下载到STC8H8K64U的实验箱后                                    1、在LED数码管的高6位会动态显示当前的RTC时间,低2位会显示按下的ADC按键的键码                                                                        2、按下16个ADC按键之一后:                                           Ø   在LED数码管的低2位会显示当前的按键键码                                    3、ADC按键中的按键F,是RTC模式设置键                                           Ø   上电后RTC为正常工作模式,此时数码管动态显示RTC时间                                           Ø   按一次按键F,RTC会切换为小时设置模式,此时RTC的小时值会0.5秒闪烁一次                                           Ø   再按一次按键F,RTC会切换为分钟设置模式,此时RTC的分钟值会0.5秒闪烁一次                                           Ø   再按一次按键F,RTC会切换为秒钟设置模式,此时RTC的秒钟值会0.5秒闪烁一次                                           Ø   再按一次按键F,恢复为RTC正常工作模式                                    4、ADC按键中的按键D和E分别是上调键和下调键                                           Ø   只有在RTC的时/分/秒设置模式时,上调键和下调键才有效                                    5、时钟设置模式时,长按按键D或E,可实现快速设置功能
2.19.1.3             按键扫描说明
                                    如按键要判断为正常按下,而不是抖动,需要该按键保持按下持续时间是20ms ~ 50ms;                                    主循环中有个10ms的时间基准,将按键扫描程序作为10ms事件,按键的值检测3次都在有效范围内,即30ms去抖动处理,得到稳定的键码。
2.19.1.4             Keil环境下多文件项目管理说明
                                    当项目的功能比较复杂时,就需要在Keil中建立多文件项目,以方便分工合作、代码复用、模块化管理、增强可读性和可维护性。                                           Ø   比较好的建议是将项目功能模块化,不同模块的实现代码放在不同的.c文件中。                                           Ø   一般建议是一个模块对应一个.c程序文件和一个.h头文件                                           Ø   模块的初始化函数以及相关的数据处理函数都在.c文件中实现                                           Ø   与模块相关的全局变量也必须在.c文件中进行定义,一定不能在.h文件中定义变量                                           Ø   如果有其他模块需要使用本模块定义的变量或函数,则这些函数和变量都需要在.h文件中声明。                                           Ø   特别提醒:在.h文件中声明外部变量必须使用extern关键字,否则就变成变量定义了,这样会出现变量重复定义的错误                                           Ø   为防止头文件被多次包含而产生错误或者警告,在头文件中使用类似如下的条件编译组合语句,可避免在同一个.c文件中对同一个.h头文件进行多次包含:                                                #ifndef XXXX                                                #define XXXX                                                ...                                                #endif
2.19.2                原理图

2.19.2.1             ADC按键原理图
                                    

2.19.2.2             P6、P7口控制数码管原理图
                                       

kaily 发表于 2025-9-17 14:08:48

2.20             ADC实验 -- 数码管+ NTC热敏电阻+ADC测温(中断方式)

2.20.1                实验介绍
                                    1、熟悉ADC工作原理,了解使用ADC数据采集热敏电阻NTC方法                                    2、NTC介绍,了解NTC工作原理                                    3、熟练使用P6、P7口控制LED数码管                                    4、了解二分搜索算法                                    5、熟悉STC8H8K64U实验箱原理图与AiCube-ISP系统软件的应用                                    6、本项目主要熟悉如何管理多文件项目
2.20.1.1             ADC通过采集NTC热敏电阻的电压值进行测温
                                       NTC thermistor,即 Negative Temperature Coefficient thermistor,即“负温度系数热敏电阻”,其电阻值随温度升高而减小,                                       ADC测温通过ADC3通道采集NTC热敏电阻的电压值来计算出温度值。如图所示,                                       NTC热敏电阻与10K精密电阻R171串联分压后的电压输入到ADC3脚位,而热敏电阻随温度变化,阻值会产生变化,                                       从而导致分压电压跟着改变,于是通过ADC采集分压电压值,再根据热敏电阻的温度与阻值变化特性关系就能计算出温度值。                                       
                                       本实验程序通过查表法计算温度值,使用Excel软件生成温度与ADC读数对应表,放到程序 temp_table 数组里,供查表计算使用:                                       
                                       表格存放从 -40~120度对应的ADC数据,分度值为1度,ADC采集到的NTC数据与表格进行比较,从表格里找到最接近的数据所对应的温度就是当前NTC感应到的温度。                                       为了从表格里快速查找最接近的数据,我们采用二分法查表加快查找速度。                                       例如: -40度数据存放在数组temp_table,120度数据存放在数组temp_table,取中间的temp_table数据跟ADC采样数据进行对比,                                       如果ADC采样数据小于temp_table,就可以排除后面一半表格的数据,从前面一半数据里面再次进行对分比较,依此类推:                                              160 / 2 = 80                                              80 / 2 = 40                                              40 / 2 = 20                                              20 / 2 = 10                                              10 / 2 = 5                                       经过5次对分查表后,剩下的数据只有temp_table~temp_table 这几个数据,然后进行逐个比较,                                       如果ADC采样数据跟其中一个数据正好相等的话,那么当前温度值就是这个数据所对应的温度。                                       如果ADC采样数据在两个表格数据之间,则进行线性插补。                                       例如:ADC采样数据为2063,经过比较后发现在表格数据的2048(25度)与2093(26度)之间,则计算其百分比值作为温度的小数值。                                       为了方便计算,我们将最终数据放大10倍,这样就可以使用整数计算,提高计算速度:                                       1度的差值:2093 - 2048= 45                                       当前读数不满1度的值:2063 - 2048 = 15                                       计算小数部分,放大10倍:15*10 / 45 = 3            //取整                                       从而得出当前温度值为25.3度。                                       为了避免浮点计算,本实验使用整数来处理,人为规定一个0点(即定点计算),并且温度值扩大10倍(即分辨率为0.1度),                                       表格中0度对应的数据序号是40,扩大10倍为400,即400表示0度,大于400为正的温度,小于400为负的温度。                                       比如查表计算的结果是653,则实际温度为(653-400)/10 = 25.3度。                                       比如查表计算的结果是300,则实际温度为(300-400)/10 = -10.0度。
2.20.1.2            操作说明和实验现象
                                       将本项目的HEX文件下载到STC8H8K64U的实验箱后                                       1、测量NTC温度,需要短接试验箱J14左侧两个跳线,才能连接NTC到芯片ADC脚:                                       
                                       2、在LED数码管上面低4位会动态显示当前的NTC测量的温度,高4位显示NTC的ADC值补码:                                       
                                       3、NTC热敏电阻在NTC跳线旁边,用手指触摸,或者向其吹气,可改变测量的温度值:                                       
2.20.1.3             Keil环境下多文件项目管理说明
                                       当项目的功能比较复杂时,就需要在Keil中建立多文件项目,以方便分工合作、代码复用、模块化管理、增强可读性和可维护性。                                              Ø   比较好的建议是将项目功能模块化,不同模块的实现代码放在不同的.c文件中。                                              Ø   一般建议是一个模块对应一个.c程序文件和一个.h头文件                                              Ø   模块的初始化函数以及相关的数据处理函数都在.c文件中实现                                              Ø   与模块相关的全局变量也必须在.c文件中进行定义,一定不能在.h文件中定义变量                                              Ø   如果有其他模块需要使用本模块定义的变量或函数,则这些函数和变量都需要在.h文件中声明。                                              Ø   特别提醒:在.h文件中声明外部变量必须使用extern关键字,否则就变成变量定义了,这样会出现变量重复定义的错误                                              Ø   为防止头文件被多次包含而产生错误或者警告,在头文件中使用类似如下的条件编译组合语句,可避免在同一个.c文件中对同一个.h头文件进行多次包含:                                                   #ifndef XXXX                                                   #define XXXX                                                   ...                                                   #endif
2.20.2               原理图

2.20.2.1            NTC温度检测原理图
                                       

2.20.2.2                  P6、P7口控制数码管原理图                                       


kaily 发表于 2025-9-17 14:40:47

2.21            大型综合实战 -- 课程设计:硬件SPI读写串行Flash

2.21.1                实验介绍
                                    1、本实验项目主要目的:                                          Ø掌握串口通讯                                          Ø硬件SPI读写串行Flash                                    2、掌握STC8H8K64U实验箱原理图中的串口通信电路、硬件SPI电路                                    3、熟练使用AiCube-ISP系统软件                                    4、了解USB Link1D工具的原理及使用                                    5、熟悉如何管理多文件项目
2.21.1.1             认识STC8H8K64U的实验箱
                                    STC8H8K64U的实验箱正面图:                                                                        J6:串口1的TypeC接口。本实验需要用专门定制的USB转串口/TTL(连接USB Link1D工具) - TypeC(连接实验箱J6)接口线相连。(详见J6原理图)                                    SPI-Flash:详见STC8H8K64U实验箱中U6原理图
2.21.1.2             专门定制的USB转串口/TTL - TypeC接口线
                                    

2.21.1.3             USB Link1D工具                                     
2.21.1.4             STC8H8K64U实验箱通过USB Link1D工具与电脑连接图
                                       
2.21.1.5             按键去抖动说明
                                    如按键要判断为正常按下,而不是抖动,需要该按键保持按下持续保持为低状态时间是20ms ~ 50ms;                                    主循环中有个1ms的时间基准,将按键扫描程序作为1ms事件,按键状态维持50ms不变,即可对按键去抖动,得到稳定的键码。
2.21.1.6             Keil环境下多文件项目管理说明
                                    当项目的功能比较复杂时,就需要在Keil中建立多文件项目,以方便分工合作、代码复用、模块化管理、增强可读性和可维护性‌。                                          Ø   比较好的建议是将项目功能模块化,不同模块的实现代码放在不同的.c文件中。                                          Ø   一般建议是一个模块对应一个.c程序文件和一个.h头文件                                          Ø   模块的初始化函数以及相关的数据处理函数都在.c文件中实现                                          Ø   与模块相关的全局变量也必须在.c文件中进行定义,一定不能在.h文件中定义变量                                          Ø   如果有其他模块需要使用本模块定义的变量或函数,则这些函数和变量都需要在.h文件中声明。                                          Ø   特别提醒:在.h文件中声明外部变量必须使用extern关键字,否则就变成变量定义了,这样会出现变量重复定义的错误                                          Ø   为防止头文件被多次包含而产生错误或者警告,在头文件中使用类似如下的条件编译组合语句,可避免在同一个.c文件中对同一个.h头文件进行多次包含:                                                    #ifndef XXXX                                                    #define XXXX                                                    ...                                                    #endif
2.21.2                原理图                                                                              

kaily 发表于 2025-9-17 15:20:02

2.22             SPI实验 -- 硬件SPI驱动OLED显示图片、图形、字符

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