版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
摘要近年來,電機(jī)調(diào)速系統(tǒng)在工業(yè)自動(dòng)化、生產(chǎn)過程控制、測(cè)控儀表等領(lǐng)域的應(yīng)用越來越進(jìn)一步和廣泛。ATmega16是基于增強(qiáng)的AVRRISC結(jié)構(gòu)的低功耗8位CMOS微控制器。由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執(zhí)行時(shí)間,ATmega16的數(shù)據(jù)吞吐率高達(dá)1MIPS/MHz,從而可以減緩系統(tǒng)在功耗和解決速度之間的矛盾。重要由ATmega16為核心設(shè)計(jì)由LMD18200驅(qū)動(dòng)芯片,采用232通訊協(xié)議的串行通信控制電路構(gòu)成的直流電機(jī)PWM調(diào)速控制系統(tǒng)。系統(tǒng)重要完畢由上位機(jī)和ATmega16控制直流電機(jī)的起動(dòng),停止和加減速等功能。文章具體介紹了本調(diào)速控制系統(tǒng)的工作原理、PWM驅(qū)動(dòng)接口電路和K1010光電耦合器,LMD18200驅(qū)動(dòng)電路,串行通信控制電路相應(yīng)的軟件設(shè)計(jì)。軟件通過ICCAVR編寫,然后用AVRStudio進(jìn)行仿真并將編譯通過的程序代碼下載到ATmega16之中對(duì)系統(tǒng)進(jìn)行控制。關(guān)鍵詞:ATmega16;直流電機(jī);PWM;LMD18200AbstractInrecentyears,theSCMapplicationwhichusedinthefieldofindustrialautomation,productionprocessbecomesmoreandmoredeepenandextensive.ATmega16isamicrocontrollerbuilduponAVRRISCconfigurationwhichisalowconsumemicrocontrollerof8-bitCMOS.ThedataofATmega16haveahighdispatcherwhichcanreach1MIPS/MHzforadvancedinstructionvolumandtheinstructionofsingleclockcycle,soitcanrelaxedtheconflictbetweenconsumeanddisposespeed.ThisdesignshowusthataPWMspeedsystemofDC-motorusingATmega16isintroducedinthispaper.Thispaperelaboratesonthesystemprinciple,opticalEncoder,LMD18200drivingsystem,HighReliabilityPhotoCouplerK1010,theDC-motorPWMdigitalcontrolsystem,andsystemserialcommunicationagreementof232communication.Thesystemismainlycompletedthestart,stopandaccelerationanddecelerationnfunctionsbywhichthemasterPCandATmega16controltheDCmotor.Thearticledescribedindetailthespeedcontrolsystem'sworkingprinciple,thePWMdriveinterfacecircuitandK1010Optocoupler,LMD18200drivecircuit,therelativesoftwaredesignoftheserialcommunicationcontrolcircuit.ThesoftwareisprogrammedthroughICCAVR,thensimulatedbyAVRStudioandthecompiledcodeisdownloadedtoATmega16tocontrolthesystem.Keywords:ATmega16;DC-motor;PWM;LMD18200目錄1緒論 11.1課題的背景及意義 11.2直流電機(jī)的發(fā)展 21.3本設(shè)計(jì)完畢的工作 22AVR單片機(jī)簡(jiǎn)介 32.1單片機(jī)系統(tǒng)概述 32.2ATmega16功能概述 32.3ATmega16單片機(jī) 52.3.1ATmega16單片機(jī)的特點(diǎn)及特性 52.3.2ATmega16單片機(jī)引腳配置及說明 82.3.3CPU 92.3.4存儲(chǔ)器 102.3.5 I/O口介紹 122.3.6復(fù)位電路 172.3.7時(shí)鐘電路 183直流電機(jī)控制系統(tǒng)硬件設(shè)計(jì) 213.1總體電路設(shè)計(jì) 213.2時(shí)鐘電路 213.3系統(tǒng)復(fù)位電路 213.4串行通信接口電路設(shè)計(jì) 223.4.1重要特點(diǎn) 223.4.2內(nèi)部結(jié)構(gòu) 233.4.3Max232引腳圖 233.4.4Max232電路設(shè)計(jì) 233.5驅(qū)動(dòng)電路 243.5.1LMD18200芯片介紹 243.5.2各引腳的功能及原理 263.5.3驅(qū)動(dòng)電路設(shè)計(jì) 273.6光電耦合電路 284軟件設(shè)計(jì) 304.1初始化程序設(shè)計(jì) 304.1.1I/O初始化 304.1.2定期器初始化 304.1.3串口初始化 314.2主程序 324.3中斷及轉(zhuǎn)速控制子程序 344.4串行數(shù)據(jù)傳輸程序 364.5ICCAVR 374.5.1開發(fā)環(huán)境ICCAVR介紹 374.5.2開發(fā)及編譯 374.6AVRStudio仿真 384.6.1仿真器的特點(diǎn) 384.6.2連接JTAGICE 394.6.3仿真環(huán)境 404.7ATmega16單片機(jī)控制直流電機(jī)程序代碼 42結(jié)論 49致謝 50參考文獻(xiàn) 51附錄A英文原文 52附錄B中文翻譯 60附錄C總體電路設(shè)計(jì)圖671緒論1.1課題的背景及意義在電氣時(shí)代的今天,電動(dòng)機(jī)一直在現(xiàn)代化的生產(chǎn)和生活中起著十分重要的作用。無論是在工農(nóng)業(yè)生產(chǎn)還是在平常生活中的家用電器,都大量地使用著各種各樣的電動(dòng)機(jī)。因此對(duì)電動(dòng)機(jī)的控制變得越來越重要了。電動(dòng)機(jī)的控制技術(shù)的發(fā)展得力于微電子技術(shù)、電力電子技術(shù)、傳感器技術(shù)、永磁材料技術(shù)、自動(dòng)控制技術(shù)、微機(jī)應(yīng)用技術(shù)的最新發(fā)展成就。正是這些技的進(jìn)步使電動(dòng)機(jī)控制技術(shù)在近二十?dāng)?shù)年內(nèi)發(fā)生了翻天覆地的變化。在各類機(jī)電系統(tǒng)中,由于直流電機(jī)具有良好的起動(dòng)、制動(dòng)和調(diào)速性能,直流調(diào)速技術(shù)已廣泛運(yùn)用于工業(yè)、航天領(lǐng)域的各個(gè)方面。直流電機(jī)由于具有速度控制容易,啟、制動(dòng)性能良好,且在寬范圍內(nèi)平滑調(diào)速等特點(diǎn)而在冶金、機(jī)械制造、輕工等工業(yè)部門中得到廣泛應(yīng)用。隨著生產(chǎn)和科技的發(fā)展,一方面對(duì)電機(jī)調(diào)速系統(tǒng)在控制精度、工作速度、快速啟、制動(dòng)及逆轉(zhuǎn)性能以及在寬范圍的調(diào)速等諸方面規(guī)定越來越高;另一方面,電機(jī)控制系統(tǒng)也經(jīng)歷了交磁放大器、磁放大器、可控離子變速器、可控硅和計(jì)算機(jī)控制的發(fā)展歷程。特別是最近幾年來,隨著微電子技術(shù)和計(jì)算機(jī)技術(shù)的發(fā)展及單片機(jī)的廣泛應(yīng)用,使調(diào)速裝置向集成化、小型化和智能化方向發(fā)展。目前,最常用的直流調(diào)速技術(shù)是脈寬調(diào)制(PWM)直流調(diào)速技術(shù),它具有調(diào)速精度高、響應(yīng)速度快、調(diào)速范圍寬和耗損低等特點(diǎn)。國內(nèi)中小功率直流電機(jī)的調(diào)速系統(tǒng)大量地采用脈沖寬度(PWM)調(diào)速技術(shù),正在迅速地取代SCR直流調(diào)速系統(tǒng)。特別是單片機(jī)控制的智能化調(diào)速系統(tǒng)有也許直接安裝在電機(jī)座上而做到與電機(jī)一體化,節(jié)省了專用控制機(jī)矩,從而使設(shè)備的可靠性、自動(dòng)化限度大大提高.本文所介紹的單片機(jī)直流電機(jī)調(diào)速系統(tǒng)試圖在機(jī)電一體化方面做些工作。AVR單片機(jī)是基于RISC指令架構(gòu)的8位單片機(jī)。RISC通過優(yōu)選使用頻率最高的簡(jiǎn)樸指令,避免復(fù)雜指令,采用固定指令長(zhǎng)度,減少指令格式和尋址方式等方法來縮短指令周期,提高解決起的運(yùn)算速度。采用這種RISC結(jié)構(gòu),使得AVR系列的單片機(jī)具有1MIPS/MHZ的高速解決能力。AVR高端產(chǎn)品ATmega系列的部分單片機(jī)中還集成了在線調(diào)試單元,通過JTAG即可實(shí)現(xiàn)在線調(diào)試和程序下載功能。這使得AVR單片機(jī)成為一種能滿足多種需求的高靈活性和低成本的高速微解決器。1.2直流電機(jī)的發(fā)展直流電機(jī)可以對(duì)旋轉(zhuǎn)角度和轉(zhuǎn)動(dòng)速度進(jìn)行高精度控制。直流電機(jī)作為控制執(zhí)行元件,是機(jī)電一體化的關(guān)鍵產(chǎn)品之一,廣泛應(yīng)用在各種自動(dòng)化控制系統(tǒng)和精密機(jī)械等領(lǐng)域。例如,在儀器儀表,機(jī)床設(shè)備以及計(jì)算機(jī)的外圍設(shè)備中(如打印機(jī)和繪圖儀等),凡需要對(duì)轉(zhuǎn)角進(jìn)行精確控制的情況下,使用直流電機(jī)最為抱負(fù)。隨著微電子和計(jì)算機(jī)技術(shù)的發(fā)展,直流電機(jī)的需求量與日俱增,在各個(gè)國民經(jīng)濟(jì)領(lǐng)域都有應(yīng)用。直流電動(dòng)機(jī)是最早出現(xiàn)的電動(dòng)機(jī),也是最早實(shí)現(xiàn)條素的電動(dòng)機(jī)。由于它具有良好的線性調(diào)速特性,控制簡(jiǎn)樸,效率高及優(yōu)異的動(dòng)態(tài)特性,長(zhǎng)期以來一直戰(zhàn)局著調(diào)速控制領(lǐng)域的統(tǒng)治地位。近年來,隨著交流變頻電機(jī)及無刷電機(jī)的調(diào)速控制技術(shù)的不斷成熟,直流電機(jī)正面臨著巨大的挑戰(zhàn)。在多數(shù)調(diào)速控制場(chǎng)合,直流電機(jī)仍是最佳選擇。在本世紀(jì)初,由于資本主義列強(qiáng)爭(zhēng)奪殖民地,造船工業(yè)發(fā)展不久,同時(shí)也使得直流電動(dòng)機(jī)的技術(shù)得到了長(zhǎng)足的進(jìn)步。到了80年代后,由于便宜的微型計(jì)算機(jī)以多功能的姿態(tài)出現(xiàn),直流電動(dòng)機(jī)的控制方式更加靈活多樣。本來的直流電機(jī)控制系統(tǒng)采用分立元件或者集成電路組成的控制回路,不僅調(diào)試安裝復(fù)雜,要消耗大量元器件,并且一旦定型之后,要改變控制方案就一定要重新設(shè)計(jì)電路。計(jì)算機(jī)則通過軟件來控制直流電機(jī),更好地挖掘出電動(dòng)機(jī)的潛力。因此,用計(jì)算機(jī)控制直流電機(jī)已經(jīng)成為了一種必然的趨勢(shì),也符合數(shù)字化的時(shí)代趨勢(shì)?,F(xiàn)在比較常用的直流電機(jī)涉及反映式直流電機(jī)、永磁式直流電機(jī)、混合式直流電機(jī)和單相式直流電機(jī)等。其中反映式直流電機(jī)的轉(zhuǎn)子磁路由軟磁材料制成,定子上有多相勵(lì)磁繞組,運(yùn)用磁導(dǎo)的變化產(chǎn)生轉(zhuǎn)矩?,F(xiàn)階段,反映式直流電機(jī)獲得最多的應(yīng)用。1.3本設(shè)計(jì)完畢的工作本次畢業(yè)設(shè)計(jì)是單片機(jī)控制直流電機(jī)方面的應(yīng)用。這個(gè)設(shè)計(jì)最終目的是設(shè)計(jì)出一個(gè)可以控制直流電機(jī)旋轉(zhuǎn)的系統(tǒng)。本次設(shè)計(jì)重要實(shí)現(xiàn)了以下幾個(gè)功能:設(shè)計(jì)兩個(gè)穩(wěn)壓電源接口,可以接入適合單片機(jī)工作的5V電源和LMD18200使用的12V電源。設(shè)計(jì)一個(gè)外圍驅(qū)動(dòng)電路來驅(qū)動(dòng)直流電機(jī)旋轉(zhuǎn)。使用上位機(jī)串口控制直流電機(jī)轉(zhuǎn)速。最后編寫軟件部分,將程序輸入單片機(jī)并運(yùn)營系統(tǒng),使系統(tǒng)工作。2AVR單片機(jī)簡(jiǎn)介2.1單片機(jī)系統(tǒng)概述隨著材料科學(xué)、工藝技術(shù)、計(jì)算機(jī)技術(shù)的發(fā)展與進(jìn)步,電路系統(tǒng)向著集成度極高的方向發(fā)展。CPU的生產(chǎn)制造技術(shù),也朝著綜合性、技術(shù)性、實(shí)用性發(fā)展。如CPU的運(yùn)算位數(shù)從4位、8位……到32位機(jī)的發(fā)展,運(yùn)算速度從8MHz、32MHz……到1.6GHz。可以說是日新月異的發(fā)展著。其中單片機(jī)在控制系統(tǒng)中的應(yīng)用是越來越普遍了。單片機(jī)控制系統(tǒng)是以單片機(jī)(CPU)為核心部件,擴(kuò)展一些外部接口和設(shè)備,組成單片機(jī)工業(yè)控制機(jī),重要用于工業(yè)過程控制。要進(jìn)行單片機(jī)系統(tǒng)設(shè)計(jì)一方面必須具有一定的硬件基礎(chǔ)知識(shí);另一方面,需要具有一定的軟件設(shè)計(jì)能力,可以根據(jù)系統(tǒng)的規(guī)定,靈活地設(shè)計(jì)出所需要的程序;第三,具有綜合運(yùn)用知識(shí)的能力。最后,還必須掌握生產(chǎn)過程的工藝性能及被測(cè)參數(shù)的測(cè)量方法,以及被控對(duì)象的動(dòng)、靜態(tài)特性,有時(shí)甚至規(guī)定給出被控對(duì)象的數(shù)學(xué)模型。2.2ATmega16功能概述AVR單片機(jī)是1997年由ATMEL公司研發(fā)出的增強(qiáng)型內(nèi)置Flash的RISC(ReducedInstructionSetCPU)精簡(jiǎn)指令集高速8位單片機(jī)。AVR的單片機(jī)可以廣泛應(yīng)用于計(jì)算機(jī)外部設(shè)備、工業(yè)實(shí)時(shí)控制、儀器儀表、通訊設(shè)備、家用電器等各個(gè)領(lǐng)域。AVR的重要特性:高可靠性、功能強(qiáng)、高速度、低功耗和低價(jià)位,一直是衡量單片機(jī)性能的重要指標(biāo),也是單片機(jī)占領(lǐng)市場(chǎng)、賴以生存的必要條件。初期單片機(jī)重要由于工藝及設(shè)計(jì)水平不高、功耗高和抗干擾性能差等因素,所以采用穩(wěn)妥方案:即采用較高的分頻系數(shù)對(duì)時(shí)鐘分頻,使得指令周期長(zhǎng),執(zhí)行速度慢。以后的CMOS單片機(jī)雖然采用提高時(shí)鐘頻率和縮小分頻系數(shù)等措施,但這種狀態(tài)并未被徹底改觀(51以及51兼容)。此間雖有某些精簡(jiǎn)指令集單片機(jī)(RISC)問世,但仍然沿襲對(duì)時(shí)鐘分頻的作法。AVR單片機(jī)的推出,徹底打破這種舊設(shè)計(jì)格局,廢除了機(jī)器周期,拋棄復(fù)雜指令計(jì)算機(jī)(CISC)追求指令完備的做法;采用精簡(jiǎn)指令集,以字作為指令長(zhǎng)度單位,將內(nèi)容豐富的操作數(shù)與操作碼安排在一字之中(指令集中占大多數(shù)的單周期指令都是如此),取指周期短,又可預(yù)取指令,實(shí)現(xiàn)流水作業(yè),故可高速執(zhí)行指令。當(dāng)然這種速度上的升躍,是以高可靠性為其后盾的。AVR單片機(jī)硬件結(jié)構(gòu)采用8位機(jī)與16位機(jī)的折中策略,即采用局部寄存器存堆(32個(gè)寄存器文獻(xiàn))和單體高速輸入/輸出的方案(即輸入捕獲寄存器、輸出比較匹配寄存器及相應(yīng)控制邏輯)。提高了指令執(zhí)行速度(1Mips/MHz),克服了瓶頸現(xiàn)象,增強(qiáng)了功能;同時(shí)又減少了對(duì)外設(shè)管理的開銷,相對(duì)簡(jiǎn)化了硬件結(jié)構(gòu),減少了成本。故AVR單片機(jī)在軟/硬件開銷、速度、性能和成本諸多方面取得了優(yōu)化平衡,是高性價(jià)比的單片機(jī)。AVR單片機(jī)內(nèi)嵌高質(zhì)量的Flash程序存儲(chǔ)器,擦寫方便,支持ISP和IAP,便于產(chǎn)品的調(diào)試、開發(fā)、生產(chǎn)、更新。內(nèi)嵌長(zhǎng)壽命的EEProm可長(zhǎng)期保存關(guān)鍵數(shù)據(jù),避免斷電丟失。片內(nèi)大容量的RAM不僅能滿足一般場(chǎng)合的使用,同時(shí)也更有效的支持使用高級(jí)語言開發(fā)系統(tǒng)程序,并可像MCS-51單片機(jī)那樣擴(kuò)展外部RAM。AVR單片機(jī)的I/O線所有帶可設(shè)立的上拉電阻、可單獨(dú)設(shè)定為輸入/輸出、可設(shè)定(初始)高阻輸入、驅(qū)動(dòng)能力強(qiáng)(可省去功率驅(qū)動(dòng)器件)等特性,使的得I/O口資源靈活、功能強(qiáng)大、可充足運(yùn)用。AVR單片機(jī)片內(nèi)具有多種獨(dú)立的時(shí)鐘分頻器,分別供URAT、I2C、SPI使用。其中與8/16位定期器配合的具有多達(dá)10位的預(yù)分頻器,可通過軟件設(shè)定分頻系數(shù)提供多種檔次的定期時(shí)間。AVR單片機(jī)獨(dú)有的“以定期器/計(jì)數(shù)器(單)雙向計(jì)數(shù)形成三角波,再與輸出比較匹配寄存器配合,生成占空比可變、頻率可變、相位可變方波的設(shè)計(jì)方法(即脈寬調(diào)制輸出PWM)”更是令人耳目一新。增強(qiáng)性的高速同/異步串口,具有硬件產(chǎn)生校驗(yàn)碼、硬件檢測(cè)和校驗(yàn)偵錯(cuò)、兩級(jí)接受緩沖、波特率自動(dòng)調(diào)整定位(接受時(shí))、屏蔽數(shù)據(jù)幀等功能,提高了通信的可靠性,方便程序編寫,更便于組成分布式網(wǎng)絡(luò)和實(shí)現(xiàn)多機(jī)通信系統(tǒng)的復(fù)雜應(yīng)用,串口功能大大超過MCS-51/96單片機(jī)的串口,加之AVR單片機(jī)高速,中斷服務(wù)時(shí)間短,故可實(shí)現(xiàn)高波特率通訊。面向字節(jié)的高速硬件串行接口TWI、SPI。TWI與I2C接口兼容,具有ACK信號(hào)硬件發(fā)送與辨認(rèn)、地址辨認(rèn)、總線仲裁等功能,能實(shí)現(xiàn)主/從機(jī)的收/發(fā)所有4種組合的多機(jī)通信。SPI支持主/從機(jī)等4種組合的多機(jī)通信。AVR單片機(jī)有自動(dòng)上電復(fù)位電路、獨(dú)立的看門狗電路、低電壓檢測(cè)電路BOD,多個(gè)復(fù)位源(自動(dòng)上下電復(fù)位、外部復(fù)位、看門狗復(fù)位、BOD復(fù)位),可設(shè)立的啟動(dòng)后延時(shí)運(yùn)營程序,增強(qiáng)了嵌入式系統(tǒng)的可靠性。AVR單片機(jī)具有多種省電休眠模式,且可寬電壓運(yùn)營(5-2.7V),抗干擾能力強(qiáng),可減少一般8位機(jī)中的軟件抗干擾設(shè)計(jì)工作量和硬件的使用量。AVR單片機(jī)技術(shù)體現(xiàn)了單片機(jī)集多種器件(涉及FLASH程序存儲(chǔ)器、看門狗、EEPROM、同/異步串行口、TWI、SPI、A/D模數(shù)轉(zhuǎn)換器、定期器/計(jì)數(shù)器等)和多種功能(增強(qiáng)可靠性的復(fù)位系統(tǒng)、減少功耗抗干擾的休眠模式、品種多門類全的中斷系統(tǒng)、具輸入捕獲和比較匹配輸出等多樣化功能的定期器/計(jì)數(shù)器、具替換功能的I/O端口……)于一身,充足體現(xiàn)了單片機(jī)技術(shù)的從“片自為戰(zhàn)”向“片上系統(tǒng)SoC”過渡的發(fā)展方向。總結(jié),與其它8-bitMCU相比,AVR8-bitMCU最大的特點(diǎn)是:?哈佛結(jié)構(gòu),具有1MIPS/MHz的高速運(yùn)營解決能力;?超功能精簡(jiǎn)指令集(RISC),具有32個(gè)通用工作寄存器,克服了如8051MCU采用單一ACC進(jìn)行解決導(dǎo)致的瓶頸現(xiàn)象;?快速的存取寄存器組、單周期指令系統(tǒng),大大優(yōu)化了目的代碼的大小、執(zhí)行效率,部分型號(hào)FLASH非常大,特別合用于使用高級(jí)語言進(jìn)行開發(fā);?作輸出時(shí)與PIC的HI/LOW相同,可輸出40mA(單一輸出),作輸入時(shí)可設(shè)立為三態(tài)高阻抗輸入或帶上拉電阻輸入,具有10mA-20mA灌電流的能力;?片內(nèi)集成多種頻率的RC振蕩器、上電自動(dòng)復(fù)位、看門狗、啟動(dòng)延時(shí)等功能,外圍電路更加簡(jiǎn)樸,系統(tǒng)更加穩(wěn)定可靠;?大部分AVR片上資源豐富:帶E2PROM,PWM,RTC,SPI,UART,TWI,ISP,AD,AnalogComparator,WDT等;?大部分AVR除了有ISP功能外,尚有IAP功能,方便升級(jí)或銷毀應(yīng)用程序。2.3ATmega16單片機(jī)ATmega16是基于增強(qiáng)的AVRRISC結(jié)構(gòu)的低功耗8位CMOS微控制器。由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執(zhí)行時(shí)間,ATmega16的數(shù)據(jù)吞吐率高達(dá)1MIPS/MHz,從而可以緩減系統(tǒng)在功耗和解決速度之間的矛盾。ATmega16AVR內(nèi)核具有豐富的指令集和32個(gè)通用工作寄存器。所有的寄存器都直接與算邏單元(ALU)相連接,使得一條指令可以在一個(gè)時(shí)鐘周期內(nèi)同時(shí)訪問兩個(gè)獨(dú)立的寄存器。這種結(jié)構(gòu)大大提高了代碼效率,并且具有比普通的CISC微控制器最高至10倍的數(shù)據(jù)吞吐率。2.3.1ATmega16單片機(jī)的特點(diǎn)及特性1、特點(diǎn)16K字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有同時(shí)讀寫的能力,即RWW),512字節(jié)EEPROM,1K字節(jié)SRAM,32個(gè)通用I/O口線,32個(gè)通用工作寄存器,用于邊界掃描的JTAG接口,支持片內(nèi)調(diào)試與編程,三個(gè)具有比較模式的靈活的定期器/計(jì)數(shù)器(T/C),片內(nèi)/外中斷,可編程串行USART,有起始條件檢測(cè)器的通用串行接口,8路10位具有可選差分輸入級(jí)可編程增益(TQFP封裝)的ADC,具有片內(nèi)振蕩器的可編程看門狗定期器,一個(gè)SPI串行端口,以及六個(gè)可以通過軟件進(jìn)行選擇的省電模式。工作于空閑模式時(shí)CPU停止工作,而USART、兩線接口、A/D轉(zhuǎn)換器、SRAM、T/C、SPI端口以及中斷系統(tǒng)繼續(xù)工作;掉電模式時(shí)晶體振蕩器停止振蕩,所有功能除了中斷和硬件復(fù)位之外都停止工作;在省電模式下,異步定期器繼續(xù)運(yùn)營,允許用戶保持一個(gè)時(shí)間基準(zhǔn),而其余功能模塊處在休眠狀態(tài);ADC噪聲克制模式時(shí)終止CPU和除了異步定期器與ADC以外所有I/O模塊的工作,以減少ADC轉(zhuǎn)換時(shí)的開關(guān)噪聲;Standby模式下只有晶體或諧振振蕩器運(yùn)營,其余功能模塊處在休眠狀態(tài),使得器件只消耗很少的電流,同時(shí)具有快速啟動(dòng)能力;擴(kuò)展Standby模式下則允許振蕩器和異步定期器繼續(xù)工作。2、產(chǎn)品特性?高性能、低功耗的8位AVR微解決器
?先進(jìn)的RISC結(jié)構(gòu)
?131條指令
?大多數(shù)指令執(zhí)行時(shí)間為單個(gè)時(shí)鐘周期
?32個(gè)8位通用工作寄存器
?全靜態(tài)工作
?工作于16MHz時(shí)性能高達(dá)16MIPS
?只需兩個(gè)時(shí)鐘周期的硬件乘法器
?非易失性程序和數(shù)據(jù)存儲(chǔ)器
?16K字節(jié)的系統(tǒng)內(nèi)可編程Flash,擦寫壽命:10,000次
?具有獨(dú)立鎖定位的可選Boot代碼區(qū),通過片上Boot程序?qū)崿F(xiàn)系統(tǒng)內(nèi)編程,真正的時(shí)讀寫操作
?512字節(jié)的EEPROM,擦寫壽命:100,000次
?1K字節(jié)的片內(nèi)SRAM
?可以對(duì)鎖定位進(jìn)行編程以實(shí)現(xiàn)用戶程序的加密
?JTAG接口(與IEEE1149.1標(biāo)準(zhǔn)兼容)
符合JTAG標(biāo)準(zhǔn)的邊界掃描功能
支持?jǐn)U展的片內(nèi)調(diào)試功能
通過JTAG接口實(shí)現(xiàn)對(duì)Flash、EEPROM、熔絲位和鎖定位的編程3、外設(shè)特點(diǎn)
?兩個(gè)具有獨(dú)立預(yù)分頻器和比較器功能的8位定期器/計(jì)數(shù)器
?一個(gè)具有預(yù)分頻器、比較功能和捕獲功能的16位定期器/計(jì)數(shù)器
?具有獨(dú)立振蕩器的實(shí)時(shí)計(jì)數(shù)器RTC
?四通道PWM
?8路10位ADC,8個(gè)單端通道,2個(gè)具有可編程增益(1x,10x,或200x)的差分通道
?面向字節(jié)的兩線接口
?兩個(gè)可編程的串行USART
?可工作于主機(jī)/從機(jī)模式的SPI串行接口
?具有獨(dú)立片內(nèi)振蕩器的可編程看門狗定期器
?片內(nèi)模擬比較器
?特殊的解決器特點(diǎn)
?上電復(fù)位以及可編程的掉電檢測(cè)
?片內(nèi)通過標(biāo)定的RC振蕩器
?片內(nèi)/片外中斷源
?6種睡眠模式:空閑模式、ADC噪聲克制模式、省電模式、掉電模式、Standby模式以及擴(kuò)展的Standby模式
?I/O和封裝
?32個(gè)可編程的I/O口
?40引腳PDIP封裝,44引腳TQFP封裝,與44引腳MLF封裝
?工作電壓:
ATmega16L:2.7-5.5V
ATmega16:4.5-5.5V
?速度等級(jí)
0-8MHzATmega16L
0-16MHzATmega16
?ATmega16L在1MHz,3V,25°C時(shí)的功耗
正常模式:1.1mA
空閑模式:0.35mA
掉電模式:<1μA2.3.2ATmega16單片機(jī)引腳配置及說明圖2.1ATmega16引腳圖?VCC:數(shù)字電路的電源?GND:地?端口A(PA7..PA0):端口A做為A/D轉(zhuǎn)換器的模擬輸入端。端口A為8位雙向I/O口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對(duì)稱的驅(qū)動(dòng)特性,可以輸出和吸取大電流。作為輸入使用時(shí),若內(nèi)部上拉電阻使能,端口被外部電路拉低時(shí)將輸出電流。在復(fù)位過程中,即使系統(tǒng)時(shí)鐘尚未起振,端口A處在高阻狀態(tài)。?端口B(PB7..PB0):端口B為8位雙向I/O口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對(duì)稱的驅(qū)動(dòng)特性,可以輸出和吸取大電流。作為輸入使用時(shí),若內(nèi)部上拉電阻使能,端口被外部電路拉低時(shí)將輸出電流。在復(fù)位過程中,即使系統(tǒng)時(shí)鐘尚未起振,端口B處在高阻狀態(tài)。?端口C(PC7..PC0):端口C為8位雙向I/O口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對(duì)稱的驅(qū)動(dòng)特性,可以輸出和吸取大電流。作為輸入使用時(shí),若內(nèi)部上拉電阻使能,端口被外部電路拉低時(shí)將輸出電流。在復(fù)位過程中,即使系統(tǒng)時(shí)鐘尚未起振,端口C處在高阻狀態(tài)。假如JTAG接口使能,即使復(fù)位出現(xiàn)引腳PC5(TDI)、PC3(TMS)與PC2(TCK)的上拉電阻被激活。?端口D(PD7..PD0):端口D為8位雙向I/O口,具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對(duì)稱的驅(qū)動(dòng)特性,可以輸出和吸取大電流。作為輸入使用時(shí),若內(nèi)部上拉電阻使能,則端口被外部電路拉低時(shí)將輸出電流。在復(fù)位過程中,即使系統(tǒng)時(shí)鐘尚未起振,端口D處在高阻狀態(tài)。?RESET:復(fù)位輸入引腳。連續(xù)時(shí)間超過最小門限時(shí)間的低電平將引起系統(tǒng)復(fù)位。門限時(shí)間見P36Table15。連續(xù)時(shí)間小于門限間的脈沖不能保證可靠復(fù)位。?XTAL1:反向振蕩放大器與片內(nèi)時(shí)鐘操作電路的輸入端。?XTAL2:反向振蕩放大器的輸出端。?AVCC:是端口A與A/D轉(zhuǎn)換器的電源。不使用ADC時(shí),該引腳應(yīng)直接與VCC連接。使用ADC時(shí)應(yīng)通過一個(gè)低通濾波器與VCC連接。?AREFA/D:的模擬基準(zhǔn)輸入引腳。2.3.3CPUATMEGA16AVR內(nèi)核的結(jié)構(gòu)。CPU的重要任務(wù)是保證程序的對(duì)的執(zhí)行。因此它必須可以訪問存儲(chǔ)器、執(zhí)行運(yùn)算、控制外設(shè)以及解決中斷。為了獲得最高的性能以及并行性,AVR采用了Harvard結(jié)構(gòu),具有獨(dú)立的數(shù)據(jù)和程序總線。程序存儲(chǔ)器里的指令通過一級(jí)流水線運(yùn)營。CPU在執(zhí)行一條指令的同時(shí)讀取下一條指令(在本文稱為預(yù)取)。這個(gè)概念實(shí)現(xiàn)了指令的單時(shí)鐘周期運(yùn)營。程序存儲(chǔ)器是可以在線編程的FLASH??焖僭L問寄存器文獻(xiàn)涉及32個(gè)8位通用工作寄存器,訪問時(shí)間為一個(gè)時(shí)鐘周期。從而實(shí)現(xiàn)了單時(shí)鐘周期的ALU操作。在典型的ALU操作中,兩個(gè)位于寄存器文獻(xiàn)中的操作數(shù)同時(shí)被訪問,然后執(zhí)行運(yùn)算,結(jié)果再被送回到寄存器文獻(xiàn)。整個(gè)過程僅需一個(gè)時(shí)鐘周期。
寄存器文獻(xiàn)里有6個(gè)寄存器可以用作3個(gè)16位的間接尋址寄存器指針以尋址數(shù)據(jù)空間,實(shí)現(xiàn)高效的地址運(yùn)算。其中一個(gè)指針還可以作為程序存儲(chǔ)器查詢表的地址指針。這些附加的功能寄存器即為16位的X、Y、Z寄存器。
ALU支持寄存器之間以及寄存器和常數(shù)之間的算術(shù)和邏輯運(yùn)算。ALU也可以執(zhí)行單寄存器操作。運(yùn)算完畢之后狀態(tài)寄存器的內(nèi)容得到更新以反映操作結(jié)果。程序流程通過有/無條件的跳轉(zhuǎn)指令和調(diào)用指令來控制,從而直接尋址整個(gè)地址空間。大多數(shù)指令長(zhǎng)度為16位,亦即每個(gè)程序存儲(chǔ)器地址都包含一條16位或32位的指令。
程序存儲(chǔ)器空間分為兩個(gè)區(qū):引導(dǎo)程序區(qū)(Boot區(qū))和應(yīng)用程序區(qū)。這兩個(gè)區(qū)都有專門的鎖定位以實(shí)現(xiàn)讀和讀/寫保護(hù)。用于寫應(yīng)用程序區(qū)的SPM指令必須位于引導(dǎo)程序區(qū)。
在中斷和調(diào)用子程序時(shí)返回地址的程序計(jì)數(shù)器(PC)保存于堆棧之中。堆棧位于通用數(shù)據(jù)SRAM,因此其深度僅受限于SRAM的大小。在復(fù)位例程里用戶一方面要初始化堆棧指針SP。這個(gè)指針位于I/O空間,可以進(jìn)行讀寫訪問。數(shù)據(jù)SRAM可以通過5種不同的尋址模式進(jìn)行訪問。
AVR存儲(chǔ)器空間為線性的平面結(jié)構(gòu)。
AVR有一個(gè)靈活的中斷模塊。控制寄存器位于I/O空間。狀態(tài)寄存器里有全局中斷使能位。每個(gè)中斷在中斷向量表里都有獨(dú)立的中斷向量。各個(gè)中斷的優(yōu)先級(jí)與其在中斷向量表的位置有關(guān),中斷向量地址越低,優(yōu)先級(jí)越高。
I/O存儲(chǔ)器空間包含64個(gè)可以直接尋址的地址,作為CPU外設(shè)的控制寄存器、SPI,以及其他I/O功能。映射到數(shù)據(jù)空間即為寄存器文獻(xiàn)之后的地址0x20-0x5F。2.3.4存儲(chǔ)器ATmega16的存儲(chǔ)器。AVR結(jié)構(gòu)具有兩個(gè)重要的存儲(chǔ)器空間:數(shù)據(jù)存儲(chǔ)器空間和程序存儲(chǔ)器空間。此外,ATmega16尚有EEPROM存儲(chǔ)器以保存數(shù)據(jù)。這三個(gè)存儲(chǔ)器空間都為線性的平面結(jié)構(gòu)。1、系統(tǒng)內(nèi)可編程的Flash程序存儲(chǔ)器ATmega16具有16K字節(jié)的在線編程Flash,用于存放程序指令代碼。由于所有的AVR指令為16位或32位,故而Flash組織成8K16位的形式。用戶程序的安全性要根據(jù)Flash程序存儲(chǔ)器的兩個(gè)區(qū):引導(dǎo)(Boot)程序區(qū)和應(yīng)用程序區(qū),分開來考慮。Flash存儲(chǔ)器至少可以擦寫10,000次。ATmega16的程序計(jì)數(shù)器(PC)為13位,因此可以尋址8K字的程序存儲(chǔ)器空間。2、SRAM數(shù)據(jù)存儲(chǔ)器圖2.2給出了ATmega16SRAM空間的組織結(jié)構(gòu)。前1120個(gè)數(shù)據(jù)存儲(chǔ)器涉及了寄存器文獻(xiàn)、I/O存儲(chǔ)器及內(nèi)部數(shù)據(jù)SRAM。起始的96個(gè)地址為寄存器文獻(xiàn)與64個(gè)I/O存儲(chǔ)器,接著是1024字節(jié)的內(nèi)部數(shù)據(jù)SRAM。數(shù)據(jù)存儲(chǔ)器的尋址方式分為5種:直接尋址、帶偏移量的間接尋址、間接尋址、帶預(yù)減量的間接尋址和帶后增量的間接尋址。寄存器文獻(xiàn)中的寄存器R26到R31為間接尋址的指針寄存器。直接尋址范圍可達(dá)整個(gè)數(shù)據(jù)區(qū)。
圖2.2ATmega16SRAM空間的組織結(jié)構(gòu)
帶偏移量的間接尋址模式可以尋址到由寄存器Y和Z給定的基址附近的63個(gè)地址。在自動(dòng)預(yù)減和后加的間接尋址模式中,寄存器X、Y和Z自動(dòng)增長(zhǎng)或減少。ATmega16的所有32個(gè)通用寄存器、64個(gè)I/O寄存器及1024個(gè)字節(jié)的內(nèi)部數(shù)據(jù)SRAM可以通過所有上述的尋址模式進(jìn)行訪問。3、EEPROM數(shù)據(jù)存儲(chǔ)器ATmega16包含512字節(jié)的EEPROM數(shù)據(jù)存儲(chǔ)器。它是作為一個(gè)獨(dú)立的數(shù)據(jù)空間而存在的,可以按字節(jié)讀寫。EEPROM的壽命至少為100,000次擦除周期。EEPROM的訪問由地址寄存器、數(shù)據(jù)寄存器和控制寄存器決定。I/O口介紹作為通用數(shù)字I/O使用時(shí),所有AVRI/O端口都具有真正的讀-修改-寫功能。這意味著用SBI或CBI指令改變某些管腳的方向(或者是端口電平、嚴(yán)禁/使能上拉電阻)時(shí)不會(huì)無意地改變其他管腳的方向(或者是端口電平、嚴(yán)禁/使能上拉電阻)。輸出緩沖器具有對(duì)稱的驅(qū)動(dòng)能力,可以輸出或吸取大電流,直接驅(qū)動(dòng)LED。所有的端口引腳都具有與電壓無關(guān)的上拉電阻。并有保護(hù)二極管與VCC和地相連,如圖2.3所示。圖2.3I/O引腳等效原理圖1、I/O引腳等效原理圖每個(gè)端口都有三個(gè)I/O存儲(chǔ)器地址:數(shù)據(jù)寄存器–PORTx、數(shù)據(jù)方向寄存器–DDRx和端口輸入引腳–PINx。數(shù)據(jù)寄存器和數(shù)據(jù)方向寄存器為讀/寫寄存器,而端口輸入引腳為只讀寄存器。但是需要特別注意的是,對(duì)PINx寄存器某一位寫入邏輯“1”將導(dǎo)致數(shù)據(jù)寄存器相應(yīng)位的數(shù)據(jù)發(fā)生“0”與“1”的交替變化。當(dāng)寄存器MCUCR的上拉嚴(yán)禁位PUD置位時(shí)所有端口引腳的上拉電阻都被嚴(yán)禁。2、端口配置引腳通用數(shù)字I/O的端口引腳是與第二功能復(fù)用的。使能某些引腳的第二功能不會(huì)影響其他屬于同一端口的引腳用于通用數(shù)字I/O目的。每個(gè)端口引腳都具有三個(gè)寄存器位:DDxn、PORTxn和PINxn,DDxn位于DDRx寄存器,PORTxn位于PORTx寄存器,PINxn位于PINx寄存器。DDxn用來選擇引腳的方向。DDxn為“1”時(shí),Pxn配置為輸出,否則配置為輸入。引腳配置為輸入時(shí),若PORTxn為“1”,上拉電阻將使能。假如需要關(guān)閉這個(gè)上拉電阻,可以將PORTxn清零,或者將這個(gè)引腳配置為輸出。復(fù)位時(shí)各引腳為高阻態(tài),即使此時(shí)并沒有時(shí)鐘在運(yùn)營。當(dāng)引腳配置為輸出時(shí),若PORTxn為“1”,引腳輸出高電平“1”,否則輸出低電平“0”。在(高阻態(tài))三態(tài)({DDxn,PORTxn}=0b00)輸出高電平({DDxn,PORTxn}=0b11)兩種狀態(tài)之間進(jìn)行切換時(shí),上拉電阻使能({DDxn,PORTxn}=0b01)或輸出低電平({DDxn,PORTxn}=0b10)這兩種模式必然會(huì)有一個(gè)發(fā)生。通常,上拉電阻使能是完全可以接受的,由于高阻環(huán)境不在意是強(qiáng)高電平輸出還是上拉輸出。假如使用情況不是這樣子,可以通過置位SFIOR寄存器的PUD來嚴(yán)禁所有端口的上拉電阻。在上拉輸入和輸出低電平之間切換也有同樣的問題。用戶必須選擇高阻態(tài)({DDxn,PORTxn}=0b00)或輸出高電平({DDxn,PORTxn}=0b10)作為中間環(huán)節(jié)。3、端口的第二功能(1)端口A的第二功能端口A作為ADC模擬輸入的第二功能示于表2.1。假如端口A的部分引腳置為輸出,當(dāng)轉(zhuǎn)換時(shí)不能切換,否則會(huì)影響轉(zhuǎn)換結(jié)果。表2.1端口A的第二功能端口引腳第二功能PA7ADC7(ADC輸入通道7)PA6ADC6(ADC輸入通道6)PA5ADC5(ADC輸入通道5)PA4ADC4(ADC輸入通道4)PA3ADC3(ADC輸入通道3)PA2ADC2(ADC輸入通道2)PA1ADC1(ADC輸入通道1)PA0ADC0(ADC輸入通道0)(2)端口B的第二功能引腳配置如下:?SCK–端口B,Bit7SCK:SPI通道的主機(jī)時(shí)鐘輸出,從機(jī)時(shí)鐘輸入端口。工作于從機(jī)模式時(shí),不管DDB7設(shè)立如何,這個(gè)引腳都將設(shè)立為輸入。工作于主機(jī)模式時(shí),這個(gè)引腳的數(shù)據(jù)方向由DDB7控制。設(shè)立為輸入后,上拉電阻由PORTB7控制。?MISO–端口B,Bit6MISO:SPI通道的主機(jī)數(shù)據(jù)輸入,從機(jī)數(shù)據(jù)輸出端口。工作于主機(jī)模式時(shí),不管DDB6設(shè)立如何,這個(gè)引腳都將設(shè)立為輸入。工作于從機(jī)模式時(shí),這個(gè)引腳的數(shù)據(jù)方向由DDB6控制。設(shè)立為輸入后,上拉電阻由PORTB6控制。表2.2端口B的第二功能端口引腳第二功能PB7SCK(SPI總線的串行時(shí)鐘)PB6MISO(SPI總線的主機(jī)輸入/從機(jī)輸出信號(hào))PB5MOSI(SPI總線的主機(jī)輸出/從機(jī)輸入信號(hào))PB4SS(SPI從機(jī)選擇引腳)PB3AIN1(模擬比較負(fù)輸入)OC0(T/C0輸出比較匹配輸出)PB2AIN0(模擬比較正輸入)INT2(外部中斷2輸入)PB1T1(T/C1外部計(jì)數(shù)器輸入)PB0T0(T/C0外部計(jì)數(shù)器輸入)XCK(USART外部時(shí)鐘輸入/輸出)?MOSI–端口B,Bit5MOSI:SPI通道的主機(jī)數(shù)據(jù)輸出,從機(jī)數(shù)據(jù)輸入端口。工作于從機(jī)模式時(shí),不管DDB5設(shè)立如何,這個(gè)引腳都將設(shè)立為輸入。當(dāng)工作于主機(jī)模式時(shí),這個(gè)引腳的數(shù)據(jù)方向由DDB5控制。設(shè)立為輸入后,上拉電阻由PORTB5控制。?SS–端口B,Bit4SS:從機(jī)選擇輸入。工作于從機(jī)模式時(shí),不管DDB4設(shè)立如何,這個(gè)引腳都將設(shè)立為輸入。當(dāng)此引腳為低時(shí)SPI被激活。工作于主機(jī)模式時(shí),這個(gè)引腳的數(shù)據(jù)方向由DDB4控制。設(shè)立為輸入后,上拉電阻由PORTB4控制。?AIN1/OC0–端口B,Bit3AIN1,模擬比較負(fù)輸入。配置該引腳為輸入時(shí),切斷內(nèi)部上拉電阻,防止數(shù)字端口功能與模擬比較器功能相沖突。OC0,輸出比較匹配輸出:PB3引腳可作為T/C0比較匹配的外部輸出。實(shí)現(xiàn)該功能時(shí),PB3引腳必須配置為輸出(設(shè)DDB3為1)。在PWM模式的定期功能中,OC0引腳作為輸出。?AIN0/INT2–端口B,Bit2AIN0,模擬比較正輸入。配置該引腳為輸入時(shí),切斷內(nèi)部上拉電阻,防止數(shù)字端口功能與模擬比較器功能相沖突。INT2,外部中斷源2:PB2引腳作為MCU的外部中斷源。?T1–端口B,Bit1T1,T/C1計(jì)數(shù)器源。?T0/XCK–端口B,Bit0T0,T/C0計(jì)數(shù)器源。XCK,USART外部時(shí)鐘。數(shù)據(jù)方向寄存器(DDB0)控制時(shí)鐘為輸出(DDB0置位)還是輸入(DDB0清零)。只有當(dāng)USART工作在同步模式時(shí),XCK引腳激活。(3)端口C的第二功能端口C的第二功能如表2.3。若JTAG接口使能,即使出現(xiàn)復(fù)位,引腳PC5(TDI)、PC3(TMS)與PC2(TCK)的上拉電阻將被激活。表2.3端口C的第二功能端口引腳第二功能PC7TOSC2(定期振蕩器引腳2)PC6TOSC1(定期振蕩器引腳1)PC5TDI(JTAG測(cè)試數(shù)據(jù)輸入)PC4TDO(JTAG測(cè)試數(shù)據(jù)輸出)PC3TMS(JTAG測(cè)試模式選擇)PC2TCK(JTAG測(cè)試時(shí)鐘)PC1SDA(兩線串行總線數(shù)據(jù)輸入/輸出線)PC0SCL(兩線串行總線時(shí)鐘線)第二功能配置如下:?TOSC2–端口C,Bit7TOSC2,定期振蕩器引腳2:當(dāng)寄存器ASSR的AS2位置1,使能T/C2的異步時(shí)鐘,引腳PC7與端口斷開,成為振蕩器放大器的反向輸出。在這種模式下,晶體振蕩器與該引腳相聯(lián),該引腳不能作為I/O引腳。?TOSC1–端口C,Bit6TOSC1,定期振蕩器引腳1:當(dāng)寄存器ASSR的AS2位置1,使能T/C2的異步時(shí)鐘,引腳PC6與端口斷開,成為振蕩器放大器的反向輸出。在這種模式下,晶體振蕩器與該引腳相聯(lián),該引腳不能作為I/O引腳。?TDI–端口C,Bit5TDI,JTAG測(cè)試數(shù)據(jù)輸入:串行輸入數(shù)據(jù)移入指令寄存器或數(shù)據(jù)寄存器(掃描鏈)。當(dāng)JTAG接口使能,該引腳不能作為I/O引腳。?TDO–端口C,Bit4TDO,JTAG測(cè)試數(shù)據(jù)輸入:串行輸入數(shù)據(jù)移入指令寄存器或數(shù)據(jù)寄存器(掃描鏈)。當(dāng)JTAG接口使能,該引腳不能作為I/O引腳。TD0引腳在除TAP狀態(tài)情況外為三態(tài),進(jìn)入移出數(shù)據(jù)狀態(tài)。?TMS–端口C,Bit3TMS,JTAG測(cè)試模式選擇:該引腳作為TAP控制器狀態(tài)工具的定位。當(dāng)JTAG接口使能,該引腳不能作為I/O引腳。?TCK–端口C,Bit2TCK,JTAG測(cè)試時(shí)鐘:JTAG工作在同步模式下。當(dāng)JTAG接口使能,該引腳不能作為I/O引腳。?SDA–端口C,Bit1SDA,兩線串行接口數(shù)據(jù):當(dāng)寄存器TWCR的TWEN位置1使能兩線串行接口,引腳PC1不與端口相聯(lián),且成為兩線串行接口的串行數(shù)據(jù)I/O引腳。在該模式下,在引腳處使用窄帶濾波器克制低于50ns的輸入信號(hào),且該引腳由斜率限制的開漏驅(qū)動(dòng)器驅(qū)動(dòng)。當(dāng)該引腳使用兩線串行接口,仍可由PORTC1位控制上拉。?SCL–端口C,Bit0SCL,兩線串行接口時(shí)鐘:當(dāng)TWCR寄存器的TWEN位置1使能兩線串行接口,引腳PC0未與端口連接,成為兩線串行接口的串行時(shí)鐘I/O引腳。在該模式下,在引腳處使用窄帶濾波器克制低于50ns的輸入信號(hào),且該引腳由斜率限制的開漏驅(qū)動(dòng)器驅(qū)動(dòng)。當(dāng)該引腳使用兩線串行接口,仍可由PORTC0位控制上拉。(4)端口D的第二功能表2.4端口D的第二功能端口引腳第二功能PD7OC2(T/C2輸出比較匹配輸出)PD6ICP1(T/C1輸入捕獲引腳)PD5OC1A(T/C1輸出比較A匹配輸出)PD4OC1B(T/C1輸出比較B匹配輸出)PD3INT1(外部中斷1的輸入)PD2INT0(外部中斷0的輸入)PD1TXD(USART輸出引腳)PD0RXD(USART輸入引腳)第二功能配置如下:?OC2–端口D,Bit7OC2,T/C2輸出比較匹配輸出:PD7引腳作為T/C2輸出比較外部輸入。在該功能下引腳作為輸出(DDD7置1)。在PWM模式的定期器功能中,OC2引腳作為輸出。?ICP1–端口D,Bit6ICP1–輸入捕獲引腳:PD6作為T/C1的輸入捕獲引腳。?OC1A–端口D,Bit5OC1A,T/C2輸出比較匹配A輸出:PD5引腳作為T/C1輸出比較A外部輸入。在該功能下引腳作為輸出(DDD5置1)。在PWM模式的定期器功能中,OC1A引腳作為輸出。?OC1B–端口D,Bit4OC1B,T/C1輸出比較匹配B輸出:PD4引腳作為T/C1輸出比較B外部輸入。在該功能下引腳作為輸出(DDD4置1)。在PWM模式的定期器功能中,OC1B引腳作為輸出。?INT1–端口D,Bit3INT1,外部中斷1。PD3引腳作為MCU的外部中斷源。?INT0–端口D,Bit2INT0,外部中斷0。PD2引腳作為MCU的外部中斷源。?TXD–端口D,Bit1TXD是USART的數(shù)據(jù)發(fā)送引腳。當(dāng)使能了USART的發(fā)送器后,這個(gè)引腳被強(qiáng)制設(shè)立為輸出,此時(shí)DDD1不起作用。?RXD–端口D,Bit0RXD是USART的數(shù)據(jù)接受引腳。當(dāng)使能了USART的接受器后,這個(gè)引腳被強(qiáng)制設(shè)立為輸出,此時(shí)DDD0不起作用。但是PORTD0仍然控制上拉電阻2.3.6復(fù)位電路復(fù)位時(shí)所有的I/O寄存器都被設(shè)立為初始值,程序從復(fù)位向量處開始執(zhí)行。復(fù)位向量處的指令必須是絕對(duì)跳轉(zhuǎn)JMP指令,以使程序跳轉(zhuǎn)到復(fù)位解決例程。假如程序永遠(yuǎn)不運(yùn)用中斷功能,中斷向量可以由一般的程序代碼所覆蓋。這個(gè)解決方法同樣合用于當(dāng)復(fù)位向量位于應(yīng)用程序區(qū),中斷向量位于Boot區(qū)—或者反過來—的時(shí)候。圖2.4為復(fù)位邏輯的電路圖。復(fù)位源有效時(shí)I/O端口立即復(fù)位為初始值。此時(shí)不規(guī)定任何時(shí)鐘處在正常運(yùn)營狀態(tài)。所有的復(fù)位信號(hào)消失之后,芯片內(nèi)部的一個(gè)延遲計(jì)數(shù)器被激活,將內(nèi)部復(fù)位的時(shí)間延長(zhǎng)。這種解決方式使得在MCU正常工作之前有一定的時(shí)間讓電源達(dá)成穩(wěn)定的電平。延遲計(jì)數(shù)器的溢出時(shí)間通過熔絲位SUT與CKSEL設(shè)定。圖2.4復(fù)位邏輯的電路圖ATmega16有5個(gè)復(fù)位源:(1)上電復(fù)位。電源電壓低于上電復(fù)位門限VPOT時(shí),MCU復(fù)位。(2)外部復(fù)位。引腳RESET上的低電平連續(xù)時(shí)間大于最小脈沖寬度時(shí)MCU復(fù)位。(3)看門狗復(fù)位??撮T狗使能并且看門狗定期器溢出時(shí)復(fù)位發(fā)生。(4)掉電檢測(cè)復(fù)位。掉電檢測(cè)復(fù)位功能使能,且電源電壓低于掉電檢測(cè)復(fù)位門限VBOT時(shí)MCU即復(fù)位。(5)JTAGAVR復(fù)位。復(fù)位寄存器為1時(shí)MCU復(fù)位。2.3.7時(shí)鐘電路AVR的重要時(shí)鐘系統(tǒng)及其分布。這些時(shí)鐘并不需要同時(shí)工作。為了減少功耗,可以通過使用不同的睡眠模式來嚴(yán)禁無需工作的模塊的時(shí)鐘。時(shí)鐘系統(tǒng)如圖2.5:1、時(shí)鐘分布圖2.5時(shí)鐘分布(1)CPU時(shí)鐘-CPU時(shí)鐘與操作AVR內(nèi)核的子系統(tǒng)相連,如通用寄存器文獻(xiàn)、狀態(tài)寄存器及保存堆棧指針的數(shù)據(jù)存儲(chǔ)器。終止CPU時(shí)鐘將使內(nèi)核停止工作和計(jì)算。(2)I/O時(shí)鐘-I/O時(shí)鐘用于重要的I/O模塊,如定期器/計(jì)數(shù)器、SPI和USART。I/O時(shí)鐘還用于外部中斷模塊。要注意的是有些外部中斷由異步邏輯檢測(cè),因此即使I/O時(shí)鐘停止了這些中斷仍然可以得到監(jiān)控。此外,USI模塊的起始條件檢測(cè)在沒有I/O的情況下也是異步實(shí)現(xiàn)的,使得這個(gè)功能在任何睡眠模式下都可以正常工作。(3)Flash時(shí)鐘-FLASH時(shí)鐘控制Flash接口的操作。此時(shí)鐘通常與CPU時(shí)鐘同時(shí)掛起或激活。(4)異步定期器時(shí)鐘-ASY異步定期器時(shí)鐘允許異步定期器/計(jì)數(shù)器與LCD控制器直接由外部32kHz時(shí)鐘晶體驅(qū)動(dòng)。使得此定期器/計(jì)數(shù)器即使在睡眠模式下仍然可認(rèn)為系統(tǒng)提供一個(gè)實(shí)時(shí)時(shí)鐘。(5)ADC時(shí)鐘-ADC具有專門的時(shí)鐘。這樣可以在ADC工作的時(shí)候停止CPU和I/O時(shí)鐘以減少數(shù)字電路產(chǎn)生的噪聲,從而提高ADC轉(zhuǎn)換精度。2、時(shí)鐘源ATmega16芯片有如下幾種通過Flash熔絲位進(jìn)行選擇的時(shí)鐘源。時(shí)鐘輸入到AVR時(shí)鐘發(fā)生器,再分派到相應(yīng)的模塊。本設(shè)計(jì)使用晶體振蕩器:XTAL1與XTAL2分別為用作片內(nèi)振蕩器的反向放大器的輸入和輸出,如圖2.6所示,這個(gè)振蕩器可以使用石英晶體,也可以使用陶瓷諧振器。熔絲位CKOPT用來選擇這兩種放大器模式的其中之一。當(dāng)CKOPT被編程時(shí)振蕩器在輸出引腳產(chǎn)生滿幅度的振蕩。這種模式適合于噪聲環(huán)境,以及需要通過XTAL2驅(qū)動(dòng)第二個(gè)時(shí)鐘緩沖器的情況。并且這種模式的頻率范圍比較寬。當(dāng)保持CKOPT為未編程狀態(tài)時(shí),振蕩器的輸出信號(hào)幅度比較小。表2.5時(shí)鐘源選擇器件時(shí)鐘選擇CKSEL3.0外部晶體/陶瓷振蕩器1111-1010外部低頻晶振1001外部RC振蕩器1000-0101標(biāo)定的內(nèi)部RC振蕩器0100-0001外部時(shí)鐘0000其優(yōu)點(diǎn)是大大減少了功耗,但是頻率范圍比較窄,并且不能驅(qū)動(dòng)其他時(shí)鐘緩沖器。晶體振蕩器連接圖圖2.6晶體振蕩器連接圖3、振蕩器工作模式振蕩器可以工作于三種不同的模式,每一種都有一個(gè)優(yōu)化的頻率范圍。工作模式通過熔絲位CKSEL3..1來選擇,如表2.6所示。表2.6晶體振蕩器工作模式CKOPTCKSEL3..1頻率范圍(MHz)使用晶體時(shí)電容C1和C2的推薦范圍(pF)1101(1)0.4-0.9–11100.9-30-8.012-220101,110,1111.012-223直流電機(jī)控制系統(tǒng)硬件設(shè)計(jì)ATmega16直流電機(jī)控制系統(tǒng)硬件設(shè)計(jì)重要涉及以下幾個(gè)方面的內(nèi)容:接口電路,LMD18200驅(qū)動(dòng)電路,串行通信接口電路,時(shí)鐘電路,系統(tǒng)復(fù)位電路設(shè)計(jì)。3.1總體電路設(shè)計(jì)直流電機(jī)控制系統(tǒng)重要是由上位機(jī)發(fā)出指令,通過串行通信電路將TIA/EIA-232-F電平轉(zhuǎn)換成5-VTTL/CMOS電平。再傳送至單片機(jī)上,由單片機(jī)發(fā)出控制脈沖,控制驅(qū)動(dòng)芯片LMD18200中PWM電路的占空比,從而控制電機(jī)正反轉(zhuǎn)以及起停等動(dòng)作。如附錄C。3.2時(shí)鐘電路在ATmega16芯片內(nèi)部有一個(gè)高增益方向放大器,其輸入端為芯片引腳XTAL1,其輸出端為引腳XTAL2。而在芯片的外部,XTAL1和XTAL2之間跨接晶體振蕩器和微調(diào)電容,從而構(gòu)成一個(gè)穩(wěn)定的自激振蕩器,這就是單片機(jī)的時(shí)鐘電路,如圖3.1所示。圖3.1時(shí)鐘電路設(shè)計(jì)系統(tǒng)所采用的晶體振蕩器為12MHz(11.059MHz)足夠可以與微調(diào)電容起振,滿足系統(tǒng)所需的采樣頻率。3.3系統(tǒng)復(fù)位電路任何單片機(jī)在工作之前都要進(jìn)行復(fù)位,復(fù)位對(duì)單片機(jī)來說就象計(jì)算機(jī)的重新啟動(dòng),是在做一些準(zhǔn)備工作。一般來說,只要將AVR單片機(jī)的RESET引腳上加負(fù)脈沖就完畢了復(fù)位。復(fù)位都是通過復(fù)位電路來完畢的,復(fù)位電路的實(shí)現(xiàn)有很多種方法,但是從功能上一般分為兩種:一種是電源復(fù)位,即外部電路的復(fù)位電路在系統(tǒng)上電之后自動(dòng)進(jìn)行復(fù)位;另一種方法是在復(fù)位電路按鍵設(shè)計(jì)開關(guān),通過按鍵開關(guān)出發(fā)復(fù)位電平,從而控制單片機(jī)的復(fù)位。系統(tǒng)才用的是通過按鍵產(chǎn)生脈沖進(jìn)行復(fù)位的按鍵復(fù)位電路,如圖3.2。圖3.2按鍵復(fù)位電路復(fù)位之后單片機(jī)對(duì)所有的內(nèi)部寄存器置為初始默認(rèn)值,單片機(jī)的程序指針指向程序存儲(chǔ)器的首地址,也就是程序存儲(chǔ)器的起始地址,使得單片機(jī)從頭開始執(zhí)行程序。3.4串行通信接口電路設(shè)計(jì)Max232產(chǎn)品是由德州儀器公司(TI)推出的一款兼容RS232標(biāo)準(zhǔn)的芯片。該器件包含2驅(qū)動(dòng)器、2接受器和一個(gè)電壓發(fā)生器電路提供TIA/EIA-232-F電平。該器件符合TIA/EIA-232-F標(biāo)準(zhǔn),每一個(gè)接受器將TIA/EIA-232-F電平轉(zhuǎn)換成5-VTTL/CMOS電平。每一個(gè)發(fā)送器將TTL/CMOS電平轉(zhuǎn)換成TIA/EIA-232-F電平。3.4.1重要特點(diǎn)1、單5V電源工作2、LinBiCMOSTM工藝技術(shù)3、兩個(gè)驅(qū)動(dòng)器及兩個(gè)接受器4、±30V輸入電平5、低電源電流:典型值是8mA6、符合甚至優(yōu)于ANSI標(biāo)準(zhǔn)EIA/TIA-232-E及ITU推薦標(biāo)準(zhǔn)V.287、ESD保護(hù)大于MIL-STD-883(方法3015)標(biāo)準(zhǔn)的2023V3.4.2內(nèi)部結(jié)構(gòu)第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個(gè)電源,提供應(yīng)RS-232串口電平的需要。第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DP9插頭;DP9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。第三部分是供電。15腳DNG、16腳VCC(+5v)。3.4.3Max232引腳圖圖3.3Max232引腳圖3.4.4Max232電路設(shè)計(jì)本設(shè)計(jì)使用MAXIM公司的Max232來進(jìn)行單片機(jī)TTL電平和標(biāo)準(zhǔn)DB9電平的轉(zhuǎn)換。ATmega16單片機(jī)和上位計(jì)算機(jī)之間的串行通信電路如圖3.4。圖3.4Max232電路圖3.5驅(qū)動(dòng)電路3.5.1LMD18200芯片介紹LMD18200是美國國家半導(dǎo)體公司(NS)推出的專用于直流電動(dòng)機(jī)驅(qū)動(dòng)的H橋組件。同一芯片上集成有CMOS控制電路和DMOS功率器件,運(yùn)用它可以與主解決器、電機(jī)和增量型編碼器構(gòu)成一個(gè)完整的運(yùn)動(dòng)控制系統(tǒng)。LMD18200廣泛應(yīng)用于打印機(jī)、機(jī)器人和各種自動(dòng)化控制領(lǐng)域。本文介紹了LMD18200芯片的結(jié)構(gòu)、原理及其典型應(yīng)用。1、重要性能?峰值輸出電流高達(dá)6A,連續(xù)輸出電流達(dá)3A;
?工作電壓高達(dá)55V;
?LowRDS(ON)typically0.3Wperswitch;
?TTL/CMOS兼容電平的輸入;
?無“shoot-through”電流;
?具有溫度報(bào)警和過熱與短路保護(hù)功能;
?芯片結(jié)溫達(dá)145℃,結(jié)溫達(dá)170℃時(shí),芯片關(guān)斷;
?2、典型應(yīng)用?驅(qū)動(dòng)直流電機(jī)、步機(jī)電機(jī)
?伺服機(jī)構(gòu)系統(tǒng)位置與轉(zhuǎn)速
?應(yīng)用于機(jī)器人控制系統(tǒng)
?應(yīng)用于數(shù)字控制系統(tǒng)
?應(yīng)用于電腦打印機(jī)與繪圖儀3、內(nèi)部結(jié)構(gòu)和引腳說明LMD18200外形結(jié)構(gòu)如圖3.5所示,內(nèi)部電路框圖3.6如圖所示。它有11個(gè)引腳,采用TO-220和雙列直插式封裝。圖3.5LMD18200外形結(jié)構(gòu)圖圖3.6內(nèi)部電路框圖3.5.2各引腳的功能及原理表3.1LMD18200引腳功能表引腳名稱功能描述1、11橋臂1,2的自舉輸入電容連接端在腳1與腳2、腳10與腳11之間應(yīng)接入10uF的自舉電容2、10H橋輸出端
3方向輸入端轉(zhuǎn)向時(shí),輸出驅(qū)動(dòng)電流方向見表1。該腳控制輸出1與輸出2(腳2、10)之間電流的方向,從而控制馬達(dá)旋轉(zhuǎn)的方向。4剎車輸入端剎車時(shí),輸出驅(qū)動(dòng)電流方向見表1。通過該端將馬達(dá)繞組短路而使其剎車。剎車時(shí),將該腳置邏輯高電平,并將PWM信號(hào)輸入端(腳5)置邏輯高電平,3腳的邏輯狀態(tài)決定于短路馬達(dá)所用的器件。3腳為邏輯高電平時(shí),H橋中2個(gè)高端晶體管導(dǎo)通;3腳呈邏輯低電平時(shí),H橋中2個(gè)低端晶體管導(dǎo)通。腳4置邏輯高電平、腳5置邏輯低電平時(shí),H橋中所有晶體管關(guān)斷,此時(shí),每個(gè)輸出端只有很小的偏流(1.5mA)。5PWM信號(hào)輸入端PWM信號(hào)與驅(qū)動(dòng)電流方向的關(guān)系見表1。該端與3腳(方向輸入)如何使用,決定于PWM信號(hào)類型。6、7電源正端與負(fù)端
8電流取樣輸出端提供電流取樣信號(hào),典型值為377μA/A。9溫度報(bào)警輸出溫度報(bào)警輸出,提供溫度報(bào)警信號(hào)。芯片結(jié)溫達(dá)145℃時(shí),該端變?yōu)榈碗娖剑唤Y(jié)溫達(dá)170℃時(shí),芯片關(guān)斷。表3.2LMD18200邏輯真值表PWM轉(zhuǎn)向剎車實(shí)際輸出驅(qū)動(dòng)電流電機(jī)工作狀態(tài)HHL流出1、流入2正轉(zhuǎn)HLL流入1、流出2反轉(zhuǎn)L×L流出1、流出2停止HHH流出1、流出2停止HLH流入1、流入2停止LXHNONE
LMD18200工作原理:內(nèi)部集成了四個(gè)DMOS管,組成一個(gè)標(biāo)準(zhǔn)的H型驅(qū)動(dòng)橋。通過充電泵電路為上橋臂的2個(gè)開關(guān)管提供柵極控制電壓,充電泵電路由一個(gè)300kHz左右的工作頻率??稍谝_1、11外接電容形成第二個(gè)充電泵電路,外接電容越大,向開關(guān)管柵極輸入的電容充電速度越快,電壓上升的時(shí)間越短,工作頻率可以更高。引腳2、10接直流電機(jī)電樞,正轉(zhuǎn)時(shí)電流的方向應(yīng)當(dāng)從引腳步到引腳10;反轉(zhuǎn)時(shí)電流的方向應(yīng)當(dāng)從引腳10到引腳2。電流檢測(cè)輸出引腳8可以接一個(gè)對(duì)地電阻,通過電阻來輸出過流情況。內(nèi)部保護(hù)電路設(shè)立的過電流閾值為10A,當(dāng)超過該值時(shí)會(huì)自動(dòng)封鎖輸出,并周期性的自動(dòng)恢復(fù)輸出。假如過電流連續(xù)時(shí)間較長(zhǎng),過熱保護(hù)將關(guān)閉整個(gè)輸出。過熱信號(hào)還可通過引腳9輸出,當(dāng)結(jié)溫達(dá)成145度時(shí)引腳9有輸出信號(hào)。3.5.3驅(qū)動(dòng)電路設(shè)計(jì)圖3.7驅(qū)動(dòng)電路圖LMD18200提供雙極性驅(qū)動(dòng)方式和單極性驅(qū)動(dòng)方式。雙極性驅(qū)動(dòng)是指在一個(gè)PWM周期里,電動(dòng)機(jī)電樞的電壓極性呈正負(fù)變化。雙極性可逆系統(tǒng)雖然有低速運(yùn)營平穩(wěn)性的優(yōu)點(diǎn),但也存在著電流波動(dòng)大,功率損耗較大的缺陷,特別是必須增長(zhǎng)死區(qū)來避免開關(guān)管直通的危險(xiǎn),限制了開關(guān)頻率的提高,因此只用于中小功率直流電動(dòng)機(jī)的控制。本文中將介紹單極性可逆驅(qū)動(dòng)方式。單極性驅(qū)動(dòng)方式是指在一個(gè)PWM周期內(nèi),電動(dòng)機(jī)電樞只承受單極性的電壓。圖3.8單極性驅(qū)動(dòng)方式下的抱負(fù)波形3.6光電耦合電路電力電子器件的驅(qū)動(dòng)電路是電力電子主電路與控制電路之間的接口,是電力電子控制系統(tǒng)的重要環(huán)節(jié),對(duì)整個(gè)裝置的性能有很大的影響。在驅(qū)動(dòng)電路中還要提供控制電路與主電路之間的電氣隔離環(huán)節(jié),這也就是這節(jié)介紹的光電耦合電路。一般采用光隔離或磁隔離。系統(tǒng)采用光耦合器來完畢。光耦合器由發(fā)光二極管和光敏晶體管組成,封裝在一個(gè)外殼內(nèi)。其類型有普通,高速和高傳輸比三種,內(nèi)部電路和基本接法如圖3.9。圖3.9光耦合器系統(tǒng)采用高速光電耦合器K1010來完畢控制電路與主電路之間的電氣隔離。K1010具有良好的光電隔離功能,其響應(yīng)時(shí)間小于1.5μs。系統(tǒng)光電隔離電路如圖3.10所示。圖3.10系統(tǒng)光電隔離電路4軟件設(shè)計(jì)直流電機(jī)驅(qū)動(dòng)器的軟件涉及單片機(jī)程序,涉及:初始化程序,主程序,中斷及轉(zhuǎn)速子程序,串行數(shù)據(jù)傳輸程序,ICCAVR開發(fā),及AVRStudio仿真。4.1初始化程序設(shè)計(jì)4.1.1I/O初始化作為通用數(shù)字I/O使用時(shí),所有AVRI/O端口都具有真正的讀-修改-寫功能。ATmega16單片機(jī)上共有三組端口:端口A,端口B,端口C。系統(tǒng)采用PB3和PC1作為I/O端口。其中PC1為普通I/O端口,而PB3又為OC0(T/C0輸出比較匹配輸出)。OC0,輸出比較匹配輸出:PB3引腳可作為T/C0比較匹配的外部輸出。實(shí)現(xiàn)該功能時(shí),PB3引腳必須配置為輸出(設(shè)DDB3為1)。在PWM模式的定期功能中,OC0引腳作為輸出。每個(gè)端口引腳都具有三個(gè)寄存器位:DDxn、PORTxn和PINxn。DDxn位于DDRx寄存器,PORTxn位于PORTx寄存器,PINxn位于PINx寄存器。下面就是對(duì)系統(tǒng)所采用的端口B和端口C進(jìn)行初始化:PORTB=(1<<PB3);DDRB=(1<<DDB3)初始化端口B的PB3引腳,PB3引腳重要完畢PWM脈沖輸出,將PB3口定義方向?yàn)檩敵?。PORTC=(1<<PC1);DDRC=(1<<DDC1)初始化端口C的PC1引腳,PC1引腳重要完畢對(duì)直流電機(jī)轉(zhuǎn)動(dòng)方向,將PC1口定義方向?yàn)檩敵觥?.1.2定期器初始化T/C(TCNT0)和輸出比較寄存器(OCR0)為8位寄存器。中斷請(qǐng)求(圖中簡(jiǎn)寫為Int.Req.)信號(hào)在定期器中斷標(biāo)志寄存器TIFR都有反映。所有中斷都可以通過定期器中斷屏蔽寄存器TIMSK單獨(dú)進(jìn)行屏蔽。圖中沒有給出TIFR和TIMSK。T/C可以通過預(yù)分頻器由內(nèi)部時(shí)鐘源驅(qū)動(dòng),或者是通過T0引腳的外部時(shí)鐘源來驅(qū)動(dòng)。時(shí)鐘選擇邏輯模塊控制使用哪一個(gè)時(shí)鐘源與什么邊沿來增長(zhǎng)(或減少)T/C的數(shù)值。假如沒有選擇時(shí)鐘源T/C就不工作。時(shí)鐘選擇模塊的輸出定義為定期器時(shí)鐘clkT0。雙緩沖的輸出比較寄存器OCR0一直與T/C的數(shù)值進(jìn)行比較。比較的結(jié)果可用來產(chǎn)生PWM波,或在輸出比較引腳OC0上產(chǎn)生變化頻率的輸出。比較匹配事件還將置位比較標(biāo)志OCF0。此標(biāo)志可以用來產(chǎn)生輸出比較中斷請(qǐng)求。本系統(tǒng)采用定期器0進(jìn)行控制,現(xiàn)在對(duì)定期器0進(jìn)行初始化:OCR0=0XFF;//定期器0設(shè)初值。TCCR0=(1<<WGM00)|(1<<COM01)|(1<<COM00)|(1<<CS01);初始化定期器0的寄存器。4.1.3串口初始化通用同步和異步串行接受器和轉(zhuǎn)發(fā)器(USART)是一個(gè)高度靈活的串行通訊設(shè)備。重要特點(diǎn)為:?全雙工操作(獨(dú)立的串行接受和發(fā)送寄存器)?異步或同步操作?主機(jī)或從機(jī)提供時(shí)鐘的同步操作?高精度的波特率發(fā)生器?支持5,6,7,8或9個(gè)數(shù)據(jù)位和1個(gè)或2個(gè)停止位?硬件支持的奇偶校驗(yàn)操作?數(shù)據(jù)過速檢測(cè)?幀錯(cuò)誤檢測(cè)?噪聲濾波,涉及錯(cuò)誤的起始位檢測(cè),以及數(shù)字低通濾波器?三個(gè)獨(dú)立的中斷:發(fā)送結(jié)束中斷,發(fā)送數(shù)據(jù)寄存器空中斷,以及接受結(jié)束中斷?多解決器通訊模式?倍速異步通訊模式將USART分為了三個(gè)重要部分:時(shí)鐘發(fā)生器,發(fā)送器和接受器??刂萍拇嫫饔扇齻€(gè)單元共享。時(shí)鐘發(fā)生器包含同步邏輯,通過它將波特率發(fā)生器及為從機(jī)同步操作所使用的外部輸入時(shí)鐘同步起來。XCK(發(fā)送器時(shí)鐘)引腳只用于同步傳輸模式。發(fā)送器涉及一個(gè)寫緩沖器,串行移位寄存器,奇偶發(fā)生器以及解決不同的幀格式所需的控制邏輯。寫緩沖器可以保持連續(xù)發(fā)送數(shù)據(jù)而不會(huì)在數(shù)據(jù)幀之間引入延遲。由于接受器具有時(shí)鐘和數(shù)據(jù)恢復(fù)單元,它是USART模塊中最復(fù)雜的?;謴?fù)單元用于異步數(shù)據(jù)的接受。除了恢復(fù)單元,接受器還涉及奇偶校驗(yàn),控制邏輯,移位寄存器和一個(gè)兩級(jí)接受緩沖器UDR。接受器支持與發(fā)送器相同的幀格式,并且可以檢測(cè)幀錯(cuò)誤,數(shù)據(jù)過速和奇偶校驗(yàn)錯(cuò)誤。時(shí)鐘產(chǎn)生邏輯為發(fā)送器和接受器產(chǎn)生基礎(chǔ)時(shí)鐘。USART支持4種模式的時(shí)鐘:正常的異步模式,倍速的異步模式,主機(jī)同步模式,以及從機(jī)同步模式。USART控制位UMSEL和狀態(tài)寄存器C(UCSRC)用于選擇異步模式和同步模式。倍速模式(只合用于異步模式)受控于UCSRA寄存器的U2X。使用同步模式(UMSEL=1)時(shí),XCK的數(shù)據(jù)方向寄存器(DDR_XCK)決定期鐘源是由內(nèi)部產(chǎn)生(主機(jī)模式)還是由外部生產(chǎn)(從機(jī)模式)。僅在同步模式下XCK有效。USART的波特率寄存器UBRR和降序計(jì)數(shù)器相連接,一起構(gòu)成可編程的預(yù)分頻器或波特率發(fā)生器。降序計(jì)數(shù)器對(duì)系統(tǒng)時(shí)鐘計(jì)數(shù),當(dāng)其計(jì)數(shù)到零或UBRRL寄存器被寫時(shí),會(huì)自動(dòng)裝入U(xiǎn)BRR寄存器的值。波特率的公式如下式:(4.1)串口采用UART,異步正常模式BAUD=2400,fosc=11.0592MHz,所以,UBRR=288。設(shè)立波特率:UBRRH=0X01;UBRRL=0x1F。UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);//接受器與發(fā)送器使能,接受結(jié)束中斷使能。UCSRB=(1<<RXEN)|(1<<TXEN);UCSRC=(1<<URSEL)||(3<<UCSZ0);//異步操作,嚴(yán)禁奇偶校驗(yàn),設(shè)立幀格式:8個(gè)數(shù)據(jù)位,1個(gè)停止位。4.2主程序主程序完畢系統(tǒng)初始化,中斷判斷,數(shù)據(jù)檢測(cè)及解決電機(jī)的PWM控制等工作。主程序結(jié)構(gòu)圖如4.1。程序開始,一方面初始化I/O端口:PC1,PB3。初始化串行通信口:RXD,TXD。初始化結(jié)束后,查詢上位機(jī)是否有命令發(fā)送給單片機(jī)。假如有則檢查數(shù)據(jù)是否有效;假如沒有,則返回上一步重新查詢。假如數(shù)據(jù)不能有效使用,則向上位機(jī)返回“命令錯(cuò)”重新檢查數(shù)據(jù)。當(dāng)檢查數(shù)據(jù)有效時(shí),程序自動(dòng)調(diào)用轉(zhuǎn)速控制子程序,等待中斷,控制電機(jī)轉(zhuǎn)速,方向等。圖4.1主程序流程圖代碼如下://主程序開始main(void){unsignedchari=0;//systeminitializeasm("CLI"); //disableglableinterupt//WDT_off();//wathdogoffPORTIni();USART_Init(); //USARTinitializeTimer0_Init(); //Timer0initializeasm("SEI"); //enaableglableinterupt//while(1);OCR0=0X80;while(1){USART_Transmit(0XAA);USART_Transmit(0XBB);}}4.3中斷及轉(zhuǎn)速控制子程序直流電動(dòng)機(jī)轉(zhuǎn)速的控制方法可分為2類,即勵(lì)磁控制法與電樞電壓控制法。勵(lì)磁控制法控制磁通,其控制功率雖然小,但低速時(shí)受到磁飽和的限制,高速時(shí)受到換向火花和換向器結(jié)構(gòu)強(qiáng)度的限制;并且由于勵(lì)磁線圈電感較大,動(dòng)態(tài)響應(yīng)較差。所以常用的控制方法是改變電樞端電壓調(diào)速的電樞電壓控制法。設(shè)直流電源電壓為Ud,將電樞串聯(lián)一個(gè)電阻R,接到電源Ud,則電樞兩端的電壓Ua為:=(3.1)顯然,調(diào)節(jié)電阻R即可改變端電壓,達(dá)成調(diào)速目的。但這種傳統(tǒng)的調(diào)壓調(diào)速方法,效率低。因此,隨著電力電子技術(shù)的進(jìn)步,發(fā)展了許多新的電樞電壓控制方法。其中PWM(脈寬調(diào)制)是常用的一種調(diào)速方法。其基本原理如圖4.2所示,設(shè)加在電機(jī)電樞兩端的矩形波的幅值電壓為Ud,則電機(jī)電樞兩端電壓的平均值為:圖4.2PWM波形圖(3.2)稱為占空比。通過改變的值,達(dá)成調(diào)壓的目的。由于0≤≤1,Ua值的范圍是-Ud~+Ud,因而電機(jī)可以在正、反2個(gè)方向調(diào)速運(yùn)轉(zhuǎn)。本設(shè)計(jì)是通過LMD18200為驅(qū)動(dòng)電路,由上位機(jī)輸出控制命令控制電機(jī)速度與轉(zhuǎn)速變化。轉(zhuǎn)速控制子程序流程圖如圖4.3,中斷程序流程圖如圖4.4。圖4.3轉(zhuǎn)速子程序流程圖圖4.4中斷流程圖中斷及轉(zhuǎn)速程序://串口接受中斷函數(shù)//中斷定義:USART,Rx結(jié)束//中斷源:USART,RXCvoidUART_isr(void){unsignedchari;i=UDR;switch(i) {caseforehead: PORTC=PORTC|(1<<PC1); break; caserollback: PORTC=PORTC&(!(1<<PC1)); break; casespeed_high: OCR0=0X50; break; casespeed_mid: OCR0=0X80; break; casespeed_low: OCR0=0XA0; break; casespeed_zero: OCR0=0XFF; break; default: break; }}4.4串行數(shù)據(jù)傳輸程序單片機(jī)與上位計(jì)算機(jī)之間采用Max232的串行數(shù)據(jù)傳輸方式。單片機(jī)采用中斷方式接受數(shù)據(jù),而發(fā)送數(shù)據(jù)則采用查詢方式。串行通信程序:voidUSART_Init(void){UBRRH=0X01;UBRRL=0x1F;UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);//接受器與發(fā)送器使能,接受結(jié)束中斷使能UCSRB=(1<<RXEN)|(1<<TXEN);UCSRC=(1<<URSEL)||(3<<UCSZ0);//異步操作,嚴(yán)禁奇偶校驗(yàn),設(shè)立幀格式:8個(gè)數(shù)據(jù)位,1個(gè)停止位4.5ICCAVR4.5.1開發(fā)環(huán)境ICCAVR介紹ImageCraft公司開發(fā)的ICCAVR是使用符合ANSI標(biāo)準(zhǔn)的C語言來開發(fā)AVR系列單片機(jī)一種開發(fā)工具。ICCAVR是一個(gè)綜合了編輯器,工程管理器和C編譯器的集成開發(fā)環(huán)境(IntegratedDevelopmentEnvironment,IDE)。其可在WINDOS9x/NT/XP下工作。ICCAVR采用工程項(xiàng)目管理方式,將源文獻(xiàn)所有組織到工程之中。文獻(xiàn)的編輯和工程的構(gòu)筑也在這個(gè)環(huán)境中完畢。編譯錯(cuò)誤顯示在狀態(tài)窗口中,并且當(dāng)用鼠標(biāo)單擊編譯錯(cuò)誤時(shí),光標(biāo)會(huì)自動(dòng)跳轉(zhuǎn)到編輯窗口中一起錯(cuò)誤的那一行。工程管理器還能直接產(chǎn)生可以直接使用的IntelHEX格式文獻(xiàn)。IntelHEX格式文獻(xiàn)可被大多數(shù)的編程器所支持,用于下載程序到芯片中去。ICCAVR是一個(gè)32位的程序,支持長(zhǎng)文獻(xiàn)名。4.5.2開發(fā)及編譯打開軟件,建立工程SYY.prj,將其保存在目的文獻(xiàn)夾。然后右鍵單擊SYY進(jìn)行工程設(shè)立,如圖4.5。圖4.5CompilerOptions窗口建立一個(gè)新的文獻(xiàn)SYY.C,保存在目的文獻(xiàn)夾SYY2。然后將其添加到工程SYY中,如圖4.6。圖4.6工程窗口然后對(duì)文獻(xiàn)進(jìn)行編譯,系統(tǒng)會(huì)自動(dòng)生成SYY.HEX文獻(xiàn)。4.6AVRStudio仿真AVRJTAGICE是一款與ATMEL公司的JTAGICE相兼容的低價(jià)位的AVRJTAG接口是具有4線測(cè)試存取通道(TAP)的控制器,完全符合IEEE1149.1規(guī)格規(guī)定。Atmel公司的AVR器件擴(kuò)展了它的一些功能,涉及可以對(duì)目的芯片進(jìn)行實(shí)時(shí)在線仿真。AVROCD在芯片調(diào)試協(xié)議使用戶對(duì)AVR單片機(jī)的內(nèi)部資源可以進(jìn)行完全的實(shí)時(shí)監(jiān)控。4.6.1仿真器的特點(diǎn)本仿真器的特點(diǎn):1、同時(shí)完全支持AVRStudio4.XX和IARSystem。2、支持所有具有JTAG接口的AVR系列單片機(jī)。3、完全真實(shí)的實(shí)現(xiàn)AVR單片機(jī)的所有的電性能。4、可以完全實(shí)現(xiàn)片內(nèi)的數(shù)字或模擬功能。5、可以在程序執(zhí)行過程中實(shí)現(xiàn)單步(step)、連續(xù)、斷點(diǎn)、變量具有數(shù)據(jù)或程序空間斷點(diǎn)。6、支持匯編和高級(jí)語言(C,C++)開發(fā)。7、可以對(duì)Flash、EEPROM、熔絲位、加密位進(jìn)行編程。8、支持仿真電壓2.3~6V。9、使用原廠AVRStudio的仿真監(jiān)控程序。當(dāng)有新版本時(shí),能自動(dòng)檢測(cè)并自動(dòng)升級(jí),保證你的仿真器是最新版。10、支持芯片列表:AT90CAN128,ATmega128,ATmega128L,ATmega16,ATmega162,ATmega162V,ATmega165,ATmega165V,ATmega169,ATmega169V,ATmega16L,ATmega32,ATmega323,ATmega323L,ATmega32L,ATmega64,ATmega64L。4.6.2連接JTAGICE在開始使用AVRStudio前,應(yīng)將目的板、JTAGICE和PC機(jī)先連接起來。為保證AVRStudio的對(duì)的自檢,在開始使用AVRStudio前應(yīng)當(dāng)先進(jìn)行連接。1、將JTAGICE連接到PC機(jī)上JTAGICE使用標(biāo)準(zhǔn)的RS-232口。將JTAGICE的串口線連接到PC機(jī)的一個(gè)空閑COM端口。AVRStudio將通過COM端口自動(dòng)檢測(cè)端口上存在的JTAGICE仿真器。假如有其它程序占用COM端口(例如,串口調(diào)試精靈,超級(jí)終端等),在啟動(dòng)AVRStudio前應(yīng)先關(guān)閉這些程序。假如其它資源已經(jīng)控制
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家庭房保潔合同模板
- 購買ppc材料合同模板
- 酒水業(yè)務(wù)員承包合同模板
- 醫(yī)院移交合同模板
- 勞務(wù)派遣 兼職合同模板
- 裝飾公司搬運(yùn)合同模板
- 鏟車出租安全合同模板
- 結(jié)匯用合同模板
- 2024年自駕游汽車租賃協(xié)議范本版
- 2024年度建筑工程施工勞務(wù)分包協(xié)議一
- 高速公路總體施工組織布置及規(guī)劃方案
- 《中國現(xiàn)代文學(xué)》PPT課件
- 酒店客房驗(yàn)收工程項(xiàng)目檢查表
- 包頭醫(yī)學(xué)院新開課程申請(qǐng)表
- 幼兒園課件:大班美術(shù)《美麗的郵票》
- (精心整理)初中物理串聯(lián)分壓和并聯(lián)分流精練
- 道路開口工程施工設(shè)計(jì)方案
- 員工勝任力評(píng)價(jià)方案
- 儀表接地技術(shù)ppt課件
- 六年級(jí)科學(xué)總復(fù)習(xí)空氣和水練習(xí)卷
- 視覺神經(jīng)生理學(xué)復(fù)習(xí)
評(píng)論
0/150
提交評(píng)論