zoukankan      html  css  js  c++  java
  • STC12C5A60S2笔记7(定时器)

    1. 基本特性

    STC12C5A60S2单片机集成了两个16位定时/计数器。

      1)寄存器

        1.1)TMOD 定时器工作方式控制寄存器,包括13位寄存器、16位寄存器、8位寄存器等;

        1.2)TCON 定时器控制寄存器,主要包括定时器启动控制位等;

        1.3)AUXR 辅助寄存器,用以设置分频;默认12分频

        1.4)TH0/1:定时器高8位寄存器

        1.5)TL0/1:定时器低8位寄存器

      2)定时器计算

      N = 2n - Tc/Tu,其中n为定时器的位数,Tu为单位时间及系统时钟周期,分频倍数/晶振频率,Tc为要设置的时间。例子:

      15位定时器,12分频,定时50ms,晶振为6MHZ,则N = 216 - (50*10-3)/(12/6000000) = 9E 58H,此时最大定时为131ms。

      则TH设置为9E,而TL设置为8H

    2. 典型例子

    #include<reg51.h>
    
    #define uint unsigned int
    
    sbit P00 = P0^0;
    uint i = 40;
    
    void Timer_Routine(void) interrupt 1
    {
        TL0  = 0x3C;
        TH0  = 0xB0;
    
        i--;
    
        if(0 == i){
           P00  = !P00;
           i = 40;
        }        
    }
    
    void main(void)
    {
        TMOD = 0x01; //16位定时器
        TL0  = 0x3C; //50ms定时
        TH0  = 0xB0;
    
        i = 40;
    
        ET0 = 1; //允许T0中断
        EA  = 1; //开放中断
        TR0 = 1;
    
        while(1);
    }
  • 相关阅读:
    包含min函数的栈
    树的子结构
    合并两个排序的链表
    反转链表
    字符移位
    有趣的数字
    顺时针打印矩阵
    有道云笔记自动签到
    Shell重定向
    Ubuntu 18.04安装Docker
  • 原文地址:https://www.cnblogs.com/Fredric-2013/p/3403838.html
Copyright © 2011-2022 走看看