找回密码
 立即注册
查看: 228|回复: 2

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

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:15
  • 最近打卡:2025-05-06 15:23:14

19

主题

386

回帖

2514

积分

版主

积分
2514
QQ
发表于 2024-12-26 16:14:02 | 显示全部楼层 |阅读模式
点亮第一个LED灯
截图202412261609017599.jpg

截图202412261611294996.jpg

#include "ai8051u.h"               

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

3点亮第一个LED手敲程序.zip (45.35 KB, 下载次数: 11)
QQ:1463035472,微信:19952583954
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:15
  • 最近打卡:2025-05-06 15:23:14

19

主题

386

回帖

2514

积分

版主

积分
2514
QQ
发表于 2024-12-26 16:27:58 | 显示全部楼层
第九集数码管--擎天柱



AI8051U教学视频第9集shu码管学习程序.zip (163.18 KB, 下载次数: 11)

截图202412280914224668.jpg

QQ:1463035472,微信:19952583954
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:15
  • 最近打卡:2025-05-06 15:23:14

19

主题

386

回帖

2514

积分

版主

积分
2514
QQ
发表于 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);
}

擎天柱-AI8051U教学视频第10集虚拟LED.zip (157.54 KB, 下载次数: 0)


QQ:1463035472,微信:19952583954
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-6 21:45 , Processed in 0.125408 second(s), 60 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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