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

【新手开帖】从AI8051U开始——聊聊学习动机与未来可能性

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-08-24 13:26:58
已绑定手机

1

主题

10

回帖

75

积分

注册会员

积分
75
发表于 2025-7-11 21:32:41 | 显示全部楼层
《8051U深度入门到32位51大型实战教学视频》第7集:定时器中断

本节课程的内容如下:

1、定时器的介绍
  实例问题led三秒闪烁不起作用,没有使用中断功能,一个mcu是单核。
  作用如下:用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作。
                  替代长时间的延时函数,提高程序运行效率和处理速率,从而打断主循环来进行其他事项处理。

2、定时器的应用
    还是引用上述的任务:LED灯三秒取反一次,期间任意时刻按下按钮,串口打印按键次数。
   24位定时器,
   使用ISP定时器来生成定时器,24M频,初始化设置TMOPS/AUXR/TMOD/TL0/TH0/TF0/TR0/ET0
   调用定时器
   定时器中断,在函数名后增加 interrupt关键字来表示此处为中断函数处理
   void Timer0_ISR(void) interrupt 1
   编译并下载,演示。
   AI8051U中关于keil的0xfd问题说明。
   初始化设置意义:TM0PS/TM1PS定时器0/1的8位预分频寄存器、
                             AUXR辅助寄存器1:0-对应12T模式,CPU12分频,1-对应1T模式,CPU不分频
                             TMOD:定时器0/1模式寄存器,T1_M1和T1_M0设置不一样;定时器0模式0,16位自动重装模式
                             
    定时频率 = 系统频率 / ((TM0PS + 1)* (65536 - 【TH0, TL0】) * T)
    定时时间 = ((TM0PS + 1)* (65536 - 【TH0, TL0】) * T)/ 系统频率
    T=1或12,超过65536后溢出重置标志位

3、函数的定义、声明、调用
    一般的函数包括: 返回值类型、函数名、入口参数、函数体、return 返回值,返回值可以不需要这时应为void

4、多任务的定时中断如何实现?

5、课后小练:电子功德箱。

本节课要掌握中断函数的使用,中断用于传感器输入的控制非常重要。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-08-24 13:26:58
已绑定手机

1

主题

10

回帖

75

积分

注册会员

积分
75
发表于 2025-7-16 18:51:10 | 显示全部楼层
到货,以咨纪念。

IMG_20250716_183900[1].jpg
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-08-24 13:26:58
已绑定手机

1

主题

10

回帖

75

积分

注册会员

积分
75
发表于 2025-8-24 15:33:09 | 显示全部楼层
《8051U深度入门到32位51大型实战教学视频》第8集:定时器周期性调度任务

本节课程的内容如下:

1、上一趟课程的BUG调整和优化
     例如: 大小写、中英文符号、如何查抄问题所在位置、串口更多设置
2、周期性任务介绍
   任务1:用1个定时器实现这个任务,led1实现03秒取反一次,led2实现0.6秒取反一次,led3每0.9秒取反一次。
               思路:通过一个变量计数,假设这个变量1ms自加一次,加到300即为300ms,加到600即为600ms, 计数达到后重新清0.
               中断函数中应调整为1ms的延时函数,定义变量来接受计数300/600/900以判别是否达到led1/led2/led3的反转条件。
               多个相同类型的变量可以用一个数组来替代。
   任务2:数组点亮led,实现流水灯。0-点亮,1-熄灭。数组长度需要把握好。流水灯移动时间。
              多行注释。数组中定义0,1时要注意
    任务3:按键按一下,LED通过数组移动一下。这里要考虑抖动。


3、创建c和h文件
   三步骤:创建文件并保存,添加到工程,添加引用路径。1个C配置一个H。
   

4、结构体的介绍

5、结构体数组的周期性任务调度。
led1 0.3秒闪一次,led2 0.6秒闪一次, led3 0.9秒闪一次,
任务要求有如下特点:1、有定时器1ms的计数目标,2都有一个设定的目标值。3、都需要有执行的功能。4、定时时间到了才能执行。
typedef struct{}

本节课要掌握结构体数组再周期性重复性任务重的使用,以减少代码的重复编写和一次写完可反复使用,结构体也经常用于数据代码编写。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:44
  • 最近打卡:2025-10-10 14:30:18

16

主题

133

回帖

1170

积分

版主

积分
1170
发表于 2025-8-25 09:27:03 | 显示全部楼层

推荐优先看的 printf_usb("Hello World !\r\n")及usb不停电下载, 演示视频链接


回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-10-16 10:18 , Processed in 0.111010 second(s), 68 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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