定时器控制LED灯每隔一秒闪灭

简介: 定时器控制LED灯每隔一秒闪灭

什么是晶振

晶振(晶体震荡器),又称数字电路的“心脏”,是各种电子产品里面必不可少的频率元器件。数字电 路的所有工作都离不开时钟,晶振的好坏、晶振电路设计的好坏,会影响到整个系统的稳定性。


什么是时钟周期

时钟周期也称为振荡周期,定义为时钟频率的倒数。时钟周期是计算机中最基本的、最小的时间单 位。在一个时钟周期内,CPU仅完成一个最基本的动作。时钟周期是一个时间的量。更小的时钟周 期就意味着更高的工作频率


什么是机器周期

机器周期也称为CPU周期。在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶 段(如取指、译码、执行等),每一阶段完成一个基本操作。完成一个基本操作所需要的时间称为 机器周期。一般情况下,一个机器周期由若干个时钟周期组成


当晶振频率是11.0592MHz的时候,等于11059.2KHz = 11059200Hz 机器周期 = 12 x 时钟周期 =12 x (1/时钟频率) 秒 = 12 / 时钟频率 秒 = 12 / 11059200 秒 = 12 000 000 / 11059200 微秒 = 1.085 微秒


在TH0/1和TL0/1寄存器中加1,默认是从0开始数数,最多能数65536下,累计计时71ms


从56320数到65536差不多为10ms


代码示例:

#include "reg52.h"
 
sbit led = P3^6;
 
void main()
{
    int cnt = 0;
    led = 1;
    
    //1. 配置定时器0工作模式位16位计时
    TMOD = 0x01;
    //2. 给初值,定一个10ms出来
    TL0=0x00;
    TH0=0xDC;
    //3. 开始计时
    TR0 = 1;
    TF0 = 0;
    
    while(1){
        if(TF0 == 1)//当爆表的时候,硬件会修改bit5(TF0)位上面的数据,改成1
        {
            TF0 = 0;//不用中断,必须软件清零
            cnt++;  //统计爆表的次数
            //重新给初值
            TL0=0x00;
            TH0=0xDC;
            if(cnt == 100){//爆表100次,经过了1s
                cnt = 0;  //当100次表示1s,重新让cnt从0开始,计算下一次的1s
                led = !led;//每经过1s,翻转led的状态
            }
        }
    }
}
相关文章
|
Linux 调度
按键消抖的两种方法--中断延迟工作与定时器
按键消抖的两种方法--中断延迟工作与定时器
663 0
|
3月前
51开发板同一程序实现数码管实现时钟显示、秒表计时。通过独立按键选择模式(时钟/秒表)、时间的重定义
51开发板同一程序实现数码管实现时钟显示、秒表计时。通过独立按键选择模式(时钟/秒表)、时间的重定义
125 3
|
3月前
【51单片机】通过定时器中断 在8位数码管显示时间
【51单片机】通过定时器中断 在8位数码管显示时间
|
3月前
|
C语言
【51单片机】LCD1602显示字符串,时间、时间+按键校准、秒表计时的功能代码。
【51单片机】LCD1602显示字符串,时间、时间+按键校准、秒表计时的功能代码。
|
3月前
|
算法
51单片机不用定时器的数码管倒计时
51单片机不用定时器的数码管倒计时
定时器+按键控制LED流水灯模式+定时器时钟——“51单片机”
定时器+按键控制LED流水灯模式+定时器时钟——“51单片机”
STM32控制蜂鸣器间隔发出声音(响1s,关闭1s)
STM32控制蜂鸣器间隔发出声音(响1s,关闭1s)
370 1
[STM32F10x] 利用定时器测量频率
[STM32F10x] 利用定时器测量频率
144 2
蓝桥杯使用定时器代替延时控制按键
蓝桥杯使用定时器代替延时控制按键
70 0
|
传感器
STM32小项目总结2:(内含:1.对射式红外传感器计次+2.旋转编码器计次+3.定时器定时中断+4.定时器外部中断+5.笔记)
STM32小项目总结2:(内含:1.对射式红外传感器计次+2.旋转编码器计次+3.定时器定时中断+4.定时器外部中断+5.笔记)
316 0
STM32小项目总结2:(内含:1.对射式红外传感器计次+2.旋转编码器计次+3.定时器定时中断+4.定时器外部中断+5.笔记)