版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、江西農(nóng)大單片機原理及應(yīng)用課程設(shè)計報告 設(shè)計課題: 單片機控制步進電機 專業(yè)班級: 信工091班 學(xué)生姓名: 崔* 指導(dǎo)教師: 何老師 2012 年 5 月目 錄目 錄11 設(shè)計任務(wù)書21.1 基本設(shè)計要求21.2 選作項目22 設(shè)計闡明32.1設(shè)計內(nèi)容32.2設(shè)計要求32.3設(shè)備及工作環(huán)境33 系統(tǒng)方案整體設(shè)計43.1 設(shè)計思路44 硬件設(shè)計64.1 系統(tǒng)硬件設(shè)計64.1.1 最小單片機系統(tǒng)64.1.2 鍵盤設(shè)計64.2 系統(tǒng)工作原理論述75 軟件設(shè)計95.1 分析論證95.1.1 步進電機運行驅(qū)動模塊95.1.2 溫度采集模塊95.1.3 主函數(shù)模塊95.1.4 整體功效95.2 程序流程圖
2、105.3程序清單116 調(diào)試過程及分析187 設(shè)計總結(jié)19參 考 文 獻201 設(shè)計任務(wù)書1.1 基本設(shè)計要求(1)用萬能板、主芯片AT89S52、35BYJ412步進電機、BLN2003以及其他周圍原件芯片完成實驗設(shè)計。(2)程序的首地址應(yīng)使目標機可以直接運行,即從0000H開端。在主程序的開端部分必須設(shè)置一個合適的棧底。程序放置的地址須持續(xù)且靠前,不要在中間留下大批的空間地址,以使目標機可以應(yīng)用較少的硬件資源。(3)采用單片機控制一個三相單三拍的步進電機工作。步進電機的旋轉(zhuǎn)方向由正反轉(zhuǎn)控制信號控制。步進電機的步數(shù)由鍵盤輸入,可輸入的步數(shù)分別為3、6、9、12、15、18、21、24和27
3、步,且鍵盤具有鍵盤鎖功能,當鍵盤上鎖時,步進電機不接受輸入步數(shù),也不會運轉(zhuǎn)。只有當鍵盤鎖打開并輸入步數(shù)時,步進電機才開始工作。(4)電機運轉(zhuǎn)的時候有正轉(zhuǎn)和反轉(zhuǎn)指示燈指示。(5)電機在運轉(zhuǎn)過程中,如果過熱,則電機停止運轉(zhuǎn),同時紅色指示燈亮,同時警報響。本題目的關(guān)鍵之處是:如何生成控制步進電機的脈沖序列。1.2 選作項目 1、用單片機(AT89S52)為主芯片設(shè)計電路來控制步進電機。2、設(shè)三個自鎖按鍵,分別作開關(guān)鍵盤、左轉(zhuǎn)、右轉(zhuǎn)控制。3、設(shè)9個觸電按鍵分別控制輸入的步數(shù)為3、6、9、12、15、18、21、24和27步。4、設(shè)置一片LCD12864顯示器實時顯示步進電機工作狀態(tài),并提示用戶步操作。
4、2 設(shè)計闡明2.1設(shè)計內(nèi)容用ZY15MCU12BD型綜合單片機實驗箱仿真實現(xiàn)控制步進電機集采問過程。2.2設(shè)計要求(1)采用單片機控制一個三相單三拍的步進電機工作。步進電機的旋轉(zhuǎn)方向由正反轉(zhuǎn)控制信號控制。步進電機的步數(shù)由鍵盤輸入,可輸入的步數(shù)分別為3、6、9、12、15、18、21、24和27步,且鍵盤具有鍵盤鎖功能,當鍵盤上鎖時,步進電機不接受輸入步數(shù),也不會運轉(zhuǎn)。只有當鍵盤鎖打開并輸入步數(shù)時,步進電機才開始工作。(2)電機運轉(zhuǎn)的時候有正轉(zhuǎn)和反轉(zhuǎn)指示燈指示。(3) 電機在運轉(zhuǎn)過程中,如果過熱,則電機停止運轉(zhuǎn),同時紅色指示燈亮,同時警報響。(4) 上機調(diào)試程序。(5) 寫出設(shè)計報告。2.3設(shè)備
5、及工作環(huán)境 (1) 硬件:AT89S52單片機一片、35BYJ412步進電機一臺、ISP下載器一個、LCD12864顯示器、溫度傳感器18B20芯片。 (2) 軟件:Windows操縱系統(tǒng)、Keil C51軟件。3 系統(tǒng)方案整體設(shè)計3.1 設(shè)計思路步進電機的不同驅(qū)動方式,都是在工作時,脈沖信號按一定順序輪流加到三相繞組上,從而實現(xiàn)不同的工作狀態(tài)。由于通電順序不同,其運行方式有三相單三相拍、三相雙三拍和三相單、雙六拍三種(注意:上面“三相單三拍”中的“三相”指定子有三相繞組;“拍”是指定子繞組改變一次通電方式;“三拍”表示通電三次完成一個循環(huán)?!叭嚯p三拍”中的“雙”是指同時有兩相繞組通電)。(
6、1)三相單三拍運行方式:下頁圖所示為反應(yīng)式步進電動機工作原理圖,若通過脈沖分配器輸出的第一個脈沖使A相繞組通電,B,C相繞組不通電,在A相繞組通電后產(chǎn)生的磁場將使轉(zhuǎn)子 上產(chǎn)生反應(yīng)轉(zhuǎn)矩,轉(zhuǎn)子的1、3齒將與定子磁極對齊,如果圖(a)所示。第二個脈沖到來,使B相繞組通電,而A、C相繞組不通電;B相繞組產(chǎn)生的磁場將 使轉(zhuǎn)子的2、4齒與B相磁極對齊,如圖(b)所示,與圖(a)相比,轉(zhuǎn)子逆時針方向轉(zhuǎn)動了一個角度。第三個脈沖到來后,是C相繞組通電,而 A、B相不通電,這時轉(zhuǎn)子的1、3齒會與C組對齊,轉(zhuǎn)子的位置如圖(c)所示,與圖(b)比較,又逆時針轉(zhuǎn)過了一個角度。圖 反應(yīng)式步進電機工作原理圖當脈沖不斷到來時
7、,通過分配器使定子的繞組按著A相-B相-C相-A相的規(guī)律不斷地接通與斷開,這時步進電動機的轉(zhuǎn)子就連續(xù)不停地一步步的逆時 針方向轉(zhuǎn)動。如果改變步進電動機的轉(zhuǎn)動方向,只要將定子各繞組通電的順序改為A相-C相-B相-A相,轉(zhuǎn)子轉(zhuǎn)動方向即改為順時針方向。 單三拍分配方式時,步進電動機由A相通電轉(zhuǎn)換到B相同點,步進電動機的轉(zhuǎn)子轉(zhuǎn)過一個角度,稱為一步。這時轉(zhuǎn)子轉(zhuǎn)過的角度是30度。步進電動機每一步轉(zhuǎn)過的角度稱為步距角。(2)三相雙三拍運行方式三相雙三拍運行方式:每次都有兩個繞組通電,通電方式是AB-BC-CA-AB,如果通電順序改為AB-CA-BC-AB則步進電機反轉(zhuǎn)。雙三拍分配方式時,步進電動機的步距角也
8、是30度 (3)三相單,雙六拍運行方式:三相六拍分配方式就是每個周期內(nèi)有六個通電狀態(tài)。這六中通電狀態(tài)的順序可以使A-AB-B-BC-C-CA-A或者A- CA-C-BC-B-AB-A六拍通電方式中,有一個時刻兩個繞組同時通電,這是轉(zhuǎn)子齒的位置將位于通電的兩相的中間位置。在三相六拍分配 方式下,轉(zhuǎn)子每一步轉(zhuǎn)過的角度只是三相三拍方式下的一半,步距角是15度。單三拍運行的突出問題是每次只有一相繞組通電,在轉(zhuǎn)換過程中,一相繞組斷電,另一相繞組通電,容易發(fā)生失步;另外單靠一相繞組通電吸引轉(zhuǎn)子,穩(wěn)定性不好,容易在平衡位置附近震蕩,故用的較少。 雙三拍運行的特點是每次都有兩相繞組通電,且在轉(zhuǎn)換過程中始終有一
9、相繞組保持通電狀態(tài),因此工作穩(wěn)定,且步距角與單三拍相同。 六拍運行方式轉(zhuǎn)換時始終有一相繞組通電,且步距角較小,故工作穩(wěn)定性好,但電源較復(fù)雜,實際應(yīng)用較多。4 硬件設(shè)計4.1 系統(tǒng)硬件設(shè)計 最小單片機系統(tǒng)5V電源:給系統(tǒng)供電。復(fù)位電路:程序跑飛時復(fù)位電路可以使程序從新執(zhí)行,相當于電腦的重啟。晶振:給單片機運行提供時鐘。比如電腦的2.2GHz頻率。EA接高電平:表示運行內(nèi)部程序存儲器下載的程序。P0口接排阻:P0口開漏結(jié)構(gòu),使用時一般接排阻拉高電平。 鍵盤設(shè)計該電路中采用獨立鍵盤工作方式,共設(shè)有12個按鍵,分別提供3、6、9、12、15、18、21、24布局選擇功能、鍵盤鎖功能以及步進電機轉(zhuǎn)動方向
10、選擇功能。其中有程序決定起作用。4.2 系統(tǒng)工作原理論述 該系統(tǒng)的工作核心CPU為ATMEL公司生產(chǎn)的AT89S52芯片將多種功能的8位CPU與FPEROM(快閃可編程/擦除只讀存儲器)結(jié)合在一個芯片上,是一種低功耗、高性能的CMOS控制器,為很多嵌入式控制應(yīng)用提供了非常靈活而又價格適宜的方案,其性能價格比遠高于同類芯片。它與MCS-51指令系統(tǒng)兼容,片內(nèi)FPEROM允許對程序存儲器在線重復(fù)編程,也可用常規(guī)的EPROM編程器編程,可循環(huán)寫入/擦除1000次。89S52內(nèi)含4KB的FPEROM,一般的EEPROM的字節(jié)擦除時間和寫入時間基本上均為10ms,對于任一個實時控制系統(tǒng)來說,這樣長的時間
11、是不可能在線修改程序的。l CPU為Atmel公司生產(chǎn)的89C51/89C52/89C55等。出廠所配晶振頻率為11.0592MH,每個機器周期為1.085us,用戶更換晶振以提高速度;l 存貯器為64K,前4K/8K20K在CPU內(nèi)部,其它程序在EPR0M27512中;l 數(shù)據(jù)存貯器為32K(62256),地址為8000FFFFH;l /O擴展8155,片內(nèi)RAM地址200O-20FFH ;l 8155命令口地址為2100H ;l A口地址21O1H B口地址:2102H C口地址:2103H ;l T低八位2104H T高八位2105H ;l 多路模擬開關(guān)的使用 IN0P1=0F8H IN
12、4:P1=0FCH IN1P1=0F9H IN5:P1=OFDH IN2P1=0FAH IN5:P1=0FEH IN3P1=0FBH IN7:P1=0FFH l 不掉電數(shù)據(jù)存貯器為500EH-507FH ;l 控制板160x1O9(mm) 供電+5V300mA +12V100mA -12V100mA ;l AT89C51是一種低功耗、高性能的片內(nèi)含有4KB快閃可編程/擦除只讀存儲器(FPEROM-Flash Programmable and Eraseable Read Only Memory)的8位CMOS微控制器,使用高密度、非易失存儲技術(shù)制造,并且與80C51引腳和指令系統(tǒng)完全兼容;l
13、主要性能: 與MCS-51 微控制器產(chǎn)品系列兼容;片內(nèi)有4KB可在線重復(fù)編程的快閃擦寫存儲器 。引腳簡介:整體介紹:該系統(tǒng)采用的芯片還有:DS18B20溫度傳感器、ULN2003A以及MP28GA四相五線步進電機,并且步進電機在雙八拍的方式下工作,步矩為 5.625 ,步進電機的旋轉(zhuǎn)方向由正反轉(zhuǎn)控制信號控制。步進電機的步數(shù)由鍵盤輸入,可通過獨立鍵盤S1S9輸入的步數(shù)分別為3、6、9、12、15、18、21、24和27步對應(yīng)的角度為16.875、33.725、151.875,且鍵盤S10具有鍵盤鎖功能,當鍵盤上鎖時,步進電機不接受輸入步數(shù),也不會運轉(zhuǎn)。只有當鍵盤鎖打開,選擇運轉(zhuǎn)方向并且輸入步數(shù)時
14、,步進電機才開始工作。 電機運轉(zhuǎn)的時候有正轉(zhuǎn)指示燈D2和反轉(zhuǎn)指示燈D3指示。 電機在運轉(zhuǎn)過程中用溫度傳感器采集步進電機外表溫度(可設(shè)置),如果過熱,則電機停止運轉(zhuǎn),同時紅色指示燈亮,同時蜂鳴器警報響。5 軟件設(shè)計5.1 分析論證此步進電機控制電路設(shè)計與實現(xiàn),主要采用了ULN2003A驅(qū)動芯片,溫度傳感器芯片DS18B20芯片,獨立鍵盤等,包含步進電機運行驅(qū)動,溫度采集,主函數(shù)三大功效模塊。5.1.1 步進電機運行驅(qū)動模塊由于該系統(tǒng)中沒有完全使用I/O端口,所以采用了獨立鍵盤的工作方式,系統(tǒng)工作時,鍵盤控制的I/O口處于高電平狀態(tài),當按鍵按下時觸發(fā)低電平,驅(qū)動程序?qū)崟r監(jiān)測并立即響應(yīng)執(zhí)行相應(yīng)工作。
15、5.1.2 溫度采集模塊該模塊的重要功效是對步進電機的外表采集溫度,并且對已設(shè)定好的數(shù)值進行比較,從而確定機身溫度是否過高,正常時電機正常轉(zhuǎn)動,當溫度過高時電機不再轉(zhuǎn)動,并且蜂鳴器報警,紅燈點亮。5.1.3 主函數(shù)模塊該模塊重要功效是調(diào)動溫度采集函數(shù)、步進電機函數(shù)中函數(shù),實現(xiàn)模塊化編程。5.1.4 整體功效AT89S52芯片控制ULN2003A芯片驅(qū)動步進電機,掃描鍵盤輸入運行狀態(tài)以及運轉(zhuǎn)步數(shù),當電機外表溫度超過32是電機停止轉(zhuǎn)動,并且報警!5.2 程序流程圖主程序流程圖如圖所示:開始初始化程序報警,紅燈點亮,步進電機停轉(zhuǎn)判斷步進電機溫度是否過高? 是 否鎖鍵盤等待開鍵盤 是 否確定輸入步數(shù)電
16、機高溫?步進電機運轉(zhuǎn) 否 圖2 程序流程圖5.3程序清單步進電機驅(qū)動函數(shù):/BJDJ.h#ifndef _BJDJ_H_#define _BJDJ_H_ #include #include #define uchar unsigned char#define uint unsigned intsbit k1=P10;sbit k2=P11;sbit k3=P12;sbit k4=P13;sbit k5=P14;sbit k6=P15;sbit k7=P16;sbit k8=P17;sbit k9=P00;sbit k10=P01;sbit k11=P02;sbit k12=P03;void k
17、ey_scan();void motor_turn();void motor_stop();#endif/BJDJ.c#includeBJDJ.huchar code FFW8=0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6;uchar code REV8=0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe;uchar rate ;extern uchar i=0; /*/ /* 延時 /*/void delay(uchar x) uchar i,j; for(i=0;ix;i+); for(j = 0 ; j110 ; j+) ;
18、/*/*步進電機正轉(zhuǎn)/*/void motor_ffw(uchar x) uchar i,j; for (j=0; jx; j+) /轉(zhuǎn)1*n圈 for (i=0; i8; i+) /一個周期轉(zhuǎn)45度 P2 = FFWi; /取數(shù)據(jù) delay(150); /調(diào)節(jié)轉(zhuǎn)速 /*/*/*步進電機反轉(zhuǎn)/*/void motor_rev(uchar x) uchar i,j; for (j=0; jx; j+) /轉(zhuǎn)1*n圈 /退出此循環(huán)程序 for (i=0; i8; i+) /一個周期轉(zhuǎn)45度 P2 = REVi; /取數(shù)據(jù) delay(150); /調(diào)節(jié)轉(zhuǎn)速 /*鍵盤掃描*/void key_sc
19、an()i=0;if(k1=0)delay(5);if(k1=0)i=24;if(k2=0)delay(5);if(k2=0)i=46;if(k3=0)delay(5);if(k3=0)i=72;if(k4=0)delay(5);if(k4=0)i=96;if(k5=0)delay(5);if(k5=0)i=120;if(k6=0)delay(5);if(k6=0)i=144;if(k7=0)delay(5);if(k7=0)i=168;if(k8=0)delay(5);if(k8=0)i=192;if(k9=0)delay(5);if(k9=0)i=216;/*電機轉(zhuǎn)動*/void moto
20、r_turn()if(k10=0)delay(5);if(k10=0)P2=P2&0xf0;if(k11=0&k12=1&k10=1) delay(5);if(k11=0&k12=1&k10=1)motor_ffw(i);if(k12=0&k11=1&k10=1)delay(5);if(k12=0&k11=1&k10=1)motor_rev(i);void motor_stop()motor_rev(0);溫度傳感器18B20驅(qū)動函數(shù):/DS18B20.h#ifndef _DS18B20_H_#define _DS18B20_H_#include#include #define uint un
21、signed int#define uchar unsigned charextern uchar T;sbit DQ=P27; /溫度輸入口sbit bell=P04;sbit led1=P07;void delay2(uint t);void ow_reset(void);void write_byte(uchar val);void read_temp();void work_temp();#endif/DS18B20.c#includeDS18B20.hextern uchar data temp_data2=0x00,0x00;uchar flag;char presence=1;u
22、char T;/*11微秒延時函數(shù)*/void delay2(uint t)for(;t0;t-);/*18B20復(fù)位函數(shù)*/void ow_reset(void)presence=1;while(presence)while(presence)DQ=1;_nop_();_nop_();DQ=0; /delay2(50); / 550usDQ=1; / delay2(6); / 66uspresence=DQ; / presence=0繼續(xù)下一步 delay2(45); /延時500uspresence = DQ;DQ=1; /*18B20寫命令函數(shù)*/void write_byte(ucha
23、r val)uchar i;for (i=8; i0; i-) DQ=1;_nop_();_nop_(); DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();/5usDQ = val&0x01; /最低位移出delay2(6); /66usval=val/2; /右移一位DQ = 1;delay2(1); /*18B20讀1個字節(jié)函數(shù)*/uchar read_byte(void)uchar i;uchar value = 0;for (i=8;i0;i-)DQ=1;_nop_();_nop_();value=1;DQ = 0; /_nop_();_n
24、op_();_nop_();_nop_(); /4usDQ = 1;_nop_();_nop_();_nop_();_nop_(); /4us if(DQ)value|=0x80;delay2(6); /66usDQ=1;return(value);/*讀出溫度函數(shù)*/void read_temp()ow_reset(); /總線復(fù)位write_byte(0xCC); / 發(fā)Skip ROM命令write_byte(0xBE); / 發(fā)讀命令temp_data0=read_byte(); /溫度低8位temp_data1=read_byte(); /溫度高8位ow_reset();write_
25、byte(0xCC); / Skip ROMwrite_byte(0x44); / 發(fā)轉(zhuǎn)換命令/*溫度數(shù)據(jù)處理函數(shù)*/void work_temp()T=(temp_data0&0xf0)4)|(temp_data1&0x07)31)motor_stop(); led1=0;bell=1;delay2(1000);else led1=1;bell=0; motor_turn();6 調(diào)試過程及分析編寫好的源程序在 Keil 編譯后呈現(xiàn)很多錯誤,這些錯誤有很多時平時的實驗碰到過的,例如:字母開頭忘加0,零和字母O弄混雜了,有些標號用了幾次,CJNE寫成了CJNZ等等,幸好這些錯誤在平時的實驗中碰到了,所以改錯誤很輕易,。除了常見的錯誤外,還有幾
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校安全重點部位實驗室檢查記錄表
- 高一化學(xué)教案:專題第二單元第三課時燃料燃燒釋放的熱量
- 2024高中物理章末質(zhì)量評估一含解析粵教版選修1-1
- 2024高中語文開學(xué)第一課學(xué)生觀后感范文800字少年強中國強素材
- 2024高中語文精讀課文二第4課1貝多芬:扼住命運的咽喉一課堂練習(xí)含解析新人教版選修中外傳記蚜
- 2024高考化學(xué)一輪復(fù)習(xí)第十二章物質(zhì)結(jié)構(gòu)與性質(zhì)第一講原子結(jié)構(gòu)與性質(zhì)規(guī)范演練含解析新人教版
- 2024高考歷史一輪復(fù)習(xí)方案專題十五西方人文精神的起源和發(fā)展專題整合備考提能教學(xué)案+練習(xí)人民版
- 2025新人教版英語七年級下單詞表(小學(xué)部分)
- (2篇)2024初中英語教師工作總結(jié)初中英語教師述職報告
- 倉庫管理制度通知
- 基本藥物制度政策培訓(xùn)課件
- 2025年中國華能集團限公司校園招聘高頻重點提升(共500題)附帶答案詳解
- GB/T 45002-2024水泥膠砂保水率測定方法
- 廣東省廣州海珠區(qū)2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)試卷(含答案)
- 飛行原理(第二版) 課件 第10章 高速空氣動力學(xué)基礎(chǔ)
- 廣西《乳腺X射線數(shù)字化體層攝影診療技術(shù)操作規(guī)范》
- 山西省2024年中考道德與法治真題試卷(含答案)
- 酒店會議室設(shè)備安裝及調(diào)試方案
- 2024年新疆(兵團)公務(wù)員考試《行測》真題及答案解析
- JGJ120-2012建筑基坑支護技術(shù)規(guī)程-20220807013156
- 英語代詞專項訓(xùn)練100(附答案)含解析
評論
0/150
提交評論