fs_ajin 发表于 前天 08:20

来学习了

香河英茂工作室 发表于 前天 08:31

支持

windsoft77 发表于 前天 09:21

打卡必须的

rmdjqgmt 发表于 前天 12:08

{:4_174:}{:4_174:}

fs_ajin 发表于 昨天 08:17

Ai8051U 视频 终于来了

rmdjqgmt 发表于 昨天 12:52

来学习了

windsoft77 发表于 8 小时前

继续跟进

summerrain19 发表于 7 小时前

看了一下介绍,STC的功能现在已经很强大了,非常不错,加油!{:4_174:}

木木01 发表于 5 小时前

追更追更{:4_186:}

怕热的大叔 发表于 2 小时前

交作业 ,第十课虚拟键盘 + 虚拟数码管
没有输入是8位数码管 显示 “- - - - - - - -” ,有输入时 按顺序从左边显示 输入数字,当8位输入完成时,从左到右比对 是否为“1 2 3 4 5 6 7 8” ,一样时 数码管显示“ open”   不一样时显示“- - - - - - - -”
uchar Shou_Temp = 0, Num1 = 0;
uchar Seg_Temp = {0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40};

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

任务调度
static TASK_COMPONENTS Task_Comps[]=
{
       
    {0, 500,    500,   LED0_Blink},      //任务1   500ms
        {0, 1000,   1000,   LED1_Blink},       //任务21000ms
        {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;
                        //USB_SendData(UsbOutBuffer,OutNumber);   //发送数据缓冲区,长度(接收数据原样返回, 用于测试)       
                       
            usb_OUT_done();
      }
               
               

               
                Task_Pro_Handler_Callback();       //执行函数
               
               
               
               
       
        }

}
页: 128 129 130 131 132 133 134 135 136 137 [138] 139
查看完整版本: 《8051U深度入门到32位51大型实战视频》,【免费 + 包邮 送】实验箱@Ai8051U,100万套