美文网首页
18 定时器中断

18 定时器中断

作者: aaa小菜鸡 | 来源:发表于2018-03-26 16:59 被阅读0次

单片机STC89C52学习——18 定时器中断

汇总:00 单片机STC89C52学习
参考教程:普中科技

接上篇:17 定时器和计数器
并参考:15 中断系统

2 程序:定时器中断

2.1 定时器0中断,LED灯1s亮1s灭

#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;

sbit led1 = P2^0;// D1

u16 count = 0;

void T0Init()
{   
    TMOD |= 0x01;// TMOD:GATE = 0;C/T = 0为定时模式;M1 = 0、M0 = 1为16位。加或:避免影响其他位
    TH0 = 0xfc; TL0 = 0x18;// 设置初值
    EA = 1; ET0 = 1;// IE:开总中断允许;开定时器0中断允许
    TR0 = 1;// TCON:定时器0开始工作
}

void main()
{
    T0Init();// 1000,1ms
    while (1);
}

void intT0() interrupt 1// T0的中断号是1
{
    TH0 = 0xfc; TL0 = 0x18;// 方式1不会重新装载初值,要自己重新赋值。然后自动继续计数
    count ++;
    if (count == 1000)
    {
        led1 = ~led1;// 状态翻转
        count = 0;
    }
}
效果:LED灯1s亮1s灭(图片可能效果不好)不过对照电脑的秒来看,闪烁慢一点,半分钟~一分钟慢一秒,可能是指令执行的影响

2.1 定时器1中断,LED灯1s亮1s灭

只需要改:

TMOD |= 0x01 -> TMOD |= 0x10
TH0 -> TH1
TL0 -> TL1
ET0 -> ET1
interrupt 1 -> intertupt 3

相关文章

  • 18 定时器中断

    单片机STC89C52学习——18 定时器中断 汇总:00 单片机STC89C52学习参考教程:普中科技 接上篇:...

  • Linux C/C++定时器的实现原理和使用方法

    定时器的实现原理 定时器的实现依赖的是CPU时钟中断,时钟中断的精度就决定定时器精度的极限。一个时钟中断源如何实现...

  • 2017.12.21学习总结

    下午学习了定时器,定时器分为高级定时器、通用定时器和基本定时器,我们主要研究通用定时器。 定时器中断实现步骤:...

  • 多路舵机控制,定时器的分时复用

    多路舵机控制,多个定时器中断法

  • 第11章 定时器和时间管理

    系统定时器是一种可编程硬件芯片,能以固定频率产生中断,也就是定时器中断,其对应的中断处理程序负责更新系统时间,也负...

  • 给8051提供时间

    时间是利用定时器0中断的解决,我们设置定时器0,每个 1 毫秒中断一次,用一个变量,每次中断的时候增加 1,这样子...

  • 4.4每日站报

    DONE STM32定时器中断部分的学习 学习数电译码器部分 写了关于定时器中断的学习笔记 TODO 完成STM3...

  • Arduino基础入门篇18—数字时钟

    Arduino不但有外部中断,还有定时器中断,不同Arduino开发板其定时器数量及性能也各不相同,这取决于开发板...

  • 定时器中断

  • 2020-02-04

    ESP8266开发硬件定时器(比软件定时器更精确) • 如果使⽤用 NMI 中断源,且为⾃自动填装的定时器,调⽤用...

网友评论

      本文标题:18 定时器中断

      本文链接:https://www.haomeiwen.com/subject/yyprcftx.html