




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課 程 設(shè) 計(jì) 任 務(wù) 書(shū)課程名稱 單片機(jī)原理與應(yīng)用 課 題 步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì) 專業(yè)班級(jí) 電氣工程0991 學(xué)生姓名 學(xué) 號(hào) 指導(dǎo)老師 審 批 任務(wù)書(shū)下達(dá)日期 2011 年09 月 05 日 任務(wù)完成日期2011 年 09 月 16 日設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求設(shè)計(jì)內(nèi)容:以單片機(jī)為核心設(shè)計(jì)一個(gè)步進(jìn)電機(jī)控制系統(tǒng),要求能夠通過(guò)鍵盤設(shè)置步進(jìn)電機(jī)的轉(zhuǎn)向和轉(zhuǎn)速,并在4位LED顯示器上顯示步進(jìn)電機(jī)轉(zhuǎn)速或工作狀態(tài)。設(shè)計(jì)要求:1)確定系統(tǒng)設(shè)計(jì)方案; 2)進(jìn)行系統(tǒng)的硬件設(shè)計(jì);3)完成應(yīng)用程序設(shè)計(jì);4)硬件電路及應(yīng)用程序的調(diào)試。主 要 設(shè) 計(jì) 條 件本課題以單片機(jī)為核心,設(shè)計(jì)并制作出步進(jìn)電機(jī)控制系統(tǒng),設(shè)計(jì)要求:1.
2、按下不同的鍵,分別使步進(jìn)電機(jī)實(shí)現(xiàn)順時(shí)針和逆時(shí)針旋轉(zhuǎn);2. 步進(jìn)電機(jī)可實(shí)現(xiàn)正、反轉(zhuǎn),加速、減速、停止等工作狀態(tài);3. 通過(guò)LED數(shù)碼管顯示步進(jìn)電機(jī)運(yùn)行速度或工作狀態(tài);說(shuō) 明 書(shū) 格 式1. 課程設(shè)計(jì)任務(wù)書(shū)2. 目錄3. 總體方案確定4. 各單元硬件電路設(shè)計(jì)說(shuō)明及計(jì)算方法5. 軟件設(shè)計(jì)與說(shuō)明(包括流程圖)6. 調(diào)試結(jié)果與必要的調(diào)試說(shuō)明7. 使用說(shuō)明8、總結(jié)9、參考文獻(xiàn)附錄附錄A 系統(tǒng)原理圖附錄B 程序清單進(jìn) 度 安 排設(shè)計(jì)時(shí)間為兩周第一周星期一、上午:布置課題任務(wù),講課及課題介紹 下午:借閱有關(guān)資料,總體方案討論星期二、系統(tǒng)總體方案星期四、設(shè)計(jì)及調(diào)試星期五、設(shè)計(jì)及調(diào)試第二周星期一、設(shè)計(jì)及調(diào)試星期二
3、、設(shè)計(jì)及調(diào)試星期三、設(shè)計(jì)及調(diào)試星期四、寫說(shuō)明書(shū)星期五、上午:寫說(shuō)明書(shū),整理資料下午:交設(shè)計(jì)資料,答辯參 考 文 獻(xiàn)1王迎旭.單片機(jī)原理及及應(yīng)用.北京:機(jī)械工業(yè)出版社2張迎新.單片微型計(jì)算機(jī)原理、應(yīng)用及接口技術(shù).北京:國(guó)防工業(yè)出版社3郭天祥.新概念51單片機(jī)C語(yǔ)言教程.北京:電子工業(yè)出版社4王曉明.電動(dòng)機(jī)的單片機(jī)控制.北京航空航天大學(xué)出版社 5蔡明文 馮先成編著.單片機(jī)課程設(shè)計(jì).北京:華中科技大學(xué)出版社目錄第1章 目的與要求6第2章 步進(jìn)電機(jī)的原理介紹72.1 步進(jìn)電機(jī)的工作原理72.2 步進(jìn)電機(jī)24BYJ48的相關(guān)電氣參數(shù)82.3 步進(jìn)電機(jī)的基本術(shù)語(yǔ)92.3.1 相數(shù)92.3.2 拍數(shù)92.3
4、.3 步距角92.3.4 信號(hào)分配9第3章 總體設(shè)計(jì)思路103.1 方案與設(shè)計(jì)思路103.2 總框圖11第4章 程序設(shè)計(jì)114.1 主程序114.2 LCD及檔位顯示程序124.3正反轉(zhuǎn)流程圖134.4啟動(dòng)與停止流程圖15第5章 硬件設(shè)計(jì)165.1 硬件的設(shè)計(jì)與選取165.1.1 步進(jìn)電機(jī)的驅(qū)動(dòng)165.1.2 單片機(jī)的選取185.1.3 液晶LCD1602顯示模塊195.1.4 按鍵電路設(shè)計(jì)195.1.5 時(shí)針產(chǎn)生電路205.2 硬件的總體電路連接21第6章 調(diào)試與故障分析226.1 軟件編寫及調(diào)試226.2 調(diào)試過(guò)程及相關(guān)顯示結(jié)果236.3 故障分析及解決方法25第7章 心得體會(huì)26第8章
5、參考文獻(xiàn)27附件28系統(tǒng)原理圖28開(kāi)發(fā)板實(shí)物圖:29元器件清單29源程序清單30第1章 目的與要求 綜合運(yùn)用所學(xué)的單片機(jī)原理與應(yīng)用理論知識(shí),通過(guò)實(shí)踐加強(qiáng)對(duì)所學(xué)知識(shí)的理解,具備設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)的能力,以單片機(jī)為核心設(shè)計(jì)一個(gè)步進(jìn)電機(jī)控制系統(tǒng),要求能夠通過(guò)鍵盤設(shè)置步進(jìn)電機(jī)的轉(zhuǎn)向和轉(zhuǎn)速,并在LED顯示器或者液晶LCD1602上顯示步進(jìn)電機(jī)轉(zhuǎn)速或工作狀態(tài)。本課題以單片機(jī)為核心,設(shè)計(jì)并制作出步進(jìn)電機(jī)控制系統(tǒng),設(shè)計(jì)要求:1、按下不同的鍵,分別使步進(jìn)電機(jī)實(shí)現(xiàn)順時(shí)針和逆時(shí)針旋轉(zhuǎn)。2、電機(jī)運(yùn)轉(zhuǎn)狀態(tài)可以是正反轉(zhuǎn),加速減速,五種不同速度的各種組合。3、通過(guò)LED數(shù)碼管或液晶1602顯示電機(jī)運(yùn)行狀態(tài)。第2章 步進(jìn)電機(jī)
6、的原理介紹2.1 步進(jìn)電機(jī)的工作原理步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。通俗一點(diǎn)講:當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(及步進(jìn)角)??梢酝ㄟ^(guò)控制脈沖個(gè)來(lái)控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)可以通過(guò)控制脈沖頻率來(lái)控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。本次設(shè)計(jì)是采用步進(jìn)電機(jī)28BYJ48型四相八拍電機(jī),電壓為DC5VDC12V。當(dāng)對(duì)步進(jìn)電機(jī)施加一系列連續(xù)不斷的控制脈沖時(shí),它可以連續(xù)不斷地轉(zhuǎn)動(dòng)。每一個(gè)脈沖信號(hào)對(duì)應(yīng)步進(jìn)電機(jī)的某一相或兩相繞組的通電狀態(tài)改變一次,也就對(duì)應(yīng)轉(zhuǎn)子轉(zhuǎn)過(guò)一定的角度(一個(gè)步距角)。當(dāng)通電狀態(tài)的改變完成一個(gè)循環(huán)時(shí),
7、轉(zhuǎn)子轉(zhuǎn)過(guò)一個(gè)齒距。四相步進(jìn)電機(jī)可以在不同的通電方式下運(yùn)行,常見(jiàn)的通電方式有單(單相繞組通電)四拍(A-B-C-D-A。),雙(雙相繞組通電)四拍(AB-BC-CD-DA-AB-。),八拍(A-AB-B-BC-C-CD-D-DA-A。)其相序分配表如下:2.2 步進(jìn)電機(jī)24BYJ48的相關(guān)電氣參數(shù)1.額定電壓:12VDC(另有電壓:5V、6V、24V)2.相數(shù):43.減速比:1/64(另有減速比:1/16、1/32)4.步距角:5.625°/645.驅(qū)動(dòng)方式:4相8拍6.直流電阻:200±7%(25)(按客戶要求而定:80、130歐姆)7.空載牽入頻率:600Hz8.空載牽出
8、頻率:1000Hz9.牽入轉(zhuǎn)矩:34.3mN.m(120Hz)10.自定位轉(zhuǎn)矩:34.3mN.m11.絕緣電阻:10M(500V)12.絕緣介電強(qiáng)度:600VAC/1mA/1S13.絕緣等級(jí):A14.溫升:50K(120Hz)15.噪音:40dB(120Hz)16.重量:大約40g17.未注公差按:GB1804-m18.轉(zhuǎn)向:CCW2.3 步進(jìn)電機(jī)的基本術(shù)語(yǔ)2.3.1 相數(shù)產(chǎn)生不同對(duì)極N、S磁場(chǎng)的激磁線圈對(duì)數(shù),常用m表示。2.3.2 拍數(shù)完成一個(gè)磁場(chǎng)周期性變化所需脈沖數(shù)或?qū)щ姞顟B(tài)用n表示,或指電機(jī)轉(zhuǎn)過(guò)一個(gè)齒距角所需脈沖數(shù),比如說(shuō)本次設(shè)計(jì)中使用的24BYJ48有單(單相繞組通電)四拍(A-B-C
9、-D-A。),雙(雙相繞組通電)四拍(AB-BC-CD-DA-AB-。),八拍(A-AB-B-BC-C-CD-D-DA-A。)2.3.3 步距角對(duì)應(yīng)一個(gè)脈沖信號(hào),電機(jī)轉(zhuǎn)子轉(zhuǎn)過(guò)的角位移用表示。=360度(轉(zhuǎn)子齒數(shù)J*運(yùn)行拍數(shù)),以常規(guī)二相,轉(zhuǎn)子齒為50齒電機(jī)為例。四拍運(yùn)行時(shí)步距角為=360度/(50*4)=1.8度(俗稱整步),八拍運(yùn)行時(shí)步距角為=360度/(50*8)=0.9度(俗稱半步)。2.3.4 信號(hào)分配四相步進(jìn)電機(jī)按照其通電方式的不同,可以分為單四拍,雙四拍和雙八拍三種工作方式。單四拍與雙四拍的步距角相等,均為11.25度,而八拍的步距角則是單四拍與雙四拍的一半,5.625度。單(單相
10、繞組通電)四拍(A-B-C-D-A。),雙(雙相繞組通電)四拍(AB-BC-CD-DA-AB-。),八拍 (A-AB-B-BC-C-CD-D-DA-A。)。這里選取的是雙相八拍的工作方式。 第3章 總體設(shè)計(jì)思路3.1 方案與設(shè)計(jì)思路因?yàn)椴竭M(jìn)電機(jī)的控制是通過(guò)脈沖信號(hào)來(lái)控制的,將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開(kāi)環(huán)控制元件。所以怎樣產(chǎn)生這個(gè)脈沖信號(hào)和產(chǎn)生怎樣的信號(hào)是電機(jī)控制的關(guān)鍵。用單片機(jī)來(lái)產(chǎn)生這個(gè)脈沖信號(hào),通過(guò)單片機(jī)的P1口輸出脈沖信號(hào),因?yàn)樗x電機(jī)是四相的,所以只需要P1口的低四位P1.0P1.3分別接到電機(jī)的四根電線上。定時(shí)器定時(shí)來(lái)調(diào)整電機(jī)的轉(zhuǎn)速,通過(guò)鍵盤的按鈕,就可以改變定時(shí)初值從而改變了
11、電機(jī)的轉(zhuǎn)速,單片機(jī)上P3.2P3.5連的是按鍵,這里鍵盤上的K1鍵為啟動(dòng)與停止鍵,K2鍵為減速鍵,K3鍵為加速鍵,K4鍵為方向轉(zhuǎn)換鍵。P0以及P2.0P2.2口接LCD1602,可以顯示當(dāng)前的電機(jī)轉(zhuǎn)速、運(yùn)行狀態(tài)、運(yùn)行方向和檔位。具體結(jié)構(gòu)見(jiàn)3-1框圖。3.2 總框圖圖3-1 總體設(shè)計(jì)方框圖第4章 程序設(shè)計(jì)4.1 主程序進(jìn)入主程序,首先是對(duì)LCD進(jìn)行初始化,然后依次進(jìn)行鍵盤掃描,調(diào)用步進(jìn)電機(jī)相關(guān)數(shù)據(jù)顯示子函數(shù),若檢測(cè)到有鍵按下,則進(jìn)去相應(yīng)的處理。流程圖如下圖4-1:4-1圖 主程序流程圖4.2 LCD及檔位顯示程序此次設(shè)計(jì)使用1602液晶顯示步進(jìn)電機(jī)運(yùn)行狀態(tài),其效果比用數(shù)碼管顯示要更加明了,也更容
12、易讀取相關(guān)狀態(tài)和數(shù)據(jù)。液晶上顯示有電機(jī)運(yùn)行的狀態(tài)(RUNNING或STOP)、當(dāng)前檔位(DW)、運(yùn)行方向("<<"或">>")以及其運(yùn)轉(zhuǎn)速度(r/min)。其顯示原理如下圖4-2:圖4-2 液晶顯示流程圖4.3正反轉(zhuǎn)流程圖步進(jìn)電機(jī)的正反轉(zhuǎn)用K4控制,初始化電機(jī)為順時(shí)針轉(zhuǎn),即“”,每當(dāng)按下K4鍵,電機(jī)轉(zhuǎn)向改變,具體流程圖如下圖4-3:4.4啟動(dòng)與停止流程圖啟動(dòng)與停止是用K1鍵來(lái)控制的,初始化標(biāo)志位on_off=0,檔按下K1,即將on_off置1,每當(dāng)按下k1,都將在啟動(dòng)與停止間切換,具體流程圖如下圖4-4:圖4-4 啟動(dòng)與停止流程
13、圖第5章 硬件設(shè)計(jì)5.1 硬件的設(shè)計(jì)與選取5.1.1 步進(jìn)電機(jī)的驅(qū)動(dòng)步進(jìn)電機(jī)的驅(qū)動(dòng)采用ULN2003,接到單片機(jī)的P1.0P1.3,具體如圖5-1:圖5-1 步進(jìn)電機(jī)驅(qū)動(dòng)及其接口圖5.1.2 單片機(jī)的選取目前市面上的通用型單片機(jī)種類很多,且適合不同應(yīng)用場(chǎng)合的新產(chǎn)品不斷出現(xiàn),但目前的應(yīng)用狀況,以8位中檔MCS-51系列單片機(jī)的應(yīng)用最為普遍?;谶@次課程設(shè)計(jì)的要求不高,我們可以選用51系列或52系列單片機(jī),其有可靠性高,易于擴(kuò)展以及實(shí)用性好等特點(diǎn),完全可以滿足我們的控制要求。其圖如下5-2:圖5-2 AT89C52單片機(jī)5.1.3 液晶LCD1602顯示模塊P0接液晶的數(shù)據(jù)傳送口,P2.0P2.2
14、接液晶的控制端口。其接線圖如下圖5-3:圖5-3 液晶與單片機(jī)接口原理圖5.1.4 按鍵電路設(shè)計(jì)鍵盤接口按不同標(biāo)準(zhǔn)有不同分類方法,按鍵盤排布,可以分為獨(dú)立方式(一組相互獨(dú)立的鍵盤)和矩陣(一行列組成矩陣)方式。此次設(shè)計(jì)只用到了四個(gè)按鍵,故可采用獨(dú)立按鍵,P3.2P3.5分別接到K1K4。其原理圖如下圖5-4:圖5-4 按鍵與單片機(jī)接口原理圖5.1.5 時(shí)針產(chǎn)生電路時(shí)針電路部分晶振為11.0592MHz,其原理圖如下:圖5-4 時(shí)針電路5.2 硬件的總體電路連接圖 5-5 總體原理圖第6章 調(diào)試與故障分析6.1 軟件編寫及調(diào)試此次編程及調(diào)試是用keil軟件進(jìn)行的,程序的編寫及調(diào)試步驟如下:1.
15、根據(jù)步進(jìn)電機(jī)24BYJ48的相序,編好正反轉(zhuǎn)相序表,這個(gè)是關(guān)鍵,不能編錯(cuò)。2.定義各個(gè)變量及相關(guān)液晶顯示符:uchar code cdis0 = " WELCOME TO "uchar code cdis1 = " STEPPING MOTOR "uchar code cdis2 = " CONTROL SYSTEM "uchar code cdis3 = "STOP "uchar code cdis4 = "DW:"uchar code cdis5 = "RUNNING"u
16、char code cdis6 = "r/min"3. 定義各個(gè)按鍵:sbit K1 = P32; /運(yùn)行與停止sbit K2 = P33; /加速sbit K3 = P34; /減速sbit K4 = P35; /方向轉(zhuǎn)換sbit BEEP = P36; /蜂鳴器4. 編寫各個(gè)子程序。5. 編寫主程序,進(jìn)入主程序即開(kāi)始進(jìn)行鍵盤掃描及調(diào)用液晶顯示。6. 定時(shí)器T0的中斷服務(wù)程序,進(jìn)入中斷,若滿足條件,即向步進(jìn)電機(jī)送8個(gè)脈沖。6.2 調(diào)試過(guò)程及相關(guān)顯示結(jié)果 將程序下載到單片機(jī)中,LCD初始化顯示如下:之后進(jìn)入步進(jìn)電機(jī)初始化的畫(huà)面顯示,電機(jī)運(yùn)行狀態(tài)顯示為STOP,檔位為5檔,開(kāi)
17、機(jī)轉(zhuǎn)速為2.66r/min,如下: 實(shí)物圖如下:按下啟動(dòng)鍵K1后,轉(zhuǎn)向顯示出顯示"",即電機(jī)順時(shí)針轉(zhuǎn),顯示如下:按K2鍵一次,檔位加一,高位檔為10檔,此時(shí)對(duì)應(yīng)電機(jī)轉(zhuǎn)速為最慢,為1.33r/min,如下圖:實(shí)物圖顯示如下:按下K3鍵一次,檔位減一,低位檔為1檔,也是電機(jī)轉(zhuǎn)速最快的檔,為13.32r/min,顯示效果如下圖:實(shí)物圖顯示如下:6.3 故障分析及解決方法故障一:首先在設(shè)計(jì)總體方案時(shí),思路上出現(xiàn)了一些問(wèn)題,我首先是想在中斷里完成許多應(yīng)在中斷之外完成的事,經(jīng)過(guò)老師的指點(diǎn),后來(lái)想清楚了。只在中斷中給電機(jī)送相序碼,并設(shè)定了一個(gè)參數(shù)對(duì)電機(jī)的轉(zhuǎn)速進(jìn)行調(diào)控。故障二:由于編寫程序
18、的經(jīng)驗(yàn)不多,在計(jì)算電機(jī)轉(zhuǎn)速,并將其顯示在液晶時(shí),遇到了一些問(wèn)題,速度轉(zhuǎn)換公式是找出來(lái)了,但怎樣將其小數(shù)點(diǎn)表示出來(lái),困惑了好久,最后還是請(qǐng)教了同學(xué),才搞定。故障三:在仿真時(shí)首先液晶沒(méi)有接上拉電阻,液晶上顯示不出來(lái),我以為是程序方面出了問(wèn)題,后來(lái)嘗試接了上拉電阻,就能夠正常顯示了。第7章 心得體會(huì)為期兩周的單片機(jī)課程設(shè)計(jì)在忙碌中已接近尾聲,經(jīng)過(guò)這么多天的努力,終于完成了這次課程設(shè)計(jì)基本設(shè)計(jì)要求,在充實(shí)中也學(xué)到了很多知識(shí),是真正將所學(xué)知識(shí)運(yùn)用于實(shí)踐中的一次很好的體驗(yàn),使人受益匪淺。由于此次控制要求不是很高,選用51系列或52系列完全能夠滿足設(shè)計(jì)需求,最后選用的STC89C52。接下來(lái)就是硬件接口分配
19、問(wèn)題和如何去驅(qū)動(dòng)電機(jī)。對(duì)于步進(jìn)電機(jī)之前沒(méi)有什么接觸,所以我上網(wǎng)查了許多關(guān)于步進(jìn)電機(jī)的資料,知道了其基本工作原理以及怎么去實(shí)現(xiàn)其控制運(yùn)轉(zhuǎn)和驅(qū)動(dòng)。接下來(lái)的主要問(wèn)題就是如何編程去實(shí)現(xiàn)控制它了,這次程序的編寫和調(diào)試對(duì)我來(lái)說(shuō)是個(gè)不小的挑戰(zhàn),因?yàn)橹爸痪帉戇^(guò)一些簡(jiǎn)短的小程序,對(duì)較大的程序總體性方面還不能很好的把握。經(jīng)過(guò)反復(fù)的嘗試和調(diào)試,用發(fā)現(xiàn)一個(gè)問(wèn)題,解決一個(gè)問(wèn)題的方法,還參考了一些別人的經(jīng)驗(yàn)方法,完成了程序的編寫。這對(duì)我以后編寫程序是一次很好的經(jīng)驗(yàn)積累。仿真時(shí)也出了一些小問(wèn)題,首先LCD完全沒(méi)有顯示,我就嘗試接上拉電阻,結(jié)果就能正常工作了。然后是電機(jī)也不轉(zhuǎn),最后我把送進(jìn)去的脈沖頻率減小,才使得電機(jī)運(yùn)轉(zhuǎn)起
20、來(lái),這個(gè)仿真過(guò)程又使我更加熟練了Proteus軟件的用法。這次課程設(shè)計(jì)使我認(rèn)識(shí)到,剛學(xué)好書(shū)上的知識(shí)還是不夠的,更重要的是我們要能將所學(xué)的知識(shí)運(yùn)用到實(shí)踐中來(lái),這才是我們學(xué)習(xí)知識(shí)的最基本的要求,所以在以后的學(xué)習(xí)生活中,我們應(yīng)該更加注意將學(xué)習(xí)與實(shí)踐相結(jié)合,在實(shí)踐中去運(yùn)用好所學(xué)知識(shí),更進(jìn)一步深化和理解所學(xué)知識(shí),達(dá)到學(xué)以致用。通過(guò)這次課程設(shè)計(jì),我也了解到了自己的不足,以前自己學(xué)習(xí)單片機(jī)的時(shí)候,往往只去看懂別人寫的程序,以為看懂了自己就知道寫了,但事實(shí)并不是這樣,雖然這次課程設(shè)計(jì)程序是完成了,但棘手的地方很多,編程并不像以前認(rèn)為的簡(jiǎn)單。所以在以后的學(xué)習(xí)中,不能手高眼低,一定要腳踏實(shí)地,一步步地走,自己動(dòng)手
21、去做,這樣才能將知識(shí)真正學(xué)到手。這次課程設(shè)計(jì)能得以順利完成,還要感謝李曉秀老師的指導(dǎo),在老師指導(dǎo)下,很多問(wèn)題問(wèn)題都很好地解決了??傊?,雖然只是短短兩周的時(shí)間,但也學(xué)到了很多,感受很深,是一次很好的經(jīng)驗(yàn)積累和設(shè)計(jì)經(jīng)歷。第8章 參考文獻(xiàn)1王迎旭.單片機(jī)原理及及應(yīng)用.北京:機(jī)械工業(yè)出版社2張迎新.單片微型計(jì)算機(jī)原理、應(yīng)用及接口技術(shù).北京:國(guó)防工業(yè)出版社3郭天祥.新概念51單片機(jī)C語(yǔ)言教程.北京:電子工業(yè)出版社4蔡明文 馮先成編著.單片機(jī)課程設(shè)計(jì).北京:華中科技大學(xué)出版社5王曉明.電動(dòng)機(jī)的單片機(jī)控制.北京航空航天大學(xué)出版社 附件系統(tǒng)原理圖開(kāi)發(fā)板實(shí)物圖:元器件清單單片機(jī)開(kāi)發(fā)板 1塊STC89C52 1片
22、LCD1602 1塊ULN2003 1個(gè)步進(jìn)電機(jī) 1個(gè)源程序清單#include <reg51.h> /51芯片管腳定義頭文件#include <intrins.h> /內(nèi)部包含延時(shí)函數(shù) _nop_();#define uchar unsigned char#define uint unsigned int#define delayNOP(); _nop_();_nop_();_nop_();_nop_();uchar code FFW8=0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9; /正轉(zhuǎn)相序編碼表uchar code REV8=0
23、xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1;/反轉(zhuǎn)相序編碼表sbit K1 = P32; /運(yùn)行與停止sbit K2 = P33; /加速sbit K3 = P34; /減速sbit K4 = P35; /方向轉(zhuǎn)換sbit BEEP = P36; /蜂鳴器sbit LCD_RS = P20; sbit LCD_RW = P21;sbit LCD_EN = P22;bit on_off=0; /運(yùn)行與停止標(biāo)志bit direction=1; /方向標(biāo)志uchar code cdis0 = " WELCOME TO "uchar code cd
24、is1 = " STEPPING MOTOR "uchar code cdis2 = " CONTROL SYSTEM "uchar code cdis3 = "STOP "uchar code cdis4 = "DW:"uchar code cdis5 = "RUNNING"uchar code cdis6 = "r/min"uchar code cdis7 = "RATE:"uchar m,v=0,q=0,j;uchar rate=5; /預(yù)設(shè)定速度檔
25、uchar data_temP1,data_temp2,data_temp3,data_temp4; uint zs,data_temp;/*/void delay(uint t) / 延時(shí)t毫秒函數(shù) uchar k; while(t-) for(k=0; k<125; k+) /*/void delayB(uchar x) /x*0.14MS uchar i; while(x-) for (i=0; i<13; i+) /*/void beep() /蜂鳴器 uchar j; for (j=0;j<100;j+) delayB(4); BEEP=!BEEP; /BEEP取反
26、 BEEP=1; /關(guān)閉蜂鳴器 delay(170); /*/ bit lcd_busy() /檢查L(zhǎng)CD是否為忙狀態(tài),lcd_busy為1時(shí),忙,等待。為0時(shí),閑,可寫指令與數(shù)據(jù)。 bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(P0&0x80); LCD_EN = 0; return(result); /*/void lcd_wcmd(uchar cmd)/寫指令數(shù)據(jù)到LCD ,*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。 while(lcd_busy(); LCD_RS
27、 = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); P0 = cmd; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; /*/void lcd_wdat(uchar dat)/寫顯示數(shù)據(jù)到LCD,RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。 while(lcd_busy(); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; /*/void lcd_init()
28、/LCD初始化設(shè)定 delay(30); lcd_wcmd(0x38); /16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù) delay(5); lcd_wcmd(0x38); delay(5); lcd_wcmd(0x38); delay(5); lcd_wcmd(0x0c); /顯示開(kāi),關(guān)光標(biāo) delay(5); lcd_wcmd(0x06); /移動(dòng)光標(biāo) delay(5); lcd_wcmd(0x01); /清除LCD的顯示內(nèi)容 delay(5); /*/void lcd_pos(uchar pos)/設(shè)定顯示位置 lcd_wcmd(pos | 0x80); /數(shù)據(jù)指針=80+地址變量 /*/void
29、 LCD_init_DIS()/ LCD1602初始顯示子程序 delay(10); /延時(shí) lcd_init(); /初始化LCD lcd_pos(0); /設(shè)置顯示位置為第一行的第1個(gè)字符 m = 0; while(cdis0m != '0') /顯示字符WELCOME lcd_wdat(cdis0m); m+; delay(2000); lcd_wcmd(0x01); /清屏 delay(5); /清屏以后的這個(gè)延時(shí)不能少,給LCD一定的緩沖,否則下一條指令不一定被執(zhí)行 lcd_pos(0x10); /設(shè)置顯示位置為第一行的第17個(gè)地址 m = 0; while(cdis
30、1m != '0') /顯示字符 lcd_wdat(cdis1m); m+; lcd_pos(0x50); /設(shè)置顯示位置為第二行第1個(gè)字符 m = 0; while(cdis2m != '0') lcd_wdat(cdis2m); /顯示字符 m+; for(j=0;j<16;j+) lcd_wcmd(0x18); delay(300); delay(3000); /延時(shí) lcd_wcmd(0x01); /清屏 lcd_pos(0x00); /設(shè)置顯示位置為第一行的第1個(gè)字符 m = 0; while(cdis3m != '0') /顯示
31、字符STOP lcd_wdat(cdis3m); m+; lcd_pos(0x08); /設(shè)置顯示位置為第一行第9個(gè)字符 m = 0; while(cdis4m != '0') lcd_wdat(cdis4m); /顯示字符DW m+; for(m=0;m<2;m+) lcd_pos(0x0e+m); /顯示方向符號(hào) lcd_wdat(0x2d); lcd_pos(0x47); /顯示小數(shù)點(diǎn) lcd_wdat(0x2e); m = 0; lcd_pos(0x4a); /顯示字符r/min while(cdis6m != '0') lcd_wdat(cdis
32、6m); m+; m = 0; lcd_pos(0x40); /顯示字符RATE: while(cdis7m != '0') lcd_wdat(cdis7m); m+; /*/void data_conv()/檔位數(shù)據(jù)轉(zhuǎn)換子程序 data_temP1=data_temp/10; /高位 if(data_temP1=0) data_temP1=0x20;/高位為0不顯示 else data_temP1=data_temP1+0x30; data_temp2=data_temp%10; /低位 data_temp2=data_temp2+0x30; /*/void data_con
33、v1()/轉(zhuǎn)速數(shù)據(jù)轉(zhuǎn)換子程序 data_temP1=data_temp/1000;/整數(shù)位第一位 if(data_temP1=0) data_temP1=0x20;/高位為0不顯示 else data_temP1=data_temP1+0x30; data_temp2=data_temp%1000/100; /整數(shù)位第2位 data_temp2=data_temp2+0x30; data_temp3=data_temp%100/10; /小數(shù)位第一位 data_temp3=data_temp3+0x30; data_temp4=data_temp%10; /小數(shù)位第二位 data_temp4=
34、data_temp4+0x30; /*/void data_dis() /數(shù)據(jù)顯示子程序 data_temp = rate; /顯示檔位 data_conv(); lcd_pos(0x0b); lcd_wdat(data_temP1); lcd_pos(0x0c); lcd_wdat(data_temp2); zs=1332/rate;/轉(zhuǎn)速換算公式:zs=13.32/rate;data_temp=zs; /顯示轉(zhuǎn)速data_conv1(); lcd_pos(0x45); lcd_wdat(data_temP1); lcd_pos(0x46); lcd_wdat(data_temp2); lc
35、d_pos(0x48); lcd_wdat(data_temp3); lcd_pos(0x49); lcd_wdat(data_temp4);/*/void motor_DR()/顯示運(yùn)行方向符號(hào) if(direction=1) /正轉(zhuǎn)方向標(biāo)志 for(m=0;m<2;m+) lcd_pos(0x0e+m); /顯示方向符號(hào) lcd_wdat(0x3e);/顯示>>號(hào) else for(m=0;m<2;m+) /反轉(zhuǎn)方向標(biāo)志 lcd_pos(0x0e+m); /顯示方向符號(hào) lcd_wdat(0x3c); /顯示<<號(hào) /*/void motor_RUN() /顯示運(yùn)行狀態(tài) if(on_off=1) TR0=1; lcd_pos(0); /設(shè)置顯示位置為第一行的第1個(gè)字符 m = 0; while(cdis5m != '0') lcd_wdat(cdis5m); /RUNNING m+; motor_DR(); else TR0=0; P1 =0x0f; lcd_pos(0); /設(shè)置顯示位置為第一行的第1個(gè)字符 m = 0; while(cdis3m
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025渭南合陽(yáng)縣煤炭事務(wù)中心招聘(12人)筆試參考題庫(kù)附帶答案詳解
- 2025河南商丘市實(shí)達(dá)國(guó)際人力資源合作有限公司招聘輔助人員30人筆試參考題庫(kù)附帶答案詳解
- 2025年京能服務(wù)內(nèi)蒙分錫林郭勒項(xiàng)目招聘10人筆試參考題庫(kù)附帶答案詳解
- 廣東新安職業(yè)技術(shù)學(xué)院《英語(yǔ)翻譯實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 中國(guó)傳媒大學(xué)《生物醫(yī)學(xué)檢驗(yàn)技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海外國(guó)語(yǔ)大學(xué)《華為HCIA-GausDB應(yīng)用開(kāi)發(fā)》2023-2024學(xué)年第二學(xué)期期末試卷
- 華東理工大學(xué)《商業(yè)倫理》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇航運(yùn)職業(yè)技術(shù)學(xué)院《論文成果》2023-2024學(xué)年第二學(xué)期期末試卷
- 阜陽(yáng)師范大學(xué)《焊接結(jié)構(gòu)》2023-2024學(xué)年第二學(xué)期期末試卷
- 沈陽(yáng)城市建設(shè)學(xué)院《傳感器技術(shù)理論教學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 高中數(shù)學(xué)知識(shí)點(diǎn)全總結(jié)PPT
- 文檔簡(jiǎn)譜視唱
- 中考英語(yǔ)初中必會(huì)英語(yǔ)語(yǔ)法匯總
- 工業(yè)機(jī)器人22手部設(shè)計(jì)-23腕部設(shè)計(jì)課件
- DLT-969-2023年變電站運(yùn)行導(dǎo)則
- 人教版小學(xué)三年級(jí)數(shù)學(xué)下冊(cè)面積練習(xí)
- 2023年湖南省長(zhǎng)沙市中考語(yǔ)文真題試卷【含答案】
- 2022北京西城區(qū)初一期末(下)道法試卷及答案
- 2023年被告民事訴訟答辯狀
- (2020)中國(guó)兒童阻塞性睡眠呼吸暫停診斷與治療指南
- 監(jiān)獄圍欄施工組織設(shè)計(jì)方案范本
評(píng)論
0/150
提交評(píng)論