計算機控制技術(shù)課程設(shè)計---直流電機pwm調(diào)速系統(tǒng)_第1頁
已閱讀1頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  計算機控制技術(shù)課程設(shè)計</p><p>  題 目:直流電機PWM調(diào)速系統(tǒng)</p><p>  專 業(yè): 08自動化01班</p><p><b>  姓 名: </b></p><p><b>  學(xué) 號: </b></p><p><b

2、>  指導(dǎo)老師 : </b></p><p>  2011年12月27日</p><p><b>  目 錄</b></p><p>  目 錄- 1 -</p><p>  摘 要- 2 -</p><p><b>  1、設(shè)計目的1</b>&

3、lt;/p><p>  2、設(shè)計功能、要求1</p><p><b>  3、硬件設(shè)計1</b></p><p>  3.1、原理圖設(shè)計1</p><p>  3.2、器件清單2</p><p>  3.3、各元器件作用說明2</p><p>  3.4、工作過程說明

4、2</p><p><b>  4、軟件設(shè)計3</b></p><p>  4.1、設(shè)計思路3</p><p>  4.2、工作原理圖4</p><p><b>  4.3、流程圖4</b></p><p>  4.4、程序清單4</p><p

5、><b>  5、仿真結(jié)果9</b></p><p>  5.1、仿真環(huán)境說明9</p><p>  5.2、程序編譯結(jié)果9</p><p>  5.3、軟件仿真結(jié)果9</p><p>  5.4、仿真結(jié)果說明12</p><p><b>  6、設(shè)計總結(jié)12</

6、b></p><p><b>  7、參考文獻12</b></p><p><b>  摘 要</b></p><p>  本設(shè)計主要是利用AT89C51單片機設(shè)計直流電機PWM調(diào)速系統(tǒng)(脈寬調(diào)制的全稱為:Pulse WidthModulator),系統(tǒng)同時帶有模擬測速功能。利用匯編語言編寫程序,通過Proteu

7、s軟件進行仿真驗證設(shè)計。設(shè)計中還用到了外部晶振、六位LED數(shù)碼管作為速度顯示,外接四個按鍵作為功能設(shè)定。按下啟動按鍵進入啟動顯示、調(diào)速系統(tǒng)進入等待狀態(tài),按下正轉(zhuǎn)功能鍵,電機正轉(zhuǎn);按下反轉(zhuǎn)功能鍵,電機反轉(zhuǎn);按下停止功能鍵,電機由自身阻力減速到停止,這時會停止顯示,顯示屏熄滅,系統(tǒng)進入等待狀態(tài),如果按下啟動按鍵將重新啟動。經(jīng)過一系列的測試驗證,設(shè)計能滿足各項要求,經(jīng)過長時間的運行測試程序都能正常地運行,沒出現(xiàn)錯誤??蓱?yīng)在實際中應(yīng)用,能滿足日

8、常直流電機的調(diào)速。</p><p>  關(guān)鍵字 單片機;直流電機;PWM調(diào)速;</p><p>  直流電機PWM調(diào)速系統(tǒng)</p><p><b>  1、設(shè)計目的</b></p><p>  利用單片機設(shè)計直流電機PWM調(diào)速系統(tǒng),加深對以單片機為代表的計算機控制技術(shù)的熟悉程度,把學(xué)習(xí)到的理論知識應(yīng)用到實際中,把單片機

9、的知識系統(tǒng)地聯(lián)系起來,增強動手能力,為以后的設(shè)計、工作做準備。也是對這學(xué)期計算機控制的學(xué)習(xí)的一次檢驗。</p><p><b>  2、設(shè)計功能、要求</b></p><p>  占空比采用可調(diào)電阻輸入模擬電壓,或撥碼開關(guān)的方式輸入;驅(qū)動電路可用達林頓晶體管驅(qū)動器ULN2803;檢測電機轉(zhuǎn)速,并顯示(用壓控振蕩器(可用555電路構(gòu)成)來模擬直流電機的運行, 對壓控振蕩

10、器輸出的脈沖進行計數(shù),可換算出轉(zhuǎn)速);在Proteus下仿真。</p><p><b>  3、硬件設(shè)計</b></p><p><b>  3.1、原理圖設(shè)計</b></p><p>  原理圖的設(shè)計主要的問題是一些器件的選用,其中以振蕩器的選用最為繁瑣,因為對很多器件不時十分熟悉,接硬件電路的時候會遇到很多的小問題,一

11、般只能從網(wǎng)上查找答案,或者是不斷地嘗試,嘗試每個接口應(yīng)該怎樣接,結(jié)合平時的經(jīng)驗以及器件的一些共通點。硬件原理圖如下:</p><p><b>  3.2、器件清單</b></p><p>  3.3、各元器件作用說明</p><p>  電容C2, C3以及晶振CRYSTAL用來為單片機提供外部晶振。</p><p> 

12、 撥碼開關(guān)用于輸入占空比,可以提供8位二進制精度的輸入。</p><p>  電機驅(qū)動電路上的晶體管用于控制電機的正反轉(zhuǎn)通電方向。</p><p>  顯示屏D1用于顯示模擬測量的電機轉(zhuǎn)速,與占空比輸入成一定的關(guān)系。</p><p>  “啟動”按鍵用來啟動系統(tǒng),使系統(tǒng)進入等待狀態(tài),顯示屏顯示“0000P”,等待“正轉(zhuǎn)”或者“反轉(zhuǎn)”按鍵按下;按下“正轉(zhuǎn)”按鍵后,電機

13、開始以占空比設(shè)定的正脈沖時間進行正向轉(zhuǎn)動,占空比設(shè)定越大轉(zhuǎn)速越快,反之,則越?。话聪隆胺崔D(zhuǎn)”即電機反方向轉(zhuǎn)動。 “停止”按鍵用來停止電機的通電以及顯示屏的顯示,按下“停止”按鍵后,電機將按自身慣性滑行,顯示屏則熄滅,無顯示內(nèi)容。</p><p>  3.4、工作過程說明</p><p>  正轉(zhuǎn):啟動系統(tǒng),按下“啟動”按鍵后,顯示屏顯示“0000P”,系統(tǒng)處于等待狀態(tài),電機未通電;按下“正

14、轉(zhuǎn)”按鍵后,電機開始正向轉(zhuǎn)動,顯示屏也會顯示采集到的脈沖對應(yīng)的轉(zhuǎn)速,但由于電機啟動到設(shè)定的轉(zhuǎn)速需要一定的時間,所以電機上自帶的轉(zhuǎn)速表并不會馬上顯示到設(shè)定速度,但顯示屏由于是測量輸出脈沖的,所以一開始顯示的就是設(shè)定速度。</p><p>  反轉(zhuǎn):啟動系統(tǒng),按下“啟動”按鍵后,顯示屏顯示“0000P”,系統(tǒng)處于等待狀態(tài),電機未通電;按下“反轉(zhuǎn)”按鍵后,電機開始反方向轉(zhuǎn)動,情況基本上和正轉(zhuǎn)的一樣,就是電機速度顯示會是

15、負的。</p><p>  停止:系統(tǒng)處于“等待”、“正轉(zhuǎn)”、“反轉(zhuǎn)”狀態(tài)時按下“停止”按鍵,電機即停止通電、顯示屏熄滅,電機自由滑動到停止。</p><p>  占空比調(diào)整:只需將撥碼開關(guān)撥到高電平或者低電平一側(cè)上,即能組成8位二進制精度的占空比輸入,調(diào)節(jié)可在任何時候,只要啟動電機即可生效。</p><p><b>  4、軟件設(shè)計</b>&

16、lt;/p><p><b>  4.1、設(shè)計思路</b></p><p>  總思路是利用功能性子程序的方法,將系統(tǒng)分開不同的功能,分別利用子程序來完成,這樣可以方便調(diào)試,思路也可以很清晰。</p><p>  主程序主要是判斷“啟動”、“正轉(zhuǎn)”、“反轉(zhuǎn)”、“停止”功能鍵的按下與否,其它的事務(wù)調(diào)用子程序完成即可,主程序大部分都是在調(diào)用子程序。<

17、;/p><p>  初始化子程序完成初始化功能,將各數(shù)據(jù)寄存器清零,將顯示碼表的首地址賦給DPTR指針,開定時器0、外中斷1以及計數(shù)器1,設(shè)定相應(yīng)的設(shè)置。</p><p>  速度脈沖采集子程序完成速度的采集,此程序是參考書本上第九章的速度測量表設(shè)計的,通過探測P3.3的脈沖周期,在一個周期內(nèi)讀入外中斷1口上的脈沖個數(shù),用來作為速度顯示。</p><p>  速度計算子

18、程序完成速度數(shù)據(jù)的存儲以及0速度時的賦值,原本想利用一除法程序來完成速度的計算的,但由于比較復(fù)雜,而且時間上也不允許,所以最后唯有用比較簡單的模擬方法模擬速度的測量,其原理是一樣的,只是沒對采集到的脈沖進行處理,直接用來顯示,基本能滿足模擬的要求。</p><p>  顯示子程序?qū)崿F(xiàn)速度數(shù)值的顯示,由于是動態(tài)顯示,所以要不斷地執(zhí)行顯示程序,而且很容易就會出現(xiàn)閃爍,一開始想用靜態(tài)顯示的,但由于靜態(tài)顯示用到的鎖存器較

19、多,而且對動態(tài)顯示已經(jīng)非常熟悉,所以最后就用了動態(tài)顯示,也是對以前學(xué)單片機的復(fù)習(xí)吧。</p><p>  定時器0中斷子程序起到最主要的作用——電機控制脈沖的輸出,定時時間為1ms,將這1ms分成255個時間段,按占空比設(shè)定的比值輸出相應(yīng)時間的正脈沖、負脈沖,控制電機的速度,由于電機的速度只是與占空比有關(guān)系,定時器的定時時間長短并不影響電機轉(zhuǎn)速的控制。</p><p>  延時子程序用于顯

20、示子程序的位與位之間的顯示延時,讓每一位都顯示一定的時間,以讓人眼能察覺。</p><p><b>  4.2、工作原理圖</b></p><p><b>  4.3、流程圖</b></p><p>  啟動鍵按下? </p>&

21、lt;p>  是 </p><p>  正轉(zhuǎn)按鍵按下? </p><p>  否

22、 </p><p>  反轉(zhuǎn)按鍵按下? </p><p>  否

23、 </p><p>  停止按鍵按下? </p><p>  否 </p><p><b>  4.4、程序

24、清單</b></p><p>  SPEED1 EQU 0031H ;速度高位</p><p>  SPEED EQU 0032H ;速度低位</p><p>  DUTY EQU 0033H ;占空比存儲數(shù)據(jù),正脈沖時間</p><p>  DUTYN EQU 0034H

25、;占空比存儲數(shù)據(jù),負脈沖時間</p><p>  DISDATA EQU 0035H ;高八位顯示數(shù)存儲</p><p>  DISDATA2 EQU 0036H ;低八位顯示數(shù)存儲</p><p>  ORG 0000H</p><p>  AJMP MAIN</p><p>  OR

26、G 000BH ;定時器0中斷入口</p><p>  AJMP SBR1</p><p>  ;====================主程序========================================</p><p>  ORG 0100H</p><p>  MAIN: CL

27、R EA ;停止按鍵按下后關(guān)所有中斷</p><p>  MOV P3,#0FFH ;輸出停止控制字</p><p>  MOV P2,#0</p><p>  WAIT: JNB P2.4,WAIT ;等待啟動按鍵按下</p><p>  BEGIN: ACALL START

28、 ;初始化</p><p>  LOOP: DJNZ 37H,SPE</p><p>  MOV 37H,#50</p><p>  ACALL GET ;速度脈沖采集</p><p>  ACALL CAL ;速度計算</p><p>  SPE:

29、ACALL DIS ;速度顯示</p><p>  JNB P2.5,M1 ;正轉(zhuǎn)按鍵轉(zhuǎn)正轉(zhuǎn)</p><p>  SETB 01H ;置正轉(zhuǎn)標志位</p><p>  CLR 02H ;清反轉(zhuǎn)標志位</p><p>  AJMP HERE</p>

30、<p>  M1: JNB P2.6,HERE ;</p><p>  SETB 02H ;置反轉(zhuǎn)標志位</p><p>  CLR 01H ;清正轉(zhuǎn)標志位</p><p>  HERE: JB P2.7,MAIN ;停止按鍵按下,返回判斷啟動是否按下</p>

31、<p>  AJMP LOOP</p><p>  ;==========初始化子程序=============================================</p><p>  START: MOV DPTR,#TAB ;</p><p>  MOV DUTY,#0</p><p>  MOV DUT

32、YN,#0</p><p><b>  MOV A,#0</b></p><p>  MOV R0,#0</p><p>  MOV R1,#0</p><p>  MOV R2,#0</p><p>  MOV R3,#0</p><p>  MOV R4,#

33、0</p><p>  MOV 20H,#0</p><p>  MOV 37H,#50</p><p>  MOV SPEED,#0</p><p>  MOV SPEED1,#0</p><p>  MOV DISDATA,#0</p><p>  MOV DISDATA2,#0

34、</p><p>  MOV IE,#82H ;定時器0允許,中斷允許</p><p>  MOV TMOD,#11010001B ;設(shè)定時器0為定時,計數(shù)器1計數(shù),門控位為1</p><p>  MOV TL0,#0CH ;定時1ms</p><p>  MOV TH0,#0FEH</p

35、><p><b>  SETB TR0</b></p><p><b>  SETB PT0</b></p><p>  SETB ET1 ;開定時器1</p><p>  SETB PT1 ;設(shè)優(yōu)先級</p><p><

36、b>  RET</b></p><p>  ;===========速度脈沖采集子程序=======================================</p><p>  GET: MOV TL1,#0</p><p>  MOV TH1,#0</p><p>  JB P3.3,GE1<

37、/p><p><b>  AJMP GRE</b></p><p>  GE1: JB P3.3,GE1 ;</p><p>  SETB TR1 ;</p><p>  GE2: JNB P3.3,GE2</p><p>  GE3: JB

38、 P3.3,GE3</p><p>  CLR TR1 ;</p><p>  MOV SPEED,TL1 ;低位</p><p>  MOV SPEED1,TH1 ;高位 </p><p><b>  GRE: RET</b></p>&

39、lt;p>  ;==========速度計算子程序============================================</p><p>  CAL: MOV R6,SPEED ;速度脈沖數(shù)低位</p><p>  MOV R7,SPEED1 ;速度脈沖數(shù)高位</p><p>  CJNE R6,#0,CAL

40、3 ;速度為零時</p><p>  CAL3: CJNE R7,#0,CAL1 ;</p><p>  MOV DISDATA,#0 ;存儲顯示高位,賦零</p><p>  MOV DISDATA2,#0 ;存顯示低位</p><p><b>  AJMP CRE</b>&l

41、t;/p><p>  CAL1: MOV DISDATA,SPEED1 ;存儲顯示高位</p><p>  MOV DISDATA2,SPEED ;存顯示低位 </p><p><b>  CRE: RET</b></p><p>  ;=============顯示子程序===========

42、=================================</p><p>  DIS: MOV R2,#8 ;位選碼</p><p>  MOV A,DISDATA</p><p>  SWAP A ;顯示高八位數(shù)據(jù)的高四位</p><p>  ANL A,#0FH</p>

43、;<p>  MOVC A,@A+DPTR</p><p>  MOV P2,R2</p><p><b>  MOV P0,A</b></p><p>  ACALL DELAY</p><p><b>  INC R2</b></p><p>  MO

44、V A,DISDATA ;顯示高八位的低四位</p><p>  ANL A,#0FH</p><p>  MOVC A,@A+DPTR</p><p>  MOV P2,R2</p><p><b>  MOV P0,A</b></p><p>  ACALL DELAY<

45、/p><p><b>  INC R2</b></p><p>  MOV A,DISDATA2 ;</p><p>  SWAP A ;顯示低八位數(shù)據(jù)的高四位</p><p>  ANL A,#0FH</p><p>  MOVC A,@A+DPTR</p&

46、gt;<p>  MOV P2,R2</p><p><b>  MOV P0,A</b></p><p>  ACALL DELAY</p><p><b>  INC R2</b></p><p>  MOV A,DISDATA2 ;顯示低八位的低四位</p&

47、gt;<p>  ANL A,#0FH</p><p>  MOVC A,@A+DPTR</p><p>  MOV P2,R2</p><p><b>  MOV P0,A</b></p><p>  ACALL DELAY</p><p><b>  INC R

48、2</b></p><p>  MOV P2,R2</p><p>  MOV P0,#73H ;顯示P</p><p>  ACALL DELAY</p><p>  DRE: RET</p><p>  ;=============定時器0中斷子程序================

49、====================== </p><p>  SBR1: JB 01H,RIGHT ;正轉(zhuǎn)標志位置一轉(zhuǎn)到正轉(zhuǎn)</p><p>  JB 02H,LEFT</p><p>  AJMP SRE ;如果正反轉(zhuǎn)都沒按下,即無動作返回</p><p>  RIGHT: MOV A,R0 ;

50、正轉(zhuǎn)</p><p><b>  JZ RIS1</b></p><p>  SETB P3.0 ;輸出反轉(zhuǎn)正脈沖控制字</p><p><b>  CLR P3.1</b></p><p>  DJNZ R0,SRE ;定時次數(shù)未夠轉(zhuǎn)到S2</p><

51、p>  RIS1: MOV A,R1</p><p><b>  JZ RS5</b></p><p>  SETB P3.1 ;輸出反轉(zhuǎn)負脈沖控制字 </p><p>  DJNZ R1,SRE ;輸出負脈沖次數(shù)未夠轉(zhuǎn)S2繼續(xù)輸出,夠即重新賦值到R0,R1</p><p> 

52、 RS5: MOV P1,#0FFH</p><p><b>  MOV A,P1</b></p><p>  CJNE A,DUTY,RS4 ;判斷讀入數(shù)據(jù)與上一次是否相同</p><p><b>  AJMP RS3</b></p><p>  RS4: MOV DUTY,A

53、 ;存正脈沖數(shù)值</p><p>  MOV A,#0FFH</p><p><b>  CLR C</b></p><p>  SUBB A,DUTY</p><p>  MOV DUTYN,A ;存負脈沖數(shù)值 </p><p>  RS3: MOV R0,DUTY&l

54、t;/p><p>  MOV R1,DUTYN</p><p><b>  AJMP SRE</b></p><p>  LEFT: MOV A,R0 ;反轉(zhuǎn)</p><p><b>  JZ LS1</b></p><p>  SETB P3.1

55、 ;輸出反轉(zhuǎn)正脈沖控制字</p><p><b>  CLR P3.0</b></p><p>  DJNZ R0,SRE ;定時次數(shù)未夠轉(zhuǎn)到S2</p><p>  LS1: MOV A,R1</p><p><b>  JZ LS5</b></p><p

56、>  SETB P3.0 ;輸出反轉(zhuǎn)負脈沖控制字 </p><p>  DJNZ R1,SRE ;輸出負脈沖次數(shù)未夠轉(zhuǎn)S2繼續(xù)輸出,夠即重新賦值到R0,R1</p><p>  LS5: MOV P1,#0FFH</p><p><b>  MOV A,P1</b></p><p&

57、gt;  CJNE A,DUTY,LS4 ;判斷讀入數(shù)據(jù)與上一次是否相同</p><p><b>  AJMP LS3</b></p><p>  LS4: MOV DUTY,A ;存正脈沖數(shù)值</p><p>  MOV A,#0FFH</p><p><b>  CLR C</b&g

58、t;</p><p>  SUBB A,DUTY</p><p>  MOV DUTYN,A ;存負脈沖數(shù)值 </p><p>  LS3: MOV R0,DUTY</p><p>  MOV R1,DUTYN</p><p>  SRE: MOV TL0,#0CH ;重新賦初值,定時1m

59、s</p><p>  MOV TH0,#0FEH</p><p><b>  RETI</b></p><p>  ;=========延時子程序================================================</p><p>  DELAY:MOV 60H,#30</p>

60、;<p>  D2: MOV 61H,#20</p><p>  D1: DJNZ 61H,D1</p><p>  DJNZ 60H,D2</p><p><b>  RET</b></p><p>  ;=============共陽八段顯示碼=========================

61、================</p><p><b>  TAB:</b></p><p>  DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ; [0-7]共陰</p><p>  DB 7FH,6FH,77H,7FH,39H,3FH,79H,71H

62、 ; [8-F]</p><p>  DB 73H ; P</p><p><b>  END</b></p><p><b>  5、仿真結(jié)果</b></p><p>  5.1、仿真環(huán)境說明&

63、lt;/p><p>  仿真環(huán)境為:Microsoft windows XP操作系統(tǒng)下利用PROTEUS軟件中的智能原理圖輸入系統(tǒng)進行仿真。</p><p>  5.2、程序編譯結(jié)果</p><p>  程序編譯直接利用PROTEUS軟件自帶的編譯器,編譯結(jié)果如下圖:</p><p>  5.3、軟件仿真結(jié)果</p><p&g

64、t;  在單片機中裝入編譯好的程序后開始仿真。 </p><p><b>  啟動狀態(tài):</b></p><p><b>  正轉(zhuǎn)狀態(tài):</b></p><p><b>  正轉(zhuǎn)狀態(tài)</b></p><p><b>  反轉(zhuǎn)狀態(tài):</b></p>

65、;<p><b>  停止狀態(tài):</b></p><p>  5.4、仿真結(jié)果說明</p><p>  按鍵的識別需要一定的時間,尤其是“正轉(zhuǎn)”、“反轉(zhuǎn)”、“停止”三個按鍵,需要等待系統(tǒng)識別后再松開,否則可能會導(dǎo)致不能實現(xiàn)該功能。</p><p>  由于顯示屏沒設(shè)定符號顯示標志,所以正反轉(zhuǎn)的轉(zhuǎn)速顯示都是一個樣,當然,可以通過電機

66、自帶的轉(zhuǎn)速表去驗證正反轉(zhuǎn)功能是否實現(xiàn)。</p><p><b>  6、設(shè)計總結(jié)</b></p><p>  本次設(shè)計是對這一學(xué)期來微型計算機控制技術(shù)的學(xué)習(xí)的一次總體應(yīng)用,本次設(shè)計的實用性很強,設(shè)計成果只需稍作完善就可以在生活實際中應(yīng)用,當然社會上這方面的技術(shù)已經(jīng)很成熟。本設(shè)計使我獲益良多,對以后在實際中的應(yīng)用提供了很好的經(jīng)驗。</p><p>

67、;<b>  7、參考文獻</b></p><p>  [1]周美娟、肖來勝.《單片機技術(shù)及系統(tǒng)設(shè)計》 [M].清華大學(xué)出版社.2007.</p><p>  [2]潘新民、王燕芳.《微型計算機控制技術(shù)》 [M].電子工業(yè)出版社.2010.</p><p>  [3]于海生等.《微型計算機控制技術(shù)》[M].清華大學(xué)出版社.1999.3<

溫馨提示

  • 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

提交評論