找回密码
 立即注册
楼主: skyalong

学习《Ai8051U教学视频》心得打卡

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:269
  • 最近打卡:2026-05-30 00:35:00
已绑定手机

1

主题

25

回帖

448

积分

中级会员

积分
448
发表于 2026-5-18 14:39:36 | 显示全部楼层
skya*** 发表于 2025-5-29 13:59
第六集  IO输入输出

IO输入输出:和点亮灯类似,先设置IO口模式,输入一般设置为准双向口或高阻输入,输出一般设置为推挽输出;输入直接判断是否等于0(低有效接法),延时(消抖),再次判断,输出直接赋值对应电平
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:269
  • 最近打卡:2026-05-30 00:35:00
已绑定手机

1

主题

25

回帖

448

积分

中级会员

积分
448
发表于 2026-5-18 15:35:01 | 显示全部楼层
skya*** 发表于 2025-5-29 14:39
第七集   定时器中断

定时器应用:

定时器:
        定时器初始化: 设置时钟预分频,通俗说就是设置好定时器每变化1是多长时间(计算值倒数才是时钟时间)
                               设置定时器是时钟为1T / 12T模式,通俗来说就是再分频一次
                               设置定时器模式
                               设置初值,计满值减初值为计数值,乘以分频中的时间就是定时时间
                               清中断标志
                               使能定时器中断
                               开总中断(有其他中断可以先不设置,一般在主函数循环前单独设置)
                               开始计时(一般初始化时不开始,根据使用情况再开启)
        中断函数:为了整体稳定只进行标志位修改,或变量增减等耗时较短语句,防止长时间处于中断中,影响下一次中断的触发等问题
      
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:269
  • 最近打卡:2026-05-30 00:35:00
已绑定手机

1

主题

25

回帖

448

积分

中级会员

积分
448
发表于 2026-5-18 15:47:41 | 显示全部楼层
skya*** 发表于 2025-5-30 15:00
第八集 定时器周期性调度任务
(前1-7集感觉就是带小白入门,从本集开始难度飙升,半吊子的我学起来有一丢 ...

typedef struct
{
        u8 Run;               //任务状态:Run/Stop
        u16 TIMCount;         //定时计数器
        u16 TRITime;          //重载计数器
        void (*TaskHook) (void); //任务函数
} TASK_COMPONENTS;

static TASK_COMPONENTS Task_Comps[]=
{
//状态  计数  周期  函数
    {0, 300, 300,  LED0_blink},     
    {0, 600, 600,  LED1_blink},      
    {0, 900, 900,  LED2_blink},      
    {0, 10 , 10 ,  key},        
   
};

u8 Tasks_Max = sizeof(Task_Comps)/sizeof(Task_Comps[0]);

void Task_Marks_Handler_Callback(void)
{
    u8 i;
    for(i=0; i<Tasks_Max; i++)
    {
        if(Task_Comps.TIMCount)      /* If the time is not 0 */
        {
            Task_Comps.TIMCount--;   /* Time counter decrement */
            if(Task_Comps.TIMCount == 0) /* If time arrives */
            {
                /*Resume the timer value and try again */
                Task_Comps.TIMCount = Task_Comps.TRITime;  
                Task_Comps.Run = 1;      /* The task can be run */
            }
        }
    }
}

void Task_Pro_Handler_Callback(void)
{
    u8 i;
    for(i=0; i<Tasks_Max; i++)
    {
        if(Task_Comps.Run) /* If task can be run */
        {
            Task_Comps.Run = 0;      /* Flag clear 0 */
            Task_Comps.TaskHook();   /* Run task */
        }
    }
}
此为用结构体建立多任务调度主要函数:T0 1ms自动重装载作为任务调度基本时钟,主函数中调用Task_Pro_Handler_Callback();开启任务调度,中断中调用Task_Marks_Handler_Callback();时间计数增加
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:269
  • 最近打卡:2026-05-30 00:35:00
已绑定手机

1

主题

25

回帖

448

积分

中级会员

积分
448
发表于 2026-5-18 16:13:09 | 显示全部楼层
skya*** 发表于 2025-6-18 15:56
第十三集 外部中断
摘要1.中断系统介绍2.外部中断介绍3.外部中断用法
中断系统介绍    外部中断        硬 ...

外部中断:
初始化,中断触发方式选择,中断允许,开总中断(可以先不开在主函数循环前再开,或在其他合适位置开启)
void INT1_Init(void)
{
    IT1 = 1;            //下降沿中断
    EX1 = 1;            //外部中断1允许
    EA = 1;  
}
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:269
  • 最近打卡:2026-05-30 00:35:00
已绑定手机

1

主题

25

回帖

448

积分

中级会员

积分
448
发表于 2026-5-18 16:25:46 | 显示全部楼层
skya*** 发表于 2025-6-24 15:54
第十四集 IO中断摘要1.IO中断介绍2.IO中断用法3.中断优先级的设置
IO中断介绍IO中断用法            任务1 ...

IO中断:设定中断触发方式
打开中断
如果需要打断,设定中断优先级

P1默认优先级比P3高,P1可以打断P3,P3不能打断P1;修改优先级后给予P3最高优先级后,P3可以打断P1
void P3_IO_Init(void)
{
  P3IM0 = 0X00;   //IO中断模式设置为了低电平
  P3IM1 = 0Xff;
  
  P3INTE= 0x04;   //打开中断 P32 7654 3210 8421 8421  
  
  PINIPH  |= 0x08;  //写入最高优先级
  PINIPL  |= 0x08;
}
void P1_IO_Init(void)
{
  P1IM0 = 0X00;   //IO中断模式设置为了低电平
  P1IM1 = 0Xff;
  
  P1INTE= 0x04;   //打开中断 P12 7654 3210 8421 8421  
}
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:269
  • 最近打卡:2026-05-30 00:35:00
已绑定手机

1

主题

25

回帖

448

积分

中级会员

积分
448
发表于 2026-5-18 17:07:08 | 显示全部楼层
skya*** 发表于 2025-7-15 16:18
第十五集 定时器做计数器摘要1.计数器的作用2.定时器做为计数器的用法3.定时器1测量INT1引脚低电平脉冲宽度 ...

计数器
设置定时器为计数器模式
设置计数器工作方式
开启GATE

T1_CT = 1;
T1_M1 = 0;
T1_M0 = 0;
T1_GATE = 0;
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:269
  • 最近打卡:2026-05-30 00:35:00
已绑定手机

1

主题

25

回帖

448

积分

中级会员

积分
448
发表于 2026-5-22 17:44:36 | 显示全部楼层
skya*** 发表于 2025-9-22 16:58
好久没更新了,这条好像还没写完,还有点问题

重新更新了课后练习代码
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-5-30 04:44 , Processed in 0.107720 second(s), 72 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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