版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課題名稱:基于單片機(jī)的直流電機(jī)控制系統(tǒng)設(shè)計(jì)院系專業(yè)班級(jí)學(xué)號(hào)姓名指導(dǎo)教師2012年5月摘要電動(dòng)機(jī)作為最主要的機(jī)電能量轉(zhuǎn)換裝置,其應(yīng)用范圍已遍及國(guó)民經(jīng)濟(jì)的各個(gè)領(lǐng)域和人們的日常生活。無論是在工農(nóng)業(yè)生產(chǎn)、國(guó)防、醫(yī)療衛(wèi)生、交通運(yùn)輸和辦公設(shè)備中,還是在日常生活的家用電器和消費(fèi)電子產(chǎn)品中,都大量使用著各種各樣的電動(dòng)機(jī)。電動(dòng)機(jī)的調(diào)速控制一般采用模擬法,對(duì)電動(dòng)機(jī)的簡(jiǎn)單控制應(yīng)用比較多。本設(shè)計(jì)實(shí)現(xiàn)了對(duì)電動(dòng)機(jī)的簡(jiǎn)單控制,也就是指對(duì)電動(dòng)機(jī)進(jìn)行啟動(dòng)、制動(dòng)和正反轉(zhuǎn)控制。本設(shè)計(jì)采用了單片機(jī)STC89C52與PC串行實(shí)現(xiàn)通信,由于單片機(jī)輸入、輸出電平是TTL電平,而PC機(jī)配置的是RS232標(biāo)準(zhǔn)串行接口,兩者的電氣規(guī)范不一致,因此要完成單片機(jī)與PC機(jī)的數(shù)據(jù)通信,必須對(duì)單片機(jī)輸出的TTL電平進(jìn)行電平轉(zhuǎn)換。采用的轉(zhuǎn)換電平芯片為MAX232。設(shè)計(jì)中采用STC89C52微處理器及其RS232通信接口、鍵盤、12864液晶顯示器等外圍電路,構(gòu)成一臺(tái)直流電機(jī)開環(huán)在線控制系統(tǒng)。設(shè)計(jì)中采用PWM調(diào)制技術(shù),實(shí)現(xiàn)對(duì)直流電機(jī)速度的調(diào)制,并通過串口實(shí)現(xiàn)上位機(jī)的在線控制。系統(tǒng)實(shí)現(xiàn)了在線調(diào)速、正轉(zhuǎn)、反轉(zhuǎn)、加速、減速、停止等多種功能,并能實(shí)時(shí)顯示、鍵盤設(shè)置等,具有一定的實(shí)際應(yīng)用價(jià)值。關(guān)鍵詞:?jiǎn)纹瑱C(jī)電平轉(zhuǎn)換直流電機(jī)在線控制PWM調(diào)制AbstractMotorasthemainelectromechanicalenergyconversiondevice,itsapplicationhasbeenthroughoutallareasofthenationaleconomyandpeople'sdailylife.Bothinindustrialandagriculturalproduction,nationaldefense,medicalandhealth,transportationandofficeequipment,orinthedailylifeofhouseholdappliancesandconsumerelectronicsproducts,extensiveuseofvariousmotor.Motorspeedcontrolusingsimulationmethod,themotorcontrolapplicationmoresimple.Thedesignandimplementationofsimplecontrollingmotor,alsoreferstothemotorstarting,brakingandreversecontrol.ThedesignintroducedAT89C51single-chipserialcommunicationwiththePCmethod,asthesingle-chipinputandoutputlevelisTTLlevel,andPC-standardconfigurationisaRS232serialinterface,boththeelectricalspecificationsareinconsistent,ThereforetocompletePC-SCManddatacommunications,theneedforsingle-chipoutputTTLleveltoleveltranslators.Usedinchip-levelconversionfortheMAX232.AppliedtothedesignofSTC89C52microprocessorandRS232communicationinterface,keyboard,12864LCDperipheralcircuit,constituteadcmotorcontrolsystemonline.AppliedtothedesignofPWMtechnologytorealizethedcmotorspeedregulation,andthroughaserialportrealizePConlinecontrol.Theonlinespeedregulationsystem,areturning,inversion,accelerate,slowingdown,stopandotherfunctions,andcanreal-timedisplay,keyboardSettings,ithascertainpracticalapplicationvalue.Keywords:single-chipserialcommunicationLevelTranslatorsDcmotorOnlinecontrolPWMtechnology目錄摘要IAbstractII1緒論11.1直流電機(jī)概述11.2單片機(jī)概述11.3脈寬調(diào)制(PWM)技術(shù)21.4課題任務(wù)及工作內(nèi)容32單片機(jī)直流電機(jī)控制系統(tǒng)總體設(shè)計(jì)方案42.1設(shè)計(jì)思路42.2方案論證與比較42.3系統(tǒng)組成53單片機(jī)直流電機(jī)控制系統(tǒng)硬件設(shè)計(jì)63.1系統(tǒng)硬件結(jié)構(gòu)63.2系統(tǒng)單元電路設(shè)計(jì)63.2.1單片機(jī)最小系統(tǒng)電路63.2.2獨(dú)立式鍵盤電路7液晶顯示模塊73.2.4蜂鳴器電路83.2.5電源電路83.2.6串口通信電路93.2.7電機(jī)驅(qū)動(dòng)電路104單片機(jī)直流電機(jī)控制系統(tǒng)軟件設(shè)計(jì)114.1軟件總體結(jié)構(gòu)114.2系統(tǒng)模塊程序設(shè)計(jì)12初始化模塊程序12鍵盤掃描模塊程序13液晶顯示模塊程序15串口通信模塊程序15電機(jī)調(diào)速模塊程序175系統(tǒng)測(cè)試185.1測(cè)試準(zhǔn)備185.1.1硬件環(huán)境185.1.2軟件環(huán)境185.1.3測(cè)試項(xiàng)目185.2測(cè)試過程185.3測(cè)試結(jié)果19結(jié)束語21致謝22參考文獻(xiàn)23附錄241緒論直流電機(jī)概述在現(xiàn)代工業(yè)中,電動(dòng)機(jī)作為電能轉(zhuǎn)換的傳動(dòng)裝置被廣泛應(yīng)用于機(jī)械、冶金、石油化學(xué)、國(guó)防等工業(yè)部門中,隨著對(duì)生產(chǎn)工藝、產(chǎn)品質(zhì)量的要求不斷提高和產(chǎn)量的增長(zhǎng),越來越多的生產(chǎn)機(jī)械要求能實(shí)現(xiàn)自動(dòng)調(diào)速。長(zhǎng)期以來,自動(dòng)調(diào)速電動(dòng)機(jī)一直占據(jù)著調(diào)速控制的統(tǒng)治地位。由于它具有良好的線性調(diào)速特性,簡(jiǎn)單的控制性能,高效率,優(yōu)異的動(dòng)態(tài)特性,現(xiàn)在仍是大多數(shù)調(diào)速控制電動(dòng)機(jī)的最優(yōu)選擇以前電動(dòng)機(jī)大多使用由模擬電路組成的控制柜進(jìn)行控制,現(xiàn)在單片機(jī)已經(jīng)開始取代模擬電路作為電機(jī)控制器。當(dāng)前電機(jī)控制器的發(fā)展方向越來越趨于多樣化和復(fù)雜化,現(xiàn)有的專用集成電路未必能滿足苛刻的新產(chǎn)品開發(fā)要求,為此可考慮開發(fā)電機(jī)的新型單片機(jī)控制器,因此研究直流電機(jī)的速度控制,有著非常重要的意義。由于變頻技術(shù)的出現(xiàn),交流調(diào)速一直沖擊直流調(diào)速,但綜觀全局,尤其是我國(guó)在此領(lǐng)域的現(xiàn)狀,再加上全數(shù)字直流調(diào)速系統(tǒng)的出現(xiàn),更提高了直流調(diào)速系統(tǒng)的精度及可靠性,直流調(diào)速系統(tǒng)仍將處于十分重要地位。對(duì)于直流調(diào)速系統(tǒng)轉(zhuǎn)速控制的要求有穩(wěn)速、調(diào)速、加速或減速三個(gè)方面,而在工業(yè)生產(chǎn)中對(duì)于后兩個(gè)要求已能很好地實(shí)現(xiàn),但工程應(yīng)用中穩(wěn)速指標(biāo)卻往往不能達(dá)到預(yù)期的效果,穩(wěn)速要求即以一定的精度在所需要的轉(zhuǎn)速穩(wěn)定運(yùn)行,在各種干擾不允許有過大的轉(zhuǎn)速波動(dòng)。單片機(jī)概述隨著單片機(jī)功能的飛速發(fā)展,單片機(jī)的應(yīng)用領(lǐng)域已經(jīng)滲透到了國(guó)民經(jīng)濟(jì)的各個(gè)領(lǐng)域,并影響著現(xiàn)代人的生活。單片機(jī)技術(shù)的出現(xiàn)給現(xiàn)代工業(yè)測(cè)控領(lǐng)域帶來了一次技術(shù)革命。目前,單片機(jī)仍以其高可靠性、高性價(jià)比,在工業(yè)控制系統(tǒng)、智能化儀器儀表、數(shù)據(jù)采集系統(tǒng)和智能家電等諸多領(lǐng)域得到了廣泛應(yīng)用。當(dāng)今時(shí)代是一個(gè)新技術(shù)層出不窮的時(shí)代,在電子領(lǐng)域尤其是自動(dòng)化智能控制領(lǐng)域,傳統(tǒng)的分立元件或數(shù)字邏輯電路構(gòu)成的控制系統(tǒng),正以飛快的速度被單片機(jī)智能控制系統(tǒng)所取代。單片機(jī)的優(yōu)點(diǎn)包括體積小、功能強(qiáng)、成本低,并且應(yīng)用面廣,可以說智能控制與自動(dòng)控制的核心就是單片機(jī)。單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。概括來講:一塊芯片就是一臺(tái)計(jì)算機(jī)。它具有體積小、質(zhì)量輕、價(jià)格便宜等優(yōu)點(diǎn),為學(xué)習(xí)、應(yīng)用和開發(fā)提供了諸多便利。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇?,F(xiàn)在,單片機(jī)的應(yīng)用領(lǐng)域非常廣泛,比如實(shí)時(shí)工控、導(dǎo)航系統(tǒng)、智能儀表、家用電器、通訊設(shè)備等。單片機(jī)一旦運(yùn)用在各種產(chǎn)品上面,就可以說是使產(chǎn)品進(jìn)行了升級(jí)換代,也可以把產(chǎn)品美其名曰:“智能型”,如智能型洗衣機(jī)等等。1.3脈寬調(diào)制(PWM)技術(shù)脈沖寬度調(diào)制(PWM)是英文“PulseWidthModulation”的縮寫,簡(jiǎn)稱脈寬調(diào)制。它是利用微處理器的數(shù)字輸出來對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù),廣泛應(yīng)用于測(cè)量,通信,功率控制與變換等許多領(lǐng)域。一種模擬控制方式,根據(jù)相應(yīng)載荷的變化來調(diào)制晶體管柵極或基極的偏置,來實(shí)現(xiàn)開關(guān)穩(wěn)壓電源輸出晶體管或晶體管導(dǎo)通時(shí)間的改變,這種方式能使電源的輸出電壓在工作條件變化時(shí)保持恒定。脈沖寬度調(diào)制(PWM)是一種對(duì)模擬信號(hào)電平進(jìn)行數(shù)字編碼的方法。通過高分辨率計(jì)數(shù)器的使用,方波的占空比被調(diào)制用來對(duì)一個(gè)具體模擬信號(hào)的電平進(jìn)行編碼。PWM信號(hào)仍然是數(shù)字的,因?yàn)樵诮o定的任何時(shí)刻,滿幅值的直流供電要么完全有(ON),要么完全無(OFF)。電壓或電流源是以一種通(ON)或斷(OFF)的重復(fù)脈沖序列被加到模擬負(fù)載上去的。通的時(shí)候即是直流供電被加到負(fù)載上的時(shí)候,斷的時(shí)候即是供電被斷開的時(shí)候。只要帶寬足夠,任何模擬值都可以使用PWM進(jìn)行編碼。多數(shù)負(fù)載(無論是電感性負(fù)載還是電容性負(fù)載)需要的調(diào)制頻率高于10Hz,通常調(diào)制頻率為1kHz到200kHz之間。許多微控制器內(nèi)部都包含有PWM控制器。例如,Microchip公司的PIC16C67內(nèi)含兩個(gè)PWM控制器,每一個(gè)都可以選擇接通時(shí)間和周期。占空比是接通時(shí)間與周期之比;調(diào)制頻率為周期的倒數(shù)。執(zhí)行PWM操作之前,這種微處理器要求在軟件中完成以下工作:1、設(shè)置提供調(diào)制方波的片上定時(shí)器/計(jì)數(shù)器的周期2、在PWM控制寄存器中設(shè)置接通時(shí)間3、設(shè)置PWM輸出的方向,這個(gè)輸出是一個(gè)通用I/O管腳4、啟動(dòng)定時(shí)器5、使能PWM控制器目前幾乎所有市售的單片機(jī)都有PWM模塊功能,若沒有(如早期的8051),也可以利用定時(shí)器及GPIO口來實(shí)現(xiàn)。更為一般的PWM模塊控制流程為(筆者使用過TI的2000系列,AVR的Mega系列,TI的LM系列):1、使能相關(guān)的模塊(PWM模塊以及對(duì)應(yīng)管教的GPIO模塊)。2、配置PWM模塊的功能,具體有:①:設(shè)置PWM定時(shí)器周期,該參數(shù)決定PWM波形的頻率。②:設(shè)置PWM定時(shí)器比較值,該參數(shù)決定PWM波形的占空比。③:設(shè)置死區(qū)(deadband),為避免橋臂的直通需要設(shè)置死區(qū),一般較高檔的單片機(jī)都有該功能。④:設(shè)置故障處理情況,一般為故障是封鎖輸出,防止過流損壞功率管,故障一般有比較器或ADC或GPIO檢測(cè)。⑤:設(shè)定同步功能,該功能在多橋臂,即多PWM模塊協(xié)調(diào)工作時(shí)尤為重要。3、設(shè)置相應(yīng)的中斷,編寫ISR,一般用于電壓電流采樣,計(jì)算下一個(gè)周期的占空比,更改占空比,這部分也會(huì)有PI控制的功能。4、使能PWM波形發(fā)生。1.4課題任務(wù)及工作內(nèi)容本題目要求設(shè)計(jì)一個(gè)單片機(jī)應(yīng)用系統(tǒng)可以通過串行線在上位機(jī)中進(jìn)行控制操作??梢酝ㄟ^上位機(jī)對(duì)單片機(jī)進(jìn)行控制直流電機(jī)正轉(zhuǎn)、反轉(zhuǎn)、停止、加速、減速等功能。另外,為增加其實(shí)用性還增加了顯示、鍵盤控制、按鍵蜂鳴等功能。本課題要完成以下研究工作:1、研究直流電機(jī)控制系統(tǒng)并仔細(xì)推敲各方面的細(xì)節(jié),比如速度的控制等等。2、進(jìn)行系統(tǒng)軟硬件的設(shè)計(jì)。3、制作硬件,并對(duì)硬件進(jìn)行調(diào)試以及優(yōu)化。2單片機(jī)直流電機(jī)控制系統(tǒng)總體設(shè)計(jì)方案2.1設(shè)計(jì)思路本題要求設(shè)計(jì)一個(gè)上位機(jī)直流電機(jī)控制系統(tǒng)。利用鍵盤作為輸入設(shè)備,輸入電機(jī)控制信號(hào);液晶顯示器件作為顯示,與用戶進(jìn)行人機(jī)交互;利用串行通信接口與上位機(jī)進(jìn)行通信,接收上位機(jī)發(fā)送過來的控制命令。從PC機(jī)發(fā)來的控制命令經(jīng)單片機(jī)系統(tǒng)接收后,產(chǎn)生電機(jī)控制信號(hào),并提供給電機(jī)驅(qū)動(dòng)電路控制直流電機(jī)正常運(yùn)轉(zhuǎn)并正常顯示轉(zhuǎn)速。2.2方案論證與比較(1)主控制器的選擇與比較采用臺(tái)灣宏晶科技有限公司生產(chǎn)的STC89C52系列的8位單片機(jī)作為本系統(tǒng)的主控制芯片,該處理器芯片內(nèi)置有8K的Flash存儲(chǔ)器,內(nèi)置的UART全雙工異步通信接口,減少外圍接口電路。具有可在線編程、使用方便、價(jià)格低廉等優(yōu)點(diǎn)。運(yùn)算速度內(nèi)滿足系統(tǒng)的要求,性價(jià)比高。(2)顯示電路選擇與比較方案一:采用數(shù)碼管顯示電路,該硬件電路簡(jiǎn)單,編程也比較簡(jiǎn)單。視角范圍大,亮度高,顯示是效果好,但是只能顯示簡(jiǎn)單數(shù)字字母等有限的字符,不能滿足本設(shè)計(jì)要求。故,不采用數(shù)碼管顯示電路。方案二:采用1602液晶顯示,硬件電路簡(jiǎn)單,編程容易??梢燥@示字母和數(shù)字,以及一下簡(jiǎn)單的圖像。能滿足本設(shè)計(jì)要求,顯示清晰度可以通過調(diào)節(jié)偏壓端電壓來改變對(duì)比度,從而實(shí)現(xiàn)清晰度調(diào)整。顯示效果較好,還可以滾動(dòng)顯示等,顯示靈活。方案三:采用12864液晶顯示,硬件電路簡(jiǎn)單,編程容易。可以顯示復(fù)雜的圖案、字符、標(biāo)點(diǎn)、英文、漢字等。能滿足本設(shè)計(jì)要求,顯示清晰度可以通過調(diào)節(jié)偏壓端電壓來改變對(duì)比度,從而實(shí)現(xiàn)清晰度調(diào)整。顯示效果較好,還可以滾動(dòng)顯示等,顯示靈活。綜上所述,數(shù)碼管顯示電路不能滿足本設(shè)計(jì)的要求;1602顯示只能顯示字母和數(shù)字,要顯示漢字和圖像編程復(fù)雜,效果不好;12864液晶顯示可以顯示數(shù)字、英文、漢字、圖片等能滿足本設(shè)計(jì)要求。故,采用12864液晶顯示電路作為本設(shè)計(jì)的顯示電路模塊。(3)鍵盤電路選擇與比較方案一:獨(dú)立式鍵盤,獨(dú)立式鍵盤硬件電路極為簡(jiǎn)單,程序也非常簡(jiǎn)單。容易開發(fā),開發(fā)周期短,使用方便簡(jiǎn)單。方案二:矩陣式鍵盤,矩陣式鍵盤硬件電路也比較簡(jiǎn)單,編程較為復(fù)雜。不容易開發(fā),在按鍵較多的時(shí)候,與獨(dú)立式鍵盤相比較經(jīng)濟(jì),占用IO端口較少,但編程較獨(dú)立式鍵盤難的多,由于本設(shè)計(jì)要求的鍵盤按鍵數(shù)量較少,采用獨(dú)立式鍵盤較方便,開發(fā)難度大大降低,開發(fā)周期縮短,也比較經(jīng)濟(jì)。故在本設(shè)計(jì)中采用獨(dú)立式鍵盤。經(jīng)上述比較后采用獨(dú)立式鍵盤作為本設(shè)計(jì)的鍵盤電路模塊。2.3系統(tǒng)組成經(jīng)過方案論證,最終確定系統(tǒng)的組成框圖如圖2.1所示。系統(tǒng)由STC89C52微處理器核心模塊、電源模塊、獨(dú)立式鍵盤模塊、12864液晶顯示模塊、蜂鳴器電路模塊、RS232串口通信模塊、電源指示電路模塊等組成。其中,獨(dú)立式鍵盤由微動(dòng)開關(guān)連接到IO口與地線之間組成。注意,由于P0口內(nèi)部沒有上拉電阻,在作為輸入時(shí),需要外接上拉電阻。串口通信電路由MAX232電平轉(zhuǎn)換芯片與9DB串口插座等構(gòu)成,用于下載程序和實(shí)現(xiàn)與上位機(jī)通信。蜂鳴器電路主要由蜂鳴器和三級(jí)管組成,用于實(shí)現(xiàn)按鍵聲音等。液晶顯示電路主要由12864液晶顯示模塊及少量外圍電阻等構(gòu)成,主要用于實(shí)現(xiàn)人機(jī)界面的交互功能。單片機(jī)STC89C5212864單片機(jī)STC89C5212864液晶顯示電路電路獨(dú)立式鍵盤蜂鳴器電路RS232串口通信電路電源電源指示電路電機(jī)驅(qū)動(dòng)電路電機(jī)控制圖1.1系統(tǒng)組成框圖3單片機(jī)直流電機(jī)控制系統(tǒng)硬件設(shè)計(jì)3.1系統(tǒng)硬件結(jié)構(gòu)本設(shè)計(jì)硬件結(jié)構(gòu)由單片機(jī)最小系統(tǒng)、鍵盤模塊、12864液晶顯示模塊、蜂鳴器驅(qū)動(dòng)模塊、電源指示模塊、串口通信模塊、電機(jī)驅(qū)動(dòng)模塊等組成。3.2系統(tǒng)單元電路設(shè)計(jì)3單片機(jī)最小系統(tǒng)電路單片機(jī)最小系統(tǒng)電路由STC89C52主控芯片、時(shí)鐘振蕩電路和復(fù)位電路等構(gòu)成。其中,時(shí)鐘振蕩電路主要由外接11.0592MHz晶振、兩個(gè)30pF的起振電容和內(nèi)部反相器構(gòu)成。復(fù)位電路采用簡(jiǎn)單的容阻式復(fù)位電路。單片機(jī)最小系統(tǒng)電路原理圖如圖2.1所示。圖2.1單片機(jī)最小系統(tǒng)電路3獨(dú)立式鍵盤電路鍵盤電路采用比較簡(jiǎn)單的獨(dú)立式鍵盤便能滿足設(shè)計(jì)要求,成本低廉,編程相對(duì)簡(jiǎn)單。4個(gè)獨(dú)立按鍵,分別與單片機(jī)P0.0-P0.3相連,由于P1口上各位內(nèi)部均接有上拉電阻,故,外接按鍵的時(shí)候,我們不再接上拉電阻。圖2.2獨(dú)立式鍵盤電路3液晶顯示模塊(1)12864液晶模塊概述12864液晶顯示電路主要由基于ST7920控制器的12864液晶和外部電位器等組成。12864具有128列64行共128*64個(gè)像素點(diǎn),可以顯示中文、日文、數(shù)字、英文、特殊字符、圖片等。內(nèi)置國(guó)標(biāo)GB2312碼簡(jiǎn)體中文字庫(kù)(16*16),128個(gè)字符(8*16)及64*256點(diǎn)陣顯示RAM(GDRAM)??梢耘cCPU直接接口,提供兩種界面來連接微處理器:8-位并行及串行兩種連接方式。具有多種功能:光標(biāo)顯示、畫面移位、睡眠模式等。(2)12864液晶顯示電路原理圖液晶顯示電路主要由12864液晶顯示模塊和外圍電位器等組成??梢酝ㄟ^調(diào)節(jié)電位器R2,調(diào)節(jié)12864偏壓端電壓,改變顯示對(duì)比度,提高顯示效果,改變顯示清晰度??刂瓶诰€RS、RW、EN分別連接到單片機(jī)的P0.4、P0.5、P0.6,8位數(shù)據(jù)總線與P2口相連,實(shí)現(xiàn)8位數(shù)據(jù),并行傳輸。圖2.312864液晶電路原理圖3蜂鳴器電路圖2.4蜂鳴器驅(qū)動(dòng)電路原理圖3電源電路圖2.5電源電路原理圖3串口通信電路串口通信電路主要由美信公司生產(chǎn)的MAX232芯片和相應(yīng)的通信指示電路構(gòu)成,主要是用于程序的燒寫和實(shí)現(xiàn)與上位機(jī)的通信。Max232用于實(shí)現(xiàn)TTL電平與RS232電平的轉(zhuǎn)換,只要在它的外部在接上幾個(gè)簡(jiǎn)單的電容就構(gòu)成了通信點(diǎn)路,為了方便檢查、排除故障可在通信線上接上兩個(gè)通信指示燈,方便檢查與維修。具體電路圖如圖所示。圖2.6串口通信電路3電機(jī)驅(qū)動(dòng)電路電機(jī)驅(qū)動(dòng)電路主要有電機(jī)驅(qū)動(dòng)芯片L298N、少量電阻電容和二極管構(gòu)成。電機(jī)驅(qū)動(dòng)電路增加光耦合器件以實(shí)現(xiàn)電機(jī)驅(qū)動(dòng)信號(hào)與控制信號(hào)的隔離,提高控制系統(tǒng)的抗干擾能力,但由于光耦合芯片TLP521-4昂貴,并且設(shè)計(jì)的控制要求簡(jiǎn)單,因此驅(qū)動(dòng)電路中去掉了光耦合部分。電機(jī)驅(qū)動(dòng)電路原理圖如圖2.7所示。圖2.7電機(jī)驅(qū)動(dòng)電路原理圖4單片機(jī)直流電機(jī)控制系統(tǒng)軟件設(shè)計(jì)4.1軟件總體結(jié)構(gòu)系統(tǒng)軟件主要由系統(tǒng)初始化程序模塊、鍵盤掃描及處理模塊、液晶顯示程序模塊、串口通信程序模塊、電機(jī)調(diào)速程序模塊和蜂鳴器驅(qū)動(dòng)程序模塊等組成。系統(tǒng)初始化模塊:主要是配置系統(tǒng)工作環(huán)境。主要負(fù)責(zé)的工作有初始化定時(shí)器、初始化液晶、初始化串口、初始化I/O等鍵盤掃描及處理模塊:實(shí)現(xiàn)按鍵識(shí)別、消抖及處理,用于設(shè)置電機(jī)轉(zhuǎn)動(dòng)狀態(tài)。液晶顯示模塊:實(shí)現(xiàn)對(duì)電機(jī)狀態(tài)的實(shí)時(shí)顯示以及狀態(tài)設(shè)置,實(shí)現(xiàn)人機(jī)交互。串口通信模塊:主要是實(shí)現(xiàn)與上位機(jī)進(jìn)行通信,接收上位機(jī)發(fā)送過來的電機(jī)控制命令。蜂鳴器模塊:主要用實(shí)現(xiàn)按鍵蜂鳴。串口通信程序模塊串口通信程序模塊系統(tǒng)初始化鍵盤掃描及處理程序模塊液晶顯示程序模塊蜂鳴器驅(qū)動(dòng)模塊電機(jī)調(diào)速程序模塊圖3.1系統(tǒng)軟件總體框圖系統(tǒng)初始化系統(tǒng)初始化開始鍵盤掃描及處理程序顯示刷新數(shù)據(jù)處理圖3.2系統(tǒng)主程序流程圖4.2系統(tǒng)模塊程序設(shè)計(jì)4初始化模塊程序系統(tǒng)初始化軟件包括三大部分:串口初始化、LCD12864液晶初始化、I/O口初始化。主要完成的工作是設(shè)置定時(shí)器,并初始化串口。初始化12864液晶模塊、關(guān)閉蜂鳴器等。串口初始化程序:設(shè)置定時(shí)器1為工作方式2,配置串口波特率為9600bps,選擇波特率不倍增,串行工作方式1,啟動(dòng)定時(shí)器1,開串行口中斷,開CPU總中斷。串口初始化程序流程圖如圖3.3所示。開始設(shè)置波特率9600開始設(shè)置波特率9600bps的定時(shí)器1初值串口初始化為方式1、波特率不倍增結(jié)束開串口中斷、CPU中斷初始化LCD控制口開始選擇8位數(shù)據(jù)流關(guān)顯示、清屏選擇光標(biāo)右移、開顯示顯示初始界面結(jié)束圖3.3串口初始程序流程圖圖3.412864液晶初始化程序流程圖4鍵盤掃描模塊程序鍵盤掃描及處理程序,主要由按鍵key1、按鍵key2、按鍵key3、按鍵key4組成。Key1為循環(huán)選擇鍵,用于選擇要設(shè)置的電機(jī)狀態(tài)項(xiàng)目。2、Key2為加1按鍵,用于設(shè)定電機(jī)的正反轉(zhuǎn)、加減速和電機(jī)速度值。3、Key3為減1按鍵,用于設(shè)定電機(jī)的正反轉(zhuǎn)、加減速和電機(jī)速度值。4、Key4為確定鍵,用于確定當(dāng)前的電機(jī)狀態(tài)為設(shè)定值。鍵盤掃描程序模塊流程圖如圖3.5所示。開始循環(huán)選擇鍵開始循環(huán)選擇鍵記錄按下次數(shù)設(shè)置模式標(biāo)志光標(biāo)在電機(jī)狀態(tài)處閃爍加1鍵按下光標(biāo)在檢測(cè)轉(zhuǎn)速個(gè)位處閃爍減1鍵按下光標(biāo)在設(shè)定轉(zhuǎn)速個(gè)位處閃爍光標(biāo)在設(shè)定轉(zhuǎn)速十百位閃爍確定鍵按下對(duì)應(yīng)項(xiàng)加1光標(biāo)在檢測(cè)轉(zhuǎn)速十百位閃爍對(duì)應(yīng)項(xiàng)減1刷新顯示退出設(shè)置結(jié)束YESYESNOYESNOYESNO圖3.5鍵盤掃描程序模塊流程圖4液晶顯示模塊程序液晶顯示程序模塊包括12864液晶驅(qū)動(dòng)程序模塊和12864液晶顯示刷新程序模塊。12864液晶驅(qū)動(dòng)程序模塊主要包括12864液晶的寫數(shù)據(jù)、寫命令程序模塊。通過控制12864液晶的控制口線就可以實(shí)現(xiàn)對(duì)12864液晶的基本數(shù)據(jù)操作。液晶寫數(shù)據(jù)和寫命令程序流程圖分別如圖3.6和圖3.7所示。12864液晶顯示程序模塊,主要實(shí)現(xiàn)對(duì)輸入的要發(fā)送的數(shù)據(jù)和接收到的數(shù)據(jù)的顯示,以及進(jìn)入設(shè)置模式時(shí)的各種界面的的刷新顯示等。開始開始選擇寫數(shù)據(jù)將要寫的數(shù)據(jù)放到數(shù)據(jù)總線延時(shí)5ms寫使能信號(hào)有效結(jié)束開始選擇寫命令將要寫的命令放到數(shù)據(jù)總線延時(shí)5ms寫使能信號(hào)有效結(jié)束圖3.612864液晶寫數(shù)據(jù)程序流程圖圖3.712864液晶寫命令程序流程圖串口通信模塊程序,其中標(biāo)志位已在程序中標(biāo)出。開始開始串口中斷接收一個(gè)字節(jié)接收完2Byte通知CPU進(jìn)行數(shù)據(jù)處理理清除發(fā)送中斷標(biāo)志位清除接收中斷標(biāo)志位結(jié)束YESNOYESNO圖3.8串口接收程序流程圖電機(jī)調(diào)速模塊程序電機(jī)調(diào)速程序模塊采用脈寬調(diào)制法實(shí)現(xiàn)速度控制。利用定時(shí)器0固定調(diào)速信號(hào)周期,根據(jù)正反轉(zhuǎn)標(biāo)志,設(shè)定電機(jī)控制端口電平。當(dāng)計(jì)數(shù)值達(dá)到設(shè)定的脈寬值時(shí)則關(guān)閉電機(jī)運(yùn)行,在第二個(gè)周期的調(diào)速信號(hào)到來時(shí),又重新開啟電機(jī)運(yùn)轉(zhuǎn),依次的電機(jī)通斷切換,從而實(shí)現(xiàn)電機(jī)的速度控制。其調(diào)速程序流程圖如圖3.9所示。NO開始NO開始電機(jī)停轉(zhuǎn)計(jì)數(shù)到100開電機(jī)轉(zhuǎn)動(dòng)重載定時(shí)值計(jì)數(shù)變量加1結(jié)束大于脈寬值YESNOYES圖3.9調(diào)速程序流程圖5系統(tǒng)測(cè)試5.1測(cè)試準(zhǔn)備5硬件環(huán)境(1)PC機(jī)、USB轉(zhuǎn)串口通信線。用于單片機(jī)C51語言的編程、編譯、加載及發(fā)送電機(jī)控制命令。(2)+5V和+12V電源、電機(jī)控制系統(tǒng)板、若干根杜邦線、1塊12864液晶模塊。(3)DT9208A數(shù)字萬用表1個(gè)、螺絲刀、鑷子、斜口鉗、吸焊器。5軟件環(huán)境(1)KeiluVision4,用于C51源程序的編寫、編譯、鏈接和調(diào)試。(2)上位機(jī)串口調(diào)試軟件(串口大師)、本系統(tǒng)程序、相關(guān)的庫(kù)和頭文件。5測(cè)試項(xiàng)目12864液晶是否正常顯示。系統(tǒng)電源指示、通信指示、按鍵蜂鳴、按鍵復(fù)位等功能是否正常。上位機(jī)通過串口調(diào)試軟件能否正確控制電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、加速、減速。實(shí)驗(yàn)板上的鍵盤能否正確控制電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、加速、減速。5.2測(cè)試過程1、利用萬用表檢查各線路是否存在斷路、短路并修正。2、檢查單片機(jī)等各口線是否正確連接,上電之前檢測(cè)一下正負(fù)電源線是否短路,確保不短路才上電。3、利用KeiluVision2軟件進(jìn)行程序的編輯、編譯、鏈接和調(diào)試。Flash存儲(chǔ)器中。5、按原理圖連接線路、上電后開始測(cè)試。上電后首先觀察系統(tǒng)顯示是否正常,指示燈工作是否正常,復(fù)位電路是否正常等等,如不正常則修改程序重新下載測(cè)試,直至顯示正常。接著按照測(cè)試項(xiàng)目,分別測(cè)試。首先打開串口調(diào)試軟件,選擇波特率為9600bps,打開串口,選擇發(fā)送的數(shù)據(jù)位16進(jìn)制數(shù)據(jù)。(1)正轉(zhuǎn)測(cè)試:在發(fā)送窗中輸入正轉(zhuǎn)控制字和速度值。如:110其中,1表示正轉(zhuǎn),10(16進(jìn)制)即16表示脈寬為16%的調(diào)速信號(hào)所對(duì)應(yīng)的速度。點(diǎn)擊發(fā)送觀察電機(jī)是否正轉(zhuǎn),將速度改大一些看一下速度是否改變。(2)停止測(cè)試:輸入停止命令字0,速度可以任意,發(fā)送后觀察電機(jī)是否停機(jī)下來。(3)反轉(zhuǎn)測(cè)試:輸入反轉(zhuǎn)命令字及速度脈寬值(最大為100),如220,發(fā)送后觀察電機(jī)的轉(zhuǎn)動(dòng)方向及速度,改變速度后再測(cè)一次觀察電機(jī)轉(zhuǎn)速是否改變。(4)加速測(cè)試:輸入加速命令字3,速度可以任意,如320,發(fā)送后觀察電機(jī)的轉(zhuǎn)動(dòng)情況。(5)減速測(cè)試:輸入減速命令字4,速度可以任意,如420,發(fā)送后觀察電機(jī)的轉(zhuǎn)動(dòng)情況。再測(cè)試正反轉(zhuǎn)直接切換的情況下,電機(jī)是否還能正確運(yùn)行,接著再測(cè)試一下在正反轉(zhuǎn)狀況下進(jìn)行的加減速,觀察電機(jī)是否在原來速度的基礎(chǔ)上無跳變的平穩(wěn)加減速。最后測(cè)試鍵盤的各項(xiàng)控制功能能否正常。5.3測(cè)試結(jié)果經(jīng)測(cè)試表明,本電機(jī)控制系統(tǒng)可以通過上位機(jī)實(shí)現(xiàn)對(duì)直流電機(jī)的自由設(shè)速正反轉(zhuǎn)和平穩(wěn)加減速的控制,同時(shí)也可以通過鍵盤實(shí)現(xiàn)自由設(shè)速正反轉(zhuǎn)和平穩(wěn)加減速的控制;還具有顯示、按鍵發(fā)生等多種功能。該系統(tǒng)完全滿足系統(tǒng)設(shè)計(jì)要求。下面的實(shí)物測(cè)試圖是正轉(zhuǎn)和加速的測(cè)試。測(cè)試效果圖如圖5.1到圖5.4所示。經(jīng)測(cè)試表明,以上測(cè)試要求全部通過。測(cè)試結(jié)果如表4-1。表4-1電機(jī)主要測(cè)試結(jié)果測(cè)試項(xiàng)目指令控制字預(yù)期結(jié)果實(shí)際結(jié)果正轉(zhuǎn)11正轉(zhuǎn)(慢速)正轉(zhuǎn)(慢速)150正轉(zhuǎn)(快速)正轉(zhuǎn)(快速)反轉(zhuǎn)21反轉(zhuǎn)(慢速)反轉(zhuǎn)(慢速)250反轉(zhuǎn)(快速)反轉(zhuǎn)(快速)停止01快速停止快速停止050快速停止快速停止加速31以原速度開始加速以原速度開始加速350以原速度開始加速以原速度開始加速減速41以原速度開始減速以原速度開始減速450以原速度開始減速以原速度開始減速結(jié)束語本課題的核心任務(wù)是對(duì)串口通信的研究和對(duì)電機(jī)控制系統(tǒng)的應(yīng)用設(shè)計(jì),本文的研究方案是根據(jù)現(xiàn)有的軟硬件條件,設(shè)計(jì)單片機(jī)的電機(jī)控制系統(tǒng),通過RS232串口連接至PC機(jī),并進(jìn)行相關(guān)性電機(jī)控制實(shí)驗(yàn)。具體內(nèi)容包括如下:一、通過對(duì)現(xiàn)在應(yīng)用比較廣泛、技術(shù)比較成熟的串口通信進(jìn)行研究,并經(jīng)分析論證后設(shè)計(jì)出以STC89C52單片機(jī)為核心控制單元的上位機(jī)電機(jī)控制系統(tǒng)。二、根據(jù)本設(shè)計(jì)——上位機(jī)電機(jī)控制系統(tǒng)的設(shè)計(jì)要求,編寫了系統(tǒng)程序。通過RS232接口連接至PC機(jī),并進(jìn)行相關(guān)性電機(jī)控制實(shí)驗(yàn)。三、在設(shè)計(jì)好的電機(jī)控制系統(tǒng)平臺(tái)上,進(jìn)行電機(jī)控制系統(tǒng)的軟件開發(fā),并通過不斷的軟硬件調(diào)試、實(shí)物測(cè)試,最終開發(fā)出性能優(yōu)越、靈活方便、具有一定實(shí)用價(jià)值的直流電機(jī)在線控制系統(tǒng)。通過本次畢業(yè)設(shè)計(jì),我更深入的學(xué)到了有關(guān)單片機(jī)的原理及應(yīng)用,并且自主的動(dòng)腦、動(dòng)手能力得到了很大的提高。重要的是能夠?qū)纹瑱C(jī)與實(shí)際生活中的一些應(yīng)用聯(lián)系起來,同時(shí)通過畢業(yè)設(shè)計(jì)對(duì)PC機(jī)通過串口控制單片機(jī)有一定的了解。上位機(jī)控制單片機(jī)系統(tǒng),可以用于對(duì)多個(gè)單片機(jī)應(yīng)用系統(tǒng)進(jìn)行實(shí)時(shí)控制,也可通過調(diào)制/解調(diào)器對(duì)遠(yuǎn)程控制系統(tǒng)進(jìn)行實(shí)時(shí)控制。另外,上位機(jī)不需要進(jìn)行復(fù)雜的編程,直接用微機(jī)的通信串行口進(jìn)行命令控制,并且命令符可自定義。總之我們受益匪淺,這將為我們以后的學(xué)習(xí)以及工作打下良好的基礎(chǔ)。致謝經(jīng)過長(zhǎng)期的忙碌,本次畢業(yè)設(shè)計(jì)已基本完成,作為一個(gè)還沒畢業(yè)的本科生,由于缺乏經(jīng)驗(yàn),導(dǎo)致許多方面考慮不周全,幸好得到了指導(dǎo)老師的督促和同學(xué)們的幫忙,才能夠順利完成了這次畢業(yè)設(shè)計(jì)。在這里,我要先感謝我的指導(dǎo)老師,是她對(duì)我的悉心指導(dǎo),以及對(duì)畢業(yè)設(shè)計(jì)各方面提供的意見,幫我理清了許多疑問。還要感謝同學(xué)對(duì)我的幫助,因?yàn)樗麄?,我才順利完成了我的畢業(yè)設(shè)計(jì)。最后,感謝我的母校為我提供了這么一個(gè)優(yōu)良的學(xué)習(xí)環(huán)境,培育我成長(zhǎng)起來,。在這里,我要對(duì)在校期間幫助過我的所有人說聲謝謝!參考文獻(xiàn)[1]張毅剛彭喜元.單片機(jī)原理與應(yīng)用設(shè)計(jì)[M].北京:北京市海淀區(qū)四季青印刷廠,2010.[2]張毅剛.新編MCS-51單片機(jī)運(yùn)用設(shè)計(jì).哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2003.[3]張義和王敏男許宏昌余長(zhǎng)春.例說51單片機(jī)(c語言版).北京:人民郵電出版社,2009.[4]馬忠梅籍順心張凱馬巖.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì).北京:北京航空航天大學(xué),2010.[5]SamsungElectronics.S3C44BOXRiscmicrocontrollerARMinstructionsheet.2002.[6]郭天祥.《51單片機(jī)C語言教程》,電子工業(yè)出版社,2005年7月[7]丁元杰.《單片微機(jī)原理及應(yīng)用》,機(jī)械工業(yè)出版社,2005年7月[8]樓然苗、李光.《單片機(jī)課程設(shè)計(jì)指導(dǎo)》,北京:北京航空航天大學(xué)出版社,2007.[9]OkazoeH,ShimizuK,WatanabeY.etal.Develop-mentofaFull-FlowBurnerRegenerationTypeDieselParticu-lateFilterUsingSiCHoneycomb[C].SocietyofAutomotiveEngineersInternationalCongressandExposition.Michigan:SAEPaper960130.1996,:27-35.[10]豈興明、唐杰等.《51單片機(jī)編程基礎(chǔ)與開發(fā)實(shí)例詳解》,北京:人民郵電出版社,2008.[11]王東鋒、王會(huì)良、董冠強(qiáng).《單片機(jī)C語言應(yīng)用100例》,電子工業(yè)出版社,2009.1V.Yu.Teplov,A.V.Anisimov.ThermostattingSystemUsingaSingle-ChipMicrocomputerandThermoelectricModulesBasedonthePeltierEffect[J],2002[12]YeagerBrent.Howtotroubleshootyourelectronicscale[J]..PowderandBulkEngineering.1995[13]周興華.手把手教你學(xué)單片機(jī),北京:北京航空航天大學(xué)出版社,2005.[14]MeehanJoanne,MuirLindsey.SCMinMerseysideSMEs:Benefitsandbarriers[J]..TQMJournal.2008[15[16]說明書,LED12864液晶完整中文版資料[17]王曉明電動(dòng)機(jī)的單片機(jī)控制(第3版)
北京航空航天大學(xué)出版社.2011附錄附錄1直流電機(jī)在線控制系統(tǒng)程序/*******************************************************************************************基于STC89C52和L298的直流電機(jī)的在線控制,同時(shí)可以通過鍵盤來控制電機(jī)在線控制的指令要求,選用16進(jìn)制1XX正傳1代表正傳,XX代表速度2XX反轉(zhuǎn)3加速加速只會(huì)加速到最大,還沒有實(shí)現(xiàn)加速到一定量或者是加速一定量4減速減速只會(huì)加速到零,還沒有實(shí)現(xiàn)減速到一定量或者是減速一定量通過鍵盤一樣可以控制電機(jī),檢速電路沒有實(shí)現(xiàn)********************************************************************************************/#include<reg51.h>#defineucharunsignedchar#defineuintunsignedint#defineLcdBusP2sbitKey0=P0^0;//循環(huán)選擇鍵sbitKey1=P0^1; //"+"下一頁(yè)sbitKey2=P0^2; //"-"上一頁(yè)sbitKey3=P0^3; //確定鍵sbitLcd_RS=P0^4;sbitLcd_RW=P0^5;sbitLcd_EN=P0^6;//12864控制端口sbitMotorIN1=P1^0;sbitMotorIN2=P1^1;//單片機(jī)對(duì)L298的控制端口sbitSpeaker=P3^3;/*變量定義*/ucharconstcodeSysName[]={"電機(jī)在線控制"};ucharconstcodeName1[]={"電機(jī)狀態(tài):停止"};ucharconstcodeName2[]={"預(yù)設(shè)脈寬:000T/q"};ucharconstcodeName3[]={"反饋脈寬:000T/q"};ucharconst codeName4[]={"0123456789"};ucharconst codeStatus0[]={"停止"};ucharconstcodeStatus1[]={"轉(zhuǎn)"};ucharconstcodeStatus2[]={"反轉(zhuǎn)"};ucharconstcodeStatus3[]={"加速"};ucharconstcodeStatus4[]={"減速"};ucharOldMotorIN1=0,OldMotorIN2=0;charPcToMcu[2]={0};charPcToMcu0;charSetSpeed[3]={0};charSpeed[3]={0};charOldPcToMcu1;ucharStatus=0;//0:停止1:正轉(zhuǎn)2:反轉(zhuǎn)ucharPWM=0;ucharKeynum0=0,Keynum1=0;ucharReFlag=0;ucharSetFlag=0;ucharFlag=0;voidInit(void);voidInitLcd(void);voidKeyscan(void);voidDisplay(void);voidWr_com12864(ucharcom);voidWr_dat12864(uchardat);voiddelay(uintn);voidTime0_Init(void);voidUart_Init(void);voidWork(void);voidKeysound(void);voidmain(){Init();while(1){if(SetFlag==0)Work(); Keyscan(); if(SetFlag==0)Display();}}/*==============================子函數(shù)區(qū)===============================*/voidInit(void){InitLcd();Uart_Init();Time0_Init();}/*鍵盤掃描函數(shù)*/voidKeyscan(void){if(Key0==0) //循環(huán)選擇{OldPcToMcu1=PcToMcu[1];Keynum0++; SetFlag=1; while(Key0==0)Keysound();}if(SetFlag)//進(jìn)入設(shè)置模式{switch(Keynum0) { case1:Wr_com12864(0x95);Wr_com12864(0x0f);break; case2:Wr_com12864(0x8E);Wr_com12864(0x0f);break; case3:Wr_com12864(0x8D);Wr_com12864(0x0f);break; case4:Keynum0=1;break; default:break; } if(Key1==0)//"+" { switch(Keynum0) { case1:if(++PcToMcu0>4)PcToMcu0=0;break; case2:SetSpeed[0]++; if(SetSpeed[0]>9) SetSpeed[0]=0; break; //設(shè)定值的設(shè)定 case3:SetSpeed[1]++; if(SetSpeed[1]>9) { SetSpeed[1]=0; SetSpeed[2]++; if(SetSpeed[2]>9) SetSpeed[2]=0; } break; case4:Keynum0=1;break; default:break; } Display(); //刷新顯示 Wr_com12864(0x0c);//去掉光標(biāo)閃爍 while(Key1==0)Keysound(); } if(Key2==0)//"-" { switch(Keynum0) { case1:if(--PcToMcu0<0)PcToMcu0=4;break; case2:SetSpeed[0]--; if(SetSpeed[0]<0) SetSpeed[0]=9; break; //設(shè)定值的設(shè)定 case3:SetSpeed[1]--; if(SetSpeed[1]<0) { SetSpeed[1]=9; SetSpeed[2]--; if(SetSpeed[2]<0) SetSpeed[2]=9; } break; case4:Keynum0=1;break; default:break; } Display(); //刷新顯示 Wr_com12864(0x0c);//去掉光標(biāo)閃爍 while(Key2==0)Keysound(); }}if(Key3==0) //確定鍵{PcToMcu[1]=SetSpeed[2]*100+SetSpeed[1]*10+SetSpeed[0]; PcToMcu[0]=PcToMcu0; Wr_com12864(0x0c);//去掉光標(biāo)閃爍 Keynum0=0; ReFlag=1; SetFlag=0;//退出設(shè)置狀態(tài) while(Key3==0)Keysound();}}/*按鍵聲函數(shù)*/voidKeysound(void){uchari;for(i=0;i<10;i++){Speaker=0; delay(1); Speaker=1; delay(5);}}/*初始化LCD*/voidInitLcd(void){uchari=0,j=0; Lcd_RS=0;Lcd_RW=0; Lcd_EN=0; Wr_com12864(0x38);//顯示模式設(shè)定 Wr_com12864(0x0c);//不顯示光標(biāo) Wr_com12864(0x06);//寫字符后光標(biāo)右移 Wr_com12864(0x01);//顯示清屏 Wr_com12864(0x81); for(i=0;i<12;i++) Wr_dat12864(SysName[i]); Wr_com12864(0x90); for(i=0;i<14;i++) Wr_dat12864(Name1[i]);// Wr_dat12864(0xd5); //"正" //Wr_dat12864(0xfd);Wr_com12864(0x88); for(i=0;i<16;i++) Wr_dat12864(Name2[i]);Wr_com12864(0x98); for(i=0;i<16;i++) Wr_dat12864(Name3[i]);}/*向12864寫命令*/voidWr_com12864(ucharcom)/***寫命令***/{ucharlcdtemp=0; Lcd_RS=0; Lcd_RW=1; do//判忙{ Lcd_EN=1; delay(1); lcdtemp=P2; Lcd_EN=0; } while(lcdtemp&0x80); Lcd_RW=0; LcdBus=com; delay(1); Lcd_EN=1; delay(1); Lcd_EN=0;}voidWr_dat12864(uchardat) /***寫數(shù)據(jù)***/{ucharlcdtemp=0;Lcd_RS=0;Lcd_RW=1;do //判忙{Lcd_EN=1; delay(1);lcdtemp=P2;Lcd_EN=0;}while(lcdtemp&0x80);Lcd_RS=1;Lcd_RW=0;LcdBus=dat;Lcd_EN=1;delay(1);Lcd_EN=0;}voiddelay(uintn) /***延時(shí)約1ms***/{uinti,j;for(i=0;i<n;i++)for(j=0;j<110;j++);}/*名稱:UART_Init功能:初始化串口參數(shù):無返回值:無*/voidUart_Init(void){TMOD=TMOD|0x20;//00100001設(shè)置T1為定時(shí)方式2TL1=0xfd;PCON=0x00;//波特率不倍增SCON=0x50;//串行方式1PS=1;//串行優(yōu)先級(jí)最高TR1=1;//啟動(dòng)定時(shí)器1ES=1;//開串口中斷}/*名稱:Time0_Init功能:初始化Time0參數(shù):無返回值:無*/voidTime0_Init(void){TMOD=TMOD|0x01;//T0為定時(shí)方式1TH0=0xF8;//定時(shí)2msTL0=0xCC;EA=1;ET0=1;TR0=1;}/*名稱:Display功能:刷新顯示參數(shù):無返回值:無*/voidDisplay(void){Wr_com12864(0x95);switch(PcToMcu0){uchari=0;case0:for(i=0;i<4;i++)Wr_dat12864(Status0[i]);break; case1:Wr_dat12864(0xd5);Wr_dat12864(0xfd);for(i=0;i<2;i++)Wr_dat12864(Status1[i]);break;//"正轉(zhuǎn)" case2:for(i=0;i<4;i++)Wr_dat12864(Status2[i]);break; case3:for(i=0;i<4;i++)Wr_dat12864(Status3[i]);break; case4:for(i=0;i<4;i++)Wr_dat12864(Status4[i]);break; default:break;}Wr_com12864(0x8D);Wr_dat12864(Name4[SetSpeed[2]]);Wr_dat12864(Name4[SetSpeed[1]]);Wr_dat12864(Name4[SetSpeed[0]]);Wr_com12864(0x9D);Wr_dat12864(Name4[Speed[2]]);Wr_dat12864(Name4[Speed[1]]);Wr_dat12864(Name4[Speed[0]]);}/*名稱:UART_Receive功能:串口接收參數(shù):無返回值:無*/voidUART_Receive(void){staticucharuCount_Receive=0;PcToMcu[uCount_Receive]=SBUF;uCount_Receive++; if(uCount_Receive==1)OldPcToMcu1=PcToMcu[1];if(uCount_Receive>=2)//接收完2個(gè)字節(jié)后,串口接收計(jì)數(shù)器清零{uCount_Receive=0; ReFlag=1;//串口接收完成標(biāo)志位置位} }/*名稱:Work功能:數(shù)據(jù)處理函數(shù)參數(shù):無返回值:無*/voidWork(void){if(ReFlag==1){ ReFlag=0; switch(PcToMcu[0]) { case0:MotorIN1=0;MotorIN2=0;Status=0;PcToMcu[1]=0;break; case1:MotorIN1=1;MotorIN2=0;Status=1;break; //正轉(zhuǎn) case2:MotorIN1=0;MotorIN2=1;Status=2;break; //反轉(zhuǎn) case3:switch(Status) {case0:MotorIN1=1;MotorIN2=0;Status=1;PcToMcu[1]=1;break; //若之前為停止,則默認(rèn)正轉(zhuǎn) case1:MotorIN1=1;MotorIN2=0;P
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 街道應(yīng)急管理培訓(xùn)制度
- 街道團(tuán)干部培訓(xùn)制度
- 托管培訓(xùn)班資產(chǎn)管理制度
- 上崗證培訓(xùn)管理制度
- 失業(yè)培訓(xùn)打卡制度
- 如皋酒店消防培訓(xùn)制度
- 企業(yè)環(huán)境培訓(xùn)制度
- 室外花境培訓(xùn)制度
- 美術(shù)培訓(xùn)班學(xué)校制度
- 培訓(xùn)機(jī)構(gòu)信息制度
- THHPA 001-2024 盆底康復(fù)管理質(zhì)量評(píng)價(jià)指標(biāo)體系
- JGT138-2010 建筑玻璃點(diǎn)支承裝置
- 垃圾清運(yùn)服務(wù)投標(biāo)方案(技術(shù)方案)
- 顱鼻眶溝通惡性腫瘤的治療及護(hù)理
- 光速測(cè)量實(shí)驗(yàn)講義
- 斷橋鋁合金門窗施工組織設(shè)計(jì)
- 新蘇教版六年級(jí)科學(xué)上冊(cè)第一單元《物質(zhì)的變化》全部教案
- 四川山體滑坡地質(zhì)勘察報(bào)告
- 青島啤酒微觀運(yùn)營(yíng)
- 工程結(jié)算書(設(shè)備及安裝類)
- GB/T 19142-2016出口商品包裝通則
評(píng)論
0/150
提交評(píng)論