导航:首页 > 操作系统 > 51单片机对输入脉冲计数

51单片机对输入脉冲计数

发布时间:2022-07-26 04:28:15

A. 51单片机怎么实现外部脉冲计数

#include<reg51.h>
#define uint unsigned int
uint dat=0,time=0;
bit flag=0;
sbit key=P1^0;
void int00() interrupt 0
{
dat++;
}
void t0isr() interrupt 1
{
time++;
if(time>=400)flag=1;
}
main()
{
TMOD=0x22;
TH0=6;
TL0=6;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SCON=0x40;
ET0=1;
EX0=1;
IT0=1;
PX0=1;
EA=1;
while(1)
{
if(key==0)
{
while(key==0);
TR0=1;
while(flag==0);
TR0=0;
flag=0;
SBUF=dat;
while(TI==0);
TI=0;
SBUF=dat>>8;
while(TI==0);
TI=0;
}
}
}

B. 51单片机,计数器和定时器具体这么用计数器记的是谁的脉冲数

定时器和计数器虽然有定时和技术两种工作模式,但其本质都是使用加法计数器对脉冲进行计数。定时器/计数器每接受一个计数脉冲,加法计数器的值就加1;计满时则发生溢出,计数器又从0开始计数并置溢出标志位(TF0=1或TF1=1)。
1)定时模式
在此模式下,计数器的输入脉冲是由晶振12分频获得的。例如,晶振频率为12MHz的值加1.这样就可以根据计数值计算定时时间,也可以根据定时时间计算计数器的初值。
2)计数模式
在此模式下,计数器的输入脉冲是由外部引脚(T0或T1)输入的。外部引脚出现下降沿时,对应计数器的值加1.如果设置计数器的初值,那么读取当时计数器就可以计算脉冲个数。

完全手打,请采纳

C. 用C51单片机统计脉冲次数

举例解答如下:
利用定时器T1,对外部脉冲(P3.5引脚输入)计数,
每输入200次脉冲产生一次中断,累加器+1,
选用T1,计数器模式,方式2(自动重装初值8位计数器),
TMOD
=0110
0000B
=60H
计数初值
=2^8
-200
=256
-200
=56d
=38H,
编程序如下:
;
;
主程序:
MAIN:
CLR
A
;
;
累加器清零
MOV
TMOD,
#60H
;
;置T1计数模式、方式2
MOV
TL1,
#38H
;
;
写入计数初值
MOV
TH1,
#38H
;
;
写入留待自动重装的初值
SETB
TR1
;
;
启动T1计数
SETB
ET1
;
;
允许T1中断
SETB
EB
;
;
CPU开中断
SJMP
$
;
;
等待一轮对外部脉冲计数溢出中断
;
;
以下是T1中断处理子程序:
T1_INT:
INC
A
;
;
累加器加1
RETI
;
;
中断返回

D. 51单片机脉冲计数

你好!

那就用外部中断来检测吧,速度快精度高

void outside() interrupt 0
{
T0count++;
}
然后将计数,通过液晶显示出来就可

E. 51单片机c语言脉冲计数并显示程序

TMOD=0x05;
TH0=0;TL0=0;
TR0=1;
while(1)
{
a=TH0*256+TL0;
display(a);
}

F. 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中断,转而去执行中断处理程序。所以说,定时器/计数器是单片机中效率高而工作灵活的部件。

G. 51单片机怎么实现每50个脉冲计一次数

这个实现还是挺简单的
可以使用外部中断方式接收脉冲信号,将外部中断设置为下降沿触发,每次产生中断在中断处理程序中做一个累加的变量(i),当i值累加到50的时候 再对计数50次脉冲的变量(k)加1,再清i变量为0。

H. 51单片机对脉冲计数的问题

破题:

“脉冲够10次,"->既然没有时间的限制,则推断应该为连续的10个脉冲。

“点亮一个LED,"->应该有多个LED,每当有连续的十个脉冲,则多点亮一个LED。

"脉冲不够10次,一切回零,”->没有脉冲了,或者说脉冲连续不上了,则熄灭所有LED。

”等待下次脉冲计数。"->既然已经开始等待下次脉冲计数了,就说明,在脉冲消失的同时应该熄灭所有灯,不需要继续向后延续10个周期。

分两个理解:

一、点亮过程:

从第0秒算起,以4秒为一个周期,至第40秒,如果存在“连续”的十个脉冲,点亮LED1。

继续计算,至第80秒,如果存存在“连续”的十个脉冲,点亮LED2。

.......以此类推,直至点亮LEDn。

二、熄灭过程:

只要有一次,在4秒的周期内没有脉冲,则判断为,不够十次!

不知道项目是谁给你的,最好还是问问提出者,否则一旦出了问题,你的工作就白做了!

I. 51单片机脉冲计数新手求助

void main()
{
TMOD=0X03;//计数器0、16位自动重装模式
TH0=0xfc;//这里为你想要奇数多少次中断一次的值(这里的值为1000次中断一次)
TL0=0x18;//65536-你想要计的次数=TH0+TL0的值
TR0=1;
ET0=1;
EA=1;
while(1)
{
;
}
}
void Counter0_Rountine interrupt 1
{
TH0=0xfc;//每计数1000次就重新装入一次中断值
TL0=0x18;

在这里写你计数1000次后想要执行的内容
}

J. 51单片机如何用计数器检测脉冲信号(高低电平),程序怎么做!没有思路!

可以利用51单片机的计数器T0、T1,例如用计数器0的外部计数脉冲输入端T0计数,当计满100个脉冲数量后,触发中断。进入计数服务中断程序。

如果有脉冲信号,经过电容微分后,在下降沿会产生一个向下的尖端脉冲,电阻R2是作为一个偏置,当有向下的尖端脉冲来后,反相端的电压会低于同向端的电压。

从而比较器输出高电平,这个电路图要注意的两个参数是,1,比较器的选择,你可以选LM339,要加上拉电阻。

(10)51单片机对输入脉冲计数扩展阅读:

通向输入端的那两个电阻是用来产生一个参考电压的,电容用来微分你的PWM波,你可以用示波器在反向输入端观察微分信号。

主程序中可根据不同运行状态调用部分子函数。需要开机按键设置时,优先执行按键程序,其它需要设置以后才能运行的子函数暂时不调用,减少单片机被占用过多。

设置后,不需要按键了,就不调用按键程序了。如果需要随时按键都要反应,可以把按键接到外部中断上,以中断方式响应按键,不受其他子函数影响。

阅读全文

与51单片机对输入脉冲计数相关的资料

热点内容
Python取ID对应的值 浏览:630
现在我的世界什么服务器最混乱 浏览:762
美国好的源码出售 浏览:323
苹果ipad文件夹怎么添加文字 浏览:481
腾讯云连接自己的服务器地址 浏览:216
硕士英语综合教程pdf 浏览:46
分段加密的安全性 浏览:507
咪咕直播为什么没有适配安卓系统 浏览:172
php模版大全 浏览:102
没车能解压吗 浏览:634
php开发oa系统源码 浏览:759
怎么安装苹果ios的app 浏览:581
app拉新如何机刷 浏览:480
zendeclipseforphp 浏览:480
同时有几个微信如何加密微信 浏览:86
大众20t压缩比 浏览:566
程序员要记住的500个单词 浏览:831
wq快捷方式在哪个文件夹 浏览:965
云南到河北源码 浏览:92
安卓手机怎么玩造梦3 浏览:60