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

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

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-06-27 14:12:25
已绑定手机

2

主题

16

回帖

70

积分

版主

积分
70
发表于 昨天 10:20 | 显示全部楼层
第十二集复位系统

代码成功运行,功能实现:
截图202506261019166455.jpg
截图202506261019267917.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_init();                                                                                //系统初始化
        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();                                //执行功能函数

                WDT_CONTR = 0X34;
        }
}



void Timer0_Isr(void) interrupt 1                //1MS执行一次
{

        Task_Marks_Handler_Callback();                                        //系统计时

}

第十二集复位系统.zip

178.99 KB, 下载次数: 0

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-06-27 14:12:25
已绑定手机

2

主题

16

回帖

70

积分

版主

积分
70
发表于 昨天 10:25 | 显示全部楼层
第十三集外部中断

代码成功运行,功能实现:
截图202506261023508366.jpg
截图202506261024299219.jpg
截图202506261024425609.jpg
源代码:

#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();                                     //USB CDC 接口配置

    IE2 |= 0x80;                                    //使能USB中断
        Timer0_Init();                                                                        //定时器初始化
        Init_595();
//        INT1_Init();
    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();                                //执行功能函数

//                WDT_CONTR = 0X34;
                P00 = !P00;
                Delay3000ms();
//                if (P33 == 0)
//                        P01 = !P01;
//               
        }
}



void Timer0_Isr(void) interrupt 1                //1MS执行一次
{

        Task_Marks_Handler_Callback();                                        //系统计时

}


第十三集外部中断.zip

180.73 KB, 下载次数: 0

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:28
  • 最近打卡:2025-06-26 10:32:22

24

主题

405

回帖

2689

积分

版主

积分
2689
QQ
发表于 昨天 10:32 | 显示全部楼层
QQ:1463035472,微信:19952583954
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-06-27 14:12:25
已绑定手机

2

主题

16

回帖

70

积分

版主

积分
70
发表于 昨天 10:38 | 显示全部楼层
第十四集IO中断(所有普通io均支持的外部中断)

代码成功运行,功能实现:
截图202506261037131799.jpg
截图202506261032112764.jpg
截图202506261032225515.jpg
源代码:

#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();                                     //USB CDC 接口配置

    IE2 |= 0x80;                                    //使能USB中断
        Timer0_Init();                                                                        //定时器初始化
        Init_595();
//        INT1_Init();                                                                        //外部中断1初始化
        P3_IO_Init();                                                                        //IO中断初始化
        P4_IO_Init();
        
    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();                                //执行功能函数
               
                passward[0] = 0;
//                if(P33 !=0)
//                        WDT_CONTR = 0X34;
               
//                P00 = !P00;
//                Delay3000ms();

        }
}



void Timer0_Isr(void) interrupt 1                //1MS执行一次
{

        Task_Marks_Handler_Callback();                                        //系统计时

}


第十四集IO中断(所有普通io均支持的外部中断.zip

182.84 KB, 下载次数: 0

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-06-27 14:12:25
已绑定手机

2

主题

16

回帖

70

积分

版主

积分
70
发表于 昨天 10:44 | 显示全部楼层
第十五集定时器做计数器

代码成功运行,功能实现:
截图202506261042422633.jpg
截图202506261043285561.jpg
截图202506261043431527.jpg
源代码:

#include "config.h"
#include "task.h"
#include "io.h"
#include "tim.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();                                     //USB CDC 接口配置

    IE2 |= 0x80;                                    //使能USB中断
        Timer0_Init();                        //定时器初始化
//        Init_595();
//        INT1_Init();                                                                        //外部中断1初始化
//        P3_IO_Init();                                                                        //IO中断初始化
//        P4_IO_Init();
//        TIM1_Count_Init();
        
        Timer1_Init();
    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();                                //执行功能函数
        }
}



void Timer0_Isr(void) interrupt 1                //1MS执行一次
{

        Task_Marks_Handler_Callback();                                        //系统计时

}


第十五集定时器做计数器.zip

207.16 KB, 下载次数: 0

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-06-27 14:12:25
已绑定手机

2

主题

16

回帖

70

积分

版主

积分
70
发表于 昨天 10:48 | 显示全部楼层
第十六集DS18B20测温

代码成功运行,功能实现:
截图202506261047204410.jpg
截图202506261047377200.jpg
源代码:

#include "config.h"
#include "task.h"
#include "io.h"
#include "tim.h"
#include "18b20.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();                                     //USB CDC 接口配置

    IE2 |= 0x80;                                    //使能USB中断
        Timer0_Init();                        //定时器初始化
//        Init_595();
//        INT1_Init();                                                                        //外部中断1初始化
//        P3_IO_Init();                                                                        //IO中断初始化
//        P4_IO_Init();
//        TIM1_Count_Init();
        
        Timer1_Init();
    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();                                //执行功能函数
               
                SEG_Show_U32(Temp_18b20);
        }
}



void Timer0_Isr(void) interrupt 1                //1MS执行一次
{

        Task_Marks_Handler_Callback();                                        //系统计时

}


第十六集DS18B20测温.zip

460.64 KB, 下载次数: 0

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-06-27 14:12:25
已绑定手机

2

主题

16

回帖

70

积分

版主

积分
70
发表于 昨天 11:01 | 显示全部楼层
第十七集串口的简单应用

代码成功运行,功能实现:

截图202506271006312016.jpg
截图202506271007117105.jpg
源代码:

#include "config.h"
#include "task.h"
#include "io.h"
#include "tim.h"
#include "usart.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();                                     //USB CDC 接口配置

    IE2 |= 0x80;                                    //使能USB中断
        Timer0_Init();                        //定时器初始化
//        Init_595();
//        INT1_Init();                                                                        //外部中断1初始化
//        P3_IO_Init();                                                                        //IO中断初始化
//        P4_IO_Init();
//        TIM1_Count_Init();
        
        Timer1_Init();
        Uart2_Init();           //串口二初始化
    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();                                //执行功能函数
        }
}



void Timer0_Isr(void) interrupt 1                //1MS执行一次
{

        Task_Marks_Handler_Callback();                                        //系统计时

}

第十七集串口简单应用.zip

229.23 KB, 下载次数: 0

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-06-27 14:12:25
已绑定手机

2

主题

16

回帖

70

积分

版主

积分
70
发表于 1 小时前 | 显示全部楼层
第十八集串口高级应用
代码成功运行,功能能够实现:

任务一:


截图202506271406284670.jpg
截图202506271406011210.jpg
截图202506271407542899.jpg
截图202506271407354401.jpg
源代码:

#include "config.h"
#include "task.h"
#include "io.h"
#include "tim.h"
#include "usart.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();                                     //USB CDC 接口配置

    IE2 |= 0x80;                                    //使能USB中断
        Timer0_Init();                                                                        //定时器初始化
//        Init_595();
//        INT1_Init();                                                                        //外部中断1初始化
//        P3_IO_Init();                                                                        //IO中断初始化
//        P4_IO_Init();
       
        //TIM1_Count_Init();
        Timer1_Init();
        Uart2_Init();                                                                        //串口2初始化
       
    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();                                //执行功能函数
               


        }
}



void Timer0_Isr(void) interrupt 1                //1MS执行一次
{

        Task_Marks_Handler_Callback();                                        //系统计时

}

任务二:
截图202506271410588041.jpg
源代码:

#include "config.h"
#include "task.h"
#include "io.h"
#include "tim.h"
#include "usart.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();                                     //USB CDC 接口配置

    IE2 |= 0x80;                                    //使能USB中断
        Timer0_Init();                                                                        //定时器初始化
//        Init_595();
//        INT1_Init();                                                                        //外部中断1初始化
//        P3_IO_Init();                                                                        //IO中断初始化
//        P4_IO_Init();
       
        //TIM1_Count_Init();
        Timer1_Init();
        Uart2_Init();                                                                        //串口2初始化
       
    EA = 1;                                                                                        //IE |= 0X80;
       
        P40 = 0;
       
        while (DeviceState != DEVSTATE_CONFIGURED);     //等待USB完成配置
//        WDT_CONTR = 0X24;
       
        while(1)
        {
                Usart2_RunTask();
               
        if (bUsbOutReady)                                                        //如果接收到了数据
        {
            //USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
                       
            usb_OUT_done();                                                        //
        }
//                Task_Pro_Handler_Callback();                                //执行功能函数
               


        }
}



void Timer0_Isr(void) interrupt 1                //1MS执行一次
{

        Task_Marks_Handler_Callback();                                        //系统计时

}


第十八集串口的高级应用.zip

396.54 KB, 下载次数: 0

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-06-27 14:12:25
已绑定手机

2

主题

16

回帖

70

积分

版主

积分
70
发表于 2 分钟前 | 显示全部楼层
第十九集ADC

代码成功运行,功能实现:
任务一:
截图202506271503168206.jpg
截图202506271503548872.jpg
源代码:

#include "config.h"
#include "task.h"
#include "io.h"
#include "tim.h"
#include "18b20.h"
#include "adc.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();                                     //USB CDC 接口配置

    IE2 |= 0x80;                                    //使能USB中断
        Timer0_Init();                        //定时器初始化
        Init_595();
       
       
        Timer1_Init();
    ADC_Init();
       
       
        EA = 1;                                                                                        //IE |= 0X80;
       
        P40 = 0;
       
        while (DeviceState != DEVSTATE_CONFIGURED);     //等待USB完成配置
       
        while(1)
        {
               
        if (bUsbOutReady)                                                        //如果接收到了数据
        {
            //USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
                       
            usb_OUT_done();                                                        //
        }
                Task_Pro_Handler_Callback();                                //执行功能函数
               
                SEG_Show_U32( ADC_Read(0) );
        }
}



void Timer0_Isr(void) interrupt 1                //1MS执行一次
{

        Task_Marks_Handler_Callback();                                        //系统计时

}

任务二:
截图202506271521024204.jpg
截图202506271521327638.jpg
源代码:

#include "config.h"
#include "task.h"
#include "io.h"
#include "tim.h"
#include "18b20.h"
#include "adc.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();                                     //USB CDC 接口配置

    IE2 |= 0x80;                                    //使能USB中断
        Timer0_Init();                        //定时器初始化
        Init_595();
       
       
        Timer1_Init();
    ADC_Init();
       
       
        EA = 1;                                                                                        //IE |= 0X80;
       
        P40 = 0;
       
        while (DeviceState != DEVSTATE_CONFIGURED);     //等待USB完成配置
       
        while(1)
        {
               
        if (bUsbOutReady)                                                        //如果接收到了数据
        {
            //USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
                       
            usb_OUT_done();                                                        //
        }
                Task_Pro_Handler_Callback();                                //执行功能函数
               
                SEG_Show_U32( ADC_KEY_READ(ADC_Read(0) ));
        }
}



void Timer0_Isr(void) interrupt 1                //1MS执行一次
{

        Task_Marks_Handler_Callback();                                        //系统计时

}


第十九集ADC.zip

253.1 KB, 下载次数: 0

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-27 15:25 , Processed in 0.701537 second(s), 90 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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