唐中燕
TANG Zhong-yan
(華北電力大學 河北 保定 071003)
(North China Electric Power University,Baoding Hebei,071003)
基于單片機的凸輪控制器軟硬件實現
The Realization of the Cam Controller Base on Micro-computer
唐中燕
TANG Zhong-yan
(華北電力大學 河北 保定 071003)
(North China Electric Power University,Baoding Hebei,071003)
基于單片機的凸輪控制器是通過軟硬件結合實現的。根據送入單片機的轉軸角位置信號以及事先設置好的凸輪數據參數,控制器即可產生相應凸輪開關狀態信號。實現方法方便、靈活。
單片機;凸輪;流程圖;匯編語言
凸輪主要用于檢測機械設備某一個軸的角位置,當到達不同的角位置時發出不同的開關狀態信號。例如按照工藝要求,某凸輪的功能為:每周包含 4 個區間(00~600、610~1200、1210~3000、3010~3600), 其中 1、3 區間為 ON 狀態,2、4 區間為OFF狀態。當改變工藝過程時,需重新制作機械凸輪,十分不方便。利用單片機的記憶功能及軟硬件可方便的設計一個凸輪控制器,而構成一個或多個“電子凸輪”。“電子凸輪”的工藝改變十分靈活,滿足了需經常改變工藝過程的實際需要。
為了方便靈活的改變凸輪工藝,可利用單片機存儲數據的功能,事先按照工藝要求將凸輪數據參數設置在存儲器中,通過改變所存儲的數據參數就可改變凸輪工藝。本設計可實現最多8個電子凸輪,若每個電子凸輪最多可以有8個區間。則對應數據參數表如表1~表3所示。
①電子凸輪區間數表:共8個數據,每個數據占1字節,對應一個電子凸輪,表示其區間數。只給出了0#凸輪數據;
②電子凸輪區間設置表:共8組數據,每組數據對應一個電子凸輪,每組數據中有8個數據,每個數據2字節,共占16字節,給出了該電子凸輪的各區間角度。只給出了0#凸輪的數據;
③電子凸輪區間狀態表:共8組數據,每組數據占1字節,對應一個電子凸輪,給出了該電子凸輪在各區間要輸出的開關狀態信號。只給出了0#凸輪的數據。

表1 電子凸輪區間數表

表2 電子凸輪區間設置表

表3 電子凸輪區間狀態表

圖1 硬件電路原理圖
以這些表格為基礎,配以相應的軟硬件就可方便、快捷地實現8個電子凸輪的功能。
本設計的硬件電路原理圖如圖1所示。
利用8個光電編碼器可檢測8個轉軸的角位置。轉軸每轉1°編碼器輸出一個脈沖,單片機對該脈沖進行計數即可得到轉軸的角度。編碼器輸出脈沖作為D觸發器的控制脈沖,8個D觸發器的輸出端經OC門線或在一起,接到單片機外部中斷0(/INT0)引腳。當8個光電編碼器中的任一個輸出脈沖信號時,會使相應 D觸發器輸出為“1”,經反相后為“0”,引起/INT0的中斷觸發,單片機中斷響應后轉去執行中斷服務程序。在中斷服務程序中首先要進行中斷源的查詢,即通過查詢P1口線的狀態判斷是哪個編碼器發出的脈沖,然后進行對應脈沖的計數、計算對應轉軸的轉動角度。因為中斷采用的是電平觸發方式,所以還要從P2口相應引腳輸出負脈沖,以撤銷中斷申請。P0口用于輸出8個電子凸輪所發出的開關狀態信號。
單片機得到每個轉軸的實際角度后,再判斷該角度處在相應電子凸輪的哪個區間,然后輸出對應的開關狀態信號。上述控制過程在中斷服務程序中進行。
8個電子凸輪要輸出的開關狀態信號共8個。在RAM中設一個輸出狀態信號的緩沖區,為1個單元,稱為輸出控制字。當經過以上數據處理、判斷,得到需輸出的區間狀態后,先將它寫入輸出控制字中的對應位,再將該字中數據送到對應輸出接口P0實現輸出。
主程序及中斷服務程序如下:






該凸輪控制器設計的核心方法是:事先設置好電子凸輪數據參數,再利用單片機查表指令取出相應數據來實現凸輪功能。當需要改變凸輪設置時,只需將新數據再寫到存儲器中即可,實現非常靈活。
[1]丁元杰.單片微機原理及應用[J].北京:機械工業出版社,1999.
王洪澤]