單片機(jī)控制步進(jìn)電機(jī)_第1頁
單片機(jī)控制步進(jìn)電機(jī)_第2頁
單片機(jī)控制步進(jìn)電機(jī)_第3頁
單片機(jī)控制步進(jìn)電機(jī)_第4頁
單片機(jī)控制步進(jìn)電機(jī)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、PAGE 東 北 石 油 大 學(xué)課 程 設(shè) 計(jì)課課 程 單片機(jī)的控制系統(tǒng)課程設(shè)計(jì) 題 目 單片機(jī)控制步進(jìn)電機(jī) 學(xué) 院 電氣信息工程學(xué)院 專業(yè)班級(jí) 學(xué)生姓名 學(xué)生學(xué)號(hào) 指導(dǎo)教師 楊莉 于鏑 2014年 7 月 7 日東北石油大學(xué)課程設(shè)計(jì)任務(wù)書課程 單片機(jī)的控制系統(tǒng)課程設(shè)計(jì)題目 單片機(jī)控制步進(jìn)電機(jī)專業(yè) 自動(dòng)化 姓名 學(xué)號(hào) 主要內(nèi)容:基于單片機(jī)控制步進(jìn)電機(jī)擬定了總體設(shè)計(jì)方案,完成了硬件設(shè)計(jì)、軟件設(shè)計(jì)以及系統(tǒng)仿真及試調(diào)?;疽螅罕驹O(shè)計(jì)為了實(shí)現(xiàn)用單片機(jī)控制步進(jìn)電機(jī)的功能,擬定了以下設(shè)計(jì)思路:采用單片機(jī)控制一個(gè)三相單三拍的步進(jìn)電機(jī)工作。步進(jìn)電機(jī)的旋轉(zhuǎn)方向由正反轉(zhuǎn)控制信號(hào)控制。電機(jī)運(yùn)轉(zhuǎn)的時(shí)候有正轉(zhuǎn)和反轉(zhuǎn)指

2、示燈指示。電機(jī)在運(yùn)轉(zhuǎn)過程中,如果過熱,則電機(jī)停止運(yùn)轉(zhuǎn),同時(shí)紅色指示燈亮,同時(shí)警報(bào)響。本設(shè)計(jì)的關(guān)鍵之處是:如何生成控制步進(jìn)電機(jī)的脈沖序列。主要參考資料:1張毅剛.單片機(jī)原理與應(yīng)用M.北京:高等教育出版社.2008.2樓然苗.51系列單片機(jī)設(shè)計(jì)實(shí)例M.北京:航空航天大學(xué)出版社.2006.3周潤(rùn)景.Proteus入門實(shí)用教程M.北京:機(jī)械工業(yè)出版社.2011.4汪道輝.單片機(jī)系統(tǒng)設(shè)計(jì)與實(shí)踐M.北京:電子工業(yè)出版社.2005.5譚浩強(qiáng).C程序設(shè)計(jì)(第三版)M.北京:清華大學(xué)出版社.2005.6王港元.電工電子實(shí)踐指導(dǎo)M.江西:科學(xué)技術(shù)出版社.2008.完成期限 2014.6.30-2014.7.4 指

3、導(dǎo)教師 楊莉 于鏑 專業(yè)負(fù)責(zé)人 2014年 6 目錄 TOC o 1-2 h z u HYPERLINK l _Toc392341234 第1章 概述 PAGEREF _Toc392341234 h 1 HYPERLINK l _Toc392341235 1.1 步進(jìn)電機(jī)概述 PAGEREF _Toc392341235 h 1 HYPERLINK l _Toc392341236 1.2 步進(jìn)電機(jī)的特征 PAGEREF _Toc392341236 h 1 HYPERLINK l _Toc392341237 1.3 步進(jìn)電機(jī)驅(qū)動(dòng)系統(tǒng)概述 PAGEREF _Toc392341237 h 2 HYPE

4、RLINK l _Toc392341238 1.4 基本設(shè)計(jì)要求 PAGEREF _Toc392341238 h 2 HYPERLINK l _Toc392341239 第2章 系統(tǒng)結(jié)構(gòu)及主要元器件 PAGEREF _Toc392341239 h 3 HYPERLINK l _Toc392341240 2.1 設(shè)計(jì)思路 PAGEREF _Toc392341240 h 3 HYPERLINK l _Toc392341241 2.2 設(shè)備及工作環(huán)境 PAGEREF _Toc392341241 h 4 HYPERLINK l _Toc392341242 第3章 硬件設(shè)計(jì) PAGEREF _Toc39

5、2341242 h 5 HYPERLINK l _Toc392341243 3.1 系統(tǒng)硬件設(shè)計(jì) PAGEREF _Toc392341243 h 5 HYPERLINK l _Toc392341244 3.2 系統(tǒng)工作原理 PAGEREF _Toc392341244 h 6 HYPERLINK l _Toc392341245 第4章 軟件設(shè)計(jì) PAGEREF _Toc392341245 h 8 HYPERLINK l _Toc392341246 4.1 分析論證 PAGEREF _Toc392341246 h 8 HYPERLINK l _Toc392341247 4.2 程序流程圖 PAGE

6、REF _Toc392341247 h 8 HYPERLINK l _Toc392341248 4.3程序清單 PAGEREF _Toc392341248 h 9 HYPERLINK l _Toc392341249 第5章 系統(tǒng)仿真及調(diào)試 PAGEREF _Toc392341249 h 19 HYPERLINK l _Toc392341250 第6章 結(jié)論 PAGEREF _Toc392341250 h 20 HYPERLINK l _Toc392341251 參考文獻(xiàn) PAGEREF _Toc392341251 h 21單片機(jī)的控制系統(tǒng)課程設(shè)計(jì)(報(bào)告)PAGE 1第1章 概述1.1 步進(jìn)電機(jī)

7、概述一般電動(dòng)機(jī)都是連續(xù)旋轉(zhuǎn),而步進(jìn)電動(dòng)卻是一步一步轉(zhuǎn)動(dòng)的,故叫步進(jìn)電動(dòng)機(jī)。每輸入一個(gè)沖信號(hào),該電動(dòng)機(jī)就轉(zhuǎn)過一定的角度(有的步進(jìn)電動(dòng)機(jī)可以直接輸出線位移,稱為直線電動(dòng)機(jī))。因此步進(jìn)電動(dòng)機(jī)是一種把脈沖變?yōu)榻嵌任灰疲ɑ蛑本€位移)的執(zhí)行元件。步進(jìn)電動(dòng)機(jī)的轉(zhuǎn)子為多極分布,定子上嵌有多相星形連接的控制繞組,由專門電源輸入電脈沖信號(hào),每輸入一個(gè)脈沖信號(hào),步進(jìn)電動(dòng)機(jī)的轉(zhuǎn)子就前進(jìn)一步。由于輸入的是脈沖信號(hào),輸出的角位移是斷續(xù)的,所以又稱為脈沖電動(dòng)機(jī)。隨著數(shù)字控制系統(tǒng)的發(fā)展,步進(jìn)電動(dòng)機(jī)的應(yīng)用將逐漸擴(kuò)大。步進(jìn)電動(dòng)機(jī)的種類很多,按結(jié)構(gòu)可分為反應(yīng)式和激勵(lì)式兩種;按相數(shù)分則可分為單相、兩相和多相三種。1.2 步進(jìn)電機(jī)的特

8、征步進(jìn)電機(jī)具有自身的特點(diǎn),歸納起來有:(1)位置及速度控制簡(jiǎn)便:步進(jìn)電機(jī)在輸入脈沖信號(hào)時(shí),可以依輸入的脈沖數(shù)量做固定角度的旋轉(zhuǎn)得到靈活的角度控制(位置控制)。因?yàn)樗俣群洼斎朊}沖的頻率成正比,運(yùn)轉(zhuǎn)度可在相當(dāng)寬范圍內(nèi)平滑調(diào)節(jié)。(2)可以直接進(jìn)行開環(huán)控制:因?yàn)椴骄嗾`差不長(zhǎng)期累積,可以不需要速度傳感器以及位置傳感器,就以輸入的脈沖數(shù)量和頻率構(gòu)成具有一定精度的開環(huán)控制系統(tǒng)。(3)高可靠性:不使用電刷,電機(jī)的壽命長(zhǎng),僅取決于軸承的壽命。(4)具定位保持力矩:永磁式、混合式步進(jìn)電機(jī)在停止?fàn)顟B(tài)下(無脈沖信號(hào)輸入時(shí)),仍具有勵(lì)磁保持力矩,故即使不靠機(jī)械式的剎車,也能做到停止位置的保持。(5)中低速時(shí)具備高轉(zhuǎn)矩:

9、步進(jìn)電機(jī)在中低速時(shí)具有較大的轉(zhuǎn)矩,能夠較同級(jí)伺服電機(jī)提供更大的扭力輸出。同時(shí),步進(jìn)電機(jī)也有自己的一些缺點(diǎn):(l)步進(jìn)電機(jī)帶慣性負(fù)載的能力較差。(2)不能直接使用普通的交直流電驅(qū)動(dòng),而必須使用專用設(shè)備一步進(jìn)電機(jī)驅(qū)動(dòng)器。(3)輸出轉(zhuǎn)矩隨轉(zhuǎn)速的升高而下降。1.3 步進(jìn)電機(jī)驅(qū)動(dòng)系統(tǒng)概述步進(jìn)電機(jī)的工作必須使用專用設(shè)備步進(jìn)電機(jī)驅(qū)動(dòng)器。驅(qū)動(dòng)器針對(duì)每一個(gè)步進(jìn)脈沖,按一定的規(guī)律向電機(jī)各相繞組通電(勵(lì)磁),以產(chǎn)生必要的轉(zhuǎn)矩,驅(qū)動(dòng)轉(zhuǎn)子運(yùn)動(dòng)。步進(jìn)電機(jī)、驅(qū)動(dòng)器和控制器構(gòu)成了不可分割的3大部分。步進(jìn)電機(jī)驅(qū)動(dòng)系統(tǒng)的性能除與電機(jī)自身的性能有關(guān)外,在很大程度上取決于驅(qū)動(dòng)器性能的優(yōu)劣。當(dāng)電機(jī)和負(fù)載己經(jīng)確定之后,整個(gè)驅(qū)動(dòng)系統(tǒng)的性能

10、就完全取決于驅(qū)動(dòng)控制方法。步進(jìn)電機(jī)驅(qū)動(dòng)方式的發(fā)展先后有單電壓驅(qū)動(dòng)、高低壓驅(qū)動(dòng)、斬波恒流驅(qū)動(dòng)、調(diào)頻調(diào)壓驅(qū)動(dòng)和細(xì)分驅(qū)動(dòng)等。1.4 基本設(shè)計(jì)要求采用單片機(jī)控制一個(gè)三相單三拍的步進(jìn)電機(jī)工作。步進(jìn)電機(jī)的旋轉(zhuǎn)方向由正反轉(zhuǎn)控制信號(hào)控制。步進(jìn)電機(jī)的步數(shù)由鍵盤輸入,可輸入的步數(shù)分別為3、6、9、12、15、18、21、24和27步,且鍵盤具有鍵盤鎖功能,當(dāng)鍵盤上鎖時(shí),步進(jìn)電機(jī)不接受輸入步數(shù),也不會(huì)運(yùn)轉(zhuǎn)。只有當(dāng)鍵盤鎖打開并輸入步數(shù)時(shí),步進(jìn)電機(jī)才開始工作。電機(jī)運(yùn)轉(zhuǎn)的時(shí)候有正轉(zhuǎn)和反轉(zhuǎn)指示燈指示。電機(jī)在運(yùn)轉(zhuǎn)過程中,如果過熱,則電機(jī)停止運(yùn)轉(zhuǎn),同時(shí)紅色指示燈亮,同時(shí)警報(bào)響。本題目的關(guān)鍵之處是:如何生成控制步進(jìn)電機(jī)的脈沖序列

11、。第2章 系統(tǒng)結(jié)構(gòu)及主要元器件2.1 設(shè)計(jì)思路步進(jìn)電機(jī)的不同驅(qū)動(dòng)方式,都是在工作時(shí),脈沖信號(hào)按一定順序輪流加到三相繞組上,從而實(shí)現(xiàn)不同的工作狀態(tài)。由于通電順序不同,其運(yùn)行方式有三相單三相拍、三相雙三拍和三相單、雙六拍三種(注意:上面“三相單三拍”中的“三相”指定子有三相繞組;“拍”是指定子繞組改變一次通電方式;“三拍”表示通電三次完成一個(gè)循環(huán)。“三相雙三拍”中的“雙”是指同時(shí)有兩相繞組通電)。(1)三相單三拍運(yùn)行方式:下圖所示為反應(yīng)式步進(jìn)電動(dòng)機(jī)工作原理圖,若通過脈沖分配器輸出的第一個(gè)脈沖使A相繞組通電,B,C相繞組不通電,在A相繞組通電后產(chǎn)生的磁場(chǎng)將使轉(zhuǎn)子 上產(chǎn)生反應(yīng)轉(zhuǎn)矩,轉(zhuǎn)子的1、3齒將與定

12、子磁極對(duì)齊,如果圖(a)所示。第二個(gè)脈沖到來,使B相繞組通電,而A、C相繞組不通電;B相繞組產(chǎn)生的磁場(chǎng)將 使轉(zhuǎn)子的2、4齒與B相磁極對(duì)齊,如圖(b)所示,與圖(a)相比,轉(zhuǎn)子逆時(shí)針方向轉(zhuǎn)動(dòng)了一個(gè)角度。第三個(gè)脈沖到來后,是C相繞組通電,而 A、B相不通電,這時(shí)轉(zhuǎn)子的1、3齒會(huì)與C組對(duì)齊,轉(zhuǎn)子的位置如圖(c)所示,與圖(b)比較,又逆時(shí)針轉(zhuǎn)過了一個(gè)角度。圖 2-1 反應(yīng)式步進(jìn)電機(jī)工作原理圖當(dāng)脈沖不斷到來時(shí),通過分配器使定子的繞組按著A相-B相-C相-A相的規(guī)律不斷地接通與斷開,這時(shí)步進(jìn)電動(dòng)機(jī)的轉(zhuǎn)子就連續(xù)不停地一步步的逆時(shí) 針方向轉(zhuǎn)動(dòng)。如果改變步進(jìn)電動(dòng)機(jī)的轉(zhuǎn)動(dòng)方向,只要將定子各繞組通電的順序改為A相

13、-C相-B相-A相,轉(zhuǎn)子轉(zhuǎn)動(dòng)方向即改為順時(shí)針方向。單三拍分配方式時(shí),步進(jìn)電動(dòng)機(jī)由A相通電轉(zhuǎn)換到B相同點(diǎn),步進(jìn)電動(dòng)機(jī)的轉(zhuǎn)子轉(zhuǎn)過一個(gè)角度,稱為一步。這時(shí)轉(zhuǎn)子轉(zhuǎn)過的角度是30度。步進(jìn)電動(dòng)機(jī)每一步轉(zhuǎn)過的角度稱為步距角。(2)三相雙三拍運(yùn)行方式三相雙三拍運(yùn)行方式:每次都有兩個(gè)繞組通電,通電方式是AB-BC-CA-AB,如果通電順序改為AB-CA-BC-AB則步進(jìn)電機(jī)反轉(zhuǎn)。雙三拍分配方式時(shí),步進(jìn)電動(dòng)機(jī)的步距角也是30度(3)三相單,雙六拍運(yùn)行方式:三相六拍分配方式就是每個(gè)周期內(nèi)有六個(gè)通電狀態(tài)。這六中通電狀態(tài)的順序可以使A-AB-B-BC-C-CA-A或者A- CA-C-BC-B-AB-A六拍通電方式中,有

14、一個(gè)時(shí)刻兩個(gè)繞組同時(shí)通電,這是轉(zhuǎn)子齒的位置將位于通電的兩相的中間位置。在三相六拍分配 方式下,轉(zhuǎn)子每一步轉(zhuǎn)過的角度只是三相三拍方式下的一半,步距角是15度。單三拍運(yùn)行的突出問題是每次只有一相繞組通電,在轉(zhuǎn)換過程中,一相繞組斷電,另一相繞組通電,容易發(fā)生失步;另外單靠一相繞組通電吸引轉(zhuǎn)子,穩(wěn)定性不好,容易在平衡位置附近震蕩,故用的較少。雙三拍運(yùn)行的特點(diǎn)是每次都有兩相繞組通電,且在轉(zhuǎn)換過程中始終有一相繞組保持通電狀態(tài),因此工作穩(wěn)定,且步距角與單三拍相同。六拍運(yùn)行方式轉(zhuǎn)換時(shí)始終有一相繞組通電,且步距角較小,故工作穩(wěn)定性好,但電源較復(fù)雜,實(shí)際應(yīng)用較多。2.2 設(shè)備及工作環(huán)境 (1) 硬件:AT89S5

15、1單片機(jī)一片、35BYJ412步進(jìn)電機(jī)一臺(tái)、ISP下載器一個(gè)、LCD12864顯示器、溫度傳感器18B20芯片。 (2) 軟件:Windows操縱系統(tǒng)、Keil C51軟件。第3章 硬件設(shè)計(jì)3.1 系統(tǒng)硬件設(shè)計(jì)3.1.1最小單片機(jī)系統(tǒng) 圖3-1 最小單片機(jī)系統(tǒng)5V電源:給系統(tǒng)供電。復(fù)位電路:程序跑飛時(shí)復(fù)位電路可以使程序從新執(zhí)行,相當(dāng)于電腦的重啟。晶振:給單片機(jī)運(yùn)行提供時(shí)鐘。比如電腦的2.2GHz頻率。EA接高電平:表示運(yùn)行內(nèi)部程序存儲(chǔ)器下載的程序。P0口接排阻:P0口開漏結(jié)構(gòu),使用時(shí)一般接排阻拉高電平。3.1.2鍵盤設(shè)計(jì)圖3-2 鍵盤設(shè)計(jì)該電路中采用獨(dú)立鍵盤工作方式,共設(shè)有12個(gè)按鍵,分別提供

16、3、6、9、12、15、18、21、24布局選擇功能、鍵盤鎖功能以及步進(jìn)電機(jī)轉(zhuǎn)動(dòng)方向選擇功能。其中有程序決定起作用。3.2 系統(tǒng)工作原理該系統(tǒng)的工作核心CPU為ATMEL公司生產(chǎn)的AT89S51芯片將多種功能的8位CPU與FPEROM(快閃可編程/擦除只讀存儲(chǔ)器)結(jié)合在一個(gè)芯片上,是一種低功耗、高性能的CMOS控制器,為很多嵌入式控制應(yīng)用提供了非常靈活而又價(jià)格適宜的方案,其性能價(jià)格比遠(yuǎn)高于同類芯片。它與MCS-51指令系統(tǒng)兼容,片內(nèi)FPEROM允許對(duì)程序存儲(chǔ)器在線重復(fù)編程,也可用常規(guī)的EPROM編程器編程,可循環(huán)寫入/擦除1000次。89S51內(nèi)含4KB的FPEROM,一般的EEPROM的字節(jié)

17、擦除時(shí)間和寫入時(shí)間基本上均為10ms,對(duì)于任一個(gè)實(shí)時(shí)控制系統(tǒng)來說,這樣長(zhǎng)的時(shí)間是不可能在線修改程序的。CPU為Atmel公司生產(chǎn)的89C51/89C52/89C55等。出廠所配晶振頻率為11.0592MH,每個(gè)機(jī)器周期為1.085us,用戶更換晶振以提高速度;存貯器為64K,前4K/8K20K在CPU內(nèi)部,其它程序在EPR0M27512中;數(shù)據(jù)存貯器為32K(62256),地址為8000FFFFH;/O擴(kuò)展8155,片內(nèi)RAM地址200O-20FFH ;8155命令口地址為2100H ;A口地址21O1H B口地址:2102H C口地址:2103H ;T低八位2104H T高八位2105H ;

18、多路模擬開關(guān)的使用 IN0P1=0F8H IN4:P1=0FCH IN1P1=0F9H IN5:P1=OFDH IN2P1=0FAH IN5:P1=0FEH IN3P1=0FBH IN7:P1=0FFH 不掉電數(shù)據(jù)存貯器為500EH-507FH ;控制板160 x1O9(mm) 供電+5V300mA +12V100mA -12V100mA ;AT89C51是一種低功耗、高性能的片內(nèi)含有4KB快閃可編程/擦除只讀存儲(chǔ)器(FPEROM-Flash Programmable and Eraseable Read Only Memory)的8位CMOS微控制器,使用高密度、非易失存儲(chǔ)技術(shù)制造,并且與8

19、0C51引腳和指令系統(tǒng)完全兼容;主要性能: 與MCS-51 微控制器產(chǎn)品系列兼容;片內(nèi)有4KB可在線重復(fù)編程的快閃擦寫存儲(chǔ)器 。引腳簡(jiǎn)介: 圖3-3 AT89S51引腳整體介紹:該系統(tǒng)采用的芯片還有:DS18B20溫度傳感器、ULN2003A以及MP28GA四相五線步進(jìn)電機(jī),并且步進(jìn)電機(jī)在雙八拍的方式下工作,步矩為 5.625 ,步進(jìn)電機(jī)的旋轉(zhuǎn)方向由正反轉(zhuǎn)控制信號(hào)控制。步進(jìn)電機(jī)的步數(shù)由鍵盤輸入,可通過獨(dú)立鍵盤S1S9輸入的步數(shù)分別為3、6、9、12、15、18、21、24和27步對(duì)應(yīng)的角度為16.875、33.725、151.875,且鍵盤S10具有鍵盤鎖功能,當(dāng)鍵盤上鎖時(shí),步進(jìn)電機(jī)不接受輸入

20、步數(shù),也不會(huì)運(yùn)轉(zhuǎn)。只有當(dāng)鍵盤鎖打開,選擇運(yùn)轉(zhuǎn)方向并且輸入步數(shù)時(shí),步進(jìn)電機(jī)才開始工作。電機(jī)運(yùn)轉(zhuǎn)的時(shí)候有正轉(zhuǎn)指示燈D2和反轉(zhuǎn)指示燈D3指示。電機(jī)在運(yùn)轉(zhuǎn)過程中用溫度傳感器采集步進(jìn)電機(jī)外表溫度(可設(shè)置),如果過熱,則電機(jī)停止運(yùn)轉(zhuǎn),同時(shí)紅色指示燈亮,同時(shí)蜂鳴器警報(bào)響。第4章 軟件設(shè)計(jì)4.1 分析論證此步進(jìn)電機(jī)控制電路設(shè)計(jì)與實(shí)現(xiàn),主要采用了ULN2003A驅(qū)動(dòng)芯片,溫度傳感器芯片DS18B20芯片,獨(dú)立鍵盤等,包含步進(jìn)電機(jī)運(yùn)行驅(qū)動(dòng),溫度采集,主函數(shù)三大功效模塊。步進(jìn)電機(jī)運(yùn)行驅(qū)動(dòng)模塊:由于該系統(tǒng)中沒有完全使用I/O端口,所以采用了獨(dú)立鍵盤的工作方式,系統(tǒng)工作時(shí),鍵盤控制的I/O口處于高電平狀態(tài),當(dāng)按鍵按下時(shí)

21、觸發(fā)低電平,驅(qū)動(dòng)程序?qū)崟r(shí)監(jiān)測(cè)并立即響應(yīng)執(zhí)行相應(yīng)工作。溫度采集模塊的重要功效是對(duì)步進(jìn)電機(jī)的外表采集溫度,并且對(duì)已設(shè)定好的數(shù)值進(jìn)行比較,從而確定機(jī)身溫度是否過高,正常時(shí)電機(jī)正常轉(zhuǎn)動(dòng),當(dāng)溫度過高時(shí)電機(jī)不再轉(zhuǎn)動(dòng),并且蜂鳴器報(bào)警,紅燈點(diǎn)亮。主函數(shù)模塊的重要功效是調(diào)動(dòng)溫度采集函數(shù)、步進(jìn)電機(jī)函數(shù)中函數(shù),實(shí)現(xiàn)模塊化編程。整體功效:AT89S51芯片控制ULN2003A芯片驅(qū)動(dòng)步進(jìn)電機(jī),掃描鍵盤輸入運(yùn)行狀態(tài)以及運(yùn)轉(zhuǎn)步數(shù),當(dāng)電機(jī)外表溫度超過32是電機(jī)停止轉(zhuǎn)動(dòng),并且報(bào)警!4.2 程序流程圖主程序流程圖如圖4-1所示否否是開始報(bào)警,紅燈點(diǎn)亮,步進(jìn)電機(jī)停轉(zhuǎn)等待開鍵盤鎖鍵盤判斷步進(jìn)電機(jī)溫度是否過高?電機(jī)高溫?步進(jìn)電機(jī)運(yùn)轉(zhuǎn)

22、確定輸入步數(shù)初始化程序是否否是開始報(bào)警,紅燈點(diǎn)亮,步進(jìn)電機(jī)停轉(zhuǎn)等待開鍵盤鎖鍵盤判斷步進(jìn)電機(jī)溫度是否過高?電機(jī)高溫?步進(jìn)電機(jī)運(yùn)轉(zhuǎn)確定輸入步數(shù)初始化程序是否否圖4-1主程序流程4.3程序清單步進(jìn)電機(jī)驅(qū)動(dòng)函數(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

23、 k8=P17;sbit k9=P00;sbit k10=P01;sbit k11=P02;sbit k12=P03;void key_scan();void motor_turn();void motor_stop();#endif/BJDJ.c#includeBJDJ.huchar code FFW8=0 xfe,0 xfc,0 xfd,0 xf9,0 xfb,0 xf3,0 xf7,0 xf6;uchar code REV8=0 xf6,0 xf7,0 xf3,0 xfb,0 xf9,0 xfd,0 xfc,0 xfe;uchar rate ;extern uchar i=0; /*/

24、/* 延時(shí) /*/void delay(uchar x) uchar i,j; for(i=0;ix;i+); for(j = 0 ; j110 ; j+) ; /*/*步進(jìn)電機(jī)正轉(zhuǎn)/*/void motor_ffw(uchar x) uchar i,j; for (j=0; jx; j+) /轉(zhuǎn)1*n圈 for (i=0; i8; i+) /一個(gè)周期轉(zhuǎn)45度 P2 = FFWi; /取數(shù)據(jù) delay(150); /調(diào)節(jié)轉(zhuǎn)速 /*/*/*步進(jìn)電機(jī)反轉(zhuǎn)/*/void motor_rev(uchar x) uchar i,j; for (j=0; jx; j+) /轉(zhuǎn)1*n圈 /退出此循環(huán)程序

25、for (i=0; i8; i+) /一個(gè)周期轉(zhuǎn)45度 P2 = REVi; /取數(shù)據(jù) delay(150); /調(diào)節(jié)轉(zhuǎn)速 /*鍵盤掃描*/void key_scan()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=16

26、8;if(k8=0)delay(5);if(k8=0)i=192;if(k9=0)delay(5);if(k9=0)i=216;/*電機(jī)轉(zhuǎn)動(dòng)*/void motor_turn()if(k10=0)delay(5);if(k10=0)P2=P2&0 xf0;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ū)動(dòng)函

27、數(shù):/DS18B20.h#ifndef _DS18B20_H_#define _DS18B20_H_#include#include #define uint unsigned 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#i

28、ncludeDS18B20.hextern uchar data temp_data2=0 x00,0 x00;uchar flag;char presence=1;uchar T;/*11微秒延時(shí)函數(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; / presen

29、ce=0繼續(xù)下一步 delay2(45); /延時(shí)500uspresence = DQ;DQ=1; /*18B20寫命令函數(shù)*/void write_byte(uchar val)uchar i;for (i=8; i0; i-) DQ=1;_nop_();_nop_(); DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();/5usDQ = val&0 x01; /最低位移出delay2(6); /66usval=val/2; /右移一位DQ = 1;delay2(1); /*18B20讀1個(gè)字節(jié)函數(shù)*/uchar read_byte(void)uc

30、har i;uchar value = 0;for (i=8;i0;i-)DQ=1;_nop_();_nop_();value=1;DQ = 0; /_nop_();_nop_();_nop_();_nop_(); /4usDQ = 1;_nop_();_nop_();_nop_();_nop_(); /4us if(DQ)value|=0 x80;delay2(6); /66usDQ=1;return(value);/*讀出溫度函數(shù)*/void read_temp()ow_reset(); /總線復(fù)位write_byte(0 xCC); / 發(fā)Skip ROM命令write_byte(0 x

31、BE); / 發(fā)讀命令temp_data0=read_byte(); /溫度低8位temp_data1=read_byte(); /溫度高8位ow_reset();write_byte(0 xCC); / Skip ROMwrite_byte(0 x44); / 發(fā)轉(zhuǎn)換命令/*溫度數(shù)據(jù)處理函數(shù)*/void work_temp()T=(temp_data0&0 xf0)4)|(temp_data1&0 x07)31)motor_stop(); led1=0;bell=1;delay2(1000);else led1=1;bell=0; motor_turn();第5章 系統(tǒng)仿真及調(diào)試編寫好的源程序在 Keil 編譯后呈現(xiàn)很多錯(cuò)誤,這些錯(cuò)誤有很多時(shí)平時(shí)的實(shí)驗(yàn)碰到過的,例如:字母開頭忘加0,零和字母O弄混雜了,有些標(biāo)號(hào)用了幾次等等,幸好這些錯(cuò)誤在平時(shí)的實(shí)驗(yàn)中碰到了,所以改錯(cuò)誤很輕易。除了常見的錯(cuò)誤外,還有幾條錯(cuò)誤時(shí)在前幾次實(shí)驗(yàn)都沒有出現(xiàn)過,如:AJMP跳轉(zhuǎn)指令跳不回指定的地位,是由于跳轉(zhuǎn)的長(zhǎng)度大

溫馨提示

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

評(píng)論

0/150

提交評(píng)論