① 51单片机计数器怎么使用
设置T0模式 为计数模式就行了 就是TMOD的C/T位置1;
脉冲从T0输入 T0就计数了
你读取TH0和TL0就晓得脉冲个数了
有了这个脉冲个数 输出到数码管即ok
② 单片机计数
timez[0]-timez[2],是三滴之间的时间差。
也就是滴下两滴所用的时间。单位,大概是 ms ?
2400(timez[0]-timez[2]),是滴下 4800 滴,所需要的时间。
③ 单片机的计数器,每计数一次是多少时间
定时器/计数器本质上都是计数器,只不过数的东西不一样.
定时器/计数器做为定时器来用的时候,是数的单片机时钟的脉冲个数,也就是说,单片机的时钟做为定时器/计数器的时钟源,因为单片机的时钟一般比较固定,因此,我们就知道一个脉冲占多长时间,因为根据脉冲的个数,就能推算出时间,就能做定时器用.
比如:12MHz的传统51单片机,一个脉冲周期是1us,如果定时器数了10个脉冲周期就中断了,说明10us时间到了.
而作为计数器的时候,数的是来自引脚上的脉冲,也就是说,是引脚上的脉冲做为定时器/计数器的时钟源,如果这个脉冲是规律的,周期是固定的,那么,也可以实现定时,比如,如果引脚的脉冲是10KHz的,那么,一个脉冲周期是100us,如果定时器/计数器数了10个脉冲周期就中断,说明1ms时间到了.
但是,如果引脚上的脉冲频率不固定,时高时低,那么,就没办法根据脉冲个数算出时间来,此时,就只是单纯的计数功能.
总而言之,定时器/计数器本质都是对脉冲计数,只是作为定时器,数的是内部的脉冲,做为计数器,数的是外部的脉冲,如果脉冲固定,外部脉冲也可以用来定时.赞同0|评论
④ 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;
}
}
}
这是我初学是自己写的时钟 你调点看看就知道了 但是建议你去找本单片机的书看看会好多的,里面的那些标志位你才知道是代表什么
⑤ 单片机的定时和计数有什么 区别
1、触发来源不同:定时器的触发来源是外部脉冲,而计数器的触发来源是时钟信号。
2、计数对象不同:定时器实际上也是计数器,只是计数的是固定周期的脉冲;计数器只是计数时间。
单片机也被称为单片微控器,属于一种集成式电路芯片。在单片机中主要包含CPU、只读存储器ROM和随机存储器RAM等,多样化数据采集与控制系统能够让单片机完成各项复杂的运算,无论是对运算符号进行控制,还是对系统下达运算指令都能通过单片机完成。
由此可见,单片机凭借着强大的数据处理技术和计算功能可以在智能电子设备中充分应用。简单地说,单片机就是一块芯片,这块芯片组成了一个系统,通过集成电路技术的应用,将数据运算与处理能力集成到芯片中,实现对数据的高速化处理。
(5)单片机计数扩展阅读:
单片机的应用
1、节能控制
由于智能电子设备可能会被经常携带外出,因此对这些设备的能耗要求是非常高的,所以经常会设计一些节能控制模块,从而提高智能电子设备的待机时长。
单片机技术在节能控制中的应用主要分为以下几个方面:第一,智能电子设备在外出状态下,大部分是处于轻负载的模式,这时候就需要通过节能控制,确保其基础功能的前提下,进一步降低电量的消耗。
单片机通过对智能电子设备中数据的收集,可以大致推断当前设备处于较低的负载,这时可以降低电压及电流的输出,达到节能的目的;第二,单片机可以控制能耗的节奏,例如:在小米手环中,收集人体的心率、睡眠和运动步数等数字,这些数字收集后会在本地进行存储,然后以分钟级的频率进行上报。
信息未上报时,设备处于低能耗的状态,信息上报时,会出现一些网络传输方面的消耗,单片机可以控制能耗的节奏,将手环的大部分时间控制在低能耗的状态下,可以使得待机时间长达七十二小时以上。
2、智能语音设备
为了更好地提高智能电子设备的智能性,可以允许人类通过简单的语言进行控制,实现语音人机交互的目的。目前,语音处理芯片已经开发完成,并开始运用到智能电子设备中。单片机在智能语音设备中的应用,主要分为以下两个部分。
第一,软件设置方面,由于单片机可以通过编程的方式,处理一些业务逻辑,因此就能够对智能语音处理过程进行操作。例如:在导航智能电子设备中,可以将其中的一些道路名称、距离等进行提取,然后进行播报;同时,还可以选择不同的名人口吻进行播报,真正实现智能化的定制操作,更好地满足用户的需求。
第二,硬件设计方面,由于智能语音设备对资源的消耗比较大,因此为了更好地延长产品的待机时间,会使用单片机技术动态控制产品的功率,进一步降低对电量的消耗。同时,还可以通过单片机技术,提高硬件的响应时间,进一步提高用户的体验。
3、报警控制
对于部分电子设备来讲,会拥有自动报警的设置,报警控制也是单片机技术经常使用的领域,主要体现在以下几个方面:第一,对于一些自动报警装置来讲,例如:家里经常使用的火灾报警器,就是在外界环境达到一定条件下开启智能报警的设备。
如果室内的烟雾浓度到达某种水平,或者是收集外界的数据达到某种状态时,就会自动触发报警设置,从而实现智能报警的功能;第二,对于一些智能电子设备来讲,如果外在环境超过设备的工作环境范围时,或者是设备存在一些异常情况时,就会触发自身的报警机制,让用户能够及时了解设备的运作详情,并且根据报警信息提供解决方案。
4、医疗设备
随着医疗设备技术的不断提升,单片机开始在医疗设备中进行广泛的应用,主要体现在:第一,对病人的身体特征数据进行智能监控,可以将一些医疗设备安装在病人身上,并对其身体的数据进行收集,然后与后台的控制系统进行交互,如果发现病人的身体特征异常时,会及时产生报警。
⑥ 单片机计数程序
#include <reg52.h>
sbit Switch = P2^0;
sbit P3_0 = P3^0;
sbit P3_1 = P3^1;
#define uchar unsigned char
#define uint unsigned int
bit key_state;
//***********************************************************
void mDelay(uint temp)
{uint i;
while(temp!=0)
{temp--;
for(i=0;i<5000;i++);
}
}
//************************************************************
//************************主程序******************************
void main()
{ uchar count=0;
P3_0=1;
P3_1=1;
while(1)
{
if(Switch==1) key_state=1; else key_state=0;
if((Switch==0)&&(key_state==1))
{key_state=0;
count+=1; if(count==10)
{
P3_1=0;mDelay(200);//调括号的数来完成1S。
P3_0=0;
}
}
}
}
//此程序没有经过实际验证.给你一个参考吧.是按你的功能写的.你可以下载进试验,有问题请告知.应该能达到你的要求.不行加我的网络HI啊
⑦ 51单片机频率计数。
这个是需要修改的 51接12M晶振就是为了精确程序运行时间 内部是经过 12分频的这样运行一条一般的指令就是1us 至于单片机开发板一般可能是11.0592的 因为一般的开发板有串口 而用串口就必须用11.0592不然波特率不准
⑧ 单片机 计数器 设定计数初值
1、定时器和计数器都是计数,前者是计的内部时钟脉冲的计数器,用于定时控制;后者是对外部脉冲的计数,比如计产品的数量。
2、他的数据存储单元的数字在变化呀,如果用一个数码管接出来的话你就可以看到了。
3、设定的初值不是用手输入的,是用数字编入程序的。
4、这个要按具本的实际需要来选用哪一个。
能实际做几个实例就明白了,或者用仿真也可以
⑨ 单片机计数器是怎么计数的
有定时器和计数器模式的区别,所谓定时器,就是对机器内部频率计数,可以做时钟,如果为计数器模式,就是对P3.4,P3.5所接受到得脉冲计数,可以设置低电平或者下降沿触发……
⑩ 51单片机的计数器程序
你得在P3.5引脚外部加计数脉冲信号呀,T1才能计数的。就用你的程序,仿真的结果如下图,并用数码管显示了TL1=1的状态了。