摘 要:本文運(yùn)用AT89C51單片機(jī)、鍵盤和LED專用智能控制芯片HD7279A、步進(jìn)電機(jī)環(huán)形分配器L297、步進(jìn)電機(jī)驅(qū)動(dòng)器L298N構(gòu)成了一套步進(jìn)電機(jī)轉(zhuǎn)臺(tái)控制系統(tǒng),實(shí)現(xiàn)單片機(jī)識(shí)別并輸出顯示鍵盤輸入的數(shù)據(jù)信息(轉(zhuǎn)角)并產(chǎn)生連續(xù)脈沖控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng),進(jìn)而帶動(dòng)轉(zhuǎn)動(dòng)臺(tái)轉(zhuǎn)動(dòng)的任務(wù)。
關(guān)鍵詞:單片機(jī),步進(jìn)電機(jī)驅(qū)動(dòng)
一、前言
在進(jìn)行熱對(duì)流式加速度傳感器溫度特性研究中,需將傳感器系統(tǒng)放置在一個(gè)可在縱向進(jìn)行三百六十度旋轉(zhuǎn)的旋轉(zhuǎn)臺(tái)上,并將旋轉(zhuǎn)臺(tái)放入恒溫試驗(yàn)箱中,利用當(dāng)旋轉(zhuǎn)臺(tái)旋轉(zhuǎn)時(shí)傳感器敏感面方向感受的重力加速度發(fā)生變化這一現(xiàn)象,檢測傳感器的靈敏度的變化。為使測量數(shù)據(jù)可靠,控制系統(tǒng)采用步進(jìn)電動(dòng)機(jī)作為驅(qū)動(dòng),通過控制轉(zhuǎn)動(dòng)的步數(shù)(角度),使轉(zhuǎn)動(dòng)臺(tái)轉(zhuǎn)過一個(gè)角度,待傳感器的輸出數(shù)據(jù)穩(wěn)定以后即可記錄有關(guān)數(shù)據(jù)。為實(shí)現(xiàn)這一功能,研制了用單片機(jī)控制的步進(jìn)電機(jī)轉(zhuǎn)臺(tái)。
二、系統(tǒng)的總體設(shè)計(jì)
步進(jìn)電動(dòng)機(jī)工作,需要步進(jìn)電機(jī)線圈的勵(lì)磁信號(hào),還需要功率放大器根據(jù)該信號(hào)產(chǎn)生驅(qū)動(dòng)電流。專門為步進(jìn)電機(jī)設(shè)計(jì)的環(huán)形分配器和功率驅(qū)動(dòng)器可以實(shí)現(xiàn)這種功能。
通過鍵盤輸入控制信息,包括電機(jī)的轉(zhuǎn)向、轉(zhuǎn)角等。單片機(jī)接收這些信息并產(chǎn)生相應(yīng)的控制信號(hào)傳送給電機(jī)控制器;同時(shí)單片機(jī)還要控制多位數(shù)碼管顯示鍵盤所輸入的信息和實(shí)際轉(zhuǎn)動(dòng)的情況。
根據(jù)實(shí)際需要,人機(jī)交互通過4×4行列式鍵盤和一對(duì)4聯(lián)LED數(shù)碼管來實(shí)現(xiàn);按鍵輸入與LED顯示器由控制芯片HD7279A來控制;單片機(jī)選用AT89C51 Flash單片機(jī);由于測量范圍并不要求傾斜角度變化的分度非常細(xì)密,選用成本較低的兩相步進(jìn)電動(dòng)機(jī)42BYG121,其步進(jìn)角為1.8度,通過半步驅(qū)動(dòng)方式進(jìn)行細(xì)分可獲得0.9度的步進(jìn)角;環(huán)形分配器和電機(jī)驅(qū)動(dòng)器選用L297和L298N芯片,由L297將單片機(jī)給出的連續(xù)脈沖轉(zhuǎn)換成步進(jìn)電機(jī)所要求的相繞組脈沖序列;再由L298N對(duì)相脈沖信號(hào)進(jìn)行放大,驅(qū)動(dòng)步進(jìn)電機(jī)轉(zhuǎn)動(dòng)。
最終系統(tǒng)總體方案如圖1所示。
圖1 控制系統(tǒng)結(jié)構(gòu)框圖
系統(tǒng)的工作過程如下:系統(tǒng)利用鍵盤輸入數(shù)值,通過HD7279A芯片將輸入的按鍵鍵值傳送到單片機(jī),單片機(jī)識(shí)別鍵值所代表的是數(shù)據(jù)還是功能鍵,或者傳送數(shù)據(jù)經(jīng)過HD7279A驅(qū)動(dòng)LED數(shù)碼管顯示,或者根據(jù)輸入數(shù)值確定步進(jìn)電機(jī)的轉(zhuǎn)角,輸出一定的脈沖信號(hào),并由L297轉(zhuǎn)換成步進(jìn)電動(dòng)機(jī)各相的相脈沖,經(jīng)過L298N放大驅(qū)動(dòng)步進(jìn)電動(dòng)機(jī),由步進(jìn)電動(dòng)機(jī)帶動(dòng)機(jī)械部分轉(zhuǎn)動(dòng)。
三、主要接口與編程實(shí)現(xiàn)
數(shù)據(jù)輸入與顯示接口芯片采用HD7279A,它是一個(gè)具有串行接口的,可同時(shí)驅(qū)動(dòng)8位共陰式LED數(shù)碼管的智能顯示驅(qū)動(dòng)芯片,該芯片同時(shí)還可連接多達(dá)64鍵的鍵盤矩陣,單片即可完成LED顯示、鍵盤接口的全部功能。HD7279A內(nèi)含譯碼器,可直接接受BCD碼或16進(jìn)制碼,并同時(shí)具有2種譯碼方式,此外還具有多種控制指令,如消隱、閃爍、左移、右移、段尋址等。
HD7279A的控制指令分為二大類:純指令和帶有數(shù)據(jù)的指令。純指令包括測試、移位顯示、復(fù)位等,共計(jì)六條,對(duì)應(yīng)的控制碼是從0xBF到0xA4;帶數(shù)據(jù)的指令包括顯示數(shù)據(jù)、消隱控制、讀出鍵碼等,指令格式是控制字+數(shù)據(jù)。
用C51編程,實(shí)現(xiàn)對(duì)HD7279A發(fā)送一個(gè)字節(jié)的指令或數(shù)據(jù)的例程如下:
void send_byte( unsigned char out_byte){
unsigned char i;
cs=0;
long_delay();
for (i=0;i<8;i++){
if (out_byte&0x80)
dat=1;
else
dat=0;
clk=1;
short_delay();
clk=0;
short_delay();
out_byte=out_byte*2;
}
dat=0;
}
發(fā)送帶數(shù)據(jù)的指令可利用下面的例程來實(shí)現(xiàn):
void write7279(unsigned char cmd, unsigned char dta){
send_byte (cmd);
send_byte (dta);
}
從HD7279A讀出數(shù)據(jù)的例程如下:
unsigned char read7279(unsigned char command){
send_byte(command);
return(receive_byte());
}
定義有關(guān)的命令字如下:
#define CMD_RESET 0xa4
#define DECODE0 0x80
#define DECODE1 0xc8
#define CMD_READ 0x15
#define UNDECODE 0x90
#define BLINKCTL 0x88
……
要控制與HD7279A連接的LED,利用下面的程序行即可實(shí)現(xiàn):
send_byte(CMD_RESET); //復(fù)位HD7279A
write7279(BLINKCTL,0xf8); //第1、2、3 位設(shè)置為閃爍顯示
write7279(UNDECODE,0X08); //在第1位顯示下劃線
write7279(DECODE0,value); //按0方式解碼顯示數(shù)字
write7279(DECODE1,value); //按1方式解碼顯示數(shù)字
環(huán)形分配器L297的核心是脈沖分配器,它可以產(chǎn)生三種相序信號(hào),對(duì)應(yīng)于三種不同的工作方式:半步方式,一相激勵(lì)方式,兩相激勵(lì)方式。它接收來自控制器的信號(hào)有: CW/ CCW 正/反轉(zhuǎn)(17腳),HALF/ FULL 半步/基本步距(19腳),STEP 步進(jìn)脈沖(18腳)。為了在現(xiàn)有硬件基礎(chǔ)上達(dá)到最佳的使用效果,步進(jìn)電機(jī)按半步方式運(yùn)轉(zhuǎn),此時(shí)L297的工作時(shí)序如圖2所示:


系統(tǒng)選用的功率放大器L298N,是一種H型雙極性驅(qū)動(dòng)器,D1~D4四個(gè)二極管組成橋式續(xù)流回路。使用上述H橋功放,每相繞組必須用一個(gè)H橋。L298N為雙H橋高電壓大電流功率集成電路,可用來驅(qū)動(dòng)繼電器、線圈、直流電動(dòng)機(jī)和步進(jìn)電動(dòng)機(jī)等電感性負(fù)載。L297步進(jìn)電機(jī)控制器與L298N雙H橋驅(qū)動(dòng)器組成典型的集成步進(jìn)電機(jī)微控制器。其連接電路如圖3所示。其中8個(gè)二極管D1~D8為與L298N芯片及步進(jìn)電動(dòng)機(jī)連接,組成H橋的續(xù)流電路。
四、系統(tǒng)控制的實(shí)現(xiàn)
圖4
為了方便控制與編程,按鍵的響應(yīng)方式采用中斷方式,在有按鍵按下時(shí)HD7279將發(fā)出一個(gè)低電平信號(hào)觸發(fā)中斷,在中斷處理程序中完成對(duì)按鍵的響應(yīng),給出相應(yīng)的顯示和控制。程序框圖如右圖示。
按上述方案實(shí)現(xiàn)的步進(jìn)電機(jī)轉(zhuǎn)臺(tái)控制器,能夠方便地輸入轉(zhuǎn)動(dòng)角度和轉(zhuǎn)動(dòng)方向,在轉(zhuǎn)動(dòng)的同時(shí)也能準(zhǔn)確指示轉(zhuǎn)過角度和方向,取得了良好的效果。