直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)_第1頁(yè)
直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)_第2頁(yè)
直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)_第3頁(yè)
直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)_第4頁(yè)
直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 題題 目目 直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)(軟件)直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)(軟件) 英文題目英文題目 DC Motor Speed Control System 作作 者者 聲聲 明明本人以信譽(yù)鄭重聲明:所呈交的學(xué)位畢業(yè)設(shè)計(jì)(論文),是本人在指導(dǎo)教師指導(dǎo)下由本人獨(dú)立撰寫(xiě)完成的,沒(méi)有剽竊、抄襲、造假等違反道德、學(xué)術(shù)規(guī)范和其他侵權(quán)行為。文中引用他人的文獻(xiàn)、數(shù)據(jù)、圖件、資料均已明確標(biāo)注出,不包含他人成果及為獲得東華理工大學(xué)或其他教育機(jī)構(gòu)的學(xué)位或證書(shū)而使用過(guò)的材料。對(duì)本設(shè)計(jì)(論文)的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本畢業(yè)設(shè)計(jì)(論文)引起的法律結(jié)果完全由本人承擔(dān)。本畢業(yè)設(shè)計(jì)(論文)成果歸東華

2、理工大學(xué)所有。特此聲明。 畢業(yè)設(shè)計(jì)(論文)作者(簽字): 簽字日期: 年 月 日 本人聲明:該學(xué)位論文是本人指導(dǎo)學(xué)生完成的研究成果,已經(jīng)審閱過(guò)論文的全部?jī)?nèi)容,并能夠保證題目、關(guān)鍵詞、摘要部分中英文內(nèi)容的一致性和準(zhǔn)確性。 學(xué)位論文指導(dǎo)教師簽名: 年 月 日 摘要摘摘 要要電機(jī)在各個(gè)行業(yè)中都施展著非常重要的作用,各種重要的指標(biāo)決定了其性能,其中電機(jī)的轉(zhuǎn)速就是電機(jī)的一個(gè)重要指標(biāo),因此進(jìn)行電機(jī)的轉(zhuǎn)速和調(diào)速方面的研究,使它能夠滿足人們各方面的需求,已變得越來(lái)越重要,并且伴隨著科學(xué)技術(shù)的不斷高速發(fā)展,如今 PWM 脈寬調(diào)制技術(shù)已成為了電機(jī)調(diào)速控制的一種新方法?,F(xiàn)在人們對(duì)各種控制系統(tǒng)功能的要求越來(lái)越高,電機(jī)

3、調(diào)速也逐漸成為了許多人鉆研的課題,如今關(guān)于普通直流電機(jī)的調(diào)速問(wèn)題已經(jīng)出現(xiàn)了一些較為成熟穩(wěn)定的方式。本設(shè)計(jì)中主要研究用單片機(jī)控制 PWM 信號(hào)從而實(shí)現(xiàn)對(duì)直流電機(jī)轉(zhuǎn)速進(jìn)行控制的方法。本設(shè)計(jì)中選用了四個(gè)三極管組成的 H 橋電路來(lái)作為電機(jī)的驅(qū)動(dòng)系統(tǒng),并且對(duì)PWM 控制的原理、產(chǎn)生方式和如何經(jīng)過(guò)軟件編程來(lái)對(duì) PWM 信號(hào)輸出占空比進(jìn)行調(diào)節(jié),從而調(diào)節(jié)其輸出波形等均作了具體的論述。采用了一些按鍵來(lái)控制電機(jī)的運(yùn)行狀態(tài)。還有,該設(shè)計(jì)采用了霍爾元件來(lái)測(cè)量直流電機(jī)的轉(zhuǎn)速,通過(guò)處理后,再將測(cè)量出的值發(fā)送到 LCD1602 液晶顯示器上顯示出來(lái)。關(guān) 鍵 詞 : 直 流 電 機(jī) ; 單 片 機(jī) ; P W M調(diào) 速 ;

4、霍 爾 元 件 ; 液 晶 顯 示 ABSTRACTIABSTRACTMotor plays an important role in all walks of our life. Various important indicators determines its performance.The motor rotation speed is one of the important indicators. So measuring the speed and speed regulating of the motor, making it satisfy peoples various

5、needs has become more and more important.And with the development of the science and technology, PWM control has become a new way of motor speed control. Now people are more and more high to the requirement of control system. Motor speed control has become the research topic of many people. Now for

6、the average DC motor speed regulation already have some relatively mature and stable methods. In this design, we mainly study the method of controlling the speed of DC motor by using single chip microcomputer to control the PWM signal. In this design, the driving system of the motor is H bridge circ

7、uit which is composed of four transistors, the principle and method of PWM control, and how to adjust the duty cycle of PWM output signal by software programming, so as to adjust the output signal waveform and so on, are explained in detail.Some buttons are used to control the running states of the

8、motor. In addition, the system uses the Hall element to measure the speed of the DC motor. After processing, the measured value is displayed on the LCD by sent to the LCD1602 liquid crystal display.Key words:Dc motor; Single chip microcomputer; PWM speed regulation; Hall element; LCD 目錄目 錄摘 要.IABSTR

9、ACT .II緒 論.11. 課題的背景與意義 .12. 國(guó)內(nèi)外發(fā)展概況 .13. 研究方法及工作內(nèi)容 .21. 系統(tǒng)硬件電路部分設(shè)計(jì).31.1 總體硬件電路設(shè)計(jì) .31.2 直流電動(dòng)機(jī)調(diào)速 .31.2.1 直流電機(jī)簡(jiǎn)介.31.2.2 直流電機(jī)調(diào)速系統(tǒng).41.3 單片機(jī)電路設(shè)計(jì) .41.3.1 STC89C52 單片機(jī)簡(jiǎn)介 .41.3.2 單片機(jī)最小系統(tǒng).51.3.2.1 復(fù)位電路 .61.3.2.2 晶振電路 .61.4 測(cè)速電路設(shè)計(jì) .61.4.1 霍爾傳感器簡(jiǎn)介.61.4.2 霍爾傳感器測(cè)速原理.71.5 液晶顯示電路設(shè)計(jì) .71.5.1 LCD1602 功能簡(jiǎn)介 .81.5.2 LCD

10、1602 性能參數(shù) .81.6 按鍵電路設(shè)計(jì) .92. PWM 信號(hào)發(fā)生電路設(shè)計(jì).102.1 PWM 控制的原理.102.2 H 橋驅(qū)動(dòng)電路原理.102.3 系統(tǒng)驅(qū)動(dòng)電路的設(shè)計(jì) .113. 系統(tǒng)軟件部分設(shè)計(jì).133.1 系統(tǒng)軟件總體設(shè)計(jì) .133.2 主程序設(shè)計(jì) .133.3 鍵盤(pán)掃描程序設(shè)計(jì) .143.4 初始化程序設(shè)計(jì) .143.5 LCD1602 設(shè)置和顯示程序設(shè)計(jì).163.5.1 LCD1602 指令和數(shù)據(jù)讀寫(xiě)程序設(shè)計(jì) .163.5.2 LCD1602 顯示轉(zhuǎn)速和占空比設(shè)置程序 .173.6 各中斷程序設(shè)計(jì) .193.6.1 定時(shí)器中斷 0 程序設(shè)計(jì).193.6.2 定時(shí)器中斷 1 程

11、序設(shè)計(jì).203.6.3 外部中斷 1 程序設(shè)計(jì).21 目錄4. 系統(tǒng)軟件的調(diào)試.224.1 主程序調(diào)試 .224.2 各子程序的調(diào)試 .22結(jié) 論.23致 謝.24參考文獻(xiàn).25附錄 1 程序 .26附錄 2 硬件電路原理圖 .31 緒論 0緒 論1. 課題的背景與意義在現(xiàn)在的電子產(chǎn)品中,自動(dòng)控制系統(tǒng),電子儀器、家用電器、等等方面,直流電機(jī)都得到了重要的應(yīng)用。我們熟悉的錄音機(jī)、電唱機(jī)、錄相機(jī)、電子計(jì)算機(jī)等,都不能少了直流電機(jī)。因此,直流電機(jī)的控制成為了一個(gè)很實(shí)用的技術(shù)。之前電動(dòng)機(jī)大多都使用由模擬電路構(gòu)成的控制柜來(lái)控制,如今單片機(jī)已經(jīng)開(kāi)始代替模擬電路作為電機(jī)控制器。現(xiàn)在電機(jī)控制器的發(fā)展方向越來(lái)越

12、趨于多樣性和復(fù)雜性,現(xiàn)有的專用集成電路未必能滿足嚴(yán)格的新產(chǎn)品開(kāi)發(fā)要求,為此可考慮開(kāi)發(fā)電機(jī)的新式單片機(jī)控制器,所以研究直流電機(jī)的速度控制,有著非常重要的意義。起初的電機(jī)電樞電壓調(diào)節(jié)法采用的是串聯(lián)電阻調(diào)速的方法,這種方法不但能耗大、而且其調(diào)速不太穩(wěn)定,慢慢的被其它的調(diào)速裝置所替代了。在這之后,又出現(xiàn)了許多種調(diào)速方法,例如,晶閘管、MOSFET、IGBT 等為主控元件的調(diào)速裝置。隨著電子技術(shù)的不斷發(fā)展,推動(dòng)著直流電機(jī)的調(diào)速逐漸從模擬化向數(shù)字化轉(zhuǎn)變,尤其是單片機(jī)技術(shù)的開(kāi)發(fā)與應(yīng)用,讓直流電機(jī)的調(diào)速技術(shù)邁入了一個(gè)新的階段。那些采用傳統(tǒng)的晶閘管直流調(diào)速系統(tǒng)控制回路的硬件設(shè)置極為繁雜,安裝調(diào)試很困難,相對(duì)的故

13、障概率較高,維修也較為困難和費(fèi)時(shí)。而采用單片機(jī)控制的電機(jī)調(diào)速系統(tǒng)是通過(guò)軟件編程來(lái)制定控制方案,其控制器是由可編程功能模塊組成的,能夠簡(jiǎn)單方便的調(diào)節(jié)其結(jié)構(gòu)和參數(shù),并且其工作穩(wěn)定。 脈寬調(diào)制技術(shù)(PWM)是一種對(duì)模擬信號(hào)電平進(jìn)行數(shù)字編碼的方法,它不但能方便的由軟件編程來(lái)實(shí)現(xiàn),并且從處理器到被控信號(hào)都是以數(shù)字的形式出現(xiàn),不再需要先將其進(jìn)行數(shù)模轉(zhuǎn)化,加上噪聲對(duì) PWM 的影響較小,這使得 PWM 技術(shù)逐漸的成為了當(dāng)前電機(jī)調(diào)速的主要方法。如今,有的人使用閉環(huán)控制來(lái)做,對(duì)檢測(cè)量和目標(biāo)量進(jìn)行計(jì)算,通過(guò)由單片機(jī)口發(fā)出的脈寬調(diào)制波形來(lái)調(diào)節(jié)直流電機(jī)電樞在周期內(nèi)的通斷時(shí)間從而實(shí)現(xiàn)變電壓調(diào)速;而另一些人則是使用模糊控

14、制的方法,采用開(kāi)環(huán)系統(tǒng),通過(guò)改變程序中的各參數(shù)來(lái)實(shí)現(xiàn)其所需的速度變化和控制。我覺(jué)得設(shè)計(jì)這個(gè)直流電機(jī)調(diào)速系統(tǒng),不管是從學(xué)習(xí)還是實(shí)踐的角度,對(duì)于一名自動(dòng)化專業(yè)的大學(xué)生來(lái)說(shuō)都會(huì)產(chǎn)生非常積極的作用,而且還有利于提高學(xué)習(xí)的熱情。2. 國(guó)內(nèi)外發(fā)展概況直流電機(jī)之所以適用于在大范圍內(nèi)平滑調(diào)速和許多需要正反轉(zhuǎn)或速度控制等的領(lǐng)域中,是因?yàn)橹绷麟姍C(jī)具有良好的起動(dòng)和制動(dòng)性能。初期的直流電機(jī)控制大多是使用了運(yùn)算放大器和少量的數(shù)字電路來(lái)構(gòu)成的,且是以模擬電路為基礎(chǔ)的。這類控 緒論1制系統(tǒng)的硬件部分較復(fù)雜,并且功能較為單一、調(diào)試較困難,導(dǎo)致直流電機(jī)控制技術(shù)的發(fā)展以及在各領(lǐng)域中的應(yīng)用都受到了很大的阻礙。但是,隨著單片機(jī)技術(shù)的

15、發(fā)展和創(chuàng)新,使得只通過(guò)軟件方面的技術(shù)就可以方便的實(shí)現(xiàn)直流電機(jī)的許多控制功能,這也使得直流電機(jī)的功能控制變的更加的靈活,并大大的提高了系統(tǒng)的整體性能。通過(guò)使用單片機(jī)來(lái)做為直流電機(jī)的控制系統(tǒng),不僅減少了成本,而且節(jié)約了人力和時(shí)間,使得工作效率得到了很大的提高。PWM 控制起初受到電力電子器件發(fā)展水平的限制,一直未能得以實(shí)現(xiàn)發(fā)展。在上世紀(jì) 80 年代,全控型電力電子器件的出現(xiàn)及其快速的發(fā)展,PWM 技術(shù)才得到了真正的應(yīng)用。隨著電力電子技術(shù)和各類方法的出現(xiàn)與發(fā)展,PWM 控制技術(shù)獲得了很大的發(fā)展。目前已經(jīng)出現(xiàn)了很多種 PWM 控制技術(shù)和方法。上世紀(jì) 70 年代中期產(chǎn)生了直流電機(jī)的 PWM 調(diào)速系統(tǒng)。起

16、初只用在不可逆、小功率驅(qū)動(dòng)中。近年來(lái),因?yàn)榫w管器件以及直流電機(jī)等技術(shù)的提高與發(fā)展,促進(jìn)了 PWM 技術(shù)的快速發(fā)展。在國(guó)外,PWM技術(shù)起初是用在軍事以及空間技術(shù)應(yīng)用中。它良好的性能滿足軍事應(yīng)用中那些高精度的系統(tǒng)的需求。近年來(lái),逐漸應(yīng)用到了民用領(lǐng)域中,例如自動(dòng)化生產(chǎn)線以及機(jī)床等廣泛的領(lǐng)域中。3. 研究方法及工作內(nèi)容本設(shè)計(jì)主要是利用單片機(jī)的定時(shí)器來(lái)產(chǎn)生 PWM 脈沖信號(hào)再經(jīng)過(guò)電機(jī)的驅(qū)動(dòng)電路來(lái)對(duì)直流電機(jī)進(jìn)行調(diào)速。通過(guò)霍爾元件測(cè)量電機(jī)轉(zhuǎn)速把轉(zhuǎn)速送給單片機(jī)再通過(guò)液晶顯示出來(lái)。通過(guò)設(shè)置的各個(gè)按鍵來(lái)操縱電機(jī)的運(yùn)行、停止、加速、減速、正轉(zhuǎn)、反轉(zhuǎn)等狀態(tài)。本系統(tǒng)可以分為主控電路、電機(jī)驅(qū)動(dòng)電路、液晶顯示電路、按鍵控

17、制電路、測(cè)速模塊、電源電路等,以硬件電路為基礎(chǔ),采用 PWM 調(diào)速方法,用 C 語(yǔ)言編寫(xiě)程序,單片機(jī)通過(guò)程序來(lái)進(jìn)行控制。當(dāng)單片機(jī)上電后,系統(tǒng)進(jìn)入準(zhǔn)備狀態(tài)。當(dāng)按動(dòng)按鈕后便開(kāi)始執(zhí)行其相應(yīng)的程序,根據(jù)輸出的高低電平?jīng)Q定直流電機(jī)的正反轉(zhuǎn),再根據(jù)按下加減速按鈕后執(zhí)行的程序,調(diào)整輸出高低電平的占空比,來(lái)控制高低電平的延時(shí)時(shí)間,進(jìn)而控制電壓的大小來(lái)改變直流電機(jī)的轉(zhuǎn)速。這樣就可以實(shí)現(xiàn)用單片機(jī)控制直流電機(jī)調(diào)速的基本功能了。 緒論2 系統(tǒng)硬件電路部分設(shè)計(jì)31. 系統(tǒng)硬件電路部分設(shè)計(jì)1.1 總體硬件電路設(shè)計(jì)本設(shè)計(jì)選用了 STC89C52 單片機(jī)來(lái)做為主控制器,由單片機(jī)來(lái)產(chǎn)生 PWM 輸出信號(hào),傳到直流電機(jī)中,直流電

18、機(jī)旋轉(zhuǎn)通過(guò)霍爾傳感器測(cè)速電路將實(shí)時(shí)的電機(jī)轉(zhuǎn)速傳回系統(tǒng)的單片機(jī)中,并通過(guò) LCD1602 液晶顯示模塊將電機(jī)的轉(zhuǎn)速和占空比顯示出來(lái),從而實(shí)現(xiàn)對(duì)直流電機(jī)速度和轉(zhuǎn)向的控制,實(shí)現(xiàn)直流電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)所要求的目的和功能。圖 1-1 系統(tǒng)整體設(shè)計(jì)框圖1.2 直流電動(dòng)機(jī)調(diào)速1.2.1 直流電機(jī)簡(jiǎn)介直流電機(jī)就是將直流電能轉(zhuǎn)化為機(jī)械能的電機(jī)。直流電動(dòng)機(jī)的基本原理是往恒定磁場(chǎng)的轉(zhuǎn)子通電,電流會(huì)在磁場(chǎng)里受到力的作用,會(huì)使轉(zhuǎn)子圍繞著中心軸旋轉(zhuǎn),這樣電動(dòng)機(jī)就轉(zhuǎn)動(dòng)起來(lái)了。直流電機(jī)的主要優(yōu)點(diǎn)是:a.寬調(diào)速范圍,便于平滑調(diào)速;b.起動(dòng)、制動(dòng)和過(guò)載轉(zhuǎn)矩大;c.便于控制,可靠性較高。一般應(yīng)用于對(duì)起動(dòng)和調(diào)速性能要求較高的生產(chǎn)機(jī)械中

19、,比如大型機(jī)床、船舶機(jī)械、電力機(jī)車、造紙和紡織機(jī)械等都廣泛的使用了直流電機(jī)來(lái)作為原動(dòng)機(jī)。轉(zhuǎn)速、占空比顯示模塊單片機(jī)按鍵控制模塊電源模塊電機(jī)速度采集電 機(jī)驅(qū)動(dòng)模塊PWM 控制模塊 系統(tǒng)硬件部分設(shè)計(jì) 4 系統(tǒng)硬件電路部分設(shè)計(jì)51.2.2 直流電機(jī)調(diào)速系統(tǒng)直流電機(jī)調(diào)速系統(tǒng)主要有以下幾種方法:1) 晶閘管-電動(dòng)機(jī)系統(tǒng)(簡(jiǎn)稱V-M系統(tǒng))它就是利用晶閘管整流裝置取代了旋轉(zhuǎn)變流機(jī)組,通過(guò)控制觸發(fā)裝置GT的控制電壓來(lái)移動(dòng)觸發(fā)脈沖的相位,可以改變平均的整流電壓,從而實(shí)現(xiàn)了平滑調(diào)速,這樣的系統(tǒng)都稱為V-M系統(tǒng)。2) 直流脈寬調(diào)速系統(tǒng)(簡(jiǎn)稱PWM調(diào)速系統(tǒng))它就是采用了脈寬調(diào)制的高頻開(kāi)關(guān)控制方法所形成的脈寬調(diào)制變換器

20、-直流電動(dòng)機(jī)調(diào)速系統(tǒng),簡(jiǎn)稱PWM調(diào)速系統(tǒng)。PWM控制技術(shù)就是對(duì)一系列脈沖的寬度進(jìn)行調(diào)制的技術(shù),即通過(guò)改變脈沖的寬度來(lái)實(shí)現(xiàn)控制,從而等效地獲得所需的波形。與V-M系統(tǒng)相比,PWM系統(tǒng)具有許多優(yōu)點(diǎn):a. 主電路線路簡(jiǎn)單,需要的功率器件較少。b. 開(kāi)關(guān)頻率較高,電流易于持續(xù),諧波較少,電機(jī)損耗和發(fā)熱情況都比較小。c. 低速時(shí)性能較好,穩(wěn)速精度較高,調(diào)速范圍較寬。d. 它與快速響應(yīng)的電機(jī)相配合時(shí),動(dòng)態(tài)響應(yīng)較快,動(dòng)態(tài)抗擾能力較強(qiáng),系統(tǒng)頻帶較寬。e. 功率開(kāi)關(guān)器件工作在開(kāi)關(guān)狀態(tài)時(shí),導(dǎo)通損耗較少,當(dāng)開(kāi)關(guān)頻率合適時(shí),開(kāi)關(guān)損耗較小,因此裝置的效率較高。f. 當(dāng)直流電源用不控整流時(shí),電網(wǎng)的功率因數(shù)高于相控整流器。

21、正因?yàn)橐陨系膬?yōu)點(diǎn),所以直流PWM調(diào)速系統(tǒng)的應(yīng)用范圍廣泛,特別是在中小容量的高動(dòng)態(tài)性能系統(tǒng)當(dāng)中。1.3 單片機(jī)電路設(shè)計(jì)1.3.1 STC89C52 單片機(jī)簡(jiǎn)介STC89C52型號(hào)的單片機(jī)是由宏晶科技公司推出的新一代具備高速、低功耗、超強(qiáng)抗干擾能力的單片機(jī),它的指令代碼完全能夠兼容傳統(tǒng)的8051型單片機(jī),它可以任意選擇12時(shí)鐘機(jī)器周期或是6時(shí)鐘機(jī)器周期。其主要的特征性能如下:1) 工作電壓為3.3V5.5V(5V單片機(jī))或是2.0V3.8V(3V單片機(jī));2) 工作頻率范圍為040MHz,相當(dāng)于普通8051單片機(jī)的080MHz,其實(shí)際的工作頻率更可以達(dá)到48MHz;3) 具有8K字節(jié)的用戶應(yīng)用程序

22、空間;4) 集成了512字節(jié)的RAM; 系統(tǒng)硬件部分設(shè)計(jì) 65) 具備EEPROM功能; 6)具有看門(mén)狗功能;6) 一共有3個(gè)16位的定時(shí)器/計(jì)數(shù)器,即為定時(shí)器T0、T1、T2;7) 其外部中斷共有4路,下降沿中斷或低電平觸發(fā)電路,外部中斷的低電平觸發(fā)方式可以喚醒單片機(jī)的Power down模式;8) 具有通用異步串行口(UART),而且可以通過(guò)使用定時(shí)器軟件來(lái)實(shí)現(xiàn)多個(gè)UART;10)工業(yè)級(jí)的工作溫度范圍為-40+85,商業(yè)級(jí)的則為075。圖1-2 STC89C52引腳圖1.3.2 單片機(jī)最小系統(tǒng)單片機(jī)的最小系統(tǒng),或是單片機(jī)最小應(yīng)用系統(tǒng),是指只運(yùn)用最少的元件組成的并能夠直接運(yùn)行的單片機(jī)系統(tǒng)。對(duì)

23、于 51 系列的單片機(jī)來(lái)說(shuō),最小系統(tǒng)一般都包括了這幾個(gè)部分:單片機(jī)、晶振電路和復(fù)位電路。下圖就是一個(gè) 51 單片機(jī)的最小系統(tǒng)電路圖:J2STC89C52 系統(tǒng)硬件部分設(shè)計(jì) 7P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST9P3.0(RX D )10P3.1(TX D )11P3.2(IN T0)12P3.3(IN T1)13P3.4(T0)14P3.5(T1)15P3.6(WR)16P3.7(RD )17X TA L218X TA L119G ND20(A 8)P2.021(A 9)P2.122(A 10)P2.223(A 11)P2.324(A 12)

24、P2.425(A 13)P2.526(A 14)P2.627(A 15)P2.728PSEN29A LE/PRO G30EA/VPP31(A D 7)P0.732(A D 6)P0.633(A D 5)P0.534(A D 4)P0.435(A D 3)P0.336(A D 2)P0.237(A D 1)P0.138(A D 0)P0.039V CC40U 389C51/C5212MHzC2230C23 30R2710K+ C110uF1234K SRESETV CCV CC123456789J?CON 9圖 1-3 單片機(jī)最小系統(tǒng)圖C2C330pf30pf 系統(tǒng)硬件電路部分設(shè)計(jì)81.3.2.

25、1 復(fù)位電路當(dāng)單片機(jī)系統(tǒng)在運(yùn)行過(guò)程當(dāng)中受到了環(huán)境的干擾出現(xiàn)程序跑飛的情況時(shí),按下復(fù)位按鈕后,其內(nèi)部的程序就會(huì)自動(dòng)復(fù)位從頭開(kāi)始執(zhí)行。在單片機(jī)系統(tǒng)中,系統(tǒng)上電啟動(dòng)的時(shí)候便會(huì)自動(dòng)復(fù)位一次,當(dāng)復(fù)位按鍵按下后系統(tǒng)會(huì)再一次復(fù)位,若釋放后再按下,系統(tǒng)還會(huì)繼續(xù)進(jìn)行復(fù)位操作。所以可以通過(guò)復(fù)位按鍵的斷開(kāi)和閉合來(lái)在運(yùn)行的系統(tǒng)當(dāng)中控制其是否復(fù)位。1.3.2.2 晶振電路晶振就是晶體振蕩器的簡(jiǎn)稱。晶振就是用來(lái)給單片機(jī)提供工作信號(hào)脈沖的, 這個(gè)脈沖就是單片機(jī)的工作速率。如用12MHz的晶振時(shí),則單片機(jī)的工作速度就是每秒12M。1.4 測(cè)速電路設(shè)計(jì)測(cè)速部分電路設(shè)計(jì)如下圖所示:圖1-4 測(cè)速部分電路圖1.4.1 霍爾傳感器簡(jiǎn)

26、介霍爾傳感器 A3144 是由 Allegro Micro Systems 公司生產(chǎn)的寬溫、開(kāi)關(guān)型霍爾效應(yīng)傳感器,其工作溫度的范圍可以達(dá)到-40 150。電壓調(diào)整電路、反相電源保護(hù)電路、溫度補(bǔ)償電路、微信號(hào)放大器、施密特觸發(fā)器和 OC 門(mén)輸出極以及霍爾元件組成了其總體結(jié)構(gòu),通過(guò)上拉電阻可以將其輸出接入到 CMOS 邏輯電路上。它一共有兩種封裝的方法,分別是 3 腳貼片微型封裝,其后綴是“LH”以及 3 腳直插式的封裝,其后綴是“UA”。A3144E 系列的單極高溫霍爾傳感器是由差分放大器、穩(wěn)壓電源、霍爾電壓發(fā)生器、施密特觸發(fā)器以及輸出放大器組成的磁敏式傳感電路。它是一種單磁極工作形式的磁敏電路

27、,適用于在矩形或者柱形的磁體下來(lái)進(jìn)行工作。它的輸入是磁感應(yīng) 系統(tǒng)硬件部分設(shè)計(jì) 9強(qiáng)度,輸出則是一個(gè)數(shù)字電壓的信號(hào)。其可以運(yùn)用在汽車工業(yè)以及軍事工程等領(lǐng)域當(dāng)中。 系統(tǒng)硬件電路部分設(shè)計(jì)10產(chǎn)品特點(diǎn): 體積小、靈敏度高、響應(yīng)速度快、精確度高、可靠性高、溫度性能好。典型應(yīng)用:非接觸式開(kāi)關(guān)、汽車點(diǎn)火器、剎車電路、位置及速度檢測(cè)與控制、報(bào)警裝置、紡織控制系統(tǒng)。圖 1-5 霍爾傳感器的接線圖1.4.2 霍爾傳感器測(cè)速原理本設(shè)計(jì)中測(cè)量電機(jī)轉(zhuǎn)速首先就是要將電機(jī)的轉(zhuǎn)速表現(xiàn)為單片機(jī)能夠識(shí)別出來(lái)的脈沖信號(hào),從而進(jìn)行脈沖計(jì)數(shù)來(lái)得到轉(zhuǎn)速。這里選用了霍爾傳感器來(lái)作為電機(jī)轉(zhuǎn)速檢測(cè)的器件是因?yàn)榛魻杺鞲衅髯鳛橐环N用來(lái)測(cè)量轉(zhuǎn)速的傳

28、感器,它具有結(jié)構(gòu)穩(wěn)固、體積小、重量輕、壽命長(zhǎng)和安裝便利等優(yōu)點(diǎn)。當(dāng)電機(jī)在轉(zhuǎn)動(dòng)時(shí),帶動(dòng)了傳感器動(dòng)作,產(chǎn)生出對(duì)應(yīng)頻率的脈沖信號(hào),在經(jīng)過(guò)信號(hào)處理后再將其輸出到計(jì)數(shù)器或者其它的脈沖計(jì)數(shù)裝置當(dāng)中,從而來(lái)實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速的測(cè)量。1.5 液晶顯示電路設(shè)計(jì)液晶顯示部分電路圖如下圖所示:GND1VCC2V03RS4R/W5EN6D07D18D29D310D411D512D613D714A15K16U 3LCD _1602R610KR71KD0D1D2D3D4D5D6D7RSENV CCV CCV CCRW圖 1-6 液晶部分電路圖 系統(tǒng)硬件電路部分設(shè)計(jì)111.5.1 LCD1602 功能簡(jiǎn)介L(zhǎng)CD 1602 也被稱

29、作為 1602 字符型液晶顯示屏。它是專門(mén)用來(lái)顯示字母、數(shù)字以及符號(hào)等的點(diǎn)陣型液晶模塊,它由若干個(gè)或等點(diǎn)陣字符位構(gòu)成,每一個(gè)75115點(diǎn)陣字符位都能夠顯示一個(gè)字符。每位之間有一個(gè)點(diǎn)距的間隔,同時(shí)每行之間也有一個(gè)間隔,這樣既起到了字符間距的作用,又起到了行間距的作用。也正是由于這樣,它并不能夠顯示圖形。LCD 1602 是指顯示的內(nèi)容形式為,即可以顯示兩216行,每行有 16 個(gè)字符的液晶模塊。圖 1-7 LCD 1602 引腳圖1.5.2 LCD1602 性能參數(shù)下表為 LCD1602 的一些主要性能參數(shù):表 1-1 芯片的主要技術(shù)參數(shù)及應(yīng)用配置LCD1602 的各引腳如上圖所示,它一共有 1

30、6 個(gè)引腳,各個(gè)引腳的功能說(shuō)明如下:1) VSS:電源的地;2) VDD:電源的正極;3) VL:液晶顯示偏壓信號(hào),對(duì)比度的調(diào)整端,接地時(shí)為最高,接正電源時(shí)為最低,可以接 10K 電位器來(lái)調(diào)整;4) RS:寄存器選擇,高電平時(shí)是選擇數(shù)據(jù)寄存器,低電平時(shí)是選擇指令寄存器;顯示容量162 個(gè)字符芯片工作電壓4.55.5V工作電流2.0mA(5.0V)模塊最佳工作電壓5.0V字符大小2.954.35(WXH)mm 系統(tǒng)硬件電路部分設(shè)計(jì)125) R/W:讀/寫(xiě)選擇,高電平時(shí)是讀操作,低電平時(shí)是寫(xiě)操作;6) E:使能端口,當(dāng)該端口由高電平跳變?yōu)榈碗娖綍r(shí),液晶模塊就開(kāi)始執(zhí)行命令; 系統(tǒng)硬件電路部分設(shè)計(jì)13

31、7) BLA:背光源的正極;BLK:背光源的負(fù)極;8) D0D7:數(shù)據(jù)端口。1.6 按鍵電路設(shè)計(jì)單片機(jī)的鍵盤(pán)電路設(shè)計(jì)有兩種:獨(dú)立鍵盤(pán)和矩陣鍵盤(pán)。獨(dú)立式鍵盤(pán)是將按鍵的一端與單片機(jī)的 I/O 口相接,而按鍵的另一端接地。用這種接法時(shí)程序比較簡(jiǎn)單而且系統(tǒng)更加的穩(wěn)定;而矩陣式鍵盤(pán)接法的程序則比較復(fù)雜,但是占用單片機(jī)的 I/O口較少。根據(jù)本電路設(shè)計(jì)的功能要求以及方便程度,這里選用了獨(dú)立式的鍵盤(pán)來(lái)控制。獨(dú)立式鍵盤(pán)的實(shí)現(xiàn)方法是利用單片機(jī)讀取電平的高或低來(lái)判斷是否有哪個(gè)按鍵被按下。按鍵的一端接到單片機(jī)的 I/O 口,而另一端接地,程序開(kāi)始的時(shí)候?qū)⒋薎/O 口置于高電平,沒(méi)有按鍵按下的時(shí)候該 I/O 口保持高電

32、平。當(dāng)一個(gè)按鍵被按下時(shí),其接的 I/O 口與地短路使 I/O 口變成了低電平。按鍵松開(kāi)后,單片機(jī)的內(nèi)部上拉電阻使 I/O 口繼續(xù)保持著高電平的狀態(tài)。我們只需要在程序中查找此時(shí) I/O 口的電平狀態(tài)就能夠知道此時(shí)是否有按鍵被按下或松開(kāi)了。在單片機(jī)對(duì)鍵盤(pán)操作處理的時(shí)候會(huì)遇到一個(gè)重要的問(wèn)題,那就是鍵盤(pán)的消抖。該抖動(dòng)是一種機(jī)械式的抖動(dòng),當(dāng)按鍵按下時(shí)其內(nèi)部的彈片會(huì)有一個(gè)輕微的跳動(dòng),會(huì)經(jīng)過(guò)一段短暫的時(shí)間才能完全的接觸。抖動(dòng)時(shí)間一般為 1020ms 之間,這種抖動(dòng)對(duì)于單片機(jī)來(lái)說(shuō)是很漫長(zhǎng)的。消除抖動(dòng)的方法共有硬件消抖和軟件消抖兩種。其中硬件消抖就是用電路來(lái)對(duì)抖動(dòng)部分進(jìn)行處理,從而來(lái)消除其抖動(dòng)的影響。而軟件消抖

33、并不是去掉按鍵的抖動(dòng),而是避開(kāi)按鍵抖動(dòng)的這部分時(shí)間,當(dāng)按鍵穩(wěn)定之后再對(duì)其動(dòng)作進(jìn)行處理。在本設(shè)計(jì)當(dāng)中,為了方便與簡(jiǎn)潔我們選擇了使用軟件消抖的方法。具體的實(shí)現(xiàn)方法是在當(dāng)檢測(cè)到按鍵按下時(shí),程序中立即延時(shí) 1020ms 左右以避開(kāi)抖動(dòng)的這部分時(shí)間。待延時(shí)結(jié)束之后再讀單片機(jī) I/O 口的值,如果值為 1,則表示延時(shí)不到1020ms,可以將其視為干擾信號(hào);若值為 0,則代表有按鍵按下,并繼續(xù)執(zhí)行相應(yīng)的程序。該電路設(shè)計(jì)是用了按鍵接低的方式來(lái)讀取按鍵的動(dòng)作,在單片機(jī)初始時(shí)為高電平,當(dāng)有按鍵按下的時(shí)候,會(huì)給單片機(jī)一個(gè)低電平信號(hào),然后單片機(jī)再對(duì)該信號(hào)進(jìn)行處理。具體的硬件設(shè)計(jì)如下圖所示: 系統(tǒng)硬件電路部分設(shè)計(jì)141

34、234K 1zheng1234K 2fan1234K 3add1234K 4dec1234K 5stopP10P11P12P13P14圖 1-8 按鍵部分電路圖adddeczhengfanstart/stop PWM 信號(hào)發(fā)生電路設(shè)計(jì)152. PWM 信號(hào)發(fā)生電路設(shè)計(jì)2.1 PWM 控制的原理PWM 控制就是一種對(duì)脈沖的寬度進(jìn)行調(diào)制的技術(shù)。它通過(guò)產(chǎn)生矩形波并改變其占空比來(lái)達(dá)到對(duì)脈沖寬度進(jìn)行調(diào)制的目的。它是一種對(duì)模擬信號(hào)電平進(jìn)行數(shù)字編碼的方式,通過(guò)使用高分辨率的計(jì)數(shù)器,調(diào)制其方波的占空比用來(lái)對(duì)模擬信號(hào)的電平進(jìn)行編碼,同時(shí)又是一種通過(guò)微處理器的數(shù)字輸出來(lái)控制模擬電路的一種非常奏效而且方便的技術(shù),其

35、廣泛的被應(yīng)用于電機(jī)調(diào)速、溫度和壓力的控制等眾多領(lǐng)域當(dāng)中。其模擬信號(hào)的值可以連續(xù)變化,它并沒(méi)有限制其幅度以及時(shí)間的分辨率。2.2 H 橋驅(qū)動(dòng)電路原理由于該設(shè)計(jì)的要求是要對(duì)電機(jī)進(jìn)行轉(zhuǎn)速和旋轉(zhuǎn)方向的控制還要對(duì)電機(jī)以及電路有一定的保護(hù)功能,所以電機(jī)驅(qū)動(dòng)電路選用了 H 橋驅(qū)動(dòng)電路。這樣可以使調(diào)速更方便,并且使電路有較強(qiáng)的驅(qū)動(dòng)和保護(hù)能力。之所以稱之為 H 橋式驅(qū)動(dòng)電路,是因?yàn)樗男螤钆c英文中大寫(xiě)字母“H”相似。該電路是由 4 個(gè)三極管和一個(gè)電機(jī)組成的,中間一個(gè)電機(jī),兩邊是各兩個(gè)三極管。圖 2-1 H 橋式驅(qū)動(dòng)電路圖要使電機(jī)旋轉(zhuǎn)起來(lái),則必須是要讓電路對(duì)角上的一對(duì)三極管都導(dǎo)通。而不同的對(duì)角線上的兩個(gè)三級(jí)管導(dǎo)通

36、會(huì)改變電流的流向,從而改變電機(jī)的轉(zhuǎn)向。如上圖所示,要使電機(jī)正轉(zhuǎn)則必須使 Q1 和 Q4 導(dǎo)通。這時(shí)電流從電源正極流出經(jīng)過(guò) Q1 后從左向右的流過(guò)電機(jī),然后經(jīng)過(guò) Q4 流出到電源的負(fù)極,從而來(lái)驅(qū)動(dòng)電機(jī)朝順時(shí)針?lè)较蛐D(zhuǎn),此時(shí)電機(jī)正轉(zhuǎn)。過(guò)程如下圖所示: PWM 信號(hào)發(fā)生電路設(shè)計(jì)16圖 2-2 H 橋驅(qū)動(dòng)電機(jī)正轉(zhuǎn)反之,要使電機(jī)反轉(zhuǎn)則要使 Q2 和 Q3 導(dǎo)通。這時(shí)電流流過(guò) Q3 再經(jīng)過(guò)電機(jī),然后從 Q2 流出,驅(qū)動(dòng)電機(jī)朝逆時(shí)針?lè)较蜣D(zhuǎn)動(dòng),電機(jī)反轉(zhuǎn)。過(guò)程如下圖所示:圖 2-3 H 橋驅(qū)動(dòng)電機(jī)反轉(zhuǎn)要注意的是,要確保電路中同側(cè)的兩個(gè)三極管不能同時(shí)導(dǎo)通。否則,電流會(huì)直接流過(guò)兩個(gè)三極管,沒(méi)有流過(guò)負(fù)載,電流可能會(huì)過(guò)

37、大而燒壞器件。2.3 系統(tǒng)驅(qū)動(dòng)電路的設(shè)計(jì)本電機(jī)驅(qū)動(dòng)電路的設(shè)計(jì)是基于 PWM 原理來(lái)設(shè)計(jì)的,將 PWM 技術(shù)與電機(jī)的驅(qū)動(dòng)電路相結(jié)合。具體的電路設(shè)計(jì)如下圖所示: PWM 信號(hào)發(fā)生電路設(shè)計(jì)17M 1D JV CCbceQ 3S8050bceQ 6S8050bceQ 4S8550bceQ 5S8550R41KR51KD 14148D 24148D 34148D 44148R11KR21KbceQ 1S8050bceQ 2S8050V CCP34P37C4104圖 2-4 電機(jī)驅(qū)動(dòng)電路該電路主要由 PNP 型三極管和 NPN 型三極管以及二極管、電阻等構(gòu)成。PNP 型的三極管是低電平輸入時(shí)導(dǎo)通,NPN

38、型的三極管是高電平輸入時(shí)導(dǎo)通。Q1 和 Q2 是NPN 型三極管,當(dāng) Q1 和 Q2 導(dǎo)通時(shí),Q3 和 Q6 是截止的,Q4 和 Q5 是導(dǎo)通的,此時(shí)電機(jī)兩端都是接地,電機(jī)不轉(zhuǎn)。而當(dāng) Q1 和 Q2 截止時(shí),Q3 和 Q6 是導(dǎo)通的,Q4 和 Q5 是截止的,電機(jī)兩端都接 VCC,電機(jī)也是不轉(zhuǎn)的。但是當(dāng) Q1 導(dǎo)通,Q2 截止時(shí),Q4 和Q6 導(dǎo)通,Q3 和 Q5 截止,此時(shí)電流經(jīng) Q6 流向電機(jī)再經(jīng) Q4 流向地,電流逆時(shí)針流驅(qū)動(dòng)電機(jī)反轉(zhuǎn)。同理,當(dāng) Q1 截止,Q2 導(dǎo)通時(shí),Q3 和 Q5 導(dǎo)通,Q4 和 Q6 截止,此時(shí)電流經(jīng) Q3 流向電機(jī)再經(jīng) Q5 流向地,電流順時(shí)針流驅(qū)動(dòng)電機(jī)正轉(zhuǎn)。然

39、后可以通過(guò) PWM輸出控制電機(jī)的轉(zhuǎn)速。圖中的 4 個(gè)二極管為續(xù)流二極管,可以防止電機(jī)產(chǎn)生的反向電動(dòng)勢(shì)以及晶體管產(chǎn)生的問(wèn)題對(duì)整個(gè)電路的影響,起到保護(hù)和續(xù)流的作用。 系統(tǒng)軟件部分設(shè)計(jì)183. 系統(tǒng)軟件部分設(shè)計(jì)3.1 系統(tǒng)軟件總體設(shè)計(jì)軟件和硬件要相互配合才能形成一個(gè)完整的系統(tǒng),所以軟件的編寫(xiě)不僅重要而且要與硬件相匹配,這樣才能充分發(fā)揮兩者的作用,從而實(shí)現(xiàn)整個(gè)系統(tǒng)的功能。本設(shè)計(jì)的軟件程序設(shè)計(jì)通過(guò)用 KEIL 軟件用 C 語(yǔ)言來(lái)編程。主要有主程序、LCD1602 定義程序、初始化程序、鍵盤(pán)掃描程序、轉(zhuǎn)速顯示程序、占空比顯示程序、中斷程序以及 PWM 占空比輸出程序等部分組成。具體各部分的程序介紹如下。3

40、.2 主程序設(shè)計(jì)主程序的設(shè)計(jì)主要是對(duì)系統(tǒng)各部分顯示出的初始值、標(biāo)志位以及電機(jī)的初始狀態(tài)等進(jìn)行了設(shè)置,并有初始化子程序、鍵盤(pán)掃描子程序的調(diào)用,實(shí)時(shí)的檢測(cè)按鍵等部分的動(dòng)作,以便及時(shí)的做出相應(yīng)的程序動(dòng)作。下圖為主程序設(shè)計(jì)的流程圖:圖 3-1 主程序流程圖部分程序如下所示:m=50; /占空比初始為 50zhuansu=0; /轉(zhuǎn)速初值為 0flag=0;zheng=1; /設(shè)定電機(jī)初始為正轉(zhuǎn)while(1)keyscan(); /調(diào)用鍵盤(pán)掃描程序 設(shè)定占空比、轉(zhuǎn)速初值初始化標(biāo)志位和電機(jī)狀態(tài)調(diào)用鍵盤(pán)掃描程序調(diào)用初始化程序開(kāi) 始是否有按鍵按下?執(zhí)行相應(yīng)程序YN 系統(tǒng)軟件部分設(shè)計(jì)193.3 鍵盤(pán)掃描程序設(shè)

41、計(jì)鍵盤(pán)部分是由五個(gè)獨(dú)立按鍵組成的,分別控制了電機(jī)的正轉(zhuǎn),反轉(zhuǎn),加速,減速以及開(kāi)始/停止這幾個(gè)功能。在程序中用了五段 if 語(yǔ)句來(lái)分別判斷五個(gè)按鍵的狀態(tài),但由于按鍵本身按下時(shí)會(huì)有抖動(dòng)對(duì)判斷其是否真正按下有一定的干擾,所以在程序中加了延時(shí)程序來(lái)避開(kāi)按鍵的抖動(dòng),從而能判斷按鍵是否真正地按下,以便進(jìn)行每個(gè)按鍵按下后設(shè)置的動(dòng)作。其中加速和減速按鍵按下后的效果會(huì)顯示在LCD1602 上。其程序部分的流程圖如下圖所示:圖 3-2 鍵盤(pán)掃描程序流程圖3.4 初始化程序設(shè)計(jì)在這部分的程序中由于后面用到了中斷程序,所以在這里對(duì)單片機(jī)的定時(shí)器 0和定時(shí)器 1 以及外部中斷 1 進(jìn)行了初始值、觸發(fā)方式等的設(shè)置,以便后

42、面執(zhí)行程序時(shí)能夠有所依據(jù)和條件。然后對(duì) LCD1602 的屏幕顯示樣式進(jìn)行了初始化設(shè)置,并設(shè)置了其初使時(shí)要顯示出的字符內(nèi)容和預(yù)留出的空位,為后面的顯示內(nèi)容設(shè)置提供基礎(chǔ)。程序的流程圖如下圖所示: 系統(tǒng)軟件部分設(shè)計(jì)20圖 3-3 初始化程序流程圖部分程序如下所示:write_com(0 x01); /lcd 初始化write_com(0 x38); /設(shè)置為 2 行 5*7 顯示write_com(0 x0c); /關(guān)閉顯示光標(biāo)TMOD=0 x01; /選用定時(shí)器方式1(16 位計(jì)數(shù)方式) TH1=0 xd8;TL1=0 xf0; /定時(shí)器裝入初值 10ms EA=1; /開(kāi)總中斷 ET1=1;

43、/定時(shí)器 1 開(kāi)中斷TR1=1; /定時(shí)器 1 啟動(dòng)EX1=1; /外部中斷 1 開(kāi)啟IT1=1; /外部中斷 1 為下降沿觸發(fā)方式 TH0=0 xff;TL0=0 x9c; /定時(shí) 100sET0=1; /定時(shí)器 0 開(kāi)中斷TR0=1; /定時(shí)器 0 啟動(dòng)write_com(0 x80); /從第一行第一位開(kāi)始顯示write_data(V); write_data(:); /顯示“V:”write_com(0 x87); /從第一行第八位開(kāi)始顯示write_data(r);write_data(p);write_data(m); /顯示“rpm”write_com(0 xc0); /從第二行

44、第一位開(kāi)始顯示write_data(z);write_data(h);write_data(a);write_data(n);write_data(k);write_data(o);write_data(n);write_data(g);write_data(b);1602 初始化中斷初始化設(shè)置 1602 初始顯示狀態(tài)并顯示設(shè)置定時(shí)器初始狀態(tài)程序入口返 回 系統(tǒng)軟件部分設(shè)計(jì)21write_data(i); write_data(:); /顯示“zhankongbi:” 系統(tǒng)軟件部分設(shè)計(jì)22LCD1602 顯示的第一行地址是從 0 x80 開(kāi)始,第二行是從 0 xC0 開(kāi)始的。定時(shí)器方式 1 為

45、用高低各 8 位共 16 位來(lái)表示設(shè)定值。其中,兩個(gè)定時(shí)器的值的計(jì)算過(guò)程如下:該設(shè)計(jì)的晶振為 12MHz,所以一個(gè)機(jī)器周期為: s1s10*12126 (3-1)實(shí)際定時(shí)時(shí)間為: pc*TXT (3-2)其中 Tc 為所需計(jì)時(shí)的時(shí)間,X 為計(jì)數(shù)的次數(shù),Tp 為機(jī)器周期。所以當(dāng)計(jì)時(shí)時(shí)間為 10ms 時(shí),可求出 X: 10000s1ms10pcTTX (3-3)再將 X 求補(bǔ)碼,即求得定時(shí)器的計(jì)數(shù)初值: XX-2n)補(bǔ)( (3-4)因?yàn)檫x用了工作方式 1,則 n=16,即: 5553610000-65536-216XX)補(bǔ)( (3-5)再將 55536 分解成兩個(gè) 8 位 16 進(jìn)制數(shù),求得高 8

46、 位為 d8H 裝入 THx,低 8 位為f0H 裝入 TLx 中。同理,可求得計(jì)時(shí)為 100s 時(shí),高 8 位為 ffH,低 8 位為 9cH。3.5 LCD1602 設(shè)置和顯示程序設(shè)計(jì)3.5.1 LCD1602 指令和數(shù)據(jù)讀寫(xiě)程序設(shè)計(jì)LCD1602 的使用需先向其發(fā)送指令,讀取之后執(zhí)行指令設(shè)置送進(jìn)數(shù)據(jù)時(shí)所用的地址位置,再讀取數(shù)據(jù)并執(zhí)行。其中寫(xiě)入指令和數(shù)據(jù)的程序框圖如下圖所示:設(shè)置 1602 狀態(tài)選擇控制對(duì)象執(zhí)行指令寫(xiě)指令/數(shù)據(jù)程序入口返 回設(shè)置 1602 狀態(tài)寫(xiě)指令/數(shù)據(jù)程序入口選擇控制對(duì)象執(zhí)行指令設(shè)置 1602 狀態(tài)寫(xiě)指令/數(shù)據(jù)程序入口選擇控制對(duì)象執(zhí)行指令 系統(tǒng)軟件部分設(shè)計(jì)23圖 3-4

47、 LCD1602 指令和數(shù)據(jù)讀寫(xiě)程序流程圖 系統(tǒng)軟件部分設(shè)計(jì)24部分程序如下所示:void write_com(uchar com) /向 1602 寫(xiě)控制指令 rs=0; /輸入指令 P0=com; delay(5); en=1; /讀取信息 delay(5); en=0; /執(zhí)行指令void write_data(uchar date)/向 1602 寫(xiě)數(shù)據(jù) rs=1; /輸入數(shù)據(jù) P0=date; delay(5); en=1; /讀取信息 delay(5); en=0; /執(zhí)行指令其中 LCD1602 的引腳 RS 為 0 時(shí)是輸入指令,為 1 時(shí)是輸入數(shù)據(jù);引腳 EN 為使能端口,為

48、 1 時(shí)是讀取信息,當(dāng) 1 0(下降沿)時(shí)執(zhí)行指令。因?yàn)樵谟布娐分?,是將單片機(jī)的 P0.0-P0.7 引腳和 LCD1602 的 D0-D7 引腳相連的,所以在程序中是將指令和數(shù)據(jù)的傳送與接收和單片機(jī)的 P0 口相關(guān)聯(lián)的。3.5.2 LCD1602 顯示轉(zhuǎn)速和占空比設(shè)置程序該部分程序的程序流程圖如下圖所示:圖 3-5 LCD1602 顯示轉(zhuǎn)速和占空比程序流程圖設(shè)置 1602 顯示地址(在第幾行的第幾位顯示)計(jì)算轉(zhuǎn)速/占空比執(zhí)行顯示程序顯 示程序入口返 回 系統(tǒng)軟件部分設(shè)計(jì)25轉(zhuǎn)速顯示部分的程序如下所示:write_com(0 x82);zhuansu=zhuansu*30; /將兩秒內(nèi)的計(jì)數(shù)

49、乘以 30 得到轉(zhuǎn)每分if(zhuansu/10000=0)write_data( ); elsewrite_data(zhuansu/10000+0 x30); /如果轉(zhuǎn)速的萬(wàn)位為 0 則顯示空格,否則正常顯示if(zhuansu/1000=0)write_data( );else write_data(zhuansu%10000/1000+0 x30); /如果轉(zhuǎn)速千位為 0 則顯示空格,否則正常顯示if(zhuansu/100=0)write_data( );elsewrite_data(zhuansu%10000%1000/100+0 x30); /如果轉(zhuǎn)速百位為 0 則顯示空格,否則

50、正常顯示if(zhuansu/10=0)write_data( );elsewrite_data(zhuansu%10000%1000%100/10+0 x30); /如果轉(zhuǎn)速十位為 0 則顯示空格,否則正常顯示write_data(zhuansu%10000%1000%100%10+0 x30); /顯示個(gè)位程序執(zhí)行說(shuō)明:該程序設(shè)置轉(zhuǎn)速是從 LCD1602 的第一行第三位開(kāi)始依次往后顯示的,然后將兩秒內(nèi)測(cè)得的轉(zhuǎn)速乘以 30 得到每分鐘(60S)的轉(zhuǎn)速。如果要顯示的轉(zhuǎn)速是 12345 轉(zhuǎn),則執(zhí)行的結(jié)果是分別將每一位依次計(jì)算顯示,從萬(wàn)位開(kāi)始計(jì)算,12345 除以 10000 取得數(shù)為 1,顯示在

51、萬(wàn)位相應(yīng)的位置;再計(jì)算千位,12345 除以10000 取余數(shù)為 2345,再除以 1000 取得數(shù)為 2,顯示在千位的位置上;計(jì)算百位,12345 除以 10000 取余數(shù)為 2345,再除以 1000 取余數(shù) 345,再除以 100 取得數(shù) 3,顯示在百位上;計(jì)算十位,12345 除以 10000 取余數(shù)為 2345,再除以 1000 取余數(shù)345,再除以 100 取余數(shù) 45,再除以 10 取得數(shù) 4,顯示在十位上;最后計(jì)算個(gè)位,12345 除以 10000 取余數(shù)為 2345,再除以 1000 取余數(shù) 345,再除以 100 取余數(shù) 45,再除以 10 取余數(shù) 5,顯示在個(gè)位上。因?yàn)?

52、LCD1602 是以 ASCII 碼的形式顯示的,所以顯示時(shí)都要加上個(gè) 0 x30,從而變?yōu)?ASCII 碼的形式在屏幕上顯示出來(lái),這樣就在屏幕上顯示出了轉(zhuǎn)速 12345。如果顯示的不是五位數(shù)字,則算出哪位等于 0,就把那位空出來(lái)不顯示,顯示后幾位數(shù)。占空比顯示部分程序如下所示: write_com(0 xcb);if(m/100=0)write_data( ); else write_data(m/100+0 x30); /如果占空比百位為 0 則顯示空格,否則正常顯示if(m/10=0)write_data( );elsewrite_data(m%100/10+0 x30); /如果占空比

53、十位為 0 則顯示空格,否則正常顯示write_data(m%100%10+0 x30);/顯示個(gè)位 系統(tǒng)軟件部分設(shè)計(jì)26程序執(zhí)行說(shuō)明:該程序設(shè)置了占空比是從 LCD1602 的第二行第十二位開(kāi)始往后顯示。如果顯示的占空比為 100,則先計(jì)算百位,100 除以 100 取得數(shù) 1,顯示在百位上;再計(jì)算十位,100 除以 100 取余數(shù) 0,除以 10 取得數(shù) 0,顯示在十位上;最后計(jì)算個(gè)位,100 除以 100 取余數(shù) 0,除以 10 取余數(shù) 0,顯示在個(gè)位上。因?yàn)長(zhǎng)CD1602 是以 ASCII 碼顯示的,所以每位都要加個(gè) 0 x30,從而變成以 ASCII 碼的形式在屏幕上顯示出來(lái),這樣就

54、在屏幕上顯示出了占空比 100。如果要顯示的占空比不是三位,則算出哪位等于 0,就把那位空出來(lái)不顯示,顯示后幾位數(shù)。3.6 各中斷程序設(shè)計(jì)3.6.1 定時(shí)器中斷 0 程序設(shè)計(jì)在初始化的程序中設(shè)置了定時(shí)器 0 的初值以及開(kāi)中斷和定時(shí)器 0 開(kāi)啟的指令,在定時(shí)時(shí)間到后便會(huì)進(jìn)入這部分程序執(zhí)行。本部分程序的設(shè)計(jì)主要是通過(guò)定時(shí)器 0的計(jì)時(shí)、預(yù)設(shè)的標(biāo)志位與占空比的比較來(lái)控制單片機(jī)的輸出占空比,從而達(dá)到利用PWM 技術(shù)控制電機(jī)轉(zhuǎn)速的功能要求。具體的程序流程圖如下圖所示:圖 3-6 定時(shí)器中斷 0 程序流程圖 系統(tǒng)軟件部分設(shè)計(jì)27程序中利用定時(shí)器 0 計(jì)時(shí)來(lái)使標(biāo)志位 flag_1 自加 1,然后利用該標(biāo)志位與

55、此時(shí)的占空比 m 做比較。定時(shí)器記一次為 100s,占空比最大為 100,則一個(gè)周期就為10ms,此周期頻率不變。如果小于 m,則讓單片機(jī)口繼續(xù)輸出來(lái)改變輸出時(shí)間的占空比,從而控制電機(jī)的轉(zhuǎn)速;如果大于或等于 m 時(shí)則停止單片機(jī)口的輸出,穩(wěn)定轉(zhuǎn)速。在過(guò)程中還會(huì)判斷電機(jī)是否開(kāi)啟,若開(kāi)啟,則判斷電機(jī)是正轉(zhuǎn)還是反轉(zhuǎn),不同方向時(shí)單片機(jī)的輸出口不一樣;若電機(jī)未啟動(dòng),則將停止單片機(jī)的輸出。部分程序如下所示:TH0=0 xff;TL0=0 x9c; /定時(shí) 100s flag_1+;if(flag_199)flag_1=1;if(kai=1) /如果 kai=1 電機(jī)啟動(dòng)if(zheng=1) /電機(jī)正轉(zhuǎn)if

56、(flag_1m)/小于占空比 m 則繼續(xù)輸出 PWM 信號(hào) out=0; out1=1; else /大于 m 則輸出為 0 out=1; out1=1; if(fan=1) /電機(jī)反轉(zhuǎn)if(flag_1m)/小于占空比 m 則繼續(xù)輸出 PWM 信號(hào) out=1;out1=0; else /大于 m 則輸出為 0 out=1;out1=1; if(kai=0) /kai=0 電機(jī)停止轉(zhuǎn)動(dòng),輸出為 0 out=1; out1=1; 3.6.2 定時(shí)器中斷 1 程序設(shè)計(jì)這部分程序是為計(jì)算顯示轉(zhuǎn)速設(shè)計(jì)的。在初始化程序中設(shè)有定時(shí)器 1 的初值、開(kāi)啟中斷和定時(shí)開(kāi)始的指令,定時(shí)器 1 定時(shí)結(jié)束后便進(jìn)入該

57、中斷程序。采用定時(shí)中斷 1 的方式編程,用定時(shí)器 1 和一個(gè)標(biāo)志位來(lái)計(jì)時(shí)。定時(shí)器定時(shí)時(shí)間為 10ms,flag為定時(shí)次數(shù),每次定時(shí)一次加 1,最大為 200,也就是一個(gè)定時(shí)周期為 2S。測(cè)這段時(shí)間的轉(zhuǎn)速,然后通過(guò)調(diào)用轉(zhuǎn)速顯示程序算出每分鐘的轉(zhuǎn)速并顯示出來(lái)。其流程圖 系統(tǒng)軟件部分設(shè)計(jì)28如下所示:圖 3-7 定時(shí)器中斷 1 程序流程圖3.6.3 外部中斷 1 程序設(shè)計(jì)該部分程序的執(zhí)行是由初始化程序中的外部中斷指令控制的,設(shè)置了為下降沿觸發(fā)方式。當(dāng)電機(jī)啟動(dòng),霍爾元件檢測(cè)到一次轉(zhuǎn)速后產(chǎn)生下降沿變化,這時(shí)觸發(fā)該中斷程序,轉(zhuǎn)速標(biāo)志位自加。單片機(jī)外部中斷 1 引腳與霍爾元件相連,主要是用來(lái)配合硬件電路中的

58、霍爾元件進(jìn)行轉(zhuǎn)速測(cè)量的。下圖為該程序的流程圖:圖 3-8 外部中斷 1 程序流程圖轉(zhuǎn)速、標(biāo)志位置0Yflag=200?標(biāo)志位 flag 自加調(diào)用顯示轉(zhuǎn)速程序定時(shí)器 1 定時(shí)N中斷程序入口返 回轉(zhuǎn)速標(biāo)志位自加中斷程序入口返 回 系統(tǒng)軟件部分設(shè)計(jì)29 系統(tǒng)軟件的調(diào)試304. 系統(tǒng)軟件的調(diào)試整個(gè)系統(tǒng)的調(diào)試過(guò)程可以分為軟件調(diào)試和硬件調(diào)試兩部分,其中軟件調(diào)試是硬件進(jìn)行調(diào)試的基礎(chǔ)。硬件調(diào)試是利用硬件系統(tǒng)進(jìn)行的,一些調(diào)試儀器包括萬(wàn)用表、示波器等,來(lái)檢測(cè)硬件系統(tǒng)中是否存在著問(wèn)題與故障。而軟件調(diào)試則是通過(guò)編譯、調(diào)試以及運(yùn)行程序來(lái)查找程序中存在的語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤的部分并加以改正的過(guò)程。4.1 主程序調(diào)試在主程序

59、的調(diào)試過(guò)程中,出現(xiàn)了一些問(wèn)題。編譯后出現(xiàn)了包括子程序調(diào)用的錯(cuò)誤、函數(shù)名未定義、初值沒(méi)設(shè)完整的一些錯(cuò)誤。再次對(duì)照子程序,補(bǔ)全了要設(shè)的初值,修改了子程序調(diào)用后。再次編譯就沒(méi)有出現(xiàn)這類錯(cuò)誤和警告了。4.2 各子程序的調(diào)試程序編寫(xiě)完成后,在進(jìn)行各子程序編譯時(shí)有錯(cuò)誤,出現(xiàn)了變量未定義的情況。在修改了之后,將程序下到硬件上運(yùn)行后,發(fā)現(xiàn) LCD1602 液晶屏上顯示有時(shí)會(huì)出現(xiàn)亂碼的情況。在經(jīng)過(guò)了單步運(yùn)行以及咨詢之后發(fā)現(xiàn)在顯示的時(shí)候,由于是兩行顯示,所以在顯示函數(shù)執(zhí)行完之后第二行會(huì)占用第一行的顯示位置,導(dǎo)致亂碼。于是在該程序之后加上一條指向液晶屏最后一個(gè)空地址的語(yǔ)句后,再編譯運(yùn)行,發(fā)現(xiàn)液晶屏實(shí)現(xiàn)了正常的顯示。

60、還有,在將程序下到硬件中進(jìn)行調(diào)試時(shí),有時(shí)會(huì)出現(xiàn)按下鍵后沒(méi)反應(yīng)的情況。在查了資料后發(fā)現(xiàn)是疏忽掉了按鍵去抖這一重要的問(wèn)題。由于按鍵的機(jī)械結(jié)構(gòu),內(nèi)部的小彈片會(huì)有跳動(dòng),導(dǎo)致了抖動(dòng),需要在程序中加入延時(shí)程序來(lái)避開(kāi)這一抖動(dòng)時(shí)間,并進(jìn)行再次的按鍵動(dòng)作確認(rèn),再執(zhí)行。按鍵的抖動(dòng)時(shí)間一般為 10ms-20ms 左右。下圖為按鍵在閉合和斷開(kāi)時(shí)電壓的抖動(dòng)波形圖: 圖 4-1 閉合與斷開(kāi)時(shí)的電壓抖動(dòng)波形圖在經(jīng)過(guò)了程序修改后,再次編譯下載到硬件中,按下按鍵后實(shí)現(xiàn)了程序中設(shè)置的對(duì)應(yīng)動(dòng)作。 系統(tǒng)軟件部分設(shè)計(jì)31 致謝32結(jié) 論本次畢業(yè)設(shè)計(jì)是由兩人一起完成的,雖然有軟件和硬件設(shè)計(jì)的區(qū)分,但在設(shè)計(jì)過(guò)程中還是需要大家一起互相討論,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論