arm課程設(shè)計(jì)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  目錄</b></p><p>  摘要………………………………………………………………….3</p><p>  關(guān)鍵詞……………………………………………………………….4</p><p>  引言 ……………………………………………………………….4</p><p>  原理與總體方案

2、 ……………………………………………….5</p><p>  軟件設(shè)計(jì)……………………………………………………………...7</p><p>  仿真設(shè)計(jì)…………………………………………………………….11</p><p>  硬件設(shè)計(jì)…………………………………………………………….14</p><p>  調(diào)試 ……………………

3、……………………………………......14</p><p>  結(jié)束語(yǔ)………………………………………………………………...16</p><p>  10. 參考文獻(xiàn)………………………………………………………….17</p><p><b>  摘要:</b></p><p>  由于網(wǎng)絡(luò)與通信技術(shù)的發(fā)展,嵌入式系統(tǒng)

4、在經(jīng)歷了近20年的發(fā)展歷程后,又進(jìn)入了一個(gè)新的歷史發(fā)展階段,即從普遍的低端應(yīng)用進(jìn)入一個(gè)高、低端并行發(fā)展,并且不斷提升低端應(yīng)用技術(shù)水平的時(shí)代,其標(biāo)志是32位MCU的發(fā)展。LPC2000系列ARM7微控制器包含有六路PWM波產(chǎn)生通道;在顯示方面著多利用LED和LCD, LCD 的構(gòu)造是在兩片平行的玻璃當(dāng)中放置液態(tài)的晶體,兩片玻璃中間有許多垂直和水平的細(xì)小電線,透過(guò)通電與否來(lái)控制桿狀水晶分子改變方向,將光線折射出來(lái)產(chǎn)生畫(huà)面;我們此次課程設(shè)計(jì)的

5、作品主要運(yùn)用了LPC2000系列的微控制器芯片、產(chǎn)生T=10ms的PWM波,在指定的引腳輸出,并將其周期,占空比的改變?cè)贚CD屏上顯示。利用按鍵K1改變其占空比高電平的寬度,每按一次K1,T增加1ms。高電平在1ms~9ms循環(huán)改變。使用Proteus 7.5 professional和keil進(jìn)行程序編寫(xiě),利用ADS 和Magic ARM2200教學(xué)實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)進(jìn)行硬件仿真。經(jīng)過(guò)軟硬件調(diào)試和測(cè)試,產(chǎn)生了以10ms為周期的PWM波并能通

6、過(guò)按鍵改變其高電平。實(shí)踐不僅證明了設(shè)計(jì)方法的正確性,更增加了實(shí)踐操作的經(jīng)驗(yàn)。Abst</p><p>  ? due to network and communication technology development, the embedded system after nearly 20 years of development, and to enter into a new historical sta

7、ge of development, that is, from the low end of general application into a high, the low end of the parallel development, and constantly improve the low end of the application of the technical level of the era, the sign

8、is 32 bit MCU development. LPC2000 series ARM7 micro controller contains six PWM waves produce channel; In the more shows usi</p><p>  關(guān)鍵詞:LPC2000 ,周期 ,占空比,按鍵,PWM</p><p><b>  3 引言</b&

9、gt;</p><p>  LPC2000系列微處理器工作頻率為60MHz,采用基于ARMTDMI內(nèi)核的32位RISC。LPC2000的外設(shè)接口非常豐富,包括UART、SPI、I2C、CAN、ADC、 PWM、RTC等。</p><p>  這一系列微控制器LPC2114/2124/2119/2129/2194、LPC2210/2212/2214、LPC2290 /2292/2294借助片

10、上存儲(chǔ)器加載模塊實(shí)現(xiàn)了“零等待訪問(wèn)”高速閃存功能,提高了指令執(zhí)行的效率。在高性能低功耗的基礎(chǔ)上提供了增強(qiáng)的通信功能和片上代碼保護(hù)機(jī)制。由于內(nèi)置了寬范圍的串行通信接口,它們也非常適用于通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、嵌入式軟調(diào)制解調(diào)器等。6通道的PWM更能用于復(fù)雜的馬達(dá)控制應(yīng)用。 </p><p>  LPC2000系列微控制器能夠?qū)崿F(xiàn)零等待訪問(wèn)的高速閃存,這主要?dú)w功于片上的存儲(chǔ)器加速模塊。圖2為存儲(chǔ)器加速模塊的結(jié)構(gòu)框圖。1

11、28位寬度的閃存陣列通過(guò)單獨(dú)的局部總線與處理器接口,每周期可為ARM內(nèi)核提供四條32位指令。這使得MCU無(wú)需經(jīng)過(guò)等待狀態(tài)就可直接從閃存上執(zhí)行指令,從而消除了一般閃存讀取時(shí)的等待時(shí)間。為了解決指令序列的變化,指令和數(shù)據(jù)的不同處理帶來(lái)的等待時(shí)間,模塊內(nèi)部實(shí)現(xiàn)了預(yù)取緩沖器、避免數(shù)據(jù)讀/寫(xiě)打亂地址序列的數(shù)據(jù)旁路和跳轉(zhuǎn)跟蹤緩沖器三個(gè)功能塊的聯(lián)合工作,并用兩組128位寬度的存儲(chǔ)器來(lái)進(jìn)行并行訪問(wèn),消除延時(shí)。</p><p> 

12、 存儲(chǔ)器加速模塊的作用取決于系統(tǒng)時(shí)鐘的大小。LPC2000系列片上閃存的訪問(wèn)時(shí)間為50nS,對(duì)于系統(tǒng)時(shí)鐘不高于20MHZ的應(yīng)用,在1個(gè)周期內(nèi)就可將閃存的內(nèi)容讀出,此時(shí)沒(méi)必要使用存儲(chǔ)器加速模塊。時(shí)鐘頻率越高,當(dāng)直接執(zhí)行閃存中的代碼時(shí),系統(tǒng)性能受影響越大,此時(shí)使能存儲(chǔ)器加速模塊,可以得到接近4倍速度的加速,真正實(shí)現(xiàn)零等待高速閃存。由于LPC2000可直接從閃存執(zhí)行指令,無(wú)需引導(dǎo)期間將代碼傳送到SRAM,這不僅省掉了耗時(shí)又耗能的系統(tǒng)啟動(dòng)步驟,

13、還節(jié)省了昂貴的SRAM。</p><p>  對(duì)片內(nèi)閃存的編程可通過(guò)幾種方法來(lái)實(shí)現(xiàn):通過(guò)內(nèi)置的串行JTAG 接口,通過(guò)串口進(jìn)行在系統(tǒng)編程(ISP),或通過(guò)在應(yīng)用編程(IAP)。</p><p>  4. 原理與總體方案</p><p><b>  4.1 GPIO</b></p><p>  LPC2000系列ARM的G

14、PIO具有如下特性:</p><p>  可以獨(dú)立控制每個(gè)GPIO口的方向(輸入/輸出模式);</p><p>  可以獨(dú)立設(shè)置每個(gè)GPIO的輸出狀態(tài)(高/低電平);</p><p>  所有GPIO口在復(fù)位后默認(rèn)為輸入狀態(tài)。</p><p>  每個(gè)作為GPIO功能的引腳受到四個(gè)寄存器控制,分別為控制方向的IOxDIR、控制輸出電平狀態(tài)的I

15、OxSET和IOxCLR、反映引腳電平狀態(tài)的IOxPIN。這四個(gè)寄存器構(gòu)成一組,而一組寄存器控制著一個(gè)端口(P0、P1、P2或P3)。</p><p><b>  注意事項(xiàng):</b></p><p>  引腳設(shè)置為輸出方式時(shí),輸出狀態(tài)由IOxSET和IOxCLR中最后操作的寄存器決定。</p><p>  LPC2000系列ARM大部分的I/O

16、引腳為推挽方式輸出,但是具有總線功能的I/O引腳為開(kāi)漏輸出(P0.2/3和P0.11/14)。使用這些開(kāi)漏輸出的引腳作為GPIO功能,并用于高電平輸出或者引腳狀態(tài)輸入時(shí),要接上拉電阻才能正常使用。</p><p>  推挽輸出的I/O引腳正常拉出/灌入電流均為4mA,短時(shí)間極限值為40mA。</p><p>  復(fù)位后,大部分引腳默認(rèn)作為GPIO功能,并且均為輸入狀態(tài)。但是,有部分引腳在復(fù)

17、位后默認(rèn)作為第二功能(如:P0.27~P0.30在復(fù)位后默認(rèn)為A/D輸入引腳)。</p><p>  LPC2210/2220/2212/2214中的P2.30和P2.31比較特殊,無(wú)論它們作為什么功能,第二功能的A/D輸入始終有效,當(dāng)它們連接高于3.3V的電平時(shí),將影響其它A/D轉(zhuǎn)換的結(jié)果。</p><p>  在LPC2000系列中,可以直接產(chǎn)生PWM波,而且可以靈活的產(chǎn)生單邊的或雙邊

18、的PWM波,所謂單邊,指的就是在每個(gè)周期的開(kāi)始,該P(yáng)WM波就升高電平,因此只需要控制下降沿的時(shí)間就可以,因此成為單邊;而雙邊的含義是上升沿和下降沿都可以得到控制,顯然,這種PWM波需要更多的控制寄存器,典型的波形如下:</p><p>  在LPC2000系列中,產(chǎn)生這種PWM的方法如下:</p><p> ?。?) 首先必須關(guān)閉相應(yīng)的定時(shí)器,并且將定時(shí)器復(fù)位</p>

19、;<p> ?。?) 設(shè)置預(yù)分頻器的數(shù)值,但是一般并不需要使用預(yù)分頻</p><p> ?。?) 設(shè)置當(dāng)PWM產(chǎn)生用到的TIMER計(jì)數(shù)達(dá)到匹配寄存器的數(shù)值后,進(jìn)行何種操作,如果是連續(xù)的產(chǎn)生PWM波,那么一般是選擇在這個(gè)時(shí)候?qū)a(chǎn)生PWM波的TIMER復(fù)位,進(jìn)而進(jìn)行下一個(gè)周期的計(jì)數(shù)</p><p> ?。?) 設(shè)置PWM的周期與占空比,這里注意

20、,在LPC中,PWMMR0是控制著整個(gè)PWM產(chǎn)生的周期的,其余的PWMMR1~6都是用來(lái)控制占空比的,而非控制周期,這個(gè)寄存器與其它的并不一樣</p><p> ?。?) 對(duì)以上的設(shè)置進(jìn)行鎖存,就是將PWMMR0決定的周期,和其它寄存器決定的占空比進(jìn)行鎖存</p><p> ?。?) 設(shè)置允許相應(yīng)的PWM引腳輸出PWM波,同時(shí)設(shè)置是單邊PWM還是雙邊PWM波,值得注

21、意的是,“允許”并不代表就是啟動(dòng)了PWM輸出,PWM的輸出是隨著TIMER的啟動(dòng)而啟動(dòng)的</p><p> ?。?) 啟動(dòng)用于PWM波的TIMER,開(kāi)始輸出</p><p><b>  4.2 總體方案</b></p><p>  首先在keil軟件中編寫(xiě)程序,應(yīng)用PWM專用的標(biāo)準(zhǔn)定時(shí)器,設(shè)定相應(yīng)的寄存器,并通過(guò)PWMRO來(lái)控制PW

22、M的周期,,設(shè)置所存并保證在每次案件按下的時(shí)候其占空比可以更新,通過(guò)匹配功能及一些控制電路來(lái)產(chǎn)生單邊沿控制的PWM波,LCD1062顯示周期,和高電平的寬度,通過(guò)按鍵查詢改變高電平的寬度。應(yīng)用Proteus軟件仿真,仿真實(shí)現(xiàn)后下載程序到Magic ARM2200教學(xué)實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)硬件仿真。</p><p><b>  5. 軟件設(shè)計(jì) </b></p><p><b

23、>  圖2 PWM初始化</b></p><p>  圖1 主函數(shù)流程圖</p><p>  主函數(shù)流程如圖1,首先對(duì)GPIO初始化,設(shè)置P0.20腳為GPIO功能,并設(shè)置為輸入,再對(duì)LCD初始化,若用LCD1602,應(yīng)對(duì)LCD所連接的引腳設(shè)置為GPIO功能。應(yīng)用PWM專用的標(biāo)準(zhǔn)定時(shí)器,設(shè)定相應(yīng)的寄存器,并通過(guò)PWMRO來(lái)產(chǎn)生PWM波,設(shè)置1ms時(shí)PWMLER更新一次占

24、空比,按鍵采用查詢按鍵方式,當(dāng)沒(méi)有按鍵時(shí)循環(huán)讀P0.20的電平,由于按鍵接有上拉電阻,在沒(méi)有按鍵按下的情況下讀到的電平狀態(tài)為高,當(dāng)有按鍵按下時(shí)通過(guò)控制定時(shí)器PWMLER寄存器來(lái)改變占空比的大小從而改變輸出PWM波的高電平。</p><p>  定時(shí)器初始化流程圖如圖2所示,首先將MRO匹配復(fù)位PWM定時(shí)器,預(yù)分頻計(jì)數(shù)器設(shè)置為零分頻,PWM匹配控制寄存器設(shè)置為匹配復(fù)位,以輸出固定周期的PWM波,由于采用0分頻,輸出

25、PWM波為10ms,所以計(jì)數(shù)器上限值設(shè)置為14.000*1000000/100。</p><p><b>  部分程序如下</b></p><p>  #include "config.h"</p><p>  #define KEY1 (1<<20) /*P0.20引腳連接KEY1*/&l

26、t;/p><p>  函數(shù)名稱: WaitKey()</p><p>  功能: 等待一個(gè)有效按鍵,延時(shí)去抖功能</p><p>  函數(shù)說(shuō)明:當(dāng)沒(méi)有按鍵按下時(shí),一直讀P0.20的電平狀態(tài),當(dāng)有按鍵按下時(shí),延時(shí)一段時(shí)間,再次判斷P0.20的電平狀態(tài),若仍為低電平,則可確定按鍵按下,再讀取P0.20的電平狀態(tài),等待按鍵彈起。</p><p><

27、;b>  */</b></p><p>  void WaitKey(void)</p><p><b>  { </b></p><p><b>  uint32 i;</b></p><p><b>  while(1)</b></p>&l

28、t;p>  { while((IO0PIN&KEY1)!=0); //等待KEY1鍵按下 </p><p>  for(i=0;i<Fpclk/100;i++); //延時(shí)去抖 </p><p>  if((IO0PIN&KEY1)==0)</p><p><b>  

29、break;</b></p><p><b>  } </b></p><p>  while((IO0PIN&KEY1)==0); //等待KEY1鍵放開(kāi)</p><p><b>  } </b></p><p><b>  /*</b>&l

30、t;/p><p>  函數(shù)名稱: PWMInit</p><p>  功能描述: PWM初始化代碼,在需要的地方調(diào)用,根據(jù)需要改變</p><p><b>  */</b></p><p>  void PWM_INIT(void)</p><p><b>  {</b><

31、/p><p>  PWMPR=0x00; //不分頻,計(jì)數(shù)頻率為Fpclk</p><p>  PWMMCR=0x02; //設(shè)置PWMMR0匹配時(shí)復(fù)位T0TC,</p><p>  PWMMR0=14.000*1000000/100; //設(shè)置PWM周期為10ms</p

32、><p>  PWMMR5=14000; //設(shè)置PWM占空比</p><p>  PWMLER=0x21; //PWMMR0,PWMMR5鎖存</p><p>  PWMPCR=0x2000; //允許PWM5輸出,單邊PWM</p>&l

33、t;p>  PWMTCR=0x09; //啟動(dòng)定時(shí)器,PWM使能</p><p><b>  }}</b></p><p>  /****************************************************************</p><p>  名稱: main()

34、</p><p>  *功能: 使用PWM5輸出占空比可調(diào)的PWM波形,并在LCD上面顯示</p><p>  ******************************************************/</p><p>  int main (void)</p><p><b>  {</b><

35、/p><p>  INT8U err, *pt, i, k= 10; </p><p>  INT32U pwmduty; //PWM占空比控制變量</p><p>  INT16U x = 0, y;</p><p>  INT8U (*p)[63] = a;</p><p&g

36、t;  GUI_Initialize(); // 初始化LCM </p><p>  GUI_SetColor(BLUE, WHITE); // 設(shè)置前景色和背景色</p><p>  for(err = 0; err < 2; err++)</p><p><b>  {</b></p><p&

37、gt;  GUI_LoadPic(24*err + 10, 0, *p, 24, 21);</p><p><b>  p++;</b></p><p><b>  }</b></p><p>  Dispnum(0, 10);//顯示周期默認(rèn)信息</p><p>  for(err = 2; er

38、r < 4; err++)</p><p><b>  {</b></p><p>  GUI_LoadPic(24*(err-2) + 10, 26, *p, 24, 21);</p><p><b>  p++;</b></p><p><b>  }</b><

39、/p><p>  Dispnum(1, 1);//顯示周期默認(rèn)信息</p><p>  PINSEL1=0x00000400; //設(shè)置PWM5連接到P0.21引腳</p><p>  PINSEL0=0X00000000;</p><p>  PWM_INIT();

40、 //PWM初始化</p><p>  pwmduty=14000;</p><p>  PWMMR0=14.000*1000000/100; //設(shè)置PWM周期</p><p><b>  i=1;</b></p><p><b>  while(1) </b&

41、gt;</p><p><b>  { </b></p><p>  PWMMR5=pwmduty; //設(shè)置PWM占空比</p><p>  PWMLER=0x21; //PWMMR0,PWMMR6鎖存,更新PWM占空比</p><

42、;p>  WaitKey(); //等待按鍵</p><p>  i++; </p><p><b>  if(i==10)</b></p><p><b>  i=1;</b></p><p>  Dispnum(1, i

43、);//顯示高電平時(shí)間 </p><p>  pwmduty+=14000; //改變PWM占空比控制變量</p><p>  if(pwmduty>=140000)</p><p>  pwmduty=14000;</p><p><b>  }</b>

44、</p><p>  return 0;</p><p><b>  } </b></p><p><b>  6. 仿真設(shè)計(jì)</b></p><p>  6.1 Proteus軟件</p><p>  Proteus 是英國(guó)Labcenter

45、公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路。</p><p><b>  特點(diǎn):</b></p><p>  用戶可以實(shí)時(shí)采用諸如RAM,ROM,鍵盤(pán),馬達(dá),LED,LCD,AD/DA,部分SPI器件,部分IIC器件??梢苑抡?1系列、AVR、PIC、ARM、等常用主流單片機(jī)。還可以直接在基于

46、原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運(yùn)行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,Proteus建立了完備的電子設(shè)計(jì)開(kāi)發(fā)環(huán)境。</p><p><b>  6.2 仿真電路</b></p><p>  整體仿真電路如圖3,該仿真的原理圖運(yùn)用了一個(gè)LPC2138芯片為主體,以液晶和按鍵的控制實(shí)現(xiàn)的人機(jī)交互,實(shí)現(xiàn)按鍵每按下一次,就改變一次波形的

47、周期并顯示在液晶LCD液晶顯示屏上。采用LPC2138芯片作為主控器,擴(kuò)展LCD接口圖形液晶模塊顯示屏作為出設(shè)備,以輸出改變的周期數(shù),另外,示波器作為波形顯示,顯示出改變周期頻率后的波形圖。此外,系統(tǒng)還擴(kuò)展了LCD作為字庫(kù)字模數(shù)據(jù)顯示芯片,將數(shù)字模擬示波器顯示的字模以相應(yīng)的代碼放在程序里并顯示。</p><p><b>  圖3</b></p><p>  液晶模塊電

48、路如圖4所示。采用圖形液晶顯示模塊LCD240128作為顯示設(shè)備。其內(nèi)含有中、英文以及數(shù)字字庫(kù),配合字庫(kù)存儲(chǔ)芯片可以實(shí)現(xiàn)24×24中文漢字的輸入。它利用拼音輸入系統(tǒng)軟件部分來(lái)實(shí)現(xiàn)對(duì)數(shù)字,周期的輸入。LCD的主要任務(wù)是將鍵盤(pán)輸入的數(shù)字序列轉(zhuǎn)換成漢字。 它將鍵盤(pán)輸入的數(shù)字序列轉(zhuǎn)換為編碼,根據(jù)編碼轉(zhuǎn)換為該顯示所需的16進(jìn)制數(shù),之后放在程序中運(yùn)行顯示。</p><p>  該顯示屏是將它的數(shù)據(jù)輸入接口D0~D7

49、連接到芯片的P0.0~P0.7,復(fù)位RS口,訪問(wèn)控制接口RW,使能端E分別連接到芯片P0.8~P0.10口,以實(shí)現(xiàn)上述的顯示功能。</p><p><b>  圖4</b></p><p>  示波器是用于顯示與觸發(fā)時(shí)間相關(guān)的波形采樣內(nèi)容,當(dāng)每次實(shí)施觸發(fā)時(shí)它都會(huì)顯示采樣波形。</p><p><b>  圖5</b><

50、;/p><p>  仿真結(jié)果如圖6所示,當(dāng)按下按鍵時(shí),示波器顯示PWM波的高電平加1ms,同時(shí)LCD顯示高電平加1ms,和周期10ms。</p><p><b>  圖6 仿真結(jié)果</b></p><p><b>  7. 硬件設(shè)計(jì)</b></p><p>  硬件電路采用Magic ARM2200教學(xué)

51、實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)</p><p><b>  圖7硬件電路</b></p><p><b>  8. 調(diào)試</b></p><p><b>  8.1 軟件調(diào)試</b></p><p>  主要運(yùn)用keil軟件進(jìn)行軟件調(diào)試,通過(guò)主函數(shù)調(diào)用子函數(shù)實(shí)驗(yàn)設(shè)計(jì)要求的功能,利用仿真軟件觀

52、察現(xiàn)象。Keil軟件可以通過(guò)軟件窗口的模擬監(jiān)測(cè)輸出信號(hào)的高低電平以及單片機(jī)相關(guān)端口的變化。常用的調(diào)試按鈕:Reset 相當(dāng)于單片機(jī)最簡(jiǎn),系統(tǒng)的復(fù)位按鈕,按下后,所有的系統(tǒng)狀態(tài)將變成初始全速運(yùn)行,相當(dāng)于單片機(jī)的通電執(zhí)行;step into 逐語(yǔ)句;進(jìn)入并單步執(zhí)行;單步執(zhí)行step over;逐過(guò)程;step out跳出。</p><p>  軟件的調(diào)試主要是修改程序語(yǔ)法錯(cuò)誤,通過(guò)觀察各寄存器的變化,與輸入輸出口的變

53、化也可以發(fā)現(xiàn)邏輯錯(cuò)誤。語(yǔ)法錯(cuò)誤可以通過(guò)下方的提示改正,而邏輯錯(cuò)誤則需通過(guò)keil和Proteus仿真改正。</p><p>  讀取按鍵值時(shí),若將程序中的變量設(shè)置為16位或8位與IO0PIN相與則不能正確讀取到按鍵值,此處應(yīng)將變量改為32位。LCD1602若不添加讀忙函數(shù),則應(yīng)在LCD子函數(shù)中加入適當(dāng)?shù)难訒r(shí),否則LCD的讀寫(xiě)速度跟不上芯片的速度,特別是在寫(xiě)指令時(shí),應(yīng)加入較大的延時(shí)。</p><

54、p>  8.2 軟件電路仿真調(diào)試</p><p>  按照程序,在Proteus軟件中連接電路,選用LPC2138芯片,P0.21連接示波器,P0.20連接按鍵并接上上拉電阻,選用LCD240128作LCD顯示模塊,將keil中生成的.HEX連接到芯片中。運(yùn)行程序,觀察示波器與LCD的顯示結(jié)果。</p><p>  軟件電路仿真中,LCD的所有端口都應(yīng)接上上拉電阻,否則在接上示波器時(shí)

55、,LCD不能正確顯示。用Proteus仿真LCD1602時(shí),不能在程序中檢測(cè)“忙”信號(hào),否則會(huì)進(jìn)入死循環(huán)。</p><p>  8.3 硬件仿真調(diào)試</p><p>  Magic ARM2200通過(guò)并口與電腦連接,用ARM Developer Suite v1.2軟件編寫(xiě)程序,并下載到開(kāi)發(fā)平臺(tái)。由于開(kāi)發(fā)平臺(tái)應(yīng)用的5.2寸的彩色液晶屏,在程序中則應(yīng)添加該顯示屏的底層驅(qū)動(dòng),調(diào)用相應(yīng)的顯示函數(shù)

56、實(shí)現(xiàn)lcd顯示。用示波器與開(kāi)發(fā)平臺(tái)的P0.21腳連接,通過(guò)按鍵改變PWM的占空比,觀察示波器與LCD顯示,并在LCD上顯示周期。</p><p><b>  圖8波形圖</b></p><p><b>  圖9 LCD顯示</b></p><p><b>  8.4分析</b></p>

57、<p>  通過(guò)設(shè)置PWM5為單邊沿控制PWM輸出,PWM周期由匹配寄存器0控制,當(dāng)匹配寄存器0匹配時(shí),PWM5輸出高電平,PWM占空比由匹配寄存器5控制,當(dāng)匹配寄存器5匹配時(shí),PWM5輸出低電平。然后當(dāng)檢測(cè)到按鍵按下的時(shí)候PWM鎖存器更新一次,得到改變的高電平,并顯示在LCD上和示波器上,每按下一次按鍵高電平就改變一次,并在1ms--9ms循環(huán)改變。</p><p><b>  9.結(jié)束語(yǔ)

58、</b></p><p>  在這次三周的嵌入式課程設(shè)計(jì)中,經(jīng)過(guò)我們我組成員的共同努力,并在老師的細(xì)心指導(dǎo)下,我們成功實(shí)現(xiàn)了“通過(guò)按鍵改變PWM波的高電平,使其在1ms--9ms之間循環(huán)改變,并在LCD上顯示高電平的改變和周期值”的課程設(shè)計(jì)要求。</p><p>  在這過(guò)程中,我們都收獲頗豐,從上學(xué)期學(xué)習(xí)《ARM嵌入式系統(tǒng)》這門課程開(kāi)始,到這學(xué)期進(jìn)行嵌入式課程設(shè)計(jì)結(jié)束,我們將

59、以往書(shū)本上的知識(shí)成功應(yīng)用到實(shí)踐中去了,并且我們也對(duì)keil、proteus、ADS等軟件進(jìn)一步熟悉,掌握得更加牢固,對(duì)LPC2000系列ARM7的芯片有所了解,并可以初步的去運(yùn)用它做一些小的程序編寫(xiě);同時(shí)也發(fā)現(xiàn)個(gè)人能力還不足,還需更加努力地學(xué)習(xí),特別是在編程方面還需要提高和進(jìn)步,希望自己能再接再厲,不斷提高個(gè)人能力。</p><p><b>  10.參考文獻(xiàn)</b></p>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論