版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 單片機(jī)課程設(shè)計(jì)</b></p><p> 三相步進(jìn)電機(jī)的單片機(jī)控制</p><p> 《單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)》課程設(shè)計(jì)任務(wù)書(shū)</p><p><b> 一. 課題名稱(chēng)</b></p><p> 三相步進(jìn)電動(dòng)機(jī)的單片機(jī)控制。</p><p>
2、<b> 二.設(shè)計(jì)目的 </b></p><p> 通過(guò)設(shè)計(jì)一個(gè)由單片微機(jī)組成的應(yīng)用系統(tǒng),全面了解和掌握單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)方法,包括硬件設(shè)計(jì),軟件設(shè)計(jì)和系統(tǒng)調(diào)試,同的也應(yīng)掌握單片機(jī)開(kāi)發(fā)系統(tǒng)的原理和使用方法。</p><p><b> 三.設(shè)計(jì)要求</b></p><p> 步進(jìn)電機(jī)常用作機(jī)電一體化系統(tǒng)的執(zhí)行部件,
3、了解步進(jìn)電機(jī)的工作原理和微機(jī)控制的基本方法,對(duì)學(xué)習(xí)和掌握微機(jī)應(yīng)用和機(jī)電一體化系統(tǒng)設(shè)計(jì)具有重要意義。本次設(shè)計(jì)要求設(shè)計(jì)一套以單片機(jī)為核心的步進(jìn)電機(jī)控制器,步進(jìn)電機(jī)采用實(shí)驗(yàn)用三相步進(jìn)電動(dòng)機(jī),控制器硬件采用愛(ài)思89C51-B高級(jí)用戶(hù)板以及愛(ài)思通用8279鍵盤(pán)顯示板,要求畫(huà)出應(yīng)用系統(tǒng)的硬件邏輯圖,設(shè)汁的主要工作是軟件設(shè)計(jì)和系統(tǒng)調(diào)試,具體有以下幾點(diǎn)要求:</p><p> 利用MCS-51系列兼容機(jī)ATMEL89C51、8
4、279及有關(guān)接口芯片構(gòu)成一個(gè)完整的單片機(jī)應(yīng)用系統(tǒng),要求設(shè)計(jì)16只鍵組成的鍵盤(pán)以輸入數(shù)據(jù)和命令,8只LED顯示器用于系統(tǒng)顯示輸出。此外,采用89C51的P1口輸出信號(hào),經(jīng)放大驅(qū)動(dòng)一臺(tái)步進(jìn)電機(jī)。</p><p> 根據(jù)上述要求繪制系統(tǒng)的硬件邏輯圖。</p><p> 設(shè)計(jì)系統(tǒng)軟件,其功能為管理鍵盤(pán)和顯示器,要求該系統(tǒng)軟件具有較好的通用性。</p><p> 設(shè)計(jì)應(yīng)
5、用軟件,控制步進(jìn)電機(jī),要求定義若干功能鍵,用于實(shí)現(xiàn)步進(jìn)電機(jī)能以下列三種方式工作:</p><p> 正向點(diǎn)動(dòng)和反向點(diǎn)動(dòng);</p><p><b> 恒速步進(jìn)給定行程;</b></p><p> 以設(shè)定的速度步進(jìn)給定行程。</p><p> 系統(tǒng)調(diào)試,學(xué)習(xí)單片機(jī)開(kāi)發(fā)系統(tǒng)(仿真器)和用戶(hù)板的使用方法,利用開(kāi)發(fā)系統(tǒng)進(jìn)行
6、程序的調(diào)試及整個(gè)應(yīng)用系統(tǒng)進(jìn)行實(shí)時(shí)仿真,最后將調(diào)試好的程序固化在89C51單片機(jī)中,應(yīng)用系統(tǒng)能正常工作。 </p><p><b> 四.設(shè)計(jì)步驟</b></p><p> 了解三相步進(jìn)電機(jī)的工作原理,確定控制方案。</p><p> 設(shè)計(jì)應(yīng)用系統(tǒng)硬件邏輯圖,根據(jù)所學(xué)知識(shí),畫(huà)出所選各芯片、器件的連接線(xiàn)路,包括數(shù)據(jù)線(xiàn),地址線(xiàn)和控制信號(hào)線(xiàn)。 &
7、lt;/p><p> 編寫(xiě)系統(tǒng)軟件,注意各功能鍵的定義。</p><p> 編寫(xiě)應(yīng)用軟件,注意與系統(tǒng)軟件相連接。</p><p> 學(xué)習(xí)單片機(jī)開(kāi)發(fā)系統(tǒng)的使用方法,并調(diào)試所編制的軟件。</p><p> 使用仿真器調(diào)試整個(gè)應(yīng)用系統(tǒng)。</p><p> 將調(diào)試好的程序固化到單片機(jī)中,使系統(tǒng)脫機(jī)運(yùn)行。</p>
8、;<p> 打印程序清單,編寫(xiě)總結(jié)報(bào)告。</p><p> 五.設(shè)計(jì)說(shuō)明書(shū)內(nèi)容及格式</p><p> 詳細(xì)的邏輯電路圖及說(shuō)明(包括芯片選擇,控制信號(hào)的連接方法等)</p><p> 程序框圖及打印的清單。</p><p> 調(diào)試過(guò)程及結(jié)論分析。</p><p> 調(diào)試過(guò)程中遇到問(wèn)題及解決辦法
9、。</p><p> 應(yīng)用系統(tǒng)設(shè)計(jì)的方案、收獲及體會(huì)。</p><p> 設(shè)計(jì)說(shuō)明書(shū)必須按照規(guī)定格式書(shū)寫(xiě),包括封面、內(nèi)容提要、目錄、章節(jié),頁(yè)碼。</p><p><b> 六.答辯</b></p><p> 所有內(nèi)容完成后,可以進(jìn)行答辯。答辯需提交設(shè)計(jì)說(shuō)明書(shū)、程序清單,并現(xiàn)場(chǎng)演示自己編寫(xiě)的程序。</p>
10、;<p><b> 七.附錄</b></p><p> 愛(ài)思G3000A仿真器使用手冊(cè)</p><p> 愛(ài)思89C51-B高級(jí)用戶(hù)板以及愛(ài)思通用8279鍵盤(pán)顯示板資料</p><p><b> 參考資料</b></p><p> 《MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)》何立民
11、 1990年 北京航空航天大學(xué)出版社</p><p> 《MCS-51系列單片機(jī)及其應(yīng)用》蔡美琴 1992年 高等教育出版社</p><p> 《單片機(jī)實(shí)用系統(tǒng)設(shè)計(jì)技術(shù)》 房小翠 1999年 國(guó)防大學(xué)出版社</p><p><b> 目錄</b></p><p> 第一章 前 言4</p>
12、<p> 第二章 總體方案設(shè)計(jì)5</p><p> 第三章 系統(tǒng)硬件設(shè)計(jì)7</p><p> 3.1 專(zhuān)用鍵盤(pán)顯示接口芯片82797</p><p> 1.2.1 8279特征7</p><p> 1.2.2 8279命令狀態(tài)字8</p><p> 3.2 其他器件選擇8<
13、;/p><p> 3.3 電路原理圖及說(shuō)明9</p><p> 3.4步進(jìn)電機(jī)簡(jiǎn)介 9</p><p> 第四章 系統(tǒng)軟件設(shè)計(jì)10</p><p> 4.1系統(tǒng)設(shè)計(jì)10</p><p> 4.2程序流程圖10</p><p> 4.3 程序清單11</p>&l
14、t;p> 4.4調(diào)試過(guò)程11</p><p><b> 第五章 總結(jié)12</b></p><p> 附錄1 硬件邏輯圖13</p><p> 附錄2 程序清單14</p><p><b> 摘要</b></p><p> 本課程設(shè)計(jì)是以單片機(jī)為
15、核心的步進(jìn)電機(jī)控制器,步進(jìn)電機(jī)采用實(shí)驗(yàn)用三相步進(jìn)電動(dòng)機(jī),同時(shí)采用愛(ài)思89C51-B高級(jí)用戶(hù)板以及愛(ài)思通用8279鍵盤(pán)顯示板作為控制器硬件,實(shí)現(xiàn)了用鍵盤(pán)控制步進(jìn)電機(jī)的正轉(zhuǎn)點(diǎn)動(dòng)、反轉(zhuǎn)點(diǎn)動(dòng)、正轉(zhuǎn)連續(xù)運(yùn)行、反轉(zhuǎn)連續(xù)運(yùn)行以及調(diào)速等功能。</p><p><b> 第一章 前 言</b></p><p> 單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等
16、優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同類(lèi)型的傳感器,可實(shí)現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長(zhǎng)度、硬度、元素、壓力等物理量的測(cè)量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。例如精密的測(cè)量設(shè)備(功率計(jì),示波器,各種分析儀)。 同時(shí)用單片機(jī)還可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠(chǎng)流水線(xiàn)的智能化管理,電梯智能化控制、各種報(bào)警系統(tǒng),與計(jì)算機(jī)聯(lián)網(wǎng)構(gòu)成二級(jí)控制
17、系統(tǒng)等。 </p><p> 現(xiàn)代的單片機(jī)普遍具備通信接口,可以很方便地與計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信,為在計(jì)算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實(shí)現(xiàn)了單片機(jī)智能控制,從手機(jī),電話(huà)機(jī)、小型程控交換機(jī)、樓宇自動(dòng)通信呼叫系統(tǒng)、列車(chē)無(wú)線(xiàn)通信、再到日常工作中隨處可見(jiàn)的移動(dòng)電話(huà),集群移動(dòng)通信,無(wú)線(xiàn)電對(duì)講機(jī)等。此外,單片機(jī)在工商,金融,科研、教育,國(guó)防航空航天等領(lǐng)域都有著十分廣
18、泛的用途。 </p><p> 目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢(shì)將是進(jìn)一步向著CMOS化、低功耗、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。綜合所述,單片機(jī)已成為計(jì)算機(jī)發(fā)展和應(yīng)用的一個(gè)重要方面。另一方面,單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過(guò)軟件方法來(lái)實(shí)現(xiàn)了。這種軟件代替硬
19、件的控制技術(shù)也稱(chēng)為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。 </p><p> 步進(jìn)電機(jī)作為執(zhí)行元件,是機(jī)電一體化的關(guān)鍵產(chǎn)品之一,隨著工業(yè)自動(dòng)化的發(fā)展,步進(jìn)電機(jī)的應(yīng)用也越來(lái)越廣泛,廣泛應(yīng)用在各種自動(dòng)化控制系統(tǒng)中。步進(jìn)電機(jī)是一種用于開(kāi)環(huán)控制的驅(qū)動(dòng)元件。它是用電脈沖信號(hào)進(jìn)行控制,將電脈沖信號(hào)轉(zhuǎn)換成相應(yīng)的角位移或線(xiàn)位移的微電動(dòng)機(jī)。步進(jìn)電機(jī)作為電機(jī)的一種,可以靠開(kāi)路控制做精確的定位,因此普遍應(yīng)用于電
20、腦的外設(shè)及工業(yè)生產(chǎn)的自動(dòng)化機(jī)具設(shè)備中,如NC床、切割機(jī),此外機(jī)器人的各個(gè)關(guān)節(jié)控制也大量的使用步進(jìn)電機(jī)。 </p><p> 近些年來(lái),由于步進(jìn)電機(jī)的控制精度不斷提高,越來(lái)越多有較高控制精度要求的系統(tǒng)也開(kāi)始采用步進(jìn)電機(jī)。對(duì)于小功率步進(jìn)電機(jī),一般采用單片機(jī)與專(zhuān)用步進(jìn)電機(jī)驅(qū)動(dòng)器聯(lián)合工作的方式,單片機(jī)產(chǎn)生脈沖,控制停啟、正反轉(zhuǎn),變速等,專(zhuān)用步進(jìn)電機(jī)驅(qū)動(dòng)器則進(jìn)行脈沖環(huán)形分配及功率驅(qū)動(dòng)。 </p&
21、gt;<p> 步進(jìn)電動(dòng)機(jī)突出的優(yōu)點(diǎn)是它可以在寬廣的頻率范圍內(nèi)通過(guò)改變脈沖頻率來(lái)實(shí)現(xiàn)調(diào)速,快速起停、正反轉(zhuǎn)控制及制動(dòng)等,并且用其組成的開(kāi)環(huán)系統(tǒng)既簡(jiǎn)單、廉價(jià),又非常可,步進(jìn)電機(jī)的轉(zhuǎn)速取決于脈沖頻率、轉(zhuǎn)子齒數(shù)和拍數(shù)。其角速度與脈沖頻率成正比,而且在時(shí)間上與脈沖同步。因而在轉(zhuǎn)子齒數(shù)和運(yùn)行拍數(shù)一定的情況下,只要控制脈沖頻率即可獲得所需速度因此在眾多領(lǐng)域有著極其廣泛的應(yīng)用。研制一種高性?xún)r(jià)比步進(jìn)電機(jī)驅(qū)動(dòng)器及其控制系統(tǒng)具有重要的意義。
22、 </p><p> 本次課程設(shè)計(jì)選用的步進(jìn)電機(jī)是三相步進(jìn)電機(jī),通過(guò)軟件和硬件的結(jié)合,使用按鍵控制步進(jìn)電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、調(diào)速功能,并且將步進(jìn)電機(jī)所處的狀態(tài)用相應(yīng)的數(shù)碼管顯示。主要通過(guò)三大塊來(lái)設(shè)計(jì),包括驅(qū)動(dòng)電路的設(shè)計(jì)、狀態(tài)顯示部分和按鍵部分的設(shè)計(jì),可以通過(guò)控制脈沖個(gè)數(shù)來(lái)控制角位移量,從而控制轉(zhuǎn)動(dòng)的角度;同時(shí)可以通過(guò)控制脈沖頻率來(lái)控制電機(jī)轉(zhuǎn)動(dòng)的加速度,從而達(dá)到調(diào)速的目的。 </
23、p><p> 第二章 總體方案設(shè)計(jì)</p><p><b> ?。ㄒ唬?#160;控制方式 </b></p><p> 控制主要有:正反向點(diǎn)動(dòng)按鈕、連續(xù)運(yùn)行按鈕、復(fù)位按鈕。 </p><p> 由于設(shè)計(jì)只需要20個(gè)按鍵,不需要采用復(fù)雜編碼,考慮硬件條件、線(xiàn)路連接和經(jīng)濟(jì)性等方面,選擇獨(dú)立按鍵的方式。
24、 </p><p> ?。ǘ?#160;單片機(jī)的選擇 </p><p> 80C51高性能8位單片機(jī),內(nèi)部集成CPU、存儲(chǔ)器、寄存器、I/O接口,從而構(gòu)成較為完整的計(jì)算機(jī),價(jià)格便宜。本次課程設(shè)計(jì)是在仿真環(huán)境下進(jìn)行,我們課程設(shè)計(jì)實(shí)驗(yàn)室所使用的愛(ài)思G3000仿真開(kāi)發(fā)系統(tǒng)。綜合考慮本課程設(shè)計(jì)要求、單片機(jī)的價(jià)格和性能從而選擇80C31單片機(jī)</p>
25、<p> ?。ㄈ?#160;顯示方案的選擇 </p><p> 采用LED數(shù)碼管。LED數(shù)碼管是顯示采用動(dòng)態(tài)掃描的方式,利用人煙的視覺(jué)暫留特性,由于掃描周期很短,使人感覺(jué)不到數(shù)碼管閃動(dòng),看到每只數(shù)碼管都常亮。 </p><p><b> 輸入方式的選擇 </b></p><p> 本課程設(shè)計(jì)采用
26、愛(ài)思串行鍵盤(pán)板輸入,本串行鍵盤(pán)板采用ZLG8279芯片,僅用4根I/O口線(xiàn)。</p><p> (五) 鍵盤(pán)/顯示器控制芯片的選擇</p><p> 8279是可編程的鍵盤(pán)、顯示接口芯片,能自動(dòng)完成對(duì)鍵盤(pán)輸入以及數(shù)碼管輸出的掃描,減輕工作人員的編程壓力以及單片機(jī)的工作負(fù)荷。而且8279與MCS-51接口方便,由它構(gòu)成的標(biāo)準(zhǔn)鍵盤(pán)/顯示器接口在微機(jī)應(yīng)用系統(tǒng)中使用越來(lái)越廣泛。</p&
27、gt;<p><b> 8279特點(diǎn)</b></p><p> (1)可同時(shí)進(jìn)行鍵盤(pán)掃描及文字顯示;</p><p> (2)鍵盤(pán)掃描模式(Scanned Keyboard Mode);</p><p> (3)傳感器掃描模式(Scanned Sensor Mode);</p><p> (4)激
28、發(fā)輸入模式(Strobe Input Entry Mode);</p><p> (5)8乘8鍵盤(pán)FIFO(先進(jìn)先出);</p><p> (6)具有接點(diǎn)消除抖動(dòng),2鍵鎖定及N鍵依此讀出模式;</p><p> (7)雙排8位數(shù)或雙排16位數(shù)的顯示器;</p><p> (8)右邊進(jìn)入或左邊進(jìn)入。16位字節(jié)顯示存儲(chǔ)器。</p&g
29、t;<p> 第三章 系統(tǒng)硬件設(shè)計(jì)</p><p> 3.1 專(zhuān)用鍵盤(pán)顯示接口芯片8279</p><p> 8279是專(zhuān)用鍵盤(pán)/顯示器控制芯片,能對(duì)顯示器自動(dòng)掃描,能識(shí)別鍵盤(pán)上按下鍵的鍵號(hào);可充分提高CPU的工作效率。8279與MCS-51接口方便,由它構(gòu)成的標(biāo)準(zhǔn)鍵盤(pán)/顯示器接口在微機(jī)應(yīng)用系統(tǒng)中使用越來(lái)越廣泛。</p><p> 3.1.1
30、 8279特征</p><p> 能同時(shí)執(zhí)行鍵盤(pán)與顯示器操作。 </p><p> 掃描式鍵盤(pán)工作方式。</p><p> 有8個(gè)鍵盤(pán)FIFO(First in First out)存儲(chǔ)器。</p><p> 帶觸點(diǎn)去抖動(dòng)的雙鍵鎖定或N鍵巡回功能。</p><
31、;p> 兩個(gè)8位或16位的數(shù)字顯示器。</p><p> 可左/右輸入的16字節(jié)顯示用RAM。</p><p> 由鍵盤(pán)輸入產(chǎn)生中斷信號(hào)。</p><p> 掃描式傳感器工作方式。</p><p> 用選通方式輸入信號(hào)。</p><p> 單個(gè)16字符顯示器。</p><p>
32、<b> 可編程掃描定時(shí)。</b></p><p> 工作方式可由CPU編程。</p><p> 圖2-1 8279芯片示意圖</p><p> 3.1.2 8279命令狀態(tài)字</p><p><b> 表1命令狀態(tài)字</b></p><p><b>
33、 表2 命令狀態(tài)字</b></p><p> 3.2 其他器件選擇</p><p> 1. 74LS373:74LS373是八D鎖存器(三態(tài)). 一個(gè)封裝中有八個(gè)鎖存器,三態(tài)總線(xiàn)驅(qū)動(dòng)輸出,置數(shù)全并行存取,緩沖控制輸入,時(shí)鐘/使能輸入有改善抗擾度的滯后作用。在電路中的作用是:由于P0口既是數(shù)據(jù)口又是地址口,所以加一個(gè)鎖存器鎖存地址。</p><p>
34、 2. 74LS138: 為3 線(xiàn)-8 線(xiàn)譯碼器共有 54/74S138和 54/74LS138 兩種線(xiàn)路結(jié)構(gòu)型式。利用 G1、/(G2A)和/(G2B)可級(jí)聯(lián)擴(kuò)展成 24 線(xiàn)譯碼器;若外接一個(gè)反相器還可級(jí)聯(lián)擴(kuò)展成 32 線(xiàn)譯碼器。 若將選通端中的一個(gè)作為數(shù)據(jù)輸入端時(shí),74LS138還可作數(shù)據(jù)分配器。電路中的作用是:使器件的地址連續(xù),用三根線(xiàn)控制八根線(xiàn)。</p><p> 3. 74LS240:八單線(xiàn)驅(qū)動(dòng)器。(
35、反碼,三態(tài)輸出),這種八緩沖器和線(xiàn)驅(qū)動(dòng)器是為提高三態(tài)輸出存儲(chǔ)地址驅(qū)動(dòng)器,時(shí)鐘驅(qū)動(dòng)器和總線(xiàn)定向接收器和發(fā)射器的性能可和集成度而特意設(shè)計(jì)的。</p><p> 4.7451:8路驅(qū)動(dòng)器,增強(qiáng)數(shù)碼管顯示的亮度。</p><p> 3.3 電路原理圖及說(shuō)明</p><p> MCS-51采用8279擴(kuò)展的鍵盤(pán)、顯示器的接口電路控制三相步進(jìn)電機(jī)的運(yùn)轉(zhuǎn),P1.1、P1.2
36、、P1.3分別接三相步進(jìn)電機(jī)的A、B、C三相,構(gòu)成一個(gè)完整的單片機(jī)應(yīng)用系統(tǒng),設(shè)計(jì)20個(gè)鍵組成的鍵盤(pán)以輸入數(shù)據(jù)與命令,8只LED顯示器用于系統(tǒng)顯示輸出。采用89C51的P1口輸出信號(hào),經(jīng)放大驅(qū)動(dòng)一臺(tái)步進(jìn)電機(jī),電路圖見(jiàn)附錄1。</p><p> 3.4 步進(jìn)電機(jī)簡(jiǎn)介</p><p> 本課程設(shè)計(jì)采用單片機(jī)軟件實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)控制,使用單片機(jī)的Pl口循環(huán)輸出代碼,經(jīng)功率放大器來(lái)控制步進(jìn)電
37、機(jī)的三相繞組,從而控制步進(jìn)電機(jī)運(yùn)轉(zhuǎn)。步進(jìn)電機(jī)以三相單雙六拍的工作方式轉(zhuǎn)動(dòng)。過(guò)改變?nèi)嗤婍樞騺?lái)實(shí)現(xiàn)轉(zhuǎn)向的控制,若按A→AB→B→BC→C→CA→A次序通電為正轉(zhuǎn),則按A→AC→C→CB→B→BA→A次序通電為反轉(zhuǎn)。用89C51的P1.1、P1.2、P1.3分別A、B、C三信號(hào)格式送數(shù)即可,正轉(zhuǎn)時(shí)輸出的順序?yàn)?2H→06H→04H→0CH→08H→0AH→02H,反 轉(zhuǎn) 時(shí) 輸 出 的 順 序 為02H→0AH→08H→0
38、CH→04H→06H→02H。</p><p> 第四章 系統(tǒng)軟件設(shè)計(jì)</p><p><b> 4.1系統(tǒng)設(shè)計(jì):</b></p><p> 根據(jù)功能設(shè)計(jì)要求設(shè)計(jì)本控制系統(tǒng)的結(jié)構(gòu)框圖如圖3-1所示。</p><p> 圖3-1 步進(jìn)電機(jī)控制器結(jié)構(gòu)框圖</p><p><b>
39、 4.2程序流程圖:</b></p><p> 圖 3-2程序流程圖</p><p> 4.3 程序清單(詳見(jiàn)附錄2)</p><p><b> 4.4調(diào)試過(guò)程</b></p><p> 在調(diào)試過(guò)程中,我們遇到了以下問(wèn)題:</p><p> 步進(jìn)電機(jī)以雙三拍的工作方式(即AB
40、-BC-CA)轉(zhuǎn)動(dòng)時(shí),電機(jī)只是震動(dòng),運(yùn)行不起來(lái)。</p><p> 電機(jī)連續(xù)轉(zhuǎn)動(dòng)的方向總是順時(shí)針轉(zhuǎn)動(dòng),改變不了。</p><p> 電動(dòng)機(jī)連續(xù)運(yùn)行時(shí)轉(zhuǎn)速過(guò)快。</p><p><b> 問(wèn)題解決方案:</b></p><p> 將雙三拍工作方式改為單雙六拍工作方式后,電機(jī)正常運(yùn)轉(zhuǎn)。</p><
41、p> 用數(shù)碼管的最后兩位的數(shù)值奇偶來(lái)控制電動(dòng)機(jī)的正反轉(zhuǎn),即00H時(shí)步進(jìn)電機(jī)順時(shí)針轉(zhuǎn),為01H時(shí)步進(jìn)電機(jī)逆時(shí)針轉(zhuǎn)動(dòng),依次類(lèi)推。</p><p> 調(diào)速延時(shí)循環(huán)中的外循環(huán)R6的初值過(guò)小,給R6賦值為0FFH后,調(diào)速范圍適中,電機(jī)正常運(yùn)行。</p><p><b> 第五章 總結(jié)</b></p><p> 一開(kāi)始接觸單片機(jī)課程設(shè)計(jì)、接觸
42、8279,說(shuō)實(shí)話(huà)還是比較陌生的,雖然大部分的知識(shí)都已經(jīng)在課堂上學(xué)習(xí)過(guò),而且平時(shí)我自己也接觸過(guò)單片機(jī),但真正接觸課程設(shè)計(jì)的時(shí)候還是顯得有些不足,許多知識(shí)不能靈活運(yùn)用,稍微復(fù)雜一點(diǎn)的程序就看不懂了。因此在開(kāi)始的兩天里面,我和幾個(gè)同學(xué)認(rèn)真地閱讀分析了老師給的參考程序,在討論和分析中,整個(gè)程序的脈絡(luò)也漸漸清晰起來(lái),思路也漸漸明朗。之后自己編寫(xiě)程序的過(guò)程中也出現(xiàn)過(guò)許多錯(cuò)誤,包括一些簡(jiǎn)單的語(yǔ)法錯(cuò)誤和一些邏輯錯(cuò)誤,但經(jīng)過(guò)和同學(xué)的討論之后,也都一一解決
43、了,其中比較典型的錯(cuò)誤我已在上面一一列舉了。</p><p> 這次的課程設(shè)計(jì)不僅使我們更牢固地掌握了書(shū)本知識(shí),也讓我們對(duì)單片機(jī)的實(shí)際應(yīng)用有了一定得了解,同時(shí)也鍛煉了我們自身查閱資料、分析問(wèn)題、解決問(wèn)題的能力。在與同學(xué)的交流過(guò)程中,我發(fā)現(xiàn)了自身還存在許多不足,有些知識(shí)沒(méi)有同學(xué)掌握地那么牢固,理解地沒(méi)有他們那么透徹,在今后的學(xué)習(xí)過(guò)程中,我一定會(huì)努力提高自身的知識(shí)水平,使自己成為一名優(yōu)秀的大學(xué)生。在整個(gè)課程過(guò)程中我
44、明白了幾個(gè)道理:首先,做學(xué)問(wèn)要一絲不茍,要以科學(xué)的態(tài)度對(duì)待問(wèn)題,不能存在僥幸的心理,出現(xiàn)了任何偏差都不要輕視;其次,做任何事情之前,都要有充足的準(zhǔn)備,正所謂“磨刀不誤砍柴工”,這樣的話(huà)做事情才有效率;最后,做事要有耐心和毅力,不要遇到困難就退縮,要迎難而上,只有鍥而不舍,才能取得成功。附錄1 硬件邏輯圖</p><p><b> 附錄圖 1</b></p><p&g
45、t;<b> 附錄2 程序清單</b></p><p> DAT_8279 EQU 0C000H ;鍵盤(pán)顯示接口</p><p> COM_8279 EQU 0C001H</p><p> ORG 0000H </p><p><b> NOP&
46、lt;/b></p><p> AJMP MAIN</p><p> ORG 0030H</p><p> MAIN: CLR EA ;內(nèi)外程序存儲(chǔ)器選擇端,可以使用內(nèi)部存儲(chǔ)器</p><p> MOV SP,#60H ;設(shè)置堆棧指
47、針</p><p><b> CLR A</b></p><p> MOV PSW,A ;程序狀態(tài)字清零</p><p> MOV IE,A ;中斷允許寄存器清零</p><p> MOV R0,#7FH</p>&
48、lt;p> INIT: MOV @R0,A ;清除CPU RAM</p><p> DJNZ R0,INIT</p><p> INIT8279: </p><p> MOV DPTR,#COM_8279 ;初始化8279</p><p>
49、MOVX @DPTR,A</p><p> MOV A,#32H ;分頻設(shè)置,50分頻</p><p> MOVX @DPTR,A</p><p> ACALL OFFLED ;調(diào)用子程序清除8279RAM</p><p> MOV DPTR,#COM_
50、8279</p><p> MOV A,#80H ;寫(xiě)顯示RAM命令,從左面第一個(gè)LED開(kāi)始進(jìn)行</p><p> MOVX @DPTR,A</p><p> BACK: MOV R0,#80H</p><p> MOV R1,#00H</p><p&
51、gt; XUEHAO: MOV A,R0</p><p> MOV DPTR,#COM_8279</p><p> MOVX@DPTR,A ;編寫(xiě)學(xué)號(hào),并顯示</p><p> MOVDPTR,#MY_NUM</p><p><b> MOVA,R1</b></
52、p><p> MOVCA,@A+DPTR</p><p> MOVDPTR,#DAT_8279</p><p> MOVX@DPTR,A</p><p><b> INCR0</b></p><p><b> INCR1</b></p><
53、p> CJNER1,#08H,XUEHAO ;學(xué)號(hào)未顯示完,跳轉(zhuǎn),接著顯示</p><p> MOV 30H,#80H ;LED數(shù)值所在地址放入30H</p><p> MOV 31H,#40H ;存放數(shù)值的地址在31H,</p><p>
54、WAIT: ACALL SCANKEY ;等待按鍵</p><p> JNC WAIT ;無(wú)鍵跳轉(zhuǎn)</p><p> MOV A,R1</p><p> JB ACC.4,COMMKEY ;判斷是否為命令鍵,是則跳轉(zhuǎn),不是
55、則順序執(zhí)行</p><p> KEYNUM: MOV A,30H ;有鍵賦值,LED數(shù)值給A</p><p> MOV DPTR,#COM_8279 </p><p> MOVX @DPTR,A ;把LED數(shù)值送到端口地址</p>&
56、lt;p> MOV A,R1 ;鍵值給A</p><p> MOV R0,31H </p><p> MOV @R0,A ;將鍵盤(pán)真實(shí)值送到40H中(此程序保證鍵盤(pán)真實(shí)值被保留)</p><p> INC 31H
57、 ;31H自加,指向41H</p><p> MOV DPTR,#DISPCODE ;段代碼給數(shù)據(jù)指針</p><p> MOVC A,@A+DPTR ;鍵值是多少就偏移多少單元</p><p> MOV DPTR,#DAT_8279</p><p> MO
58、VX @DPTR,A ;將鍵值的段代碼送到顯示接口</p><p> INC 30H ;30H內(nèi)容加一,LED數(shù)值加一</p><p> MOV A,30H ;LED數(shù)值送給A</p><p> CJNE A,#88H,WAIT
59、 ;判斷LED八個(gè)顯示是否全部被操作,若沒(méi)有則返回繼續(xù)讀鍵值</p><p> MOV 30H,#80H ;全部被操作后,從最左邊重新開(kāi)始</p><p> MOV 31H,#40H</p><p> SJMP WAIT ;以上程序保證了8個(gè)數(shù)碼管全部顯示&
60、lt;/p><p> COMMKEY: MOV DPTR,#PROGCOMM ;功能鍵的處理與命令,PROGCOMM首地址給數(shù)據(jù)指針</p><p> MOV A,R1</p><p> ANL A,#03H ;0000 0011相與,只保留后兩位</p><p> RL
61、 A ;PROGCOMM中各句程序間相隔兩個(gè)單元,保證跳轉(zhuǎn)正常</p><p> JMP @A+DPTR ;判斷執(zhí)行哪部操作</p><p> PROGCOMM: AJMP LASTP ;電機(jī)順時(shí)針運(yùn)轉(zhuǎn)</p><p> AJMP NE
62、XTP ;電機(jī)逆時(shí)針運(yùn)轉(zhuǎn)</p><p> AJMP EXECP ;電機(jī)連續(xù)運(yùn)轉(zhuǎn)</p><p> LASTP: MOV R2,#00H ;實(shí)現(xiàn)電機(jī)的點(diǎn)動(dòng)正轉(zhuǎn)</p><p> MOV DPTR,#NUMBER1 ;正轉(zhuǎn)代碼首地址</p><p>
63、; L1: MOV A,R2</p><p> MOVC A,@A+DPTR</p><p> MOV P1,A ;電動(dòng)機(jī)六拍依次給P1口,每輸入一次調(diào)用一次延時(shí),共六次</p><p> ACALL DELAY</p><p> INC R2</p><
64、;p> MOV A,R2</p><p> CJNE A,#06H,L1 </p><p><b> RET</b></p><p> NEXTP: MOV R2,#00H ;實(shí)現(xiàn)電機(jī)的點(diǎn)動(dòng)反轉(zhuǎn) </p><p
65、> MOV DPTR,#NUMBER2 ;反轉(zhuǎn)代碼首地址</p><p> L2: MOV A,R2</p><p> MOVC A,@A+DPTR</p><p> MOV P1,A ;電動(dòng)機(jī)六拍依次給P1口,每輸入一次調(diào)用一次延時(shí),共六次</p><p>
66、 ACALL DELAY</p><p> INC R2</p><p> MOV A,R2</p><p> CJNE A,#06H,L2 </p><p><b> RET</b></p><p> EXECP: ACALL TIME
67、 ;調(diào)用步進(jìn)步進(jìn)電機(jī)連續(xù)運(yùn)行程序</p><p><b> RET</b></p><p> OFFLED: MOV A,#0DFH ;共陽(yáng)極數(shù)碼管,1101 1111,顯示RAM置為FF,數(shù)碼管關(guān)閉</p><p> MOV DPTR,#COM_8279</p>&
68、lt;p> MOVX @DPTR,A ;將狀態(tài)字送給端口地址</p><p> OFFLED1: MOVX A,@DPTR</p><p> JB ACC.7,OFFLED1</p><p> RET ;判斷是否清
69、0完畢,清除完則返回主程序</p><p> SCANKEY: MOV DPTR,#COM_8279 ;等待按鍵</p><p> MOVX A,@DPTR ;接口地址得到的數(shù)值給A</p><p> ANL A,#07H ;
70、0000 0111相與,保留后三位狀態(tài)</p><p> CJNE A,#00H,HAVEKEY ;后三位不為零則有鍵輸入,跳轉(zhuǎn)到HAVEKEY</p><p> CLR C ;無(wú)按鍵C清零</p><p> RET ;返回<
71、/p><p> HAVEKEY: MOV DPTR,#DAT_8279 ;有鍵讀鍵值</p><p> MOVX A,@DPTR ;鍵值給A</p><p> MOV B,A ;備份鍵值</p><p> MOV R1,#00H
72、</p><p> MOV DPTR,#KEYCODE; ;查鍵值表,首地址取出,放到數(shù)據(jù)指針中</p><p> KEYLOOP: CLR A </p><p> MOVC A,@A+DPTR ;首地址鍵值給A</p><p> CJNE A,B,NOKEY
73、 ;比較A與讀入鍵值大小,若相等則找到鍵值,否則繼續(xù)尋找</p><p> AJMP FOUNDKEY ;找到鍵值,進(jìn)行處理</p><p> NOKEY: INC DPTR ;指針偏移一個(gè)單元</p><p> INC R1
74、 ;鍵值大小增加一</p><p> AJMP KEYLOOP ;未找到 循環(huán)繼續(xù)找</p><p> FOUNDKEY: MOV A,R1 ;鍵值大小給A</p><p> SETB
75、 C ;C置一并返回</p><p><b> RET</b></p><p> NUMBER1: DB 02H,06H,04H,0CH,08H,0AH ;正轉(zhuǎn)代碼</p><p> NUMBER2: DB 0AH,08H,0CH,04H,06
76、H,02H ;反轉(zhuǎn)代碼</p><p> LATE: MOV A,44H ;調(diào)速延時(shí)循環(huán)</p><p><b> SWAP A</b></p><p> ORL A,45H ;5/6數(shù)碼管值合
77、并成一個(gè)數(shù)放在R7中</p><p> MOV R7,A</p><p> L3: DJNZ R7,L3 ;R7為內(nèi)循環(huán)</p><p> DJNZ R6,LATE ;R6為外循環(huán)</p><p><b>
78、; RET </b></p><p> DELAY: MOV R7,#20H ;點(diǎn)動(dòng)延時(shí)循環(huán)</p><p> DELAY1: MOV R6,#0FFH</p><p> DJNZ R6,$ ;R6為內(nèi)循環(huán)</
79、p><p> DJNZ R7,DELAY1 ;R7為外循環(huán)</p><p> RET </p><p> KEYCODE: DB 0C1H,0C8H,0C9H,0D0H,0D8H,0E0H,0C2H,0CAH ;0到F鍵值</p><p> DB 0D1
80、H,0D9H,0DAH,0C3H,0CBH,0D2H,0D3H,0DBH</p><p> COMCODE: DB 0E3H,0E2H,0E1H,00H ;功能鍵值</p><p> DISPCODE: DB 0CH,9FH,4AH,0BH,99H,29H,28H,8FH</p><p> DB 08H
81、,09H,88H,38H,6CH,1AH,68H,0E8H ;0到F數(shù)碼管的段代碼</p><p> DB 0C8H,3AH,0ECH,0FFH ;四個(gè)功能鍵數(shù)碼管段代碼</p><p> MY_NUM:DB0CH,0CH,0BH,0CH,99H,0CH,4AH,09H ;學(xué)號(hào)數(shù)值的段代碼表</p&
82、gt;<p> TIME: MOV A,40H ;把1/2數(shù)碼管值放到R3</p><p> SWAP A ;高低四位交換</p><p> ORL A,41H
83、 ;邏輯或</p><p> MOV R3,A </p><p> MOV A,42H ;把3/4數(shù)碼管值放到R4</p><p><b> SWAP A</b></p><p> ORL A,43H</p><p&
84、gt; MOV R4,A</p><p> L5: MOV R2,#00H </p><p> L4: MOV A,47H ;把最后一個(gè)數(shù)碼管值給A</p><p> JB ACC.0,DIRECTION ;若ACC.0
85、為1則跳轉(zhuǎn)</p><p> MOV DPTR,#NUMBER1 ;為偶數(shù)則順時(shí)針轉(zhuǎn)動(dòng) </p><p><b> AJMP L7</b></p><p> DIRECTION: MOV DPTR,#NUMBER2 ;為奇數(shù)則逆時(shí)針轉(zhuǎn)動(dòng)</p><p&g
86、t; L7: MOV A,R2 ;A清零</p><p> MOVC A,@A+DPTR</p><p> MOV P1,A ;把A的內(nèi)容輸?shù)絇1口</p><p> MOV R6,#0FFH
87、 ;延時(shí)外循環(huán)賦初值</p><p> ACALL LATE ;延時(shí)</p><p><b> INC R2</b></p><p> ACALL CTIME1 ;調(diào)用步距程序</p><p>
88、; MOV A,R2</p><p> CJNE A,#06H,L7 ;A不為06H跳轉(zhuǎn)L7</p><p><b> AJMP L5</b></p><p> CTIME1: CJNE R4,#00H,MM1 ;R4不為零則
89、轉(zhuǎn)移</p><p> CTIME2: CJNE R3,#00H,MM2 ;R3不為零則轉(zhuǎn)</p><p> AJMP MM4 ;都為零時(shí)轉(zhuǎn)到MM4</p><p> MM1: DJNZ R4,MM5
90、 ;R4減1,不為零則轉(zhuǎn)移 </p><p> AJMP MM6 ;為零則轉(zhuǎn)移到MM6</p><p> MM6: LCALL SHOW1 ;調(diào)用顯示程序</p><p> SJMP CTIME2</p><
91、p> MM2: DEC R3 ;R3減1</p><p> SJMP MM1 </p><p> MM4: LCALL SHOW1 </p><p> LJMP BACK
92、 ;步進(jìn)到零時(shí)回到初值</p><p> MM5: LCALL SHOW1 ;調(diào)用顯示程序</p><p><b> RET</b></p><p> SHOW1: MOV R0,#40H
93、 ;把改變后的1/2數(shù)碼管值再送回顯示的地址</p><p> MOV A,R3</p><p> ANL A,#0F0H ;保留R3高4位</p><p> SWAP A ;高4位變低4位</p><p> MOV @R0
94、,A ;輸出1數(shù)碼管數(shù)值</p><p> INC R0 ;R0 增1</p><p> MOV A,R3 </p><p> ANL A,#0FH ;保留低4位</p><p> M
95、OV @R0,A ;輸出2數(shù)碼管數(shù)值</p><p> INC R0 </p><p> MOV A,R4 ;把改變后的3/4數(shù)碼管值再送回顯示的地址</p><p> ANL A,#0F0H ;保留R4高4位</p&
96、gt;<p> SWAP A ;高4位變低4位</p><p> MOV @R0,A ;輸出3數(shù)碼管數(shù)值</p><p><b> INC R0</b></p><p> MOV A,R4
97、 </p><p> ANL A,#0FH ;保留低4位</p><p> MOV @R0,A ;輸出2數(shù)碼管數(shù)值</p><p> LCALL SHOW2</p><p> RET
98、;返回</p><p> SHOW2: MOV 30H,#80H ;把改變后的值都顯示出來(lái)</p><p> MOV 31H,#40H</p><p> MOV R5,#08H ;一共八位</p><p> L6
99、: MOV DPTR,#COM_8279 ;鍵盤(pán)顯示接口</p><p> MOV A,30H</p><p> MOVX @DPTR,A</p><p> MOV R0,31H ;取40H中的數(shù)據(jù)送給R0</p><
100、p> MOV A,@R0</p><p> MOV DPTR,#DISPCODE ;取段代碼</p><p> MOVC A,@A+DPTR</p><p> MOV DPTR,#DAT_8279 ;送鍵盤(pán)顯示接口 </p><p> MOVX
101、 @DPTR,A</p><p> INC 31H ;送下一位數(shù)據(jù) </p><p> INC 30H</p><p> DJNZ R5,L6 ;送完八位結(jié)束 </p><p> RET
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的步進(jìn)電機(jī)控制單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)-單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)步進(jìn)電機(jī)課程設(shè)計(jì)--單片機(jī)控制步進(jìn)電機(jī)的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的四相步進(jìn)電機(jī)控制
- 單片機(jī)課程設(shè)計(jì)報(bào)告——單片機(jī)控制步進(jìn)電機(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ì)--步進(jìn)電機(jī)控制
- 單片機(jī)課程設(shè)計(jì)---步進(jìn)電機(jī)控制
- (四相步進(jìn)電機(jī))單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-步進(jìn)電機(jī)的控制
- 單片機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)步進(jìn)電機(jī)控制設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)——基于單片機(jī)的步進(jìn)電機(jī)控制器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)-步進(jìn)電機(jī)的控制
- 單片機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)角度控制
評(píng)論
0/150
提交評(píng)論