唐中燕
TANG Zhong-yan
(華北電力大學(xué) 河北 保定 071003)
(North China Electric Power University,Baoding Hebei,071003)
基于單片機的凸輪控制器軟硬件實現(xiàn)
The Realization of the Cam Controller Base on Micro-computer
唐中燕
TANG Zhong-yan
(華北電力大學(xué) 河北 保定 071003)
(North China Electric Power University,Baoding Hebei,071003)
基于單片機的凸輪控制器是通過軟硬件結(jié)合實現(xiàn)的。根據(jù)送入單片機的轉(zhuǎn)軸角位置信號以及事先設(shè)置好的凸輪數(shù)據(jù)參數(shù),控制器即可產(chǎn)生相應(yīng)凸輪開關(guān)狀態(tài)信號。實現(xiàn)方法方便、靈活。
單片機;凸輪;流程圖;匯編語言
凸輪主要用于檢測機械設(shè)備某一個軸的角位置,當(dāng)?shù)竭_不同的角位置時發(fā)出不同的開關(guān)狀態(tài)信號。例如按照工藝要求,某凸輪的功能為:每周包含 4 個區(qū)間(00~600、610~1200、1210~3000、3010~3600), 其中 1、3 區(qū)間為 ON 狀態(tài),2、4 區(qū)間為OFF狀態(tài)。當(dāng)改變工藝過程時,需重新制作機械凸輪,十分不方便。利用單片機的記憶功能及軟硬件可方便的設(shè)計一個凸輪控制器,而構(gòu)成一個或多個“電子凸輪”?!半娮油馆啞钡墓に嚫淖兪朱`活,滿足了需經(jīng)常改變工藝過程的實際需要。
為了方便靈活的改變凸輪工藝,可利用單片機存儲數(shù)據(jù)的功能,事先按照工藝要求將凸輪數(shù)據(jù)參數(shù)設(shè)置在存儲器中,通過改變所存儲的數(shù)據(jù)參數(shù)就可改變凸輪工藝。本設(shè)計可實現(xiàn)最多8個電子凸輪,若每個電子凸輪最多可以有8個區(qū)間。則對應(yīng)數(shù)據(jù)參數(shù)表如表1~表3所示。
①電子凸輪區(qū)間數(shù)表:共8個數(shù)據(jù),每個數(shù)據(jù)占1字節(jié),對應(yīng)一個電子凸輪,表示其區(qū)間數(shù)。只給出了0#凸輪數(shù)據(jù);
②電子凸輪區(qū)間設(shè)置表:共8組數(shù)據(jù),每組數(shù)據(jù)對應(yīng)一個電子凸輪,每組數(shù)據(jù)中有8個數(shù)據(jù),每個數(shù)據(jù)2字節(jié),共占16字節(jié),給出了該電子凸輪的各區(qū)間角度。只給出了0#凸輪的數(shù)據(jù);
③電子凸輪區(qū)間狀態(tài)表:共8組數(shù)據(jù),每組數(shù)據(jù)占1字節(jié),對應(yīng)一個電子凸輪,給出了該電子凸輪在各區(qū)間要輸出的開關(guān)狀態(tài)信號。只給出了0#凸輪的數(shù)據(jù)。
表1 電子凸輪區(qū)間數(shù)表
表2 電子凸輪區(qū)間設(shè)置表
表3 電子凸輪區(qū)間狀態(tài)表
圖1 硬件電路原理圖
以這些表格為基礎(chǔ),配以相應(yīng)的軟硬件就可方便、快捷地實現(xiàn)8個電子凸輪的功能。
本設(shè)計的硬件電路原理圖如圖1所示。
利用8個光電編碼器可檢測8個轉(zhuǎn)軸的角位置。轉(zhuǎn)軸每轉(zhuǎn)1°編碼器輸出一個脈沖,單片機對該脈沖進行計數(shù)即可得到轉(zhuǎn)軸的角度。編碼器輸出脈沖作為D觸發(fā)器的控制脈沖,8個D觸發(fā)器的輸出端經(jīng)OC門線或在一起,接到單片機外部中斷0(/INT0)引腳。當(dāng)8個光電編碼器中的任一個輸出脈沖信號時,會使相應(yīng) D觸發(fā)器輸出為“1”,經(jīng)反相后為“0”,引起/INT0的中斷觸發(fā),單片機中斷響應(yīng)后轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。在中斷服務(wù)程序中首先要進行中斷源的查詢,即通過查詢P1口線的狀態(tài)判斷是哪個編碼器發(fā)出的脈沖,然后進行對應(yīng)脈沖的計數(shù)、計算對應(yīng)轉(zhuǎn)軸的轉(zhuǎn)動角度。因為中斷采用的是電平觸發(fā)方式,所以還要從P2口相應(yīng)引腳輸出負脈沖,以撤銷中斷申請。P0口用于輸出8個電子凸輪所發(fā)出的開關(guān)狀態(tài)信號。
單片機得到每個轉(zhuǎn)軸的實際角度后,再判斷該角度處在相應(yīng)電子凸輪的哪個區(qū)間,然后輸出對應(yīng)的開關(guān)狀態(tài)信號。上述控制過程在中斷服務(wù)程序中進行。
8個電子凸輪要輸出的開關(guān)狀態(tài)信號共8個。在RAM中設(shè)一個輸出狀態(tài)信號的緩沖區(qū),為1個單元,稱為輸出控制字。當(dāng)經(jīng)過以上數(shù)據(jù)處理、判斷,得到需輸出的區(qū)間狀態(tài)后,先將它寫入輸出控制字中的對應(yīng)位,再將該字中數(shù)據(jù)送到對應(yīng)輸出接口P0實現(xiàn)輸出。
主程序及中斷服務(wù)程序如下:
該凸輪控制器設(shè)計的核心方法是:事先設(shè)置好電子凸輪數(shù)據(jù)參數(shù),再利用單片機查表指令取出相應(yīng)數(shù)據(jù)來實現(xiàn)凸輪功能。當(dāng)需要改變凸輪設(shè)置時,只需將新數(shù)據(jù)再寫到存儲器中即可,實現(xiàn)非常靈活。
[1]丁元杰.單片微機原理及應(yīng)用[J].北京:機械工業(yè)出版社,1999.
王洪澤]