定时器中断应用实例
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
设计要求:
每秒点亮P1.0口的发光二极管一次,然后熄灭,使发光二极管形成闪烁效果
实现思路:
通过定时/计数器,每秒触发一次P1.0取反
涉及到的功能模块:定时器,中断,LED操作
定时器装填:
需要计数每秒的话,计数921600时溢出即可,在四种方式定时方式中,最大的计数范围是方式2:65536,将921600分解成20份,每份计数46080时溢出,当溢出20次时灯闪烁,每次定时器溢出都要重新装填
模块设计
初始化
LED(上拉输入模式)
定时器(T0,工作方式1,装填初值,启动(在中断初始化后启动))
中断(开放中断,开放T0中断)
while(1)
中断
重置定时器(溢出位复位,重新装填计时)
判断溢出次数(到达20次时LED改变状态,计数清零。未到达20次时溢出次数加一)
实现代码
#include #include typedef unsigned char uchar; sbit LED = P1 ^ 0; uchar count = 0; void Interrupt() interrupt 1 { TH0 = (65536 - 46080) / 256; //触发中断时重新装填计时 TL0 = (65536 - 46080) % 256; if (count == 20) { LED = ~LED; count = 0; } else ++count; } void main(void) { LED = 0xff; //初始化LED TMOD = 0x01; //初始化TMOD,定时器0,方式1 TH0 = (65536 - 46080) / 256; //装填计数 TL0 = (65536 - 46080) % 256; EA = 1; //开放所有中断 ET0 = 1; //开放定时器0中断控制位 TR0 = 1; //定时器0开始计时 while(1) { _nop_(); } }
上一篇:51单片机入门 - 实验板的选择
下一篇:51单片机入门 - SPI协议与应用实验
推荐阅读最新更新时间:2023-09-21 02:36





推荐帖子
- 理工男的别样浪漫——基于MSP430和3D打印技术自制史上最大求婚“钻戒”
- 他叫李一帆,硅谷归国工程师,为了求婚他用5个月做了这枚史上最大的戒指。上下摇晃表示同意,戒指会自动打开送上钻戒,左右摇晃表示不同意,戒指表面会显示心碎图像。工科男的浪漫也蛮拼的! 理工男的别样浪漫——基于MSP430和3D打印技术自制史上最大求婚“钻戒”
-
maylove
微控制器 MCU
- 谁需要这些,免费下
- 免费下载,请看清资料,如果已有就请别再下载,谢谢哈。 不好意思文件名字错了 文件名字为”第三幅图的内容(1)“\"第三幅图的内容(2)\"\"第三幅图的内容(3)“实际为第二幅图所示的内容,其他照旧。 谁需要这些,免费下
-
阿飞
FPGA/CPLD
- 上资料了
- 上资料了
-
jxb01033016
嵌入式系统
- 基于Zynq Linux环境搭建
- 安装VMWare版本12Ubuntu版本12.04.564bit 系统安装完成后,登陆系统,在sotfware中心安装konsole、gvim、softwaresource等基本软件在softwaresources中,配置download源,如下图示所示,确保系统更新不会被中断。sudoapt-getupdate重启前的版本如下:纯文本查看复制代码$sudoapt-ge
-
phdwong
FPGA/CPLD
- 智能互联照明和物联网
- 人类是充满智慧的,所以我们发明了能够为自己提供照明的装置。在世界各地大大小小的城市、城镇和村庄,人们利用自己创造的照明设备把黑暗的地方照亮。我们所处的文明社会各个方面都有着千丝万缕的联系,这是一种社会秩序,推动着社会向前发展。这些照明设备能够将各个地方照亮,为我们提供一个更加光明的未来。曾几何时人们采用的是简单的蜡烛来照明。如果要照亮一个大的房间并保持良好的照明条件,一定要花一番功夫。然而目前物联网技术发展是能够开发一个智能互联照明系统,我们可以通过有线或者无线通信的方
-
Aguilera
RF/无线
- [测评nucleo开发板f413zh]第3篇数据手册之特性与原理图
- 第3篇数据手册之特性与原理图一、简介本次申请到的是STM32Nucleo-144通用开发板,它可以适配NUCLEO-F207ZG、NUCLEO-F303ZE、NUCLEO-F412ZG、NUCLEO-F413ZH、NUCLEO-F429ZI、NUCLEO-F446ZE、NUCLEO-F722ZE、NUCLEO-F746ZG、NUCLEO-F767ZI和NUCLEO-H743ZI等多种型号。本次申请的开发板是NUCLEO-F413ZH,除了集成NUCLEO-F413Z
-
机器人爱好者1991
stm32/stm8