版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 物聯(lián)網(wǎng)工程學(xué)院</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 課程名稱: 單片機(jī)原理及應(yīng)用 </p><p> 設(shè)計(jì)題目:基于單片機(jī)的步進(jìn)電機(jī)控制器的設(shè)計(jì) 班
2、級(jí): 自動(dòng)化****班 </p><p> 姓 名: *** 學(xué) 號(hào): 0704**** </p><p> 指導(dǎo)教師: *** 評(píng) 分: </p><p> 2013年 6 月 29 日</p><
3、;p><b> 一,步進(jìn)電機(jī)概述</b></p><p> 步進(jìn)電動(dòng)機(jī)又稱脈沖電動(dòng)機(jī)或階躍電動(dòng)機(jī),國(guó)外一般稱為Steppingmotor、 Pulse motor或Stepper servo,其應(yīng)用發(fā)展已有約80年的歷史。步進(jìn)電機(jī)是一種把電脈沖信號(hào)變成直線位移或角位移的控制電機(jī),其位移速度與脈沖頻率成正比,位移量與脈沖數(shù)成正比。步進(jìn)電機(jī)在結(jié)構(gòu)上也是由定子和轉(zhuǎn)子組成,可以對(duì)旋轉(zhuǎn)角度和
4、轉(zhuǎn)動(dòng)速度進(jìn)行高精度控制。當(dāng)電流流過(guò)定子繞組時(shí),定子繞組產(chǎn)生一矢量磁場(chǎng),該矢量場(chǎng)會(huì)帶動(dòng)轉(zhuǎn)子旋轉(zhuǎn)一角度,使得轉(zhuǎn)子的一對(duì)磁極磁場(chǎng)方向與定子的磁場(chǎng)方向一著該磁場(chǎng)旋轉(zhuǎn)一個(gè)角度。因此,控制電機(jī)轉(zhuǎn)子旋轉(zhuǎn)實(shí)際上就是以一定的規(guī)律控制定子繞組的電流來(lái)產(chǎn)生旋轉(zhuǎn)的磁場(chǎng)。每來(lái)一個(gè)脈沖電壓,轉(zhuǎn)子就旋轉(zhuǎn)一個(gè)步距角,稱為一步。根據(jù)電壓脈沖的分配方式,步進(jìn)電機(jī)各相繞組的電流輪流切換,在供給連續(xù)脈沖時(shí),就能一步一步地連續(xù)轉(zhuǎn)動(dòng),從而使電機(jī)旋轉(zhuǎn)。步進(jìn)電機(jī)每轉(zhuǎn)一周的步數(shù)相同,在
5、不丟步的情況下運(yùn)行,其步距誤差不會(huì)長(zhǎng)期積累。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響,同時(shí)步進(jìn)電機(jī)只有周期性的誤差而無(wú)累積誤差,精度高,步進(jìn)電動(dòng)機(jī)可以在寬廣的頻率范圍內(nèi)通過(guò)改變脈沖頻率</p><p> 正是由于步進(jìn)電機(jī)具有突出的優(yōu)點(diǎn),廣泛應(yīng)用在各種自動(dòng)化控制系統(tǒng)中。隨著微電子和計(jì)算機(jī)技術(shù)的發(fā)展,步進(jìn)電機(jī)的需求量與日俱增,在各個(gè)國(guó)民經(jīng)濟(jì)領(lǐng)域都有應(yīng)用。比如在數(shù)控
6、系統(tǒng)中就得到廣泛的應(yīng)用。目前世界各國(guó)都在大力發(fā)展數(shù)控技術(shù),我國(guó)的數(shù)控系統(tǒng)也取得了很大的發(fā)展,我國(guó)已經(jīng)能夠自行研制開(kāi)發(fā)適合我國(guó)數(shù)控機(jī)床發(fā)展需要的各種檔次的數(shù)控系統(tǒng)。近年來(lái)由于微型計(jì)算機(jī)方面的快速發(fā)展,使步進(jìn)電機(jī)的控制發(fā)生了革命性變革。優(yōu)點(diǎn)明顯的步進(jìn)電機(jī)被廣泛應(yīng)用在電子計(jì)算機(jī)的許多外圍設(shè)備中,例如打印機(jī),紙帶輸送機(jī)構(gòu),卡片閱讀機(jī),主動(dòng)輪驅(qū)動(dòng)機(jī)構(gòu)和存儲(chǔ)器存取機(jī)構(gòu)等,步進(jìn)電機(jī)也在軍用儀器,通信和雷達(dá)設(shè)備,攝影系統(tǒng),光電組合裝置,閥門控制,數(shù)控機(jī)
7、床,電子鐘,醫(yī)療設(shè)備及自動(dòng)繪圖儀,數(shù)字控制系統(tǒng),工具機(jī)控制,程序控制系統(tǒng)以及許多航天工業(yè)的系統(tǒng)中得到應(yīng)用。因而,對(duì)于步進(jìn)電機(jī)控制的研究也就顯得尤為重要了。</p><p><b> 二,設(shè)計(jì)目的</b></p><p> 通過(guò)具體小型測(cè)試系統(tǒng)設(shè)計(jì),實(shí)踐單片機(jī)系統(tǒng)設(shè)計(jì)及調(diào)試的全過(guò)程,以加深對(duì)單片機(jī)內(nèi)部結(jié)構(gòu)、功能和指令系統(tǒng)的理解,并進(jìn)一步學(xué)習(xí)單片機(jī)開(kāi)發(fā)系統(tǒng)的應(yīng)用及一些
8、外圍芯片的接口和編程方法,初步掌握單片機(jī)系統(tǒng)的硬、軟件設(shè)計(jì)技術(shù)及調(diào)試技巧。</p><p><b> 三,設(shè)計(jì)要求</b></p><p> 1)電機(jī)轉(zhuǎn)速可以平穩(wěn)控制</p><p> 2)通過(guò)鍵盤和顯示器可以設(shè)置電機(jī)的轉(zhuǎn)速</p><p> 3)顯示電機(jī)的速度趨勢(shì)</p><p><
9、;b> 四,儀器設(shè)備</b></p><p> 1、STC89C52RC單片機(jī)芯片 一片</p><p> 2、ULN2003驅(qū)動(dòng)芯片 一片</p><p> 3、MT03641BR八位共陽(yáng)數(shù)碼管芯片 一片</p><p> 4、8550PNP
10、 四個(gè)</p><p> 5、不同阻值電阻 若干</p><p> 6、30pF電容 兩個(gè)</p><p> 7、12M晶振 一個(gè)</p><p>
11、 8、按鍵 四個(gè)</p><p> 9、28BYJ-48電機(jī) 一個(gè)</p><p> 10、+5V電源 一個(gè)</p><p> 五,硬件線路圖及主要芯片說(shuō)明</p><p> 28BYJ-4
12、8四相八拍步進(jìn)電機(jī)</p><p><b> 主要技術(shù)參數(shù)</b></p><p> 相數(shù):四相 電壓:5VDC</p><p> 電流:92mA 電阻:130Ω</p><p> 步距角:5.625°
13、 減速比:1/64</p><p> 空載牽出頻率:800pps</p><p> 空載牽入頻率:500pps</p><p> 牽入轉(zhuǎn)矩:≥78.4mN.m</p><p> 接線指示:A(橙)、B(黃)、C(藍(lán))、D(灰)、E(紅,中點(diǎn)接+5V)</p><p><b>
14、 28BYJ-48圖</b></p><p><b> 四相八拍相序表</b></p><p> 如果需要電機(jī)正轉(zhuǎn),只需要從A-AB-B-BC-C-CD-D-DA依次通電即可,反轉(zhuǎn),則需要反過(guò)來(lái)依次通電。</p><p><b> ULN2003</b></p><p> ULN
15、2003是大電流驅(qū)動(dòng)陣列,多用于單片機(jī)、智能儀表、PLC、數(shù)字量輸出卡等控制電路中??芍苯域?qū)動(dòng)繼電器等負(fù)載。輸入5VTTL電平,輸出可達(dá)500mA/50V。ULN2003是高耐壓、大電流達(dá)林頓陳列,由七個(gè)硅NPN達(dá)林頓管組成。 該電路的特點(diǎn)如下: ULN2003的每一對(duì)達(dá)林頓都串聯(lián)一個(gè)2.7K的基極電阻,在5V的工作電壓下它能與TTL和CMOS電路 直接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏輯緩沖器來(lái)處理的數(shù)據(jù)。ULN2003 是高壓大電流達(dá)
16、林頓晶體管陣列系列產(chǎn)品,具有電流增益高、工作電壓高、溫度范圍寬、帶負(fù)載能力強(qiáng)等特點(diǎn),適應(yīng)于各類要求高速大功率驅(qū)動(dòng)的系統(tǒng)。 </p><p> 引腳1:CPU脈沖輸入端,端口對(duì)應(yīng)一個(gè)信號(hào)輸出端。</p><p> 引腳2:CPU脈沖輸入端。 </p><p> 引腳3:CPU脈沖輸入端。 </p><p> 引腳4:CPU脈沖輸
17、入端。 </p><p> 引腳5:CPU脈沖輸入端。 </p><p> 引腳6:CPU脈沖輸入端。 </p><p> 引腳7:CPU脈沖輸入端。 </p><p> 引腳8:接地。 </p><p> 引腳9:該腳是內(nèi)部7個(gè)續(xù)流二極管負(fù)極的公共端,各二極管的正極分別接各達(dá)林頓管的集電
18、極。用于感性負(fù)載時(shí),該腳接負(fù)載電源正極,實(shí)現(xiàn)續(xù)流作用。如果該腳接地,實(shí)際上就是達(dá)林頓管的集電極對(duì)地接通。 </p><p> 引腳10:脈沖信號(hào)輸出端,對(duì)應(yīng)7腳信號(hào)輸入端。 </p><p> 引腳11:脈沖信號(hào)輸出端,對(duì)應(yīng)6腳信號(hào)輸入端。 </p><p> 引腳12:脈沖信號(hào)輸出端,對(duì)應(yīng)5腳信號(hào)輸入端。 </p><p>
19、; 引腳13:脈沖信號(hào)輸出端,對(duì)應(yīng)4腳信號(hào)輸入端。 </p><p> 引腳14:脈沖信號(hào)輸出端,對(duì)應(yīng)3腳信號(hào)輸入端。 </p><p> 引腳15:脈沖信號(hào)輸出端,對(duì)應(yīng)2腳信號(hào)輸入端?!? </p><p> 引腳16:脈沖信號(hào)輸出端,對(duì)應(yīng)1腳信號(hào)輸入端。</p><p> ULN2003的輸出端可達(dá)500mA/50V.
20、 輸出端的二極管學(xué)名續(xù)流二極管,英文freewheel diode。如果ULN2003的達(dá)林頓管輸入端輸入低電平使其截止,其驅(qū)動(dòng)的元件是感性元件,則電流不能突變,此時(shí)會(huì)產(chǎn)生一個(gè)高壓;如果沒(méi)有二極管,達(dá)林頓管會(huì)被擊穿,所以這個(gè)二極管主要起保護(hù)作用。 由于ULN2003是集電極開(kāi)路輸出,為了讓這個(gè)二極管起到續(xù)流作用,必須將COM引腳(pin9)接在負(fù)載的供電電源上,只有這樣才能夠形成續(xù)流回路。</p><p>
21、ULN2003是一個(gè)非門電路,包含7個(gè)單元,單獨(dú)每個(gè)單元驅(qū)動(dòng)電流最大可達(dá)350mA,9腳可以懸空。</p><p><b> 三極管8550</b></p><p> 三極管8550是一種常用的普通三極管,它是一種低電壓、大電流、小信號(hào)的PNP型硅三極管。</p><p> 相關(guān)參數(shù)如下
22、 </p><p> 類型:開(kāi)關(guān)型 極性:PNP 材料:硅</p><p> 最大集電極電流(A):0.5 A</p><p> 直流電增益:10 to 60</p><p><b> 功耗:625 mW</b></p><p> 最大集電極發(fā)
23、射電壓(VCEO):25</p><p> 頻率:150MHz </p><p> 三極管8550管腳圖</p><p> STC89C52RC</p><p> STC89C52RC單片機(jī)是新一代高速/低功耗/超強(qiáng)抗干擾的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī),12 時(shí)鐘/機(jī)器周期和 6 時(shí)鐘/機(jī)器周期可以任意選擇。</p
24、><p><b> 主要特性如下: </b></p><p> 1. 增強(qiáng)型 8051 單片機(jī),6 時(shí)鐘/機(jī)器周期和 12 時(shí)鐘/機(jī)器周期可以任意選擇,指令代碼完全兼容傳統(tǒng) 8051. </p><p> 2. 工作電壓:5.5V~3.3V(5V 單片機(jī))/3.8V~2.0V(3V 單片機(jī)) </p><p> 3.
25、 工作頻率范圍:0~40MHz,相當(dāng)于普通 8051 的 0~80MHz,實(shí)際工 作頻率可達(dá) 48MHz </p><p> 4. 用戶應(yīng)用程序空間為 8K 字節(jié) </p><p> 5. 片上集成 512 字節(jié) RAM </p><p> 6. 通用 I/O 口(32 個(gè))復(fù)位后為: , P1/P2/P3/P4 是準(zhǔn)雙向口/弱上拉, P0 口是漏極開(kāi)路輸出,
26、作為總線擴(kuò)展用時(shí),不用加上拉電阻,作為 I/O 口用時(shí),需加上拉電阻。 </p><p> 7. ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無(wú)需專用編程器,無(wú)需專用仿真器,可通過(guò)串口(RxD/P3.0,TxD/P3.1)直接下載用戶程 序,數(shù)秒即可完成一片</p><p> 8. 具有 EEPROM 功能 </p><p> 9. 具有看門狗功能 <
27、;/p><p> 10. 共 3 個(gè) 16 位定時(shí)器/計(jì)數(shù)器。即定時(shí)器 T0、T1、T2</p><p> 11. 外部中斷 4 路,下降沿中斷或低電平觸發(fā)電路,Power Down 模式可由外部中斷低電平觸發(fā)中斷方式喚醒 </p><p> 12. 通用異步串行口(UART),還可用定時(shí)器軟件實(shí)現(xiàn)多個(gè) UART </p><p> 13
28、. 工作溫度范圍:-40~+85℃(工業(yè)級(jí))/0~75℃(商業(yè)級(jí)) </p><p> 14. PDIP 封裝 </p><p> STC89C52RC 引腳功能說(shuō)明</p><p> VCC(40 引腳):電源電壓 </p><p> VS S(20 引腳):接地 </p><p> MT03641BR八位
29、共陽(yáng)數(shù)碼管</p><p><b> 主要參數(shù)</b></p><p><b> 工作電壓:2V</b></p><p> 工作電流:5—10mA</p><p><b> 數(shù)碼管顯示原理</b></p><p> 數(shù)碼管動(dòng)態(tài)顯示介面是單片機(jī)中
30、應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp "的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位元選通控制電路,位元選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位元選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開(kāi),該位元就顯示出字形,沒(méi)有選通的數(shù)碼管
31、就不會(huì)亮。透過(guò)分時(shí)輪流控制各個(gè)LED數(shù)碼管的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過(guò)程中,每位元數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極體的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示資料,不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O口,而且功耗更低。</p><p><b> 段
32、碼表如下:</b></p><p> 根據(jù)表中所給的段碼,只需要送入相應(yīng)的數(shù)碼管即可。</p><p><b> 數(shù)碼管內(nèi)部結(jié)構(gòu)</b></p><p> 硬件線路圖(見(jiàn)附圖)</p><p><b> 六,系統(tǒng)工作原理</b></p><p> 本程序
33、包括按鍵處理程序、顯示處理程序、中斷處理程序、數(shù)據(jù)處理程序四個(gè)主要部分</p><p><b> 按鍵處理程序</b></p><p> 按鍵處理安排在主程序當(dāng)中,使其處于不斷檢測(cè)狀態(tài),當(dāng)有按鍵按下能夠及時(shí)對(duì)其進(jìn)行相應(yīng)的處理。同時(shí),對(duì)于按鍵還應(yīng)該進(jìn)行消抖處理,避免系統(tǒng)誤動(dòng)作。其主要程序如下:</p><p> if(k1==0){dela
34、y(5); //延時(shí)消抖</p><p> if(k1==0){TR0=~TR0;k++;}//啟動(dòng)/停止</p><p> }while(!k1); // 等待按鍵釋放</p><p> if(k2==0){delay(5); //延時(shí)消抖</p><p> if(k2==0)time=time-150;} // 加速</
35、p><p> while(!k2); // 等待按鍵釋放</p><p> if(k3==0){delay(5); //延時(shí)消抖</p><p> if(k3==0)time=time+150;}//減速</p><p> while(!k3);// 等待按鍵釋放</p><p> if(k4==0){d
36、elay(5); //延時(shí)消抖</p><p> if(k4==0)f++;} // 正/反轉(zhuǎn)</p><p> while(!k4);// 等待按鍵釋放</p><p><b> 中斷處理程序</b></p><p> 中斷程序中安排對(duì)P1口賦值及對(duì)定時(shí)器重新裝入初值,每次進(jìn)入中斷程序時(shí),先判斷是否執(zhí)行
37、反轉(zhuǎn),如是,則送反轉(zhuǎn)編碼,否則,送正轉(zhuǎn)編碼。其主要程序如下:</p><p> void timer0()interrupt 1</p><p><b> {</b></p><p> if(f%2){P1=FF[j++];if(j==8)j=0;} // f為奇數(shù)時(shí)代表反轉(zhuǎn),則送反轉(zhuǎn)編碼到P1口</p><p>
38、; else {P1=ZF[j++];if(j==8)j=0;} // 否則送正轉(zhuǎn)編碼到P1口</p><p> TH0=(65536-time)/256;</p><p> TL0=(65536-time)%256;//重新裝初值</p><p><b> }</b></p><p><b>
39、 顯示處理程序</b></p><p> 顯示程序則通過(guò)對(duì)相應(yīng)數(shù)碼管的通斷,然后送段碼。以這種方式來(lái)控制其動(dòng)態(tài)顯示,同時(shí)需要主要每個(gè)數(shù)碼管都應(yīng)該延時(shí)亮一段時(shí)間。并且要對(duì)其消隱。以獲得較好的顯示效果。其主要程序如下:</p><p> void display(uchar a,uchar b,uchar c,uchar d)</p><p><
40、b> {</b></p><p><b> if(f%2)</b></p><p> {P2=0xfe; </p><p> P0=0xbf; //f為奇數(shù)時(shí)代表反轉(zhuǎn),則第一個(gè)數(shù)碼管顯示“-”,否則不顯示 </p><p> delay(1); </p
41、><p> P0=0xff;} //消隱</p><p> P2=0xfd; </p><p> P0=SM[a]; //顯示十位</p><p> delay(1); </p><p> P0=0xff; //消隱</p><p> P2=0xfb; <
42、/p><p> P0=SM[b]&0x7f;//顯示個(gè)位(帶小數(shù)點(diǎn))</p><p> delay(1); </p><p> P0=0xff; //消隱</p><p><b> P2=0xf7;</b></p><p> P0=SM[c]; //顯示小數(shù)點(diǎn)后第一位小
43、數(shù)</p><p><b> delay(1);</b></p><p> P0=0xff;//消隱</p><p><b> P2=0xef;</b></p><p> P0=SM[d]; //顯示小數(shù)點(diǎn)后第二位小數(shù)</p><p><b> dela
44、y(1);</b></p><p> P0=0xff; //消隱</p><p><b> }</b></p><p><b> 數(shù)據(jù)處理程序</b></p><p> 通過(guò)對(duì)數(shù)據(jù)進(jìn)行處理來(lái)獲得電機(jī)的轉(zhuǎn)速,可以先計(jì)算出1ms時(shí)電機(jī)的速度,然后通過(guò)改變時(shí)間間隔來(lái)計(jì)算電機(jī)的轉(zhuǎn)速。
45、其主要程序如下:</p><p> void dispose()</p><p><b> {</b></p><p> temp1=14648/time;</p><p> h=temp1/10; //十位</p><p> w=temp1%10; //個(gè)位</p>&
46、lt;p> temp2=14648%time;</p><p> p=temp2/1000;// 小數(shù)點(diǎn)后第一位小數(shù)</p><p> q=temp2%1000*10/1000;//小數(shù)點(diǎn)后第二位小數(shù)</p><p><b> }</b></p><p> 根據(jù)以上四個(gè)主要部分來(lái)把整個(gè)系統(tǒng)劃分成相應(yīng)
47、模塊,有利于提高系統(tǒng)的抗干擾能力。能較好的保證系統(tǒng)運(yùn)行的可靠。</p><p><b> 七,程序清單</b></p><p> #include<reg52.h> //頭文件</p><p> #define uint unsigned int //宏定義</p><p> #define
48、uchar unsigned char //宏定義</p><p> uchar code ZF[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};</p><p><b> //正轉(zhuǎn)編碼表</b></p><p> uchar code FF[8]={0x09,0x08,0x0c,0x04,
49、0x06,0x02,0x03,0x01};</p><p><b> //反轉(zhuǎn)編碼表</b></p><p> uchar code SM[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};</p><p><b> //數(shù)碼表</b></p>
50、;<p> sbit k1=P3^2;//定義K1為啟動(dòng)/停止按鍵</p><p> sbit k2=P3^3;//定義K2為加速按鍵</p><p> sbit k3=P3^4; //定義K3為減速按鍵</p><p> sbit k4=P3^5; //定義K4為正/反轉(zhuǎn)按鍵</p><p> uchar j
51、=0;</p><p> uint time=12000;//time為每?jī)膳闹g的間隔時(shí)間</p><p> uint temp2;</p><p> uchar temp1,h,w,p,q,f;</p><p> /*1ms延時(shí)函數(shù)(12M晶振下)*/</p><p> void delay(uchar
52、 z)</p><p><b> { </b></p><p> uchar s,v;</p><p> for(s=0;s<z;s++)</p><p> for(v=0;v<125;v++); //一個(gè)for循環(huán)8個(gè)機(jī)器周期(125*8*1us=1ms)</p><p>
53、;<b> }</b></p><p><b> /*顯示函數(shù)*/</b></p><p> void display(uchar a,uchar b,uchar c,uchar d)</p><p><b> {</b></p><p><b> if(f
54、%2)</b></p><p> {P2=0xfe; </p><p><b> P0=0xbf;</b></p><p> //f為奇數(shù)時(shí)代表反轉(zhuǎn),則第一個(gè)數(shù)碼管顯示“-”,否則不顯示</p><p> delay(1); </p><p>
55、 P0=0xff;} //消隱</p><p> P2=0xfd; </p><p> P0=SM[a]; //顯示十位</p><p> delay(1); </p><p> P0=0xff; //消隱</p><p> P2=0xfb; </p><p&g
56、t; P0=SM[b]&0x7f;//顯示個(gè)位(帶小數(shù)點(diǎn))</p><p> delay(1); </p><p> P0=0xff; //消隱</p><p><b> P2=0xf7;</b></p><p> P0=SM[c]; //顯示小數(shù)點(diǎn)后第一位小數(shù)</p>&l
57、t;p><b> delay(1);</b></p><p> P0=0xff;//消隱</p><p><b> P2=0xef;</b></p><p> P0=SM[d]; //顯示小數(shù)點(diǎn)后第二位小數(shù)</p><p><b> delay(1);</b>
58、</p><p> P0=0xff; //消隱</p><p><b> }</b></p><p> /*數(shù)值處理函數(shù)*/</p><p> void dispose()</p><p><b> {</b></p><p> tem
59、p1=14648/time;</p><p> h=temp1/10; //十位</p><p> w=temp1%10; //個(gè)位</p><p> temp2=14648%time;</p><p> p=temp2/1000;// 小數(shù)點(diǎn)后第一位小數(shù)</p><p> q=temp2%1000*10
60、/1000;//小數(shù)點(diǎn)后第二位小數(shù)</p><p><b> }</b></p><p><b> /*主函數(shù)*/</b></p><p> void main()</p><p><b> {</b></p><p><b>
61、uchar k; </b></p><p> TMOD=0x01;//定義定時(shí)器0工作方式1</p><p> EA=1; // 開(kāi)總中斷</p><p> ET0=1; //開(kāi)定時(shí)器0中斷</p><p> TH0=(65536-time)/256;</p><p> TL0=(6553
62、6-time)%256; //裝定時(shí)器初值</p><p> TR0=1;//開(kāi)定時(shí)器0</p><p><b> while(1)</b></p><p><b> {</b></p><p> if(k1==0){delay(5); //延時(shí)消抖</p><p
63、> if(k1==0){TR0=~TR0;k++;}//啟動(dòng)/停止</p><p> }while(!k1); // 等待按鍵釋放</p><p> if(k2==0){delay(5); //延時(shí)消抖</p><p> if(k2==0)time=time-150;} // 加速</p><p> while(!k2);
64、// 等待按鍵釋放</p><p> if(k3==0){delay(5); //延時(shí)消抖</p><p> if(k3==0)time=time+150;}//減速</p><p> while(!k3);// 等待按鍵釋放</p><p> if(k4==0){delay(5); //延時(shí)消抖</p>&l
65、t;p> if(k4==0)f++;} // 正/反轉(zhuǎn)</p><p> while(!k4);// 等待按鍵釋放</p><p> dispose();</p><p><b> if(k%2)</b></p><p> display(0,0,0,0); //停止時(shí)顯示00.00</p&g
66、t;<p><b> else</b></p><p> display(h,w,p,q);//正常運(yùn)轉(zhuǎn)時(shí)調(diào)用顯示函數(shù)</p><p><b> }</b></p><p><b> }</b></p><p> /*定時(shí)器0中斷處理函數(shù)*/</p
67、><p> void timer0()interrupt 1</p><p><b> {</b></p><p> if(f%2){if(j==8)j=0;P1=FF[j++];} // f為奇數(shù)時(shí)代表反轉(zhuǎn),則送反轉(zhuǎn)編碼到P1口</p><p> else {if(j==8)j=0;P1=ZF[j++];} /
68、/ 否則送正轉(zhuǎn)編碼到P1口</p><p> TH0=(65536-time)/256;</p><p> TL0=(65536-time)%256;//重新裝初值</p><p><b> }</b></p><p><b> 八,設(shè)計(jì)體會(huì)</b></p><p&
69、gt; 步進(jìn)電機(jī)的控制可以用硬件,也可以用軟件通過(guò)單片機(jī)實(shí)現(xiàn)。本系統(tǒng)采用了軟件方法,即用單片機(jī)產(chǎn)生控制脈沖來(lái)控制步進(jìn)電機(jī)的運(yùn)行狀態(tài),這種方比采用硬件方法,即采用脈沖分配器芯片進(jìn)行通用換相控制,電路更加簡(jiǎn)單,成本更低。</p><p> 在做本次設(shè)計(jì)的過(guò)程中,我感觸最深的當(dāng)屬查閱大量的設(shè)計(jì)了。為了讓自己的設(shè)計(jì)更加完善,查閱這方面的設(shè)計(jì)資料是十分必要的。在這次課程設(shè)計(jì)中,我們運(yùn)用到了以前所學(xué)的專業(yè)課知識(shí),如:C語(yǔ)
70、言、模擬和數(shù)字電路知識(shí)等。雖然過(guò)去從未獨(dú)立應(yīng)用過(guò)它們,但在學(xué)習(xí)的過(guò)程中帶著問(wèn)題去學(xué)我發(fā)現(xiàn)效率很高,這是我做這次課程設(shè)計(jì)的又一收獲。</p><p> 設(shè)計(jì)結(jié)束了,但是從中得到的知識(shí)會(huì)讓我受益終身。發(fā)現(xiàn)、提出、分析、解決問(wèn)題和實(shí)踐能力的提高都會(huì)受益于我在以后的學(xué)習(xí)、工作和生活中。此次設(shè)計(jì)更鍛煉了我的毅力,我覺(jué)得做任何事情要善始善終,不要中途放棄,只要自己認(rèn)真的去對(duì)待,再難的問(wèn)題也能找到辦法解決。</p>
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)報(bào)告--基于單片機(jī)的步進(jìn)電機(jī)控制器的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——基于單片機(jī)的步進(jìn)電機(jī)控制器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告——單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)步進(jìn)電機(jī)課程設(shè)計(jì)--單片機(jī)控制步進(jìn)電機(jī)的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)控制器
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)-單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的步進(jìn)電機(jī)控制
- 單片機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)控制器設(shè)計(jì)
- 課程設(shè)計(jì)---基于單片機(jī)的步進(jìn)電機(jī)控制器設(shè)計(jì)
- 基于單片機(jī)的步進(jìn)電機(jī)控制單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的四相步進(jìn)電機(jī)控制
- 單片機(jī)課程設(shè)計(jì)——單片機(jī)控制步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
- 單片機(jī)-控制步進(jìn)電機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告--步進(jìn)電機(jī)控制設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)的定時(shí)控制器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-步進(jìn)電機(jī)的控制
- 單片機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)控制
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)控制的時(shí)鐘控制器
- 單片機(jī)課程設(shè)計(jì)---步進(jìn)電機(jī)控制
評(píng)論
0/150
提交評(píng)論