51单片机使用槽型光耦测速模块

版权声明:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Xiaomo_haa/article/details/84954164

目录

【测速模块】

模块资料

接线

使用说明

【单片机程序】


【测速模块】

模块资料

我使用的是窄体的槽型光耦测速模块,如下图所示:

接线

1、VCC接电源正极3.3V-5V

2、GND接电源负极

3、D0(TTL开关信号输出)接单片机外部中断

4、A0无效

使用说明

1、模块槽中无遮挡时,接收管导通,模块DO输出低电平,遮挡时,DO输出高电平;

2、DO输出接口可以与单片机10口直接相连,检测传感器是否有遮档,如用电机码盘则可检测电机的转速。

3、模块DO可与继电器相连,组成限位开关等功能,也可以与有源蜂鸣器模块相连,组成报警器。


【单片机程序】

我使用的是传统的89C51单片机,外部晶振为11.0592M。以下程序仅提供思路,省去无关的定义内容等等,仅供参考。

/*定时器0中断号1*/
void Time0() interrupt 1
{	
	TH0 = 0xDC;					//11.0592M晶振下装入10ms初值
	TL0 = 0x00;
	time++;
	
	if(time == 100)
	{
		Wheel_Speed = ( Angular_N / 20 ) * 2 * 3.5 * 3.14 ;	//获取1s内中断计数的值num,并进行数值处理  (中断数值/20*直径*3.14为1s内移动距离)
		time = 0;	
		Angular_N = 0;
	}
}

/*外部中断0初始化*/
void Int0Init()
{
	IT0 = 1;				//跳变沿出发方式(下降沿)
	EX0 = 1;				//打开INT0的中断允许
	EA = 1;					//打开总中断	
}

/*外部中断0的中断函数*/
void Int0()	interrupt 0		
{
	Angular_N++;		
}

猜你喜欢

转载自blog.csdn.net/Xiaomo_haa/article/details/84954164