基于89C55和GAL16V8,MC1413的步進(jìn)電機(jī)驅(qū)動器的設(shè)計(06-100)
軟件設(shè)計
本文引用地址:http://www.ex-cimer.com/article/81278.htm通常,步進(jìn)電機(jī)的脈沖控制是由邏輯電路實現(xiàn)的。在計算機(jī)控制的系統(tǒng)中,也可以通過編制程序,由擴(kuò)展I/O口輸出脈沖來決定電機(jī)的運(yùn)行方式、方向及轉(zhuǎn)速。這種方式電路簡單、控制靈活,但占用CPU的時間過多,每次驅(qū)動電機(jī)時,PC機(jī)都得被占用。GAL器件有多種型號,根據(jù)設(shè)計的需要,同時從經(jīng)濟(jì)的角度考慮,選用GALl6V8來實現(xiàn)四相混和式步進(jìn)電機(jī)進(jìn)行控制。使用ABEL語言編程,原碼如下:
module motor
title
Operation of the simulator on devices with
motor
DATA I/O Corp. 21 10 2002
FB1 device 'P16V8R';
D1,D2,D3,D4 pin 2,3,4,5;
F1,F2,F3,F4,F5,F6,F7,F8 pin
19,18,17,16,15,14,13,12;
equations
F8 = D1&D2&D3&D4;
F7 = D1&D2&D3&!D4;
F6 = D1&D2&!D3&D4;
F5 = D1&D2&!D3&!D4;
F4 = D1&!D2&D3&D4;
F3 = D1&!D2&D3&!D4;
F2 = D1&!D2&!D3&D4;
F1 = D1&!D2&!D3&!D4;
end motor。
設(shè)置軟件陷阱
當(dāng)程序進(jìn)入到非程序區(qū),只要在非程序區(qū)設(shè)置攔截措施,使程序進(jìn)入陷阱,然后強(qiáng)迫程序回到初始狀態(tài)。如對CPU的RST指令對應(yīng)的字節(jié)碼為0FFH,如果不用的程序存儲區(qū)預(yù)先寫入0FFH,則當(dāng)程序因干擾而“飛”到該區(qū)域執(zhí)行代碼時,就相當(dāng)于執(zhí)行1條RST指令,從而達(dá)到系統(tǒng)復(fù)位的目的。
程序流程圖如圖2。
評論