嵌入式課程設(shè)計-- pwm-高速gpio口延時方式驅(qū)動直流電機的轉(zhuǎn)動與停轉(zhuǎn)_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  嵌入式原理與應(yīng)用課程設(shè)計報告 </p><p>  PWM-高速GPIO口延時方式驅(qū)動直流電機的轉(zhuǎn)動與停轉(zhuǎn)</p><p>  學(xué) 院: 電氣信息學(xué)院 </p><p>  專 業(yè): 電氣工程及其自動化 </p><p>  日 期: 2012年12月26日

2、 </p><p><b>  目錄 </b></p><p>  一、設(shè)計任務(wù)與要求2</p><p>  二、設(shè)計依據(jù)原則2</p><p>  2.1 GPIO概況2</p><p>  2.2 本設(shè)計使用的高速GPIO控制寄存器3</p>

3、<p>  2.3 GPIO端口寄存器簡介3</p><p>  2.4 數(shù)碼管簡介4</p><p>  三、硬件系統(tǒng)設(shè)計6</p><p>  3.1 設(shè)計電路圖 :6</p><p>  3.2電板焊接圖(焊接過程)7</p><p>  3.3、使用器件明細表:8</p>

4、<p><b>  四、軟件設(shè)計8</b></p><p>  4.1、實現(xiàn)程序:8</p><p>  4.2、調(diào)試燒寫過程:8</p><p>  4.3、課程設(shè)計檢驗測試與實現(xiàn):9</p><p><b>  五、心得體會9</b></p><p>

5、<b>  六、參考文獻9</b></p><p><b>  七、附錄10</b></p><p><b>  附錄110</b></p><p><b>  一、設(shè)計任務(wù)與要求</b></p><p>  設(shè)計一個按鍵、一個蜂鳴器和一個一位7段數(shù)

6、碼管燈指示控制直流電機控制裝置;包括PWM-高速GPIO口延時方式驅(qū)動直流電機的轉(zhuǎn)動與停轉(zhuǎn)。</p><p><b>  二、設(shè)計依據(jù)原則</b></p><p>  2.1 GPIO概況</p><p>  LPC2103的GPIO有兩種模式:高速GPIO和低速GPIO(本設(shè)計使用高速GPIO)。高速GPIO的控制寄存器位于CPU的局部總線上

7、,可進行高速的讀寫操作,而低速GPIO的控制寄存器是掛在VPB總線上。P0口作為高速GPIO使用時,將不能在調(diào)試環(huán)境下觀察GPIO在VPB總線上的寄存器。</p><p>  2.2 本設(shè)計使用的高速GPIO控制寄存器</p><p>  表1 :GPIO控制寄存器</p><p>  2.3 GPIO端口寄存器簡介</p><p>  、

8、GPIO端口0輸出置位寄存器IOSET </p><p>  當引腳配置為GPIO輸出時,該寄存器可以使引腳輸出高電平。向該寄存器寫1,對應(yīng)的引腳將會輸出高電平;向該寄存器寫0,無效。當引腳功能選擇為GPIO輸入或其它功能時,寫IOSET無效。讀該寄存器將返回相應(yīng)的值,此值由以前對寄存器IOSET和IOCLR(或IOPIN)的寫操作決定,此值不會反映外部環(huán)境對引腳的影響。 </p><p>

9、;  、高速GPIO端口0輸出置位字節(jié)和半字寄存器(FIO0SET)</p><p>  高速GPIO除了一個32位的輸出置位寄存器之外,還有4個8位字節(jié)輸出置位寄存器和2個16位半字輸出置位寄存器。它們的功能同32位輸出置位寄存器一樣</p><p>  、GPIO端口0方向寄存器IODIR </p><p>  當引腳選擇GPIO功能時,使用該寄存器可以控制引腳

10、的方向。只有當引腳選擇GPIO功能時,IODIR的設(shè)置才有意義。低速GPIO的方向控制寄存器為IO0DIR,高速GPIO的方向控制寄存器為FIO0DIR </p><p> ?、?、GPIO輸出清零寄存器IOCLR </p><p>  當引腳配置為GPIO輸出模式時,該寄存器可使引腳輸出低電平。向寄存器相應(yīng)位寫1,則對應(yīng)的引腳將輸出低電平并清零IOSET寄存器中相應(yīng)的位;寫0,無效。當引腳

11、配置為GPIO輸入或其它功能時,寫IOCLR無效。 高速GPIO的輸出清零寄存器為FIO0CLR</p><p><b>  2.4 數(shù)碼管簡介</b></p><p>  7段數(shù)碼管其實是八段,有時小數(shù)點沒有使用,所以常說7段,顯示原理是這樣的:數(shù)碼管首先從上到右,到下到左,到中間,最后到小數(shù)點分別標記為a b c d e f g DP八段,其中小數(shù)點位DP為最高位

12、,a段為最低位,要想顯示什么字符只需要使對應(yīng)的段發(fā)光即可。</p><p>  一般的習慣是單片機的端口的最低位接a段,次低位接b段...最高位(如p0.7)接DP,顯示碼從高往低表示為為 DP g f e d c b a 如要顯示“1”,只需要將b、c段點亮即可,若是共陰極,片選是低電平選中,某一段輸出高電平點亮,即顯示碼為00000110 即0x06,其他的依照該方法類推。數(shù)碼管的示意圖如圖1所示</p

13、><p><b>  圖1數(shù)碼管的示意圖</b></p><p>  2.使用PWM控制直流電動機調(diào)速是通過調(diào)節(jié)輸出方波的占空比來實現(xiàn)的,這里采用定頻調(diào)寬法,即方波的周期不變,只改變方波寬度。當PWM輸出占窄比為50%時,電機處于靜止狀態(tài);當占空比小于50%時,電機反轉(zhuǎn);當占空比大于50%時,電機正轉(zhuǎn)。調(diào)節(jié)占空比就可以改變轉(zhuǎn)速。按鍵KEY1和KEY2用來控制占空比進行調(diào)速

14、實驗,按下KEY1時占空比提高10%,按下KEY2時占空比降低10%。</p><p>  直流電動機PWM調(diào)速控制原理圖如圖2所示。其中,LPC2103是直流電動機驅(qū)動芯片,工作電壓為4~20V,最大輸出電流為0.4 A。 </p><p><b>  硬件系統(tǒng)設(shè)計  </b></p><p>  3.1 設(shè)計電路圖 :

15、</p><p>  3.2電板焊接圖(焊接過程)</p><p>  3.3、使用器件明細表:</p><p>  表1 使用器件明細表</p><p><b>  四、軟件設(shè)計</b></p><p><b>  4.1、實現(xiàn)程序:</b></p><

16、p><b>  見附錄1</b></p><p>  4.2、調(diào)試燒寫過程:</p><p>  將計算機USB接口與EasyJTAG-H仿真器相連,然后再將EasyJTAG-H仿真器的JTAG接口連接到所焊的板子,選擇匹配的CPU型號和flash,按運行啟動燒寫,添加完EasyJTAG-H驅(qū)動后,選擇該驅(qū)動程序,關(guān)閉AXD界面,回到ADS中,在正常情況下,點擊

17、Debug仿真后,PC指針會指向中斷向量表的起始處.</p><p>  調(diào)試時若選擇使用DebugInFLASH生成目標,并進行調(diào)試后(使用EasyJTAG-H仿真器),程序即燒寫到片內(nèi)Flash中。將EasyJTAG-H和電源斷開,等待五秒,重新上電,程序?qū)⒚摍C運行,看到LED顯示和直流電機啟停。 </p><p>  使用RelInFlash生成目標時,編譯連接生成的目標代碼會將芯片

18、加密。此時不能再進行調(diào)試,除非使用ISP進行全片擦除,否則是不能再進行調(diào)試的。 </p><p>  4.3、課程設(shè)計檢驗測試與實現(xiàn):</p><p>  功能實現(xiàn),使用PWM-高速GPIO口延時方式驅(qū)動直流電機的轉(zhuǎn)動與停轉(zhuǎn)。并結(jié)合數(shù)碼管顯示,電機循環(huán)啟停,數(shù)碼管循環(huán)顯示從“0”到“9”,“0”時電機啟動,“6”時停止。</p><p><b>  五、心

19、得體會</b></p><p>  《嵌入式系統(tǒng)原理》是一門實踐性較強的課程,為了做好此課程設(shè)計,必須在掌握理論知識的同時,強化實踐,一個人的力量是有限的,要學(xué)會吸取別人的經(jīng)驗,提升自己的能力,在程序編寫上需要更強的耐心,分析錯誤,解決問題。在這個過程中,我們能感受到缺乏知識的失落,成功的興奮,體會到此設(shè)計的重要意義!</p><p>  同時,在設(shè)計過程中遇到了許多的困難和障

20、礙,特別感謝劉敦放老師的諄諄教導(dǎo),細心引領(lǐng),對我們無私的指導(dǎo)和幫助,給我們從毫無頭緒中的雜亂中理出設(shè)計的主干,再次表示衷心的感謝。</p><p><b>  六、參考文獻 </b></p><p>  1)《嵌入式系統(tǒng)原理與應(yīng)用技術(shù)》北京航空航天大學(xué)出版社教材 袁智勇著</p><p>  2)《EasyARM2103教材》廣州周立功單片機

21、發(fā)展有限公司編</p><p>  3)直流電機dynamo-0 程序 指導(dǎo)教師劉敦放</p><p><b>  七、附錄</b></p><p><b>  附錄1</b></p><p>  #include "config.h"</p><p>

22、;  #define LED0 1 << 0</p><p>  #define LED1 1 << 1</p><p>  #define LED2 1 << 2</p><p>  #define LED3 1 << 3</p><p>  #define LED4 1 << 4

23、</p><p>  #define LED5 1 << 5</p><p>  #define LED6 1 << 6</p><p>  #define LED7 1 << 7</p><p>  void DelayNS (uint32 uiDly) </p><p><

24、b>  { </b></p><p>  uint32 i; </p><p>  for (; uiDly > 0; uiDly--)</p><p><b>  { </b></p><p>  for(i = 0; i < 50000; i++); </p><p&

25、gt;<b>  } </b></p><p><b>  } </b></p><p>  void Timer1 (void)</p><p><b>  {</b></p><p>  T1TCR = 0x02; /* 定時器0復(fù)位 */</p><p

26、>  T1PR = 0; /* 不設(shè)時鐘分頻 */</p><p>  PWM1CON= 0x0C; /* 使能PWM輸出 */</p><p>  T1MCR = 0x02; /* 設(shè)置T0MR0匹配后復(fù)位T0TC */</p><p>  T1MR0 = Fpclk / 2000; /* 設(shè)置PWM輸出的周期 */</p><p>

27、  T1MR2 = ((Fpclk / 2000) / 25)*13; /* 設(shè)置PWM1.2輸出占空比為50% */</p><p>  //T1MR3 = ((Fpclk / 2000) / 4) * 3; /* 設(shè)置PWM1.3輸出占空比為25% */</p><p>  T1TCR = 0x01; /* 啟動定時器0 */</p><p><b>

28、  }</b></p><p>  int main (void)</p><p><b>  {</b></p><p>  PINSEL0 = PINSEL0 & 0x0000/* 選擇P0.0~P0.6的GPIO功能 */</p><p>  SCS = 0x01; /* 設(shè)定為高速GPIO模式

29、 */ </p><p>  PINSEL1 = (PINSEL1 & (~(0x03 << 6))) | (0x02 << 6); /* 選擇MAT1.2輸出 */</p><p>  FIO0DIR = LED0|LED1|LED2|LED3|LED4|LED5|LED6|LED7; /* 設(shè)置輸出 */</p><p>  FI

30、O0SET = LED0|LED1|LED2|LED3|LED4|LED5|LED6|LED7; /* 設(shè)置輸出高電平 */</p><p>  while(1);{</p><p><b>  /*顯示0*/</b></p><p>  Timer1 (void);/*啟動電機*/</p><p>  FIO0CLR

31、= LED0|LED1|LED2|LED3|LED4|LED5|LED7;</p><p>  FIO0SET = LED6;</p><p>  DelayNS (200);</p><p><b>  /*顯示1*/</b></p><p>  FIO0CLR = LED1|LED2;</p><

32、p>  FIO0SET = LED0||LED3|LED4|LED5|LED6|LED7;</p><p>  DelayNS (200);</p><p><b>  /*顯示2*/</b></p><p>  FIO0CLR =LED0| LED1|LED3|LED4|LED6;</p><p>  FIO0

33、SET =LED2 |LED5; </p><p>  DelayNS (200);</p><p><b>  /*顯示3*/</b></p><p>  FIO0CLR = LED0|LED1|LED2|LED3|LED6; </p><p>  FIO0SET = LED4|LED5;</p><

34、;p>  DelayNS (200);</p><p><b>  /*顯示4*/</b></p><p>  FIO0CLR = LED1|LED2|LED5|LED6; </p><p>  FIO0SET = LED0|LED3|LED4;</p><p>  DelayNS (200);</p>

35、<p><b>  /*顯示5*/</b></p><p>  FIO0CLR = LED0|LED2|LED3|LED5|LED6;; </p><p>  FIO0SET = LED1|LED4;</p><p>  DelayNS (200);</p><p><b>  /*顯示6*/&l

36、t;/b></p><p>  PINSEL1 = (PINSEL1 & (~(0x00 << 6))) | (0x00 << 6); /*停止電機*/</p><p>  FIO0CLR = LED0|LED2|LED3|LED4|LED5|LED6; </p><p>  FIO0SET =LED1 ;</p>

37、<p>  DelayNS (200);</p><p><b>  /*顯示7*/</b></p><p>  FIO0CLR = LED0|LED1|LED2; </p><p>  FIO0SET = LED3|LED4|LED5|LED6;</p><p>  DelayNS (200);</p

38、><p><b>  /*顯示8*/</b></p><p>  FIO0CLR = LED0|LED1|LED2|LED3|LED4|LED5; </p><p>  DelayNS (200);</p><p><b>  /*顯示9*/</b></p><p>  FIO0

39、CLR = LED0|LED1|LED2|LED3|LED5|LED6; </p><p>  FIO0SET = LED4;</p><p>  DelayNS (200);</p><p>  }/* 當顯示0時,同時電機轉(zhuǎn)動,顯示6時,電機停止,循環(huán)啟停*/</p><p><b>  return 0;</b>&

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論