找回密码
 立即注册
查看: 49|回复: 13

打卡学习“史上最强AI8051U”教学课程

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2026-03-16 01:09:26
已绑定手机

1

主题

10

回帖

67

积分

注册会员

积分
67
发表于 5 天前 | 显示全部楼层 |阅读模式
       从2023年底初识STC单片机,到注册本论坛至今,已经不知不觉过了2年有余。从一个“懵懂少年”开始一步步学习开始,中间充满了惊奇与感叹,国产芯片的崛起,离不开我们中国工程师们的辛苦耕耘,在此致敬国产单片机!今后一定是中国最强!

       由于工作等多方面原因,学习STC单片机的时间比较稀少,中间断断续续,没能好好系统地连贯地学习。现在的STC已经从当初我在学的STC32G发展到了如今的AI8051,时代永远在进步,学如逆水行舟,不进则退。这次决定好好连贯地系统地学习一遍最新的AI8051U。
       打卡之鉴正式开始。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2026-03-16 01:09:26
已绑定手机

1

主题

10

回帖

67

积分

注册会员

积分
67
发表于 5 天前 | 显示全部楼层
https://www.stcaimcu.com/forum.php?mod=attachment&aid=MTMzMzUxfGZjZGU4OWNifDE3NzM2NjQ5NjZ8MHw%3D
第一课:8051U强在哪里?
1.屏幕显示和视频播放(flash编程器)
2.IIS录放音
3.PWM_DMA
4.频谱分析仪(上位机)
5.手写计算器
6.QSPI,PWM移相,硬件乘除,单精度浮点

https://www.stcaimcu.com/forum.php?mod=attachment&aid=MTMzMzUyfDM0NmUxNzVmfDE3NzM2NjQ5NjZ8MHw%3D

简介:
Ai8051U,USB 型 1T 8051,支持32位和8位指令集, RMB2.3
管脚兼容天王级别的:  89C52RC,  12C5A60S2
要兼容 8位8051指令集,  可以用 Keil C51/IAR/SDCC 编译器
===就相当于更强大的 8H8K64U
要兼容 32位8051指令集,可以用 Keil C251 编译器,双核兼容设计
===就相当于更强大的 32G12K128, 32G8K64
34K SRAM(2K edata, 32K xdata), 64K Flash
TFPU@120MHz, 硬件浮点/硬件三角函数 运算器
DMA支持PWM, DMA支持外设直接到外设, P2P
120MHz-PWM支持硬件移相,16位PWM; 真12位ADC
USB, 4组串口,12位ADC, 轨到轨比较器
QSPI, SPI, I2S, I2C,  TFT-i8080/M6800 接口
PDIP40,LQFP44,LQFP48

1-3简介.jpg

1.1、屏幕显示
1-2-1A屏幕显示.jpg
1.2、支持触摸屏操作
1-2-1B触摸屏.jpg
1.3、支持FLASH视频播放
1-2-6FLASH视频播放.jpg

2、支持IIS录放音
1-2-2录音放音.jpg

3、支持PWM_DMA
1-2-3pwm_dma.jpg

4、支持频谱分析仪(上位机)
1-2-4频普功能.jpg

5、AI功能:手写计算器
1-2-5手写计算器.jpg

6、QSPI,PWM移相,硬件乘除,单精度浮点
1-0.jpg
1-1.jpg
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2026-03-16 01:09:26
已绑定手机

1

主题

10

回帖

67

积分

注册会员

积分
67
发表于 4 天前 | 显示全部楼层
第二课:
1、AI8051U实验箱硬件介绍
a、实验箱整体外观
1-1.jpg
b、实验箱开箱图
1-2.jpg
c、实验箱正面图与芯片功能简介
1-3实验箱正面图.jpg
d、实验箱背面图与芯片功能简介
1-4实验箱背面图.jpg

2、程序代码编写工具及程序下载工具的下载、安装和使用方法
2-1软件和工具.jpg
a、KEIL软件的安装
2-2安装KEIL软件.jpg
b、8051U芯片手册下载
2-3-1AI8051U芯片手册下载.jpg
2-3AI8051U芯片手册下载.jpg
c、安装下载工具
2-4-安装下载工具.jpg
d、添加工具软件的头文件
2-4添加工具软件的头文件.jpg
2-4-2添加工具软件的头文件.jpg
2-4-3添加工具软件的头文件.jpg
e、中断拓展插件的下载及安装
2-5-0中断拓展插件下载.jpg
2-5-1中断拓展插件安装.jpg
2-5-2中断拓展插件安装.jpg
f、实验箱代码下载
2-6-0实验箱代码下载.jpg
2-6-1实验箱代码下载.jpg
g、实验箱说明书下载
2-6-2实验箱使用说明下载.jpg
h、下载第一个程序
2-7-0下载第一个程序.jpg
2-7-1下载第一个程序.jpg
2-7-2下载第一个程序.jpg
2-7-3下载第一个程序.jpg
2-7-4下载第一个程序.jpg

至此第二节课程学完,已经开始迫不及待的想要开始敲代码设计之旅了,加油吧“烧年”!
最后总结冲哥的那句经典语录:
      哪怕梦想让我们拼得遍体鳞伤,这一次我们也要勇往直前!
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2026-03-16 01:09:26
已绑定手机

1

主题

10

回帖

67

积分

注册会员

积分
67
发表于 4 天前 | 显示全部楼层
第三课:点亮第一颗LED
1-1-1新建工程.jpg
1、打开KEIL软件,选择“PROJECT"-->"NEW UVISION",并在弹出窗口新建一个文件夹并命名”DM01“。
1-1-2选择新建工程NEWPROJECT.jpg
2、打开文件夹,并命名一个程序文件”DM01“。
1-1-3为新建工程NEWPROJECT文件命名.jpg
3、命名好后会弹出窗口进入芯片选择,选择"STC"-->"AI8051U-32BIT"然后OK
1-1-4接下选择STC MCU和AI8051U-32BIT.jpg
4、随后需要在新程序里新建一个工程文件:在左边窗口选择”SOURCE GROUP“点鼠标右建,弹出窗口选择”ADD NEW ITEM TO GROUP“
1-1-5添加新工程文件.jpg
5、接下来弹出窗口中选择”C++“,在底部输出"MAIN"为工程文件名。
1-1-6命名新工程文件.jpg
6、对KEIL软件进行一些初始设置,如图:
1-1-7对软件进行一些设置.jpg
1-1-8对软件进行一些设置.jpg
7、头文件的用法及添加方法:
2-1-1头文件的用法及添加.jpg
7-1、打开STC下载工具,选择顶部”头文件“-->”KEIL格式文件“-->”保存文件“到DM01文件夹,方便调用。此目的是方便换机调试程序时没有头文件可用。
2-1-2头文件获取.jpg
2-1-3头文件获取.jpg
7-2、查看头文件是否添加成功:
2-1-4头文件添加.jpg
2-1-5头文件添加成功.jpg
7-3、写代码简单测试是否能成功编译:OK编译环境搭建成功。
2-1-6敲代码测试编译成功.jpg
8、写下点亮第一个LED灯的代码:
2-1-7点亮第一个灯的代码.jpg
9、编译下载代码看结果:OK,第一个LED灯成功点亮!
2-1-8点亮第一个灯.jpg
10、正面来从软件和硬件方面分析LED灯亮的原理:
10-1、硬件方面,P0组端口接LED灯负极,正极接PNP三极管发射极,P40端口接三极管基极,电源VCC接三极管集电极。因此三极管需要P40拉低到0V实现导通,同时P0组端口也需要拉低到0V,最后才能点亮LED灯。
2-1-9LED灯点亮的硬件介绍.jpg
10-2、软件方面,芯片IO口由端口模式来控制其是否能输出,IO模式如下图
2-1-10LED灯点亮的IO口工作模式分析.jpg
10-3、了解了端口模式后,进行程序编写:

void main(void)                //主函数
{
        P0M1=0;                //0X00可以写成0
        P0M0=0;                //设置P0组(即从P00~P07)端口为准双向口
        P4M1=0X00;
        P4M0=0X00;                //设置P4组(即从P40~P47)端口为准双向口
       
        P40=0;                        //P40端口拉低,输出0V
        while(1)                //while前面的代码只执行一次
        {                                //while里面的代码会一直重复执行
                P00=0;                //P00端口拉低,输出0V
                P01=0;                //P01端口拉低,输出0V
        }
}
10-4、代码下载成功,来看效果:成功点亮2个LED灯
2-1-12点亮2个灯.jpg
11、学习一个简单的端口工作模式配置,事半功倍:
2-1-13IO模式指配置工具.jpg

至此,第三课学习完毕。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2026-03-16 01:09:26
已绑定手机

1

主题

10

回帖

67

积分

注册会员

积分
67
发表于 前天 02:12 | 显示全部楼层
第四课:USB不停电下载的实现

前言:这一课感觉有些难度了,特别是中断函数感觉比较复杂。前段时间有幸学习过冲哥的《STC32位8051单片机原理及应用》学到这部分也感觉比较难懂了。但其实后来想想只是中断函数的参数设置比较繁杂而已,而并不难。我想只要一遍遍的跟着冲哥的视频教程去学习和练习,能做到举一返三,到后来熟悉了中断函数的设置概念和各项参数。就能比较轻松的学习接下来后面的课程。OK,接下来继续我的学习过程。

1、首先我们了解了平时正常下载程序到单片机时,我们都需要按一下P32这个电源键切断一下电源,电脑上的下载程序才能识别到单片机并开始下载程序。而学习了这个”USB不停电下载“程序后,我们就可以实现一键点击下载就可以不用按任何键实现程序下载到单片机里,这样节约了大量时间和我们的注意力。所以,这节课就是我们要学习好的目的。
1-1-1普通下载模式的烦恼.jpg
经过常规下载和不停电两次下载的对比,明显感觉不停电下载带来的速度与便捷,我想这也是我们这个教程把这节课放到前面来讲的原因吧。

2、要实现不停电下载,就需要我们在程序代码上做一些设置,下面我们来详细学习下这个过程。

3、不停电下载进行设置的主要步骤简介:
2-1-1不停电下载PPT简介.jpg

4-1、首先我们要去官网下载这个”USB不停电下载“的库函数文件:
2-1-2库函数下载地址.jpg

4-2、我们下载解压后得到一个文件夹,我们打开所需要的文件夹,选中文件复制到我们的课3中的工程文件目录中,以便使用:
2-1-5库文件复制.jpg

4-3、复制文件到这个工程文件夹里
2-1-4新建一个工程文件夹,并把上节课内容复制过来.jpg

4-3、复制后效果如下:
2-1-5库文件复制2.jpg

4-4、接下来再复制另一个头文件过来:
2-1-5库文件复制3.jpg

4-5、下面是复制后的结果:
2-1-5库文件复制4.jpg

5-1、接下来我们把LIB库文件添加到工程中,如下:
2-1-6库文件添加1.jpg

5-2、选择这个LIB库文件点”ADD“
2-1-6库文件添加2.jpg

5-3、添加后结果如下:
2-1-6库文件添加3.jpg

6-1、正面我们进行程序中的头文件调用,如下:
2-2-1头文件添加调用.jpg

6-2、后面进行代码复制:把例程代码中的关键部分复制过来:
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";

void main(void)
{
    P_SW2 |= 0x80;                //B7位写1,使能访问XFR
       
    P0M1 = 0x00;   P0M0 = 0x00;
    P1M1 = 0x00;   P1M0 = 0x00;
    P2M1 = 0x00;   P2M0 = 0x00;
    P3M1 = 0x00;   P3M0 = 0x00;
    P4M1 = 0x00;   P4M0 = 0x00;
    P5M1 = 0x00;   P5M0 = 0x00;
    P6M1 = 0x00;   P6M0 = 0x00;
    P7M1 = 0x00;   P7M0 = 0x00;
       
        usb_init();                                     //USB CDC 接口配置

    IE2 |= 0x80;                                    //使能USB中断
    EA = 1;                                                                                        //IE |= 0X80;
       
        while (DeviceState != DEVSTATE_CONFIGURED);     //等待USB完成配置
       
        while(1)
        {
               
        if (bUsbOutReady)
        {
            USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
            
            usb_OUT_done();
        }

上面这部分可以全部复制过来,避免选择性复制容易出错。

6-3、复制过来后的效果如下:
2-2-4复制过来效果.jpg

7-1、接下来就是学习一下几个命令参数的用法,首先是P_SW2这个参数,作为一个串口功能脚转换的控制开关,首先必须打开它的B7脚端口,也就是把EAXFR设置成1使能状态。正常写法就是”P_SW2 |= 0x80;                //B7位写1,使能访问XFR“。这里也两次巩固学习了一个”|“的用法,记得上次视频学习中好像没这么使用过这个参数。
2-3-1P_SW2命令参数解释.jpg

7-2、下面就是另一重要的中断开关,EA也就是专业术语”中断使能寄存器“。我的理解就是EA就是一个中断函数的总开关,如果不打开这个总开关,那么所有的中断请求函数,都将无法通过这里实现其功能。
2-3-3EA使能.jpg
在这里,需要把EA函数中的选项置1。程序写作”EA=1“或者可以写成”IE |= 0x80;“功能一样。EA是IE函数里的B7端口。

7-3、下面就是另一个中断开关IE2里面的B7端口即EUSB,必须设成使能状态。即:”IE2 |= 0x80;“这是USB的中断使能端口,必须打开。
2-3-4IE2使能.jpg

7-4、这里简单看下USB中断使能原理图,作大致了解:这里感叹EA这个函数作为总开关的强大之处!无处不在,无时不需要!
2-3-5USB中断使能原理图.jpg

7-5、最后在文件编译过程中,出现两个问题,一个是57错误,另一个是L104错误。57错误可以如下图解决:
2-3-7最后编译中遇到的问题及解决办法.jpg
2-3-7最后编译中遇到的问题及解决办法2.jpg
2-3-7最后编译中遇到的问题及解决办法3.jpg

7-6、L104错误的,其意思是出现重新定义变量,于是经过一行行代码查询,发现问题出现在char *USER_STCISPCMD = "@STCISP#";这行代码上,只要把它注释掉即可。
2-3-7最后编译中遇到的问题及解决办法4.jpg

7-7、注释掉代码后,可以顺利编译代码了:
2-3-7最后编译中遇到的问题及解决办法5.jpg

8-1、最后来欣赏一下成果:不停电下载:
2-3-8编译并下载成功,最后实现不停电下载.jpg

8-2、我们把下载工具勾上自动下载,然后就可以编译代码后实现自动不停电下载了,完美!
2-3-9修改代码,实现自动不停电下载.jpg

总结:这节课学到的知识点比较繁杂,需要一点点消化。先记住需要涉及到的中断函数,再慢慢在以后学习过程中去强化记忆。这个中断函数功能异常强大,也比较难学。持之以恒,方能百战不殆!

回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:67
  • 最近打卡:2026-03-14 11:17:40
已绑定手机

14

主题

133

回帖

952

积分

版主

积分
952
发表于 前天 11:17 | 显示全部楼层
要 做到 USB不停电下载
要 尝试 AiCube 图形化自动配置生成程序工具
推荐优先看的:  
printf_usb("Hello World !\r\n")
USB不停电下载, 演示视频链接:
https://www.stcaimcu.com/thread-19077-1-1.html

下载 最新的 AiCube-ISP-V6.96T 或以上版本软件 !

深圳国芯人工智能有限公司-工具软件

下载 最新的 USB库函数,永远用最新的 USB库函数 !
深圳国芯人工智能有限公司-库函数
下载 最新的 用户手册 !
下载 最新的 上机实践指导书 !

下载 最新的 Ai8051U 用户手册
https://www.stcaimcu.com/data/download/Datasheet/AI8051U.pdf

下载 最新的 Ai8051U 实验指导书,
AiCube 图形化自动配置生成程序工具使用说明
https://www.stcaimcu.com/data/do ... %AF%BC%E4%B9%A6.pdf


推荐优先看的 printf_usb("Hello World !\r\n")及usb不停电下载, 演示视频链接



回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2026-03-16 01:09:26
已绑定手机

1

主题

10

回帖

67

积分

注册会员

积分
67
发表于 前天 17:31 | 显示全部楼层
今天学习并上传的第四课,还没有通过审核,但自己也无法打开查看和编辑,希望版主能审核通过,如果不能通过,希望能打回我好重新编辑,谢谢。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2026-03-16 01:09:26
已绑定手机

1

主题

10

回帖

67

积分

注册会员

积分
67
发表于 前天 17:52 | 显示全部楼层
下面来学习一下printf_usb("Hello World !\r\n")的第一个实验
1-1-1.jpg

这个视频教程虽然只有二十几分钟,但感觉真是干货满满啊。第一个实验的学习反复观看和琢磨就花了接近1个小时,看来我这个小白需要更加努力才行。不然跟不上学习节奏了。

1-1、库文件的省略,从视频中了解到AICUBE的强大
1-2-3库文件提醒.jpg

1-2、正面开始进行AICUBE的设置,首先打开ISP软件
1-3-1ISP软件下载和设置.jpg

1-3、这里是对ISP软件的初始设置1
1-3-1ISP软件下载和设置2.jpg

1-4、ISP初始设置2MCU型号添加成功
1-3-1ISP软件下载和设置3.jpg

2-1、这里我们打开AICUBE进行设置1
1-4-1AI项目创建助手1.jpg

2-2、这里我们打开AICUBE进行设置2
1-4-1AI项目创建助手2.jpg

2-3、这里我们打开AICUBE进行设置3
1-4-1AI项目创建助手3.jpg

2-4、这里我们打开AICUBE进行设置4
1-4-1AI项目创建助手4.jpg

2-5、这里我们打开AICUBE进行设置5
1-4-1AI项目创建助手5.jpg

2-6、这里我们打开AICUBE进行设置6
1-4-1AI项目创建助手6.jpg

2-7、这里我们打开AICUBE进行设置7
1-4-1AI项目创建助手7.jpg

2-8、这里我们打开AICUBE进行设置8
1-4-1AI项目创建助手8.jpg

2-9、这里我们打开AICUBE进行设置9
1-4-1AI项目创建助手9.jpg

2-10、这里我们打开AICUBE进行设置10
1-4-1AI项目创建助手10.jpg

2-11、这里我们打开AICUBE进行设置11,最后一步设置完成
1-4-1AI项目创建助手11.jpg

3-1、这里是PRINT_USB代码的编写1
1-4-2PRIN代码编写1.jpg

3-2、这里是PRINT_USB代码的编写2
1-4-2PRIN代码编写2.jpg

3-3、这里是PRINT_USB代码的编写3
1-4-2PRIN代码编写3.jpg

3-4、这里是PRINT_USB代码的编写4
1-4-2PRIN代码编写4.jpg

4-1、开始代码下载工作1
1-4-3PRIN代码下载1.jpg

4-2、开始代码下载工作2
1-4-3PRIN代码下载2按图连接好USB工具箱和电脑.jpg

4-3、开始代码下载工作3
1-4-3PRIN代码下载3.jpg

4-4、开始代码下载工作4
1-4-3PRIN代码下载4打开HEX文件.jpg

4-5、开始代码下载工作5
1-4-3PRIN代码下载5.jpg

4-6、开始代码下载工作6
1-4-3PRIN代码下载6.jpg

4-7、开始代码下载工作7下载成功,程序运行成功!
1-4-3PRIN代码下载7下载成功,串口已经打印HELLO WORLD.jpg

4-8、这验证了USB不停电自动下载,实验成功
1-4-3PRIN代码下载8自动下载功能.jpg
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2026-03-16 01:09:26
已绑定手机

1

主题

10

回帖

67

积分

注册会员

积分
67
发表于 前天 17:57 | 显示全部楼层
今天来学习一下第五课:C语言基础

1、这节课的主要内容有以下4点:

1-1-1这节课学习的主要内容.jpg

2-1、首先我们来学习一下第一点:C语言USB-CDC串口之PRINTF函数的实现过程

1-2-1C语言之USB-CDC串口之PRINRF函数的实现.jpg

2-2、打开USB库中的PRINTF_HID宏定义(去掉//)
1-2-1C语言之USB-CDC串口之PRINRF函数的实现2.jpg

2-3、理解PRINTF的函数原型的定义
#define printf  printf_hid
int printf_hid (const char *fmt, ...);
1-2-1C语言之USB-CDC串口之PRINRF函数的实现4理解PRINTF函数原型定义.jpg

2-4、理解PRINTF的函数原型的定义:下面我们用实例代码进行一下验证
1-2-1C语言之USB-CDC串口之PRINRF函数的实现5理解PRINTF函数原型定义.jpg

2-5、验证过程:将代码写入单片机
1-2-1C语言之USB-CDC串口之PRINRF函数的实现6理解PRINTF函数原型定义.jpg

2-6、验证成功,PRINTF函数实现
1-2-1C语言之USB-CDC串口之PRINRF函数的实现7理解PRINTF函数原型定义.jpg

3-1、下面我们来学习一下C语言的格式字符的用法
1-2-2转换说明简介.jpg

3-2、这是格式字符的表示代码,需要熟悉运用


3-3、这里是ASCII字符代码表,需要熟悉运用
1-2-3转换说明简介2ASCII字符代码表格.jpg

3-4、学习一下数的进制表示方法与转换算法


4-1、数据的基本类型介绍:
1-2-5数据的基本类型.jpg

4-2、下面这段代码是我学到的u8与u16即8位与16位数的运算表达

#include "ai8051u.h"                        //调用头文件
#include "stc32_stc8_usb.h"                //调用头文件

#define u8 unsigned char                //用u8代替unsigned char来定义一个无符号的8位变量(取值范围是0-255)
#define u16 unsigned int                //用u16代替unsigned int来定义一个无符号的16位变量(其取值范围是0-65535)
u8 X=20,Y=20;                                        //这里作为全局变量,可以在以下任意点调用

void main(void)
{
    P_SW2 |= 0x80;                //B7位写1,使能访问XFR
        
    P0M1 = 0x00;   P0M0 = 0x00;
    P1M1 = 0x00;   P1M0 = 0x00;
    P2M1 = 0x00;   P2M0 = 0x00;
    P3M1 = 0x00;   P3M0 = 0x00;
    P4M1 = 0x00;   P4M0 = 0x00;
    P5M1 = 0x00;   P5M0 = 0x00;
    P6M1 = 0x00;   P6M0 = 0x00;
    P7M1 = 0x00;   P7M0 = 0x00;
        
        usb_init();                                     //USB CDC 接口配置

    IE2 |= 0x80;                                    //使能USB中断
    EA = 1;                                                                                        //IE |= 0X80;
        
        while (DeviceState != DEVSTATE_CONFIGURED);     //等待USB完成配置
        
        while(1)
        {
               
        if (bUsbOutReady)                                                        //如果接收到了数据
        {
            //USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
                        /*------printf这里就会在CDC串口助手发送任意数据后,进行下面的打印-----------*/
            printf("X/Y=%u\r\n,(u16)X/Y");                 //%u为无符号,u16为上定义的16位变量名,为应对8位乘8位变16位。结果会强制转换为16位整数。
                        printf("X%%Y=%u\r\n,(u16)X%Y");                //%%实为一个%为防止单个%会变成转义符,算术过程为取X/Y的余数
            usb_OUT_done();
        }
               
        }
}


4-3、C语言的常用运算符的学习
1-2-6常用运算符1.jpg

4-4、来验证一下运算符的应用过程:结合条件语句IF来判断真假,并输出。
1-2-7if和else判断真假1.jpg

4-5、验证成功,成功输出判断语句的结果
1-2-7if和else判断真假2.jpg

5-1、常用运算符&&的用法一例:
1-2-8常用运算符2.jpg

5-2、代码的实现过程:
1-2-8常用运算符3.jpg

5-3、位运算符的学习
1-2-8常用运算符4.jpg

总结:C语言的博大精深,可谓是名不虚传。学好C语言,就掌握了学好单片机的钥匙。跟着冲哥学C语言,慢慢学,一步步消化。

1-2-2转换说明简介1.jpg
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:6
  • 最近打卡:2026-03-16 01:09:26
已绑定手机

1

主题

10

回帖

67

积分

注册会员

积分
67
发表于 昨天 19:08 | 显示全部楼层
来学习一下第六课:I/O输入输出

1、这节课的学习摘要:
1、学习摘要.jpg

2-1、关于GPIO的解释
2-1、关于GPIO的解释.jpg
这里了解到:VDD的对地电压最低值为-0.3V,最高不能超过5.5V。而I/O口的对地电压最低值也是-0.3V,最高不能超过VDD+0.3V。

2-2、I/O口的4种工作模式介绍
2-2、关于GPIO的4种模式介绍.jpg

2-3、I/O口的电压介绍
2-3、关于GPIO的电流特性.jpg

3-1、按键输入检测的简介
3-1、按键输入检测.jpg

3-2、按键输入检测任务一和任务二的实验
3-1-1、按键输入检测任务一、二实验.jpg

3-3、按键输入检测任务三实验
3-1-2、按键输入检测任务三实验.jpg

3-4、按键输入检测任务三实验结果查看
3-1-3、按键输入检测任务三实验结果查看.jpg

3-5、按键输入检测任务三实验结果的现象讨论
3-1-4、按键输入检测任务三实验结果得出的结论.jpg

3-6、对实验三代码进行改进
3-1-5、按键输入检测任务三实验改进.jpg

3-6、对实验三代码进行改进后再查看结果:按键仍然不稳定
3-1-6、按键输入检测任务三实验改进后结果仍然不稳定.jpg

4-1、引入“按键抖动”概念,其决定实验三的准确性
3-2、按键抖动.jpg

4-2、解决按键抖动的重要因素:需要延时函数支持,步骤一
3-2-1、延时函数实现方法.jpg

4-3、延时函数实现方法:步骤二
3-2-2、延时函数实现方法.jpg

4-3、延时函数实现方法:步骤三
3-2-3、延时函数实现方法.jpg

4-3、延时函数实现方法:步骤四
3-2-4、延时函数实现方法.jpg

4-4、实现按键消抖,实验验证成功
3-2-5、延时函数实现方法,结果验证.jpg

总结:这节课主要了解I/O口的工作原理以及简单的基本应用,然后引入延时函数来实现按键消抖的办法。由于手里暂时没有实验箱,无法做课后小练,期待能早点获取论坛送的实验箱来进一步验证和学习。
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-3-16 20:42 , Processed in 0.148962 second(s), 89 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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