找回密码
 立即注册
查看: 1303|回复: 14

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

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:91
  • 最近打卡:2025-06-16 09:57:09

14

主题

93

回帖

1094

积分

版主

积分
1094
发表于 2024-11-29 14:21:42 | 显示全部楼层 |阅读模式
本帖最后由 芯启航 于 2024-11-29 14:23 编辑

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

截图202411291418592634.jpg
截图202411291419103744.jpg
截图202411291419196632.jpg

第三集代码.zip

39.27 KB, 下载次数: 39

1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:91
  • 最近打卡:2025-06-16 09:57:09

14

主题

93

回帖

1094

积分

版主

积分
1094
发表于 2024-11-29 14:26:16 | 显示全部楼层
第四集  USB不停电下载-----手敲代码,测试成功

截图202411291424499723.jpg

不停电下载.zip

86.69 KB, 下载次数: 35

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:91
  • 最近打卡:2025-06-16 09:57:09

14

主题

93

回帖

1094

积分

版主

积分
1094
发表于 2024-12-2 08:41:44 | 显示全部楼层
打卡第五集,已手敲代码,测试通过

截图202412020837257765.jpg

第五集代码.zip

48.61 KB, 下载次数: 32

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:91
  • 最近打卡:2025-06-16 09:57:09

14

主题

93

回帖

1094

积分

版主

积分
1094
发表于 2024-12-2 08:42:59 | 显示全部楼层
跟着冲哥打卡第六集:IO口输入输出,已手敲代码,测试通过

截图202412020842241971.jpg

IO输入输出.rar

105.32 KB, 下载次数: 30

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:91
  • 最近打卡:2025-06-16 09:57:09

14

主题

93

回帖

1094

积分

版主

积分
1094
发表于 2024-12-3 16:00:30 | 显示全部楼层
本帖最后由 芯启航 于 2024-12-3 16:49 编辑

第7集定时器中断已学习 已手敲代码,测试通过
截图202412031555512566.jpg

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

98.33 KB, 下载次数: 38

AI8051U教学视频第7集定时器学习程序演示视频.mp4

2.06 MB, 下载次数: 36

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:91
  • 最近打卡:2025-06-16 09:57:09

14

主题

93

回帖

1094

积分

版主

积分
1094
发表于 2024-12-6 10:27:53 | 显示全部楼层
第8集定时器周期性调度任务

任务1:用一个定时器实现这个任务。LED1实现0.3秒取反一次,LED2实现0.6秒取反一次,LED3 0.9秒取反一次

任务一

任务一









回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:91
  • 最近打卡:2025-06-16 09:57:09

14

主题

93

回帖

1094

积分

版主

积分
1094
发表于 2024-12-6 10:54:36 | 显示全部楼层
任务2:数组点亮LED,实现流水灯

任务二

任务二




回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:91
  • 最近打卡:2025-06-16 09:57:09

14

主题

93

回帖

1094

积分

版主

积分
1094
发表于 2024-12-6 10:59:08 | 显示全部楼层
任务3:按键1按一下,LED通过数组移动一下

截图202412061116579096.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:91
  • 最近打卡:2025-06-16 09:57:09

14

主题

93

回帖

1094

积分

版主

积分
1094
发表于 2024-12-6 11:40:33 | 显示全部楼层
LED1 0.3秒闪一次,LED2 0.6秒闪一次,LED3 0.9秒闪一次
截图202412061137381942.jpg




AI8051U教学视频第8集定时器周期性调度任务学习程序.zip

4.99 MB, 下载次数: 38

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:91
  • 最近打卡:2025-06-16 09:57:09

14

主题

93

回帖

1094

积分

版主

积分
1094
发表于 2024-12-14 18:34:02 | 显示全部楼层
第九集 数码管 已手敲代码测试通过


任务一:数码管静态的显示一个数字

任务一效果

任务一效果
截图202412161605205248.jpg


任务二:数码管显示“12345678”
截图202412141836409274.jpg 截图202412161625414679.jpg

任务三:数码管显示“00-00-00”分别代表时分秒,每过一秒钟秒+1
截图202412141838047608.jpg

任务四:虚拟显示——LED和数码管
(1)效果图如下:
截图202412171413593275.jpg
截图202412171422125483.jpg

(2)代码如下:

#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 T_NUM[8] =
{
        0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80
};

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;                        //DAT = (DAT<<1);      //CY
                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]);        //数码管刷段码和位码
        }
        
        else
        {
               
        }
        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;
                }
        }
}
u8 state_now = 0;

void PLED_40(void)
{
        u8 cod[8];
        cod[0] = 0x0f;                //表示开启P0-P3
        cod[1] = 0x01;                //P0端口
        cod[2] = 0X01;                //P1端口
        cod[3] = ~T_NUM[state_now];                //P2端口
        cod[4] = 0X01;                //P3端口
        LED40_SendData( cod,5 );

        P2 = ~T_NUM[state_now];
        
        state_now++;
        if( state_now>7)
                state_now = 0;
}

void SEG_PC (void)
{

        u8 cod[8];                                                                                
        
        cod[0]= SEG_NUM[shi/10];
        cod[1]= SEG_NUM[shi%10];
        cod[2]= SEG_NUM[16];

        cod[3]= SEG_NUM[fen/10];
        cod[4]= SEG_NUM[fen%10];
        cod[5]= SEG_NUM[16];
        
        cod[6]= SEG_NUM[miao/10];
        cod[7]= SEG_NUM[miao%10];
        
        SEG7_ShowCode(cod);
}

        






AI8051U教学视频第9集shu码管.zip

774.62 KB, 下载次数: 36

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-19 10:52 , Processed in 2.784509 second(s), 100 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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