第6章定时计数器_第1页
第6章定时计数器_第2页
第6章定时计数器_第3页
第6章定时计数器_第4页
第6章定时计数器_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

主讲:陈燕慧2014.1151单片机原理及应用

——基于KeilC与Proteus

定时器/计数器:定时和计数

通称采用以下三种方法:1.硬件法硬件定时功能完全由硬件电路完成,不占用CPU时间。但当要求改变定时时间,只能通过改变电路中的元件参数来实现,很不灵活。2.软件法软件法定时是执行一段循环程序进行时间延时。优点:时间比较精确,且不需外加硬件电路。但占用CPU,定时的时间不宜太长。3.可编程定时器/计数器51单片机内部提供2个可编程的定时器/计数器T0和T1,它们可以用于定时或对外部脉冲计数,还可以作为串口的波特率发生器。定时器达到预定定时时间或者计数器计满数时,给出溢出标志,还可以发出内部中断。

特点:计数值通过程序设定,改变计数值,也改变了定时时间,灵活、方便。注:51系列单片机采用的是可编程定时器定时方法。一、定时/计数器的结构与工作原理用于控制T0和T1的启动和停止计数,管理溢出标志等。控制工作状态方式寄存器TMOD,控制工作方式;选择定时或计数T0/T1,16位,可定时和计数,有4种工作方式1、结构组成:6个SFR寄存器,包括TMOD,TCON,TH1,TL1,TH0,TL0计数:对T0,T1引脚输入信号计数,当外部输入信号由1跳变0时,计数器加1;定时:对单片机的机器周期进行计数,每个机器周期,计数器加1.定时和计数功能的设定:通过软件进行设定每来一个脉冲,计数值加1,直到计满溢出系统时钟振荡器定时方式计数方式外部脉冲源决定加1计数器的运行与停止定时器/计数器的核心是一个加1计数器2、工作原理3.定时器的控制寄存器TCONTF1TR1TF0TR0IE1IT1IE0IT08FH8EH8DH8CH8BH8AH89H88H

T1字段T0字段外部中断控制字定时器T1的溢出中断标志位。定时器T0的溢出中断标志位。定时器T1的运行控制位。由软件置1或清零定时器T0的运行控制位。4.定时器的方式寄存器TMOD

M0M1GATEM0M1GATET1方式字段T0方式字段GATE——门控位。GATE=0时,只要TRx=1,定时器/计数器开始工作,不受INTx的影响。(内部控制)GATE=1,只有TRx为1且INTx输入为高电平时,定时器Tx才允许启动工作。(外部控制)二、定时/计数器的工作方式1.方式0(M1M0=00)13位,由TLx低5位和THx组成。脉冲信号送到TL1,每输入一个脉冲信号TL0加1,当TL1的低5位溢出时就向高8位TH1进位,13位计数器计满溢出时就向TF1进位,TF1=1,向CPU发出中断请求,如果中断允许,就进入中断响应。1.方式1(M1M0=01)两个8位寄存器THx和TLx构成16位脉冲计数器,TL计满溢出向TH进位,16位计满,TF置11.方式2(M1M0=10)TH1为初值常数寄存器TL1为8位寄存器3.方式3使用本身的控制位GATE、C//T、TF0、TR0和/INT0,并占用T0的中断源。而TH0只有内部定时时,占用定时器T1的TR1、TF1。说明:当T0用于方式3时,此时T1一定不要用在中断的场合。(M1M0=11)(TH0和TL0是两个独立的8位计数器)(TL0可作为定时器和计数器)(TH0只能作定时器使用)三、定时器/计数器初始化1、对TMOD赋值,以确定T0和T1的工作方式;

M0M1GATEM0M1GATET1方式字段T0方式字段3、使用中断方式时,则对IE赋值,开放中断;4、使TR0或TR1置位,启动定时/计数器的定时或计数;THx=(65536-定时时间/机器周期)/256TLx=(65536-定时时间/机器周期)%256方式1THx=256-定时时间/机器周期TLx=256-定时时间/机器周期方式22、计算初值,并将其写入THx和TLx中;N的取值:方式0,N=13;

方式1,N=16;方式2,N=8;

方式3,N=8或者:THx=(8192-定时时间/机器周期)/32TLx=(8192-定时时间/机器周期)%32方式0四、定时器中断应用实例要求:每秒点亮P1.0的发光二极管一次,然后熄灭,使发光二极管形成闪烁的效果;采用定时/计数器T0,工作方式1;当P1.0口输出低电平时,点亮二极管。#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitLED=P1^0;//取P1.0口做为点亮发光二级管的输出信号bitflag;//标志位,标志是否发生中断ucharcount=0;voiddelay(uintc)//延时函数Cms,误差0us{unsignedchara,b;for(;c>0;c--)for(b=142;b>0;b--)for(a=2;a>0;a--);}voidmain(void){TMOD=0x01;//设置定时器0为定时模式1TH0=(65536-50000)/256;TL0=(65536-50000)%256;//给定时器0赋值初为50msEA=1;//开总中断ET0=1;//开定时/计数器0 TR0=1;//启动定时/计数器0while(1){if(flag==1){LED=0;delay(500);//延时100msLED=1;flag=0; }}}voidtime0(void)interrupt1

温馨提示

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

评论

0/150

提交评论