DZ171用單片機(jī)控制直流電機(jī)
DZ171用單片機(jī)控制直流電機(jī),dz171,單片機(jī),控制,節(jié)制,直流電機(jī)
www.sfmcu.com www.sf-edu.cn 盛方單片機(jī)用單片機(jī)控制直流電機(jī)摘要本設(shè)計(jì)以 AT89C51 單片機(jī)為核心,以 4*4 矩陣鍵盤做為輸入達(dá)到控制直流電機(jī)的啟停、速度和方向,完成了基本要求和發(fā)揮部分的要求。在設(shè)計(jì)中,采用了 PWM 技術(shù)對電機(jī)進(jìn)行控制,通過對占空比的計(jì)算達(dá)到精確調(diào)速的目的。www.sfmcu.com www.sf-edu.cn 盛方單片機(jī)、、 設(shè)計(jì)方案比較與分析:1、電機(jī)調(diào)速控制模塊:方案一:采用電阻網(wǎng)絡(luò)或數(shù)字電位器調(diào)整電動機(jī)的分壓,從而達(dá)到調(diào)速的目的。但是電阻網(wǎng)絡(luò)只能 實(shí)現(xiàn)有級調(diào)速,而數(shù)字 電 阻的元器件價(jià)格比較昂貴。更主要的問題在于一般 電動機(jī)的電阻很小,但 電 流很大;分壓不僅會降低效率,而且實(shí)現(xiàn)很困難。方案二:采用繼電器對電動機(jī)的開或關(guān)進(jìn)行控制,通過開關(guān)的切換對小車的速度進(jìn)行調(diào)整。這個(gè)方案的優(yōu)點(diǎn)是電路較為簡單,缺點(diǎn)是繼電器的響應(yīng)時(shí)間慢、機(jī)械結(jié)構(gòu)易損壞、壽命較短、可靠性不高。方案三:采用由達(dá)林頓管組成的 H 型 PWM 電路。用單片機(jī)控制達(dá)林頓管使之工作在占空比可調(diào)的開關(guān)狀態(tài),精確調(diào)整電動機(jī)轉(zhuǎn)速。這種電路由于工作在管子的飽和截止模式下,效率非常高;H 型電 路保證了可以簡單地實(shí)現(xiàn)轉(zhuǎn)速和方向的控制;電子開關(guān)的速度很快,穩(wěn)定性也極佳,是一種廣泛采用的 PWM 調(diào)速技術(shù)。兼于方案三調(diào)速特性優(yōu)良、調(diào)整平滑、 調(diào)速范圍廣、過載能力大,因此本設(shè)計(jì)采用方案三。2、PWM 調(diào)速工作方式:方案一:雙極性工作制。雙極性工作制是在一個(gè)脈沖周期內(nèi),單片機(jī)兩控制口各輸出一個(gè)控制信號,兩信號高低電平相反,兩信號的高電平時(shí)差決定電動機(jī)的轉(zhuǎn)向和轉(zhuǎn)速。方案二:單極性工作制。單極性工作制是單片機(jī)控制口一端置低電平,另一端輸出 PWM 信號,兩口的 輸出切換和對 PWM 的占空比調(diào)節(jié)決定電動機(jī)的轉(zhuǎn)向和轉(zhuǎn)速。由于單極性工作制電壓波開中的交流成分比雙極性工作制的小,其電流的最大波動也比雙極性工作制的小,所以我們采用了單極性工作制。3、PWM 調(diào)脈寬方式:調(diào)脈寬的方式有三種:定頻調(diào)寬、定寬調(diào)頻和調(diào)寬調(diào)頻。我們采用了定頻調(diào)寬方式,因?yàn)椴捎眠@種方式,電動機(jī)在運(yùn)轉(zhuǎn)時(shí)比較穩(wěn) 定;并且在采用單片機(jī)產(chǎn)生 PWM 脈沖的軟件實(shí)現(xiàn)上比較方便。4、PWM 軟件實(shí)現(xiàn)方式:方案一:采用定時(shí)器做為脈寬控制的定時(shí)方式,這一方式產(chǎn)生的脈沖寬度極其精確,誤差只在幾個(gè) us。方案二:采用軟件延時(shí)方式,這一方式在精度上不及方案一,特別是在引入中斷后,將有一定的誤差。但是基于不占用定時(shí)器 資源,且 對于直流電機(jī),采用軟件延時(shí)所產(chǎn)生的定時(shí)誤差在允許范圍,故采用方案二。、、 系統(tǒng)分析與設(shè)計(jì):www.sfmcu.com www.sf-edu.cn 盛方單片機(jī)總體設(shè)計(jì)方案的硬件部分詳細(xì)框圖如圖一所示。鍵盤向單片機(jī)輸入相應(yīng)控制指令,由單片機(jī)通過 P2.0 與P2.1 其中一口 輸出與轉(zhuǎn)速相 應(yīng)的 PWM 脈沖,另一口輸出低電平,經(jīng)過信號放大、光耦傳遞,驅(qū)動 H 型橋式電動機(jī)控制電路,實(shí)現(xiàn)電動機(jī)轉(zhuǎn)向與轉(zhuǎn)速的控制。電動機(jī)的運(yùn)轉(zhuǎn)狀態(tài)通過 LED 顯示出來。電動機(jī)所處速度級以速度檔級數(shù)顯示。正轉(zhuǎn)時(shí)數(shù)字向右移動,反 轉(zhuǎn)時(shí)數(shù)字向左移動。移 動速度分 7 檔,快慢與電動機(jī)所處速度級快慢一一對應(yīng)。每次電動機(jī)啟動后開始計(jì)時(shí),停止時(shí) LED 顯示出本次運(yùn)轉(zhuǎn)所用時(shí)間, 時(shí)間精確到 0.1s。1、系統(tǒng)的硬件電路設(shè)計(jì)與分析電動機(jī) PWM 驅(qū)動模塊的電路設(shè)計(jì)與實(shí)現(xiàn)具體電路 見下圖二。本電路采用的是基于 PWM 原理的 H 型橋式驅(qū)動電路。圖二PWM 電路由四個(gè)大功率晶體管組成 H 型橋式電路構(gòu)成,四部分晶體管以對角組合分為兩組:根據(jù)兩個(gè)輸入端的高低電平?jīng)Q定晶體管的導(dǎo)通和截止。4 個(gè)二極管在電路中起防止晶體管產(chǎn)生反向電壓的保護(hù)作用。4 個(gè)電感在電路中是起防止電動機(jī)兩端的電流和晶體管上的電流過大的保護(hù)作用。在實(shí)驗(yàn)中的控制系統(tǒng)電壓統(tǒng)一為 5v 電源,因此若達(dá)林頓管基極由控制系統(tǒng)直接控制,則控制電壓最高為 5V,再加上三極管本身壓降,加到電動機(jī)兩端的電壓就只有 4V 左右,嚴(yán)重減弱了電動機(jī)的驅(qū)動力。基于上述考慮,我單片機(jī)P W M 電動機(jī)驅(qū)動L E D 顯 示4 * 4鍵盤圖一www.sfmcu.com www.sf-edu.cn 盛方單片機(jī)們運(yùn)用了 4N25 光耦集成塊,將控制部分與 電動機(jī)的驅(qū)動部分隔離開來。輸入端各通過一個(gè)三極管增大光耦的驅(qū)動電流;電動機(jī)驅(qū)動部分通過外接 12V電源驅(qū)動。這樣不僅增加了各系統(tǒng)模塊之間的隔離度,也使驅(qū)動電流得到了大大的增強(qiáng)。在電動機(jī)驅(qū)動信號方面,我們采用了占空比可調(diào)的周期矩形信號控制。脈沖頻率對電動機(jī)轉(zhuǎn)速有影響,脈沖頻率高連續(xù)性好,但帶帶負(fù)載能力差脈沖頻率低則反之。經(jīng)實(shí)驗(yàn)發(fā)現(xiàn),脈沖 頻率在 40Hz 以上,電動機(jī)轉(zhuǎn)動平穩(wěn),但加負(fù)載后,速度下降明顯,低速時(shí)甚至?xí)^D(zhuǎn);脈沖頻率在 10Hz 以下,電動機(jī)轉(zhuǎn)動有明顯跳動現(xiàn)象。實(shí)驗(yàn)證明,脈沖 頻率在 15Hz-30Hz 時(shí)效果最佳。而具體采用的頻率可根據(jù)個(gè)別電動機(jī)性能在此范圍內(nèi)調(diào)節(jié)。通過 N1 輸入信號,N2 輸入低電平與 N1 輸入低電平,N2 輸入信號分別實(shí)現(xiàn)電動 機(jī)的正轉(zhuǎn)與反轉(zhuǎn)功能。通過對信號占空比的調(diào)整來對車速進(jìn)行調(diào)節(jié)。速度分 7 檔控制,從高電平(第 6 檔)到低電平(第 0 檔)中間占空比以 20%逐極遞減。速度微調(diào)方面,可以通過對占空比以 1%的跨度逐增或逐減分別實(shí)現(xiàn)對速度的逐加或逐減。2、系統(tǒng)的軟件設(shè)計(jì)本系統(tǒng)編程部分工作采用 KELI-C51 語言完成,采用模 塊化的設(shè)計(jì)方法,與各子程序做為實(shí)現(xiàn)各部分功能和過程的入口,完成鍵盤輸入、按鍵識別和功能、PWM 脈寬控制和 LED 顯示等部分的設(shè)計(jì)。單片機(jī)資源分配如下表:P0 顯示模塊接口P1 鍵盤模塊接口外部中斷 0(P3.2) 鍵盤中斷P2.0/P2.1 PWM 電機(jī)驅(qū)動接口 內(nèi)部定時(shí)器 0 系統(tǒng)時(shí)鐘系統(tǒng)主函數(shù)流程如圖三:開 始初 始化中斷、變量啟動標(biāo)志= 1 ?P W M 脈沖產(chǎn)生子 程序循 環(huán) 移位顯示子程序P 2 . 0 = 0 ,P 2 . 1 = 0 ;NY圖三開始轉(zhuǎn)向 = ?P 2 . 0 = 0 ,P 2 . 1 = 1 ;P 2 . 0 = 1 ,P 2 . 1 = 0 ;延 時(shí) ( 高電平持 續(xù)時(shí)間)延 時(shí) ( 高電平持 續(xù)時(shí)間)延 時(shí) ( 低電平持 續(xù)時(shí)間)延 時(shí) ( 低電平持 續(xù)時(shí)間)P 2 . 1 = 0 P 2 . 0 = 0返 回正反圖四www.sfmcu.com www.sf-edu.cn 盛方單片機(jī)①PWM 脈寬控制:本設(shè)計(jì)中采用軟件延時(shí)方式對脈沖寬度進(jìn)行控制,延時(shí)程序函數(shù)如下:void delay(unsigned char dlylevel){int i=50*dlylevel;while(--i);}此函數(shù)為帶參數(shù) DLYLEVEL,約產(chǎn)生 DLYLEVEL*400us 的延時(shí),因此一個(gè)脈沖周期可以由高電平持續(xù)時(shí)間系數(shù) hlt 和低電平持續(xù)時(shí)間系數(shù) llt 組成,本設(shè)計(jì)中采用的脈沖頻率為 25Hz,可得 hlt+llt=100,占空比為 hlt/(hlt+llt),因此要 實(shí)現(xiàn)定頻調(diào)寬的調(diào)速方式,只需通過程序改變?nèi)肿兞?hlt,llt 的值,該子程序流程圖如圖四。②鍵盤中斷處 理子程序:采用中斷方式,按下鍵, 單 片機(jī) P3.2 腳產(chǎn)生一負(fù)跳沿,響應(yīng)該中斷處理程序,完成延時(shí)去抖動、鍵碼識別、按鍵功能執(zhí)行。調(diào)速檔、持續(xù)加/減速:調(diào)速檔通 過(0-6)共七檔固定占空比,即相應(yīng)檔位相應(yīng)改變 hlt,llt 的值,以實(shí)現(xiàn)調(diào)速檔位的實(shí)現(xiàn)。而要實(shí)現(xiàn)按住加/減速鍵不放時(shí)恒加或恒減速直到放開停止,就需在判斷是否松開該按鍵時(shí),每進(jìn)行一次增加 /減少 1%占空比(即 hlt++/--;llt--/++),其程序流程 圖如圖五。③顯示子程序:利用數(shù) 組 方式定義顯示緩存區(qū),緩存區(qū)有 8 位,分別存放各個(gè) LED 管要 顯示的值。顯示子程序?yàn)橐粠⒆映绦颍瑓?shù)為顯示緩存的數(shù)組名,通過 for(i=0;i<8;i++)方式 對每位加上位選碼,送到 P0 口并進(jìn)行一兩毫秒延時(shí)。該顯示子程序只對各個(gè) LED 管分別點(diǎn)亮一次,因此在運(yùn)行過程中,每秒執(zhí)行的次數(shù)不應(yīng)低于每秒 24 次。④定時(shí)中斷處 理程序:采用定 時(shí)方式 1,因?yàn)閱纹瑱C(jī)使用 12M 晶振,可產(chǎn)生最高約為 65.5ms 的延時(shí)。 對定時(shí)器置初值 3CB0H 可定時(shí) 50ms,即系統(tǒng)時(shí)鐘精度可達(dá) 0.05s。當(dāng) 50ms 定 時(shí)時(shí)間到,定時(shí)器溢出則響應(yīng)該定時(shí)中斷處理程序,完成對定時(shí)器的再次賦值,并 對全局變量 time 加 1,這樣,通過變量 time 可計(jì)算出系統(tǒng)的運(yùn)行時(shí)間。對于一個(gè)數(shù)的顯示,先應(yīng)轉(zhuǎn)成 BCD 碼,即取出每一個(gè)位,分別送入顯示緩存區(qū),對于轉(zhuǎn) BCD 的算法,應(yīng)對一個(gè)數(shù)循環(huán)除 10 取模,直至為 0,程序如下:do{dispbuff[bcd_p]=bechange%10; //dispbuff 為顯示緩沖區(qū)數(shù)組bcd_p++;}while(bechange/=10) //disp_p 為數(shù)組指針軟件設(shè)計(jì)中的特點(diǎn):1、對于電機(jī)的啟停,在 PWM 控制上使用漸變的脈寬調(diào)整,即開啟后由停止是否釋放按鍵?是否 加 / 減速鍵?加/ 減1 % 占空比調(diào)用P W M 脈沖產(chǎn) 生子程序YN調(diào)用顯示子程序圖五www.sfmcu.com www.sf-edu.cn 盛方單片機(jī)勻加速到默認(rèn)速度,停止則由于當(dāng)前速度逐漸降至零。這樣有利于保護(hù)電機(jī),如電機(jī)運(yùn)用于小車上,在啟動上采用此方式也可加大啟動速度,防止打滑。2、對于運(yùn)行時(shí)間的計(jì)算、顯示。配合 傳感器技術(shù)可用于計(jì)算距離,速度等重要的運(yùn)行數(shù)據(jù)。3、鍵盤處理上采用中斷方式,不必使程序?qū)︽I盤反復(fù)掃描,提高了程序的效率。、、 測試結(jié)果與分析:結(jié)束語本設(shè)計(jì)在硬件上采用了基于 PWM 技術(shù)的 H 型橋式驅(qū)動電路,解決了電機(jī)馬驅(qū)動的效率問題,在軟件上也采用較為合理的系統(tǒng)結(jié)構(gòu)及算法,提高了單片機(jī)的使用效率,且具有一定的防飛能力。但 該設(shè)計(jì)也有不足之處,主要是在關(guān)于速度的反饋上,無法提供較為直觀的速度表示方式,因此,有必要引入傳感器技術(shù)對速度進(jìn)行反饋,以 rpm 或 rps 表達(dá)當(dāng)前的轉(zhuǎn)速進(jìn)行顯示。www.sfmcu.com www.sf-edu.cn 盛方單片機(jī)用單片機(jī)控制直流電機(jī)摘要本設(shè)計(jì)以 AT89C51 單片機(jī)為核心,以 4*4 矩陣鍵盤做為輸入達(dá)到控制直流電機(jī)的啟停、速度和方向,完成了基本要求和發(fā)揮部分的要求。在設(shè)計(jì)中,采用了 PWM 技術(shù)對電機(jī)進(jìn)行控制,通過對占空比的計(jì)算達(dá)到精確調(diào)速的目的。www.sfmcu.com www.sf-edu.cn 盛方單片機(jī)、、 設(shè)計(jì)方案比較與分析:1、電機(jī)調(diào)速控制模塊:方案一:采用電阻網(wǎng)絡(luò)或數(shù)字電位器調(diào)整電動機(jī)的分壓,從而達(dá)到調(diào)速的目的。但是電阻網(wǎng)絡(luò)只能 實(shí)現(xiàn)有級調(diào)速,而數(shù)字 電 阻的元器件價(jià)格比較昂貴。更主要的問題在于一般 電動機(jī)的電阻很小,但 電 流很大;分壓不僅會降低效率,而且實(shí)現(xiàn)很困難。方案二:采用繼電器對電動機(jī)的開或關(guān)進(jìn)行控制,通過開關(guān)的切換對小車的速度進(jìn)行調(diào)整。這個(gè)方案的優(yōu)點(diǎn)是電路較為簡單,缺點(diǎn)是繼電器的響應(yīng)時(shí)間慢、機(jī)械結(jié)構(gòu)易損壞、壽命較短、可靠性不高。方案三:采用由達(dá)林頓管組成的 H 型 PWM 電路。用單片機(jī)控制達(dá)林頓管使之工作在占空比可調(diào)的開關(guān)狀態(tài),精確調(diào)整電動機(jī)轉(zhuǎn)速。這種電路由于工作在管子的飽和截止模式下,效率非常高;H 型電 路保證了可以簡單地實(shí)現(xiàn)轉(zhuǎn)速和方向的控制;電子開關(guān)的速度很快,穩(wěn)定性也極佳,是一種廣泛采用的 PWM 調(diào)速技術(shù)。兼于方案三調(diào)速特性優(yōu)良、調(diào)整平滑、 調(diào)速范圍廣、過載能力大,因此本設(shè)計(jì)采用方案三。2、PWM 調(diào)速工作方式:方案一:雙極性工作制。雙極性工作制是在一個(gè)脈沖周期內(nèi),單片機(jī)兩控制口各輸出一個(gè)控制信號,兩信號高低電平相反,兩信號的高電平時(shí)差決定電動機(jī)的轉(zhuǎn)向和轉(zhuǎn)速。方案二:單極性工作制。單極性工作制是單片機(jī)控制口一端置低電平,另一端輸出 PWM 信號,兩口的 輸出切換和對 PWM 的占空比調(diào)節(jié)決定電動機(jī)的轉(zhuǎn)向和轉(zhuǎn)速。由于單極性工作制電壓波開中的交流成分比雙極性工作制的小,其電流的最大波動也比雙極性工作制的小,所以我們采用了單極性工作制。3、PWM 調(diào)脈寬方式:調(diào)脈寬的方式有三種:定頻調(diào)寬、定寬調(diào)頻和調(diào)寬調(diào)頻。我們采用了定頻調(diào)寬方式,因?yàn)椴捎眠@種方式,電動機(jī)在運(yùn)轉(zhuǎn)時(shí)比較穩(wěn) 定;并且在采用單片機(jī)產(chǎn)生 PWM 脈沖的軟件實(shí)現(xiàn)上比較方便。4、PWM 軟件實(shí)現(xiàn)方式:方案一:采用定時(shí)器做為脈寬控制的定時(shí)方式,這一方式產(chǎn)生的脈沖寬度極其精確,誤差只在幾個(gè) us。方案二:采用軟件延時(shí)方式,這一方式在精度上不及方案一,特別是在引入中斷后,將有一定的誤差。但是基于不占用定時(shí)器 資源,且 對于直流電機(jī),采用軟件延時(shí)所產(chǎn)生的定時(shí)誤差在允許范圍,故采用方案二。、、 系統(tǒng)分析與設(shè)計(jì):www.sfmcu.com www.sf-edu.cn 盛方單片機(jī)總體設(shè)計(jì)方案的硬件部分詳細(xì)框圖如圖一所示。鍵盤向單片機(jī)輸入相應(yīng)控制指令,由單片機(jī)通過 P2.0 與P2.1 其中一口 輸出與轉(zhuǎn)速相 應(yīng)的 PWM 脈沖,另一口輸出低電平,經(jīng)過信號放大、光耦傳遞,驅(qū)動 H 型橋式電動機(jī)控制電路,實(shí)現(xiàn)電動機(jī)轉(zhuǎn)向與轉(zhuǎn)速的控制。電動機(jī)的運(yùn)轉(zhuǎn)狀態(tài)通過 LED 顯示出來。電動機(jī)所處速度級以速度檔級數(shù)顯示。正轉(zhuǎn)時(shí)數(shù)字向右移動,反 轉(zhuǎn)時(shí)數(shù)字向左移動。移 動速度分 7 檔,快慢與電動機(jī)所處速度級快慢一一對應(yīng)。每次電動機(jī)啟動后開始計(jì)時(shí),停止時(shí) LED 顯示出本次運(yùn)轉(zhuǎn)所用時(shí)間, 時(shí)間精確到 0.1s。1、系統(tǒng)的硬件電路設(shè)計(jì)與分析電動機(jī) PWM 驅(qū)動模塊的電路設(shè)計(jì)與實(shí)現(xiàn)具體電路 見下圖二。本電路采用的是基于 PWM 原理的 H 型橋式驅(qū)動電路。圖二PWM 電路由四個(gè)大功率晶體管組成 H 型橋式電路構(gòu)成,四部分晶體管以對角組合分為兩組:根據(jù)兩個(gè)輸入端的高低電平?jīng)Q定晶體管的導(dǎo)通和截止。4 個(gè)二極管在電路中起防止晶體管產(chǎn)生反向電壓的保護(hù)作用。4 個(gè)電感在電路中是起防止電動機(jī)兩端的電流和晶體管上的電流過大的保護(hù)作用。在實(shí)驗(yàn)中的控制系統(tǒng)電壓統(tǒng)一為 5v 電源,因此若達(dá)林頓管基極由控制系統(tǒng)直接控制,則控制電壓最高為 5V,再加上三極管本身壓降,加到電動機(jī)兩端的電壓就只有 4V 左右,嚴(yán)重減弱了電動機(jī)的驅(qū)動力?;谏鲜隹紤],我單片機(jī)P W M 電動機(jī)驅(qū)動L E D 顯 示4 * 4鍵盤圖一www.sfmcu.com www.sf-edu.cn 盛方單片機(jī)們運(yùn)用了 4N25 光耦集成塊,將控制部分與 電動機(jī)的驅(qū)動部分隔離開來。輸入端各通過一個(gè)三極管增大光耦的驅(qū)動電流;電動機(jī)驅(qū)動部分通過外接 12V電源驅(qū)動。這樣不僅增加了各系統(tǒng)模塊之間的隔離度,也使驅(qū)動電流得到了大大的增強(qiáng)。在電動機(jī)驅(qū)動信號方面,我們采用了占空比可調(diào)的周期矩形信號控制。脈沖頻率對電動機(jī)轉(zhuǎn)速有影響,脈沖頻率高連續(xù)性好,但帶帶負(fù)載能力差脈沖頻率低則反之。經(jīng)實(shí)驗(yàn)發(fā)現(xiàn),脈沖 頻率在 40Hz 以上,電動機(jī)轉(zhuǎn)動平穩(wěn),但加負(fù)載后,速度下降明顯,低速時(shí)甚至?xí)^D(zhuǎn);脈沖頻率在 10Hz 以下,電動機(jī)轉(zhuǎn)動有明顯跳動現(xiàn)象。實(shí)驗(yàn)證明,脈沖 頻率在 15Hz-30Hz 時(shí)效果最佳。而具體采用的頻率可根據(jù)個(gè)別電動機(jī)性能在此范圍內(nèi)調(diào)節(jié)。通過 N1 輸入信號,N2 輸入低電平與 N1 輸入低電平,N2 輸入信號分別實(shí)現(xiàn)電動 機(jī)的正轉(zhuǎn)與反轉(zhuǎn)功能。通過對信號占空比的調(diào)整來對車速進(jìn)行調(diào)節(jié)。速度分 7 檔控制,從高電平(第 6 檔)到低電平(第 0 檔)中間占空比以 20%逐極遞減。速度微調(diào)方面,可以通過對占空比以 1%的跨度逐增或逐減分別實(shí)現(xiàn)對速度的逐加或逐減。2、系統(tǒng)的軟件設(shè)計(jì)本系統(tǒng)編程部分工作采用 KELI-C51 語言完成,采用模 塊化的設(shè)計(jì)方法,與各子程序做為實(shí)現(xiàn)各部分功能和過程的入口,完成鍵盤輸入、按鍵識別和功能、PWM 脈寬控制和 LED 顯示等部分的設(shè)計(jì)。單片機(jī)資源分配如下表:P0 顯示模塊接口P1 鍵盤模塊接口外部中斷 0(P3.2) 鍵盤中斷P2.0/P2.1 PWM 電機(jī)驅(qū)動接口 內(nèi)部定時(shí)器 0 系統(tǒng)時(shí)鐘系統(tǒng)主函數(shù)流程如圖三:開 始初 始化中斷、變量啟動標(biāo)志= 1 ?P W M 脈沖產(chǎn)生子 程序循 環(huán) 移位顯示子程序P 2 . 0 = 0 ,P 2 . 1 = 0 ;NY圖三開始轉(zhuǎn)向 = ?P 2 . 0 = 0 ,P 2 . 1 = 1 ;P 2 . 0 = 1 ,P 2 . 1 = 0 ;延 時(shí) ( 高電平持 續(xù)時(shí)間)延 時(shí) ( 高電平持 續(xù)時(shí)間)延 時(shí) ( 低電平持 續(xù)時(shí)間)延 時(shí) ( 低電平持 續(xù)時(shí)間)P 2 . 1 = 0 P 2 . 0 = 0返 回正反圖四www.sfmcu.com www.sf-edu.cn 盛方單片機(jī)①PWM 脈寬控制:本設(shè)計(jì)中采用軟件延時(shí)方式對脈沖寬度進(jìn)行控制,延時(shí)程序函數(shù)如下:void delay(unsigned char dlylevel){int i=50*dlylevel;while(--i);}此函數(shù)為帶參數(shù) DLYLEVEL,約產(chǎn)生 DLYLEVEL*400us 的延時(shí),因此一個(gè)脈沖周期可以由高電平持續(xù)時(shí)間系數(shù) hlt 和低電平持續(xù)時(shí)間系數(shù) llt 組成,本設(shè)計(jì)中采用的脈沖頻率為 25Hz,可得 hlt+llt=100,占空比為 hlt/(hlt+llt),因此要 實(shí)現(xiàn)定頻調(diào)寬的調(diào)速方式,只需通過程序改變?nèi)肿兞?hlt,llt 的值,該子程序流程圖如圖四。②鍵盤中斷處 理子程序:采用中斷方式,按下鍵, 單 片機(jī) P3.2 腳產(chǎn)生一負(fù)跳沿,響應(yīng)該中斷處理程序,完成延時(shí)去抖動、鍵碼識別、按鍵功能執(zhí)行。調(diào)速檔、持續(xù)加/減速:調(diào)速檔通 過(0-6)共七檔固定占空比,即相應(yīng)檔位相應(yīng)改變 hlt,llt 的值,以實(shí)現(xiàn)調(diào)速檔位的實(shí)現(xiàn)。而要實(shí)現(xiàn)按住加/減速鍵不放時(shí)恒加或恒減速直到放開停止,就需在判斷是否松開該按鍵時(shí),每進(jìn)行一次增加 /減少 1%占空比(即 hlt++/--;llt--/++),其程序流程 圖如圖五。③顯示子程序:利用數(shù) 組 方式定義顯示緩存區(qū),緩存區(qū)有 8 位,分別存放各個(gè) LED 管要 顯示的值。顯示子程序?yàn)橐粠⒆映绦?,參?shù)為顯示緩存的數(shù)組名,通過 for(i=0;i<8;i++)方式 對每位加上位選碼,送到 P0 口并進(jìn)行一兩毫秒延時(shí)。該顯示子程序只對各個(gè) LED 管分別點(diǎn)亮一次,因此在運(yùn)行過程中,每秒執(zhí)行的次數(shù)不應(yīng)低于每秒 24 次。④定時(shí)中斷處 理程序:采用定 時(shí)方式 1,因?yàn)閱纹瑱C(jī)使用 12M 晶振,可產(chǎn)生最高約為 65.5ms 的延時(shí)。 對定時(shí)器置初值 3CB0H 可定時(shí) 50ms,即系統(tǒng)時(shí)鐘精度可達(dá) 0.05s。當(dāng) 50ms 定 時(shí)時(shí)間到,定時(shí)器溢出則響應(yīng)該定時(shí)中斷處理程序,完成對定時(shí)器的再次賦值,并 對全局變量 time 加 1,這樣,通過變量 time 可計(jì)算出系統(tǒng)的運(yùn)行時(shí)間。對于一個(gè)數(shù)的顯示,先應(yīng)轉(zhuǎn)成 BCD 碼,即取出每一個(gè)位,分別送入顯示緩存區(qū),對于轉(zhuǎn) BCD 的算法,應(yīng)對一個(gè)數(shù)循環(huán)除 10 取模,直至為 0,程序如下:do{dispbuff[bcd_p]=bechange%10; //dispbuff 為顯示緩沖區(qū)數(shù)組bcd_p++;}while(bechange/=10) //disp_p 為數(shù)組指針軟件設(shè)計(jì)中的特點(diǎn):1、對于電機(jī)的啟停,在 PWM 控制上使用漸變的脈寬調(diào)整,即開啟后由停止是否釋放按鍵?是否 加 / 減速鍵?加/ 減1 % 占空比調(diào)用P W M 脈沖產(chǎn) 生子程序YN調(diào)用顯示子程序圖五www.sfmcu.com www.sf-edu.cn 盛方單片機(jī)勻加速到默認(rèn)速度,停止則由于當(dāng)前速度逐漸降至零。這樣有利于保護(hù)電機(jī),如電機(jī)運(yùn)用于小車上,在啟動上采用此方式也可加大啟動速度,防止打滑。2、對于運(yùn)行時(shí)間的計(jì)算、顯示。配合 傳感器技術(shù)可用于計(jì)算距離,速度等重要的運(yùn)行數(shù)據(jù)。3、鍵盤處理上采用中斷方式,不必使程序?qū)︽I盤反復(fù)掃描,提高了程序的效率。、、 測試結(jié)果與分析:結(jié)束語本設(shè)計(jì)在硬件上采用了基于 PWM 技術(shù)的 H 型橋式驅(qū)動電路,解決了電機(jī)馬驅(qū)動的效率問題,在軟件上也采用較為合理的系統(tǒng)結(jié)構(gòu)及算法,提高了單片機(jī)的使用效率,且具有一定的防飛能力。但 該設(shè)計(jì)也有不足之處,主要是在關(guān)于速度的反饋上,無法提供較為直觀的速度表示方式,因此,有必要引入傳感器技術(shù)對速度進(jìn)行反饋,以 rpm 或 rps 表達(dá)當(dāng)前的轉(zhuǎn)速進(jìn)行顯示。
收藏
編號:146642
類型:共享資源
大?。?span id="ievbyqtbdd" class="font-tahoma">102.67KB
格式:RAR
上傳時(shí)間:2017-10-26
100
積分
- 關(guān) 鍵 詞:
-
dz171
單片機(jī)
控制
節(jié)制
直流電機(jī)
- 資源描述:
-
DZ171用單片機(jī)控制直流電機(jī),dz171,單片機(jī),控制,節(jié)制,直流電機(jī)
展開閱讀全文
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。