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

下載本文檔

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

文檔簡介

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

2、驗結(jié)果表明,設(shè)計的調(diào)速控制器具有良好的工作性能。關(guān)鍵詞AVRI片機步進(jìn)電動機控制器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)電機發(fā)展11.2 步進(jìn)電機的應(yīng)用前景1

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

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

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

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

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

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

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

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

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

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

15、質(zhì)量及競爭力。3 .超功能精簡指令。具有32個通用作寄存器(相當(dāng)于8051中的32個累加器),克服了單一累加器數(shù)據(jù)處理造成的瓶須現(xiàn)象,1284K字節(jié)SRAMT靈活使用指令計算,并可用功能很強的C語言編程,易學(xué)、易寫、易移植。4 .程序?qū)懭肫骷梢圆⑿袑懭?用編程器寫入),也可使用串行在線編程(ISP)方法下載寫入,也就是說不必將單片機芯片從系統(tǒng)上拆下,拿到萬用編程器上燒寫,而可直接在電路板上進(jìn)行程序的修改、燒寫等操作,方便產(chǎn)品升級,尤其是采用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)圖引腳功能簡述如下: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波形輸出端;綜合以上所述,正因為ATMEGA倦片機的先進(jìn)性,本設(shè)計選用該型號的單片機第四章、硬件系統(tǒng)設(shè)計經(jīng)過對控制器原理、ATmegal6的總體了解和掌握以及對各種元器件和電路圖的分析和比較后,現(xiàn)在就進(jìn)入硬件電路的設(shè)計。在本章里,主要設(shè)計液晶模塊的連

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

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

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

21、腳上的兩個電阻用來調(diào)節(jié)斬波器電路的參考電壓。該電壓通過管腳13、14所反饋的電位的大小比較,來確定是否進(jìn)行斬波控制,以達(dá)到控制電機繞組電流峰值、保護步進(jìn)電機的目的。綜上所述:步進(jìn)電機的轉(zhuǎn)速取決于CLOCK脈沖頻率,角位移取決于CLOC的脈沖個數(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液晶顯示及電路單片機與

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

23、64*64=4096位顯示RAM,RAM中每位數(shù)據(jù)對應(yīng)LCD屏上的一個點的亮、暗狀態(tài)。2. HD61202及其兼容控制器是列驅(qū)動器,具有64路列驅(qū)動輸出。3. HD61202及其兼容控制驅(qū)動器讀、寫時序與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間接控制方式電路圖間接控制方式是單片機通過自身的或系統(tǒng)中的并行接口與液晶顯示模塊連接。單片機通過對這些接口的操作,以達(dá)到對液晶顯示模塊的控制。這種方式的特點就是電路簡單,控制時序由軟件實現(xiàn),可以實現(xiàn)高速單片機與液晶顯示模塊的接口。電路圖如圖4-3所示。在圖中以P1口作為數(shù)據(jù)口,P3.4為CSAP3.3為CSBP3.2為使能端,P3.1

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

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

28、雜的數(shù)C編譯器能夠自動實現(xiàn)中斷服務(wù)程序供用戶使用。并且C編譯器能自動(或C編譯器提供)的實時操作系統(tǒng)據(jù)類型,極大地增強了程序處理能力和靈活性。的現(xiàn)場保護和恢復(fù),并且提供常用的標(biāo)準(zhǔn)函數(shù)庫,生成一些硬件的初始化代碼。4、對于一些復(fù)雜系統(tǒng)的開發(fā),可以通過移植來實現(xiàn)。正由于C語言在系統(tǒng)開發(fā)中的優(yōu)勢,這次設(shè)計的所有程序設(shè)計都將采用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)制成,這是一種電場效應(yīng),夾在兩片導(dǎo)電玻璃電極間的液晶經(jīng)過一定處理,它內(nèi)部的分子呈直角扭曲,當(dāng)線性偏振光透過其偏振面便會旋轉(zhuǎn)一個直角。當(dāng)在玻璃電

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

39、3DB2DB1DB010BUSY0ON/OFFREST0000狀態(tài)字是計算機了解HD6120極具兼容控制驅(qū)動器當(dāng)前狀態(tài),或是HD61202M其兼容控制驅(qū)動器向計算機提供其內(nèi)部狀態(tài)的唯一的信息渠道。狀態(tài)字為一字節(jié),其中僅有3位有效位,它們是:BUSYft示當(dāng)前HD61202®口控制電路運行狀態(tài)。BUSY=Hg示HD612021E在處理計算機發(fā)來的指令或數(shù)據(jù)。此時接口電路被封鎖,不能接受除讀狀態(tài)字以外的任何操作。BUSY=0ft示HD612028口電路已處于“準(zhǔn)備好”狀態(tài),等待計算機的訪問。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)時,HD61202處于復(fù)位工作狀態(tài),RESET=1當(dāng)RST為高電平狀態(tài)時,HD61202為正常工作狀態(tài),RESET=0在指令設(shè)置和數(shù)據(jù)讀寫時要注意狀態(tài)字中的BUS而志。只有在BUSY=0寸,計算機對HD61202勺操作才能有效,因此計算機在每次對HD6120跳作之前,都要讀出狀態(tài)字以判斷BUSY1不為“0”。若不為“0”,則計算機需要等待,直至BUSY"財止。表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)所需的顯示效果。此時在狀態(tài)字中ON/OFF=0當(dāng)D=0為關(guān)顯示設(shè)置,顯示數(shù)據(jù)鎖存器被置零,顯示屏呈不顯示狀態(tài),但顯示存儲器并沒有被破壞,在狀態(tài)字中ON/OFF=1表5-3顯示起始行設(shè)置指令R/WRSDB7DB6DB5DB4DB3DB2DB1DB00011顯示起始行(0-63)HD61202有64行顯示的管理能力,03FH(164行)范圍內(nèi),它規(guī)定了顯如果定時間隔地,等間距地修改(如該指令設(shè)置了顯示起始行寄存器的內(nèi)容。該指令中L5L0為顯示起始行的地址,取值在示屏

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

43、H(1-64)代表了某一頁面上的某一個單元地址,隨后的一次讀或?qū)憯?shù)據(jù)將在這個單元上進(jìn)行。Y地址計數(shù)器具有自動加1功能,在每上次讀/寫數(shù)據(jù)后它將自動加1,所以在連續(xù)進(jìn)行讀/寫數(shù)據(jù)時,Y地址計數(shù)器不必每次都設(shè)置一次。頁面地址的設(shè)置和列地址的設(shè)置將顯示存儲器單元唯一的確定下來,為后來的顯示數(shù)據(jù)的讀/寫作了地址的選通。表5-6寫數(shù)據(jù)指令R/WRSDB7DB6DB5DB4DB3DB2DB1DB001寫數(shù)據(jù)該操作將8位數(shù)據(jù)寫入先前已確定的顯示存儲器的單元內(nèi)。操作完成后列地址計數(shù)器自動加1。表5-7讀數(shù)據(jù)指令R/WRSDB7DB6DB5DB4DB3DB2DB1DB011讀顯示數(shù)據(jù)該操作將HD61202S口部的輸出寄存器內(nèi)容讀出,然后列地址計數(shù)器自動加一。必須注意的是,進(jìn)行讀操作之前,必須有一次空讀操作,緊接著再讀才會讀出所要讀的單元中的數(shù)據(jù)。2、LCD勺簡單編程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等.壓縮文件請下載最新的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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論