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