有关单片机定时器的使用和定时器的介绍 单片机中定时器的时钟与系统时钟有什么关系?

作者&投稿:度梁 (若有异议请与网页底部的电邮联系)

  导语:单片机,其实就是一种用于集成电路中的芯片,而单片机的定时器是一个电子元件,它是一个稳定的计数器,是由单片机本身提供的。它也是单片机上的一个连接部件,可以用来编程。定时器还有一个功能显而易见就是可以用来定时,同时,它也可以用来统计一些脉冲信号。下面就来介绍下单片机定时器的使用的相关内容。

  


  定时器的结构

  定时器是由两个寄存器组成的,其中一个寄存器是用来确定计数器的工作形式和功能的,另外一个计时器是用来控制单片机的启动和停止的,同时它也是设置溢出的一个标志。


  计数过程

  每来一个脉冲计数器加1,当加到计数器为全1(即FFFFH)时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时器/计数器中断允许时)。如果定时器/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。

  定时应用

  用作定时器:此时设置为定时器模式,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t 。

  计数运用

  用作计数器:此时设置为计数器模式,外部事件计数脉冲由T0或T1引脚输入到计数器。每来一个外部脉冲,计数器加1。但单片机对外部脉冲有基本要求:脉冲的高低电平持续时间都必须大于1个机器周期。


  


  定时器的使用

  定时器的使用主要分为五个步骤,首先是要打开中断的可以允许的位置,主要是对IE寄存器的控制,然后选择定时器的工作的形式,定时器的一个格式是TMOD的形式,主要有四种方式。第一种计数的方式是十三位加一的形式,第二种是十六位加一的计数器,第三种的定数器被分解成两部分,一个是八位的寄存器,另外一个是八位的计数器。第三步就是要为定时器进行赋值,首先定时器的初值是等于计数器模值减去计数器记满的招满值,而定时器的初值是等于模值减去预定时的时间与单片机时钟周期的十二倍。接下来就是启动计时器,当TRO为0的时候,停止TO开始计数,而TRO值为1的时候,就启动TO进行计数。当TFO为0的时候,没有TO的中断,这时是没有硬件复位,而当值为1的时候有TO溢出中断的情况。当TR1为0的时候,停止TI进行计数,而值为1的时候开启T1进行计数。

  


  当TF1为0的时候,没有T1的中断,为1 的时候会出现T1的溢出中断情况。当IE1的值为0的时候时,出现硬件的复位而当其值为1的时候出现中断。当IT1的值为0的时候INT1出现电平触发的情况,也就是软件复位,而当值为1的时候,INT1的负边沿会出现触发的情况。当IE0的值为0时会出现硬件复位,而当IEO的值为1的时候,INT0上会有中断的情况。当 IT0的值为0时,INT0会发生电平触发,也就是软件复位,同时INT0的负边沿触发。最后一步就是计数器中断入口程序。

  


  定时器/计数器的工作方式

  方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。

  方式1的计数位数是16位,由TL0(TL1)作为低8位、TH0(TH1)作为高8位,组成了16位加1计数器 。

  方式2为自动重装初值的8位计数方式。

  在方式2下,当计数器计满255(FFH)溢出时,CPU自动把TH 的值装入TL中,不需用户干预。因此特别适合于用作较精确的脉冲信号发生器。

  方式3只适用于定时器/计数器T0,定时器T1方式3时相当于TR1=0,停止计数。

  工作方式3将T0分成为两个独立的8位计数器TL0和TH0 。


  总而言之,定时器的使用可以为单片机的功能增加一些性能上的增强。所以,合理的运用定时器将会帮助我们使用单片机。以上就是有关单片机定时器的使用的相关内容,希望能对大家有所帮助!



单片机定时器中断功能和定时器定时功能有什么区别,什么情况需要中断,什么时候不需要呢,讲好必采纳~

不要被文字误导,定时器中断和定时器是一个东西,定时器使用方法基本都是中断执行任务,定时时间到执行一次任务,还有一种使用方法不使用中断,利用软件循环读取定时器溢出标识,循环读取溢出标识基本没有人在实际项目中使用的,这样使用没有任何意义,定时器中断好处,能保证定时准确时间执行任务,不会被其他任务打断,给你举个例子,单片机有两个功能按键、数码管,如果没有使用定时器,按下按键数码管就会出现抖,刷新数码管被按键打断,如果使用定时器定时1毫秒刷新一次,你按下按键都不会影响到数码管,程序在执行按键时,定时器中断程序会优先刷新码管,数码管执行完成在返回按键位置继续执行

单片机的定时器可以使用系统时钟,也可以使用外接的晶震,如果使用系统时钟,系统的时钟决定指令周期,经过分频(比如4分频),定时器计一个数要的时间就便成指令周期乘以4。使用内部时钟还是外部时钟、几分频就取决于各芯片的配置字。

单片机 定时器使用
答:你是刚学习单片机吗?对于Ljmp和Ajmp 只是寻址范围稍有区别 前者为长转移指令 后者是绝对转移指令,后者范围转移范围在同一个2K字节空间以内,一般没有太大的区别。程序写的较短较密的用后一个就可以。还有哦 你的程序中有几个错误 T0的入口地址可是000Bh 堆栈指针是C51中已经定义好的专用指针,用于...

单片机-定时器的使用
答:楼主的程序并无大错,稍加修改即可正常运行。下列程序已经实现了“(响4次/秒和响1次/秒),用定时器1控制发声时间(3秒)”。//=== include<reg52.h> sbit FM = P1^3; //FM是蜂鸣器.unsigned char i, j, count;int k;//--- void main(){ TMOD = 0x11; //把定时器0和1都设置...

单片机的定时器部件有哪两种功能
答:下面我们来看一下,一个单片机定时器的简单结构图,如下图所示:单片机定时器的简单结构图 而无论是单片机定时器,还是计数器,他们在单片机的工作运行过程中都有定时或事件计数功能,因此常常会被应用于时间控制、程序延时、对外部时间计数和检测等工作范围内。而一旦了解了计数器/定时器的应用领域和使用...

如何用单片机定时
答:TL0=(65536-8*1000000/12*TIME)%256;//地位赋初值 TH0=(65536-8*1000000/12*TIME)/256;//高位赋初值 //TIME为你要定时的时间,当然,此值不能大于定时器最大定时时间。8m晶振模式1:最大时间:大约为98毫秒 。所可以去time为50毫秒,然后在中断里面设个静态变量,或者用个全局变量计数,记满...

一个关于单片机定时器的问题
答:定时器的初值跟设置的模式有关,就拿定时器0的模式1(即16位模式)来说 ,由于51系列单片机是8位的,所以需要2个寄存器,高8位称为TH0,低8为称为TL0。定时器的工作原理是输入一个脉冲,寄存器计数+1,等到2个寄存器计数到全部位为1(即11111111 11111111,10进制就是65536),这时,再来一个脉冲,...

单片机内定时器和计数器的异同与应用
答:当定时器用于实现定时功能时,它们以内部时钟信号为基准进行计数;而当它们用于计数外部事件脉冲时,则被称为计数器。虽然它们的结构相同,但在使用方式上有所不同。计数器和定时器的电路结构在数字电路中,计数器和定时器是两种不同的电路结构。虽然计数器同样是对时钟信号进行计数,但定时器则利用了RC电路的充放电...

单片机临时关闭定时器工作用什么指令
答:是51单片机吗? 关闭定时器T0用:TR0=0; 再启动 用TR0=1;关闭定时器T1用: TR1=0; 再启动 用TR1=1;

单片机定时器/计数器主要有什么作用?
答:作用一:计数概念的引入 作用二:定时 作用三:溢出 单片机提供内部定时和外部计数的功能,功能差不多都是定时和计数达到终点时,产生中断,而CPU则暂时放下目前所执行的程序区处理中断。定时器:主要用于产生固定时间(比较精确),也可以作为UART等外设的频率发生器。计数器:主要是计量引脚产生脉冲的个数。

使用51单片机定时器T1的工作方式1,一次定时50ms,其计数初值的十进制和...
答:如果要实现一次50ms的定时,可以按照以下步骤进行计算:1. 计算每个计数周期的时间:12/OSC 秒2. 计算需要多少个计数周期才能达到50ms:50ms / (12/OSC) = 4166.673. 计算需要设置的初始值:65536 - 4167 = 61369因此,在使用51单片机定时器T1工作方式1实现一次50ms的定时任务时,其十进制初始值...

关于单片机中断程序的定时器0和定时器1
答:首先,你所说的两种赋值方法,实际上是一种,就是就是寄存器的高8为位个低8位赋值。你说的第二种(TH0=(65536-50000)/256)所赋的值是经过计算(=(65536-50000)/256)得到的,你知道定时计数器的工作原理就清楚了。其次,赋值大小要根据你的晶振以及单片机工作模式确定机器周期,然后才能确定...