單片機(jī)控制直流電機(jī)論文_第1頁
單片機(jī)控制直流電機(jī)論文_第2頁
單片機(jī)控制直流電機(jī)論文_第3頁
單片機(jī)控制直流電機(jī)論文_第4頁
單片機(jī)控制直流電機(jī)論文_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、汽車單片機(jī)技術(shù) 課程結(jié)課設(shè)計(jì)報(bào)告題目:單片機(jī)控制直流電動(dòng)機(jī)汽車服務(wù)工程2013 201301503018曾祥金指導(dǎo)教師111.1 設(shè)計(jì)要求 :(1)通過改變A/D輸入端可變電阻來改變 A/D的輸入電壓,D/A輸入檢測(cè)量大小,進(jìn)而改變直流電機(jī)的轉(zhuǎn)速。2)手動(dòng)控制。在鍵盤上設(shè)置兩個(gè)按鍵直流電動(dòng)機(jī)加速鍵和直流電機(jī)減速鍵。在手動(dòng)狀態(tài)下,每按一次鍵,電機(jī)的轉(zhuǎn)速按照約定的速率改變。1.2 設(shè)計(jì)原理直流電機(jī)是通過兩個(gè)磁場的互作用產(chǎn)生旋轉(zhuǎn)。其結(jié)構(gòu)如下頁圖所示, 固定部分(定子)上,裝設(shè)了一對(duì)直流勵(lì)磁的靜止的主磁極N和S,在旋轉(zhuǎn)部分(轉(zhuǎn)子)上裝設(shè)電樞鐵心。定子與轉(zhuǎn)子之間有一氣隙。 在電樞鐵心上放置了由A和X兩根

2、導(dǎo)體連成的電樞線圈,線圈的首端和末端分別連到兩個(gè)圓弧形的銅片上,此銅片稱為換向片。換向片之間互相絕緣, 由換向片構(gòu)成的整體稱為換向器。換向器固定在轉(zhuǎn)軸上,換向片與轉(zhuǎn)軸之間亦互相絕緣。在換向片上放置著一對(duì)固定不動(dòng)的電刷B1和B2,當(dāng)電樞旋轉(zhuǎn)時(shí),電樞線圈通過換向片和電刷與外電路接通。定子通過永磁體或受激勵(lì)電磁鐵產(chǎn)生一個(gè)固定磁場,由于轉(zhuǎn)子由一系列電磁體構(gòu)成, 當(dāng)電流通過其中一個(gè)繞組時(shí)會(huì)產(chǎn)生一個(gè)磁場。對(duì)有刷直流電機(jī)而言,轉(zhuǎn)子上的換向器和定 子的電刷在電機(jī)旋轉(zhuǎn)時(shí)為每個(gè)繞組供給電能。通電轉(zhuǎn)子繞組與定子磁體有相反極性,因而 相互吸引,使轉(zhuǎn)子轉(zhuǎn)動(dòng)至與定子磁場對(duì)準(zhǔn)的位置。當(dāng)轉(zhuǎn)子到達(dá)對(duì)準(zhǔn)位置時(shí),電刷通過換向 器為

3、下一組繞組供電,從而使轉(zhuǎn)子維持旋轉(zhuǎn)運(yùn)動(dòng)。直流電機(jī)的速度與施加的電壓成正比,輸出轉(zhuǎn)矩則與電流成正比。由于必須在工作期 間改變直流電機(jī)的速度,直流電機(jī)的控制是一個(gè)較困難的問題。直流電機(jī)高效運(yùn)行的最常 見方法是施加一個(gè)PWM(脈寬調(diào)制)方波,其占空比對(duì)應(yīng)于所需速度。電機(jī)起到一個(gè)低通 濾波器作用,將PWM!號(hào)轉(zhuǎn)換為有效直流電平。特別是對(duì)于微處理器驅(qū)動(dòng)的直流電機(jī),由 于PWMS號(hào)相對(duì)容易產(chǎn)生,這種驅(qū)動(dòng)方式使用的更為廣泛。1.3 整體設(shè)計(jì)為了使用單片機(jī)對(duì)電動(dòng)機(jī)進(jìn)行控制,對(duì)單片機(jī)的基本要求應(yīng)有足夠快點(diǎn)速度;有捕捉 功能??傮w設(shè)計(jì)方案如圖所示圖1.1總體設(shè)計(jì)方案鍵盤向單片機(jī)輸入相應(yīng)控制指令,由單片機(jī)通過P1

4、口輸出與轉(zhuǎn)速相應(yīng)的8位BCD編碼,該編碼通過DAC0832譯成相應(yīng)的模擬電壓,經(jīng)過信號(hào)放大實(shí)現(xiàn)電動(dòng)機(jī)轉(zhuǎn)向與轉(zhuǎn)速的控 制。可變電阻接ADC0808專變成相應(yīng)電壓的數(shù)字信號(hào),單片機(jī)通過 P2 口讀取,再由P1 口 輸出與轉(zhuǎn)速相應(yīng)的8位BCD編碼。電動(dòng)機(jī)的運(yùn)轉(zhuǎn)狀態(tài)則通過四位數(shù)碼管顯示出來。電動(dòng)機(jī),其它三位為電機(jī)轉(zhuǎn)速;反轉(zhuǎn)所處速度級(jí)以速度檔級(jí)數(shù)顯示。正轉(zhuǎn)時(shí)最高位顯示“三” 時(shí)最高位顯示“ F”,其它三位為電機(jī)轉(zhuǎn)速。每次電動(dòng)機(jī)啟動(dòng)后開始顯示,停止時(shí)數(shù)碼管顯示出“ 0000”。第二章系統(tǒng)硬件設(shè)計(jì)根據(jù)總設(shè)計(jì)方案可知硬件電路是以單片機(jī)為核心輔以適當(dāng)?shù)碾娐芬酝瓿梢蠊δ?。主要包括顯示模塊,A/D轉(zhuǎn)換模塊,D/A

5、轉(zhuǎn)換模塊等模塊。2.1按鍵電路2.1.1 AT89C51AT89C51是一種帶 4K 字節(jié) FLASH 存儲(chǔ)器(FPEROMFlash Programmable andErasable ReadOnly Memory)的低電壓、高性能 CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051 是,種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C

6、2051是它的一種精簡版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。ST 戌RT4US ! 6亠 WR : 6 Epq 7決i莘I'' -'-acfCi-TJXTAL1ni-h |-| jA pB-fcrJ.U/AWDC d JX r*i4rlJ.I/jRDI nrh o ZJl PiTX1AL2KIJ.2/ADDrt O MlFO.3/AD3 n £ J-A pJCrO.omLoan A JA PARSTrIJ n昭1尸nrh "T f fl JTKy ./Ay/PS.OMEP2.2/A10PtSM AL=申n *

7、AP3.3/A11P 2.A12P2.5/A13P2 啟/A1-AP2.7/A1Er3.o/nxDr 1 0r J 1ro. 1* AUr 1富 a A cJIV口e C JIfe 1 T 4r1 3r3_j/IUTir 1 H-LJ.f" lUri Oro.O/ 11r 1 uro.ujuunrJ frs.finvq斗I D負(fù)4ie DAS伯;DASf 33 ' ADB佰! DAS亠:二:r: 17 : DA7 34; AD5亦! aBD - ”I A&4: <31 : AP2 : 38; AP3:'I I_2I:. 2B :I ' .I !I

8、11 !0A9圖2.1按鍵電路的設(shè)計(jì)AT89C51提供以下標(biāo)準(zhǔn)功能:4k字節(jié)Flash閃速存儲(chǔ)器,128字節(jié)內(nèi)部RAM,32個(gè)I/O 口線,兩個(gè) 16 位定時(shí) /計(jì)數(shù)器,一個(gè) 5 向量兩級(jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口, 片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C51可降至OHz的靜態(tài)邏輯操作,并支持兩種軟件可 選的節(jié)電工作模式。空閑方式停止 CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存 RAM 中的內(nèi)容,但振蕩器停止工作并禁止其它所有 部件工作直到下一個(gè)硬件復(fù)位。2.1.2 按鍵電路如圖2.1所示,單片機(jī)的P2.1和P2.2 口分別接一個(gè)按鍵用于控制電機(jī)。

9、當(dāng)按下 S1鍵時(shí),電機(jī)轉(zhuǎn)速提高,進(jìn)入加速狀態(tài);當(dāng)按下 S2 鍵時(shí),電機(jī)轉(zhuǎn)速減慢,進(jìn)入減速狀態(tài)。通 過S1,S2兩個(gè)按鍵可以達(dá)到鍵盤控制電機(jī)的作用。2.2 顯示電路2.2.1 MAX7219MAX7219/MAX7221 是一種集成化的串行輸入 /輸出共陰極顯示驅(qū)動(dòng)器 ,它連接微處理器與8位數(shù)字的7段數(shù)字LED顯示,也可以連接條線圖顯示器或者 64個(gè)獨(dú)立的LED。其上包括一個(gè)片上的B型BCD編碼器、多路掃描回路,段字驅(qū)動(dòng)器,而且還有一個(gè)8*8的靜態(tài) RAM 用來存儲(chǔ)每一個(gè)數(shù)據(jù)。 只有一個(gè)外部寄存器用來設(shè)置各個(gè) LED 的段電流。MAX7221 與 SPI? 、 QSPI? 以及 MICROWIR

10、E? 相兼容,同時(shí)它有限制回轉(zhuǎn)電流的段驅(qū)動(dòng)來減少EMI (電磁干擾)。一個(gè)方便的四線串行接口可以聯(lián)接所有通用的微處理器。每 個(gè)數(shù)據(jù)可以尋址在更新時(shí)不需要改寫所有的顯示。 MAX7219/MAX7221 同樣允許用戶對(duì)每一個(gè)數(shù)據(jù)選擇編碼或者不編碼。整個(gè)設(shè)備包含一個(gè)150 uA的低功耗關(guān)閉模式,模擬和數(shù)字亮度控制, 一個(gè)掃描限制寄存器允許用戶顯示 1-8位數(shù)據(jù), 還有一個(gè)讓所有 LED 發(fā)光的 檢測(cè)模式。功能特點(diǎn):1、10MHz連續(xù)串行口2、獨(dú)立的LED段控制3、數(shù)字的譯碼與非譯碼選擇4、150 uA的低功耗關(guān)閉模式5、亮度的數(shù)字和模擬控制6、高電壓中斷顯示7、共陰極LED顯示驅(qū)動(dòng)限制回轉(zhuǎn)電流的段

11、驅(qū)動(dòng)來減少 EMI(MAX7221)9、SPI, QSPI, MICROWIRE 串行接口( MAX7221)10、24腳的DIP和SO封裝2.2.2工作原理I' 11;咨i _r.31XTALERsrrSEN 心 ea16202322171B73丄3ADINflLOADCCUKDPblMbl右1Mfi?DIU斗tl*6tIMlaCTHG7DOUT£2r 2135一 aTAjR-ftCS 1pV¥R .EOCr-eM.-P1,0P1.1P12P13PI.4PI.5PIBPI 7bUC5T-'TE:T -bill9圖2.2顯示電路的設(shè)計(jì)paci/ADOPO 1

12、/AC-1 rO 2/A&2 ro 3/A>3PO 卯AMPCJ5/AC-5 POO/ADOPO T/ADT電3備K2_2/AlUPZq/A12P2.5/A13P2.6/A14P2.7/A1SP3.0/RXO P3 1/TXP P3.J/I 麗 P3.3/INriF3.4TDP3.5/ri235 ; ADO理i燉t_3e丄也徑3出! ADS*32 ! AD6-3:.;瓦D7I -' 上; 空S !a1,;DAI :11 itA2*13 :14 !皿土1C !1C ;QAE:I?;frA7*5? !I _££;.如圖2.2所示,可變電阻接ADC0808轉(zhuǎn)

13、變成相應(yīng)電壓的數(shù)字信號(hào),單片機(jī)通過P0 口 讀取,再由P1 口輸出與轉(zhuǎn)速相應(yīng)的8位BCD編碼到MAX7219。經(jīng)由MAX7219處理后 通過四位數(shù)碼管顯示出來。電動(dòng)機(jī)所處速度級(jí)以速度檔級(jí)數(shù)顯示。正轉(zhuǎn)時(shí)最高位顯示“三”,其它三位為電機(jī)轉(zhuǎn)速;反轉(zhuǎn)時(shí)最高位顯示“ F”,其它三位為電機(jī)轉(zhuǎn)速。每次電動(dòng)機(jī)啟動(dòng)后開始顯示,停止時(shí)數(shù)碼管顯示出“ 0000”。2.3 A/D 轉(zhuǎn)換模塊2.3.1 ADC0808ADC0808 是美國國家半導(dǎo)體公司生產(chǎn)的 CMOS 工藝 8 通道, 8 位逐次逼近式 A/D 模 數(shù)轉(zhuǎn)換器。其內(nèi)部有一個(gè) 8 通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號(hào),只選通8路模擬輸入信號(hào)中的一

14、個(gè)進(jìn)行 A/D 轉(zhuǎn)換。是目前國內(nèi)應(yīng)用最廣泛的 8位通用 A/D 芯片。主要特性1)8 路輸入通道, 8 位 A/D 轉(zhuǎn)換器,即分辨率為 8 位。2)具有轉(zhuǎn)換起??刂贫恕?)4)單個(gè)+5V電源供電。轉(zhuǎn)換時(shí)間為100卩S時(shí)鐘為640kHz時(shí)),130卩s(時(shí)鐘為500kHz時(shí))5)6)工作溫度范圍為 -40+85攝氏度。7)低功耗,約 15mW。模擬輸入電壓范圍0+5V,不需零點(diǎn)和滿刻度校準(zhǔn)。ADC0809 的工作過程首先輸入 3 位地址,并使 ALE=1 ,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通 8 路 模擬輸入之一到比較器。 START 上升沿將逐次逼近寄存器復(fù)位。下降沿啟動(dòng) A/D 轉(zhuǎn)換,

15、 之后EOC輸出信號(hào)變低,指示轉(zhuǎn)換正在進(jìn)行。直到 A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指?A/D 轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號(hào)可用作中斷申請(qǐng)。當(dāng) OE 輸入高電平 時(shí),輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。數(shù)據(jù)傳送的關(guān)轉(zhuǎn)換數(shù)據(jù)的傳送A/D轉(zhuǎn)換后得到的數(shù)據(jù)應(yīng)及時(shí)傳送給單片機(jī)進(jìn)行處理。鍵問題是如何確認(rèn)A/D轉(zhuǎn)換的完成,因?yàn)橹挥写_認(rèn)完成后,才能進(jìn)行傳送。為此可采用下 述三種方式。(1)定時(shí)傳送方式對(duì)于一種A/D轉(zhuǎn)換器來說,轉(zhuǎn)換時(shí)間作為一項(xiàng)技術(shù)指標(biāo)是已知的和固定的。例如ADC0809轉(zhuǎn)換時(shí)間為128 S相當(dāng)于6MHz的MCS-51單片機(jī)共64個(gè)機(jī)器周期??蓳?jù)此設(shè)計(jì)一個(gè)延時(shí)子程序

16、,A/D轉(zhuǎn)換啟動(dòng)后即調(diào)用此子程序,延遲時(shí)間一到,轉(zhuǎn)換肯定已經(jīng)完 成了,接著就可進(jìn)行數(shù)據(jù)傳送。(2) 查詢方式A/D轉(zhuǎn)換芯片由表明轉(zhuǎn)換完成的狀態(tài)信號(hào),例如 ADC0808的EOC端。因此可以用查詢方式,測(cè)試EOC的狀態(tài),即可確認(rèn)轉(zhuǎn)換是否完成,并接著進(jìn)行數(shù)據(jù)傳送。(3) 中斷方式把表明轉(zhuǎn)換完成的狀態(tài)信號(hào)(EOC)作為中斷請(qǐng)求信號(hào),以中斷方式進(jìn)行數(shù)據(jù)傳送。不管使用上述哪種方式,只要一旦確定轉(zhuǎn)換完成,即可通過指令進(jìn)行數(shù)據(jù)傳送。首先圖2.3 AD轉(zhuǎn)換電路的設(shè)計(jì)送出口地址并以信號(hào)有效時(shí),OE信號(hào)即有效,把轉(zhuǎn)換數(shù)據(jù)送上數(shù)據(jù)總線,供單片機(jī)接受。O 1 1 5 6 -1 I - 1 1 1 I PFrrLipF

17、FH0J_02B10匚抑11CAI1?LA2 ,13品14UM*15.胡:1UIT3:2.3.2 工作原理如圖 2.3所示,外部電源通過滑動(dòng)變阻器向 ADC0808 輸入控制電壓信號(hào),經(jīng) A/D 處 理后,輸入到 AT89C51 中,交由 AT89C51 處理,進(jìn)行下一步動(dòng)作。2.4 D/A 轉(zhuǎn)換模塊2.4.1 DAC0832DAC0832 是 8 分辨率的 D/A 轉(zhuǎn)換集成芯片。與微處理器完全兼容。這個(gè) DA 芯片以 其價(jià)格低廉、 接口簡單、 轉(zhuǎn)換控制容易等優(yōu)點(diǎn), 在單片機(jī)應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。 D/A轉(zhuǎn)換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉(zhuǎn)換電路及轉(zhuǎn)換控制電路構(gòu)成。主要特

18、性參數(shù)1.分辨率為 8 位;2. 電流穩(wěn)定時(shí)間 1us;3. 可單緩沖、雙緩沖或直接數(shù)字輸入;4. 只需在滿量程下調(diào)整其線性度;5. 單一電源供電(+5V+15V);6. 低功耗, 20mW。DAC0832 的工作方式DAC0832 進(jìn)行 D/A 轉(zhuǎn)換,可以采用兩種方法對(duì)數(shù)據(jù)進(jìn)行鎖存。第一種方法是使輸入寄存器工作在鎖存狀態(tài),而 DAC 寄存器工作在直通狀態(tài)。具體 地說,就是使 和 都為低電平, DAC 寄存器的鎖存選通端得不到有效電平而直通;此外, 使輸入寄存器的控制信號(hào) ILE 處于高電平、 處于低電平,這樣,當(dāng) 端來一個(gè)負(fù)脈沖時(shí), 就可以完成 1 次轉(zhuǎn)換。第二種方法是使輸入寄存器工作在直通

19、狀態(tài),而 DAC 寄存器工作在鎖存狀態(tài)。就是使和為低電平,LE為高電平,這樣,輸入寄存器的鎖存選通信號(hào)處于無效狀態(tài)而直通;當(dāng)和端輸入1個(gè)負(fù)脈沖時(shí),使得DAC寄存器工作在鎖存狀態(tài),提供鎖存數(shù)據(jù)進(jìn)行轉(zhuǎn)換。 !i9'MSI:a I;匯.丄CS I 5 磺匚eEOp 7OE ' e卞匸FOMWFO.1;A'1FCi.:i:A吐XrAL2FCi3 血 FCiAAM FCi.Sl:AM 卩 0.6.AMRSTF07.-A*7P2川閹 p工細(xì)aPSEHP2.3ffi.i1ALEP 2腦世EAP2 5rA-3 F2W斗P 2,丁'"PIjCP3£tPl.1P

20、liF3£/hI0P13R33/NT1F2F3老EPI;陽曠PieF3.了匹PI 7P3.7?3EADI ,37A噸:AD?"3S;AE:薩AD5*3ADB:31.A礙:0 - _J 4r qd陽PT=D- LK £T10wIL珂曠*亟&沁WR2DExteTDt2DMDHD15DOoraVREFD|TRTBlouriGMDlounI心 匝DAjitCAWS321F1刃址143尊1妙7 佢ii20"ig圖2.4 DA轉(zhuǎn)換電路的設(shè)計(jì)242工作原理如上圖2.4所示,電壓信號(hào)輸入后經(jīng)過AD轉(zhuǎn)換輸入到AT89C51,由單片機(jī)通過P1 口 輸出與轉(zhuǎn)速相應(yīng)的8

21、位BCD編碼,該編碼通過DAC0832譯成相應(yīng)的模擬電壓,經(jīng)過信號(hào) 放大實(shí)現(xiàn)電動(dòng)機(jī)轉(zhuǎn)向與轉(zhuǎn)速的控制。2.5總電路圖由各子模塊設(shè)計(jì)給得出總硬件電路設(shè)計(jì)如下圖2.5所示LJi-E 聲 nuiifirs.gJVillO'OIiX.Oc-r-jOTirtUr nnnnrLninO r-IIrj3J03雖0 SQd_8.巳嚴(yán)00山空00址弓aaF產(chǎn) 小ck SfitognHsado<-JI§入旦名£ 盤Sd -盞3d 咅程I;:csco¥a9 tr曇二 】監(jiān)口廠 go: jgv 口豈 $6旨匸§e5ea 巻 吿 寸a1二吏山1=:i+£S駐

22、0A-glrJs 0-=17* u 專一Hoag *swo t_JO aiAD §0R5二 £4Lgqu 八 J旦* 樂S: 卜克7 罩3 " Ihbf&<¥ £ IL1M卅 £ S-NE _w?= Ed 殳Ha Cdsadad<c<<<ssRRf>Da &w-§iH"TT< O IN lu O &2)圖2.5硬件總電路圖13第三章系統(tǒng)軟件設(shè)計(jì)本系統(tǒng)編程部分工作采用 KELI-C51語言完成,采用模塊化的設(shè)計(jì)方法,與各子程序做為實(shí)現(xiàn)各部分功能和過程的

23、入口, 完成鍵盤輸入、按鍵識(shí)別、ADC0809讀取和DAC0832 輸出以及數(shù)碼管顯示等部分的設(shè)計(jì)。3.1系統(tǒng)主程序設(shè)計(jì)圖3.1主程序流程圖主程序流程圖如上圖3.1所示。系統(tǒng)初始化后,主程序通過調(diào)用各子程序完成預(yù)定動(dòng)作,達(dá)到控制電機(jī)正反轉(zhuǎn)及轉(zhuǎn)速的目的。4.1按鍵掃描程序按鍵掃描程序采用中斷方式,按下鍵,完成延時(shí)去抖動(dòng)、鍵碼識(shí)別、按鍵功能執(zhí)行。要實(shí)現(xiàn)按住加/減速鍵不放時(shí)恒加或恒減速直到放開停止,就需在判斷是否松開該按鍵 時(shí),每進(jìn)行一次增加/減少一定的占空比。按鍵掃描程序 流程圖如下圖3.2所示圖3.2按鍵掃描程序流程圖由流程圖設(shè)計(jì)程序如下:23/*按鍵掃描 */key()if(P12=0)/如果

24、按下,while(!P12)/去抖動(dòng)display();k=k;if(P16=0)/啟動(dòng)while(P16=0);IE=0x8a;if(P13=0)/加速while (P13=0);t+;if(t>=5) t=5;if(P14=0) / 減速while(P14=0);t-;if(t<1)t=1;停止if(P 15=O)while( P15=0);EA=O;P10=0;P11=0;4.2顯示子程序顯示子程序用于處理 DAC0832處理出來的8位BCD,利用數(shù)組方式定義顯示緩存區(qū),緩存區(qū)有8位,分別存放各個(gè)數(shù)碼管要顯示的值。流程圖如下圖3.3所示開始求各位數(shù)值,并送入各位對(duì)應(yīng)的緩沖區(qū)I

25、由流程圖設(shè)計(jì)程序如下:/*數(shù)碼管顯示 */display()uchar i;gw=x%10;/求速度個(gè)位值,送到個(gè)位顯示緩沖區(qū)sw=(x/10)%10;/求速度十位值,送到十位顯示緩沖區(qū)bw=(x/100)%10;/求速度百位值,送到百位顯示緩沖區(qū)qw=x/1000;/求速度千位值,送到千位顯示緩沖區(qū)for(i=0;i<4;)P2=ledi;if(i=0)/顯示個(gè)位P0=smggw;delays();else if(i=1)/顯示十位P0=smgsw;delays();else if(i=2)/顯示百位P0=smgbw;delays();else if(i=3)/顯示千位if(k=0)/

26、正轉(zhuǎn)時(shí)顯示 "三 "P0=0x49;delays();elseP0=0x71;/反轉(zhuǎn)時(shí)顯示 "F"i+;4.3 定時(shí)中斷處理程序定時(shí)中斷處理程序:采用定時(shí)方式 1,因?yàn)閱纹瑱C(jī)使用 12M 晶振,可產(chǎn)生最高約為65.5ms的延時(shí)。對(duì)定時(shí)器置初值B1E0H可定時(shí)20ms,即系統(tǒng)時(shí)鐘精度可達(dá)0.02s。當(dāng)20ms定時(shí)時(shí)間到,定時(shí)器溢出則響應(yīng)該定時(shí)中斷處理程序,完成對(duì)定時(shí)器的再次賦值,并對(duì)全 局變量 time 加 1,這樣,通過變量 time 可計(jì)算出系統(tǒng)的運(yùn)行時(shí)間。4.4 A/D轉(zhuǎn)換程序首先判斷A/D轉(zhuǎn)換是否允許進(jìn)行,當(dāng)WR又低變高時(shí)AD開始轉(zhuǎn)換,再讀取轉(zhuǎn)換數(shù)

27、據(jù)結(jié)果,把數(shù)據(jù)存到ad_data中,完成A/D轉(zhuǎn)換。流程圖如下圖4.4所示圖3.4 A/D轉(zhuǎn)換程序流程圖由流程圖設(shè)計(jì)程序如下:ADC0809 : /啟動(dòng) AD 轉(zhuǎn)換子程序 /void start_adc0809(void)/adcs=0;/允許進(jìn)行A/D轉(zhuǎn)換adwr=0;delay_50us(2);adwr=1; /WR 由低變高時(shí),AD 開始轉(zhuǎn)換/adcs=1;停止AD轉(zhuǎn)換delay_50us(10);/讀 A/D 數(shù)據(jù)子程序 / read_ad()uint ad_data;/允許讀ad1_7=0xff;/adcs=0;/adrd=0;/讀取轉(zhuǎn)換數(shù)據(jù)結(jié)果delay_50us(5);ad_da

28、ta=ad1_7;把數(shù)據(jù)存到ad_data中/adrd=1;adcs=1;/停止 A/D 讀取return(ad_data);第四章系統(tǒng)仿真4.1仿真步驟加載目標(biāo)代碼文件 打開元器件單片機(jī)屬性窗口,在“ P rogram File ”欄中添加上面編譯好的目標(biāo)代碼文件“ keil-12.hex”;在“ Clock Frequency”欄中輸入晶振頻率為12MHz。ADC0809的時(shí)鐘信號(hào)設(shè)置為 640kHz。啟動(dòng)仿真如下頁圖所示,各按鍵功能如圖中所注,LED中顯示的為當(dāng)前電壓的數(shù)字信號(hào)值,即當(dāng)前轉(zhuǎn)速的檔位(0-256),通過調(diào)整從滑動(dòng)變阻器輸出的電壓值,可以觀察到直流電機(jī)不同的轉(zhuǎn)速。通過按鍵加減

29、速,改變電機(jī)轉(zhuǎn)速,數(shù)碼管顯示的數(shù)字也相應(yīng)改變。結(jié)圖4.1仿真結(jié)果24果如圖4.1所示:陥;7ABC 口 efg*EE-potn詁g*AVK5COFCLOCK BfTjflfr*EX. *CfiB*LEMl CWTT am eiiffi cun:CI<T CIUTBVRfi=r5FOE r-; .- .計(jì)"queR3iritiV弔ICD3svn =JgF i=a-jFr-qnpa Pnirci制A鈿 刊=WR3 'Wfl 即i亠仆 片,RIFZhjm 丙飯加 峠TmSS_e CM 主j匚ra' rafff 4W a' AE WFUhCKSAIJ4O罷.1E

30、5W-I皿/g蘭弋亠亠1亠亠丄K不亍匕tElHtlAV?.曲n Vff:CWbtru2»WITCr?棘IOLTI3WCM2沁5:X .也_小按下加速鍵后,電機(jī)轉(zhuǎn)速加快,數(shù)碼管顯示的數(shù)值增大。結(jié)果如圖4.2所示:VI> nb_片rt-LOK)CLK012-31 5 fl-TPAMR711KJ2'X"4L1:TJUJn5T帥MCQ 旳 1MD1 町加俚 nn則口 na4W> 沖 SMC6PO T'lff?F*uwep? wBTTBoraift R3jiJTkPJ£哲占屮超止1:y 丄門:B 二屮:力吐: Jura":;曲*jXKe

31、嚴(yán).|KZXD5鬥ng吋匹旳畑l>5垃new0 M;如",麗?WV 閉|flfR3MmaaIM 口 T raiJT7 KXJTIiwl:lQ1ue:砂02FM«6rR5IL圖4.2仿真結(jié)果4.2仿真結(jié)果分析通過鍵盤向單片機(jī)輸入相應(yīng)控制指令,數(shù)碼管顯示出不同的數(shù)值。當(dāng)按下加速鍵時(shí),數(shù)碼管顯示數(shù)值增大,說明電機(jī)轉(zhuǎn)速增快;當(dāng)按下減速鍵時(shí),數(shù)碼管顯示數(shù)值減小,說明電機(jī)轉(zhuǎn)速減慢。鍵盤通過單片機(jī)實(shí)現(xiàn)了控制電機(jī)轉(zhuǎn)速的功能。當(dāng)改變可變電阻阻值時(shí),電機(jī)兩端改變,數(shù)碼管顯示的數(shù)值也改變。說明電阻改變可改變電機(jī)兩端的電壓,從而達(dá)到控制直流電機(jī)的目的,且當(dāng)電壓越大時(shí),數(shù)碼管顯示數(shù)值越大,電機(jī)

32、轉(zhuǎn)速越快;電壓越小時(shí),數(shù)碼管顯示數(shù)值越小,電機(jī)轉(zhuǎn)速越慢。35hdhj附錄附錄一電路原理圖及9n<£-an會(huì)笆s A 出Sa 證口 zBHA on 薔Nn EnQ5a<5V頭釜HJJ?wo生出Ha1 £ino so ww tiW -§5JOI TpaTH 口匕茂図£1s5亍2C 303yd咳"- ffi星g §瓦 QDF冒 匚二啟程 Qin 鬲 td 帛艮 01. F匕 L HI E * 爐 B L 嚴(yán) L L k L'ddEnQii 丘 dH 古總宇二S5303S星血< a U Lil IL rj S 5oa

33、 口口 門口口g負(fù)id 工矗id 二書定 口育Cd ?£ ss25三刊m守SW卍 ffe£ff££££附圖1電路原理圖Isff2JXL 9 -ff«H< M&< -附錄二系統(tǒng)程序#in cludevreg52.h>#i nclude"lcd1602.h"#i ncludefo nctio n.h"uchar coun t=0,co un t2=1;uchar key_ num=0;方向標(biāo)志運(yùn)行標(biāo)志uintsp eed5;/bit direct_flag=1,ru n_f

34、lag=0;/uchar p wmdata=50;sbit right=卩2八7;sbit left=P2A6;/void dsp()if(run_flag) gotoxy(1,0);display_string("running");/ 顯示電機(jī)的轉(zhuǎn)動(dòng)去停止情況else gotoxy(1,0);display_string(" stop "); /if(direct_flag) gotoxy(12,0);display_string("->"); /顯示電機(jī)的轉(zhuǎn)動(dòng)方向 箭頭方向else gotoxy(12,0);display

35、_string("<-");/ gotoxy(2,1);display_data(0,speed/300);display_data(1,speed/3%100);/ 顯示當(dāng)前速度 轉(zhuǎn)速gotoxy(10,1);display_data(0,pwmdata/100);display_data(1,pwmdata%100);/ pwmdata 占空比/void key_set()if(key_num!=0)switch(key_num)case 1:run_flag=run_flag;break;case 2:direct_flag=1;break;case 3:dir

36、ect_flag=0;break;case 4:pwmdata+;if(pwmdata>=100)pwmdata=100;break;case 5:pwmdata-;if(pwmdata>=100)pwmdata=0;break;key_num=0;/ 清零/void main()/- 硬件初始化EA=1;ET0=1;TMOD=0X51;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;/TH1=0;TL1=0;TR1=1;/.EX0=1;IT0=1;/- 控制端口初始化right=0;left=0;init_lcd();gotox

37、y(0,0);display_string(" stop dt:-> ");/stop 2 running 111gotoxy(0,1);display_string(" 000r/s 050% ");/2/for(;)count2+;if(count>100)count2=1;if(run_flag=0)right=0;left=0; else if(count2<=pwmdata)if(direct_flag)right=1;left=0; else right=0;left=1;else right=0;left=0;/*void init_lcd(void)/ 初始化 lcd1602delay(15);write_com(lcd_mode);delay(20);write_com(undisplay_curs

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論