找回密码
 立即注册
查看: 471|回复: 3

STC02 定时器0计时中断控制LED闪烁

[复制链接]
  • 打卡等级:偶尔看看II
  • 打卡总天数:20
  • 最近打卡:2024-07-26 07:08:58

5

主题

14

回帖

127

积分

注册会员

积分
127
发表于 2024-6-29 07:34:11 | 显示全部楼层 |阅读模式
本帖最后由 标记重捕 于 2024-6-29 07:48 编辑

一 实验目标
使用定时器0的模式0,控制P20 P21 P22所连接的LED亮灭。

二 工作原理和硬件连接

2.1 定时器0工作原理

图片来自STC8H系列技术手册

图片来自STC8H系列技术手册

2.2 LED的连接


LED18 LED19 LED20 分别连接在P20 P21 P22。

三 代码步骤及实现

3.1 LED功能的封装
LED功能的封装可以参考下文:

[url=STC01 控制LED闪烁 https://www.stcaimcu.com/forum.php?mod=viewthread&tid=9221 (出处: 国芯技术交流网站)]STC01 控制LED闪烁 https://www.stcaimcu.com/forum.php?mod=viewthread&tid=9221 (出处: 国芯技术交流网站)[/url]

3.2 Timer0功能的封装


定义Timer0中断时间的枚举类型;
定义Timer0封装的结构体类型。


定时器0初始化。

3.3 Timer0中断函数

图片来自STC8H系列技术手册

Timer0中断号为1


使用STCISP的“定时器计算器”功能,可以自动生成Timer0的寄存器配置代码,非常方便。


定时器0中断函数,关键字为“interrupt 1”,1为Timer0中断号。

Timer0每1ms中断一次,每中断一次Timer0.TimerCnt加1,当加到500(即间隔500ms)时,控制三个LED电平翻转。表现为LED每1S亮一次。

3.3 中断初始化


在StartUpInit结构体成员IE_Init中,打开Timer0中断。

3.3 系统初始化


在StartUpInit.SYS_Ready()中依次进行GPIO初始化、中断初始化及定时器0初始化。

3.4 系统运行


由于LED的亮灭运行在Timer0的中断函数中,而中断在系统中持续运行,所以System.Run()中不做任何操作。

四 实验现象


可以看到,P20 P21 P22所连接的3个LED在进行闪烁,达成实验目标




花有重开日,人无再少年
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:429
  • 最近打卡:2025-05-08 00:01:49
已绑定手机

19

主题

3196

回帖

4956

积分

论坛元老

积分
4956
发表于 2024-6-29 08:44:25 来自手机 | 显示全部楼层
这个方法不错啊,学习了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:20
  • 最近打卡:2024-07-26 07:08:58

5

主题

14

回帖

127

积分

注册会员

积分
127
发表于 2024-6-29 16:38:25 | 显示全部楼层
so*** 发表于 2024-6-29 08:44
这个方法不错啊,学习了

客气了,互相学习{:5_300:}
花有重开日,人无再少年
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2024-06-29 16:56:13

0

主题

4

回帖

16

积分

新手上路

积分
16
发表于 2024-6-29 17:03:47 | 显示全部楼层
清晰明了
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-9 03:26 , Processed in 0.127613 second(s), 69 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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