找回密码
 立即注册
查看: 1207|回复: 10

《8051U深度入门到32位51大型实战教学视频》学习打卡

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:59
  • 最近打卡:2025-06-18 11:55:36

30

主题

1202

回帖

2630

积分

超级版主

积分
2630
发表于 2024-12-1 21:41:26 | 显示全部楼层 |阅读模式
2024.11.26学习打卡心得,期待持续更新!会紧跟冲哥学习步伐:
第一集:8051U强在哪里
1.屏幕显示和视频播放(flash编程器)
2.IIS录放音
3.PWM DMA
4.频谱分析仪(上位机)
5.手写计算器
6.QSPI,PWM移相,硬件乘除,单精度浮点AI8051U强大的外

第二集:AI8051U实验箱丰富的硬件外设功能一一介绍,并将相关软件和工具手把手介绍(KEIL软件、添加头文件、下载代码 包和手册、下载ISP软件、下载插件)
第三集:点亮LED,进展很顺利
截图202412012137556961.jpg

截图202412012138139335.jpg





截图202412012138403418.jpg
截图202412012140592029.jpg

第三集 点亮LED.zip

39.18 KB, 下载次数: 17

STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:59
  • 最近打卡:2025-06-18 11:55:36

30

主题

1202

回帖

2630

积分

超级版主

积分
2630
发表于 2024-12-1 21:43:24 | 显示全部楼层
第四集:USB不停电下载 ===错误频出,空格漏加、用错括号,最终也实现了USB不停电下载功能

截图202412012143081489.jpg

补充:USB 下载方法 一,P3.2 按键,再结合停电上电 进自带USB直接下载
1、按下板子上的 P3.2/INT0 按键,就是 P3.2 接地
2、给目标芯片重新上电,不管之前是否已通电。
---电子开关是按下停电后, 再松开就是上电
    等待电脑端 ISP 下载软件中自动识别出“(HID1) USB Writer”后,
   就与 P3.2 状态无关了,这时可以松开 P3.2 按键
   (P3.2 在用户程序区可做其它任意用途)
---传统的机械自锁紧开关是按上来停电,按下去是上电
3,点击电脑端下载软件中的【下载/编程】按钮
     (注意:USB 下载与串口下载的操作顺序不同)

下载进行中,几秒钟后,提示下载成功!

USB 下载方法 二,复位管脚低电平复位, 进自带USB直接下载
USB 连接好并已上电的情况下,外部按键复位也可进入 USB 下载模式,
注意:P4.7-nRST 出厂时默认是 P4.7-I/0 功能,
要改为复位功能,需 ISP 烧录时取消 设置复位脚用作 I/0口,停电一次再上电才生效,
程序区中用户程序也可改为复位脚或 I/0,这个立即生效。
1,按下 P4.7-nRST 外接的低电平复位按键复位 MCU,松开复位键,
MCU从系统程序区启动,判断是否要下载用户程序,
等待电脑端 ISP 下载软件中自动识别出“(HID1)USB writer”后
2,点击电脑端下载软件中的【下载/编程】按钮下载进行中,

几秒钟后,提示下载成功!

USB 下载方法 三,从用户程序区软复位到系统区下载】
USB 连接好并已上电的情况下,
从用户程序区软复位到系统区也可进入 USB 下载模式
1,在用户程序区运行软复位到系统区的程序,
   就是IAP CONTR 寄存器送 60H。
   等待电脑端 ISP 下载软件中自动识别出“(HID1) USB Writer”后
2,点击电脑端下载软件中的【下载/编程】按钮
   
   下载进行中,几秒钟后,提示下载成功!



AI8051U教学视频第4集USB不停电下载手敲程序.zip

86.41 KB, 下载次数: 19

STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:59
  • 最近打卡:2025-06-18 11:55:36

30

主题

1202

回帖

2630

积分

超级版主

积分
2630
发表于 2024-12-1 21:48:15 | 显示全部楼层
第五集C语言基础,冲哥讲的很务实!哈哈,手敲代码,测试通过

截图202412012147496426.jpg 截图202412012148116438.jpg

AI8051U教学视频第5集C语言基础手敲程序.zip

87.36 KB, 下载次数: 17

STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:59
  • 最近打卡:2025-06-18 11:55:36

30

主题

1202

回帖

2630

积分

超级版主

积分
2630
发表于 2024-12-1 21:50:29 | 显示全部楼层
本帖最后由 AI-32位8051 于 2024-12-1 21:54 编辑

]跟着冲哥打卡第六集:IO口输入输出,已手敲代码,测试通过

截图202412012149025045.jpg



冲哥8051U视频第六集IO口输入输出示例代码.zip

93.82 KB, 下载次数: 24

STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:59
  • 最近打卡:2025-06-18 11:55:36

30

主题

1202

回帖

2630

积分

超级版主

积分
2630
发表于 2024-12-4 00:09:36 | 显示全部楼层
第7集定时器中断已学习 已手敲代码,测试通过

截图202412040009035336.jpg


AI8051U教学视频第7集定时器学习-.mp4

2.79 MB, 下载次数: 23

AI8051U教学视频第7集定时器学习程序.zip

98.18 KB, 下载次数: 24

STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:59
  • 最近打卡:2025-06-18 11:55:36

30

主题

1202

回帖

2630

积分

超级版主

积分
2630
发表于 2024-12-10 22:39:05 | 显示全部楼层
第8集 定时器周期性调度任务
任务一:用一个定时器实现: LED1实现0.3秒取反一次,LED2实现0.6秒取反一次,LED3实现0.9秒取反一次

截图202412102232486375.jpg
任务二:数组点亮LED,实现流水灯
截图202412102237544072.jpg



任务3:按键1按一下,LED通过数组移动一下 手敲代码,成功实现。


截图202412102238154797.jpg





截图202412102237072092.jpg

冲哥Ai8051U视频教程第八集-定时器周期性调度任务.zip

152.38 KB, 下载次数: 14

STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:59
  • 最近打卡:2025-06-18 11:55:36

30

主题

1202

回帖

2630

积分

超级版主

积分
2630
发表于 2024-12-21 00:01:09 | 显示全部楼层
第九集 :数码管
任务一:数码管静态的显示一个数字


截图202412202358084436.jpg

任务二:数码管显示数字 1-8 8个数字
截图202412210003033668.jpg

截图202412202358424788.jpg

任务三:数码管显示00-00-00分别代表时分秒,每过一秒钟秒+1

截图202412202359149171.jpg
任务四:虚拟显示——LED和数码管
截图202412210015315900.jpg















第九集任务3.mp4

2.32 MB, 下载次数: 16

冲哥AI8051U教学视频第9集数码管.zip

779.83 KB, 下载次数: 16

STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:59
  • 最近打卡:2025-06-18 11:55:36

30

主题

1202

回帖

2630

积分

超级版主

积分
2630
发表于 2024-12-27 22:10:45 | 显示全部楼层
第十集 虚拟LED数码管,已手敲代码
任务1: P2口流水灯,P10闪烁
截图202412272209028186.jpg

#include "io.h"

u8 State1 = 0;                                //LED1初始状态
u8 State2 = 0;                                //LED2初始状态        
u8 State3 = 0;                                //LED3初始状态
u16 Key_Vol = 0;                        //按键按下持续时间

void LED0_Blink(void)
{
        State1 = !State1;
        P00 = State1;        
}

void LED1_Blink(void)
{
        State2 = !State2;
        P01 = State2;
}

void LED2_Blink(void)
{
        State3 = !State3;
        P02 = State3;
}

void KEY_Task(void)
{
        if( P32 == 0 )
        {
                Key_Vol++;
                if(Key_Vol==5)
                {
                //按键按下的任务
                        printf("按键单击\r\n");
                }
        }
        else
        {
                Key_Vol = 0;
        }
}

u8 P2_STATE = 0x01;
u8 P10_STATE = 0;

//任务1:P2口流水灯,P10闪烁
void TASK_1(void)
{
//-----------        p2端口流水灯-----------
        LED40_SetPort(2,~P2_STATE);                                        //点亮P20端口
        
        P2_STATE = (P2_STATE<<1);
        if(P2_STATE == 0)
           P2_STATE = 1;
//-----------   P10闪烁  --------------
        if(P10_STATE == 0)  
                LED40_SetBit(1,0);
        else
                LED40_ClrBit(1,0);
        
        P10_STATE = !P10_STATE;        
}

任务2:左边数码管显示P32按下次数,右边数码管显示P33按下次数



#include "io.h"

u8 State1 = 0;                                //LED1初始状态
u8 State2 = 0;                                //LED2初始状态        
u8 State3 = 0;                                //LED3初始状态

u16 Key_Vol;                        //按键按下持续时间
u16 Key_Vol_2;                        //按键按下持续时间

void LED0_Blink(void)
{
        State1 = !State1;
        P00 = State1;        
}

void LED1_Blink(void)
{
        State2 = !State2;
        P01 = State2;
}

void LED2_Blink(void)
{
        State3 = !State3;
        P02 = State3;
}

u16 KEY1_COUNT = 0;                                //P32按钮计数
u16 KEY2_COUNT = 0;

void KEY_Task(void)
{
//----------P32按钮计数----------
        if( P32 == 0 )
        {
                Key_Vol++;
                if(Key_Vol==5)
                {
                        KEY1_COUNT++;
                }
        }
        else
        {
                Key_Vol = 0;
        }
//----------P33按钮计数----------
                if( P33 == 0 )
        {
                Key_Vol_2++;
                if(Key_Vol_2==5)
                {
                        KEY2_COUNT++;
                }
        }
        else
        {
                Key_Vol_2 = 0;
        }
}

u8 P2_STATE = 0x01;
u8 P10_STATE = 0;

//任务1:P2口流水灯,P10闪烁
void TASK_1(void)
{
//-----------        p2端口流水灯-----------
        LED40_SetPort(2,~P2_STATE);                                        //点亮P20端口
        
        P2_STATE = (P2_STATE<<1);
        if(P2_STATE == 0)
           P2_STATE = 1;
//-----------   P10闪烁  --------------
        if(P10_STATE == 0)  
                LED40_SetBit(1,0);
        else
                LED40_ClrBit(1,0);
        
        P10_STATE = !P10_STATE;        
}
u32 KEY_Count = 0;

任务3:按下数字按键在数码管显示对应的按键数字



#include "io.h"

u8 State1 = 0;                                //LED1初始状态
u8 State2 = 0;                                //LED2初始状态        
u8 State3 = 0;                                //LED3初始状态

u16 Key_Vol;                        //按键按下持续时间
u16 Key_Vol_2;                        //按键按下持续时间

void LED0_Blink(void)
{
        State1 = !State1;
        P00 = State1;        
}

void LED1_Blink(void)
{
        State2 = !State2;
        P01 = State2;
}

void LED2_Blink(void)
{
        State3 = !State3;
        P02 = State3;
}

u16 KEY1_COUNT = 0;                                //P32按钮计数
u16 KEY2_COUNT = 0;

void KEY_Task(void)
{
//----------P32按钮计数----------
        if( P32 == 0 )
        {
                Key_Vol++;
                if(Key_Vol==5)
                {
                        KEY1_COUNT++;
                }
        }
        else
        {
                Key_Vol = 0;
        }
//----------P33按钮计数----------
                if( P33 == 0 )
        {
                Key_Vol_2++;
                if(Key_Vol_2==5)
                {
                        KEY2_COUNT++;
                }
        }
        else
        {
                Key_Vol_2 = 0;
        }
}

u8 P2_STATE = 0x01;
u8 P10_STATE = 0;
//任务1:P2口流水灯,P10闪烁
void TASK_1(void)
{
//-----------        p2端口流水灯-----------
        LED40_SetPort(2,~P2_STATE);                                        //点亮P20端口
        
        P2_STATE = (P2_STATE<<1);
        if(P2_STATE == 0)
           P2_STATE = 1;
//-----------   P10闪烁  --------------
        if(P10_STATE == 0)  
                LED40_SetBit(1,0);
        else
                LED40_ClrBit(1,0);
        
        P10_STATE = !P10_STATE;        
}

u32 KEY_Count = 0;
//任务2:左边数码管显示P32按下次数,右边数码管显示P33按下次数
void TASK_2(void)
{
        KEY_Count = KEY1_COUNT *10000+KEY2_COUNT;
        
        SEG7_ShowLong( KEY_Count,10 );
}

u32 REC_NUM = 0;


//任务3:按下数字按键在数码管显示对应的按键数字
void TASK_3(void)
{
                SEG7_ShowLong( REC_NUM,10 );
}


AI8051U教学视频第10集虚拟LED和数码管学习程序.zip

1.93 MB, 下载次数: 15

STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:59
  • 最近打卡:2025-06-18 11:55:36

30

主题

1202

回帖

2630

积分

超级版主

积分
2630
发表于 2025-1-18 00:03:34 | 显示全部楼层
第十二集   复位系统  任务一 硬件复位-看门狗程序
截图202501180004038223.jpg
代码如下:
  • #include "config.h"
  • #include "task.h"
  • #include "io.h"
  • char *USER_DEVICEDESC = NULL;
  • char *USER_PRODUCTDESC = NULL;
  • char *USER_STCISPCMD = "@STCISP#";
  • void main(void)
  • {
  •         Sys_int();                                                                                 //系统初始化
  •         usb_init();                                      //USB CDC 接口配置
  •     IE2 |= 0x80;                                                                         //使能USB中断
  •         Timer0_Init();                                                                        //定时器初始化
  •     Init_595();
  •         EA = 1;                                                                                        //IE |= 0X80;
  •         P40=0;
  •         while (DeviceState != DEVSTATE_CONFIGURED);     //等待USB完成配置
  •         WDT_CONTR =0X24;
  •     while(1)
  •         {
  •         if (bUsbOutReady)                                                        //如果接收到了数据
  •         {
  •             //USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
  •                         usb_OUT_done();                                                        //
  •         }
  •                         Task_Pro_Handler_Callback();                        //执行功能函数
  •                         if( P33 !=0 )
  •                         WDT_CONTR =0X34;
  •         }
  • }
  • void Timer0_Isr(void) interrupt 1                                                //1MS执行一次
  • {
  •         Task_Marks_Handler_Callback();                                                //系统计时
  • }

34F96B8E95216342101D22042BD8F5FF.mp4

4.61 MB, 下载次数: 14

STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:59
  • 最近打卡:2025-06-18 11:55:36

30

主题

1202

回帖

2630

积分

超级版主

积分
2630
发表于 2025-1-24 17:10:04 | 显示全部楼层
第十三集  外部中断

#include "config.h"
#include "task.h"
#include "io.h"

char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";

void Delay3000ms(void)        //@24.000MHz
{
        unsigned long edata i;

        _nop_();
        _nop_();
        i = 17999998UL;
        while (i) i--;
}


void main(void)             //主函数
{
        
        Sys_init();        
        usb_init();
        
        IE2 |= 0x80;  
    Timer0_Init();
    Init_595();        
        INT1_Init();
    EA = 1;
        
        P40=0;
        while (DeviceState != DEVSTATE_CONFIGURED);
//        WDT_CONTR = 0X24;
        
         while(1)
         {
                 if (bUsbOutReady)
        {
            //USB_SendData(UsbOutBuffer,OutNumber);   

            usb_OUT_done();
        }
//            Task_Pro_Handler_Callback();
//               
//                WDT_CONTR = 0X34;
                P00 = !P00;
                Delay3000ms();
               
        }
}


void Timer0_Isr(void) interrupt 1
{
                Task_Marks_Handler_Callback();
}

AI8051U教学视频第13集外部中断学习程序.zip (169.28 KB, 下载次数: 12)
STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-19 02:46 , Processed in 0.501803 second(s), 96 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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