AVR單片機(jī)的步進(jìn)電機(jī)_第1頁
AVR單片機(jī)的步進(jìn)電機(jī)_第2頁
AVR單片機(jī)的步進(jìn)電機(jī)_第3頁
AVR單片機(jī)的步進(jìn)電機(jī)_第4頁
AVR單片機(jī)的步進(jìn)電機(jī)_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余19頁可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、翎臺(tái)港申3程裁皆與篇學(xué)生畢業(yè)論文基于AVR單片機(jī)的步進(jìn)電機(jī)控制學(xué)生姓名:王振軍入學(xué)時(shí)間:2007年9月專業(yè)名稱:計(jì)算機(jī)控制技術(shù)班級(jí):07級(jí)計(jì)算機(jī)控制技術(shù)指導(dǎo)教師:姜虎強(qiáng)職稱:基于AVR單片機(jī)的步進(jìn)電機(jī)控制摘要本文介紹了步進(jìn)電動(dòng)機(jī)的發(fā)展,國內(nèi)的現(xiàn)狀和步進(jìn)電動(dòng)機(jī)未來的發(fā)展前景。設(shè)計(jì)了一種新型的主要由AVR單片機(jī)和L298驅(qū)動(dòng)器構(gòu)成的電機(jī)調(diào)速控制器。詳細(xì)介紹了本調(diào)速控制系統(tǒng)的工作原理、光電編碼器接口電路、驅(qū)動(dòng)接口電路和相應(yīng)的各種控制軟件設(shè)計(jì)。繪制了原理圖和PCB板圖,撰寫了程序源代碼。這期間主要使用protel99軟件繪制原理圖和制板。最后通過硬件的調(diào)試驗(yàn)證程序代碼的實(shí)際功能,完成對(duì)控制器的設(shè)計(jì)。實(shí)

2、驗(yàn)結(jié)果表明,設(shè)計(jì)的調(diào)速控制器具有良好的工作性能。關(guān)鍵詞AVRI片機(jī)步進(jìn)電動(dòng)機(jī)控制器BasedonMCUofSteppingMotorcontrolAbstractIntroductionstepenterelectricmotorofdevelopmenthistory,andlocalpresentconditionandstepenterelectricmotorfutureofapplicationforeground.Andelaboratedasteptoenterelectricmotortoturnsoon,angle,turnJuofcontrolprinciple.Thist

3、extelaboratedakindofstepenterelectricalengineeringcontrollerofdesignproject,anddrewprinciplediagramandPCBplankdiagram,composedaproceduresourceacode.Realizationtostepentertheelectricmotorturnsoon,angleofcontrol,andcompletionrealobjectofcreation.Thisperiodmainusagetheprotel99sethesoftwaredrawprinciple

4、diagramandmakeplank,usageproteus7.1softwarescarryonanimitateofprocedurecodetruewiththetheoriesofthefunctionverification.Theendexperimentcertificateprocedureacodethroughanadjustofhardwareofactualfunction,completiondesigncontroller.KeywordsAVRMCUStepperMotorController目錄第一章、緒論11.1 步進(jìn)電機(jī)發(fā)展11.2 步進(jìn)電機(jī)的應(yīng)用前景1

5、1.3 設(shè)計(jì)內(nèi)容1第二章、系統(tǒng)工作原理22.1 步進(jìn)電動(dòng)機(jī)控制系統(tǒng)22.2 控制單元2第三章、Atmega16單片機(jī)33.1 Atmega16主要功能43.2 Atmega16引腳功能5第四章、硬件系統(tǒng)設(shè)計(jì)64.1 步進(jìn)電動(dòng)機(jī)的控制原理64.2 L298芯片簡(jiǎn)介64.3 控制電機(jī)64.4 LCD液晶顯示及電路7第五章、軟件實(shí)現(xiàn)95.1 主程序流程圖95.2 主程序編程95.2.1 主程序代碼105.2.2 液晶顯示漢字14畢業(yè)設(shè)計(jì)總結(jié)18致119參考文獻(xiàn)20第一章、緒論1.1 步進(jìn)電機(jī)發(fā)展步進(jìn)電機(jī)又稱電動(dòng)機(jī)或階躍電動(dòng)機(jī),國外一般稱為Stepmotor或Steppingmotor等。步進(jìn)電機(jī)的機(jī)

6、理是基于最基本的電磁鐵作用,20世紀(jì)60年代后期,隨著永磁性材料的發(fā)展,各種實(shí)用性步進(jìn)電動(dòng)機(jī)應(yīng)運(yùn)而生,而半導(dǎo)體技術(shù)的發(fā)展則推進(jìn)了步進(jìn)電動(dòng)機(jī)在眾多領(lǐng)域的應(yīng)用。在近30年間,步進(jìn)電動(dòng)機(jī)迅速地發(fā)展并成熟起來。從發(fā)展趨向來講,步進(jìn)電動(dòng)機(jī)已經(jīng)能與直流電動(dòng)機(jī)、異步電動(dòng)機(jī),以及同步電動(dòng)機(jī)并列,從而成為電動(dòng)機(jī)的一種基本類型。我國步進(jìn)電動(dòng)機(jī)的研究及制造起始于本世紀(jì)50年代后期。自80年代中期以來,由于對(duì)步進(jìn)電動(dòng)機(jī)精確模型做了大量研究工作,各種混合式步進(jìn)電動(dòng)機(jī)及驅(qū)動(dòng)器作為產(chǎn)品廣泛利用。1.2 步進(jìn)電機(jī)的應(yīng)用前景目前,隨著電子技術(shù)、控制技術(shù)以及電動(dòng)機(jī)的發(fā)展和變化,傳統(tǒng)電機(jī)分類間的界面越來越模糊。步進(jìn)電機(jī)必然會(huì)成為機(jī)

7、電一體化元件組件的必然趨勢(shì)。由于步進(jìn)電機(jī)具有控制方便、體積小等特點(diǎn),所以在數(shù)控系統(tǒng)、自動(dòng)生產(chǎn)線、自動(dòng)化儀表、繪圖機(jī)和計(jì)算機(jī)外圍設(shè)備中得到廣泛應(yīng)用。微電子學(xué)的迅速發(fā)展和微型計(jì)算機(jī)的普及與應(yīng)用,為步進(jìn)電動(dòng)機(jī)的應(yīng)用開辟了廣闊前景,使得以往用硬件電路構(gòu)成的龐大復(fù)雜的控制器得以用軟件實(shí)現(xiàn),既降低了硬件成本又提高了控制的靈活性,可靠性及多功能性。市場(chǎng)上有很多現(xiàn)成的步進(jìn)電機(jī)控制機(jī)構(gòu),但價(jià)格都偏高。應(yīng)用SG%司推出的L298芯片可方便的組成步進(jìn)電機(jī)驅(qū)動(dòng)器,并結(jié)合Atmega16L單片機(jī)可以構(gòu)成很好的步進(jìn)電機(jī)控制系統(tǒng)12。1.3 設(shè)計(jì)內(nèi)容在各類機(jī)電系統(tǒng)中,隨著社會(huì)的快速發(fā)展,步進(jìn)電機(jī)已廣泛運(yùn)用于工業(yè)控制、日常生

8、活領(lǐng)域的各個(gè)方面。因此設(shè)計(jì)一種新的步進(jìn)電機(jī)控制器,它具有調(diào)速精度高、響應(yīng)速度快和耗損低等特點(diǎn)。本設(shè)計(jì)由AV印片機(jī)、L298驅(qū)動(dòng)器及液晶顯示構(gòu)成的步進(jìn)電機(jī)控制器。本設(shè)計(jì)具有擴(kuò)展功能:具有通信能力,可接收其他數(shù)據(jù)設(shè)備發(fā)來的命令,或?qū)⒔Y(jié)果傳送到其他數(shù)據(jù)設(shè)備,可具備與上位機(jī)的通信能力,控制更給直觀、簡(jiǎn)便。第二章、系統(tǒng)工作原理步進(jìn)電動(dòng)機(jī)是一種將電脈沖信號(hào)轉(zhuǎn)換成角位移或線位移的機(jī)電元件。步進(jìn)電動(dòng)機(jī)的輸入量是脈沖序列,輸出量則為相應(yīng)的增量位移或步進(jìn)運(yùn)動(dòng)。正常運(yùn)動(dòng)情況下,它每轉(zhuǎn)一周具有固定的步數(shù);做連續(xù)步進(jìn)運(yùn)動(dòng)時(shí),其旋轉(zhuǎn)轉(zhuǎn)速與輸入脈沖的頻率保持嚴(yán)格的對(duì)應(yīng)關(guān)系,不受電壓波動(dòng)和負(fù)載變化的影響。由于步進(jìn)電動(dòng)機(jī)能直接

9、接受數(shù)字量的控制,所以特別適宜采用微機(jī)進(jìn)行控制。2.1 步進(jìn)電動(dòng)機(jī)控制系統(tǒng)步進(jìn)電動(dòng)機(jī)本體、步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)電路和控制單元構(gòu)成步進(jìn)電動(dòng)機(jī)系統(tǒng)不可分割的三大部分。系統(tǒng)框圖見下圖2-1:圖2-1步進(jìn)電動(dòng)機(jī)系統(tǒng)框圖A/D疆動(dòng)電器通信瑞口步進(jìn)電機(jī)是數(shù)字控制電機(jī),它將脈沖信號(hào)轉(zhuǎn)變成角位移,即給一個(gè)脈沖信號(hào),步進(jìn)電機(jī)就轉(zhuǎn)動(dòng)一個(gè)角度,因此非常適合于單片機(jī)控制。步進(jìn)電機(jī)可分為反應(yīng)式步進(jìn)電機(jī)(簡(jiǎn)稱VR、永磁式步進(jìn)電機(jī)(簡(jiǎn)稱PM和混合式步進(jìn)電機(jī)(簡(jiǎn)稱HB。步進(jìn)電機(jī)區(qū)別于其他控制電機(jī)的最大特點(diǎn)是,它是通過輸入脈沖信號(hào)來進(jìn)行控制的,即電機(jī)的總轉(zhuǎn)動(dòng)角度由輸入脈沖數(shù)決定,而電機(jī)的轉(zhuǎn)速由脈沖信號(hào)頻率決定。步進(jìn)電機(jī)的驅(qū)動(dòng)電路根據(jù)

10、控制信號(hào)工作,控制信號(hào)由單片機(jī)產(chǎn)生。具基本原理作用如下:(1)控制換相順序通電換相這一過程稱為脈沖分配。例如:三相步進(jìn)電機(jī)的三拍工作方式,其各相通電順序?yàn)锳-B-CD,通電控制脈沖必須嚴(yán)格按照這一順序分別控制A,B,C,D相的通斷。控制步進(jìn)電機(jī)的轉(zhuǎn)向如果給定工作方式正序換相通電,步進(jìn)電機(jī)正轉(zhuǎn),如果按反序通電換相,則電機(jī)就反轉(zhuǎn)。(3)控制步進(jìn)電機(jī)的速度如果給步進(jìn)電機(jī)發(fā)一個(gè)控制脈沖,它就轉(zhuǎn)一步,再發(fā)一個(gè)脈沖,它會(huì)再轉(zhuǎn)一步。兩個(gè)脈沖的間隔越短,步進(jìn)電機(jī)就轉(zhuǎn)得越快。調(diào)整單片機(jī)發(fā)出的脈沖頻率,就可以對(duì)步進(jìn)電機(jī)進(jìn)行調(diào)速。因此選用AV如片機(jī)控制步進(jìn)電機(jī)具有優(yōu)勢(shì)性。2.2 控制單元控制單元、驅(qū)動(dòng)電路為控制系統(tǒng)

11、的核心部分??刂茊卧钦麄€(gè)系統(tǒng)最核心的部分,是系統(tǒng)的指揮中心。用于協(xié)調(diào)各部分的運(yùn)行,主要負(fù)責(zé)接收通信端口或輸入電路送來的信息,并對(duì)其進(jìn)行識(shí)別、譯碼,并做出相應(yīng)的動(dòng)作,發(fā)出控制信號(hào)用以控制步進(jìn)電動(dòng)機(jī)??刂茊卧獙?shí)質(zhì)上是具有處理能力的微處理器芯片,本文選用由ATEML公司生產(chǎn)的Atmega16單片機(jī)3。2.3 驅(qū)動(dòng)電路步進(jìn)電動(dòng)機(jī)不能直接接到工頻交流或直流電源上工作,而必須使用專用的步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)器,如圖2-2所示,它由脈沖發(fā)生控制單元、功率驅(qū)動(dòng)單元、保護(hù)單元等組成。驅(qū)動(dòng)單元與步進(jìn)電動(dòng)機(jī)直接耦合,也可理解成步進(jìn)電動(dòng)機(jī)微機(jī)控制器的功率接口。驅(qū)動(dòng)電路是負(fù)責(zé)將控制單元送來的微電流信號(hào)進(jìn)行放大用以驅(qū)動(dòng)步進(jìn)電動(dòng)

12、機(jī)運(yùn)轉(zhuǎn),驅(qū)動(dòng)電路實(shí)質(zhì)上是功率放大器。常見的驅(qū)動(dòng)電路:?jiǎn)坞妷盒凸Ψ烹娐?、高低壓切換型功放電路、斬波恒流功放電路等再就是采用專用的集成芯片。本文采用L298芯片,由這種芯片構(gòu)成的驅(qū)動(dòng)電路具有控制方便、精度高、并且不需要外圍擴(kuò)展??刂圃韴D2-2如下:5Vn'羈%斬次弱筆+5V|6植¥學(xué)步/手后方向他倦一新誠投蚪貫點(diǎn)箱目-stfl就擅馥二強(qiáng)皆wir.B維源二聯(lián)胃第三章、Atmega16單片機(jī)3.1Atmega16主要功能AV如片機(jī)主要有ATtiny、AT90和ATmegsE種系列,其結(jié)構(gòu)和基本原理都相類似。本次設(shè)計(jì)所用到的Atmega16LE片,在這里作為電機(jī)控制的核心部件。它是一

13、種具有40引腳的高性能、低功耗的8位微處理器。其功能特性如下4:(1)8位CPU(2)先進(jìn)的RISC結(jié)構(gòu):131條指令-大多數(shù)指令執(zhí)行時(shí)間為單個(gè)時(shí)鐘周期。32個(gè)8位通用工作寄存器。全靜態(tài)工作。(3)非易失性數(shù)據(jù)和程序存儲(chǔ)器:16K字節(jié)的系統(tǒng)內(nèi)可編程Flash,擦寫壽命可達(dá)到10,000次以上。具有獨(dú)立鎖定位的可選Boot代碼區(qū),通過片上Boot程序?qū)崿F(xiàn)系統(tǒng)內(nèi)編程。(4)可通過JTAC®口實(shí)現(xiàn)對(duì)FLASHEEPROM編程。(5) 32個(gè)可編程的I/O引線,40弓唧PDIPM裝。(6)兩個(gè)具有獨(dú)立預(yù)分頻器和比較器功能的8位定時(shí)器/計(jì)數(shù)器,一個(gè)具有預(yù)分頻器、比較功能和捕捉功能的16位定時(shí)器

14、/計(jì)數(shù)器。(7)片內(nèi)/片外中斷源。(8)具有一個(gè)10位的AD專換器,能又t來自端口A白8位單端輸入電壓進(jìn)行采樣。(9)工作電壓:2.75.5V。速度等級(jí):08MHzAVRI片機(jī)的主要特點(diǎn)如下:1 .片內(nèi)集成可擦寫10000次以上的Flash程序存儲(chǔ)器。由于AVRS用16位的指令,所以一個(gè)程序存儲(chǔ)器的存儲(chǔ)單元為16位,AVR勺數(shù)據(jù)存儲(chǔ)器還是以8個(gè)Bit(位)為一個(gè)單元,因此AVR®是屬于8位單片機(jī)。2 .高度保密(LOCK)??啥啻尾翆懙腇LASK有多重密碼保護(hù)鎖死(LOCK濁能,因此可低成本高速度地完成產(chǎn)品商品化,并且可多次更改程序(產(chǎn)品升級(jí))而不必浪費(fèi)1C或電路板,大大提高了產(chǎn)品的

15、質(zhì)量及競(jìng)爭(zhēng)力。3 .超功能精簡(jiǎn)指令。具有32個(gè)通用作寄存器(相當(dāng)于8051中的32個(gè)累加器),克服了單一累加器數(shù)據(jù)處理造成的瓶須現(xiàn)象,1284K字節(jié)SRAMT靈活使用指令計(jì)算,并可用功能很強(qiáng)的C語言編程,易學(xué)、易寫、易移植。4 .程序?qū)懭肫骷梢圆⑿袑懭?用編程器寫入),也可使用串行在線編程(ISP)方法下載寫入,也就是說不必將單片機(jī)芯片從系統(tǒng)上拆下,拿到萬用編程器上燒寫,而可直接在電路板上進(jìn)行程序的修改、燒寫等操作,方便產(chǎn)品升級(jí),尤其是采用SMD封裝,更利于產(chǎn)品微型化。3.2Atmegal可腳功能Atmega16改列直插式(PDIP)引腳如圖3-1:(XCKTO)PBO匚lT1)PB1匚(I

16、INT2/W0)PB2匚(CKC/AIN)PB3匚(SS)陽匚tMOSI)PB5匚(MISO)IV.HL(SUK)PHFLRE=rVCC匚GhlDEXTADi_XTAL1r(FtXDPDOr(TKD)PP1匚tiNin)ph?匚(INIJPD3E(OC1B)PCM匚(OC1A)PD5匚(ICPll)PD6匚-PAO(ADCOi二PAI(ADCli-FAZ(ADG2|二PA3(ADG3IIPA4OWE PA&(ADC51 Pfi>B(ADC61_RA7iADC7)二AREF二GND AVCCPCT(TOSC2 PC6(TOSC1)JPG5(TDI) PC4(TDO)二PC3IMS)

17、二PC2:TCK)ZPC1rSDA)二PCT(SGL)PD7(OC2圖3-1Atmega16L(PDIP)圖引腳功能簡(jiǎn)述如下:A/VCC:模擬/數(shù)字電源;AREF:A/D轉(zhuǎn)換參考電壓;XTAL1/2:晶振;RESET:復(fù)位;AREF:A/D轉(zhuǎn)換參考電壓;PAPD:雙向I/O口;TXD:USART輸出弓|腳;RXD:USART輸入弓唧;OC1APWM波形輸出端;綜合以上所述,正因?yàn)锳TMEGA倦片機(jī)的先進(jìn)性,本設(shè)計(jì)選用該型號(hào)的單片機(jī)第四章、硬件系統(tǒng)設(shè)計(jì)經(jīng)過對(duì)控制器原理、ATmegal6的總體了解和掌握以及對(duì)各種元器件和電路圖的分析和比較后,現(xiàn)在就進(jìn)入硬件電路的設(shè)計(jì)。在本章里,主要設(shè)計(jì)液晶模塊的連

18、接和顯示方式、控制電路中所用到的各種芯片和元器件的原理和一些功能,并畫出總的控制原理圖。4.1 步進(jìn)電動(dòng)機(jī)的控制原理步進(jìn)電機(jī)是一種將電脈沖信號(hào)變?yōu)橄鄳?yīng)的直流位移的數(shù)字/模擬變換器。每當(dāng)電機(jī)繞組接收一個(gè)脈沖時(shí),轉(zhuǎn)子就轉(zhuǎn)過一個(gè)相應(yīng)的角度(步距)。步進(jìn)電機(jī)的角位移量和輸入脈沖的個(gè)數(shù)嚴(yán)格成正比。在時(shí)間上與輸入脈沖同步,因而只要控制輸入脈沖的數(shù)量、頻率和電機(jī)繞組的相序,即可獲得所需要的轉(zhuǎn)速和轉(zhuǎn)動(dòng)方向。4.2 L298芯片簡(jiǎn)介L298芯片是一種高壓、大電流雙全橋式驅(qū)動(dòng)器,其設(shè)計(jì)是為接受標(biāo)準(zhǔn)TT出輯電平信號(hào)和驅(qū)動(dòng)電感負(fù)載的,例如繼電器、圓筒形線圈、直流電機(jī)和步進(jìn)電機(jī),具有兩抑制輸入來使器件不受輸入信號(hào)影響。

19、每橋的三級(jí)管的射極是連接在一起的,相應(yīng)外接線端可用來連接外設(shè)傳感電阻。可安置另一輸入電源,使邏輯能在低壓下工作。L298芯片是具有15個(gè)引出腳的多瓦數(shù)直插封閉的集成芯片。這里使用半步工作方式和兩相激勵(lì)的基本步距工作方式。L298的控制和引腳如圖4-1560KICQHTROt.InputsFunctionVtfl=HC-H;D=LForwardC=L;ReverseC=DFastMotorStopV=LC-X;D=XFreeRunningJ/OtqrStopH-HighX=Doflslcare圖4-1L298引制腳控4.3 控制電機(jī)通過不同的連接可以驅(qū)動(dòng)兩相步進(jìn)電動(dòng)和驅(qū)動(dòng)四相步進(jìn)電機(jī)(可承受的最

20、高電壓為45V,每相電流可達(dá)2A)。單片機(jī)(簡(jiǎn)稱mW發(fā)出時(shí)鐘信號(hào)、正反轉(zhuǎn)信號(hào)、工作模式信號(hào)、復(fù)位信號(hào)、使能信號(hào)及控制信號(hào)。CW/CCW制電機(jī)的轉(zhuǎn)向,取1和取0時(shí)轉(zhuǎn)向相反。CLOCK步進(jìn)脈沖信號(hào)輸入端,在每一個(gè)脈沖的下降沿,電機(jī)產(chǎn)生一步步進(jìn)。HALF/FUL的半步或基本步距模式設(shè)置,為1時(shí)是半步模式,為0時(shí)是基本步距。CONTORL斬波控制,當(dāng)為0時(shí),控制INH1和INH2;當(dāng)為1時(shí)控制ABCDENABL使能輸入,當(dāng)為0時(shí),INH1、INH2、A,B,C口赭8為0。RESE輸入,當(dāng)為0時(shí),脈沖分配器回到初狀態(tài)(HOMEL297通過控制L298雙H1成電路,來驅(qū)動(dòng)步進(jìn)電機(jī)。電路中,L298的15引

21、腳上的兩個(gè)電阻用來調(diào)節(jié)斬波器電路的參考電壓。該電壓通過管腳13、14所反饋的電位的大小比較,來確定是否進(jìn)行斬波控制,以達(dá)到控制電機(jī)繞組電流峰值、保護(hù)步進(jìn)電機(jī)的目的。綜上所述:步進(jìn)電機(jī)的轉(zhuǎn)速取決于CLOCK脈沖頻率,角位移取決于CLOC的脈沖個(gè)數(shù),轉(zhuǎn)矩大小則取決于參考電壓Vref的大小??偟目刂迫鐖D4-2所示。kpFCRYSTAUM叩i|學(xué)寸%一g4(RIP)2PH7哪臉1trap)3(超m)6tM)7FH517照osq(E)EPB41615(OCJPB2L4向9(KFjII4tESTPD6rmFBIFBOvccIWAIKl)】題棚加圖4-2系統(tǒng)總的控制原理圖4.4 LCD液晶顯示及電路單片機(jī)與

22、液晶顯示模塊之間的連接方式分為直接訪問方式和為間接控制方式兩種。如圖4-1,其中左為單片機(jī),右為液晶顯小模塊。HD61202及其兼容液晶顯示控制器是一種帶有驅(qū)動(dòng)輸出的圖形液晶顯示控制器,而在小規(guī)模點(diǎn)陣液晶顯示模塊上使用液晶顯示驅(qū)動(dòng)器組成液晶顯示驅(qū)動(dòng)控制系統(tǒng)是非常有益的,這將使液晶顯示模塊的硬件電路簡(jiǎn)單化,從而降低模塊的成本,同時(shí)也提高了對(duì)軟件功能的要求。許多顯示功能如光標(biāo)、字符庫、閃爍都需要由軟件編制而成。HD61203和HD61202就是這類液晶顯示驅(qū)動(dòng)控制器套件。之所以稱它們?yōu)樘准且驗(yàn)镠D61203和HD61202必須配套使用,通常有12864和19264兩種規(guī)格。其特點(diǎn)如下:1. 內(nèi)藏

23、64*64=4096位顯示RAM,RAM中每位數(shù)據(jù)對(duì)應(yīng)LCD屏上的一個(gè)點(diǎn)的亮、暗狀態(tài)。2. HD61202及其兼容控制器是列驅(qū)動(dòng)器,具有64路列驅(qū)動(dòng)輸出。3. HD61202及其兼容控制驅(qū)動(dòng)器讀、寫時(shí)序與68系列微處理妻相符,因此它可直接與68系列微處理器借口相聯(lián)。4. HD61202及其兼容控制器的占空比為1/321/64。下19330R20330VCCRI610KPBO1PBOCXCEJTO)(ADCOJPAaPBJ(Tl)(ADCIJPAIPB2(AINTCMINT2)(JlDC2)PA2PB3(AINT1JOOQ)t*DC3)PA3P網(wǎng)麗(ADC4)PA4FB5(MQSI)(*I)C5

24、)PA5(ADC6)PAePB70CKJ(ADC7JPA7PDO(RXD)(SCLJP0OPDUTXD)(SDA>PC1PD2(INT0)(TCKJPC2PD3(INT1)(TMS)PC3PD4gB)(TDO)PC4PDS(OCIA)(TDDPC5PD6(IP)(TOSC1)PC6PD7(OC2)(TOSC2)PC7VCCAVCC40VoltagePB1239CwrentPB2338TemperatuBPB3437LCD_ENPB4536LCD_RWMOS16充LCD_RSHISO734LCD_CS2SCKS3SLCD_CSi422BEN152324TCKKEY11725TMS26TDO

25、PWN1927TDIKEY22028DIRKEY32129EHRESET9W10_:C1卜嵬RESETAVREFXTAL2GKDXTAL1GKD3二®X21231104XI13L_UIATMEGA1EGHD_ICII22pGNDGNDCIO22p圖4-3間接控制方式電路圖間接控制方式是單片機(jī)通過自身的或系統(tǒng)中的并行接口與液晶顯示模塊連接。單片機(jī)通過對(duì)這些接口的操作,以達(dá)到對(duì)液晶顯示模塊的控制。這種方式的特點(diǎn)就是電路簡(jiǎn)單,控制時(shí)序由軟件實(shí)現(xiàn),可以實(shí)現(xiàn)高速單片機(jī)與液晶顯示模塊的接口。電路圖如圖4-3所示。在圖中以P1口作為數(shù)據(jù)口,P3.4為CSAP3.3為CSBP3.2為使能端,P3.1

26、為R/W和P3.0為D/I信號(hào)。電位器用于顯示對(duì)比度的調(diào)節(jié)。第五章、軟件實(shí)現(xiàn)5.1主程序流程圖在本章里,先介紹C語言開發(fā)的優(yōu)勢(shì),特性等,接卜來便是最主要的整個(gè)程序的設(shè)計(jì)圖5-2,圖5-3所示。(取出號(hào)命令號(hào)耋雨然后介紹LCD的顯示原理、模塊的軟件,下圖式整個(gè)系統(tǒng)的軟件流程,如圖5-1,(初始枇)色算出電機(jī)轉(zhuǎn)電/印苴X與設(shè)卷矗!1圖5-3中斷程序圖5-1主程序流程圖圖5-2速度控制程序5.2主程序編程C語言是一種編譯型的結(jié)構(gòu)化程序設(shè)計(jì)語言,具有簡(jiǎn)單的語法結(jié)構(gòu)和強(qiáng)大的處理功能,具有運(yùn)行速度快、編譯效率高,移植性好和可讀性強(qiáng)等多種優(yōu)點(diǎn),可以實(shí)現(xiàn)對(duì)系統(tǒng)便件的直接操作。用C語言來編寫目標(biāo)系統(tǒng)軟件,可以大

27、大縮短開發(fā)周期,且明顯地增加軟件的可讀性,便于改進(jìn)和擴(kuò)充,從而開發(fā)出大規(guī)模、高性能的應(yīng)用系統(tǒng)。其優(yōu)勢(shì)如下7網(wǎng):1、省去了人工分配單片機(jī)資源的工作,在匯編語言中要為每一個(gè)子程序分配單片機(jī)的資源。在使用C語言后,只要在代碼中申明一下變量的類型,編譯器就會(huì)自動(dòng)分配相關(guān)資源,根本不需要人工干預(yù),從而有效地避免了人工分配單片機(jī)資源的差錯(cuò)。2、匯編語言的可移植性很差,而C語言只要將一些與硬件相關(guān)的代碼作適當(dāng)?shù)男薷?,就可以方便地移植到其它種類的單片機(jī)上。3、C語言提供auto、static、flash等存儲(chǔ)類型,針對(duì)單片機(jī)的程序存儲(chǔ)空間、數(shù)據(jù)存儲(chǔ)空間及EEPROM間自動(dòng)為變量合理地分配空間,而且C語言提供復(fù)

28、雜的數(shù)C編譯器能夠自動(dòng)實(shí)現(xiàn)中斷服務(wù)程序供用戶使用。并且C編譯器能自動(dòng)(或C編譯器提供)的實(shí)時(shí)操作系統(tǒng)據(jù)類型,極大地增強(qiáng)了程序處理能力和靈活性。的現(xiàn)場(chǎng)保護(hù)和恢復(fù),并且提供常用的標(biāo)準(zhǔn)函數(shù)庫,生成一些硬件的初始化代碼。4、對(duì)于一些復(fù)雜系統(tǒng)的開發(fā),可以通過移植來實(shí)現(xiàn)。正由于C語言在系統(tǒng)開發(fā)中的優(yōu)勢(shì),這次設(shè)計(jì)的所有程序設(shè)計(jì)都將采用C語言編寫,且通過ICCAV就譯器操作AVR勺硬件資源。5.2.1 主程序代碼*head.h*/#ifndef_HEAD_H#define_HEAD_H#include<avr/io.h>#include<util/delay.h>#include<

29、;avr/interrupt.h>#include<avr/signal.h>#include<math.h># defineTOPOCR1A# definePWMCONREG1TCCR1A# definePWMCONREG2TCCR1B# definePWM_IODDRD|=_BV(PD5)#defineL298_DIRPORTD#defineL298_OUTDDRD|=0xfc#defineRESET0X40#defineS_CONTROLL298_DIR|=CONTROL#defineC_CONTROLL298_DIR&=CONTROL#define

30、ADC_OUTDDRA/ADC模數(shù)轉(zhuǎn)換寄存器宏#defineADCWAYREGADMUX#defineADCCONREGADCSRA#defineADCIOSFRSFIOR#defineADCDATLADCL#defineADCDATHADCH#defineADCDATADC#defineAD_ENADEN#defineAD_SCADSC#defineMODE11/半步工作#defineMODE22/基本步距#defineHALFMODESTR"HALFSTEPMODE?"工作方式字符串宏#defineNORMALSTR"NORMALMODE?"*hea

31、d.h*/*PWM.c*/#include"head.hvoidPWM(unsignedpps)脈沖控制函數(shù)counter=0;vn=0;topfix=1000000/pps;n1=(10000-top巾x)/STEP+2)*(2*N);if(n<2*n1)display_str(0,0,"error!");return;n2=n-n1;TOP=10000;PWMCONREG1=0X41;/設(shè)置PWM模式PWM_IO;置PWM口為輸出(PD5)SEI;/使能全局中斷OPEN_CMP1A;使能輸出比較匹配A中斷PWMCONREG2=0X11;/設(shè)置PWM模式w

32、hile(1)if(key_value=key()='4')&&!ky)PWMCONREG2=0;CLI;return;elseif(counter<n1)display_str(0,0,"moveup.!");elseif(counter=n)display_str(0,0,"stop!");elseif(counter>n2)display_str(0,0,"movedown.!");elsedisplay_str(0,0,"isopluse!。;adcdisplay();/*

33、PWM.c*/L298.C*/*#include"head.h"voiddouble_half_mode1(void)/半步工作方式(HALF;S_CONTROL;voiddouble_full_mode2(void)/兩相激磁基本步距(FULL;S_CONTROL;/on-offmode模式執(zhí)行子函數(shù)voidL297_1(unsignedcharmode,chardirection,unsignedpps)(ky=0;n=0xffffffff;L298_OUT;S_RESET;switch(mode)/L298工作模式選擇(case 1: double_half_mode

34、1();break;case 2: double_full_mode2();break;default:display_str(0,0,"modeerror!");switch(direction)/正反方向選擇(case'+':CW;break;case'-':CCW;break;default:display_str(0,0,"directionerror!");PWM(pps);display_str(0,0,"Stop!");)/dot-placemode模式執(zhí)行子函數(shù)voidL297_2(un

35、signedcharmode,chardirection,unsignedpps)ky=1;L298_OUT;S_RESET;switch(mode)/L298工作模式選擇case 1: double_half_mode1();break;case 2: double_full_mode2();break;default:display_str(0,0,"modeerror!");)switch(direction)正反方向選擇case'+':CW;break;case'-':CCW;break;default:display_str(0,0

36、,"directionerror!");)n=n*2;PWM(pps);調(diào)用PWM函數(shù))*L298.c*/*main.c*#include"head.h"voidset_fre(void)/頻率設(shè)定子函數(shù)clear();/清屏display_str(0,0,"1000pps");while(1)(do(key_value=key();if(key_value='4')return;while(!key_value);if(key_value='2')(ch=(ch+1>=58)?'1

37、9;:(ch+1);fre=(fre+1000>=10000)?1000:(fre+1000);elseif(key_value='3')(ch=(ch-1<=48)?'9':(ch-1);fre=(fre-1000<=0)?9000:(fre-1000);display_char(0,0,ch);5.2.2液晶顯示漢字LCD本身不發(fā)光只是調(diào)節(jié)光的亮度,目前市面上的LCD顯示器都是利用液晶的扭曲一向列效應(yīng)制成,這是一種電場(chǎng)效應(yīng),夾在兩片導(dǎo)電玻璃電極間的液晶經(jīng)過一定處理,它內(nèi)部的分子呈直角扭曲,當(dāng)線性偏振光透過其偏振面便會(huì)旋轉(zhuǎn)一個(gè)直角。當(dāng)在玻璃電

38、極上加上電壓后,在電場(chǎng)作用下,液晶的扭曲結(jié)構(gòu)消失,偏振光便可以直接通過。當(dāng)去掉電場(chǎng)后液晶分子又恢復(fù)取扭曲結(jié)構(gòu)。把這樣的液晶置于兩個(gè)偏振片之間,改變偏振片相對(duì)位置就可以得到白底黑子或黑底白字的顯示形式。1、LCD模塊的說明本設(shè)計(jì)采用的LCD是北京精電蓬遠(yuǎn)顯示技術(shù)公司生產(chǎn)的MGLS(列圖形液晶顯示模塊,其內(nèi)藏KS0108B/HD61202空制器。KS0108B及其兼容控制驅(qū)動(dòng)器(HD61202)的指令系統(tǒng)比較簡(jiǎn)單,一共只有7條指令,從作用上可分為兩類。第一條指令和第二條指令為顯示狀態(tài)設(shè)置類;其余指令為數(shù)據(jù)讀/寫操作指令。下面是各個(gè)指令的功能:表5-1讀狀態(tài)指令R/WRSDB7DB6DB5DB4DB

39、3DB2DB1DB010BUSY0ON/OFFREST0000狀態(tài)字是計(jì)算機(jī)了解HD6120極具兼容控制驅(qū)動(dòng)器當(dāng)前狀態(tài),或是HD61202M其兼容控制驅(qū)動(dòng)器向計(jì)算機(jī)提供其內(nèi)部狀態(tài)的唯一的信息渠道。狀態(tài)字為一字節(jié),其中僅有3位有效位,它們是:BUSYft示當(dāng)前HD61202®口控制電路運(yùn)行狀態(tài)。BUSY=Hg示HD612021E在處理計(jì)算機(jī)發(fā)來的指令或數(shù)據(jù)。此時(shí)接口電路被封鎖,不能接受除讀狀態(tài)字以外的任何操作。BUSY=0ft示HD612028口電路已處于“準(zhǔn)備好”狀態(tài),等待計(jì)算機(jī)的訪問。ON/OFFft示當(dāng)前的顯示狀態(tài)。ON/OFF-俵示關(guān)顯示狀態(tài);ON/OFF=0g示開顯示狀RES

40、E俵示當(dāng)前HD61202勺工作狀態(tài),即反映RS礎(chǔ)的電平X犬態(tài)。當(dāng)RST為低電平狀態(tài)時(shí),HD61202處于復(fù)位工作狀態(tài),RESET=1當(dāng)RST為高電平狀態(tài)時(shí),HD61202為正常工作狀態(tài),RESET=0在指令設(shè)置和數(shù)據(jù)讀寫時(shí)要注意狀態(tài)字中的BUS而志。只有在BUSY=0寸,計(jì)算機(jī)對(duì)HD61202勺操作才能有效,因此計(jì)算機(jī)在每次對(duì)HD6120跳作之前,都要讀出狀態(tài)字以判斷BUSY1不為“0”。若不為“0”,則計(jì)算機(jī)需要等待,直至BUSY"財(cái)止。表5-2顯示開關(guān)指令R/WRSDB7DB6DB5DB4DB3DB2DB1DB00000111111/0該指令設(shè)置顯示開/關(guān)觸發(fā)器的狀態(tài),由此控制顯

41、示數(shù)據(jù)鎖存器的工作方式,從而控制顯示屏上的顯示狀態(tài)。D位為顯示開/關(guān)控制位。當(dāng)D=1為開顯示設(shè)置,顯示數(shù)據(jù)鎖存器正常工作,顯示屏上呈現(xiàn)所需的顯示效果。此時(shí)在狀態(tài)字中ON/OFF=0當(dāng)D=0為關(guān)顯示設(shè)置,顯示數(shù)據(jù)鎖存器被置零,顯示屏呈不顯示狀態(tài),但顯示存儲(chǔ)器并沒有被破壞,在狀態(tài)字中ON/OFF=1表5-3顯示起始行設(shè)置指令R/WRSDB7DB6DB5DB4DB3DB2DB1DB00011顯示起始行(0-63)HD61202有64行顯示的管理能力,03FH(164行)范圍內(nèi),它規(guī)定了顯如果定時(shí)間隔地,等間距地修改(如該指令設(shè)置了顯示起始行寄存器的內(nèi)容。該指令中L5L0為顯示起始行的地址,取值在示屏

42、上最頂一行所對(duì)應(yīng)的顯示存儲(chǔ)器的行地址。加1或減1)顯示起始行寄存器的內(nèi)容,則顯示屏將呈現(xiàn)顯示內(nèi)容向上或向下平滑滾動(dòng)的顯示效果。表5-4頁面地址設(shè)置指令R/WRSDB7DB6DB5DB4DB3DB2DB1DB00010111該指令設(shè)置了頁面地址一一X地址寄存器的內(nèi)容。HD61202將顯示存儲(chǔ)器分成8頁,指令代碼中P2-P0就是要確定當(dāng)前所要選擇的頁面地址,取值范圍為0-7H,代表第1-8頁。該指令規(guī)定了以后的讀/寫操作將在哪一個(gè)頁面上進(jìn)行。表5-5列地址設(shè)置指令R/WRSDB7DB6DB5DB4DB3DB2DB1DB00001顯示列地址(0-63)該指令設(shè)置了Y地址計(jì)數(shù)器的內(nèi)容,C5C0=03F

43、H(1-64)代表了某一頁面上的某一個(gè)單元地址,隨后的一次讀或?qū)憯?shù)據(jù)將在這個(gè)單元上進(jìn)行。Y地址計(jì)數(shù)器具有自動(dòng)加1功能,在每上次讀/寫數(shù)據(jù)后它將自動(dòng)加1,所以在連續(xù)進(jìn)行讀/寫數(shù)據(jù)時(shí),Y地址計(jì)數(shù)器不必每次都設(shè)置一次。頁面地址的設(shè)置和列地址的設(shè)置將顯示存儲(chǔ)器單元唯一的確定下來,為后來的顯示數(shù)據(jù)的讀/寫作了地址的選通。表5-6寫數(shù)據(jù)指令R/WRSDB7DB6DB5DB4DB3DB2DB1DB001寫數(shù)據(jù)該操作將8位數(shù)據(jù)寫入先前已確定的顯示存儲(chǔ)器的單元內(nèi)。操作完成后列地址計(jì)數(shù)器自動(dòng)加1。表5-7讀數(shù)據(jù)指令R/WRSDB7DB6DB5DB4DB3DB2DB1DB011讀顯示數(shù)據(jù)該操作將HD61202S口部的輸出寄存器內(nèi)容讀出,然后列地址計(jì)數(shù)器自動(dòng)加一。必須注意的是,進(jìn)行讀操作之前,必須有一次空讀操作,緊接著再讀才會(huì)讀出所要讀的單元中的數(shù)據(jù)。2、LCD勺簡(jiǎn)單編程voidlcd_send(unsignedchartemp)LCD_DAR&=0X0F;/清高四位LCD_DAR|=(temp&0XF0);/發(fā)送高四位temp<<=4;e_h2l();/產(chǎn)生下降沿_delay_

溫馨提示

  • 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)論