
110592M,产生38kHz脉冲将有误差。
11059200/12=921600/38000=243=23
static void timer0_isr(void) interrupt 1 using 0 //中断函数
{
TR0=0;
TL0=0xe9;
TH0=0xff;
TR0=1;
timer0_tick++;
if(timer0_tick++==23)
{
timer0_tick=0;
}
if (timer0_tick==0)
{
P3_7=~P3_7;
}
}
static void timer0_initialize(void)//中断初始化
{
EA=0;
timer0_tick=0;
TR0=0;
TMOD=0x01;
TL0=0xe9;
TH0=0xff;
PT0=0;
ET0=1;
TR0=1;
EA=1;
}
void main(void)
{
timer0_initialize();
while(1);
}
可以利用高速计数器直接读取。
例如:将两相旋转编码器的A、B分别接X0、X1;
LD
M8000
OUT
C251
K10000
DMOV
C251
K8Y0
这样就可将脉冲数直接从Y0~Y37中显示出来。
打开VC60软件,执行文件→新建 *** 作,在左侧选择MFC AppWizard(exe),在右侧输入工程名,如hello,在右下方选择工程的存储路径,确认之后点击确定。
接下来进入MFC向导,选择基本对话框,其余默认即可,点击完成。
将“TODO:在这里设置对话框控制”后的内容修改为自己想要出现的文字内容即可出现最简单的对话框内容。
选中“TODO:在这里设置对话框控制”,点击右键,选择属性,对该静态文本框标题进行修改,例如修改为“hello world!”,设置完成后关闭对话框即可。
点击上方菜单栏红色叹号,或者按Ctrl+F5,确定运行,即可出现我们编辑的最简单的MFC对话框。
x=[];
t = (-2:001:2);
for j=(-2:001:2);
if j==0
x=[x,1];
else x=[x,0];
end
end
plot(t,x);
将旋转编码器的A相或B相的输出信号连接至X0~X5,(使用不同的计数器,接不同的输入点)然后用高速计数器对编码器的脉冲信号进行计数。以C235为例,只进行加计数,脉冲编码器的A相或B相需要接入PLC的X0,当设备带动编码器旋转,则X0就有信号输入,C235就会进行计数。使用很简单。
以上就是关于用51单片机产生38kHz脉冲的程序怎么写全部的内容,包括:用51单片机产生38kHz脉冲的程序怎么写、请问三菱plc读脉冲数的程序怎么写、如何使用VC(MFC)编写最简单的脉冲计数的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)