kaily 发表于 2025-9-5 11:25:17

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

2.14.1.      实验介绍
                           1、熟悉串口1/UART1和串口2/UART2的通讯原理
                           2、了解Ai8051U实验箱布局及其原理图
                           3、熟悉AIapp-ISP系统软件的应用
                           4、熟悉如何管理多文件项目

2.14.1.1.    认识实验箱
                           Ai8051U的实验箱正面图:
                           
                           1、J20:       USB转双串口U2(Ai8H2K12U)TypeC接口。本实验需要用TypeA(连接电脑)-TypeC(连接实验箱J20)线相连。(详见J20-U2原理图)
                           2、J18跳线:本实验需要将实验箱上“J18跳线A”的跳线连上。使主控芯片UART2的P4.3/TxD2_2与双串口U2(Ai8H2K12U)联通。(详见J18跳线原理图)
                           3、S2开关:S2开关默认是“断”,本实验要将S2开关拨到“通”,使主控芯片UART1的P3.7/TxD_2与UART2的P4.2/RxD2_2联通。
                                             UART1与UART2通讯时,LED10与LED11会闪烁。(详见S2开关原理图)

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





kaily 发表于 2025-9-5 14:23:40

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

2.15.1.            实验介绍

                                       1、 熟悉双串口数据透传的应用                                       2、 了解Ai8051U实验箱原理图与AIapp-ISP系统软件的应用                                       3、 熟悉如何管理多文件项目

2.15.1.1.      认识实验箱

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

2.15.1.2.          Keil环境下多文件项目管理说明

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



kaily 发表于 2025-9-5 14:39:25

2.16      大型综合实战--深大课程设计:硬件UART1发送按键码,接收端蜂鸣器根据收到的键码发声

2.16.1.      实验介绍

                            1、熟悉串口互联收发功能的使用                            2、熟悉矩阵式按键扫描方法                            3、I/O控制无源蜂鸣器发声,Key0~ Key7按键按下,会发出对应的Do/Re/Mi/Fa/So/La/Si/Do音符                            4、熟悉Ai8051U实验箱原理图与AIapp-ISP系统软件的应用                            5、熟悉如何管理多文件项目

2.16.1.1.   按键扫描说明

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

2.16.1.2.    实验现象和操作说明

                            Ai8051U的实验箱正面图:                           
                            1、矩阵式键盘:在实验箱A按下按键Key0 ~ Key7,实验箱B的蜂鸣器会发出对应的Do/Re/Mi/Fa/So /La/Si/Do音符                            2、蜂鸣器跳线:需要将实验箱上“跳线3:蜂鸣器/原理图标号是J1C”的跳线连上,蜂鸣器才会发声                            3、J6串口通讯接口(见原理图J6):通过3根或4根杜邦线连接2个Ai8051U实验箱,实现串口通讯。注意:本实验通过UART1串口通讯:                                  Ø   用3根杜邦线,使实验箱A的J6.5(P3.7)、J6.6(P3.6)、J6.7(Gnd)连接                                                               实验箱B的J6.6(P3.6)、J6.5(P3.7)、J6.7(Gnd),2个实验箱都通过电脑供电;                                  Ø   用4根杜邦线,使实验箱A的J6.4(SYS-Vcc)、J6.5(P3.7)、J6.6(P3.6)、J6.7(Gnd)连接                                                               实验箱B的J6.4(SYS-Vcc)、J6.6(P3.6)、J6.5(P3.7)、J6.7(Gnd),                                       这样连接电脑的实验箱就可以给另一个实验箱供电,不需要2个实验箱都通过电脑供电。                            4、杜邦线:3根/4根                                                                        

2.16.1.3.      Keil环境下多文件项目管理说明

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


kaily 发表于 2025-9-5 14:52:11

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

2.17.1.      实验介绍

                            1、本实验项目主要目的:                                  Ø掌握串口通讯,了解串口绘图工具                                  Ø继续熟悉ADC的应用,熟悉ADC检测按键,熟悉ADC热敏电阻(NTC)测温                            2、掌握Ai8051U实验箱原理图中的串口通信部分电路,ADC应用部分电路                            3、继续熟悉AIapp-ISP系统软件中串口助手工具,了解串口绘图工具                            4、继续熟悉如何管理多文件项目
2.17.1.1.   认识实验箱

                            Ai8051U的实验箱正面图:                                                        1、J20:      USB转双串口U2(Ai8H2K12U)TypeC接口。本实验需要用TypeA(连接电脑)-TypeC(连接实验箱J20)线相连。(详见J20-U2原理图)                            2、J18跳线 :本实验需要将实验箱上“J18跳线C”的跳线连上。                                                 ØJ18.C :使主控芯片UART1的P3.7/TxD_2与双串口U2(Ai8H2K12U)联通。                                                               详见J18跳线原理图                            3、NTC跳线:Negative Temperature Coefficient thermistor,即“负温度系数热敏电阻”,                                                其电阻值随温度升高而减小,ADC测温通过ADC3通道采集NTC温敏电阻的电压值来计算出温度值。                                                详见NTC原理图所示,NTC温敏电阻与10K精密电阻R165串联分压后的电压输入到ADC3脚位,                                                而温敏电阻随温度变化,阻值会产生变化,从而导致分压电压跟着改变,                                                于是通过ADC采集分压电压值进行ADC转换,将转换的ADC结果通过UART1串口发送到“串口绘图”显示实时采样数据。                            4、ADC按键:按下不同的ADC按键可以改变P1.0-ADC-KEY脚的电压,ADC通过采集P1.0-ADC-KEY脚的电压进行ADC转换,                                                 然后将转换的ADC结果通过UART1串口发送到“串口绘图”显示实时采样数据。
2.17.1.2.      Keil环境下多文件项目管理说明

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

kaily 发表于 2025-9-5 16:33:52

2.18             深大实验-串口通讯(硬件UART1与UART2收发通讯-奇偶校验)

2.18.1.            实验介绍
                                       1、熟悉串口1/UART1和串口2/UART2的通讯原理                                       2、了解数据奇偶校验原理(本实验使用偶校验)                                              奇偶校验(Parity Check)是一种校验代码传输正确性的方法。                                              根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。                                              采用奇数的称为奇校验,反之,称为偶校验。                                              采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它反映这组代码中“1”的个数为奇数或偶数。                                              若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。                                              若用偶校验,则当接收端收到这组代码时,校验“1”的个数是否为偶数,从而确定传输代码的正确性。                                       3、熟悉Ai8051U实验箱原理图与AIapp-ISP系统软件的应用                                       4、熟悉如何管理多文件项目

2.18.1.1.         认识实验箱                                       Ai8051U的实验箱正面图:                                                                              1、J20:       USB转双串口U2(Ai8H2K12U)TypeC接口。                                                             本实验需要用TypeA(连接电脑)-TypeC(连接实验箱J20)线相连。(详见J20-U2原理图)                                       2、J18跳线:本实验需要将实验箱上“J18跳线A”的跳线连上。                                                             使主控芯片UART2的P4.3/TxD2_2与双串口工具U2(Ai8H2K12U)联通。(详见J18跳线原理图)                                       3、S2开关: S2开关默认是“断”,本实验要将S2开关拨到“通”,使主控芯片UART1的P3.7/TxD_2与UART2的P4.2/RxD2_2联通。                                                             UART1与UART2通讯时,LED10与LED11会闪烁。(详见S2开关原理图)
2.18.1.2.          Keil环境下多文件项目管理说明                                       当项目的功能比较复杂时,就需要在Keil中建立多文件项目,以方便分工合作、代码复用、模块化管理、增强可读性和可维护性‌。                                       Ø   比较好的建议是将项目功能模块化,不同模块的实现代码放在不同的.c文件中。                                       Ø   一般建议是一个模块对应一个.c程序文件和一个.h头文件                                       Ø   模块的初始化函数以及相关的数据处理函数都在.c文件中实现                                       Ø   与模块相关的全局变量也必须在.c文件中进行定义,一定不能在.h文件中定义变量                                       Ø   如果有其他模块需要使用本模块定义的变量或函数,则这些函数和变量都需要在.h文件中声明。                                       Ø   特别提醒:在.h文件中声明外部变量必须使用extern关键字,否则就变成变量定义了,这样会出现变量重复定义的错误                                       Ø   为防止头文件被多次包含而产生错误或者警告,在头文件中使用类似如下的条件编译组合语句,可避免在同一个.c文件中对同一个.h头文件进行多次包含:                                       #ifndef XXXX                                       #define XXXX                                       ...                                       #endif


kaily 发表于 2025-9-5 17:44:48

2.19       深大实验-串口通讯(USB-CDC发命令控制硬件UART1与UART2多机通讯)

2.19.1.         实验介绍                                 1、熟悉串口1/UART1和串口2/UART2的通讯原理                                 2、了解多机通讯原理                                          多机通讯的过程如下:                                          ①置全部从机的SM2=1,处于只接收地址帧状态。                                          ②主机首先发送呼叫地址帧信息,将第9位TB8设置为1,以表示发送的是呼叫地址帧。                                          ③所有从机接收到呼叫地址帧后,各自将接收到的主机呼叫的地址与本机的地址相比较:                                             Ø若比较结果相等,则为被寻址从机,清除SM2=0,准备接收从主机发送的数据帧,直至全部数据传输完;                                             Ø若比较不相等,则为非寻址从机,仍维持SM2=1不变,对其后发来的数据帧不予理睬,                                                    即接收到的数据帧内容不装入SBUF,不置位,RI=0,不会产生中断请求,直至被寻址为止。                                          ④主机在发送完呼叫地址帧后,接着发送一连串的数据帧,其中的第9位TB8=0,以表示为数据帧。                                             只有那些SM2位为0的从机(即已接收地址帧的从机)才会接收数据帧‌。                                          ⑤当主机改变从机通信时间则再发呼叫地址帧,寻呼其他从机,                                             原先被寻址的从机经分析得知主机在寻呼其他从机时,恢复其SM2=1,对其后主机发送的数据帧不予理睬。                                             上述过程均在软件控制下实现。                                 3、熟悉Ai8051U实验箱原理图与AIapp-ISP系统软件的应用                                 4、熟悉如何管理多文件项目

2.19.1.1.      认识实验箱                               Ai8051U的实验箱下方正面图:                                              S2开关:S2开关默认是“断”,本实验要将S2开关拨到“通”,使主控芯片UART1的P3.7/TxD_2与UART2的P4.2/RxD2_2联通。                                                UART1(主机)与UART2(从机)通讯时,LED11会闪烁。(详见S2开关原理图)

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


kaily 发表于 2025-9-5 18:09:59

2.20         大学实验--串口1_2_3_4(中断设置标志位,主循环查询),演示实验
         演示串口1、串口2、串口3、串口4中断同时打开时,         在各自的中断程序中设置中断事件标志位,         标志已产生相应的中断,在主循环中查询中断事件标志位,         来处理不是特急处理的任务,不堵塞其他中断
2.21         大学实验--串口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-8 09:33:55

2.22         大型综合实战 -- 深大课程设计:模拟RTC时钟+数码管+ADC查询方式检测按键


2.22.1.         实验介绍                                 1、熟悉ADC按键扫描方法                                 2、了解使用74HC595控制LED数码管                                 3、软件模拟RTC,实现RTC的时、分、秒控制和设置                                 4、熟悉Ai8051U实验箱原理图与AIapp-ISP系统软件的应用                                 5、本项目主要熟悉如何管理多文件项目

2.22.1.1.      按键扫描说明                                 如按键要判断为正常按下,而不是抖动,需要该按键保持按下持续时间是20ms ~ 50ms;                                 主循环中有个10ms的时间基准,将按键扫描程序作为10ms事件,按键的值检测3次都在有效范围内,即30ms去抖动处理,得到稳定的键码。

2.22.1.2.      ADC按键实验现象和操作说明                                 将本项目的HEX文件下载到Ai8051U的实验箱后:                                                                  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、矩阵按键中的按键D和E分别是上调键和下调键                                    Ø   只有在RTC的时/分/秒设置模式时,上调键和下调键才有效
                                 5、时钟设置模式时,长按按键D或E,可实现快速设置功能

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

kaily 发表于 2025-9-8 10:05:47

2.23         深大实验 -- ADC中断方式检测NTC热敏电阻测温+数码管显示

2.23.1.          实验介绍                                 1、熟悉ADC数据采集热敏电阻NTC方法                                 2、了解使用74HC595控制LED数码管                                 3、熟悉Ai8051U实验箱原理图与AIapp-ISP系统软件的应用                                 4、本项目主要熟悉如何管理多文件项目

2.23.1.1、   ADC通过采集NTC热敏电阻的电压值进行测温                                 NTCthermistor,即 Negative Temperature Coefficientthermistor,即“负温度系数热敏电阻”,其电阻值随温度升高而减小,                                 ADC测温通过ADC3通道采集NTC热敏电阻的电压值来计算出温度值。                                 如图所示,NTC热敏电阻与10K精密电阻R165串联分压后的电压输入到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.23.1.2、   操作说明和实验现象                                 将本项目的HEX文件下载到Ai8051U的实验箱后                                 1、测量NTC温度,需要短接试验箱JUP2右侧两个跳线,才能连接NTC到芯片ADC脚:                                 
                                 2、在LED数码管上面低4位会动态显示当前的NTC测量的温度,高4位显示NTC的ADC值补码:                                 
                                 3、NTC热敏电阻在实验箱背面,用手指触摸,或者向其吹气,可改变测量的温度值:                                 


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

kaily 发表于 2025-9-8 10:33:03

2.24         深大实验 -- 硬件SPI控制74HC595驱动数码管显示模拟RTC时钟


2.24.1.          实验介绍                              1、熟悉硬件SPI控制74HC595                              2、了解使用74HC595控制LED数码管                              3、熟悉Ai8051U实验箱原理图与AIapp-ISP系统软件的应用                              4、熟悉如何管理多文件项目

2.24.1.1.       原理图
                                 
                                 

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


页: 1 2 [3] 4
查看完整版本: Ai8051U-实验指导书:实验内容与源代码