TR編碼器的幾種計數方法 |
點(diǎn)擊次數:2184 更新時(shí)間:2017-05-26 |
TR編碼器的使用在現在已經(jīng)普及,其使用也非常的廣泛,zui大的用途就是在控制系統中提高控制的精度,能夠更為準確的控制對象的位置。編碼器輸出波形可以看出,編碼器正轉時(shí)A相超前B相90度.在A(yíng)相脈沖的下降沿處,B相為高電平;而在編碼器反轉時(shí),A相滯后B相90度,在A(yíng)相脈沖的下降沿處,B相輸出為低電平。這樣,編碼器旋轉時(shí)通過(guò)判斷B相電平的高低就可以判斷編碼器的旋轉方向[2]。 用軟件實(shí)現脈沖的鑒相、計數 編碼器輸出的A向脈沖接到單片機的外部中斷INT0,B向脈沖接到I/O端口P1.0。當系統工作時(shí),首先要把INT0設置成下降沿觸發(fā),并開(kāi)相應中斷。當有有效脈沖觸發(fā)中斷時(shí),進(jìn)行中斷處理程序,判別B脈沖是高電平還是低電平,若是高電平則編碼器正轉,加1計數;若是低電平則編碼器反轉,減1計數。 用硬件實(shí)現脈沖的鑒相、計數 硬件計數在執行速度上有軟件計數不可比擬的優(yōu)勢,通常采用多個(gè)可預置4位雙時(shí)鐘加減計數器74LS193級聯(lián)組成的加減計數電路。P0-P3為計數器的4位預置數據端,與數據輸入鎖存器相接;QA-QD為計數器的4位數據輸出端,與數據輸出緩沖器相接;MR為清零端與上電清零脈沖相接;PL為預置允許端,由譯碼控制電路觸發(fā);CU為加脈沖輸入端,CD為減脈沖輸入端;TCU為進(jìn)位輸出端,TCD為借位輸出端。 當CU和CD中一個(gè)輸入脈沖時(shí),另一個(gè)必須處于高電平,才能進(jìn)行計數工作。而從編碼器直接輸出的A、B兩路脈沖不符合要求,不能直接接到計數器的輸入端。但我們可以利用這兩路脈沖之間的相位關(guān)系對其進(jìn)行鑒相后再計數。下圖給出了光電編碼器實(shí)際使用的鑒相與雙向計數電路,鑒相電路用1個(gè)D觸發(fā)器和2個(gè)與非門(mén)組成,計數電路用3片74LS193組成。 當光電編碼器順時(shí)針旋轉時(shí),A相超前B相90°,D觸發(fā)器輸出/Q(W1)為高電平,Q(W2)為低電平,上面與非門(mén)打開(kāi),計數脈沖通過(guò)(W3),送至雙向計數器74LS193的加脈沖輸入端CU,進(jìn)行加法計數;此時(shí),下面與非門(mén)關(guān)閉,其輸出為高電平(W4)。當光電編碼器逆時(shí)針旋轉時(shí),A相比B相延遲90°,D觸發(fā)器輸出/Q(W1)為低電平,Q(W2)為高電平,上面與非門(mén)關(guān)閉,其輸出為高電平(W3);此時(shí),下面與非門(mén)打開(kāi),計數脈沖通過(guò)(波W4),送至雙向計數器74LS193的減脈沖輸入端CD,進(jìn)行減法計數[3]。 利用單片機內部計數器實(shí)現可逆計數 對以上兩種計數方法進(jìn)行分析可知,用純軟件計數雖然電路簡(jiǎn)單,但是計數速度慢,難以滿(mǎn)足實(shí)時(shí)性要求,而且容易出錯,用外接加減計數芯片的方法,雖然速度快,但硬件電路復雜,由上圖可以看出要做一個(gè)12位計數器需要5個(gè)外圍芯片,成本也較高。那么我們能否用單片機內部的計數器來(lái)實(shí)現加減計數呢。我們知道,8051片內有兩個(gè)16位的定時(shí)器:定時(shí)器0和定時(shí)器1,8052還有一個(gè)定時(shí)器2,這三個(gè)定時(shí)器都可以作為計數器來(lái)用。但8051內部的計數器是加1計數器,所以不能直接應用,必須經(jīng)過(guò)適當的軟件編程,來(lái)實(shí)現其“減”計數功能。 上一篇:TR編碼器的工作原理 下一篇:TR編碼器知識擴展篇 |