STC单片机原理及应用-模块7 定时器计数器_第1页
STC单片机原理及应用-模块7 定时器计数器_第2页
STC单片机原理及应用-模块7 定时器计数器_第3页
STC单片机原理及应用-模块7 定时器计数器_第4页
STC单片机原理及应用-模块7 定时器计数器_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

STC单片机原理及应用第二部分

应用系统开发模块七

定时器/计数器学习目标学习及素养目标理解定时器计数器的基本原理。掌握定时器计数器的结构和工作方式。掌握编写定时器计数器的应用程序的基本方法。利用定时器计数器工作原理进行单片机项目规划与实施。引言在控制系统中,经常要求有一些定时或延时控制,如定时输出、定时检测和定时扫描等;也要求有计数功能,能对外部事件进行计数。实现以上功能,通常使用的方式有3种:软件延时、硬件定时、可编程的定时器。引言软件延时占用了CPU时间,降低了CPU的利用率。硬件定时采用时基电路(例如555定时芯片),外接必要的元器件(电阻和电容),可构成硬件定时电路。这种定时电路在硬件连接好以后,定时值和定时范围不能由软件控制和修改,即不可编程。可编程的定时器可以很容易地利用软件来确定和修改,因此功能强,使用灵活。引言实际应用中,可编程的定时器使用最多,本模块主要讲解STC8单片机内部的定时器/计数器的工作原理,以及相关寄存器的配置,结合开发板资源,将定时/计数功能应用到单片机开发项目中,有利于读者充分了解其原理,掌握其应用。单元一

认识定时器/计数器STC8单片机定时器/计数器功能概述:STC8系列单片机内部设置了5个16位定时器/计数器T0、T1、T2、T3和T4,都具有计数方式和定时方式两种工作方式。例如定时器/计数器T0和T1,用它们在特殊功能寄存器TMOD中相应的控制位C/T选择T0或T1为定时器还是计数器。定时器/计数器的核心部件是一个加法计数器,其本质是对脉冲进行计数。单元一

认识定时器/计数器定时器/计数器的工作方式:如果计数脉冲来自系统时钟,则为定时方式,此时定时器/计数器每12个时钟或者每1个时钟得到一个计数脉冲,计数值加1。如果计数脉冲来自单片机外部引脚(T0为P3.4,T1为P3.5,T2为P1.2,T3为P0.4,T4为P0.6),则为计数方式,每来一个脉冲加1。单元一

认识定时器/计数器定时器/计数器的工作频率:当定时器/计数器T0、T1及T2工作在定时模式时,特殊功能寄存器AUXR中的T0x12、T1x12和T2x12分别决定是系统时钟/12还是系统时钟/1(不分频)后让T0、T1和T2进行计数。当定时器/计数器T3和T4工作在定时模式时,特殊功能寄存器T4T3M中的T3x12和T4x12分别决定是系统时钟/12还是系统时钟/1(不分频)后让T3和T4进行计数。当定时器/计数器工作在计数模式时,对外部脉冲计数不分频。单元一

认识定时器/计数器定时器/计数器的工作模式:定时器/计数器0有4种工作模式:模式0(16位自动重装载模式)、模式1(16位不可重装载模式)、模式2(8位自动重装模式)、模式3(不可屏蔽中断的16位自动重装载模式)。定时器/计数器1除模式3外,其他工作模式与定时器/计数器0相同。单元二

定时器的相关寄存器STC8单片机定时/计数相关的控制寄存器总览见表7-1。在了解各个寄存器基本使用方法的基础上,在实际编程过程中可通过查阅教材或STC单片机产品手册获取寄存器各位具体信息。单元三

定时器T0/T1的控制7.3.1定时器T0/T1控制寄存器TCON①TF1:T1溢出中断标志。T1被允许计数以后,从初值开始加1计数。当产生溢出时由硬件将TF1位置“1”,并向CPU请求中断,一直保持到CPU响应中断时,才由硬件清“0”(也可由查询软件清“0”)。②TR1:定时器T1的运行控制位,该位由软件置位和清零。当GATE(TMOD.7)=0,TR1=1时就允许T1开始计数,TR1=0时禁止T1计数。当GATE(TMOD.7)=1,TR1=1且INT1输入高电平时,才允许T1计数。单元三

定时器T0/T1的控制7.3.1定时器T0/T1控制寄存器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计数。单元三

定时器T0/T1的控制7.3.1定时器T0/T1控制寄存器TCON⑤IE1:外部中断1请求源(INTI/P3.3)标志。IE1=1,外部中断向CPU请求中断,当CPU响应该中断时由硬件清“0”IE1。⑥IT1:外部中断源1触发控制位。IT1=0,上升沿或下降沿均可触发外部中断1。IT1=1,外部中断1程控为下降沿触发方式。单元三

定时器T0/T1的控制7.3.1定时器T0/T1控制寄存器TCON⑦IE0:外部中断0请求源(INT0/P3.2)标志。IE0=1外部中断0向CPU请求中断,当CPU响应外部中断时,由硬件清“0”IE0(边沿触发方式)。⑧IT0:外部中断源0触发控制位。IT0=0,上升沿或下降沿均可触发外部中断0。IT0=1,外部中断0程控为下降沿触发方式。单元三

定时器T0/T1的控制7.3.2定时器T0/T1模式寄存器TMOD①T1_GATE:控制定时器T1,置1时只有在INT1引脚为高电平及TR1控制位置1时才可打开定时器/计数器1。②T0_GATE:控制定时器T0,置1时只有在INT0引脚为高电平及TR0控制位置1时才可打开定时器/计数器0。单元三

定时器T0/T1的控制7.3.2定时器T0/T1模式寄存器TMOD③T1_C/T:控制定时器1用作定时器或计数器,清0则用作定时器(对内部系统时钟进行计数),置1用作计数器(对引脚T1/P3.5外部脉冲进行计数)。④T0_C/T:控制定时器T0用作定时器或计数器,清0则用作定时器(对内部系统时钟进行计数),置1用作计数器(对引脚T0/P3.4外部脉冲进行计数)。单元三

定时器T0/T1的控制7.3.2定时器T0/T1模式寄存器TMOD⑤T1_M1/T1_M0:定时器/计数器1工作方式选择,见表7-4。单元三

定时器T0/T1的控制7.3.2定时器T0/T1模式寄存器TMOD⑥T0_M1/T0_M0:定时器/计数器0工作方式选择,见表7-5。单元三

定时器T0/T1的控制7.3.3定时器T0计数寄存器当定时器/计数器0工作在16位模式(模式0、模式1、模式3)时,即TL0和TH0组合成为一个16位寄存器,TL0为低字节,TH0为高字节。若为8位模式(模式2)时,TL0和TH0为两个独立的8位寄存器。单元三

定时器T0/T1的控制7.3.4定时器T1计数寄存器当定时器/计数器1工作在16位模式(模式0、模式1)时,即TL1和TH1组合成一个16位寄存器,TL1为低字节,TH1为高字节。当为8位模式(模式2)时,TL1和TH1为两个独立的8位寄存器。单元三

定时器T0/T1的控制辅助寄存器(AUXR)的T0x12、T1x12用于设置T0、T1定时计数脉冲的分频系数,格式见表7-8。①T0x12:定时器0速度控制位。0:12T模式,即CPU时钟12分频(FOSC/12)。1:1T模式,即CPU时钟不分频(FOSC/1)。②T1x12:定时器1速度控制位。0:12T模式,即CPU时钟12分频(FOSC/12)。1:1T模式,即CPU时钟不分频(FOSC/1)。单元三

定时器T0/T1的控制用户如果需要使用T0工作在定时方式(T1的计算方式相同),定时时间的计算公式如下:定时时间=(216-T0定时器的初始值)×系统时钟周期×12(1-T0x12)单元三

定时器T0/T1的控制假如用户需要5ms的定时,采用定时器T0工作在模式0,结合中断系统,对T0进行初始化配置如下:voidTimer0Init(void)//5毫秒@12.000MHz{AUXR|=0x80;//定时器时钟1T模式TMOD&=0xF0;//设置定时器模式(16位自动重装载)TL0=0xA0;//设置定时初值(15A0)H=(5536)DTH0=0x15;//(65536-5536)×(1/12M)=5000μs=5msTF0=0;//清除TF0标志TR0=1;//定时器0开始计时ET0=1;//使能定时器0中断EA=1;//开总中断}单元三

定时器T0/T1的控制T0、T1两个定时器的可编程时钟的输出由中断与时钟输出控制寄存器(INTCLKO)控制,具体见表7-9。①T0CLKO:定时器0时钟输出控制。0:关闭时钟输出。1:使能P3.5口的是定时器0时钟输出功能。当定时器0计数发生溢出时,P3.5口的电平自动发生翻转。②T1CLKO:定时器1时钟输出控制。0:关闭时钟输出。1:使能P3.4口的是定时器1时钟输出功能。当定时器T1计数发生溢出时,P3.4口的电平自动发生翻转。单元三

定时器T0/T1的控制假设用户需要使用定时器T0的时钟分频输出,使用STC8实验板从P3.5引脚依次输出约32.7ms的高电平和32.7ms的低电平,采用定时器0的模式0(16位自动重装载),初值是是65536的一半,当定时器0计数发生溢出时,P3.5口的电平自动发生翻转。单元三

定时器T0/T1的控制#include<stc8.h>voidmain(){TMOD=0x00;//模式0TL0=0x00;//(32768)D=(8000)H=(65536/2)DTH0=0x80;TR0=1;//启动定时器INTCLKO=0x01;//使能时钟输出while(1);}单元三

定时器T0/T1的控制定时器T2、T3、T4由同学们根据教材内容和其他资料自学。单元六

掉电唤醒定时器内部掉电唤醒定时器是一个15位的计数器(由{WKTCH[6:0],WKTCL[7:0]}组成15位)。用于唤醒处于掉电模式的MCU。WKTEN:掉电唤醒定时器的使能控制位。0:停用掉电唤醒定时器。1:启用掉电唤醒定时器。单元七

应用编程实训7.7.1定时器定时应用实训T1方式0实现定时,在P1.6引脚输出周期为10ms的方波。分析:采用T1方式0定时,TMOD=00H。因为方波周期是10ms,因此T1的定时时间为5ms,定时时间到就对P1.6引脚的电平进行取反,就可以实现方波输出。系统采用12MHz晶振,分频系数为12,则T1的初值为:X=216-计数值=65536-5000=60536=EC78H单元七

应用编程实训7.7.1定时器定时应用实训T1方式0实现定时,在P1.6引脚输出周期为10ms的方波。分析:采用T1方式0定时,TMOD=00H。因为方波周期是10ms,因此T1的定时时间为5ms,定时时间到就对P1.6引脚的电平进行取反,就可以实现方波输出。系统采用12MHz晶振,分频系数为12,则T1的初值为:X=216-计数值=65536-5000=60536=EC78H

即(TH1)=ECH,(TL1)=78H

代码见教材所示单元七

应用编程实训关于定时器初始化配置,也可以利用STC-IS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论