基于單片機(jī)的直流電機(jī)調(diào)速系統(tǒng)_第1頁
基于單片機(jī)的直流電機(jī)調(diào)速系統(tǒng)_第2頁
基于單片機(jī)的直流電機(jī)調(diào)速系統(tǒng)_第3頁
基于單片機(jī)的直流電機(jī)調(diào)速系統(tǒng)_第4頁
基于單片機(jī)的直流電機(jī)調(diào)速系統(tǒng)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于單片機(jī)的直流電機(jī)調(diào)速系統(tǒng)摘要:本設(shè)計以單片機(jī)AT89S52為核心,以小型直流電機(jī)為對象,通過5個按鍵,實(shí)現(xiàn)直流電機(jī)的啟動,速度和方向的控制,并通過液晶LCD1602顯示出來。對直流電機(jī)進(jìn)行速度測量的原理,采用了PWM技術(shù)對電機(jī)進(jìn)行控制,通過對占空比的計算達(dá)到精確調(diào)速的目的。實(shí)時測量電機(jī)的實(shí)際轉(zhuǎn)速,并顯示出來,并對電機(jī)進(jìn)行PID轉(zhuǎn)速調(diào)節(jié),使其轉(zhuǎn)速趨近于設(shè)定值。關(guān)鍵詞:AT89S52 ;直流電機(jī);PWM;L298N;LCD16021 引言 隨著科學(xué)技術(shù)的不斷發(fā)展,人類社會的不斷進(jìn)步,人們對生活產(chǎn)品的需求要不斷趨向多樣化,這就要求生產(chǎn)設(shè)備必須具有良好的動態(tài)性能,在不同的時候進(jìn)行不同的操作,完成不

2、同的任務(wù)。為了使系統(tǒng)具有良好的動態(tài)性能必須對系統(tǒng)進(jìn)行設(shè)計。特別是大型的鋼鐵行業(yè)和材料生產(chǎn)行業(yè),為達(dá)到很高的控制精度,速度的穩(wěn)定性,調(diào)速范圍等國產(chǎn)直流電機(jī)簡介為了滿足各行業(yè)按不同運(yùn)行條件對電動機(jī)提出的要求,將直流電機(jī)制造成不同型號的系列。又由于交流調(diào)速在當(dāng)時尚未解決好調(diào)速控制問題,調(diào)速范圍不大,控制精度低,快速性差等性能指標(biāo)不滿足生產(chǎn)工藝的要求,所以當(dāng)時大量使用的是直流電動機(jī)調(diào)速系統(tǒng),尤其是直流無級調(diào)速系統(tǒng),它具有調(diào)速性能好,范圍寬,動態(tài)性能好等優(yōu)點(diǎn),特別是設(shè)計簡單方便,雖然隨著控制技術(shù)以及電力電子技術(shù)的的發(fā)展,制造工藝技術(shù)的提高,大量出現(xiàn)交流調(diào)速的傳動系統(tǒng),但直流傳動所具有的優(yōu)點(diǎn)特征,至今仍大

3、量廣泛地使用直流調(diào)速。因此實(shí)現(xiàn)直流無級調(diào)速對我們社會生產(chǎn)和生活有著重大的意義。2 基于單片機(jī)的直流電機(jī)調(diào)速系統(tǒng)的設(shè)計2.1 設(shè)計要求對基于MCS-51系列單片機(jī)實(shí)現(xiàn)直流電機(jī)調(diào)速系統(tǒng)進(jìn)行研究和設(shè)計,能夠在不同的按鈕作用下分別實(shí)現(xiàn)直流電機(jī)的停止、加速、減速、正轉(zhuǎn)、反轉(zhuǎn)控制;能夠?qū)崿F(xiàn)基于MCS-51系列單片機(jī)的直流電機(jī)PWM的調(diào)速設(shè)計。2.2 直流電機(jī)調(diào)速分析2.2.1 直流電機(jī)調(diào)速原理根據(jù)勵磁方式不同,直流電機(jī)分為自勵和他勵兩種類型。不同勵磁方式的直流電機(jī)機(jī)械特性曲線有所不同。對于直流電機(jī)來說,人為機(jī)械特性方程式為: (1)注:(式中UN, N 額定電樞電壓、額定磁通量;Ke,Kt與電機(jī)有關(guān)的常數(shù)

4、;Rad,Ra電樞外加電阻、電樞內(nèi)電阻;n0, n 理想空載轉(zhuǎn)速、轉(zhuǎn)速降。)分析(1)式可得當(dāng)分別改變UN、N和Rad時,可以得到不同的轉(zhuǎn)速n,從而實(shí)現(xiàn)對速度的調(diào)節(jié)。如圖1,圖2所示。理想空載轉(zhuǎn)速隨電樞電壓升降而發(fā)生相應(yīng)的升降變化。不同電樞電壓的機(jī)械特性曲線相互平行,說明硬度不隨電樞電壓的變化而改變,電機(jī)帶負(fù)載能力恒定。當(dāng)我們平滑調(diào)節(jié)他勵直流電機(jī)電樞兩端電壓時,可實(shí)現(xiàn)電機(jī)的無級調(diào)速。基于以上特性,改變電樞電壓,實(shí)現(xiàn)對直流電機(jī)速度調(diào)節(jié)的方法被廣泛采用。T 圖1 直流電動機(jī)機(jī)械特性曲線 圖2 電樞電壓“占空比”與平均電壓關(guān)系2.2.2 PWM基本原理及其實(shí)現(xiàn)方法PWM是通過控制固定電壓的直流電源開

5、關(guān)頻率,從而改變負(fù)載兩端的電壓,進(jìn)而達(dá)到控制要求的一種電壓調(diào)整方法。在PWM驅(qū)動控制的調(diào)整系統(tǒng)中,按一個固定的頻率來接通和斷開電源,并根據(jù)需要改變一個周期內(nèi)“接通”和“斷開”時間的長短。通過改變直流電機(jī)電樞上電壓的“占空比”來改變平均電壓的大小,從而控制電動機(jī)的轉(zhuǎn)速。在脈沖作用下,當(dāng)電機(jī)通電時,速度增加;電機(jī)斷電時,速度逐漸減少。只要按一定規(guī)律,改變通、斷電的時間,即可讓電機(jī)轉(zhuǎn)速得到控制。PWM信號的產(chǎn)生通常有兩種方法:一種是軟件的方法;另一種是硬件的方法。軟件方法為MCS一51系列典型產(chǎn)品AT89S52具有兩個定時器T0和T1。通過控制定時器初值T0和T1,從而可以實(shí)現(xiàn)從S52的任意輸出口輸

6、出不同占空比的脈沖波形。我們可以明確定時器的定時初值與定時時間的關(guān)系。如果單片機(jī)的時鐘頻率為f,定時器計數(shù)器為N位,則定時器初值與定時時間的關(guān)系為: (2)式中,Tw 定時器定時初值;N 一個機(jī)器周期的時鐘數(shù)。N隨著機(jī)型的不同而不同。在應(yīng)用中,應(yīng)根據(jù)具體的機(jī)型給出相應(yīng)的值。這樣,我們可以通過設(shè)定不同的定時初值 ,從而改變占空比D=t1/T,進(jìn)而達(dá)到控制電機(jī)轉(zhuǎn)速的目的??刂瞥绦虻脑O(shè)計有兩種方法:軟件延時法和計數(shù)法。軟件延時法的基本思想是:首先求出占空比D= t1/T,再根據(jù)周期T分別給電機(jī)通電M個單位時間t0,所以M=t0/t1。然后,再斷電個單位時間,所=t2/t1 。改變M和的值,從而也就改

7、變了占空比D。計數(shù)法的基本思想是:當(dāng)單位延時個數(shù)M求出之后,將其作為給定值存放在某存儲單元中。在通電過程中,對通電單位時間t0的次數(shù)進(jìn)行計數(shù),并與存儲器的內(nèi)容進(jìn)行比較。若不相等,則繼續(xù)輸出控制脈沖,直到計數(shù)值與給定值相等,使電機(jī)斷電。軟件采用定時中斷進(jìn)行設(shè)計。單片機(jī)上電后,系統(tǒng)進(jìn)入準(zhǔn)備狀態(tài)。當(dāng)按動按鈕后,執(zhí)行相應(yīng)的程序,根據(jù)P2.5或P2.6輸出的高電平?jīng)Q定直流電機(jī)的正反轉(zhuǎn)。根據(jù)不同的加、減速按鈕,調(diào)整P2.5或P2.6輸出高低電平時的占空比,從而可以控制P2.5或P2.6輸出高低電平時的延時時間,進(jìn)而控制電壓的大小來決定直流電機(jī)轉(zhuǎn)速。2.3 系統(tǒng)的硬件設(shè)計2.3.1 系統(tǒng)方案本設(shè)計以AT89

8、S52單片機(jī)為核心,以5個輕觸按鈕作為輸入達(dá)到控制直流電機(jī)的加速、減速、正轉(zhuǎn)、反轉(zhuǎn)、停止。又因考慮到外部中斷0(INT0)脈沖信號對定時器中斷的嚴(yán)重影響、使得控速不精確,可以采用單獨(dú)的計數(shù)電路,但普通的數(shù)字電路搭成的計數(shù)器不僅成本高,而且外圍電路復(fù)雜,故采用了另外一片51單片機(jī)作為“協(xié)控”(即協(xié)助控制)。對于主控單片機(jī),其主要完成對電機(jī)的驅(qū)動輸出及對獨(dú)立按鍵掃描,另一片單片機(jī)通過外部中斷0對電機(jī)編碼輸出脈沖進(jìn)行采集,計數(shù),并進(jìn)行計算,從而得到精準(zhǔn)的轉(zhuǎn)速值,除此之外,該單片機(jī)還將計算得到的速度值進(jìn)行LCD顯示,同時控制著超速報警電路??刂圃恚篈T89S52單片機(jī)為核心的直流電機(jī)控制系統(tǒng)控制,由

9、軟件轉(zhuǎn)換成PWM 信號,并由P2.7輸出,經(jīng)驅(qū)動電路輸出給電機(jī),從而控制電機(jī)得電與失電。軟件采用定時中斷進(jìn)行設(shè)計。單片機(jī)上電后,系統(tǒng)進(jìn)入準(zhǔn)備狀態(tài)。當(dāng)按動啟動按鈕后,根據(jù)P2.5為高電平且P2.6為低電平時實(shí)現(xiàn)電機(jī)正轉(zhuǎn),P2.5為低電平且P2.6為高電平時實(shí)現(xiàn)電機(jī)反轉(zhuǎn)。根據(jù)不同的加減速按鈕,調(diào)整P2.7輸出高低電平時的預(yù)定值,從而可以控制P2.7輸出高低電平時的占空比,進(jìn)而控制電壓的大小??刂瞥绦驊?yīng)用于電機(jī)的加減速。2.3.2 硬件詳細(xì)設(shè)計主控單片機(jī)接口,如圖3,5個獨(dú)立按鍵接在P2.0P2.4口,在軟件中通過不斷查詢的方式進(jìn)行掃描,P2.5、P2。6控制電機(jī)的正反轉(zhuǎn),P2.7口接電機(jī)驅(qū)動芯片的

10、使能端,通過對使能時間的長短及頻率控制的方式實(shí)現(xiàn)PWM調(diào)節(jié)電機(jī)的目的。測速單片機(jī)接口, 如圖4,測速脈沖信號通過P3.2(外部中斷0)接入單片機(jī),在單片機(jī)內(nèi)部通過中斷次數(shù)進(jìn)行計數(shù),同時通過定時器0進(jìn)行時間(一分鐘)的控制,從而得出該時間段的測速脈沖數(shù),進(jìn)而轉(zhuǎn)換成速度值。 圖3 主控單片機(jī)接口 圖4 測速單片機(jī)接口LCD顯示電路,如圖5,顯示部分采用LCD1602,可以方便的實(shí)現(xiàn)速度的顯示,界面友好,操作簡單,外部電路不會像采用數(shù)碼管那樣復(fù)雜,并且不需要額外的驅(qū)動電路。第3腳:VEE為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一

11、個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器,低電平時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。第6腳:E為使能端,當(dāng)E端為高電平跳變成低電平時,液晶模塊執(zhí)行命令。 圖5 LCD1602接口電路電機(jī)驅(qū)動電路及測速接口,如圖6,若是采用電阻網(wǎng)絡(luò)或數(shù)字電位器調(diào)整電動機(jī)的分壓,從而達(dá)到調(diào)速的目的的話,電阻網(wǎng)絡(luò)只能實(shí)現(xiàn)有級調(diào)速,而數(shù)字電阻的元器件價格比較昂貴。更主要的問題在于一般電動機(jī)的電阻很小,但電流很大;分壓不僅會降低效率,而且實(shí)現(xiàn)很困難。若是采用繼電器對電動機(jī)的開或關(guān)進(jìn)行控制,通過開關(guān)的切換對小車的速度進(jìn)行調(diào)整。這個方案的優(yōu)

12、點(diǎn)是電路較為簡單,缺點(diǎn)是繼電器的響應(yīng)時間慢、機(jī)械結(jié)構(gòu)易損壞、壽命較短、可靠性不高。所以采用驅(qū)動芯片L298N驅(qū)動直流電機(jī),L298N具有驅(qū)動能力強(qiáng),外圍電路簡單等優(yōu)點(diǎn)。 L298N可接受標(biāo)準(zhǔn)TTL邏輯電平信號VSS,VSS可接4.57V電壓。4腳VS接電源電壓,VS電壓范圍VTH為+2.546V。輸出電流可達(dá)2.5A,可驅(qū)動電感性負(fù)載。1腳和15腳下管的發(fā)射極分別單獨(dú)引出以便接入電流采樣電阻,形成電流傳感信號。L298N可驅(qū)動2個電動機(jī),OUT1,OUT2,和OUT3,OUT4之間可以分別接電動機(jī)。5,7,10,12腳接輸入控制電平,控制電機(jī)的正反轉(zhuǎn)。ENA,ENB接pwm端,控制電機(jī)的轉(zhuǎn)速。

13、(ENA為低電平時,電機(jī)停止運(yùn)行,當(dāng)ENA為pwm時。輸入電平為一高一低,電機(jī)正或反轉(zhuǎn)。In3或In4同為低電平,電機(jī)停止;同為高電平,電機(jī)剎停。圖6 電機(jī)驅(qū)動電路及測速接口 (圖中電機(jī)帶有測速碼盤,MV為測速碼盤接口)按鍵控制電路,如圖7,正轉(zhuǎn)、反轉(zhuǎn)、加速、減速、停止五個開關(guān)分別與單片機(jī)的P2.0,P2.1,P2.2,P2.3,P2.4相連,然后再與地相連。停止實(shí)現(xiàn)直流電機(jī)的停轉(zhuǎn),正轉(zhuǎn)實(shí)現(xiàn)直流電機(jī)的正轉(zhuǎn),反轉(zhuǎn)實(shí)現(xiàn)直流電機(jī)的反轉(zhuǎn),加速實(shí)現(xiàn)直流電機(jī)的加速,減速實(shí)現(xiàn)直流電機(jī)的減速。圖7系統(tǒng)按鍵控制電路(低電平有效)2.3.2 系統(tǒng)整體硬件原理圖 系統(tǒng)整體硬件原理圖如圖8所示。圖8 整體原理圖2.3

14、.3 PCB原理圖 Pcb原理圖如圖9所示。 圖9 Pcb原理圖2.4 系統(tǒng)軟件設(shè)計2.4.1系統(tǒng)主程序設(shè)計利用P2.7口,編制程序輸出一串脈沖,經(jīng)放大后驅(qū)動直流電機(jī),改變輸出脈沖的占空比,達(dá)到使電機(jī)正轉(zhuǎn)、反轉(zhuǎn)、加速、減速、停轉(zhuǎn)等目的。由軟件編程從P2.7管腳產(chǎn)生PWM 信號,經(jīng)驅(qū)動電路輸出給電機(jī),從而控制電機(jī)得電與失電。軟件采用定時器中斷進(jìn)行設(shè)計。單片機(jī)上電后,系統(tǒng)進(jìn)入準(zhǔn)備狀態(tài)。本設(shè)計共有5個按鍵,分別為“加速”“減速”“正轉(zhuǎn)”“反轉(zhuǎn)”“停止”。1) 電機(jī)啟動后,默認(rèn)為1檔2) 每按一次“加速”“減速”鍵,檔位加減一3) 當(dāng)減到0當(dāng)時,電機(jī)會慢慢地停下來4) “正轉(zhuǎn)”或“反轉(zhuǎn)”按下時,電機(jī)會

15、慢慢地減速,減到0后會向相反的方向加速直至上次的檔位轉(zhuǎn)速5) “停止”按下后,電機(jī)后慢慢地停下來,檔位恢復(fù)0檔其總體流程圖如圖10示。 圖10系統(tǒng)主函數(shù)流程圖2.4.2 按鍵掃描按鍵掃描,采用不斷查詢的方式進(jìn)行,并在設(shè)計中添加了防抖動控制。流程如圖11。2.4.3 電機(jī)PWM驅(qū)動對于電機(jī)的驅(qū)動,采用51單片機(jī)內(nèi)部的定時器0中斷的方式控制占空比的大小,從而實(shí)現(xiàn)電機(jī)速度的調(diào)節(jié),電機(jī)的正反轉(zhuǎn)控制在鍵值處理函數(shù)中涉及。如圖12。 圖11鍵盤掃描子程序流程圖 圖12鍵定時器0中斷程序(電機(jī)驅(qū)動)3 結(jié)果與討論此設(shè)計以AT89S52單片機(jī)為核心,以5個輕觸按鈕作為輸入達(dá)到控制直流電機(jī)的加速、減速、正轉(zhuǎn)、反

16、轉(zhuǎn)、停止。在設(shè)計中,采用PWM技術(shù)對電機(jī)進(jìn)行控制,通過對占空比的計算達(dá)到精確調(diào)速的目的。由P2口的低電平輸入識別不同的按鍵,通過對單片機(jī)程序?qū)χ绷麟姍C(jī)的停止、加速、減速、正轉(zhuǎn)、反轉(zhuǎn)控制。1) 在最初設(shè)計測速模塊時,只用了一個單片機(jī),將測速碼盤輸出端接至INT0(外部 中斷0),用來統(tǒng)計碼盤脈沖,這樣存在一個問題外部中斷會與定時器中斷不斷產(chǎn)生沖突,導(dǎo)致測速不準(zhǔn)確。解決方案:采用兩片單片機(jī),一片用來控制電機(jī)轉(zhuǎn)動,另一片則用來測速,這樣就可以很好地避免上面的問題,而且一片單片機(jī)的成本有不貴。2) 在安裝測速碼盤時,發(fā)現(xiàn)測試速度與估算值相差甚遠(yuǎn)。原因在于碼盤安裝角度和高度不合適,光電開關(guān)方位異常。解決

17、方案:測速碼盤較為精確,碼盤必須通過光電管正中央,校正碼盤后,測速正常。3) 報警時蜂鳴器聲音顫抖解決方案:對照電路圖檢查連線,發(fā)現(xiàn)三極管基極電阻(1K)使用過大,導(dǎo)致三極管放大能力不足,改用18歐電阻后,聲音清晰正常。4 結(jié)論 采用單片機(jī)控制的直流電機(jī)調(diào)速系統(tǒng),將以往模擬電路設(shè)計問題轉(zhuǎn)化為程序設(shè)計問題,且其調(diào)節(jié)電樞電壓范圍大,可控性好,精度高。本設(shè)計主要對PWM調(diào)速方式如何在單片機(jī)控制系統(tǒng)中實(shí)現(xiàn)了進(jìn)行探討和研究,對于研究直流電機(jī)的控制和測量方法,提高控制精度和響應(yīng)速度,節(jié)約能源等都具有重要意義。PWM調(diào)速裝置具有電路簡單,成本低廉,可靠性高,運(yùn)行穩(wěn)定的特點(diǎn)。是對小型直流電動機(jī)調(diào)速裝置的一種探

18、討和研究。利用單片微處理器,實(shí)現(xiàn)了對直流電機(jī)的調(diào)速,具有控制精度高,可靠性強(qiáng)和易調(diào)整等特點(diǎn)。致謝通過這次系統(tǒng)的畢業(yè)綜合實(shí)踐,使我的專業(yè)知識有了一個較為系統(tǒng)的重溫,同是也使得我對專業(yè)系統(tǒng)有了一個全面的了解。在這次的綜合實(shí)踐過程中,我感受很多,收獲很多。在這里首先要感謝的是我的指導(dǎo)老師孫志富老師,孫老師平日里工作繁多,但在我做設(shè)計的每個階段,從查閱資料,設(shè)計草案的確定,到修改,中期檢查,后期詳細(xì)設(shè)計,裝配草圖等整個過程都給予我悉心的指導(dǎo)。我的設(shè)計較為復(fù)雜繁瑣,但是孫老師仍然細(xì)心地糾正圖紙錯誤,不厭其煩的為我們講解,才使我的畢業(yè)綜合實(shí)踐報告得以快速高效的完成。再次我要感謝在這次綜合實(shí)踐中給予我?guī)椭?/p>

19、同學(xué)和朋友們,沒有他們的支持和幫忙焊接,我的設(shè)計不會有那么順利 。參考文獻(xiàn)1 顧繩谷.電機(jī)及拖動基礎(chǔ)M,北京:機(jī)械工業(yè)出版社,2007.2 王鑒光.電動機(jī)控制系統(tǒng)M,北京:北京機(jī)械工業(yè)出版社,1994.3 王小明.電動機(jī)的單片機(jī)控制M,北京:北京航空航天大學(xué)出版社,2002.4 吳寶啟,張元偉,劉陽.基于單片機(jī)的無刷直流電機(jī)控制方案設(shè)計J,煤礦現(xiàn)代化,2009,Vol.16,NO.6:74.5 周興華.用單片機(jī)控制直流電機(jī)變速J,電子制作,2006,Vol.34,NO.6:34-35.6 岳東海,顏鵬.直流電機(jī)PWM無級調(diào)速控制系統(tǒng)設(shè)計J,價值工程,2010,Vol.14,NO.2:135-1

20、36.7郭浩.3A驅(qū)動能力PWM直流電機(jī)控制電路的制作J,電子制作,2007,Vol.9,NO.10:42-43.8 袁淑芬.實(shí)現(xiàn)直流無刷電動機(jī)調(diào)速控制的一種新型方法J,長春理工大學(xué)學(xué)報,2009,Vol.25,NO.1:113-115.9 張琛.直流無刷電動機(jī)原理及應(yīng)用M,北京:北京機(jī)械工業(yè)出版社,1996.The Design of DC Motor Speed ControlSystem based on Microcontroller UnitWu Huali(Physics and Electrical Engineering, Anyang Normal University, A

21、nyang, Henna 455002)Abstract: According to the topic request, this system(design model)takes single chip computer, AT89S52, as a core device, and DC motor as an controlled object. With the control of 5 buttons, this system(design model)can achieve the operations of start-stop, control of speed and d

22、irection, and data display through an output device called LCD1602. The principle of this system is to control the motor with the PWM technology and achieve accurate velocity modulation with the calculation of dutyfactor. Meanwhile, measure and display the motors rotational speed in real time and in

23、 addition, conduct the PID rotational speed adjustment to make the motors velocity converge towards the setting value (set point).Key Words: AT89s51; DC motor ; PWM; L298N; LCD1602附錄1程序1.1電機(jī)驅(qū)動單片機(jī)程序清單#include #include delay.h#define uchar unsigned char#define uint unsigned int#define TOTAL 20000 /PWM

24、波周期 50Hz/*端口定義*/sbit IN1 = P2.5; /控制轉(zhuǎn)向sbit IN2 = P2.6; /控制轉(zhuǎn)向sbit PWMOUT = P2.7; /PWM輸出/*全局變量*/int High; /高電平持續(xù)時間int Low ; /低電平持續(xù)時間uchar flag_Hctrl = 1; /高電平輸出標(biāo)志uchar flag_stop = 0; /停止標(biāo)志/*函數(shù)聲明*/void Intial();void T0_Initial();uchar KeyScan();void KeyProsess(uchar);void main()uchar key;Intial();while

25、(1)if(key = KeyScan() != 0x1f) /按鍵掃描,沒有鍵被按下時返回值為0x1fKeyProsess(key);*/void Intial()T0_Initial();/初始化定時器High = 1000;/占空比初始化Low = TOTAL - High;IN1 = 1;/電機(jī)正轉(zhuǎn)IN2 = 0;/*/void T0_Initial()TH0 = (65535 - Low) / 256; /定時器0賦初值TL0 = (65535 - Low) % 256; /ET0 = 1; /開定時器0中斷TMOD = 0x01; /定時器0:工作方式1EA = 1; /開總中斷T

26、R0 = 1; /定時器0開始計時*/uchar KeyScan()uchar temp;uchar keyword;temp = P2;if(temp &= 0x1f) != 0x1f)Delay(10); /按鍵去抖temp = P2;if(temp &= 0x1f) != 0x1f) /確實(shí)有鍵按下keyword = temp;temp = P2;while(temp & 0x1f) != 0x1f) /等待按鍵松開temp = P2;Delay(10); /按鍵松手去抖temp = P2;while(temp & 0x1f) != 0x1f)temp = P2;return keywo

27、rd; /返回鍵值else return temp; /此時temp=0x0felse return temp; /此時temp=0x0f*/void KeyProsess(uchar key)if(key = 0x1e) /速度加if(flag_stop)flag_stop = 0;IN1 = 1;IN2 = 0;High += 1000;if(High = TOTAL)High = TOTAL;else if(key = 0x1d) /速度減High -= 1000;if(High = 0)flag_stop = 1;IN1 = 1;IN2 = 1;High = 0;else if(key

28、 = 0x1b)/電機(jī)正轉(zhuǎn)IN1 = 1;IN2 = 0;else if(key = 0x17) /電機(jī)反轉(zhuǎn)IN1 = 0;IN2 = 1;else if(key = 0x0f) /停止flag_stop = 1;IN1 = 1;IN2 = 1;High = 0;Low = TOTAL - High;*/void Timer0_sev() interrupt 1flag_Hctrl = 0x01; /高電平標(biāo)志取反 PWMOUT = PWMOUT; /輸出取反/if(flag_Hctrl) /高電平輸出控制TH0 = (65535 - High) / 256;TL0 = (65535 - Hi

29、gh) % 256;else /低電平輸出控制TH0 = (65535 - Low) / 256; TL0 = (65535 - Low) % 256; 1.2電機(jī)測速及顯示控制單片機(jī)程序清單#include #include LCD1602.h#include defunsigned.h#define TOPSPEED 285 /速度上限/*端口定義*/sbit BUZ = P3.0; /蜂鳴器sbit ALED = P3.1; /超速指示燈/*全局變量*/uint count_pulse; /電機(jī)碼盤脈沖數(shù)uint speed_rot; /電機(jī)轉(zhuǎn)速uint T0_count; uchar

30、flag_compute = 0; /轉(zhuǎn)速計算標(biāo)志uchar flag_disp = 0; /液晶刷新頻率標(biāo)志位/*函數(shù)聲明*/void Intial();void T0_Initial();/-void main()Intial();while(1) if(flag_compute) /統(tǒng)計完畢?flag_compute = 0;speed_rot = speed_rot * 6; /轉(zhuǎn)換單位:r/50ms - r/min /電機(jī)測速碼盤設(shè)置為每轉(zhuǎn)200個脈沖,所以speed_rot*1200/200if(speed_rot = TOPSPEED) /超過速度上限,報警BUZ = 0;ALED = 0; else BUZ = 1;ALED = 1;if(flag_dis

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論