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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

13、機進入復(fù)位狀態(tài),晶振電路用 30PF的電容和一 12M晶體振蕩器組成為整個電路提 供時鐘頻率。晶振電路:8051單片機的時鐘信號通常用兩種電路形式電路得到:內(nèi)部震蕩方式和外部中斷方式。在引腳XTAL1和XTAL2外部接晶振電路器(簡稱晶振)或陶 瓷晶振器,就構(gòu)成了內(nèi)部晶振方式。由于單片機內(nèi)部有一個高增益反相放大器,當 外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時鐘脈沖。內(nèi)部振蕩方式的外部電路 如圖5示。其電容值一般在530pf,晶振頻率的典型值為12MHz,采用6MHz的情況 也比較多。內(nèi)部振蕩方式所得的時鐘信號比較穩(wěn)定,實用電路實用較多。最小系統(tǒng)部分原理圖如下: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(三)顯示電路:在該步進電機的控制器中,電機可以正反轉(zhuǎn),可以加速、減速,其中電機轉(zhuǎn)速的等級分為18級,為了方便知道電機的運行狀態(tài)和電機的轉(zhuǎn)速的等級,這里設(shè)計了電機轉(zhuǎn)速和電機的工作狀態(tài)的顯示電路,以便知道電機處于何種工作狀態(tài)。 使用ICd顯示器LM016L型號(具體參數(shù)需查看該顯示器使用說明)顯示器實現(xiàn)雙行顯示,可以很明確知道工作狀態(tài)。顯示部分電路圖如下圖所示:LCDlLMOI 創(chuàng)一 晶顯了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:第四章軟件設(shè)計該電機程序采用 C語言源程序控制,采用自下而上程序設(shè)計結(jié)構(gòu),先設(shè)計出每一個具 體的模塊(子程序)例如 LCD內(nèi)部控制程序模塊、顯示內(nèi)容部分程序模塊、正反裝減速減 速變拍模塊,然后再慢慢擴大,最后組成一個系統(tǒng),即步進電機的主程序。下面是各程序模塊的源程序代碼:1. LCD內(nèi)部控制程序模塊:Sbit RS=P20;sbit RW=P21;sbit E=P22;void write_add

17、(uchar i)/寫命令函數(shù)RS=0;E=0;P0=i;delay(5);E=1;delay(5);E=0;void write_date(uchar i)/ 寫數(shù)據(jù)函數(shù)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. 顯示內(nèi)容部分程序模塊:#define sp 0#define state 1顯示函數(shù)顯示函數(shù)顯示函數(shù)#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)/ 延時函數(shù)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;/正轉(zhuǎn)( right )case 0xef:dir=-1;(*displaystate)(2);break;/反轉(zhuǎn)( left )case 0xdf:step_num=0;(*displaymode)(step_num);break; / 1-3 拍case 0xbf

溫馨提示

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

評論

0/150

提交評論