1. 程式人生 > >51微控制器使用槽型光耦測速模組

51微控制器使用槽型光耦測速模組

目錄

【測速模組】

模組資料

接線

使用說明

【微控制器程式】


【測速模組】

模組資料

我使用的是窄體的槽型光耦測速模組,如下圖所示:

接線

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++;		
}