32位8051-AI 发表于 2024-12-26 16:14:02

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

点亮第一个LED灯




#include "ai8051u.h"               

void main(void)
{
        P2M0 = 0;               
        P2M1 = 0;
       
        while(1)
        {
                P20 = 0;       
                P21 = 0;       
        }
}


32位8051-AI 发表于 2024-12-26 16:27:58

第九集数码管--擎天柱







32位8051-AI 发表于 2025-1-3 10:28:50

打卡第十集

任务一、P2口流水灯,P10闪烁

#include "io.h"

u8 State1=0;
u8 State2=0;
u8 State3=0;
u16 Key_Vol ;

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

u8 P2_STATE = 0x01;
u8 P10_STATE = 0;
void TASK_1(void)
{
      LED40_SetPort(2,~P2_STATE);
      P2_STATE = (P2_STATE<<1);
      if(P2_STATE==0)
         P2_STATE=1;
      
      if(P10_STATE==0)
                LED40_SetBit(1,0);
      else
                LED40_ClrBit(1,0);
      P10_STATE = !P10_STATE;
      
}


任务二、左边数码管显示P32按下次数,右边数码管显示P33按下次数

#include "io.h"

u8 State1=0;
u8 State2=0;
u8 State3=0;
u16 Key_Vol;
u16 Key_Vol_2;

void LED0_Blink(void)
{
      State1=!State1;
      P00=State1;
}

void LED1_Blink(void)
{
      State2=!State2;
      P01=State2;
}

void LED2_Blink(void)
{
      State3=!State3;
      P02=State3;
}
u16 KEY1_COUNT = 0;
u16 KEY2_COUNT = 0;

void KEY_Task(void)
{
      if( P32 == 0 )
      {
                Key_Vol++;
                if( Key_Vol==5 )
                {
            KEY1_COUNT++;
                }
      }
      else
      {
                Key_Vol = 0;
      }
      
      if( P33 == 0 )
      {
                Key_Vol_2++;
                if( Key_Vol_2==5 )
                {
            KEY2_COUNT++;
                }
      }
      else
      {
                Key_Vol_2 = 0;
      }
}

u8 P2_STATE = 0x01;
u8 P10_STATE = 0;
void TASK_1(void)
{
      LED40_SetPort(2,~P2_STATE);
      P2_STATE = (P2_STATE<<1);
      if(P2_STATE==0)
         P2_STATE=1;
      
      if(P10_STATE==0)
                LED40_SetBit(1,0);
      else
                LED40_ClrBit(1,0);
      P10_STATE = !P10_STATE;
      
}


u32 KEY_Count = 0;
void TASK_2(void)
{
      KEY_Count = KEY1_COUNT*10000+KEY2_COUNT;
      SEG7_ShowLong(KEY_Count,10);
}


任务三、按下数字按键在数码管显示对应的按键数字

#include "io.h"

u8 State1=0;
u8 State2=0;
u8 State3=0;
u16 Key_Vol;
u16 Key_Vol_2;

void LED0_Blink(void)
{
      State1=!State1;
      P00=State1;
}

void LED1_Blink(void)
{
      State2=!State2;
      P01=State2;
}

void LED2_Blink(void)
{
      State3=!State3;
      P02=State3;
}
u16 KEY1_COUNT = 0;
u16 KEY2_COUNT = 0;

void KEY_Task(void)
{
      if( P32 == 0 )
      {
                Key_Vol++;
                if( Key_Vol==5 )
                {
            KEY1_COUNT++;
                }
      }
      else
      {
                Key_Vol = 0;
      }
      
      if( P33 == 0 )
      {
                Key_Vol_2++;
                if( Key_Vol_2==5 )
                {
            KEY2_COUNT++;
                }
      }
      else
      {
                Key_Vol_2 = 0;
      }
}

u8 P2_STATE = 0x01;
u8 P10_STATE = 0;
void TASK_1(void)
{
      LED40_SetPort(2,~P2_STATE);
      P2_STATE = (P2_STATE<<1);
      if(P2_STATE==0)
         P2_STATE=1;
      
      if(P10_STATE==0)
                LED40_SetBit(1,0);
      else
                LED40_ClrBit(1,0);
      P10_STATE = !P10_STATE;
      
}


u32 KEY_Count = 0;
void TASK_2(void)
{
      KEY_Count = KEY1_COUNT*10000+KEY2_COUNT;
      SEG7_ShowLong(KEY_Count,10);
}

u32 REC_NUM = 0;
void TASK_3(void)
{
      SEG7_ShowLong(REC_NUM,10);
}

https://www.stcaimcu.com/static/image/filetype/zip.gif 擎天柱-AI8051U教学视频第10集虚拟LED.zip (157.54 KB, 下载次数: 0)


页: [1]
查看完整版本: 擎天柱学习:《8051U深度入门到32位51大型实战教学视频》,学习打卡