一、定时器计数器简介

STC15W408AS只有定时器0和定时器2,工作工作位定时器或者计数器模式。定时器/计数器的核心部件是一个加法计数器,其本质是对脉冲进行计数。只是计数脉冲来源不同:如果计数脉冲来自系统时钟,则为定时方式,此时定时器/计数器每12个时钟或者每1个时钟得到一个计数脉冲,计数值加1;如果计数脉冲来自单片机外部引脚(T0为P3.4,T1为P3.5,T2为P3.1,T3为P0.7,T4为P0.5),则为计数方式,每来一个脉冲加1。

当定时器/计数器T0、T1及T2工作在定时模式时,特殊功能寄存器AUXR中的T0x12、T1x12和T2x12分别决定是系统时钟/12还是系统时钟/1(不分频)后让T0、T1和T2进行计数。

定时器/计数器0有4种工作模式:模式0(16位自动重装载模式),模式1(16位不可重装载模式),模式2(8位自动重装模式),模式3(不可屏蔽中断的16位自动重装载模式)。定时器T2的工作模式固定为16位自动重装载模式。T2可以当定时器使用,也可以当串口的波特率发生器和可编程时钟输出。

二、定时器/计数器的相关寄存器

2.1 定时器/计数器0/1控制寄存器TCON

TCON为定时器/计数器T0、T1的控制寄存器,同时也锁存T0、T1溢出中断源和外部请求中断源等,TCON格式如下:

TCON : 定时器/计数器中断控制寄存器 (可位寻址)

TF0:T0溢出中断标志。T0被允许计数以后,从初值开始加1计数,当产生溢出时,由硬件置“1”TF0,向CPU请求中断,一直保持CPU响应该中断时,才由硬件清0(也可由查询软件清0)。

TR0: 定时器T0的运行控制位。该位由软件置位和清零。当GATE(TMOD.3)=0,TR0=1时 就允许T0开始计数,TR0=0时禁止T0计数。当GATE(TMOD.3)=1,TR0=1且INT0输       入高电平时,才允许T0计数,TR0=0时禁止T0计数。

2.2 定时器/计数器工作模式寄存器TMOD

定时和计数功能由特殊功能寄存器TMOD的控制位C/T进行选择,TMOD寄存器的各位信息如下表所列。可以看出,2个定时/计数器有4种操作模式,通过TMOD的M1和M0选择。2个定时/计数器的模式0、1和2都相同,模式3不同,各模式下的功能如下所述。

寄存器TMOD各位的功能描述

2.3 辅助寄存器AUXR

STC15系列单片机 1T 的8051单片机,为兼容传统8051,定时器0 , 复位后是传统8051的速度,即12分频,这是为了兼容传统8051。但也可不进行12分频,通过设置新增加的特殊功能寄存器AUXR,将T0,T1,T2 设置普通111条机器指令执行速度是固定的,快4到24倍,无法改变。

AUXR格式如下:

AUXR : 辅助寄存器

2.4 定时器T0和T1的中断控制寄存器:IE和IP

三、测试程序

3.1 定时器0模式0(16位自动重装载模式)

#include "stc15.h"
#define uint unsigned intuint t = 0;void main()
{P1M0 = 0x02;P1M1 = 0x00;// 定时器 0 AUXR |= 0x80;  // 定时器0 1T模式TMOD = 0x00;   // 定时器模式0 16位自动重载模式TL0 = 0xAE;TH0 = 0xFB;    // 计数值 100us@11.0592MHzTR0 = 1;       // 定时器开始计时ET0 = 1;       // 使能定时器1中断EA  = 1;       // 打开总中断while (1);
}void tm1_isr() interrupt 1
{t = t + 1;if(t >= 100){ // 100 * 100us = 10ms P1.1端口取反输出t = 0;P11 = !P11;}
}

通过示波器可以测得波形搞好是50Hz,每个周期20ms。

这里有个问题就是定时器的初始值的计算。

定时器定时时长(100us) = SYSclk/(65536 - [TH0,TL0]), SYSclk = 11.0592MHz。

这里计算得到[TH0,TL0] = 64430,转换为十六进制就是FBAE,则TH0 = FB,TL0 = AE。

3.2 定时器2作为计数器

#include "stc15.h"void main()
{P1M0 = 0x02;P1M1 = 0x00;P11 = 0;       // 初始设置为0AUXR |= 0x1C;  //  定时器2 工作为计数器模式 P3.1为计数引脚  允许计数器运行T2L = 0x00;T2H = 0x00;while(1){if(T2L==16) // 计数器到了16 就把P1.1口输出取反    { T2L=0X00;P11 = !P11;}}
}

定时器0个定时器2都可以工作位定时器/计数器模式,这里为了区分就把定时器2作为计数器使用了。

8.STC15W408AS单片机定时器/计数器相关推荐

  1. 单片机定时器_单片机定时器/计数器基本原理

    目前常用的单片机中往往都配备了定时器/计数器.在AT89S52芯片内包含有三个16位的定时器/计数器:T0.T1和T2,其核心是加1计数器.我们主要要求掌握T0和T1的结构和功能.学习中要注意从电路结 ...

  2. C51单片机————定时器计数器

    51单片机定时器/计数器 定时(定时控制.测量.延时...)和计数(对外部事件统计数目). Created with Raphaël 2.1.2张三张三李四李四嘿,四哥, 定时器和计数器有哪几种实现哦 ...

  3. 51单片机定时器/计数器(定时器中断)

    51单片机定时器/计数器(中断系统:定时器中断) 实现功能 通过定时器终端控制LED灯 D1 间隔一秒闪烁 单片机型号:STC89C52 定时器介绍 1.51单片机定时器原理 定时器实质上就是一个加1 ...

  4. 基于单片机定时器/计数器的时钟设计及计数设计

    基于单片机定时器/计数器的时钟设计以及计数设计 第一部分 前言 第二部分 定时器/计数器的原理 MCS-51定时器/计数器的结构 定时器/计数器相关特殊功能寄存器 定时器/计数器工作方式 第三部分 定 ...

  5. 51单片机——定时器/计数器

    目录 1.概述 2.定时器/计数器 2.1 定时功能 2.2.1 定时功能的用法 2.1.2 任意定时方法 2.2 计数功能 2.2.1 计数功能的用法 2.2.2 任意计数方法 2.3 定时器/计数 ...

  6. 单片机 定时器/计数器

    单片机 定时器/计数器 一.简述     MCS-51系列单片机内部有两个16位定时器/计数器,即定时器T0和定时器T1.它们都具有定时和计数功能,可用于定时或延时控制,对外部事件进行检测.计数等. ...

  7. 定时器计数器实验C语言程序,单片机定时器计数器实验报告.docx

    单片机定时器计数器实验报告 单片机定时器计数器实验报告 篇一:单片机计数器实验报告 计数器实验报告 ㈠ 实验目的 1. 学习单片机内部定时/计数器的使用和编程方法: 2. 进一步掌握中断处理程序的编程 ...

  8. 单片机定时器/计数器编程

    实验二  单片机定时器/计数器编程 一.实验目的 1.掌握单片机定时器/计数器的工作方式: 2.掌握单片机定时器/计数器的编程方法. 二.实验内容 1.学习单片机定时器/计数器的工作方式.初始化以及应 ...

  9. 51单片机定时器计数器原理以及应用(方波、pwm、脉冲计数、高电平脉宽测量)

    1.基本原理:http://www.51hei.com/bbs/dpj-103111-1.html 补充: 1.TMOD定时器/计数器工作方式寄存器 GATE=1时,定时器由INT和TR共同控制,用于 ...

最新文章

  1. 【linux】Valgrind工具集详解(三):打印信息说明
  2. c/c++文件I/O函数学习--不断补充
  3. python 开发板加密_Bugku 加密 python writeup
  4. python中的json注意事项
  5. SqlServerManagement新建数据库并执行sql文件流程
  6. Python3空字符串和len()函数
  7. c++,c.c#区别
  8. select 移动端 第一个无法选中_总结在移动端碰到的坑
  9. Linux学习:Linux基础命令集(2)
  10. spring boot-html和templates
  11. 【神经网络算法入门】详细推导全连接神经网络算法及反向传播算法+Python实现代码
  12. 读出我潮流 亚马逊Kindle新品焕彩上市
  13. ThoughtWorks 结对编程
  14. 零基础学C语言必备书籍,抖音编程达人推荐(进群交流学习互动)
  15. MAC苹果电脑关闭系统完整性保护SIP(System Integrity Protection)
  16. 使用HTML代码完成效果图,完成www.163.com账号注册页面(不要求做css样式,原生的HTML就好)
  17. 推荐几本书给大家(二)
  18. Python编程PTA题解——验证“哥德巴赫猜想”
  19. asp 遇到过的问题集锦,附加asp语句添加数据库和生成表,asp命令更改指定文件的文件名,asp值传递的应用091116小结...
  20. 分享几个 Github 镜像网站(亲测可用)

热门文章

  1. 贾跃亭被法院列入“老赖”黑名单,这下真成“下周回国假药停”了?
  2. 用MATLAB快速修改txt文件
  3. IPM 鸟瞰图公式转换与推导
  4. dockerfile拉取私库镜像_从私有仓库拉取镜像
  5. 基于显扬科技3D视觉相机的芯片外观检测系统
  6. 自学python练习题
  7. zan php framework,zan框架入门(一)——协程
  8. CAS4.1单点登录实现(包含原理配置实现及简易demo)
  9. 防护等级IP代码的意义
  10. 福利 | 免费TMMi资料