技术文档

单片机计数器实验 学习笔记单片机的40个经典实验之27:6 位数显频率计数器

小编 2024-10-09 技术文档 23 0

学习笔记单片机的40个经典实验之27:6 位数显频率计数器

一、 实验任务

利用 AT89S51 单片机的 T0、T1 的定时计数器功能,来完成对输入的信号进行频率计数,计数的频率结果通过 8 位动态数码管显示出来。要求能够对0-250KHZ 的信号频率进行准确计数,计数误差不超过±1HZ。

二、电路原理图

图 4.31.1

三、系统板上硬件连线

(1). 把“单片机系统”区域中的 P0.0-P0.7 与“动态数码显示”区域中的ABCDEFGH 端口用 8 芯排线连接。

(2). 把“单片机系统”区域中的 P2.0-P2.7 与“动态数码显示”区域中的S1S2S3S4S5S6S7S8 端口用 8 芯排线连接。

(3). 把“单片机系统”区域中的 P3.4(T0)端子用导线连接到“频率产生器”区域中的 WAVE 端子上。

四、程序设计内容

(1). 定时/计数器 T0 和 T1 的工作方式设置,由图可知,T0 是工作在计数状态下,对输入的频率信号进行计数,但对工作在计数状态下的 T0,最大计数值为 fOSC/24,由于 fOSC=12MHz,因此:T0 的最大计数频率为250KHz。对于频率的概念就是在一秒只数脉冲的个数,即为频率值。所以 T1 工作在定时状态下,每定时 1 秒中到,就停止 T0 的计数,而从 T0 的计数单元中读取计数的数值,然后进行数据处理。送到数码管显示出来。

(2). T1 工作在定时状态下,最大定时时间为 65ms,达不到 1 秒的定时,所以采用定时 50ms,共定时 20 次,即可完成 1 秒的定时功能。

五、C 语言源程序

#include <AT89X52.H>

unsigned char code

dispbit={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

unsigned char code dispcode={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};

unsigned char dispbuf[8]={0,0,0,0,0,0,10,10};

unsigned char temp[8];

unsigned char dispcount;

unsigned char T0count;

unsigned char timecount;

bit flag;

unsigned long x;

void main(void)

{

unsigned char i;

TMOD=0x15;

TH0=0;

TL0=0;

TH1=(65536-4000)/256;

TL1=(65536-4000)%256;

TR1=1;

TR0=1;

ET0=1;

ET1=1;

EA=1;

while(1)

{

if(flag==1)

{

flag=0;

x=T0count*65536+TH0*256+TL0;

for(i=0;i<8;i++)

{

temp[i]=0;

}

i=0;

while(x/10)

{

temp[i]=x%10;

x=x/10;

i++;

}

temp[i]=x;

for(i=0;i<6;i++)

{

dispbuf[i]=temp[i];

}

timecount=0;

T0count=0;

void t0(void) interrupt 1 using 0

{

T0count++;

}

void t1(void) interrupt 3 using 0

timecount++;

if(timecount==250)

{

TR0=0;

timecount=0;

flag=1;

}

P0=dispcode[dispbuf[dispcount]];

P2=dispbit[dispcount];

dispcount++;

if(dispcount==8)

{

dispcount=0;

单片机计数器工作原理及讲解

  常用的单片机中大多数都配备了计数器,随着科技水平的提升,人们对于计数产品的功能需求越来越高,计数器也经过不断的更新升级,现如今已经可以达到精准计数的程度了。计数器给人们工作计数工作带来了很大的便利,大大提高了工作效率,今天这篇文章就为大家讲解一下 单片机计数器的工作原理。

单片机计数器

  一、单片机计数器定义

  计数是一种简单的基本运算,单片机计数器就是通过单片机实现这种运算的逻辑电路,计数器在数字系统中主要是针对脉冲的个数进行计数,可以实现测量、计数和控制等功能,同时兼有分频功能。计数器用来计数并指示在任意间隔内输入信号(事件)的个数,用来指示经历的时间计数器可以用来显示产品的工作状态,一般来说主要是用来表示产品已经完成了多少份的折页配页工作。它主要的指标在于计数器的位数,常见的有3位和4位的。

  二、单片机计数器的结构极工作原理

  1、单片机计数器结构图

  在上图中,我们设有两个可编程的16位的定时/计数器:T0和T1,它们既可以用于定时,也可以用来对外部脉冲计数。

  定时功能:对机器周期进行加1计数即机器周期X计数值。

  计数功能:对外部事件产生的脉冲进行加1计数。

  从结构图中,可以看出T0与T1分别由高8位和低8位两个特殊功能寄存器组成,即T0由TH0和TL0组成,T1由TH1和TL1组成。定时/计数器的控制是通过两个特殊功能寄存器来实现的,其中,TMOD是定时/计数器的工作方式寄存器.由它确定定时/计数器的工作方式和功能,TCON是定时/计数器的控制寄存器,用于管理T0和T1的启停,溢出和中断。

引用:单片机计数器工作原理及讲解-深圳宇凡微

相关问答

单片机 计数值问题,注意不是计数初值.已知晶振频率为12MHz,...

[最佳回答]可以采用方式1公式为:定时时间=(65536-X)微妙可以计算1毫妙=1000微妙=65536-X则X=645362如果是1微妙可以采用方式2公式为:定时时间=(256-X)...

单片机 计数器 ,每计数一次是多少时间-ZOL问答

定时器/计数器做为定时器来用的时候,是数的单片机时钟的脉冲个数,也就是说,单片机的时钟做为定时器/计数器的时钟源,因为单片机的时钟一般比较固定,因此,我们就...

51 单片机计数器 计数一个机器周期为一次吗?是一个机器周期吗?...

[回答]单片机计数器计的是外部输入脉冲的个数,脉冲的周期至少应该是机器周期的两倍,否则,不能正常计数.

51 单片机计数器 怎么用?

首1、先将定时器设置为计数器模式。2、其次,将外部脉冲接入到相应定时器的输入端。3、这样就可以使用计数器了。4、可以通过外部引脚对外部的脉冲信号进行...

单片机计数器 原理是什么?_土巴兔装修问答

首先分清一个概念,其实定时器和单片计数器的原理都是一样的,都是“数”脉冲,有些人强行的认为,定时器是定时的,单片计数器是计数的,那就不对了。一...

MCS-51系列 单片机 定时/ 计数器 的定时功能和计数功能分别应用于什么场合?

定时器和计数器本质上讲都是计数器,定时器使用机器时钟做计数源,因为机器时钟是稳定性好,时钟数就是时间,所以叫定时器。当计数器用时,使用的是外部输入的脉...

求51 单片机 定时时间与计数初值关系式的推导过程?

不要去记什么公式,知道原理就行了。以16位方式计数为例,51单片机的计数方式是向上计数,16位计数器如果计数初值为0,则计数器从0计到65535,每计一个1微秒,...

单片机 计数输入端最高脉冲频率是多少? - 婷小猫_5763E181 的...

外部脉冲的变化必须要比51单片机采样的速度慢才行,否则会丢失计数脉冲的个数。1分析:51单片机在每个机器周期的S5P2对计数端点脉冲进行采样,需...

单片机 定时 计数器 应如何选用?

在选择单片机定时计数器时,需要考虑以下几个因素。首先,根据实际需求确定计数器的精度和范围,例如需要计算毫秒级别的定时器还是微秒级别的定时器。其次,考...

单片机 中, 计数器 tcon中tf0,tro是什么意思?他们的值对 计数器 有什么影响?

TF0是定时/计数器0的溢出指示,平时为0,溢出时为1.TR0是定时/计数器0的运行控制位,只有当TR0置1时,定时/计数器0才会工作。TF0是定时/计数器0的溢出指示,平时...

猜你喜欢