版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上ARM課程設(shè)計實驗報告 基于LPC2124的直流電機(jī)調(diào)速系統(tǒng)ARM課程設(shè)計實驗報告電控學(xué)院目 錄ARM的簡介(2)LPC2124簡介(3)電機(jī)驅(qū)動芯片L298介紹(3)直流電機(jī)調(diào)速系統(tǒng)軟件設(shè)計流程圖 (6)PWM模塊(6)測速模塊 (7)直流電機(jī)制動(10)D觸發(fā)器作用(8)硬件電路原理圖(10)ARM課程設(shè)計體會 (15)參考文獻(xiàn)(14)基于LPC2124的直流電機(jī)調(diào)速系統(tǒng)源代碼(10)1.1 ARM的簡介編/解碼器,定位于智能PDA市場;Atmel公司的AT91系列片內(nèi)集成了大容量 Flash和RAM、高精度A/D轉(zhuǎn)換器以及大量可編程I/O端口,特別適合于工業(yè)控制
2、領(lǐng)域;Philips公司的LPC2000系列片內(nèi)集成了128位寬的零等待Fla公司的IP核已經(jīng)由ARM7,ARM9發(fā)展到今天的ARM11版本。ARM11囊括了Thumb-2,CoreSight,TrusZone 等眾多業(yè)界領(lǐng)先技術(shù),同時由單一的處理器內(nèi)核向多核發(fā)展,為高端的嵌入式應(yīng)用提供了強(qiáng)大的處理平臺。高集成度SOC芯片的采用可以帶來一系列好處,諸如減少了外圍器件和PCB面積,提高系統(tǒng)抗干擾能力,縮小產(chǎn)品體積,降低功耗等。ARM 公司是一家IP供應(yīng)商,其核心業(yè)務(wù)是IP核以及相關(guān)工具的開發(fā)和設(shè)計。半導(dǎo)體廠商通過購買ARM公司的IP授權(quán)來生產(chǎn)自己的微處理器芯片。由此以來,處理器內(nèi)核來自ARM公司
3、、各芯片廠商結(jié)合自身已有的技術(shù)優(yōu)勢以及芯片的市場定位等因數(shù)使芯片設(shè)計最優(yōu)化,從而產(chǎn)生了一大批高度集成、各據(jù)特色的SOC芯片。例如Intel公司的XScale系列集成了LCD控制器、音頻sh存儲器以及I2C, SPI,PWM,UART等傳統(tǒng)接口,極高的性價比使它對傳統(tǒng)的8/16位MCU提出了嚴(yán)峻的挑戰(zhàn)。本次設(shè)計仍使用的ARM7系列。1.2 ARM的廣泛應(yīng)用 ARM 微處理器及技術(shù)的應(yīng)用幾乎已經(jīng)深入到各個領(lǐng)域: 1 、工業(yè)控制領(lǐng)域:作為 32 的 RISC 架構(gòu),基于 ARM 核的微控制器芯片不但占據(jù)了高端微控制器市場的大部分市場份額,同時也逐漸向低端微控制器應(yīng)用領(lǐng)域擴(kuò)ARM微控制器的低功
4、耗、高性價比,向傳統(tǒng)的 8 位 /16 位微控制器提出了挑戰(zhàn)。2 、無線通訊領(lǐng)域:目前已有超過 85% 的無線通訊設(shè)備采用了 ARM 技術(shù), ARM 以其高性能和低成本,在該領(lǐng)域的地位日益鞏固。 3 、網(wǎng)絡(luò)應(yīng)用:隨著寬帶技術(shù)的推廣,采用 ARM 技術(shù)的 ADSL 芯片正逐步獲得競爭優(yōu)勢。此外,ARM 在語音及視頻處理上行了優(yōu)化,并獲得廣泛支持,也對 DSP 的應(yīng)用領(lǐng)域提出了挑戰(zhàn)。 4 、消費(fèi)類電子產(chǎn)品: ARM 技術(shù)在目前流行的數(shù)字音頻播放器、數(shù)字機(jī)頂盒和游戲機(jī)中得到廣泛采用。 5 、成像和安全產(chǎn)品:現(xiàn)在流行的數(shù)碼相機(jī)和打印機(jī)中絕大部分采用 ARM 技術(shù)。手機(jī)中的 32位 SIM 智能卡也采用
5、了 ARM 技術(shù)。 除此以外, ARM 微處理器及技術(shù)還應(yīng)用到許多不同的領(lǐng)域,并會在將來取得更加廣泛的應(yīng)用。1.3本課題的意義目前,基于ARM技術(shù)的嵌入式系統(tǒng)幾乎已經(jīng)深入應(yīng)用到各個領(lǐng)域,是當(dāng)今32位嵌入式系統(tǒng)應(yīng)用的主流。ARM在工業(yè)控制領(lǐng)域的應(yīng)用也受到越來越多的關(guān)注。 本課題設(shè)計了一個基于ARM的嵌入式直流電機(jī)轉(zhuǎn)速監(jiān)控系統(tǒng)。該系統(tǒng)使用PHILIPS公司的以ARM7TDMI-S為內(nèi)核的LPC2124芯片作為控制核心,配置相應(yīng)的外設(shè)及接口電路,運(yùn)用性能價格比較好的集成電機(jī)控制芯片L298作為直流電動機(jī)的PWM驅(qū)動器件;采用光電編碼器實現(xiàn)對轉(zhuǎn)速信號的采集;采用LPC2124內(nèi)部集成定時器的捕獲功能對
6、編碼器生成的脈沖序列信號進(jìn)行測量;采用74LS74作為鑒相器而識別電動機(jī)實時轉(zhuǎn)向;采用單閉環(huán)PI控制調(diào)節(jié)轉(zhuǎn)速;采用LCD1602系列顯示屏即時顯示電動機(jī)的轉(zhuǎn)動信息;采用44矩陣鍵盤對轉(zhuǎn)速及轉(zhuǎn)向進(jìn)行設(shè)置和控制。系統(tǒng)主要使用編寫,遵循模塊化設(shè)計的原則,編寫了轉(zhuǎn)速的測量、轉(zhuǎn)速的PWM驅(qū)動、轉(zhuǎn)速的PI調(diào)節(jié)、轉(zhuǎn)速的顯示、鍵盤輸入等程序模塊,程序具有良好的易維護(hù)性和可移植性。最后使用Proteus ISIS仿真對系統(tǒng)仿真,并在仿真平臺上對系統(tǒng)性能進(jìn)行測試與分析。 本系統(tǒng)的設(shè)計精度可以滿足一般工業(yè)控制的要求,能夠應(yīng)用到實際的生產(chǎn)生活中,滿足現(xiàn)代化生產(chǎn)的需要。而且能夠防止用戶的誤操作,增強(qiáng)了系統(tǒng)運(yùn)行的安全性和
7、穩(wěn)定性,具有一定的實用性和較高的社會推廣價值。關(guān)鍵詞:ARM;嵌入式系統(tǒng);直流電機(jī)轉(zhuǎn)速控制;LPC21242.1 LPC2124簡介LPC2124是基于一個支持實時仿真和跟蹤的16/32位ARM7TDMI-S CPU的微控制器,并帶有256KB嵌入的高速Flash存儲器。128位寬度的存儲器接口和獨(dú)特的加速結(jié)構(gòu)使32位代碼能夠在最大時鐘速率下運(yùn)行,且可使用16位Thumb模式。LPC2124支持多種通信接口,包括UART, 和SPI等串行接口以及PWM輸出接口,外圍接口部分設(shè)計極為方便、靈活。2.2 電機(jī)驅(qū)動芯片L298介紹L298N是ST公司生產(chǎn)的一種高電壓、大電流電機(jī)驅(qū)動芯片。該芯片采用1
8、5腳封裝。主要特點(diǎn)是:工作電壓高,最高工作電壓可達(dá)46V;輸出電流大,瞬間峰值電流可達(dá)3A,持續(xù)工作電流為2A;額定功率25W。內(nèi)含兩個H橋的高電壓大電流全橋式驅(qū)動器,可以用來驅(qū)動直流電動機(jī)和步進(jìn)電動機(jī)、繼電器線圈等感性負(fù)載;采用標(biāo)準(zhǔn)邏輯電平信號控制;具有兩個使能控制端,在不受輸入信號影響的情況下允許或禁止器件工作有一個邏輯電源輸入端,使內(nèi)部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。使用L298N芯片驅(qū)動電機(jī),該芯片可以驅(qū)動一臺兩相步進(jìn)電機(jī)或四相步進(jìn)電機(jī),也可以驅(qū)動兩臺直流電機(jī)。芯片內(nèi)部結(jié)構(gòu)圖如圖2所示。圖2 L298芯片的內(nèi)部結(jié)構(gòu)圖L298驅(qū)動直流電機(jī)參考表1表1
9、 L298驅(qū)動直流電機(jī)參考表電機(jī)旋轉(zhuǎn)方式控制端IN1控制端IN2控制端IN3控制端IN4輸入PWM信號改變脈寬可調(diào)速調(diào)速端A調(diào)速端BM1正轉(zhuǎn)高低/高/反轉(zhuǎn)低高/高/停止低低/高/M2正轉(zhuǎn)/高低/高反轉(zhuǎn)/低高/高停止低低/高2.3系統(tǒng)原理結(jié)構(gòu)根據(jù)本系統(tǒng)的設(shè)計目標(biāo),本系統(tǒng)的原理結(jié)構(gòu)框圖如圖所示。系統(tǒng)的原理結(jié)構(gòu)框圖如圖所示,本系統(tǒng)的主要功能模塊有:轉(zhuǎn)速檢測模塊、光電轉(zhuǎn)換、單片機(jī)、PWM電機(jī)驅(qū)動模塊、顯示模塊、鍵盤模塊。轉(zhuǎn)速傳感器和光電轉(zhuǎn)換將電機(jī)轉(zhuǎn)速轉(zhuǎn)化為可以測量的電信號。PWM電動機(jī)驅(qū)動用來將計算機(jī)信號轉(zhuǎn)換為電動機(jī)驅(qū)動信號,鍵盤和顯示器是本系統(tǒng)的人機(jī)接口。2.4系統(tǒng)硬件體系結(jié)構(gòu)本設(shè)計的統(tǒng)硬件體系可以
10、分為三部分,第一部分為微控制器組成的控制核心電路,第二部分為轉(zhuǎn)速檢測模塊和電動機(jī)驅(qū)動模塊組成的電動機(jī)接口電路,第三部分為鍵盤輸入模塊和液晶顯示模塊組成用戶接口電路,設(shè)計方案的硬件詳細(xì)框圖如圖。詳細(xì)的硬件體系結(jié)構(gòu)框圖25系統(tǒng)軟件體系結(jié)構(gòu)設(shè)計結(jié)合本系統(tǒng)的性能要求,本設(shè)計采用前后臺系統(tǒng),其體系結(jié)構(gòu)如圖所示。軟件體系結(jié)構(gòu)框圖3.1 直流電機(jī)調(diào)速系統(tǒng)軟件設(shè)計流程圖直流電機(jī)調(diào)速系統(tǒng)軟件設(shè)計流程圖如圖3所示,中斷程序如圖4、圖5所示。 圖3 調(diào)速系統(tǒng)軟件 圖4 按鍵中斷 圖5 測速中斷設(shè)流程圖 程序流程圖 程序流程圖3.2 PWM模塊 系統(tǒng)采用PWM方法調(diào)整電動機(jī)的速度,首先應(yīng)確定合理的脈沖頻率。脈沖寬度一
11、定時,頻率對電機(jī)運(yùn)行的平穩(wěn)性有較大影響,脈沖頻率高電動機(jī)運(yùn)行的連續(xù)性好,但帶負(fù)載能力差;脈沖頻率低則反之。調(diào)脈寬的方式有三種:定頻調(diào)寬、定寬調(diào)頻和調(diào)寬調(diào)頻。我們采用了定頻調(diào)寬方式,因為采用這種方式,電動機(jī)在運(yùn)轉(zhuǎn)時比較穩(wěn)定;并且在采用LPC2124產(chǎn)生PWM脈沖的軟件實現(xiàn)上比較方便。PWM輸出頻率采用系統(tǒng)時鐘頻率,通過轉(zhuǎn)速調(diào)節(jié)器調(diào)節(jié)PWM占空比,實現(xiàn)直流電機(jī)的調(diào)速驅(qū)動。PWM初始化子程序流程如圖6所示。圖6 PWM初始化流程圖PWM驅(qū)動電路圖下圖為采用內(nèi)部集成有兩個橋式電路的專用芯片L298所組成的電機(jī)驅(qū)動電路。本設(shè)計中只使用L298其中一組引腳控制電機(jī),另一組沒有使用。如圖所示,P0.25控制
12、電機(jī)的方向,P0.21輸入的PWM控制電機(jī)的速度。P0.25為“0”,P0.21輸入PWM波時,電機(jī)正轉(zhuǎn),通過改變PWM的占空比可以調(diào)節(jié)電機(jī)的速度。而當(dāng)P0.25為“1”,P0.25輸入PWM波時,電機(jī)反轉(zhuǎn),同樣通過改變PWM的占空比來調(diào)節(jié)電機(jī)的速度。 PWM驅(qū)動電路圖3.3測速模塊(軟件實現(xiàn))本系統(tǒng)采用T法測速,旋轉(zhuǎn)編碼器輸出的脈沖由LPC2124的P0.28捕獲,電機(jī)每轉(zhuǎn)一圈旋轉(zhuǎn)編碼器輸出60個脈沖,每捕獲一個編碼器輸出脈沖,則進(jìn)入中斷讀取定時器的值,計算測速時間,通過公式(1-2)計算轉(zhuǎn)速 (1-1)T法測速原理如圖7所示。圖7 T法測速原理圖定時器0初始化流程圖如圖8所示。圖8 定時器
13、0初始化流程圖3.4直流電機(jī)制動直流電機(jī)要達(dá)到快速制動,必須采用反壓制動方式,所以制動過程采用另外獨(dú)立的程序設(shè)計。因為原先采用統(tǒng)一的調(diào)速程序發(fā)現(xiàn),制動過程反轉(zhuǎn)超調(diào)后就向反方向加速,導(dǎo)致系統(tǒng)不穩(wěn)定。采用獨(dú)立的程序設(shè)計實現(xiàn)電機(jī)逐級制動,隨轉(zhuǎn)速降低減小PI參數(shù),最后置高P0.6、P0.7,保證超調(diào)也不會反轉(zhuǎn)加速。3.5 LCD顯示電路本系統(tǒng)的顯示部分采用RT1602字符顯示模塊,與采用數(shù)碼管相比,硬件連接和軟件調(diào)試上都由優(yōu)勢。只要把要顯示的內(nèi)容放進(jìn)液晶模塊的顯示存儲器里面就可以直觀的顯示出指定的內(nèi)容,操作方便。本設(shè)計將LCD連接到LPC2124的P0.0-P0.10口上,其電路如圖3-14所示。圖3
14、-14 顯示電路原理圖1602采用標(biāo)準(zhǔn)的14腳接口,其各引腳定義如下:第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:V0為液晶顯示器對比度調(diào)整端。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時可以讀忙信號,當(dāng)RS為高電平RW為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。第1516腳:空腳。3.6鍵盤電路本系統(tǒng)采用的是44矩陣
15、鍵盤,接到LPC2124的P1.16-P1.23口而實現(xiàn),鍵盤的電路圖如圖3-15所示。圖3-15 鍵盤電路3.7 D觸發(fā)器測量電機(jī)轉(zhuǎn)速 如圖所示,測量電機(jī)的轉(zhuǎn)速時使用兩個傳感器進(jìn)行測量,一旦電機(jī)開始轉(zhuǎn),傳感器會輸出脈沖信號,分別接入D觸發(fā)器的輸入端和CLK端,D觸發(fā)器為脈沖觸發(fā),輸出端Q會隨著輸入端的變化而出現(xiàn)高低電平的轉(zhuǎn)換,從而測量電機(jī)的轉(zhuǎn)向。表5-1 Motor-Encoder參數(shù)表參數(shù)名參數(shù)值 額定電壓12 V線圈電阻120 線圈電感100 mH空載轉(zhuǎn)速720 rpm負(fù)載率50 %每轉(zhuǎn)脈沖數(shù)300由此參數(shù)表可知: 電機(jī)的最大轉(zhuǎn)速=空載轉(zhuǎn)速負(fù)載率所以本系統(tǒng)中電機(jī)的最大轉(zhuǎn)速為350轉(zhuǎn)/分鐘
16、。 電機(jī)的轉(zhuǎn)速值(rpm)=(編碼器的脈沖頻率60)/每轉(zhuǎn)脈沖數(shù)所以本系統(tǒng)中電機(jī)的轉(zhuǎn)速值rpm=編碼器的脈沖頻率/5。本設(shè)計的轉(zhuǎn)速轉(zhuǎn)向檢測電路仿真圖如圖5-2所示,其中將MOTOR-ENCODER的編碼器兩側(cè)的其中一個引腳作為轉(zhuǎn)速檢測,然后再輔以另一側(cè)的引腳接入鑒相器,本設(shè)計使用Proteus庫中的74LS74仿真芯片實現(xiàn)脈沖相位檢測,從而實現(xiàn)轉(zhuǎn)向識別L298驅(qū)動直流電機(jī)參考表用兩個傳感器檢測電機(jī)的轉(zhuǎn)速將輸出脈沖接入D觸發(fā)器的CLK及D端,D觸發(fā)器當(dāng)電機(jī)旋轉(zhuǎn)方式控制端IN1控制端IN2控制端IN3控制端IN4輸入PWM信號改變脈寬可調(diào)速調(diào)速端A調(diào)速端BM1正轉(zhuǎn)高低/高/反轉(zhuǎn)低高/高/停止低低/
17、高/M2正轉(zhuǎn)/高低/高反轉(zhuǎn)/低高/高停止低低/高硬件電路原理圖:用designer設(shè)計的原理圖如下ARM課程設(shè)計體會 此次課程設(shè)計,總體來說結(jié)果并不十分理想但卻受益匪淺,雖然最后我們仿真成功了,但由于與實驗箱上的電路所用芯片不同,而無法運(yùn)行,然而在這個過程中我收獲到了很多很多東西。從選題到定稿,從理論到實踐,在這個過程中我們遇到了各種各樣的問題, 發(fā)現(xiàn)我們的知識有很大的欠缺,對一些元器件的認(rèn)識不過深刻,對ARM C語言也掌握得不好,通過這次課程設(shè)計之后,也把以前所學(xué)過的知識重新溫故。同時在實踐的過程中,使我們明白理論和實際相結(jié)合是多么的重要,只有將理論運(yùn)用于實踐才是知識真正活了起來。我在圖書館
18、和網(wǎng)上查閱了大量的ARM的相關(guān)資料,2124電機(jī)驅(qū)動芯片,12864液晶顯示器和光電傳感器的資料,由于資料比較分散,所以整理有用的資料就顯得很重要,有些東西實在是不懂我就把資料帶回來大家一商量,讓我們受益匪淺。這次課程設(shè)計終于完成了,設(shè)計中遇到了很多問題,在老師和同學(xué)們的指導(dǎo)與幫助下,終于游逆而解,讓我學(xué)得到很多實用的知識,同時也為以后的課程設(shè)計打下了一定的基礎(chǔ)。在此,對給過我?guī)椭母魑恢笇?dǎo)老師和所有同學(xué)再次表示忠心的感謝! XXX一周的課程設(shè)計很快就過去了,可結(jié)果卻并不很理想,雖然我們每個人都很努力。當(dāng)選題確定以后,我們就開始畫硬件原理圖,可就軟件在電腦上裝了一天還沒裝上,費(fèi)了九牛二虎之力才
19、弄好,可ARM芯片又和實驗室所用的不一樣,在萬般無奈之下只好換了芯片,這樣就沒法在實驗室的試驗箱上實現(xiàn),我們做這個課程設(shè)計,可以說是困難重重,弄得每個人都很糾結(jié),可我們?nèi)栽趫猿?,盡最大努力的把它做好,雖然最后還是沒能成功。通過這次課程設(shè)計使得我懂得了理論與實踐結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把學(xué)到的知識與實際結(jié)合起來,從實踐中得出結(jié)論,才能更好的理解理論知識,才能提高自己的實際動手能力和獨(dú)立思考的能力。在設(shè)計的過程中遇到問題,在這次設(shè)計中發(fā)現(xiàn)了自己的不足之處,對ARM知識理解得不夠深刻,掌握的不夠牢固,可能因為我要考研所以這次課程設(shè)計受到一點(diǎn)影響,課程設(shè)計雖然結(jié)束了,但我們的學(xué)習(xí)
20、還沒有結(jié)束,我們需要繼續(xù)努力學(xué)習(xí)。這幾天讓我把以前所學(xué)的ARM知識重新溫故,尤其是定時器和中斷的知識,這次課程設(shè)計我最大的體會就是我還要不斷的學(xué)習(xí),這樣才能提高自己。XXX從四個題目中選擇直流電機(jī)的測速時,心里覺得還是挺簡單的,但是當(dāng)真正設(shè)計起來的時候才覺得細(xì)節(jié)是很重要的問題,從上網(wǎng)查資料再到圖書館看書,許多的資料看得眼花繚亂,其實硬件的問題還是很容易解決的,我們雖然學(xué)過一點(diǎn)C語言,但卻很不純熟,我們做單片機(jī)課程設(shè)計時,我們組用的匯編程序,學(xué)ARM時大部分的程序都是C語言,所以程序就成為我們的弱項。此次的軟件部有我設(shè)計,因為時間有限,程序變起來很費(fèi)勁,所以參考了書上的部分程序。其實確實如老師說
21、的很簡單,但是由于我們接觸有限所以對ARM單片機(jī)的程序設(shè)計有一定的局限性,再加上我們用的ARM芯片與實驗室上的ARM芯片有所出入就導(dǎo)致我們的實踐部分不能實現(xiàn),這是我們的一大損失,也讓我覺得有些挫敗。通過這次課程設(shè)計讓我了解,要完成一件事情大家的合作是分不開的,探討詢問都是家常便飯,自己做的部分并不是你自己懂得就可以,你要讓你的搭檔知道你所做部分的原理,而且三個人的相互配合也是很重要的。懂得體諒懂得理解同時對只是追求的渴望和對原理的探討都是很必要的。通過這次課程設(shè)計我充分認(rèn)識到自己所學(xué)到只是皮毛,很多地方當(dāng)要用的時候才發(fā)現(xiàn)知道的太少,真是應(yīng)了那句,書到用時方知少,以后的時間我恐怕要對自己在這方面
22、有更深的要求。XXX 參考文獻(xiàn)1 周立功主編,ARM嵌入式系統(tǒng)基礎(chǔ)教程(第2版)M.北京:北京航天航空大學(xué)出版社,2008.9.2 楊旭強(qiáng)、吳紅星、金釗編著,基于ARM的電動機(jī)控制技術(shù)M.北京:中國電力出版社,2008. 3沈建華.譯.ARM嵌入式系統(tǒng)開發(fā)、軟件設(shè)計與優(yōu)化M.北京:北京航空航天大學(xué)出版社.20054 周潤景、袁偉亭、景曉松編著,Proteus在MCS-51&ARM7系統(tǒng)中的應(yīng)用百例M.北京:電子工業(yè)出版社,2006.10.5 陳伯時主編,電力拖動自動控制系統(tǒng)運(yùn)動控制系統(tǒng)M.北京:機(jī)械工業(yè)出版社,2003.7.基于LPC2124的直流電機(jī)調(diào)速系統(tǒng)源代碼#include confi
23、g.h#define rs (18)#define rw (19)#define en (110)#define busy (1,0, ,0;uint8 enternum=Please set the rpm:;uint8 strcrt5;uint8 strset5;uint8 flag=1;uint8 shutdown=0;uint8 key=16;uint8 keyhit=16;uint8 dirhit=0;uint8 keydown=0;uint8 downindex=0;uint8 dircrt=0;int32 varcrt=0;int32 varset=(int32)0;int32
24、keysum=(int32)0;uint32 rtcounts=0;int32 setcounts=0;int32 deltacounts=0;int32 pwmdata=0;/* 功能:延時*/void delay(int ms) int i; while(ms-) for(i = 0;i=3;i-) k=(int32)pow(10,i); str5-i=(unsigned char)(int32)(t/k)%10)+48); t=(t%k); str3=(unsigned char)(int32)(var)%10)+48);str4=0; /* 名稱:Key_Process()*/void
25、 Key_Process(uint8 num) switch(num) case 0:keyhit=7;break;case 1:keyhit=8;break;case 2:keyhit=9;break;case 3:keyhit=10;dirhit=!dirhit;break;/轉(zhuǎn)向設(shè)置case 4:keyhit=4;break;case 5:keyhit=5;break;case 6:keyhit=6;break;case 7:keyhit=11;if(!flag)varset=(int32)(varset+1);/在監(jiān)視狀態(tài)置直接微調(diào)整轉(zhuǎn)數(shù)else keysum=(int32)(keys
26、um+1);break;/在設(shè)置狀態(tài)調(diào)整keysumcase 8:keyhit=1;break;case 9:keyhit=2;break;case 10:keyhit=3;break;case 11:keyhit=12;if(!flag)varset=(int32)(varset-1);/在監(jiān)視狀態(tài)直接微調(diào)整轉(zhuǎn)數(shù) else keysum=(int32)(keysum-1);break;/在設(shè)置狀態(tài)調(diào)整keysumcase 12:keyhit=13;shutdown=!shutdown;if(shutdown) flag=0;varset=0;else flag=1;keysum=(int32
27、)0;downindex=0;WrOp(0x01);break;/ 強(qiáng)制將電機(jī)重啟為初始值case 13:keyhit=0;break;case 14:keyhit=14;flag=1;keysum=(int32)0;downindex=0;WrOp(0x01);break;/ 進(jìn)入設(shè)置模式case 15:keyhit=15;flag=0; varset=keysum;WrOp(0x01);break;/確定輸入,返回監(jiān)視模式default:break; if(keysum0)keysum=0;if(varset350)varset=350;/ 最大轉(zhuǎn)數(shù)限制void _irq catch_pu
28、lses(void)rtcounts+;T0IR=0x20; /清除中斷標(biāo)志,復(fù)位CR1中斷VICVectAddr=0x00; /通知VIC中斷處理結(jié)束void _irq PI_porcess(void)/ 每 CKTIME ms計算一次占空比 deltacounts=(rtcounts*1000)/CKTIME;/對脈沖速率采樣setcounts=varset*5;/把設(shè)定的轉(zhuǎn)速轉(zhuǎn)換為脈沖速率 P_val=setcounts*P_ref*changeref;if(setcounts-deltacounts)0)if(I_valMAX_PULSES)I_val+;if(setcounts-de
29、ltacounts)(-MAX_PULSES)I_val-;T_val=(I_val*I_ref*changeref*1000)/CKTIME;/平均誤差的累積和T_val=(int32)(T_val/10);/還原changeref的放大倍率if(T_valMAX_PWM)T_val=MAX_PWM;pwmdata=(int32)T_val;varcrt=deltacounts/5;/把采樣的脈沖速率轉(zhuǎn)換為轉(zhuǎn)速pwmdata=(int32)(P_val/10);rtcounts=0; T1IR=0x01; /清除中斷標(biāo)志,復(fù)位MR0中斷VICVectAddr=0x00; /通知VIC中斷處理
30、結(jié)束void capinit(void)T0PR=5; /2個主頻后TC加1T0CCR=(13)|(15); /設(shè)置CAP0.1上升沿捕獲,捕獲后將TC的值放入T0CR1,并產(chǎn)生中斷T0TC=0;T0TCR=0x01; /啟動定時器void time1init(void) T1PR=99; /設(shè)置定時器分頻為25分頻,得Hz T1MCR=0x03; /匹配通道0匹配中斷并復(fù)位T1TC T1MR0=702; /比較值,分母為Fosc,分子/2為0.5秒以此類推,此處為0.01秒,27648/10 T1TCR=0x03; /啟動并復(fù)位T1TC T1TCR=0x01; void pwminit(vo
31、id) PWMPR=0x00; /不分頻,計數(shù)頻率為FpclkPWMMCR=0x02; /設(shè)置PWMMR0匹配時復(fù)位PWMTCPWMMR0=MAX_PWM; /設(shè)置PWM周期PWMMR5=1; /設(shè)置PWM占空比PWMLER=0x21; /PWMMR0,PWMMR5鎖存PWMPCR=113; /允許PWM5輸出,單邊PWMPWMTCR=0x09; /啟動定時器,PWM使能/* 名稱:main()* 功能:顯示文本*/int main(void) PINSEL1=0x;/引腳功能選擇IO0DIR =0xff;/對GPIO的方向設(shè)置,0入1出。changeref=(10*MAX_PWM )/ MAX_PULSES;/changeref被放大;lcd_init();/LCD的初始化Keyboard_Initialize();pwminit(); /PWM初始化capinit(); time1init(
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)審和管理評審培訓(xùn)課件
- 手球指紋課件教學(xué)課件
- 營養(yǎng)門診課件教學(xué)課件
- 第三章第一節(jié)第二課時鐵鹽和亞鐵鹽高一上學(xué)期化學(xué)人教版(2019)必修第一冊
- 護(hù)理學(xué)科建設(shè)競聘
- 2.3.2氣體摩爾體積 課件 高一上學(xué)期化學(xué)人教版(2019)必修第一冊
- 新食品安全責(zé)任制度
- 沉與浮科學(xué)教案反思
- 化學(xué)反應(yīng)速率說課稿
- 好玩的沙子說課稿
- 2023年副主任醫(yī)師(副高)-耳鼻咽喉科學(xué)(副高)歷年考試真題(易錯與難點(diǎn)匯編)帶答案
- 21秋國家開放大學(xué)《公共部門人力資源管理》單元自測題參考答案
- 中藥的外治膏藥
- 小學(xué)數(shù)學(xué)專題講座(課堂PPT)
- 煤礦職業(yè)衛(wèi)生培訓(xùn)課件2023
- 傳染病報告與管理培訓(xùn)
- 丹參培育講義
- 高血壓原因待查疑難病例討論
- 通信工程基站鐵塔監(jiān)理規(guī)劃
- 教師成績進(jìn)步發(fā)言稿3篇
- ISO27001:2022信息安全管理手冊+全套程序文件+表單
評論
0/150
提交評論