日夏养花网

您好,欢迎访问日夏养花网,我们的网址是:http://www.rixia.cc

51单片机处理接收的脉冲?

2021-12-27 14:00:43 分类:养花问答 来源: 日夏养花网 作者: [db:作者] 阅读:96

单片机接日夏养花网收外来脉冲,计数程序(C语言)

请问高手:单片机接收外来脉冲,计数程序(C语言)问题rnrn1.单片机接收外来的脉冲,计算接收个数,至少能计数 1万个脉冲,电路该如何设计好?rn2.我想要用14位的计数器,74HC4020可以吗?为什么4020只有十二位输出(Q0,Q3-Q13), 这样第二、三位不就无法读取了?rn3.总之能实现单片机接收外来脉冲,计数程序(C语言),越简洁越好。rnrn哪位高手帮帮忙,给个指点,先上百分,满意还加,助人为乐,万分感谢!
你用的什么的单片机,这个太容易搞定了,只用单片机就可以搞定了,要中断的方式来计数,下降沿触发中断,传感器控制中断口的输入,就可以搞定,我的项目一个小部分就是开关脉冲计数。程序就不给你了,设计专利的东西,不懂的还可以在问
不用计数器啊,用一个单片机就可以搞定了
51单片机是有计数功能的,置方式1最大可以计数65536个脉冲。但要注意脉冲频率要小于晶振频率的1/24

如果只计数的话,不用打开中断功能,只要取出TH0和TL0的值并把它清零即可。

初始化程序:

void init()
{
TMOD=0x05;//方式一,16位计数器
TH0=0;
TL0=0;
TR0=1;//启动计数器
}

楼下的程序是定时器,不是计数器

欢迎来我空间看看

百度空间:http://hi.baidu.com/%B4%F3%CE%B0%B5%E7%D7%D3%D6%C6%D7%F7

如何用51系列单片机发射脉冲?

要用51系列单片机发射40KHZ的脉冲,管脚是P3.0,不知道如何实现?
51单片机本身就有两个自带的可编程定时器/计数器T1,T2有四种工作方式,只要写入控制字和设置记数初值,就可以输出不同频率的脉冲.51单片机的为6M
HZ,所以存入的值可以计算的为0F0H,选用方式1,控制字
MOV
TMOD,#01H
;选用方式1
MOV
TL0,#0F0H
;装入初值
SETB
TR0
;启动
SETB
ET0
;允许中断
SETB
EA
;CUP开放中断

51单片机怎样采样脉冲信号

我现在要用51单片机采样一个脉冲信号,脉冲宽度15ms,但是电压很低,0.0几伏,是用I/O口直接测试还是用什么A/D电路来测试.但是89C52内部没有A/D电路.怎么写呀?我刚学,会点汇编
频率多大呢?不高的话。用51单片机的计数器可以实现。脉冲的频率范围。要是慢的话直接用ad去采样得了。高的话加个单向导通的2极管,加个电容。充电电路用ad采样。不过得设计个开关放电电路。用硅管就是采样值加0.7,锗管加0.3.
为啥要这个呢,要是不是标准脉冲信号加个比较器就得了
频率多大呢?不高的话。用51单片机的计数器可以实现。脉冲的频率范围。要是慢的话直接用ad去采样得了。高的话加个单向导通的2极管,加个电容。充电电路用ad采样。不过得设计个开关放电电路。用硅管就是采样值加0.7,锗管加0.3.
为啥要这个呢,要是不是标准脉冲信号加个比较器就得了
对于低电压的脉冲信号,你所述的15ms脉宽是比较大的日夏养花网,你可以用运放,如LM358或LM324放大后送给MCU的中断输入脚,用定时器对脉冲进行计时即可测出宽度日夏养花网和周期.
不用ad电路,直接用89c52的计数器就可以.不过你得确定这个脉冲的峰值是不是5v.不知道你用什么测得他的电压,如果用的万用表的话,你测的电压就不对了.如果脉冲是ttl电平的话,高电平3-5v左右可以用过光耦隔离下,进入单片机的计数器端口就可以.如果电压太低的话就得加放大电路了.
如果说脉冲信号很弱的话就有难度的,我不知道你具体用是什么东西,怎么会这么低的脉冲信号,你如果是红外接收的话,改下电路就可以获得很高的电压了,那样采集会更加可靠点
不知道你可否说下你具体用在哪?

求大神帮忙写个51单片机的接收脉冲程序。

程序要求是:在一定时间内(例如2ms)接收到的脉冲数。(如果以上升沿为例就是看在2ms内接收到多少个上升沿)
用计数器T1的中断控制蜂鸣器发出1KHz音频
#include<reg51.h> // 包含51单片机寄存器定义的头文件
sbit sound=P3^7; //将sound位定义为P3.7引脚
/**************************************************************
函数功能:主函数
**************************************************************/
void main(void)
{
EA=1; //开总中断
ET1=1; //定时器T1中断允许
TMOD=0x10; //TMOD=0001 000B,使用定时器T1的模式1
TH1=(65536-921)/256; //定时器T1的高8位赋初值
TL1=(65536-921)%256; //定时器T1的高8VpmMV位赋初值
TR1=1; //启动定时器T1
while(1)//无限循环等待中断
;
}
/**************************************************************
函数功能:定时器T1的中断服务程序
**************************************************************/
void Time1(void) interrupt 3 using 0 //“interrupt”声明函数为中断服务函数
{
sound=~sound;
TH1=(65536-921)/256; //定时器T1的高8位重新赋初值
TL1=(65536-921)%256; //定时器T1的高8位重新赋初值
}
改改 就成了你VpmMV
CT DATA 30H ;CT为配合T1定时用的计数变量
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV TMOD, #15H ;T1在方式1下定时;T0在方式1下计数
MOV TH0, #00H
MOV TL0, #00H ;装载T0初值0
MOV TH1, #4CH
MOV TL1, #00H ;对应定时50ms设定T1初值
MOV CT, #20 ;设定T1循环定时次数
SETB TR1
SETB TR0 ;启动T0和T1
BACK1: JNB TF1, BACK1 ;等待定时器50ms到
CLR TF1 ;清除T1溢出标志,以便执行下次定时查询
MOV TH1, #4CH
MOV TL1, #00H ;T1重新装入初值
DEC CT ;循环次数减1
MOV A, CT
JNZ BACK1 ;A=0则定时达到1s,否则继续
CLR TR0 ;1s到,T0停止计数
MOV 40H, TL0
MOV 41H, TH0 ;结果存放在内存的通用RAM区
END

这个是一个数字频率计,输入口在P3.4。单片机的时钟频率是11.0592MHz。

文章标签:

本文标题: 51单片机处理接收的脉冲?
本文地址: http://www.rixia.cc/wenda/196903.html

上一篇:我想了解关于花粉传播的问题。举个例子,将梨花的花粉放到桃花的雌蕊上,会有什么结果?这是不是叫异花授

下一篇:苹果削皮后,放一段时间为什么会变黄?

相关推荐

推荐阅读

猜你喜欢

返回顶部