首页 > 分享 > 定时器/计数器

定时器/计数器

定时器/计数器

最新推荐文章于 2024-07-18 14:40:07 发布

FXHaoo 于 2018-11-22 15:06:11 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

*觉得有用有帮助的评论下,谢谢~

定时器/计数器

定时器/计数器 和单片机的CPU是相互独立的。定时器/计数器工作的过程是自动完成的,不需要CPU的参与。 工作原理 定时器/计数器 实质上是一个 加1计数器。它随着计数器的输入脉冲进行加1,当计数器发生溢出时,则向CPU发出中断请求,如果是定时模式,则表示定时时间已到,计数模式,则表示所计数值已满。 结构

它由高8位和低8位两个寄存器THxTLx 组成。

TMOD是定时器/计数器的工作方式寄存器,即控制它的工作方式。

TCON是控制T0/T1的启动停止设置溢出标志

控制 两个特殊功能寄存器 1、工作方式寄存器TMOD

注:TOMD不可位寻址

①GATE :门控位,GATE=0 时,只需要TR0/TR11,就可使定时器/计数器工作;GATE=1 时,不仅要满足TR0/TR11 ,同时还需外部中断引脚 INT0/1 也为高电平,才能启动定时器/计数器工作。②C/T :定时/计数模式选择位。C/T=0 为定时模式;C/T=1 为计数模式。③M0M1 :工作方式设置位。 M1M0工作方式功能说明00方式0兼容8048单片机的13位定时器,THx的8位和TLx的5位组成一个13位定时器。01方式1THx和TLx组成的一个16位定时器/计数器10方式2自动重装初值的8位定时器/计数器10方式3定时器0:分成两个8位定时器/计数器。
定时器1:停止计数 2、控制寄存器TCON

这些位在上次的中断系统中有写 工作方式 1、方式0

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

这个模式51单片机一般很少用

2、方式1

由TL0作为低8位,TH0作为高8位,组成了16位加1计数器

计数范围是0~65535 ,溢出后,只要不重新赋值,则从0开始计数

3、方式2 只有TLx做加1计数,计数范围是0~255 ,THx的值并不发生变化,而是保持原值,TLx溢出后,TFx就直接置1了,并且THx原先的值直接赋给TLx,然后TLx从新赋值的这个数字开始计数。(该功能可以用来产生串口的通信波特率,即适合做脉冲信号发生器) 4、方式3 只适用于定时器/计数器T0,定时器T1处于方式3相当于TR1=0 ,停止计数 使用 设置特殊功能寄存器TMOD,配置好工作模式设置计数寄存器THx和TLx的初值(初值之类的直接用软件计算吧)设置TCON,通过TRx置1来让定时器开始计数,还有中断开关EAETx判断TCON寄存器的TFx位,监测定时器溢出情况。 定时器0程序

#include "reg52.h" typedef unsigned int u16; sbit led=P2^0; //定义P20口是led void Timer0Init() {TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。(不影响其它位)TMOD=TMOD|0X01TH0=0XFC;//给定时器赋初值,定时1msTL0=0X18;ET0=1;//打开定时器0中断允许EA=1;//打开总中断TR0=1;//打开定时器 } void main() {Timer0Init(); //定时器0初始化while(1); } void Timer0() interrupt 1 //定时器0中断程序 {static u16 i;//设置一个静态全局变量TH0=0XFC;//给定时器赋初值,定时1msTL0=0X18;i++;if(i==1000){i=0;led=~led;} }

12345678910111213141516171819202122232425262728293031323334 在51单片机中,应用较多的是方式1方式2,而要注意到是方式1在使用时,一定要记得重装初值 ,我刚开始时就是忘记重装初值,程序的效果老是不对

完成~

相关知识

自动浇水系统设计说明
盆花自动浇水系统的设计.doc
智能花盆自动浇水系统的设计说明书
智能花盆自动浇水系统的设计
农业智能灌溉定时器自动化原理
智能花盆自动浇水系统的设计.docx
智能花盆自动浇水系统的设计论文.doc
自动浇花定时器的时间设置
23
SysTick定时器应用之一——用于延时函数

网址: 定时器/计数器 https://m.huajiangbk.com/newsview893365.html

所属分类:花卉
上一篇: quartus仿真4:74194
下一篇: FPGA学习篇之计数器