請輸入產品關鍵字:
郵編:200001
聯系人:李經理
電話:13003206617
傳真:021-37653818
手機:13003206617
售后電話:19901762858
留言:發送留言
個性化:www.shyzgy.com
網址:www.shyzgy.com/
商鋪:http://www.om600.com/st171398/
意爾創ELTRA增量編碼器與單片機的接口
點擊次數:445 發布時間:2022-4-29
用51單片機實現的具體方法:將A信號連接至外部中斷INTO,冉將其反向后連接至外部中斷INT1將B信號作為方向信號連接至某一輸入端口(P30),這樣在信號A的上升沿和與下降沿都會產生中斷。由
于在不同轉向時,信號A的下降沿所對應的方向信號電平正好相反,單片機在中斷服務程序中先檢測B信號的狀態,根據不同的狀態進行不同的處理(計數值增加還是減小),這樣能夠有效的防止反轉產生的誤差,從而實現精確計數,相應的C程序段如下;
sbitDIR=P3.0;
intcnt; /計數器數值變量
void IntOISR(void)interrupt 0using 1{if(DIR)cnt++; else cnt--;}
void Int1ISR(void)interrupt 2 using2{if(DIR)cnt--; else cnt++;)
上述方法雖然能夠實現精確計數,但需要占用兩個外部中斷源,在一些應用中受到限制。目前的新型
單片機都具有增強的功能,如輸入捕捉,輸入比較等;利用輸入捕捉功能能夠更容易的實現編碼器的接口。一個可編程計數器陣列模塊PCA,有一個專用的計數器和5個工作通道所組成。5個通道可以工作于4種方式之一:軟件定時器方式,輸入捕捉方式,輸出比較方式和PWM方式。輸入捕捉方式可以在脈沖的上升
沿或者下降沿捕捉,并同時產生中斷請求。利用這個功能可以很容易的實現編碼器的信號檢測與處理。
為了消除反轉誤差,同時也增加了分辨率,將PCA設置成上升沿和下降沿捕捉方式。在PCA中新服
務程序中,首先檢測信號A的狀態,以判別其是上升沿中斷還是下降沿中斷。無論是上升沿還是下降沿。
信號B都有兩種可能(正傳和反轉)。因此像前面一樣,還需要再根據不同的情況進行相反的處理。具體的 C程序如下:采用PCA通道4
sbitDIR=P3.0;
sbitPLS=P1.6;//PCA輸入通道4
int cnt; //計數器數值變量
void PcaISR(void)interrupt6using2
if(PLS){
if(DIR)cnt--; else cnt++;
Else{
if(DIR)cnt++else cnt--}}