C8051F310,想用从P1.7口输入脉冲序列,后计算输入脉冲的高电平持续时间。如何设置交叉开关和P0MDIN?

C8051F310,想用从P1.7口输入脉冲序列,后计算输入脉冲的高电平持续时间。如何设置交叉开关和P0MDIN?,第1张

#include "C8051F310h"
sfr16 CPA0CP0=0xFb;
unsigned int num1,num2;
unsigned char num=0;
unsigned long time;
bit wancheng=0;
// Peripheral specific initialization functions,
// Called from the Init_Device() function
void PCA_Init()
{
PCA0CN = 0x40;
PCA0MD &= ~0x40;
PCA0MD = 0x01;
PCA0CPM0 = 0x21; //下次检测上升沿
}
void Port_IO_Init()
{
// P00 - Skipped, Open-Drain, Digital
// P01 - Skipped, Open-Drain, Digital
// P02 - Skipped, Open-Drain, Digital
// P03 - Skipped, Open-Drain, Digital
// P04 - Skipped, Open-Drain, Digital
// P05 - Skipped, Open-Drain, Digital
// P06 - Skipped, Open-Drain, Digital
// P07 - Skipped, Open-Drain, Digital
// P10 - Skipped, Open-Drain, Digital
// P11 - Skipped, Open-Drain, Digital
// P12 - Skipped, Open-Drain, Digital
// P13 - Skipped, Open-Drain, Digital
// P14 - Skipped, Open-Drain, Digital
// P15 - Skipped, Open-Drain, Digital
// P16 - Skipped, Open-Drain, Digital
// P17 - CEX0 (PCA), Open-Drain, Digital
// P20 - Unassigned, Open-Drain, Digital
// P21 - Unassigned, Open-Drain, Digital
// P22 - Unassigned, Open-Drain, Digital
// P23 - Unassigned, Open-Drain, Digital
P0SKIP = 0xFF;
P1SKIP = 0x7F;
XBR1 = 0x41;
}
void Interrupts_Init()
{
EIE1 = 0x10;
IE = 0x80;
}
// Initialization function for device,
// Call Init_Device() from your main program
void Init_Device(void)
{
PCA_Init();
Port_IO_Init();
OSCICN = 0x83;
Interrupts_Init();
}
void PCA0_ISR(void) interrupt 11
{
static bit FLAG=0;
if(CCF0)
{
CCF0=0;
if(FLAG==0) //上升沿
{
FLAG=1;
num1=CPA0CP0;
PCA0CPM0 = 0x11; //下次检测下降沿
}
else //下降沿
{
FLAG=0;
num2=CPA0CP0;
PCA0CPM0 = 0x21; //下次检测上升沿
wancheng=1;
}
}else if(CF)
{
CF=0;
if(FLAG==1)
num++;
}
else
{
CCF1=0;
CCF2=0;
CCF3=0;
CCF4=0;
}
}
void main(void)
{
Init_Device();
while(1)
{
if(wancheng==1)
{
wancheng=0;
time=num2+num0x10000-num1;//time12/245M即为实际时间单位/秒
num=0;
}
}
}
//未测试

1雷达电磁波的频率为300000000/02=15G赫兹;
2脉冲周期为1/5000=00002秒,以其结束时收到第一个波形算,电磁波往返的路程为00002300000=60KM,因此最大测距为60/2=30KM。这里一定要分清楚脉冲周期和脉冲持续时间!
给的分太少了,你可对不起我啊。

脉冲频率如何计算
首先,假设PLC的脉冲输出频率为 X

编码器反馈脉冲为 M

电子齿轮比为 A

伺服电机转速为 Y
则有 (X/M)60A=Y

送料脉冲计算

假设送料的长度为 L

送料轮的周长为 C则送料频率为 ((L/C)M)/T(注意,T是 完成L时需要的时间)(即是 PLC需要发出的脉冲频率)

((L/C)M)为送料脉冲

祝您,好运!
电路的脉冲频率如何计算
电路的脉冲频率公式 F=1/T F是频率 1是1秒 T 是周期单位是秒

例如 1赫兹=1/1秒

10赫兹=1/01秒
编码器的脉冲频率怎么计算
1)编码器 如果是500P的,就是旋转1圈,产生500个脉冲。 2)每个编码器都有一个最高转速(或最高频率)的限制,使用时不能超过这个数值。 根据已知的电机最高转速,和编码器的线数,就可以就算出 最高频率值。 这样就可以确定旋转什么规格的编码器了
求步进电机的转速和脉冲频率之间的关系,计算公式。谢谢各位大侠!
s=f/418 S的单位为度
PLC输出脉冲的频率怎么算的,谢谢、
频率:在1秒内完成周期性变化的次数叫做频率

1秒10次 频率=10HZ
555定时器脉冲频率计算 50分
输出高电平时间

T1=(R1+R2)Cln2

输出低电平时间

T2=R2Cln2

振荡周期

T=(R1+2R2)Cln2

根据你的可以得胆频率为48Hz,但是在这个电阻值的设置下,输出波形的占空比不是很好
单片机发出的pwm脉冲信号的频率是怎么计算的
是系统时钟分频得到的,分频系数程序中设定并,只有几个值可选,个然后8位捕获定时器的计数值是256,因此 pwm脉冲信号的频率=系统时钟/分频系数/256
已知设备的速度,如何计算伺服脉冲的频率
发一定的脉冲时会自动减速的。有些发脉冲指令在发送过程中可以改变速度。但不是绝对定位或相对定位指令。 查看原帖>>
脉冲波的功率如何计算
脉冲波的功率计算公式:脉冲波平均功率=峰值功率X脉冲宽度X重复频率。

脉冲波是指一种间断的持续时间极短的突然发生的电信号。凡是断续出现的电压或电流称为脉冲电压或脉冲电流。电信波形来说除了正弦波和由若个正弦分量合成的连续波以外,都可以称为脉冲波。常见的脉冲波有矩形波,锯齿波,三角波,尖峰波,阶梯波。

其实如果你不需要细分,75度进步角与PWM脉冲宽度无关系,PWM脉冲宽度只需要满足起步条件否则会失步,PWM跟你的转速有关,与步进角无关。
看你的步进电机是几相的,然后根据使用说明或者数据手册,按要求送互补对的脉冲就行了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12968597.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存