导航:首页 > 操作系统 > 单片机计数器

单片机计数器

发布时间:2022-02-14 19:59:18

单片机定时器/计数器主要有什么作用

作用:可以计时,计数,可以产生时间中断,是系统中比较实用的工具。

大部分单片机提供2~3个定时/计数器,少数提供1个或4个定时器。有些定时/计数器还具有输入捕获、输出比较和PWM(脉冲宽度调制)功能,如AVR单片机。

有的单片机还有专门的PCA(可编程计数器阵列)模块和CCP(输入捕获输出比较PWM)模块,如PIC和Philips的部分中高档单片机。利用这些模块不仅可以简化软件设计,而且能减少占用CPU的资源。现在不少单片机还提供了看门狗定时器(WDT),当单片机“死机”后可以自动复位。

定时/计数器

定时/计数器T0和T1分别是由两个8位的专用寄存器组成,即定时/计数器T0由TH0和TL0组成,T1由TH1和TL1组成。此外,其内部还有2个8位的特殊功能寄存器TMOD和TCON,TMOD负责控制和确定T0和T1的功能和工作模式,TCON用来控制T0和T1启动或停止计数,同时包含定时/计数器的状态。

以上内容参考:网络-定时器中断

Ⅱ 单片机计数器

你选择的是自动重装计数器的吧,将计数初值X高八位装进THi 低八位装进TLi后运行单片机计数器,单片机计数器计数溢出后就会把这个X高八位装进THi 低八位装进TLi后就重新计数。

Ⅲ 单片机的计数器,每计数一次是多少时间

定时器/计数器本质上都是计数器,只不过数的东西不一样.
定时器/计数器做为定时器来用的时候,是数的单片机时钟的脉冲个数,也就是说,单片机的时钟做为定时器/计数器的时钟源,因为单片机的时钟一般比较固定,因此,我们就知道一个脉冲占多长时间,因为根据脉冲的个数,就能推算出时间,就能做定时器用.
比如:12MHz的传统51单片机,一个脉冲周期是1us,如果定时器数了10个脉冲周期就中断了,说明10us时间到了.

而作为计数器的时候,数的是来自引脚上的脉冲,也就是说,是引脚上的脉冲做为定时器/计数器的时钟源,如果这个脉冲是规律的,周期是固定的,那么,也可以实现定时,比如,如果引脚的脉冲是10KHz的,那么,一个脉冲周期是100us,如果定时器/计数器数了10个脉冲周期就中断,说明1ms时间到了.

但是,如果引脚上的脉冲频率不固定,时高时低,那么,就没办法根据脉冲个数算出时间来,此时,就只是单纯的计数功能.

总而言之,定时器/计数器本质都是对脉冲计数,只是作为定时器,数的是内部的脉冲,做为计数器,数的是外部的脉冲,如果脉冲固定,外部脉冲也可以用来定时.赞同0|评论

Ⅳ 单片机的计数器是干什么的

以51单片机16位定时计数器1(T1 )来讲,
通俗解释:
计数是T1是一个能盛65536(十六位时)滴水的水盆,在水龙头下水一滴滴地滴入盆中。如果盆是空的那水在滴完65536滴水时盆子的水就满了再滴一滴的时候就溢出了。这时就会产生中断。
如果盆里面已经装入65500滴水(即初装值),那么只需要36滴水后就溢出了。
每一个水滴即一个脉冲。(高低电平变换一次)

定时时水滴的速度即机器周期,等于12个振荡周期(晶振的振荡频率除以12),直接影响到溢出的时间。

Ⅳ 51单片机的计数器怎么用

首先将定时器设置为计数器模式。
其次,将外部脉冲接入到相应定时器的输入端。
这样就可以使用计数器了。

Ⅵ 单片机计数器问题

计数器和定时器的工作原理都是加一。。
如果你想要用计数器的话。在TMOD里设百置一下就行了。
如果你想显示下降度沿的次数。你可以读计数器里面的值。。。

在TMOD里设置MOV TMOD,#06H;T0工作在方式2,计数模式
给问T0放初值。比如说MOV TH0,#00H
MOV TL0,#00H
SETB TR0;启动定时器0
这个时候T0从0开始进行加一计数。。。因为我设置的是方式2.所以计数到256的时答候溢出 。所以在方式2的基础上你的计数最大不能超过256.。如果你想要记更大的数。那直接用方式1就行。。好好查查书吧。版。
如果你想显示你的脉冲个数。。直接找个权寄存器比如说A
然后把TH0里面的值取出来就OK拉。。。
比如 MOV A,TH0;

Ⅶ 51单片机计数器编程

利用红外对管作感应器的话,只要将单片机设置为计数模式就行,然后红外接收管接到单片机的P3^4或者P3^5口,这是51系列单片机计数功能口,然后设置好TMOD寄存器和TCON寄存器选择工作方式和触发方式即可,计数变量定义为全局变量,然后传递给显示函数。 如有不懂的地方随时回复我。 希望我的回答能帮助到你。

Ⅷ 51单片机的计数器怎么用

给你一个时钟的源程序吧 是完全使用计数器来实现的:
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit up_m=P3^0; //秒按键设置
sbit up_f=P3^1; //分按键设置
sbit up_s=P3^2; //时按键设置
uchar const smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar i,j,k;
void delay(uint cnt)
{
while(--cnt);

}
void delayms(uint a)
{
uchar i;
while(--a)
{
for(i=0;i<125;i++);
}
}
void init()
{
TMOD=0X01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
ET0=1;
EA=1;
TR0=1;
}
void keyboard()
{
P3=0xff;
if(up_m==0)
delayms(40);
if(up_m==0)
{
i++;
if(i>=60)
{
i=0;
}
delayms(40);
}
if(up_f==0)
delayms(40);
if(up_f==0)
{
j++;
if(j>=60)
{
j=0;
}
delayms(40);
}
if(up_s==0)
delayms(40);
if(up_s==0)
{
k++;
if(k==23)
{
k=0;
}
delayms(40);
}
}
void init_smg()
{
P2=2;
P0=0x40;
delay(5);
P2=5;
P0=0x40;
delay(5);
}
main()
{
i=0;
init();
while(1)
{ init_smg();
P2=2;
P0=0x40;
P2=5;
P0=0x40;
P0=0x00;
keyboard();
P2=7;
P0=smg[i%10];
delay(3);
P0=0X00;
P2=6;
P0=smg[i/10];
delay(3);
P0=0x00;

P2=4;
P0=smg[j%10];
delay(3);
P0=0X00;
P2=3;
P0=smg[j/10];
delay(3);
P0=0x00;

P2=1;
P0=smg[k%10];
delay(3);
P0=0X00;
P2=0;
P0=smg[k/10];
delay(3);
P0=0x00;
}
}
void time () interrupt 1
{
unsigned char a;
a++;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
if(a==20)
{
a=0;
i++; //秒控制
if(i==60)
{
i=0;
j++;//分控制
}
if(j==60)
{
j=0;
k++;//时控制
if(k>23)
k=0;
}
}
}

这是我初学是自己写的时钟 你调点看看就知道了 但是建议你去找本单片机的书看看会好多的,里面的那些标志位你才知道是代表什么

Ⅸ 51单片机计数器怎么用

51单片机是基础入门的一个单片机,还是应用最广泛的。

51单片机的定时/计数器的概念

单片机中,脉冲计数与时间之间的关系十分密切,每输入一个脉冲,计数器的值就会自动累加1,只要相邻两个计数脉冲之间的时间间隔相等,则计数值就代表了时间的流逝,因此,单片机中的定时器和计数器其实是同一个物理的电子元件,只不过计数器记录的是单片机外部发生的事情(接受的是外部脉冲),而定时器则是由单片机自身提供的一个非常稳定的计数器,这个稳定的计数器就是单片机上连接的晶振部件;MCS-51单片机的晶振经过12分频之后提供给单片机稳定脉冲;晶振的频率是非常准确的,所以单片机的计数脉冲之间的时间间隔也是非常准确的。
51单片机的定时/计数器的工作原理
加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。
作为定时器使用时,定时器计数8051单片机片内振荡器输出经过12分频后的脉冲个数,即:每个机器周期使定时器T0/T1的寄存器值自动累加1,直到溢出,溢出后继续从0开始循环计数;所以,定时器的分辨率是时钟振荡频率的1/12;
作为计数器使用时,通过引脚T0(P3.4)或T1(P3.5)对外部脉冲信号进行计数,当输入的外部脉冲信号发生从1到0的负跳变时,计数器的值就自动加1由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2微秒。;计数器的最高频率一般是时钟振荡频率的1/24;
由此可知,不论是定时器还是计数器工作方式,定时器T0和T1均不占用CPU的时间,除非定时器/计数器T0和T1溢出,才可能引起CPU中断,转而去执行中断处理程序。所以说,定时器/计数器是单片机中效率高而工作灵活的部件。

Ⅹ 单片机计数器是怎么计数的

有定时器和计数器模式的区别,所谓定时器,就是对机器内部频率计数,可以做时钟,如果为计数器模式,就是对P3.4,P3.5所接受到得脉冲计数,可以设置低电平或者下降沿触发……

阅读全文

与单片机计数器相关的资料

热点内容
租个服务器开个私服需要什么 浏览:270
图片换成pdf格式 浏览:659
javamidi编程 浏览:831
android60demo 浏览:65
头条算法怎么复习 浏览:512
灯光控制通道可以编程设置吗 浏览:781
webpack命令行 浏览:805
卸载云服务器操作系统 浏览:29
java文件移动文件夹 浏览:449
针织公斤足称算法 浏览:457
电脑下载的图片从文件夹重新编组 浏览:645
安卓源码编译引导失败 浏览:676
苹果怎么添加自定义app文件夹 浏览:930
橙牛app怎么找客服 浏览:307
php对象魔术方法 浏览:487
OBV能量潮幅图指标源码 浏览:915
编程15个好习惯 浏览:676
电脑u盘文件夹显示屏幕保护程序 浏览:803
我的世界服务器版本怎么下载 浏览:600
c代码加密工具 浏览:359