2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  單片機(jī)課程設(shè)計</b></p><p>  三相步進(jìn)電機(jī)的單片機(jī)控制</p><p>  《單片機(jī)應(yīng)用系統(tǒng)設(shè)計》課程設(shè)計任務(wù)書</p><p><b>  一. 課題名稱</b></p><p>  三相步進(jìn)電動機(jī)的單片機(jī)控制。</p><p>

2、<b>  二.設(shè)計目的 </b></p><p>  通過設(shè)計一個由單片微機(jī)組成的應(yīng)用系統(tǒng),全面了解和掌握單片機(jī)應(yīng)用系統(tǒng)的設(shè)計方法,包括硬件設(shè)計,軟件設(shè)計和系統(tǒng)調(diào)試,同的也應(yīng)掌握單片機(jī)開發(fā)系統(tǒng)的原理和使用方法。</p><p><b>  三.設(shè)計要求</b></p><p>  步進(jìn)電機(jī)常用作機(jī)電一體化系統(tǒng)的執(zhí)行部件,

3、了解步進(jìn)電機(jī)的工作原理和微機(jī)控制的基本方法,對學(xué)習(xí)和掌握微機(jī)應(yīng)用和機(jī)電一體化系統(tǒng)設(shè)計具有重要意義。本次設(shè)計要求設(shè)計一套以單片機(jī)為核心的步進(jìn)電機(jī)控制器,步進(jìn)電機(jī)采用實驗用三相步進(jìn)電動機(jī),控制器硬件采用愛思89C51-B高級用戶板以及愛思通用8279鍵盤顯示板,要求畫出應(yīng)用系統(tǒng)的硬件邏輯圖,設(shè)汁的主要工作是軟件設(shè)計和系統(tǒng)調(diào)試,具體有以下幾點(diǎn)要求:</p><p>  利用MCS-51系列兼容機(jī)ATMEL89C51、8

4、279及有關(guān)接口芯片構(gòu)成一個完整的單片機(jī)應(yīng)用系統(tǒng),要求設(shè)計16只鍵組成的鍵盤以輸入數(shù)據(jù)和命令,8只LED顯示器用于系統(tǒng)顯示輸出。此外,采用89C51的P1口輸出信號,經(jīng)放大驅(qū)動一臺步進(jìn)電機(jī)。</p><p>  根據(jù)上述要求繪制系統(tǒng)的硬件邏輯圖。</p><p>  設(shè)計系統(tǒng)軟件,其功能為管理鍵盤和顯示器,要求該系統(tǒng)軟件具有較好的通用性。</p><p>  設(shè)計應(yīng)

5、用軟件,控制步進(jìn)電機(jī),要求定義若干功能鍵,用于實現(xiàn)步進(jìn)電機(jī)能以下列三種方式工作:</p><p>  正向點(diǎn)動和反向點(diǎn)動;</p><p><b>  恒速步進(jìn)給定行程;</b></p><p>  以設(shè)定的速度步進(jìn)給定行程。</p><p>  系統(tǒng)調(diào)試,學(xué)習(xí)單片機(jī)開發(fā)系統(tǒng)(仿真器)和用戶板的使用方法,利用開發(fā)系統(tǒng)進(jìn)行

6、程序的調(diào)試及整個應(yīng)用系統(tǒng)進(jìn)行實時仿真,最后將調(diào)試好的程序固化在89C51單片機(jī)中,應(yīng)用系統(tǒng)能正常工作。 </p><p><b>  四.設(shè)計步驟</b></p><p>  了解三相步進(jìn)電機(jī)的工作原理,確定控制方案。</p><p>  設(shè)計應(yīng)用系統(tǒng)硬件邏輯圖,根據(jù)所學(xué)知識,畫出所選各芯片、器件的連接線路,包括數(shù)據(jù)線,地址線和控制信號線。 &

7、lt;/p><p>  編寫系統(tǒng)軟件,注意各功能鍵的定義。</p><p>  編寫應(yīng)用軟件,注意與系統(tǒng)軟件相連接。</p><p>  學(xué)習(xí)單片機(jī)開發(fā)系統(tǒng)的使用方法,并調(diào)試所編制的軟件。</p><p>  使用仿真器調(diào)試整個應(yīng)用系統(tǒng)。</p><p>  將調(diào)試好的程序固化到單片機(jī)中,使系統(tǒng)脫機(jī)運(yùn)行。</p>

8、;<p>  打印程序清單,編寫總結(jié)報告。</p><p>  五.設(shè)計說明書內(nèi)容及格式</p><p>  詳細(xì)的邏輯電路圖及說明(包括芯片選擇,控制信號的連接方法等)</p><p>  程序框圖及打印的清單。</p><p>  調(diào)試過程及結(jié)論分析。</p><p>  調(diào)試過程中遇到問題及解決辦法

9、。</p><p>  應(yīng)用系統(tǒng)設(shè)計的方案、收獲及體會。</p><p>  設(shè)計說明書必須按照規(guī)定格式書寫,包括封面、內(nèi)容提要、目錄、章節(jié),頁碼。</p><p><b>  六.答辯</b></p><p>  所有內(nèi)容完成后,可以進(jìn)行答辯。答辯需提交設(shè)計說明書、程序清單,并現(xiàn)場演示自己編寫的程序。</p>

10、;<p><b>  七.附錄</b></p><p>  愛思G3000A仿真器使用手冊</p><p>  愛思89C51-B高級用戶板以及愛思通用8279鍵盤顯示板資料</p><p><b>  參考資料</b></p><p>  《MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計》何立民

11、 1990年 北京航空航天大學(xué)出版社</p><p>  《MCS-51系列單片機(jī)及其應(yīng)用》蔡美琴 1992年 高等教育出版社</p><p>  《單片機(jī)實用系統(tǒng)設(shè)計技術(shù)》 房小翠 1999年 國防大學(xué)出版社</p><p><b>  目錄</b></p><p>  第一章 前 言4</p>

12、<p>  第二章 總體方案設(shè)計5</p><p>  第三章 系統(tǒng)硬件設(shè)計7</p><p>  3.1 專用鍵盤顯示接口芯片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 電路原理圖及說明9</p><p>  3.4步進(jìn)電機(jī)簡介 9</p><p>  第四章 系統(tǒng)軟件設(shè)計10</p><p>  4.1系統(tǒng)設(shè)計10</p><p>  4.2程序流程圖10</p><p>  4.3 程序清單11</p>&l

14、t;p>  4.4調(diào)試過程11</p><p><b>  第五章 總結(jié)12</b></p><p>  附錄1 硬件邏輯圖13</p><p>  附錄2 程序清單14</p><p><b>  摘要</b></p><p>  本課程設(shè)計是以單片機(jī)為

15、核心的步進(jìn)電機(jī)控制器,步進(jìn)電機(jī)采用實驗用三相步進(jìn)電動機(jī),同時采用愛思89C51-B高級用戶板以及愛思通用8279鍵盤顯示板作為控制器硬件,實現(xiàn)了用鍵盤控制步進(jìn)電機(jī)的正轉(zhuǎn)點(diǎn)動、反轉(zhuǎn)點(diǎn)動、正轉(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é)合不同類型的傳感器,可實現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。例如精密的測量設(shè)備(功率計,示波器,各種分析儀)。 同時用單片機(jī)還可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統(tǒng),與計算機(jī)聯(lián)網(wǎng)構(gòu)成二級控制

17、系統(tǒng)等。  </p><p>  現(xiàn)代的單片機(jī)普遍具備通信接口,可以很方便地與計算機(jī)進(jìn)行數(shù)據(jù)通信,為在計算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實現(xiàn)了單片機(jī)智能控制,從手機(jī),電話機(jī)、小型程控交換機(jī)、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機(jī)等。此外,單片機(jī)在工商,金融,科研、教育,國防航空航天等領(lǐng)域都有著十分廣

18、泛的用途。 </p><p>  目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢將是進(jìn)一步向著CMOS化、低功耗、大容量、高性能、低價格和外圍電路內(nèi)裝化等幾個方面發(fā)展。綜合所述,單片機(jī)已成為計算機(jī)發(fā)展和應(yīng)用的一個重要方面。另一方面,單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計思想和設(shè)計方法。從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過軟件方法來實現(xiàn)了。這種軟件代替硬

19、件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。  </p><p>  步進(jìn)電機(jī)作為執(zhí)行元件,是機(jī)電一體化的關(guān)鍵產(chǎn)品之一,隨著工業(yè)自動化的發(fā)展,步進(jìn)電機(jī)的應(yīng)用也越來越廣泛,廣泛應(yīng)用在各種自動化控制系統(tǒng)中。步進(jìn)電機(jī)是一種用于開環(huán)控制的驅(qū)動元件。它是用電脈沖信號進(jìn)行控制,將電脈沖信號轉(zhuǎn)換成相應(yīng)的角位移或線位移的微電動機(jī)。步進(jìn)電機(jī)作為電機(jī)的一種,可以靠開路控制做精確的定位,因此普遍應(yīng)用于電

20、腦的外設(shè)及工業(yè)生產(chǎn)的自動化機(jī)具設(shè)備中,如NC床、切割機(jī),此外機(jī)器人的各個關(guān)節(jié)控制也大量的使用步進(jìn)電機(jī)。 </p><p>  近些年來,由于步進(jìn)電機(jī)的控制精度不斷提高,越來越多有較高控制精度要求的系統(tǒng)也開始采用步進(jìn)電機(jī)。對于小功率步進(jìn)電機(jī),一般采用單片機(jī)與專用步進(jìn)電機(jī)驅(qū)動器聯(lián)合工作的方式,單片機(jī)產(chǎn)生脈沖,控制停啟、正反轉(zhuǎn),變速等,專用步進(jìn)電機(jī)驅(qū)動器則進(jìn)行脈沖環(huán)形分配及功率驅(qū)動。 </p&

21、gt;<p>  步進(jìn)電動機(jī)突出的優(yōu)點(diǎn)是它可以在寬廣的頻率范圍內(nèi)通過改變脈沖頻率來實現(xiàn)調(diào)速,快速起停、正反轉(zhuǎn)控制及制動等,并且用其組成的開環(huán)系統(tǒng)既簡單、廉價,又非常可,步進(jìn)電機(jī)的轉(zhuǎn)速取決于脈沖頻率、轉(zhuǎn)子齒數(shù)和拍數(shù)。其角速度與脈沖頻率成正比,而且在時間上與脈沖同步。因而在轉(zhuǎn)子齒數(shù)和運(yùn)行拍數(shù)一定的情況下,只要控制脈沖頻率即可獲得所需速度因此在眾多領(lǐng)域有著極其廣泛的應(yīng)用。研制一種高性價比步進(jìn)電機(jī)驅(qū)動器及其控制系統(tǒng)具有重要的意義。

22、 </p><p>  本次課程設(shè)計選用的步進(jìn)電機(jī)是三相步進(jìn)電機(jī),通過軟件和硬件的結(jié)合,使用按鍵控制步進(jìn)電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、調(diào)速功能,并且將步進(jìn)電機(jī)所處的狀態(tài)用相應(yīng)的數(shù)碼管顯示。主要通過三大塊來設(shè)計,包括驅(qū)動電路的設(shè)計、狀態(tài)顯示部分和按鍵部分的設(shè)計,可以通過控制脈沖個數(shù)來控制角位移量,從而控制轉(zhuǎn)動的角度;同時可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動的加速度,從而達(dá)到調(diào)速的目的。  </

23、p><p>  第二章 總體方案設(shè)計</p><p><b> ?。ㄒ唬?#160;控制方式 </b></p><p>  控制主要有:正反向點(diǎn)動按鈕、連續(xù)運(yùn)行按鈕、復(fù)位按鈕。 </p><p>  由于設(shè)計只需要20個按鍵,不需要采用復(fù)雜編碼,考慮硬件條件、線路連接和經(jīng)濟(jì)性等方面,選擇獨(dú)立按鍵的方式。

24、  </p><p> ?。ǘ?#160;單片機(jī)的選擇 </p><p>  80C51高性能8位單片機(jī),內(nèi)部集成CPU、存儲器、寄存器、I/O接口,從而構(gòu)成較為完整的計算機(jī),價格便宜。本次課程設(shè)計是在仿真環(huán)境下進(jìn)行,我們課程設(shè)計實驗室所使用的愛思G3000仿真開發(fā)系統(tǒng)。綜合考慮本課程設(shè)計要求、單片機(jī)的價格和性能從而選擇80C31單片機(jī)</p>

25、<p> ?。ㄈ?#160;顯示方案的選擇 </p><p>  采用LED數(shù)碼管。LED數(shù)碼管是顯示采用動態(tài)掃描的方式,利用人煙的視覺暫留特性,由于掃描周期很短,使人感覺不到數(shù)碼管閃動,看到每只數(shù)碼管都常亮。 </p><p><b>  輸入方式的選擇 </b></p><p>  本課程設(shè)計采用

26、愛思串行鍵盤板輸入,本串行鍵盤板采用ZLG8279芯片,僅用4根I/O口線。</p><p> ?。ㄎ澹?鍵盤/顯示器控制芯片的選擇</p><p>  8279是可編程的鍵盤、顯示接口芯片,能自動完成對鍵盤輸入以及數(shù)碼管輸出的掃描,減輕工作人員的編程壓力以及單片機(jī)的工作負(fù)荷。而且8279與MCS-51接口方便,由它構(gòu)成的標(biāo)準(zhǔn)鍵盤/顯示器接口在微機(jī)應(yīng)用系統(tǒng)中使用越來越廣泛。</p&

27、gt;<p><b>  8279特點(diǎn)</b></p><p>  (1)可同時進(jìn)行鍵盤掃描及文字顯示;</p><p>  (2)鍵盤掃描模式(Scanned Keyboard Mode);</p><p>  (3)傳感器掃描模式(Scanned Sensor Mode);</p><p>  (4)激

28、發(fā)輸入模式(Strobe Input Entry Mode);</p><p>  (5)8乘8鍵盤FIFO(先進(jìn)先出);</p><p>  (6)具有接點(diǎn)消除抖動,2鍵鎖定及N鍵依此讀出模式;</p><p>  (7)雙排8位數(shù)或雙排16位數(shù)的顯示器;</p><p>  (8)右邊進(jìn)入或左邊進(jìn)入。16位字節(jié)顯示存儲器。</p&g

29、t;<p>  第三章 系統(tǒng)硬件設(shè)計</p><p>  3.1 專用鍵盤顯示接口芯片8279</p><p>  8279是專用鍵盤/顯示器控制芯片,能對顯示器自動掃描,能識別鍵盤上按下鍵的鍵號;可充分提高CPU的工作效率。8279與MCS-51接口方便,由它構(gòu)成的標(biāo)準(zhǔn)鍵盤/顯示器接口在微機(jī)應(yīng)用系統(tǒng)中使用越來越廣泛。</p><p>  3.1.1

30、 8279特征</p><p>  能同時執(zhí)行鍵盤與顯示器操作。 </p><p>  掃描式鍵盤工作方式。</p><p>  有8個鍵盤FIFO(First in First out)存儲器。</p><p>  帶觸點(diǎn)去抖動的雙鍵鎖定或N鍵巡回功能。</p><

31、;p>  兩個8位或16位的數(shù)字顯示器。</p><p>  可左/右輸入的16字節(jié)顯示用RAM。</p><p>  由鍵盤輸入產(chǎn)生中斷信號。</p><p>  掃描式傳感器工作方式。</p><p>  用選通方式輸入信號。</p><p>  單個16字符顯示器。</p><p>

32、<b>  可編程掃描定時。</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)). 一個封裝中有八個鎖存器,三態(tài)總線驅(qū)動輸出,置數(shù)全并行存取,緩沖控制輸入,時鐘/使能輸入有改善抗擾度的滯后作用。在電路中的作用是:由于P0口既是數(shù)據(jù)口又是地址口,所以加一個鎖存器鎖存地址。</p><p> 

34、 2. 74LS138: 為3 線-8 線譯碼器共有 54/74S138和 54/74LS138 兩種線路結(jié)構(gòu)型式。利用 G1、/(G2A)和/(G2B)可級聯(lián)擴(kuò)展成 24 線譯碼器;若外接一個反相器還可級聯(lián)擴(kuò)展成 32 線譯碼器。 若將選通端中的一個作為數(shù)據(jù)輸入端時,74LS138還可作數(shù)據(jù)分配器。電路中的作用是:使器件的地址連續(xù),用三根線控制八根線。</p><p>  3. 74LS240:八單線驅(qū)動器。(

35、反碼,三態(tài)輸出),這種八緩沖器和線驅(qū)動器是為提高三態(tài)輸出存儲地址驅(qū)動器,時鐘驅(qū)動器和總線定向接收器和發(fā)射器的性能可和集成度而特意設(shè)計的。</p><p>  4.7451:8路驅(qū)動器,增強(qiáng)數(shù)碼管顯示的亮度。</p><p>  3.3 電路原理圖及說明</p><p>  MCS-51采用8279擴(kuò)展的鍵盤、顯示器的接口電路控制三相步進(jìn)電機(jī)的運(yùn)轉(zhuǎn),P1.1、P1.2

36、、P1.3分別接三相步進(jìn)電機(jī)的A、B、C三相,構(gòu)成一個完整的單片機(jī)應(yīng)用系統(tǒng),設(shè)計20個鍵組成的鍵盤以輸入數(shù)據(jù)與命令,8只LED顯示器用于系統(tǒng)顯示輸出。采用89C51的P1口輸出信號,經(jīng)放大驅(qū)動一臺步進(jìn)電機(jī),電路圖見附錄1。</p><p>  3.4 步進(jìn)電機(jī)簡介</p><p>  本課程設(shè)計采用單片機(jī)軟件實現(xiàn)對步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)控制,使用單片機(jī)的Pl口循環(huán)輸出代碼,經(jīng)功率放大器來控制步進(jìn)電

37、機(jī)的三相繞組,從而控制步進(jìn)電機(jī)運(yùn)轉(zhuǎn)。步進(jìn)電機(jī)以三相單雙六拍的工作方式轉(zhuǎn)動。過改變?nèi)嗤婍樞騺韺崿F(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三信號格式送數(shù)即可,正轉(zhuǎn)時輸出的順序為02H→06H→04H→0CH→08H→0AH→02H,反 轉(zhuǎn) 時 輸 出 的 順 序 為02H→0AH→08H→0

38、CH→04H→06H→02H。</p><p>  第四章 系統(tǒng)軟件設(shè)計</p><p><b>  4.1系統(tǒng)設(shè)計:</b></p><p>  根據(jù)功能設(shè)計要求設(shè)計本控制系統(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 程序清單(詳見附錄2)</p><p><b>  4.4調(diào)試過程</b></p><p>  在調(diào)試過程中,我們遇到了以下問題:</p><p>  步進(jìn)電機(jī)以雙三拍的工作方式(即AB

40、-BC-CA)轉(zhuǎn)動時,電機(jī)只是震動,運(yùn)行不起來。</p><p>  電機(jī)連續(xù)轉(zhuǎn)動的方向總是順時針轉(zhuǎn)動,改變不了。</p><p>  電動機(jī)連續(xù)運(yùn)行時轉(zhuǎn)速過快。</p><p><b>  問題解決方案:</b></p><p>  將雙三拍工作方式改為單雙六拍工作方式后,電機(jī)正常運(yùn)轉(zhuǎn)。</p><

41、p>  用數(shù)碼管的最后兩位的數(shù)值奇偶來控制電動機(jī)的正反轉(zhuǎn),即00H時步進(jìn)電機(jī)順時針轉(zhuǎn),為01H時步進(jìn)電機(jī)逆時針轉(zhuǎn)動,依次類推。</p><p>  調(diào)速延時循環(huán)中的外循環(huán)R6的初值過小,給R6賦值為0FFH后,調(diào)速范圍適中,電機(jī)正常運(yùn)行。</p><p><b>  第五章 總結(jié)</b></p><p>  一開始接觸單片機(jī)課程設(shè)計、接觸

42、8279,說實話還是比較陌生的,雖然大部分的知識都已經(jīng)在課堂上學(xué)習(xí)過,而且平時我自己也接觸過單片機(jī),但真正接觸課程設(shè)計的時候還是顯得有些不足,許多知識不能靈活運(yùn)用,稍微復(fù)雜一點(diǎn)的程序就看不懂了。因此在開始的兩天里面,我和幾個同學(xué)認(rèn)真地閱讀分析了老師給的參考程序,在討論和分析中,整個程序的脈絡(luò)也漸漸清晰起來,思路也漸漸明朗。之后自己編寫程序的過程中也出現(xiàn)過許多錯誤,包括一些簡單的語法錯誤和一些邏輯錯誤,但經(jīng)過和同學(xué)的討論之后,也都一一解決

43、了,其中比較典型的錯誤我已在上面一一列舉了。</p><p>  這次的課程設(shè)計不僅使我們更牢固地掌握了書本知識,也讓我們對單片機(jī)的實際應(yīng)用有了一定得了解,同時也鍛煉了我們自身查閱資料、分析問題、解決問題的能力。在與同學(xué)的交流過程中,我發(fā)現(xiàn)了自身還存在許多不足,有些知識沒有同學(xué)掌握地那么牢固,理解地沒有他們那么透徹,在今后的學(xué)習(xí)過程中,我一定會努力提高自身的知識水平,使自己成為一名優(yōu)秀的大學(xué)生。在整個課程過程中我

44、明白了幾個道理:首先,做學(xué)問要一絲不茍,要以科學(xué)的態(tài)度對待問題,不能存在僥幸的心理,出現(xiàn)了任何偏差都不要輕視;其次,做任何事情之前,都要有充足的準(zhǔn)備,正所謂“磨刀不誤砍柴工”,這樣的話做事情才有效率;最后,做事要有耐心和毅力,不要遇到困難就退縮,要迎難而上,只有鍥而不舍,才能取得成功。附錄1 硬件邏輯圖</p><p><b>  附錄圖 1</b></p><p&g

45、t;<b>  附錄2 程序清單</b></p><p>  DAT_8279 EQU 0C000H ;鍵盤顯示接口</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)外程序存儲器選擇端,可以使用內(nèi)部存儲器</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 ;寫顯示RAM命令,從左面第一個LED開始進(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 ;編寫學(xué)號,并顯示</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é)號未顯示完,跳轉(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 ;無鍵跳轉(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 ;將鍵盤真實值送到40H中(此程序保證鍵盤真實值被保留)</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八個顯示是否全部被操作,若沒有則返回繼續(xù)讀鍵值</p><p>  MOV 30H,#80H ;全部被操作后,從最左邊重新開始</p><p>  MOV 31H,#40H</p><p>  SJMP WAIT ;以上程序保證了8個數(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中各句程序間相隔兩個單元,保證跳轉(zhuǎn)正常</p><p>  JMP @A+DPTR ;判斷執(zhí)行哪部操作</p><p>  PROGCOMM: AJMP LASTP ;電機(jī)順時針運(yùn)轉(zhuǎn)</p><p>  AJMP NE

62、XTP ;電機(jī)逆時針運(yùn)轉(zhuǎn)</p><p>  AJMP EXECP ;電機(jī)連續(xù)運(yùn)轉(zhuǎn)</p><p>  LASTP: MOV R2,#00H ;實現(xiàn)電機(jī)的點(diǎn)動正轉(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 ;電動機(jī)六拍依次給P1口,每輸入一次調(diào)用一次延時,共六次</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 ;實現(xiàn)電機(jī)的點(diǎn)動反轉(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 ;電動機(jī)六拍依次給P1口,每輸入一次調(diào)用一次延時,共六次</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 ;共陽極數(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 ;無按鍵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 ;指針偏移一個單元</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)速延時循環(huán)</p><p><b>  SWAP A</b></p><p>  ORL A,45H ;5/6數(shù)碼管值合

77、并成一個數(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)動延時循環(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 ;四個功能鍵數(shù)碼管段代碼</p><p>  MY_NUM:DB0CH,0CH,0BH,0CH,99H,0CH,4AH,09H ;學(xué)號數(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 ;把最后一個數(shù)碼管值給A</p><p>  JB ACC.0,DIRECTION ;若ACC.0

85、為1則跳轉(zhuǎn)</p><p>  MOV DPTR,#NUMBER1 ;為偶數(shù)則順時針轉(zhuǎn)動 </p><p><b>  AJMP L7</b></p><p>  DIRECTION: MOV DPTR,#NUMBER2 ;為奇數(shù)則逆時針轉(zhuǎn)動</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、 ;延時外循環(huán)賦初值</p><p>  ACALL LATE ;延時</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 ;都為零時轉(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)到零時回到初值</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 ;把改變后的值都顯示出來</p><p>  MOV 31H,#40H</p><p>  MOV R5,#08H ;一共八位</p><p>  L6

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

最新文檔

評論

0/150

提交評論