




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目錄1. 摘要.32. 關鍵詞.43. 引言 .44. 原理與總體方案 .55. 軟件設計.76. 仿真設計.117. 硬件設計.148. 調試 .149. 結束語.1610. 參考文獻.171. 摘要:由于網絡與通信技術的發展,嵌入式系統在經歷了近20年的發展歷程后,又進入了一個新的歷史發展階段,即從普遍的低端應用進入一個高、低端并行發展,并且不斷提升低端應用技術水平的時代,其標志是32位mcu的發展。lpc2000系列arm7微控制器包含有六路pwm波產生通道;在顯示方面著多利用led和lcd, lcd 的構造是在兩片平行的玻璃當中放置液態的晶體,兩片玻璃中間有許多垂直和水平的細小電線,透
2、過通電與否來控制桿狀水晶分子改變方向,將光線折射出來產生畫面;我們此次課程設計的作品主要運用了lpc2000系列的微控制器芯片、產生t=10ms的pwm波,在指定的引腳輸出,并將其周期,占空比的改變在lcd屏上顯示。利用按鍵k1改變其占空比高電平的寬度,每按一次k1,t增加1ms。高電平在1ms9ms循環改變。使用proteus 7.5 professional和keil進行程序編寫,利用ads 和magic arm2200教學實驗開發平臺進行硬件仿真。經過軟硬件調試和測試,產生了以10ms為周期的pwm波并能通過按鍵改變其高電平。實踐不僅證明了設計方法的正確性,更增加了實踐操作的經驗。abs
3、tract: due to network and communication technology development, the embedded system after nearly 20 years of development, and to enter into a new historical stage of development, that is, from the low end of general application into a high, the low end of the parallel development, and constantly imp
4、rove the low end of the application of the technical level of the era, the sign is 32 bit mcu development. lpc2000 series arm7 micro controller contains six pwm waves produce channel; in the more shows using led and lcd, lcd structure is in two pieces of parallel of liquid crystal glass place, two p
5、ieces of glass is among many vertical and horizontal small wire, electricity or not to control rods through crystal molecules to change direction, will light reflection out produce images; we of the curriculum design of the main works using a lpc2000 series of micro controller chip, produces t = 10
6、ms pwm wave, in the designated pin output, and the cycle, occupies emptiescompared to change in the lcd display. use button to change the triassic-paleogene occupies emptiescompared to the width of the high level, each as a k1, t + 1 ms. high level in 1 ms 9 ms cycle changes. use proteus 7.5 profess
7、ional and keil for programming, and ads and magic arm2200 teaching experiment development platform for hardware simulation. after the software and hardware commissioning and testing, produced with 10 ms cycle of pwm waves and can effectively change through the high level. practice not only proved th
8、e correctness of design method, more added to practice the operation experience. 2. 關鍵詞:lpc2000 ,周期 ,占空比,按鍵,pwm3 引言lpc2000系列微處理器工作頻率為60mhz,采用基于armtdmi內核的32位risc。lpc2000的外設接口非常豐富,包括uart、spi、i2c、can、adc、 pwm、rtc等。這一系列微控制器lpc2114/2124/2119/2129/2194、lpc2210/2212/2214、lpc2290 /2292/2294借助片上存儲器加載模塊實現了“零等
9、待訪問”高速閃存功能,提高了指令執行的效率。在高性能低功耗的基礎上提供了增強的通信功能和片上代碼保護機制。由于內置了寬范圍的串行通信接口,它們也非常適用于通信網關、協議轉換器、嵌入式軟調制解調器等。6通道的pwm更能用于復雜的馬達控制應用。 lpc2000系列微控制器能夠實現零等待訪問的高速閃存,這主要歸功于片上的存儲器加速模塊。圖2為存儲器加速模塊的結構框圖。128位寬度的閃存陣列通過單獨的局部總線與處理器接口,每周期可為arm內核提供四條32位指令。這使得mcu無需經過等待狀態就可直接從閃存上執行指令,從而消除了一般閃存讀取時的等待時間。為了解決指令序列的變化,指令和數據的不同處理帶來的等
10、待時間,模塊內部實現了預取緩沖器、避免數據讀/寫打亂地址序列的數據旁路和跳轉跟蹤緩沖器三個功能塊的聯合工作,并用兩組128位寬度的存儲器來進行并行訪問,消除延時。存儲器加速模塊的作用取決于系統時鐘的大小。lpc2000系列片上閃存的訪問時間為50ns,對于系統時鐘不高于20mhz的應用,在1個周期內就可將閃存的內容讀出,此時沒必要使用存儲器加速模塊。時鐘頻率越高,當直接執行閃存中的代碼時,系統性能受影響越大,此時使能存儲器加速模塊,可以得到接近4倍速度的加速,真正實現零等待高速閃存。由于lpc2000可直接從閃存執行指令,無需引導期間將代碼傳送到sram,這不僅省掉了耗時又耗能的系統啟動步驟,
11、還節省了昂貴的sram。對片內閃存的編程可通過幾種方法來實現:通過內置的串行jtag 接口,通過串口進行在系統編程(isp),或通過在應用編程(iap)。4. 原理與總體方案4.1 gpiolpc2000系列arm的gpio具有如下特性:a、 可以獨立控制每個gpio口的方向(輸入/輸出模式);b、 可以獨立設置每個gpio的輸出狀態(高/低電平);c、 所有gpio口在復位后默認為輸入狀態。每個作為gpio功能的引腳受到四個寄存器控制,分別為控制方向的ioxdir、控制輸出電平狀態的ioxset和ioxclr、反映引腳電平狀態的ioxpin。這四個寄存器構成一組,而一組寄存器控制著一個端口(
12、p0、p1、p2或p3)。注意事項:引腳設置為輸出方式時,輸出狀態由ioxset和ioxclr中最后操作的寄存器決定。lpc2000系列arm大部分的i/o引腳為推挽方式輸出,但是具有總線功能的i/o引腳為開漏輸出(p0.2/3和p0.11/14)。使用這些開漏輸出的引腳作為gpio功能,并用于高電平輸出或者引腳狀態輸入時,要接上拉電阻才能正常使用。推挽輸出的i/o引腳正常拉出/灌入電流均為4ma,短時間極限值為40ma。復位后,大部分引腳默認作為gpio功能,并且均為輸入狀態。但是,有部分引腳在復位后默認作為第二功能(如:p0.27p0.30在復位后默認為a/d輸入引腳)。lpc2210/2
13、220/2212/2214中的p2.30和p2.31比較特殊,無論它們作為什么功能,第二功能的a/d輸入始終有效,當它們連接高于3.3v的電平時,將影響其它a/d轉換的結果。 在lpc2000系列中,可以直接產生pwm波,而且可以靈活的產生單邊的或雙邊的pwm波,所謂單邊,指的就是在每個周期的開始,該pwm波就升高電平,因此只需要控制下降沿的時間就可以,因此成為單邊;而雙邊的含義是上升沿和下降沿都可以得到控制,顯然,這種pwm波需要更多的控制寄存器,典型的波形如下: 在lpc2000系列中,產生這種pwm的方法如下:(1) 首先必須關閉相應的定時器,并且將定時器復位(2) 設置預分頻器的數值,
14、但是一般并不需要使用預分頻(3) 設置當pwm產生用到的timer計數達到匹配寄存器的數值后,進行何種操作,如果是連續的產生pwm波,那么一般是選擇在這個時候將產生pwm波的timer復位,進而進行下一個周期的計數(4) 設置pwm的周期與占空比,這里注意,在lpc中,pwmmr0是控制著整個pwm產生的周期的,其余的pwmmr16都是用來控制占空比的,而非控制周期,這個寄存器與其它的并不一樣(5) 對以上的設置進行鎖存,就是將pwmmr0決定的周期,和其它寄存器決定的占空比進行鎖存(6) 設置允許相應的pwm引腳輸出pwm波,同時設置是單邊pwm還是雙邊pwm波,值得注意的是,“允許”并不代
15、表就是啟動了pwm輸出,pwm的輸出是隨著timer的啟動而啟動的(7) 啟動用于pwm波的timer,開始輸出4.2 總體方案首先在keil軟件中編寫程序,應用pwm專用的標準定時器,設定相應的寄存器,并通過pwmro來控制pwm的周期,設置所存并保證在每次案件按下的時候其占空比可以更新,通過匹配功能及一些控制電路來產生單邊沿控制的pwm波,lcd1062顯示周期,和高電平的寬度,通過按鍵查詢改變高電平的寬度。應用proteus軟件仿真,仿真實現后下載程序到magic arm2200教學實驗開發平臺硬件仿真。gpio初始化5. 軟件設計 mro匹配復位pwm定時器lcd初始化設置單邊沿控制通
16、過寄存器設置周期與占空比pwm定時器端口初始化 按鍵按下?yesnopwm匹配所存高電平寬度加1ms啟動pwm的定時器寬度大于 9msnoh=1ms周期t=10yes 圖2 pwm初始化圖1 主函數流程圖主函數流程如圖1,首先對gpio初始化,設置p0.20腳為gpio功能,并設置為輸入,再對lcd初始化,若用lcd1602,應對lcd所連接的引腳設置為gpio功能。應用pwm專用的標準定時器,設定相應的寄存器,并通過pwmro來產生pwm波,設置1ms時pwmler更新一次占空比,按鍵采用查詢按鍵方式,當沒有按鍵時循環讀p0.20的電平,由于按鍵接有上拉電阻,在沒有按鍵按下的情況下讀到的電平
17、狀態為高,當有按鍵按下時通過控制定時器pwmler寄存器來改變占空比的大小從而改變輸出pwm波的高電平。定時器初始化流程圖如圖2所示,首先將mro匹配復位pwm定時器,預分頻計數器設置為零分頻,pwm匹配控制寄存器設置為匹配復位,以輸出固定周期的pwm波,由于采用0分頻,輸出pwm波為10ms,所以計數器上限值設置為14.000*1000000/100。部分程序如下#include "config.h"#define key1 (1<<20) /*p0.20引腳連接key1*/ 函數名稱: waitkey()功能: 等待一個有效按鍵,延時去抖功能函數說明:當沒有
18、按鍵按下時,一直讀p0.20的電平狀態,當有按鍵按下時,延時一段時間,再次判斷p0.20的電平狀態,若仍為低電平,則可確定按鍵按下,再讀取p0.20的電平狀態,等待按鍵彈起。*/void waitkey(void) uint32 i; while(1) while(io0pin&key1)!=0); /等待key1鍵按下 for(i=0;i<fpclk/100;i+); /延時去抖 if(io0pin&key1)=0) break; while(io0pin&key1)=0); /等待key1鍵放開 /*函數名稱: pwminit功能描述: pwm初始化代碼,在需
19、要的地方調用,根據需要改變*/void pwm_init(void) pwmpr=0x00; /不分頻,計數頻率為fpclk pwmmcr=0x02; /設置pwmmr0匹配時復位t0tc, pwmmr0=14.000*1000000/100; /設置pwm周期為10ms pwmmr5=14000; /設置pwm占空比 pwmler=0x21; /pwmmr0,pwmmr5鎖存 pwmpcr=0x2000; /允許pwm5輸出,單邊pwm pwmtcr=0x09; /啟動定時器,pwm使能 /*名稱: main()*功能: 使用pwm5輸出占空比可調的pwm波形,并在lcd上面顯示*/int
20、main (void)int8u err, *pt, i, k= 10; int32u pwmduty; /pwm占空比控制變量 int16u x = 0, y; int8u (*p)63 = a;gui_initialize(); / 初始化lcm gui_setcolor(blue, white); / 設置前景色和背景色 for(err = 0; err < 2; err+) gui_loadpic(24*err + 10, 0, *p, 24, 21); p+; dispnum(0, 10);/顯示周期默認信息 for(err = 2; err < 4; err+) gui
21、_loadpic(24*(err-2) + 10, 26, *p, 24, 21); p+; dispnum(1, 1);/顯示周期默認信息pinsel1=0x00000400; /設置pwm5連接到p0.21引腳pinsel0=0x00000000;pwm_init(); /pwm初始化pwmduty=14000;pwmmr0=14.000*1000000/100; /設置pwm周期 i=1; while(1) pwmmr5=pwmduty; /設置pwm占空比 pwmler=0x21; /pwmmr0,pwmmr6鎖存,更新pwm占空比 waitkey(); /等待按鍵 i+; if(i=
22、10) i=1;dispnum(1, i);/顯示高電平時間 pwmduty+=14000; /改變pwm占空比控制變量 if(pwmduty>=140000) pwmduty=14000; return 0; 6. 仿真設計6.1 proteus軟件proteus 是英國labcenter公司開發的電路分析與實物仿真軟件。它運行于windows操作系統上,可以仿真、分析(spice)各種模擬器件和集成電路。特點:用戶可以實時采用諸如ram,rom,鍵盤,馬達,led,lcd,ad/da,部分spi器件,部分iic器件。可以仿真51系列、avr、pic、arm、等常用主流單片機。還可以直
23、接在基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運行后輸入輸出的效果。配合系統配置的虛擬邏輯分析儀、示波器等,proteus建立了完備的電子設計開發環境。6.2 仿真電路整體仿真電路如圖3,該仿真的原理圖運用了一個lpc2138芯片為主體,以液晶和按鍵的控制實現的人機交互,實現按鍵每按下一次,就改變一次波形的周期并顯示在液晶lcd液晶顯示屏上。采用lpc2138芯片作為主控器,擴展lcd接口圖形液晶模塊顯示屏作為出設備,以輸出改變的周期數,另外,示波器作為波形顯示,顯示出改變周期頻率后的波形圖。此外,系統還擴展了lcd作為字庫字模數據顯示芯片,將數字模擬示波器顯示的字模以相應的代碼放在
24、程序里并顯示。圖3液晶模塊電路如圖4所示。采用圖形液晶顯示模塊lcd240128作為顯示設備。其內含有中、英文以及數字字庫,配合字庫存儲芯片可以實現24×24中文漢字的輸入。它利用拼音輸入系統軟件部分來實現對數字,周期的輸入。lcd的主要任務是將鍵盤輸入的數字序列轉換成漢字。 它將鍵盤輸入的數字序列轉換為編碼,根據編碼轉換為該顯示所需的16進制數,之后放在程序中運行顯示。該顯示屏是將它的數據輸入接口d0d7連接到芯片的p0.0p0.7,復位rs口,訪問控制接口rw,使能端e分別連接到芯片p0.8p0.10口,以實現上述的顯示功能。 圖4 示波器是用于顯示與觸發時間相關的波形采樣內容,
25、當每次實施觸發時它都會顯示采樣波形。圖5仿真結果如圖6所示,當按下按鍵時,示波器顯示pwm波的高電平加1ms,同時lcd顯示高電平加1ms,和周期10ms。圖6 仿真結果7. 硬件設計硬件電路采用magic arm2200教學實驗開發平臺圖7硬件電路8. 調試8.1 軟件調試主要運用keil軟件進行軟件調試,通過主函數調用子函數實驗設計要求的功能,利用仿真軟件觀察現象。keil軟件可以通過軟件窗口的模擬監測輸出信號的高低電平以及單片機相關端口的變化。常用的調試按鈕:reset 相當于單片機最簡,系統的復位按鈕,按下后,所有的系統狀態將變成初始全速運行,相當于單片機的通電執行;step into
26、 逐語句;進入并單步執行;單步執行step over;逐過程;step out跳出。軟件的調試主要是修改程序語法錯誤,通過觀察各寄存器的變化,與輸入輸出口的變化也可以發現邏輯錯誤。語法錯誤可以通過下方的提示改正,而邏輯錯誤則需通過keil和proteus仿真改正。讀取按鍵值時,若將程序中的變量設置為16位或8位與io0pin相與則不能正確讀取到按鍵值,此處應將變量改為32位。lcd1602若不添加讀忙函數,則應在lcd子函數中加入適當的延時,否則lcd的讀寫速度跟不上芯片的速度,特別是在寫指令時,應加入較大的延時。8.2 軟件電路仿真調試按照程序,在proteus軟件中連接電路,選用lpc2138芯片,p0.21連接示波器,p0.20連接按鍵并接上上拉電阻,選用lcd240128作lcd顯示模塊,將keil中生成的.hex連接到芯片中。運行程序,觀察示波器與lcd
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家庭裝修監理服務合同(2篇)
- 游泳救生員原則與規范試題及答案
- 確保成功農業植保員試題及答案
- 2024年植保員考試理論與實踐結合試題及答案
- 農作物種子推廣策略試題及答案
- 2025年中國切藥機市場調查研究報告
- 2025年中國其他三極管市場調查研究報告
- 2025年中國光電培增器市場調查研究報告
- 2025年中國低壓閥門市場調查研究報告
- 2025年中國書夾市場調查研究報告
- 2025屆新高考生物沖刺易錯知識點梳理
- 2025森林撫育技術規程
- 《孔雀魚組》課件
- 2024年河南質量工程職業學院高職單招職業技能測驗歷年參考題庫(頻考版)含答案解析
- 《習近平法治思想概論(第二版)》 課件 11.第十一章 堅持依法治國、依法執政、依法行政共同推進法治國家、法治政府、法治社會一體建設
- 2024版編劇網絡劇保密及收益分配協議3篇
- 2025年道德與法治二輪專題復習課件:生命安全與健康教育
- 2024年全國“紀檢監察”業務相關知識考試題庫(附含答案)
- 湖南長沙長郡中學2025屆高考英語二模試卷含解析
- 科技改變生活英文課件
- DB22JT 143-2015 住宅工程質量常見問題防控技術規程
評論
0/150
提交評論