找回密码
 立即注册
楼主: 电子DIY小家

《8051U深度入门到32位51大型实战视频》,【免费 + 包邮 送】实验箱@Ai8051U,100万套

   火... [复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:176
  • 最近打卡:2025-06-30 07:43:59
已绑定手机

115

主题

392

回帖

553

积分

高级会员

积分
553
发表于 2025-5-4 08:31:21 | 显示全部楼层
支持
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:25
  • 最近打卡:2025-06-21 14:33:04
已绑定手机

0

主题

4

回帖

112

积分

注册会员

积分
112
发表于 2025-5-4 12:08:25 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:64
  • 最近打卡:2025-06-30 08:12:04
已绑定手机

0

主题

58

回帖

186

积分

注册会员

积分
186
发表于 2025-5-5 08:17:55 | 显示全部楼层
Ai8051U 视频 终于来了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:25
  • 最近打卡:2025-06-21 14:33:04
已绑定手机

0

主题

4

回帖

112

积分

注册会员

积分
112
发表于 2025-5-5 12:52:11 | 显示全部楼层
来学习了
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-06-08 18:06:04
已绑定手机

0

主题

9

回帖

82

积分

注册会员

积分
82
发表于 2025-5-6 09:00:37 | 显示全部楼层
看了一下介绍,STC的功能现在已经很强大了,非常不错,加油!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-06-27 15:36:11
已绑定手机

4

主题

189

回帖

606

积分

高级会员

积分
606
发表于 2025-5-6 11:33:02 | 显示全部楼层
追更追更
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:14
  • 最近打卡:2025-06-11 10:21:13
已绑定手机

0

主题

19

回帖

198

积分

注册会员

积分
198
发表于 2025-5-6 14:02:40 | 显示全部楼层
交作业 ,第十课  虚拟键盘 + 虚拟数码管
没有输入是  8位数码管 显示 “- - - - - - - -” ,有输入时 按顺序从左边显示 输入  数字,当8位输入完成时,从左到右比对 是否为  “1 2 3 4 5 6 7 8” ,一样时 数码管显示“ open”   不一样时  显示“- - - - - - - -”
uchar Shou_Temp = 0, Num1 = 0;
uchar Seg_Temp[8] = {0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40};

void PC_KEY_Task3(void)
{
        uchar j;
        SEG7_ShowCode(Seg_Temp);
        if(Shou_Temp)
        {
                Seg_Temp[Num1] = DuanMa[Shou_Temp - 48];
                Shou_Temp = 0;
                if(++Num1 > 7)
                {
                        Num1 = 0;
                        State[4] = 1;
                }
       
        }
        if(State[4]) State[5]++;
        if(State[5] == 2)
        {
                State[4] = 0; State[5] = 0;
                printf("Seg_Temp 第一个元素是%d\r\n",(int)Seg_Temp[0]);
                if(Seg_Temp[0] == 0x06)      //0x5C, 0x73,0x79 ,0x54 //  o p e n 段码
                {
                        if(Seg_Temp[1] == 0x5B)
                        {
                                if(Seg_Temp[2] == 0x4F)
                                {
                                        if(Seg_Temp[3] == 0x66)
                                        {
                                                if(Seg_Temp[4] == 0x6D)
                                                {
                                                        if(Seg_Temp[5] == 0x7D)
                                                        {
                                                                if(Seg_Temp[6] == 0x07)
                                                                {
                                                                        if(Seg_Temp[7] == 0x7F)
                                                                        {
                                                                                Seg_Temp[0] = 0x40; Seg_Temp[1] = 0x40;
                                                                                Seg_Temp[2] = 0x5C; Seg_Temp[3] = 0x73;
                                                                                Seg_Temp[4] = 0x79; Seg_Temp[5] = 0x54;
                                                                                Seg_Temp[6] = 0x40; Seg_Temp[7] = 0x40;
                                                                        }
                                                                }
                                                        }
                                                }
                                        }
                                }
                        }
                }
                else
                {
                       
                        for(j=0; j<8; j++)
                        {
                                Seg_Temp[j] = 0x40;
                        }
                        printf("Seg_Temp 第一个元素是%d\r\n",(int)Seg_Temp[0]);
                }
       
        }
       
}

任务调度
static TASK_COMPONENTS Task_Comps[]=
{
       
    {0, 500,    500,     LED0_Blink},      //任务1   500ms
        {0, 1000,   1000,   LED1_Blink},       //任务2  1000ms
        {0, 2000,   2000,   LED2_Blink},       //任务3   2000ms
//        {0, 1,      1,      Seg_Task},
        {0, 10,     10,     KEY_Task},       
//        {0, 50,     50,     Time_Count},
        {0, 500,    500,     PC_KEY_Task3},
           
    /* Add new task here */
};

主函数
void main(void)
{
       
        Sys_Init();                
        usb_init();                                     //USB CDC 接口配置   
        Timer0_Init();      //启动定时器0       
//        Init_595();
       
    EA = 1;         //IE |= 0x80;
        IE2 |= 0x80;        //打开USB中断
        P40 = 0;           //LED灯开关打开
       
        while (DeviceState != DEVSTATE_CONFIGURED);     //等待USB完成配置
       
       
       
        while(1)
        {
                if (bUsbOutReady)            //如果收到数据 原路返回
        {
            Shou_Temp = UsbOutBuffer[5];
                        //USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)       
                       
            usb_OUT_done();
        }
               
               

               
                Task_Pro_Handler_Callback();       //执行函数
               
               
               
               
       
        }

}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:14
  • 最近打卡:2025-06-11 10:21:13
已绑定手机

0

主题

19

回帖

198

积分

注册会员

积分
198
发表于 2025-5-6 14:19:32 | 显示全部楼层
上面改正下  ,有点问题
uchar Shou_Temp = 0, Num1 = 0;
uchar Seg_Temp[8] = {0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40};

void PC_KEY_Task3(void)
{
        uchar j;
        SEG7_ShowCode(Seg_Temp);
        if(Shou_Temp)
        {
                Seg_Temp[Num1] = DuanMa[Shou_Temp - 48];
                Shou_Temp = 0;
                if(++Num1 > 7)
                {
                        Num1 = 0;
                        State[4] = 1;
                }
       
        }
        if(State[4]) State[5]++;
        if(State[5] == 2)
        {
                State[4] = 0; State[5] = 0;
                printf("Seg_Temp 第一个元素是%d\r\n",(int)Seg_Temp[0]);
                if(Seg_Temp[0] == 0x06)      //0x5C, 0x73,0x79 ,0x54 //  o p e n 段码
                {
                        if(Seg_Temp[1] == 0x5B)
                        {
                                if(Seg_Temp[2] == 0x4F)
                                {
                                        if(Seg_Temp[3] == 0x66)
                                        {
                                                if(Seg_Temp[4] == 0x6D)
                                                {
                                                        if(Seg_Temp[5] == 0x7D)
                                                        {
                                                                if(Seg_Temp[6] == 0x07)
                                                                {
                                                                        if(Seg_Temp[7] == 0x7F)
                                                                        {
                                                                                Seg_Temp[0] = 0x40; Seg_Temp[1] = 0x40;
                                                                                Seg_Temp[2] = 0x5C; Seg_Temp[3] = 0x73;
                                                                                Seg_Temp[4] = 0x79; Seg_Temp[5] = 0x54;
                                                                                Seg_Temp[6] = 0x40; Seg_Temp[7] = 0x40;
                                                                        }
                                                                        else
                                                                        {
                                                                               
                                                                                for(j=0; j<8; j++)
                                                                                {
                                                                                        Seg_Temp[j] = 0x40;
                                                                                }
                                                                                printf("Seg_Temp 第一个元素是%d\r\n",(int)Seg_Temp[0]);
                                                                        }
                                                                }
                                                                else
                                                                {
                                                                       
                                                                        for(j=0; j<8; j++)
                                                                        {
                                                                                Seg_Temp[j] = 0x40;
                                                                        }
                                                                        printf("Seg_Temp 第一个元素是%d\r\n",(int)Seg_Temp[0]);
                                                                }
                                                        }
                                                        else
                                                        {
                                                               
                                                                for(j=0; j<8; j++)
                                                                {
                                                                        Seg_Temp[j] = 0x40;
                                                                }
                                                                printf("Seg_Temp 第一个元素是%d\r\n",(int)Seg_Temp[0]);
                                                        }
                                                }
                                                else
                                                {
                                                       
                                                        for(j=0; j<8; j++)
                                                        {
                                                                Seg_Temp[j] = 0x40;
                                                        }
                                                        printf("Seg_Temp 第一个元素是%d\r\n",(int)Seg_Temp[0]);
                                                }
                                                       
                                        }
                                        else                                               
                                        {                                               
                                                for(j=0; j<8; j++)
                                                {
                                                        Seg_Temp[j] = 0x40;
                                                }
                                                printf("Seg_Temp 第一个元素是%d\r\n",(int)Seg_Temp[0]);
                                        }
                                }
                                else
                                {
                                       
                                        for(j=0; j<8; j++)
                                        {
                                                Seg_Temp[j] = 0x40;
                                        }
                                        printf("Seg_Temp 第一个元素是%d\r\n",(int)Seg_Temp[0]);
                                }
                        }
                        else
                        {
                               
                                for(j=0; j<8; j++)
                                {
                                        Seg_Temp[j] = 0x40;
                                }
                                printf("Seg_Temp 第一个元素是%d\r\n",(int)Seg_Temp[0]);
                        }
                }
                else
                {
                       
                        for(j=0; j<8; j++)
                        {
                                Seg_Temp[j] = 0x40;
                        }
                        printf("Seg_Temp 第一个元素是%d\r\n",(int)Seg_Temp[0]);
                }
       
        }
       
}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:68
  • 最近打卡:2025-06-30 09:00:10
已绑定手机

0

主题

46

回帖

408

积分

中级会员

积分
408
发表于 2025-5-7 08:40:58 | 显示全部楼层
国芯加油
回复

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:77
  • 最近打卡:2025-06-06 07:58:42
已绑定手机

3

主题

37

回帖

125

积分

注册会员

积分
125
发表于 2025-5-7 08:41:58 | 显示全部楼层
啥时候更新?
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-7-1 02:47 , Processed in 0.179769 second(s), 112 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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