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