找回密码
 立即注册
查看: 484|回复: 6

《8051U深度入门到32位51大型实战教学视频》学习心路历程

[复制链接]

18

主题

23

回帖

766

积分

版主

积分
766
发表于 2024-11-29 14:00:45 | 显示全部楼层 |阅读模式
本帖最后由 百桃园 于 2024-12-3 14:31 编辑

打卡第三集,完成作业,已手敲代码,测试通过

截图202411291352377512.jpg
截图202411291353288492.jpg
第三集代码.zip (41.3 KB, 下载次数: 19)
image.png
回复

使用道具 举报 送花

18

主题

23

回帖

766

积分

版主

积分
766
发表于 2024-11-29 14:04:08 | 显示全部楼层
打卡第四集,完成作业,已手敲代码,测试通过
截图202411291402234043.jpg
第四集代码.zip (1.22 MB, 下载次数: 21)

回复 支持 反对

使用道具 举报 送花

18

主题

23

回帖

766

积分

版主

积分
766
发表于 2024-12-3 14:58:08 | 显示全部楼层
第5集  C语言基础,已手敲代码,测试通过
截图202412031432038547.jpg
截图202412031454468504.jpg


第五集代码.zip (2.02 MB, 下载次数: 18)

回复 支持 反对

使用道具 举报 送花

18

主题

23

回帖

766

积分

版主

积分
766
发表于 2024-12-3 16:56:02 | 显示全部楼层
第6集已学习,已手敲代码,测试通过

截图202412031653108407.jpg
第六集IO输入输出.zip (2.03 MB, 下载次数: 17)
回复 支持 反对

使用道具 举报 送花

18

主题

23

回帖

766

积分

版主

积分
766
发表于 2024-12-4 17:23:45 | 显示全部楼层

第七集,手敲代码已通过

3秒取反一次
截图202412041612369488.jpg


截图202412041713041362.jpg
AI8051U教学视频第7集定时器学习程序.zip (2.05 MB, 下载次数: 15)
回复 支持 反对

使用道具 举报 送花

18

主题

23

回帖

766

积分

版主

积分
766
发表于 2024-12-22 20:53:04 | 显示全部楼层
第八集已学习,手敲代码已通过
任务1、0.3秒取反一次

截图202412231618297251.jpg
任务2、流水灯
截图202412231655534738.jpg
任务3、按键按一下,LED移动一下
截图202412241502265239.jpg

第AI8051U教学视频八集定时器周期性调度任务程序.zip (2.04 MB, 下载次数: 8) 第八集效果视频.zip (23.34 MB, 下载次数: 10)



回复 支持 反对

使用道具 举报 送花

18

主题

23

回帖

766

积分

版主

积分
766
发表于 2025-1-2 16:44:16 | 显示全部楼层
第九集手敲代码,测试成功
任务一:数码管静态的显示一个数字
截图202501021528484320.jpg
截图202501021643466388.jpg

#include "io.h"

u8 SEG_num[]=
{
    0x3F,       /*'0', 0*/
    0x06,       /*'1', 1*/
    0x5B,       /*'2', 2*/
    0x4F,       /*'3', 3*/
    0x66,       /*'4', 4*/
    0x6D,       /*'5', 5*/
    0x7D,       /*'6', 6*/
    0x07,       /*'7', 7*/
    0x7F,       /*'8', 8*/
    0x6F,       /*'9', 9*/
    0x77,       /*'A', 10*/
    0x7C,       /*'B', 11*/
    0x39,       /*'C', 12*/
    0x5E,       /*'D', 13*/
    0x79,       /*'E', 14*/
    0x71,       /*'F', 15*/
    0x40,       /*'-', 16*/
    0x00,       /*' ', 17*/
    0x80,       /*'.', 18*/

};

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

u16 Key_Vol[3];                                //按键按下持续时间


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[0]++;
//                if( Key_Vol==5 )
//                {
//                        //按键按下的任务
//                        printf( "按键单击\r\n" );
//                }
//        }
//        else
//        {
//                Key_Vol = 0;
//        }
        
}

void Init_595(void)
{
        HC595_SER = 0;
        HC595_RCK = 0;
        HC595_SCK = 0;
        
}
void Send_595( u8 dat )
{
        u8 i;
        
        for(i=0;i<8;i++)
        {
                dat <<=1;
                HC595_SER = CY;
                HC595_SCK = 1;
                HC595_SCK = 0;
        }
}

void Display_Seg( u8 HC595_1, u8 HC595_2 )
{
        Send_595(HC595_1);
        Send_595(HC595_2);
        HC595_RCK = 1;
        HC595_RCK = 0;
}

void Seg_Task(void)
{
        Display_Seg(SEG_num[0],0xfe);
}


任务二:显示“12345678”
截图202501021545045664.jpg
截图202501021644065622.jpg

#include "io.h"

u8 SEG_num[]=
{
    0x3F,       /*'0', 0*/
    0x06,       /*'1', 1*/
    0x5B,       /*'2', 2*/
    0x4F,       /*'3', 3*/
    0x66,       /*'4', 4*/
    0x6D,       /*'5', 5*/
    0x7D,       /*'6', 6*/
    0x07,       /*'7', 7*/
    0x7F,       /*'8', 8*/
    0x6F,       /*'9', 9*/
    0x77,       /*'A', 10*/
    0x7C,       /*'B', 11*/
    0x39,       /*'C', 12*/
    0x5E,       /*'D', 13*/
    0x79,       /*'E', 14*/
    0x71,       /*'F', 15*/
    0x40,       /*'-', 16*/
    0x00,       /*' ', 17*/
    0x80,       /*'.', 18*/

};

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

u16 Key_Vol[3];                                //按键按下持续时间

u8 T_num[8]=
{
        0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80
};

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[0]++;
//                if( Key_Vol==5 )
//                {
//                        //按键按下的任务
//                        printf( "按键单击\r\n" );
//                }
//        }
//        else
//        {
//                Key_Vol = 0;
//        }
        
}

void Init_595(void)
{
        HC595_SER = 0;
        HC595_RCK = 0;
        HC595_SCK = 0;
        
}
void Send_595( u8 dat )
{
        u8 i;
        
        for(i=0;i<8;i++)
        {
                dat <<=1;
                HC595_SER = CY;
                HC595_SCK = 1;
                HC595_SCK = 0;
        }
}

void Display_Seg( u8 HC595_1, u8 HC595_2 )
{
        Send_595(HC595_1);
        Send_595(HC595_2);
        HC595_RCK = 1;
        HC595_RCK = 0;
}

u8 Seg_no = 0;

void Seg_Task(void)
{
        Display_Seg(SEG_num[Seg_no+1],~T_num[Seg_no]);
        Seg_no ++;
        if ( Seg_no >7)
                Seg_no=0;
        
}


任务三:显示时分秒
截图202501021639429245.jpg

#include "io.h"

u8 SEG_num[]=
{
    0x3F,       /*'0', 0*/
    0x06,       /*'1', 1*/
    0x5B,       /*'2', 2*/
    0x4F,       /*'3', 3*/
    0x66,       /*'4', 4*/
    0x6D,       /*'5', 5*/
    0x7D,       /*'6', 6*/
    0x07,       /*'7', 7*/
    0x7F,       /*'8', 8*/
    0x6F,       /*'9', 9*/
    0x77,       /*'A', 10*/
    0x7C,       /*'B', 11*/
    0x39,       /*'C', 12*/
    0x5E,       /*'D', 13*/
    0x79,       /*'E', 14*/
    0x71,       /*'F', 15*/
    0x40,       /*'-', 16*/
    0x00,       /*' ', 17*/
    0x80,       /*'.', 18*/

};

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

u16 Key_Vol[3];                                //按键按下持续时间

u8 T_num[8]=
{
        0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80
};

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[0]++;
//                if( Key_Vol==5 )
//                {
//                        //按键按下的任务
//                        printf( "按键单击\r\n" );
//                }
//        }
//        else
//        {
//                Key_Vol = 0;
//        }
        
}

void Init_595(void)
{
        HC595_SER = 0;
        HC595_RCK = 0;
        HC595_SCK = 0;
        
}
void Send_595( u8 dat )
{
        u8 i;
        
        for(i=0;i<8;i++)
        {
                dat <<=1;
                HC595_SER = CY;
                HC595_SCK = 1;
                HC595_SCK = 0;
        }
}

void Display_Seg( u8 HC595_1, u8 HC595_2 )
{
        Send_595(HC595_1);
        Send_595(HC595_2);
        HC595_RCK = 1;
        HC595_RCK = 0;
}

u8 Seg_no = 0;
u8 shi=0;
u8 fen=0;
u8 miao=0;

void Seg_Task(void)
{
        u8 num =0;
        if( Seg_no ==0)
        {
                num=shi/10;
            Display_Seg(SEG_num[num],~T_num[0]);
        }
        else if( Seg_no ==1)
        {
                num=shi%10;
            Display_Seg(SEG_num[num],~T_num[1]);
        }
        else if( Seg_no ==2)
        {

            Display_Seg(SEG_num[16],~T_num[2]);
        }
        else if( Seg_no ==3)
        {
                num=fen/10;
            Display_Seg(SEG_num[num],~T_num[3]);
        }
        else if( Seg_no ==4)
        {
                num=fen%10;
            Display_Seg(SEG_num[num],~T_num[4]);
        }
        else if( Seg_no ==5)
        {

            Display_Seg(SEG_num[16],~T_num[5]);
        }
        else if( Seg_no ==6)
        {
                num=miao/10;
            Display_Seg(SEG_num[num],~T_num[6]);
        }
        else if( Seg_no ==7)
        {
                num=miao%10;
            Display_Seg(SEG_num[num],~T_num[7]);
        }
        Seg_no ++;
        if ( Seg_no >7)
                Seg_no=0;
        
}

void TIMECOUNT_task(void)
{
        miao ++;
        if(miao>59)
        {
                miao = 0;
                fen++;
                if(fen>59)
                {
                        fen = 0;
                        shi ++;
                        if(shi>23)
                          shi = 0;
                }
        }
}

第九集视频.jpg
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-6 22:07 , Processed in 0.122938 second(s), 84 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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