freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于51單片機的步進(jìn)電機控制系統(tǒng)單片機課程設(shè)計報告(編輯修改稿)

2025-04-08 06:56 本頁面
 

【文章內(nèi)容簡介】 口電路 用于連接 1602 液晶, — 分別接 RS、 RW、 EN, P0 口接數(shù)據(jù)指令輸入口。 二、步進(jìn)電機驅(qū)動及接口電路 本電路模塊用于單片機對步進(jìn)電機的控制及使用 ULN2021 芯片對步進(jìn)電機進(jìn)行驅(qū)動。 原理圖如下: 由于所選 24BYJ48 步進(jìn)電機 為四相步進(jìn)電機,故只需 4 個單片機 IO 口控制,此處使用單片機的 IO 口 ,使用 ULN2021 的引腳 14做輸入, 1613引腳做輸出口。 三、按鍵電路 本次設(shè)計為了便于今后功能擴(kuò)展使用了 8 個按鍵。 原理圖如下: 第四章 程序設(shè)計 進(jìn)入主程序后首先進(jìn)行 LCD 初始化和定時器中斷初始化,之后進(jìn)行依次對按鍵進(jìn)行掃描,當(dāng)檢測到相應(yīng)的按鍵按下時,即執(zhí)行相應(yīng)的功能。 系統(tǒng)流程圖如下: 開始L C D 初始化定時器中斷初始化o n _ o ff取非,電機啟動K1 被按下? K3 被按下?K2 被按下?K4 被按下?K5 被按下?調(diào)速,電機運轉(zhuǎn)速率加一或減一R A T E 最大時速率最小(到預(yù)設(shè)最大值或最小值時加減轉(zhuǎn)換)電機當(dāng)前狀態(tài)為運行還是停止?o n _ o ff取非,電機停止運行當(dāng)前為正轉(zhuǎn)還是反轉(zhuǎn)?d ir e c t io n 取非,正轉(zhuǎn)d ir e c t io n 取非,反轉(zhuǎn)設(shè)置欲轉(zhuǎn)圈數(shù)圈數(shù)加一或減一(到預(yù)設(shè)最大值或最小值時加減轉(zhuǎn)換)點動,調(diào)用 m o t o r _ R U N 1 ( ) 。使用定時器 1 實現(xiàn)是是運行停止是是否否 否否是是反轉(zhuǎn) 正轉(zhuǎn)否否是是否否是是否否 第五章 系統(tǒng)調(diào)試 經(jīng)過對程序的反復(fù)修改,調(diào)試之后,系統(tǒng)可以實現(xiàn) 電機運行、停止,設(shè)置運行圈數(shù),調(diào)節(jié)轉(zhuǎn)速,電機正反 轉(zhuǎn),點動等功能,同時液晶顯示相應(yīng)的狀態(tài)。 第六章 心得體會 為其近一個月的單片機課程設(shè)計結(jié)束了,在這一個月中我收獲了很多,感到很有意義。 早在大二自學(xué)單片機時我就注意到步進(jìn)電機這種器件,但當(dāng)時只是略作了解,沒有學(xué)習(xí)它的原理與編程控制,這次借課程設(shè)計的機會,我得以對步進(jìn)電機進(jìn)行了較為深入的了解和學(xué)習(xí)。 在課設(shè)的前期我通過查閱了許多資料,學(xué)習(xí)了步進(jìn)電機的工作原理。之后我開始考慮整體硬件電路的設(shè)計,顯示、驅(qū)動電路的設(shè)計,最終選擇使用28BYJ48 型步進(jìn)電機、 ULN2021 驅(qū)動芯片、 1602 液晶顯示。在這之后我開始考 慮要實現(xiàn)的電機功能, 最后決定實現(xiàn)電機運行、停止,設(shè)置運行圈數(shù),調(diào)節(jié)轉(zhuǎn)速,電機正反轉(zhuǎn),點動等功能。在完成了原理圖與 PCB圖繪制、電路元件焊接后,我開始著手進(jìn)行程序設(shè)計。通過查閱資料我了解到控制步進(jìn)電機的關(guān)鍵是利用定時器中斷控制脈沖的快慢、順序來調(diào)節(jié)電機轉(zhuǎn)速、正反轉(zhuǎn)等狀態(tài)。以此為基礎(chǔ)我開始了程序設(shè)計與調(diào)試,在這個過程中我遇到過一些困難,最后通過深入的學(xué)習(xí)、不斷修改程序和同學(xué)的幫助終于得到解決。最終,本次課程設(shè)計完成了預(yù)想的對步進(jìn)電機的幾項基本控制功能。 步進(jìn)電機調(diào)速系統(tǒng)適用各種現(xiàn)場自動化控制,特別應(yīng)用于小功率負(fù) 載的控制;具有成本底,性能穩(wěn)定 ,可靠性高等優(yōu)點。我覺得通過這次課程設(shè)計我對步進(jìn)電機的基本控制得到了掌握,這對今后我在學(xué)習(xí)、工作的諸多應(yīng)用場合中很可能會有用武之地。 另外,在這次課設(shè)過程中涉及的 LCD1602 控制等內(nèi)容也對我很有幫助。通過本次課設(shè)我對 51單片機的編程控制、定時器中斷等知識也得到了充分的復(fù)習(xí)鞏固。 總之,這次課設(shè)讓我受益匪淺,感謝邱應(yīng)強老師一學(xué)期來單片機課程的悉心教導(dǎo),這些是我完成本次課設(shè)的基礎(chǔ)和關(guān)鍵。 附件 一、 電路原理圖 二、 電路 PCB圖 三、 電路實物圖 四、 源程序 include include //內(nèi)部包含延時函數(shù) _nop_()。 define uchar unsigned char define uint unsigned int define delayNOP()。 {_nop_()。_nop_()。_nop_()。_nop_()。}。 uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}。 //正轉(zhuǎn)相序編碼 uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1}。 sbit K1 = P3^0。 //運行與停止 sbit K2 = P3^1。 //設(shè)圈數(shù) sbit K3 = P3^2。 //方向轉(zhuǎn)換 sbit K4 = P3^3。 //轉(zhuǎn)速加 sbit K5 = P3^4。 //點動 sbit K6 = P3^5。 sbit K7 = P3^6。 sbit K8 = P3^7。 sbit LCD_RS = P2^0。 sbit LCD_RW = P2^1。 sbit LCD_EN = P2^2。 bit on_off=0,on_off1=0。 //運行與停止標(biāo)志 bit direction=1。 //方向標(biāo)志 bit rate_dr=1。 //速率標(biāo)志 bit snum_dr=1。 //圈數(shù)標(biāo)志 uchar code cdis1[ ] = { STEPPING MOTOR }。 uchar code cdis2[ ] = {CONTROL PROCESS}。 uchar code cdis3[ ] = { STOP }。 uchar code cdis4[ ] = {NUM: RATE: }。 uchar code cdis5[ ] = { RUNNING }。 uchar code cdis6[ ] = { DIAN DONG }。 uchar m,v=0,q=0,q1。 uint number=0,number1=0。 uchar snum=10,snum1=10,number2=0。 //預(yù)設(shè)定圈數(shù) uchar rate=2,rate_ctr。 //預(yù)設(shè)定速率 uchar data_temp,data_temP1,data_temp2。 /********************************************************/ /* /* 延時 t毫秒 /* 時鐘,延時約 1ms /* /********************************************************/ void delay(uint t) //tms { uchar k。 while(t) { for(k=0。 k125。 k++) { } } } /********************************************************/ void delayB(uchar x) //x* { uchar i。 while(x) { for (i=0。 i13。 i++) { } } } /********************************************************/ /********************************************************/ /* /*檢查 LCD 忙狀態(tài) /*lcd_busy 為 1 時,忙,等待。為 0時 ,閑,可寫指令與數(shù)據(jù)。 /* /********************************************************/ bit lcd_busy() { bit result。 LCD_RS = 0。 LCD_RW = 1。 LCD_EN = 1。 delayNOP()。 result = (bit)(P0amp。0x80)。 LCD_EN = 0。 return(result)。 } /********************************************************/ /* /*寫指令數(shù)據(jù)到 LCD /*RS=L, RW=L, E=高脈沖, D0D7=指令碼。 /* /********************************************************/ void lcd_wcmd(uchar cmd) { while(lcd_busy())。 LCD_RS = 0。 LCD_RW = 0。 LCD_EN = 0。 _nop_()。 _nop_()。 P0 = cmd。 delayNOP()。 LCD_EN = 1。 delayNOP()。 LCD_EN = 0。 } /**********************************
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1