51微控制器使用槽型光耦測速模組
阿新 • • 發佈:2019-01-07
目錄
【測速模組】
模組資料
我使用的是窄體的槽型光耦測速模組,如下圖所示:
接線
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++; }