單片機課程設計(優秀)_第1頁
單片機課程設計(優秀)_第2頁
單片機課程設計(優秀)_第3頁
單片機課程設計(優秀)_第4頁
單片機課程設計(優秀)_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目錄第一章 課程設計的目的和要求11.1課程設計的目的和要求 11.2課程設計預備知識 11.3課題設計的任務 4第二章總體設計 5第三章硬件設計 5第四章軟件設計 8第五章 系統調試第六章 結束語參考文獻參考文獻 附錄 1 系統工作原理圖第一章 課程設計的目的和要求1.1 課程設計的目的和要求一、課程設計目的單片機應用基礎課程設計是學好本門課程的又一重要實踐性教學環節, 課程設計的目的就是配合本課程的教學和平時實驗,以達到鞏固消化課程的內 容,進一步加強綜合應用能力及單片機應用系統開發和設計能力的訓練, 啟發創 新思維,使之具有獨立單片機產品和科研的基本技能, 是以培養學生綜合運用所 學知識

2、的過程,是知識轉化為能力和能力轉化為工程素質的重要階段。 二、課程設計要求1 、利用 proteus 軟件設計步進電機各模塊工作原理圖,并進行模擬仿真;2、控制程序設計、調試及實現:(1 )根據要求,寫出完整的電機設計程序流程圖;(2 )將設計程序輸入、便宜,排除語法錯誤,生成 .hex 文件;(3 )利用 proteus 軟件進行電路模擬仿真和調試;3、設計硬件電路并燒寫程序,調試后系統能按照要求工作;4、寫出課程設計說明書。1.2 課程設計預備知識(一)步進電機的介紹:步進電機是一種進行精確步進運動的機電執行元件,它廣泛應用于工業機械的 數字控制,為使系統的可靠性、通用性、可維護性以及性價

3、比最優,根據控制系統 功能要求及步進電機應用環境,確定了設計系統硬件和軟件的功能劃分,從而實現 了基于 8051 單片機的四相步進電機的開環控制系統。 控制系統通過單片機存儲器、 I/O 接口、中斷、鍵盤、 LED 顯示器的擴展、步進電機的環形分頻器、驅動及保護 電路、人機接口電路、中斷系統及復位電路、單電壓驅動電路等的設計,實現了四 相步進電機的正反轉,急停等功能。為實現單片機控制步進電機系統在數控機床上 的應用,系統設計了兩個外部中斷,以實現步進電機在某段時間內的反復正反轉功 能,也即數控機床的刀架自動進給運動,隨著單片機技術的不斷發展,單片機在日 用電子產品中的應用越來越廣泛,自六十年代

4、初期以來,步進電機的應用得到很大 的提高。人們用它來驅動時鐘和其他采用指針的儀器,打印機、繪圖儀,磁盤光盤 驅動器、各種自動控制閥、各種工具,還有機器人等機械裝置。此外作為執行元件, 步進電機是機電一體化的關鍵產品之一,被廣泛應用在各種自動化控制系統中,隨 著微電子和計算機技術的發展,它的需要量與日俱增,在各個國民經濟領域都有應 用。步進電機是機電數字控制系統中常用的執行元件,由于其精度高、體積小、控 制方便靈活,因此在智能儀表和位置控制中得到了廣泛的應用,大規模集成電路的 發展以及單片機技術的迅速普及,為設計功能強,價格低的步進電機控制驅動器提 供了先進的技術和充足的資源。(二)步進電機工作

5、原理: 步進電機是工業過程控制及儀表中常用的控制元件之一, 例如在機械裝置中 可以用絲杠把角度變為直線位移, 也可以用步進電機帶螺旋電位器, 調節電壓或 電流,從而實現對執行機構的控制。 步進電機可以直接接收數字信號, 不必進行 數模轉換,用起來非常方便。 步進電機還具有快速啟停、 精確步進和定位等特點, 因而在數控機床、繪圖儀、打印機以及光學儀器中得到廣泛的應用當某一相繞組通電時,對應的磁極就產生磁場,并與轉子形成磁路,如果這 時定子的小齒和轉子的小齒沒有對齊,則在磁場的作用下,轉子將轉動一定的角 度,使轉子和定子的齒相互對齊。由此可見,錯齒是促使步進電機旋轉的原因。三相步進電機結構示意圖1

6、.步進電機的運轉是由脈沖信號控制的, 傳統方法是采用數字邏輯電路一環形脈沖分配器控制步進電機的步進。因此:(1) 、如果按照ABCA的順序輪流通電一周,循環下去就可以進行單- 三拍運轉。設高電平用“ 1”表示,低電平用“0”表示,依次循環直到停止:單-三拍脈沖分配表:A100B010C001則步進電機時序波形圖如下:、如果按照AB BC CA AB的順序輪流通電一周,循環下去就可以進行雙-三拍運轉。雙-三拍脈沖分配表:A101B110C011則此時步進電機時序波形圖如下(3)、如果按照AB B BC CCA A AB的順序輪流通電一周,循環下去就可以進行單雙-三拍運轉單雙-三拍脈沖分配表:A1

7、00011B111000C001110此時步進電機時序波形圖如下2.步進電機的控制:(1 )、運轉方向控制。步進電機以三相六拍方式工作,若按AB B BCCCAA次序通電為正轉,則當按AACCCB BBA次序通電為反 轉。(2) 、運轉速度的控制。當改變 CP脈沖的周期時,ABC三相繞組高低電 平的寬度將發生變化,這就導至通電和斷電時速率發生了變化,使電機轉速改變, 所以調節CP脈沖的周期就可以控制步進電機的運轉速度。(3) 、旋轉的角度控制。因為每輸入一個CP脈沖使步進電機三相繞組狀態變化一次,并相應地旋轉一個角度,所以步進電機旋轉的角度由輸入的CP脈沖數確定。(三) 單片機芯片89C51單

8、片機Atmel公司生產的89C51單片機是一種低功耗/低電壓高性能的8位單片 機,它采用CMoS和高密度非易失性存儲技術,而且其輸出引腳和指令系統都與 MCS-51兼容;片內的Flash ROM 允許在系統內改編程序或用常規的非易失性 編程器來編程,內部除 CPU夕卜,還包括256字節RAM,4個8位并行I/O 口, 5個中斷源,2個中斷優先級,2個16位可編程定時計數器,89C51單片機是 一種功能強、靈活性高且價格合理的單片機,完全滿足本系統設計需要。1.3課題設計的任務及目標課程設計任務:根據給定的任務要求選擇合適的單片機和其他電子元器件,進行系統硬件電路設計和軟件編程,根據系統制作并調

9、試系統電路板,使之實現 任務要求。有關參數選擇要求符合國家標準。具體設計內容如下:模擬步進電機控制,通過 AT89C51的端口控制實現對步進電機的控制:包 括電機的正轉、反轉、加速、減速以及實現電機可以按一定的節拍運轉,如三相 電機單-三拍、雙-三拍、單-雙-三拍運轉。課程設計目標:1 課程設計說明書一份;2 系統工作原理圖一張;3 . C語言源程序;4 硬件電路板調試通過;第二章總體設計主要介紹對系統設計的總體認識及解決方案,并對采取的方案進行論證(一)系統設計的總體框圖如圖所示:Vl復位電路 步進電機C單片機AT89C51P0P2P1P3液晶顯示電機工作模式 控制部分(二)論證設計:該方案

10、利用單片機Po、pl、P2、P3 口高低電平的控制實現步進電機的啟 動、停止、正轉、反轉、加速、減速和各拍節轉動以及狀態顯示的目的。該系統的輸入量為電機轉向即正轉與反轉 2根口線,速度的增減2根口線, 拍節的變化,包括單-三拍、雙-三拍、單-雙-三拍3根口線,再加上一根控制系 統停止大SToP 口線一共8根口線,恰好利用P3 口的P3.0 P3.7端口實現。P1口接電機是程序控制的輸出端, 通過脈沖控制輸出端高低電平控制步進電機以何種模式運轉。P0與P2端口結合通過控制電阻排內部電流來控制 LCD顯示器。第三章 硬件設計 本設計的硬件電路只要包括步進電機控制電路部分、 最小系統( AT89C5

11、1 )芯 片、以及顯示電路三大部分。控制電路只是由開關和按鍵組成,由操作者根據相應 的工作需要進行操作。最小系統只要是為了使單片機正常工作。顯示電路主要是為 了顯示電機的工作狀態和轉速。(一) 控制電路部分 :根據系統的控制要求,控制輸入部分設置了速度加減控制,暫停控制,換向控制和工作模式控制,分別是 K1、K2,STOP,R、L,M1、M2、M3控制電路如圖4所示。通過不間斷鍵盤檢測,當檢測到K1、K2按鍵狀態變化時,內部程序檢測P3.0 和P3.1的狀態來調用相應的加速和減速程序;當檢測到 STOP按鍵狀態變化時,內 部程序檢測P3.2的狀態實現暫停功能;當檢測到 R或L按鍵狀態變化時,內

12、部檢測 P3.3和P3.4端口調用正反轉命令程序實現正反轉;當檢測到按鍵 M1、M2、M3變 化時,內部掃描對應 P3.5P3.7 端口狀態以調用相應的源程序實現模式之間的轉控制原理圖如下圖所示:(二)最小系統芯片部分:單片機最小系統或者稱為最小應用系統,素質用最少的元件組成的單片機可以 工作的系統,對51系列單片機來說,最小系統一般應該包括:單片機、復位電路、 晶振電路。復位電路:使用了獨立式鍵盤,單片機的 P1 口鍵盤的接口。該設計要求只需 4 個鍵對步進電機的狀態進行控制,但考慮到對控制功能的擴展,使用了6路獨立式鍵盤。復位電路采用手動復位,所謂手動復位,是指通過接通一按鈕開關,使單片

13、機進入復位狀態,晶振電路用 30PF的電容和一 12M晶體振蕩器組成為整個電路提 供時鐘頻率。晶振電路:8051單片機的時鐘信號通常用兩種電路形式電路得到:內部震蕩方式和外部中斷方式。在引腳XTAL1和XTAL2外部接晶振電路器(簡稱晶振)或陶 瓷晶振器,就構成了內部晶振方式。由于單片機內部有一個高增益反相放大器,當 外接晶振后,就構成了自激振蕩器并產生振蕩時鐘脈沖。內部振蕩方式的外部電路 如圖5示。其電容值一般在530pf,晶振頻率的典型值為12MHz,采用6MHz的情況 也比較多。內部振蕩方式所得的時鐘信號比較穩定,實用電路實用較多。最小系統部分原理圖如下:OeD <>KTAL

14、1RSTPSENALEEAUI19O1C2gRlIkTEXT1R2 1"5 E781 OC OUTEXl4t i X1CRYSTALP0.0JtD0P 0.1 MDl 0JAD2 P0.3AD3P 0.4/AD 4P0.5AD5P0.&/AD6P0.7ADrP2.0/A3P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2B/A14 P2 7/A15WWWP1.0PUP1.2PilJaP1.4P1.5 p.eP17P3 O/RXDP3.tD<DP3.2rlNTP3.3ZIMT1P3.4/TDP 3.5/T1P3.6RP3.7/RD

15、pfiT-AT6C51(三)顯示電路:在該步進電機的控制器中,電機可以正反轉,可以加速、減速,其中電機轉速的等級分為18級,為了方便知道電機的運行狀態和電機的轉速的等級,這里設計了電機轉速和電機的工作狀態的顯示電路,以便知道電機處于何種工作狀態。 使用ICd顯示器LM016L型號(具體參數需查看該顯示器使用說明)顯示器實現雙行顯示,可以很明確知道工作狀態。顯示部分電路圖如下圖所示:LCDlLMOI 創一 晶顯了g0OE寸1-KHII1 a* 干 IPB;OfAE)O PolMI P0.2D2 F*0.3AD3 P0 4AD4 P0.5M5 R0EWDB 口仃 7 7芻HI57h238E l&g

16、t;337I4鼻E535H6t -"7Iilj032IJL9h21IiRESPACK-822II=_P2.2JA10F2.3/A1 1P2.4/A12P2.5/A134j ; ri r21:第四章軟件設計該電機程序采用 C語言源程序控制,采用自下而上程序設計結構,先設計出每一個具 體的模塊(子程序)例如 LCD內部控制程序模塊、顯示內容部分程序模塊、正反裝減速減 速變拍模塊,然后再慢慢擴大,最后組成一個系統,即步進電機的主程序。下面是各程序模塊的源程序代碼:1. LCD內部控制程序模塊:Sbit RS=P20;sbit RW=P21;sbit E=P22;void write_add

17、(uchar i)/寫命令函數RS=0;E=0;P0=i;delay(5);E=1;delay(5);E=0;void write_date(uchar i)/ 寫數據函數RS=1;E=0;P0=i;delay(5);E=1;delay(5);E=0;LCDvoid init_lcd()/ 初始化程序,開中斷,初始化EA=1;ET0=1;TMOD=0x01;TH0=0x3c;TL0=0xb0;TR0=1;RS=0;E=0;RW=0;write_add(0x01);write_add(0x38);write_add(0x0c);write_add(0x06);void displaynum(uc

18、har i,uchar j)/write_add(0x80+i);write_date(0x30+j);void display1(uchar i,uchar j)/write_add(0x80+i);write_date(j);void display2(uchar i,uchar j)/write_add(0xc0+i);write_date(j);2. 顯示內容部分程序模塊:#define sp 0#define state 1顯示函數顯示函數顯示函數#define mode 2uchar s_name="speed:"uchar m_name="mode:

19、"uchar *str="stop","right","left"uchar *str_mode="1_3","2_3","1_2"void init_display()uchar i;for(i=0;i<6;i+)display1(i,s_namei);delay(5);displaynum(6,Speed/10);delay(5); displaynum(7,Speed%10);delay(5);for(i=0;i<5;i+)display1(i+9

20、,*(str1+i);delay(5);for(i=0;i<5;i+)display2(i,m_namei);delay(5);for(i=0;i<3;i+)display2(i+6,*(str_mode0+i);delay(5);void spd(uchar speed)displaynum(6,speed/10);displaynum(7,speed%10);void f_state(uchar stat)uchar i;for(i=0;i<5;i+)display1(i+9,*(strstat+i);delay(5);void f_mode(uchar mod)ucha

21、r i;for(i=0;i<3;i+)display2(i+6,*(str_modemod+i);delay(5);void (*display)(uchar)=spd,f_state,f_mode;3. 正反裝減速減速變拍模塊sbit A1=P10; / 定義步進電機連接端口sbit B1=P11;sbit C1=P12;#define Coil_AB1 A1=1;B1=1;C1=0;/AB相通電,其他相斷電#define Coil_BC1 A1=0;B1=1;C1=1;/BC相通電,其他相斷電#define Coil_CA1 A1=1;B1=0;C1=1;/CD相通電,其他相斷電#d

22、efine Coil_A1 A1=1;B1=0;C1=0;/A相通電,其他相斷電相通電,其他相斷電相通電,其他相斷電相通電,全部斷電#define Coil_B1 A1=0;B1=1;C1=0;/B#define Coil_C1 A1=0;B1=0;C1=1;/C其他相斷電#define Coil_OFF A1=0;B1=0;C1=0;/int step=1;int dir=1;uchar step_num=0;uchar Speed=1;void step1_3()step=step%3;switch(step)case 0:Coil_A1;break;case 1:Coil_B1;brea

23、k;case 2:Coil_C1;break;default:break;step=step+dir;if(step<0)step=2;void step2_3()step=step%6;switch(step)case 0:Coil_A1;break;case 1:Coil_AB1;break;case 2:Coil_B1;break;case 3:Coil_BC1;break;case 4:Coil_C1;break;case 5:Coil_CA1;break; default:break;step=step+dir;if(step<0)step=5;void step1_2(

24、)step=step%9;switch(step)case 0:Coil_A1;break;case 1:Coil_A1;break;case 2:Coil_AB1;break;case 3:Coil_B1;break;case 4:Coil_B1;break;case 5:Coil_BC1;break;case 6:Coil_C1;break;case 7:Coil_C1;break;case 8:Coil_CA1;break;default:break;step=step+dir;if(step<0)step=8;void (*stepper)(void)=step1_3,step2

25、_3,step1_2;4. 步進電機的主程序:#include <reg51.h>#define uchar unsigned char#define uint unsigned intvoid delay(uint z);#include"lcd.c"#include"stepper.c"#include"display.c" / 顯示部分#define KeyPort P3uchar times=0;void delay(uint z)/ 延時函數uint x,y;for(x=z;x>0;x-)for(y=180

26、;y>0;y-);void KeyScan()/ 按鍵掃描uchar keyvalue;if(KeyPort!=0xff)delay(5);/ 延時去抖 if(KeyPort!=0xff)keyvalue=KeyPort;switch(keyvalue)case 0xfe:if(Speed<18)Speed+;(*displaysp)(Speed);break;/ 加速case0xfd:if(Speed>1)Speed-;(*displaysp)(Speed);break;/ 減速case 0xfb:dir=0;(*displaystate)(0);break;/停止case 0xf7:dir=1;(*displaystate)(1);break;/正轉( right )case 0xef:dir=-1;(*displaystate)(2);break;/反轉( left )case 0xdf:step_num=0;(*displaymode)(step_num);break; / 1-3 拍case 0xbf

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論