畢業(yè)設(shè)計(jì)(論文)-基于STC單片機(jī)無(wú)線控制的步進(jìn)電機(jī)調(diào)速系統(tǒng)的設(shè)計(jì)_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于STC單片機(jī)無(wú)線控制的步進(jìn)電機(jī)調(diào)速系統(tǒng)的設(shè)計(jì)_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于STC單片機(jī)無(wú)線控制的步進(jìn)電機(jī)調(diào)速系統(tǒng)的設(shè)計(jì)_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于STC單片機(jī)無(wú)線控制的步進(jìn)電機(jī)調(diào)速系統(tǒng)的設(shè)計(jì)_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于STC單片機(jī)無(wú)線控制的步進(jìn)電機(jī)調(diào)速系統(tǒng)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、摘 要步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開(kāi)環(huán)控制元件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響,即給電機(jī)加一個(gè)脈沖信號(hào),電機(jī)那么轉(zhuǎn)過(guò)一個(gè)步距角。使得在速度、位置等控制領(lǐng)域用步進(jìn)電機(jī)來(lái)控制變的非常的簡(jiǎn)單。步進(jìn)電機(jī)的調(diào)速一般是改變輸入步進(jìn)電機(jī)的脈沖的轉(zhuǎn)動(dòng)一個(gè)固定的角度,這樣就可以通過(guò)控制步進(jìn)電機(jī)的一個(gè)脈沖到下一個(gè)脈沖的時(shí)間間隔來(lái)改變脈沖的頻率,延時(shí)的長(zhǎng)短來(lái)具體控制步進(jìn)角來(lái)改變電機(jī)的轉(zhuǎn)速,從而實(shí)現(xiàn)步進(jìn)電機(jī)的調(diào)速。在本設(shè)計(jì)方案中采用STC89C51型單片機(jī)內(nèi)部的定時(shí)器改變定時(shí)器設(shè)定值從而實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的轉(zhuǎn)速進(jìn)行控制,并通過(guò)無(wú)線控制實(shí)現(xiàn)電機(jī)調(diào)

2、速與正反轉(zhuǎn)的功能。關(guān)鍵詞:步進(jìn)電機(jī) ;單片機(jī) ;調(diào)速系統(tǒng) ;無(wú)線控制;液晶顯示AbstractStep-by-step electric motor is the ring opening gating element changing electricity pulse signal into angular displacement or line displacement. Under the situation of must overload, the electric motor rotation rate , discontinuous location depend on pu

3、lse signal frequency and pulse number only , make free from being loaded with the effect changing ,but be that being added a pulse signal , the electric motor by electric motor is to have rotated a step spur angle. Feasible simplicity controlling a field using step-by-step electric motor to come to

4、control changeable extraordinary in speed, location etc. Step-by-step electric motor speed regulation general be change import step-by-step electric motor pulse frequency come true step-by-step electric motor speed regulation, because of step-by-step electric motor every be given to a pulse right aw

5、ay rotate one fixed angle, such right away not bad pass under the control of step-by-step electric motor a pulse arrive at next pulse period come to change pulse frequency, Come to control the speed regulation , realizing step-by-step electric motor thereby to come to change the electric motor rotat

6、ion rate step-by-step angle concretely the deferred length. Frequency adopt the internal timer of AT89C51 type monolithic machine to change CP pulse in the design plan in realizes the speed regulation controlling , realizing an electric motor and the function that the positive and negative rotates b

7、eing in progress to step-by-step electric motor rotation rate thereby.Key words:Step-by-step Electric Motor; Monolithic Machine; Speed Regulation System; Wireless Controls; Liquid Crystal Display目 錄 TOC o 1-3 h z u HYPERLINK l _Toc326059461 1 前言 PAGEREF _Toc326059461 h 1 HYPERLINK l _Toc326059462 2

8、步進(jìn)電機(jī)概述 PAGEREF _Toc326059462 h 2 HYPERLINK l _Toc326059463 2.1 步進(jìn)電機(jī)的特點(diǎn) PAGEREF _Toc326059463 h 2 HYPERLINK l _Toc326059464 2.2 步進(jìn)電機(jī)的工作原理 PAGEREF _Toc326059464 h 2 HYPERLINK l _Toc326059465 2.3 步進(jìn)電機(jī)的技術(shù)參數(shù) PAGEREF _Toc326059465 h 3 HYPERLINK l _Toc326059466 2.4 步進(jìn)電機(jī)詳細(xì)調(diào)速原理 PAGEREF _Toc326059466 h 4 HYPE

9、RLINK l _Toc326059467 3 硬件電路設(shè)計(jì) PAGEREF _Toc326059467 h 4 HYPERLINK l _Toc326059468 3.1 單片機(jī)的選擇 PAGEREF _Toc326059468 h 4 HYPERLINK l _Toc326059469 3.2 無(wú)線收發(fā)電路 PAGEREF _Toc326059469 h 6 HYPERLINK l _Toc326059470 3.3 步進(jìn)電機(jī)驅(qū)動(dòng)電路 PAGEREF _Toc326059470 h 7 HYPERLINK l _Toc326059471 3.4 液晶顯示及矩陣鍵盤(pán)電路 PAGEREF _T

10、oc326059471 h 8 HYPERLINK l _Toc326059472 3.4.1 液晶顯示模塊概述 PAGEREF _Toc326059472 h 8 HYPERLINK l _Toc326059473 3.4.2 外形尺寸 PAGEREF _Toc326059473 h 9 HYPERLINK l _Toc326059474 3.5 液晶顯示模塊引腳功能 PAGEREF _Toc326059474 h 9 HYPERLINK l _Toc326059475 3.6 液晶顯示模塊接口電路 PAGEREF _Toc326059475 h 10 HYPERLINK l _Toc326

11、059476 3.7 矩陣鍵盤(pán) PAGEREF _Toc326059476 h 10 HYPERLINK l _Toc326059477 4 系統(tǒng)軟件設(shè)計(jì) PAGEREF _Toc326059477 h 12 HYPERLINK l _Toc326059478 4.1 顯示子程序 PAGEREF _Toc326059478 h 13 HYPERLINK l _Toc326059479 4.2 鍵盤(pán)子程序 PAGEREF _Toc326059479 h 13 HYPERLINK l _Toc326059480 4.3 驅(qū)動(dòng)程序 PAGEREF _Toc326059480 h 14 HYPERLI

12、NK l _Toc326059481 4.4 正反轉(zhuǎn)程序 PAGEREF _Toc326059481 h 15 HYPERLINK l _Toc326059482 正反轉(zhuǎn)程序 PAGEREF _Toc326059482 h 15 HYPERLINK l _Toc326059483 轉(zhuǎn)速快慢程序 PAGEREF _Toc326059483 h 17 HYPERLINK l _Toc326059484 定時(shí)中斷程序 PAGEREF _Toc326059484 h 18 HYPERLINK l _Toc326059485 5 實(shí)驗(yàn)結(jié)果與分析 PAGEREF _Toc326059485 h 18 HY

13、PERLINK l _Toc326059486 6 總結(jié) PAGEREF _Toc326059486 h 19 HYPERLINK l _Toc326059487 參考文獻(xiàn) PAGEREF _Toc326059487 h 21 HYPERLINK l _Toc326059488 附錄 PAGEREF _Toc326059488 h 231 前言全步/半步;還有五相10極50齒和一些轉(zhuǎn)子100齒的二相和五相步進(jìn)電動(dòng)機(jī),五相電動(dòng)機(jī)主要用于運(yùn)行性能較高的場(chǎng)合驅(qū)動(dòng)技術(shù)采用恒相電流與細(xì)分驅(qū)動(dòng)相結(jié)合,使步進(jìn)電機(jī)在中、小功率控制系統(tǒng) 內(nèi)的精度提高,并逐步向高速大功率應(yīng)用領(lǐng)域滲 透步進(jìn)電動(dòng)機(jī)最大的生產(chǎn)國(guó)是日本

14、,如日本伺服 公司、東方公司、SANYO DENKI 和 MINEBEA 及 NPM 公司等,特別是日本東方公司,無(wú)論是電動(dòng)機(jī)性能和外觀質(zhì)量還是生產(chǎn)手段,都是世界上最好的。步進(jìn)電動(dòng)機(jī)經(jīng)過(guò)幾十年的開(kāi)展,已成為除直流電動(dòng)機(jī)和交流電動(dòng)機(jī)以外的應(yīng)用最廣泛的第三類電動(dòng)機(jī)。在開(kāi)環(huán)高分辨率的定位系統(tǒng)中,至今還沒(méi)有發(fā)現(xiàn)更適宜取代它的產(chǎn)品,特別是在一些功率相當(dāng)小的系統(tǒng)中,步進(jìn)電機(jī)更具有無(wú)可替代的主流地位。預(yù)計(jì)未來(lái)步進(jìn)電機(jī)的研究還會(huì)持續(xù)深入下去,研究方向之一是電機(jī)與驅(qū)動(dòng)的一體化,使步進(jìn)電機(jī)體積更小巧、性能更優(yōu)越,性價(jià)比更高,在大量的民用設(shè)備中批量化使用,如家庭機(jī)器人、民用智能化設(shè)備等;研究方向之二是在功率或機(jī)座號(hào)

15、相對(duì)較大的步進(jìn)電動(dòng)機(jī)中,與屬于 BIDCM稀土永磁無(wú) 刷直流電機(jī)的交流伺服電動(dòng)機(jī)系統(tǒng)會(huì)合,具體來(lái)說(shuō)可能會(huì)借鑒交流伺服系統(tǒng)的控制技術(shù),但保存了局部步進(jìn)電動(dòng)機(jī)的特點(diǎn),形成一種新的“步進(jìn)伺服 電動(dòng)機(jī)或“伺服步進(jìn)電動(dòng)機(jī),在克服低頻振蕩、高頻過(guò)載能力小、快速性缺乏和效率低等方面取得突破性進(jìn)展,從而在現(xiàn)代軍事、精密機(jī)械加工、航空航天等領(lǐng)域的應(yīng)用越來(lái)越深入。把電脈沖信號(hào)變換成角位移以控制轉(zhuǎn)子轉(zhuǎn)動(dòng)的微特電機(jī)。在自動(dòng)控制裝置中作為執(zhí)行元件。每輸入一個(gè)脈沖信號(hào),步進(jìn)電動(dòng)機(jī)前進(jìn)一步,故又稱脈沖電動(dòng)機(jī)。步進(jìn)電動(dòng)機(jī)多用于數(shù)字式計(jì)算機(jī)的外部設(shè)備,以及打印機(jī)、繪圖機(jī)和磁盤(pán)等裝置。步進(jìn)電動(dòng)機(jī)的驅(qū)動(dòng)電源由變頻脈沖信號(hào)源、脈沖分

16、配器及脈沖放大器組成,由此驅(qū)動(dòng)電源向電機(jī)繞組提供脈沖電流。步進(jìn)電動(dòng)機(jī)的運(yùn)行性能決定于電機(jī)與驅(qū)動(dòng)電源間的良好配合。主要用于數(shù)字控制系統(tǒng)中,精度高,運(yùn)行可靠。如采用位置檢測(cè)和速度反響,亦可實(shí)現(xiàn)閉環(huán)控制。步進(jìn)電動(dòng)機(jī)已廣泛地應(yīng)用于數(shù)字控制系統(tǒng)中,如數(shù)模轉(zhuǎn)換裝置、數(shù)控機(jī)床、計(jì)算機(jī)外圍設(shè)備、自動(dòng)記錄儀、鐘表等之中,另外在工業(yè)自動(dòng)化生產(chǎn)線、印刷設(shè)備等中亦有應(yīng)用。 現(xiàn)在比擬常用的步進(jìn)電機(jī)包括反響式步進(jìn)電機(jī)VR、永磁式步進(jìn)電機(jī)PM、混合式步進(jìn)電機(jī)HB和單相式步進(jìn)電機(jī)等。永磁式步進(jìn)電機(jī)一般為兩相,轉(zhuǎn)矩和體積較小,步進(jìn)角一般為7.5度 或15度;反響式步進(jìn)電機(jī)一般為三相,可實(shí)現(xiàn)大轉(zhuǎn)矩輸出,步進(jìn)角一般為1.5度,但噪

17、聲和振動(dòng)都很大。反響式步進(jìn)電機(jī)的轉(zhuǎn)子磁路由軟磁材料制成,定子上有多相勵(lì)磁繞組,利用磁導(dǎo)的變化產(chǎn)生轉(zhuǎn)矩?;旌鲜讲竭M(jìn)電機(jī)是指混合了永磁式和反響式的優(yōu)點(diǎn)。它又分為兩相和五相:兩相步進(jìn)角一般為1.8度而五相步進(jìn)角一般為 0.72度。2 步進(jìn)電機(jī)概述2.1 步進(jìn)電機(jī)的特點(diǎn)1、步進(jìn)電機(jī)控制容易,本錢(qián)低,失去會(huì)引起控制誤差,轉(zhuǎn)速有限。2、步進(jìn)電機(jī)外表允許的溫度高。步進(jìn)電機(jī)溫度過(guò)高首先會(huì)使電機(jī)的磁性材料退磁,從而導(dǎo)致力矩下降乃至于失步,因此電機(jī)外表允許的最高溫度應(yīng)取決于不同電機(jī)磁性材料的退磁點(diǎn);一般來(lái)講,磁性材料的退磁點(diǎn)都在攝氏130度以上,有的甚至高達(dá)攝氏200度以上,所以步進(jìn)電機(jī)外表溫度在攝氏80-90度

18、完全正常。3、步進(jìn)電機(jī)的力矩會(huì)隨轉(zhuǎn)速的升高而下降。當(dāng)步進(jìn)電機(jī)轉(zhuǎn)動(dòng)時(shí),電機(jī)各相繞組的電感將形成一個(gè)反向電動(dòng)勢(shì);頻率越高,反向電動(dòng)勢(shì)越大。在它的作用下,電機(jī)隨頻率或速度的增大而相電流減小,從而導(dǎo)致力矩下降。4、步進(jìn)電機(jī)低速時(shí)可以正常運(yùn)轉(zhuǎn),但假設(shè)高于一定速度就無(wú)法啟動(dòng),并伴有嘯叫聲。步進(jìn)電機(jī)有一個(gè)技術(shù)參數(shù):空載啟動(dòng)頻率,即步進(jìn)電機(jī)在空載情況下能夠正常啟動(dòng)的脈沖頻率,如果脈沖頻率高于該值,電機(jī)不能正常啟動(dòng),可能發(fā)生丟步或堵轉(zhuǎn)。在有負(fù)載的情況下,啟動(dòng)頻率應(yīng)更低。如果要使電機(jī)到達(dá)高速轉(zhuǎn)動(dòng),脈沖頻率應(yīng)該有加速過(guò)程,即啟動(dòng)頻率較低,然后按一定加速度升到所希望的高頻電機(jī)轉(zhuǎn)速?gòu)牡退偕礁咚佟?.2 步進(jìn)電機(jī)的工作

19、原理 步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(稱為“步距角),它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的??梢酝ㄟ^(guò)控制脈沖個(gè)數(shù)來(lái)控制角位移量,從而到達(dá)準(zhǔn)確定位的目的;同時(shí)可以通過(guò)控制脈沖頻率來(lái)控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而到達(dá)調(diào)速的目的。步進(jìn)電機(jī)可以作為一種控制用的特種電機(jī),利用其沒(méi)有積累誤差(精度為100%)的特點(diǎn),廣泛應(yīng)用于各種開(kāi)環(huán)控制。2.3 步進(jìn)電機(jī)的技術(shù)參數(shù)步進(jìn)電機(jī)的根本參數(shù)如下:1、空載啟動(dòng)頻率即步進(jìn)電機(jī)在空載情況下能夠正常啟動(dòng)的脈沖頻率,如果脈沖頻率高于該值,電機(jī)不能正常啟動(dòng),可能發(fā)生丟步或堵轉(zhuǎn)1。

20、在有負(fù)載的情況下,啟動(dòng)頻率更低。如果要使電機(jī)到達(dá)高速轉(zhuǎn)動(dòng),脈沖頻率應(yīng)該有加速過(guò)程,即啟動(dòng)頻率較低,然后一定加速度升到所希望的高頻電機(jī)轉(zhuǎn)速?gòu)牡退偕礁咚佟?、電機(jī)固有步距角 它表示控制系統(tǒng)每發(fā)一個(gè)步進(jìn)脈沖信號(hào),電機(jī)所轉(zhuǎn)動(dòng)的角度2,3、步進(jìn)電機(jī)的相數(shù)是指電機(jī)內(nèi)部的線圈組數(shù),目前常用的有二相、三相、四相、五相步進(jìn)電機(jī)。電機(jī)相數(shù)不同,其步距角也不同,一般二相電機(jī)的步距角為0.9/1.8、三相的為0.75/1.5、五相的為0.36/0.723。在沒(méi)有細(xì)分驅(qū)動(dòng)器時(shí),用戶主要靠選擇不同相數(shù)的步進(jìn)電機(jī)來(lái)滿足自己步距角的要求。如果使用細(xì)分驅(qū)動(dòng)器,那么相數(shù)將變得沒(méi)有意義,用戶只需在驅(qū)動(dòng)器上改變細(xì)分?jǐn)?shù),就可以改變步

21、距角。4、保持轉(zhuǎn)矩是指步進(jìn)電機(jī)通電但沒(méi)有轉(zhuǎn)動(dòng)時(shí),定子鎖住轉(zhuǎn)子的力矩。它是步進(jìn)電機(jī)最重要的參數(shù)之一,通常步進(jìn)電機(jī)在低速時(shí)的力矩接近保持轉(zhuǎn)矩4。由于步進(jìn)電機(jī)的輸出力矩隨速度的增大而不斷衰減,輸出功率也隨速度的增大而變化,所以保持轉(zhuǎn)矩就成為了衡量步進(jìn)電機(jī)最重要的參數(shù)之一。比方,當(dāng)人們說(shuō)5N.M的步進(jìn)電機(jī),在沒(méi)有特殊說(shuō)明的情況下是指保持轉(zhuǎn)矩為5N.m的步進(jìn)電機(jī)。2.4 步進(jìn)電機(jī)詳細(xì)調(diào)速原理 一般電動(dòng)機(jī)都是連續(xù)轉(zhuǎn)動(dòng)的,而步進(jìn)電動(dòng)機(jī)那么有定位和運(yùn)轉(zhuǎn)兩種根本狀態(tài),當(dāng)有脈沖輸入時(shí)步進(jìn)電動(dòng)機(jī)一步一步地轉(zhuǎn)動(dòng),每給它一個(gè)脈沖信號(hào),它就轉(zhuǎn)過(guò)一定的角度5。步進(jìn)電動(dòng)機(jī)的角位移量和輸入脈沖的個(gè)數(shù)嚴(yán)格成正比,在時(shí)間上與輸入脈

22、沖同步,因此只要控制輸入脈沖的數(shù)量、頻率及電動(dòng)機(jī)繞組通電的相序,便可獲得所需的轉(zhuǎn)角、轉(zhuǎn)速及轉(zhuǎn)動(dòng)方向。在沒(méi)有脈沖輸入時(shí),在繞組電源的鼓勵(lì)下氣隙磁場(chǎng)能使轉(zhuǎn)子保持原有位置處于定位狀態(tài)。通過(guò)延時(shí)的長(zhǎng)短來(lái)具體控制步進(jìn)角來(lái)改變電機(jī)的轉(zhuǎn)速,從而實(shí)現(xiàn)步進(jìn)電的調(diào)速。具體的延時(shí)時(shí)間可以通過(guò)軟件來(lái)實(shí)現(xiàn)6。這就需要采用單片機(jī)對(duì)步進(jìn)電機(jī)進(jìn)行加減速控制,實(shí)際上就是改變輸出脈沖的時(shí)間間隔,單片機(jī)控制步進(jìn)電機(jī)加減法運(yùn)轉(zhuǎn)可實(shí)現(xiàn)的方法有軟件和硬件兩種 ,軟件方法指的是依靠延時(shí)程序來(lái)改變脈沖輸出的頻率,其中延時(shí)的長(zhǎng)短是動(dòng)態(tài)的,軟件法在電機(jī)控制中7,要不停地產(chǎn)生控制脈沖, 占用了大量的CPU 時(shí)間,使單片機(jī)無(wú)法同時(shí)進(jìn)行其他工作;硬件

23、方法是依靠單片機(jī)內(nèi)部的定時(shí)器來(lái)實(shí)現(xiàn)的,在每次進(jìn)入定時(shí)中斷后,改變定時(shí)常數(shù),從而升速時(shí)使脈沖頻率逐漸增大,減速時(shí)使脈沖頻率逐漸減小,這種方法占用CPU 時(shí)間較少,在各種單片機(jī)中都能實(shí)現(xiàn),是一種比擬實(shí)用的調(diào)速方法。3 硬件電路設(shè)計(jì)3.1 單片機(jī)的選擇本次設(shè)計(jì)以CPU選用STC89C5l作為步進(jìn)電機(jī)的控制芯片89C51的結(jié)構(gòu)簡(jiǎn)單并可以在編程器上實(shí)現(xiàn)閃爍式的電擦寫(xiě)達(dá)幾萬(wàn)次以上8。使用方便等優(yōu)點(diǎn),而且完全兼容MCS5l系列單片機(jī)的所有功能。STC89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MC

24、S-51指令集和輸出管腳相兼容9。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,STC89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案10。1、單片機(jī)的引腳功能:1VCC40:電源+5V。2VSS20:接地,也就是GND。3XTL119和XTL218:振蕩電路。單片機(jī)是一種時(shí)序電路,必須有脈沖信號(hào)才能工作,在它的內(nèi)部有一個(gè)時(shí)鐘產(chǎn)生電路,有兩種振蕩方式,一種是內(nèi)部振蕩方式,只要接上兩個(gè)電容和一個(gè)晶振即可11;另一種是外部振蕩方式,采用外部振蕩方式時(shí),需在XTL2上加外部時(shí)鐘信號(hào)。4PSEN29:片外ROM選通信號(hào),低電平有效12。5ALE/PROG30:地址

25、鎖存信號(hào)輸出端/EPROM編程脈沖輸入端。6RST/VPD9:復(fù)位信號(hào)輸入端/備用電源輸入端。7EA/VPP31:內(nèi)/外部ROM選擇端8P0口39-32:雙向I/O口。9P1口1-8:準(zhǔn)雙向通用I/0口。9P2口21-28:準(zhǔn)雙向I/0口。原理圖如3-1所示。圖3-1 STC89C51的引腳圖系統(tǒng)原理框圖如圖3-2所示:圖3-2 系統(tǒng)原理框圖3.2 無(wú)線收發(fā)電路本次設(shè)計(jì)采用NRF24L01無(wú)線收發(fā)模塊,NRF24L01模塊是采用挪威NORDIC公司的nrf24L01p 2.4G無(wú)線收發(fā)IC設(shè)計(jì)的一款高性能2.4G無(wú)線收發(fā)模塊,采用GFSK調(diào)制,工作在2400-2483M的國(guó)際通用ISM頻段,最

26、高調(diào)制速率可達(dá)2MBPS13。NRF24L01集成了所有與RF協(xié)議相關(guān)的高速信號(hào)處理局部,如:自動(dòng)重發(fā)喪失數(shù)據(jù)包和自動(dòng)產(chǎn)生應(yīng)答信號(hào)等,模塊的SPI接口可以利用單片機(jī)的硬件SPI口連接或用單片機(jī)的I/O口進(jìn)行模擬,內(nèi)部有FIFO可以與各種上下速微處理器接口,便于使用低本錢(qián)單片機(jī)14。模塊大小32*15.2mm,2.54mm間距的雙排插針接口,使用內(nèi)置PCB天線設(shè)計(jì),開(kāi)闊地1MBPS速率下,收發(fā)10個(gè)字節(jié)的數(shù)據(jù)量測(cè)試距離最遠(yuǎn)約70米左右。模塊尺寸如圖3-3所示圖3-3 NRF24L01模塊尺寸圖模塊的引腳功能如表3-1所示表3-1 NRF24L01引腳功能管腳次序管腳定義功能描述1GND電源地方形

27、焊盤(pán)2VIN3.3V3CE工作模式選擇,RX或TX模式選擇4CSNSPI使能,低有效5SCKSPI時(shí)鐘6MOSISPI輸入7MISOSPI輸出8IRQ中斷輸出無(wú)線收發(fā)電路如圖3-4所示:圖3-4 NRF24L01無(wú)線收發(fā)模塊電路圖3.3 步進(jìn)電機(jī)驅(qū)動(dòng)電路步進(jìn)電機(jī)型號(hào)為MP28GA和ULN2003APG的驅(qū)動(dòng)芯片15,具體參數(shù)如表3-2下:表3-2 MP28GA的步進(jìn)電機(jī)相關(guān)參數(shù)電壓電阻(25C)步距角減速比牽入轉(zhuǎn)矩自定位轉(zhuǎn)矩5501/6440空載牽入頻率Hz空載牽出頻率Hz絕緣電阻絕緣介電強(qiáng)度溫升K噪音dB(A)50090050M無(wú)擊穿或飛弧4040步進(jìn)電機(jī)相勵(lì)磁的勵(lì)磁順序如下表3-3所示:表

28、3-3 MP28GA的步進(jìn)電機(jī)勵(lì)磁順序接線端導(dǎo)線 分配順序 序號(hào)顏色123456785紅+4橙- -3黃 - 2粉 - 1藍(lán) -步進(jìn)電機(jī)驅(qū)動(dòng)電路如圖3-5所示:圖3-5 UNL2003驅(qū)動(dòng)步進(jìn)電機(jī)電路圖3.4 液晶顯示及矩陣鍵盤(pán)電路3.4.1 液晶顯示模塊概述 MD12864C-1漢字圖形點(diǎn)陣液晶顯示模塊,可顯示漢字及圖形,內(nèi)置8192個(gè)中文漢字16X16點(diǎn)陣、128個(gè)字符8X16點(diǎn)陣及64X256點(diǎn)陣顯示RAMGDRAM16。 主要技術(shù)參數(shù)和顯示特性:電源:VDD 3.3V+5V(內(nèi)置升壓電路,無(wú)需負(fù)壓);顯示內(nèi)容:128列 64行顯示顏色:灰膜顯示角度:6:00鐘直視LCD類型:STN與M

29、CU接口:8位或4位并行/3位串行配置LED背光多種軟件功能:光標(biāo)顯示、畫(huà)面移位、自定義字符、睡眠模式等。V電源地(GND):0V工作溫度(Ta):060(常溫) / -2075寬溫3.4.2 外形尺寸如圖3-6所示17。外觀尺寸:937012.5mm 視域尺寸:7339mm圖3-6 12864外形尺寸圖3.5 液晶顯示模塊引腳功能表3-4 12864引腳功能圖引腳號(hào)引腳名稱方向功能說(shuō)明1VSS-模塊的電源地2VDD-模塊的電源正端3V0-LCD驅(qū)動(dòng)電壓輸入端4RS(CS)H/L并行的指令/數(shù)據(jù)選擇信號(hào);串行的片選信號(hào)5R/W(SID)H/L并行的讀寫(xiě)選擇信號(hào);串行的數(shù)據(jù)口6E(CLK)H/L

30、并行的使能信號(hào);串行的同步時(shí)鐘7DB0H/L數(shù)據(jù)08DB1H/L數(shù)據(jù)19DB2H/L數(shù)據(jù)210DB3H/L數(shù)據(jù)311DB4H/L數(shù)據(jù)412DB5H/L數(shù)據(jù)513DB6H/L數(shù)據(jù)614DB7H/L數(shù)據(jù)715PSBH/L并/串行接口選擇:H-并行;L-串行16NC空腳17/RETH/L復(fù)位 低電平有效18NC空腳19LED_A-背光源正極LED+5V20LED_K-背光源負(fù)極LED-OV3.6 液晶顯示模塊接口電路圖3-7 12864液晶接口電路圖3.7 矩陣鍵盤(pán)矩陣鍵盤(pán)的原理與編程方法分析: 矩陣式鍵盤(pán)中,行、列線分別連接到按鍵開(kāi)關(guān)的兩端,行線通過(guò)上拉電阻接到+5V上18。當(dāng)無(wú)鍵按下時(shí),行線處于

31、高電平狀態(tài);當(dāng)有鍵按下時(shí),行、列線將導(dǎo)通,此時(shí),行線電平將由與此行線相連的列線電平?jīng)Q定。這一點(diǎn)是識(shí)別矩陣按鍵是否被按下的關(guān)鍵19。然而,矩陣鍵盤(pán)中的行線、列線和多個(gè)鍵相連,各按鍵按下與否均影響該鍵所在行線和列線的電平,各按鍵間將相互影響,因此,必須將行線、列線信號(hào)配合起來(lái)作適當(dāng)處理,才能確定閉合鍵的位置。 掃描法 : 按鍵按下時(shí),與此鍵相連的行線與列線導(dǎo)通,行線在無(wú)鍵按下時(shí)處在高電平,顯然,如果讓所有的列線也處在高電平,那么,按鍵按下與否不會(huì)引起行線電平的變化,因此,必須使所有列線處在低電平,只有這樣,當(dāng)有鍵按下時(shí),該鍵所在的行電平才會(huì)由高電平變?yōu)榈碗娖健PU根據(jù)行平電的變化,便能判定相應(yīng)的

32、行有鍵按下20。8號(hào)鍵按下時(shí),第2行一定為低電平,然而,第2行為低電平時(shí),能否肯定是8號(hào)鍵按下呢?答復(fù)是否認(rèn)的,因?yàn)?、10、11號(hào)鍵按下同樣使第2行為低電平21。為進(jìn)一步確定具體鍵,不能使所有列線在同一時(shí)刻都處在低電平,可在某一時(shí)刻只讓一條列線處于低電平,其余列線均處于高電平,另一時(shí)刻,讓下一列處在低電平,依次循環(huán),這種依次輪流每次選通一列的工作方式稱為鍵盤(pán)掃描22。線反轉(zhuǎn)法: 第1步:將列線P1.4P1.7 作為輸入線,行線P1.3P1.0 作為輸出線,并將輸出線輸出全為低電平,讀列線狀態(tài),那么列線中電平為低的是按鍵所在的列。 第2步:將行線作為輸入線,列線作為輸出線,并將輸出線輸出為低電

33、平,讀行線狀態(tài),那么行線中電平為低的是按鍵所在的行。 綜合第1、2兩步結(jié)果,可確定按鍵所在的行和列,從而識(shí)別出所按下的鍵。 鍵盤(pán)的編碼1.獨(dú)立式鍵盤(pán) 按鍵數(shù)量少,可根據(jù)實(shí)際需要靈活編碼。 2.矩陣式鍵盤(pán) 按鍵的位置由行號(hào)和列號(hào)唯一確定,因此可分別對(duì)行號(hào)和列 號(hào)進(jìn)行二進(jìn)制編碼,然后將兩值合成一個(gè)字節(jié),高4位是行號(hào),低4位是列號(hào)。 編程掃描方式: 編程掃描方式是利用CPU完成其他工作的空余調(diào)用鍵盤(pán)掃描子程序來(lái)響應(yīng)鍵盤(pán)輸入的要求。在執(zhí)行鍵功能程序時(shí),CPU不再響應(yīng)鍵輸入要求,直到CPU重新掃描鍵盤(pán)為止。 鍵盤(pán)掃描程序一般應(yīng)包括以下內(nèi)容: 1判別有無(wú)鍵按下。 2鍵盤(pán)掃描取得閉合鍵的行、列值。 3用計(jì)算

34、法或查表法得到鍵值。 4判斷閉合鍵是否釋放,如沒(méi)釋放那么繼續(xù)等待。 5將閉合鍵鍵號(hào)保存,同時(shí)轉(zhuǎn)去執(zhí)行該閉合鍵的功能。 定時(shí)掃描方式: 定時(shí)掃描方式就是每隔一段時(shí)間對(duì)鍵盤(pán)掃描一次,它利用單片機(jī)內(nèi)部的定時(shí)器產(chǎn)生一定時(shí)間例如10ms的定時(shí)23,當(dāng)定時(shí)時(shí)間到就產(chǎn)生定時(shí)器溢出中斷,CPU響應(yīng)中斷后對(duì)鍵盤(pán)進(jìn)行掃描,并在有鍵按下時(shí)識(shí)別出該鍵,再執(zhí)行該鍵的功能程序24。中斷掃描方式:當(dāng)無(wú)鍵按下時(shí),CPU處理自己的工作,當(dāng)有鍵按下時(shí),產(chǎn)生中斷請(qǐng)求,CPU轉(zhuǎn)去執(zhí)行鍵盤(pán)掃描子程序,并識(shí)別鍵號(hào)25。中斷掃描方式可以提高CPU工作效率 。矩陣鍵盤(pán)接口電路如圖3-8所示:圖3-8 矩陣鍵盤(pán)接口電路圖4 系統(tǒng)軟件設(shè)計(jì)4.1

35、 顯示子程序顯示子程序的流程圖如圖4-1所示:開(kāi)始12864液晶初始化讀忙狀態(tài)延遲 YN寫(xiě)命令字寫(xiě)地址字寫(xiě)數(shù)據(jù)字結(jié)束圖4-1 液晶程序顯示流程圖備注:1、當(dāng)模塊在接受指令前,微處理順必須先確認(rèn)模塊內(nèi)部處于非忙碌狀態(tài),即讀取BF標(biāo)志時(shí)BF需為0,方可接受新的指令;如果在送出一個(gè)指令前并不檢查BF標(biāo)志,那么在前一個(gè)指令和這個(gè)指令中間必須延遲一段較長(zhǎng)的時(shí)間,即是等待前一個(gè)指令確實(shí)執(zhí)行完成,指令執(zhí)行的時(shí)間請(qǐng)參考指令表中的個(gè)別指令說(shuō)明26。2、“RE為根本指令集與擴(kuò)充指令集的選擇控制位元,當(dāng)變更“RE位元后,往后的指令集將維持在最后的狀態(tài)27,除非再次變更“RE位元,否那么使用相同指令集時(shí),不需每次重設(shè)

36、“RE位元。4.2 鍵盤(pán)子程序 在鍵盤(pán)中按鍵數(shù)量較多時(shí),為了減少I(mǎi)/O口的占用,通常將按鍵排列成 HYPERLINK :/baike.baidu /view/10337.htm t _blank 矩陣形式,如圖1所示。在矩陣式鍵盤(pán)中,每條水平線和垂直線在交叉處不直接連通,而是通過(guò)一個(gè)按鍵加以連接。這樣,一個(gè)端口如P1口就可以構(gòu)成4*4=16個(gè)按鍵,比之直接將端口線用于鍵盤(pán)多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比方再多加一條線就可以構(gòu)成20鍵的鍵盤(pán),而直接用端口線那么只能多出一鍵9鍵。由此可見(jiàn),在需要的鍵數(shù)比擬多時(shí),采用矩陣法來(lái)做鍵盤(pán)是合理的。 矩陣式結(jié)構(gòu)的鍵盤(pán)顯然比直接法要復(fù)雜一些,識(shí)別也要復(fù)

37、雜一些,上圖中,列線通過(guò)電阻接正電源,并將行線所接的單片機(jī)的I/O口作為輸出端,而列線所接的I/O口那么作為輸入28。這樣,當(dāng)按鍵沒(méi)有按下時(shí),所有的輸入端都是高電平,代表無(wú)鍵按下29。行線輸出是低電平,一旦有鍵按下,那么輸入線就會(huì)被拉低,這樣,通過(guò)讀入輸入線的狀態(tài)就可得知是否有鍵按下了。具體的 HYPERLINK :/baike.baidu /view/3281.htm t _blank 編程方法如下所述。鍵盤(pán)子程序流程圖如圖4-2所示:圖4-2 鍵盤(pán)掃描程序流程圖4.3 驅(qū)動(dòng)程序圖4-3 電機(jī)驅(qū)動(dòng)程序流程圖4.4 正反轉(zhuǎn)程序圖4-4 電機(jī)正反轉(zhuǎn)程序設(shè)計(jì)流程圖圖4-5 電機(jī)轉(zhuǎn)速快慢轉(zhuǎn)程序設(shè)計(jì)流

38、程圖圖4-6 定時(shí)器中斷程序設(shè)計(jì)流程圖5 實(shí)驗(yàn)結(jié)果與分析 在單相四拍A-B-C-D-A通電一周,轉(zhuǎn)子轉(zhuǎn)動(dòng)了9度。步距角可用公式5-1表示:其中為步距角,N為運(yùn)行的拍數(shù),為轉(zhuǎn)子的齒數(shù)30。其中,為控制的相繞阻.從的公式看到,改變步進(jìn)電動(dòng)機(jī)步距的大小有三種方式:1) 改變步進(jìn)電動(dòng)機(jī)的相數(shù)。步進(jìn)電動(dòng)機(jī)的相數(shù)越多、步距角就越小。2) 與步進(jìn)電動(dòng)機(jī)的定、轉(zhuǎn)齒數(shù)有關(guān)31。3) 與定子控制繞組的通電方式有關(guān)32。要改變步進(jìn)電機(jī)步距角的大小也只能通過(guò)這三種方式。設(shè)計(jì)中步進(jìn)電機(jī)為四相,功率為1W。因步進(jìn)電機(jī)的轉(zhuǎn)子上沒(méi)有繞阻而是由40個(gè)小齒均勻地分布在圓周上33。定子的齒也是固定不變的,通電方式是選取用四相單四拍

39、方式??梢?jiàn)步進(jìn)電機(jī)的一但選定,其步距角就不能再改變了。要改變轉(zhuǎn)束也就只能通過(guò)脈沖之間的延時(shí)來(lái)改變。但對(duì)步進(jìn)電動(dòng)機(jī)的步距角的控制,可以實(shí)現(xiàn)對(duì)步進(jìn)電動(dòng)機(jī)的轉(zhuǎn)速精度控制。但實(shí)際上步進(jìn)電機(jī)在用行時(shí)是帶有一定量的負(fù)載,當(dāng)運(yùn)轉(zhuǎn)時(shí)會(huì)存在許多誤差,同時(shí)因?yàn)樨?fù)載的存在可能引起失步和震蕩。這就使步進(jìn)電機(jī)不能按預(yù)定的規(guī)律運(yùn)行,從而是很難到達(dá)轉(zhuǎn)速精度的要求。為準(zhǔn)確測(cè)量電機(jī)的轉(zhuǎn)速穩(wěn)定度,須選用高精度測(cè)量?jī)x器。光電編碼器因光電式數(shù)字輸出而更具抗干擾性強(qiáng)和處理簡(jiǎn)便的優(yōu)勢(shì)。光電編碼器的分分辨率是決定著反響的準(zhǔn)確性與反響的精度。也對(duì)步進(jìn)電機(jī)的延時(shí)長(zhǎng)短起到一定的作用。可見(jiàn)實(shí)際與理論是有一定的差異的。6 總結(jié) 轉(zhuǎn)眼間,大學(xué)的生活就

40、快結(jié)束了,在大學(xué)的這幾年里讓我學(xué)到了很多很多,已不再是當(dāng)年高中畢業(yè)時(shí)候的我了,接下來(lái),將會(huì)是我人生的另一個(gè)起點(diǎn),另一片天空。天行健,君子以自強(qiáng)不息。在今后的生活中,不管發(fā)生什么事情,道路是如何的曲折,我將繼續(xù)努力堅(jiān)持下去,為最終實(shí)現(xiàn)我的夢(mèng)想而奮斗下去。驀然回首,為期數(shù)月的畢業(yè)設(shè)計(jì)就要結(jié)束了,在這漫長(zhǎng)而又短暫之中,通過(guò)自己不斷地學(xué)習(xí),不斷地努力與拼搏、不斷地對(duì)新知識(shí)的追求與索取、不斷地自我發(fā)現(xiàn)、感到自己的知識(shí)結(jié)構(gòu)水平提出高了許多,對(duì)知識(shí)的掌握程度也加深了許多,對(duì)知識(shí)之間的相互聯(lián)系也有了更深的了解;通過(guò)不斷地提高自己的認(rèn)識(shí)水平與能力、不斷地學(xué)習(xí)新方法、新思想、新的思維方式、不斷地改變自己的人生觀和

41、方法論、感到自己不但成長(zhǎng)且成熟了許多;通過(guò)不斷地把課本知識(shí)應(yīng)用于實(shí)際,不斷地把查閱到的資料與文獻(xiàn)中有用的東西應(yīng)用于實(shí)現(xiàn),不斷地把所學(xué)的理論與方法應(yīng)用于設(shè)計(jì)之中,從而提高了自己理論聯(lián)系實(shí)際的能力。在整個(gè)畢業(yè)論文設(shè)計(jì)的過(guò)程中我學(xué)到了做任何事情所要有的態(tài)度和心態(tài),首先我明白了做學(xué)問(wèn)要一絲不茍,對(duì)于出現(xiàn)的任何問(wèn)題和偏差都不要輕視,要通過(guò)正確的途徑去解決,在做事情的過(guò)程中要有耐心和毅力,不要一遇到困難就打退堂鼓,只要堅(jiān)持下去就可以找到思路去解決問(wèn)題的。在工作中要學(xué)會(huì)與人合作的態(tài)度,認(rèn)真聽(tīng)取別人的意見(jiàn),這樣做起事情來(lái)就可以事倍功半。論文的順利完成,首先我要感謝我的指導(dǎo)老師羅維平老師以及周?chē)瑢W(xué)朋友的幫助,

42、感謝他們提出珍貴的意見(jiàn)和建議。另外,要感謝在大學(xué)期間所有傳授我知識(shí)的老師,是你們的悉心教導(dǎo)使我有了良好的專業(yè)課知識(shí),這也是論文得以完成的根底。此次論文的完成既為大學(xué)的學(xué)習(xí)和生活上了一個(gè)完美的句號(hào),也為將來(lái)的人生之路做好了一個(gè)很好的鋪墊。參考文獻(xiàn)1 張洪潤(rùn),藍(lán)清華. 單片機(jī)應(yīng)用技術(shù)教程M,北京:清華大學(xué)出版社,1997;2 秦曾煌. 電工學(xué)M . 北京:高等教育出版社,1999.3 常斗南,等. 可編程序控制器原理、應(yīng)用、實(shí)驗(yàn)M . 北京:機(jī)械工業(yè)出版社,1998.4 于海生,等. 微型計(jì)算機(jī)控制技術(shù)M . 北京:清華大學(xué)出版社,1999.5 王福瑞,等. 單片機(jī)微機(jī)測(cè)控系統(tǒng)設(shè)計(jì)大全M . 北京

43、:北京航空航天大學(xué)出版社,1998.6 陳理壁. 步進(jìn)電機(jī)及其應(yīng)用M . 上海: 上??茖W(xué)技術(shù)出版社,1989.7 劉保延,等. 步進(jìn)電機(jī)及其驅(qū)動(dòng)控制系統(tǒng)M . 哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1997.8 季維發(fā),過(guò)潤(rùn)秋,嚴(yán)武升等. 機(jī)電一體化技術(shù)M .北京:電子工業(yè)出版社,1995.9 郭敬樞,莊繼東,孔峰. 微機(jī)控制技術(shù)M . 重慶:重慶大學(xué)出版社,1994.10 劉國(guó)榮. 單片微型計(jì)算機(jī)技術(shù)M . 北京:機(jī)械工業(yè)出版社,1996.11 王福瑞. 單片微機(jī)測(cè)控系統(tǒng)設(shè)計(jì)大全M . 北京:北京航空航天大學(xué)出版社,1998.12 何立民. 單片機(jī)應(yīng)用技術(shù)選編M . 北京:北京航空航天大學(xué)出版社,

44、1993.13 潘新民. 單片微型計(jì)算機(jī)實(shí)用系統(tǒng)設(shè)計(jì)M 北京:人民郵電出版社, 1992.14 王潤(rùn)孝,秦現(xiàn)生編著1 機(jī)床數(shù)控原理與系統(tǒng)M 西北工業(yè)大學(xué)出版社,1997.15 李伯成,侯伯李等編1IBM - PC 微機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)M西安電子科技大學(xué),1996.16 黃義源主編. 機(jī)械設(shè)備電氣與數(shù)字控制M,中共播送電視大學(xué)出版社,1992.17 丁穎,肖功寶,楊仁順,張存庫(kù).紅外遙控技術(shù)在工業(yè)電視中的應(yīng)用J.自動(dòng)化與儀表,1997. 18 黃卜夫,吳明光. 數(shù)字化智能照明系統(tǒng)的紅外遙控模塊J.照明工程學(xué)報(bào),2001.19 梅麗鳳,王艷秋,張軍等.單片機(jī)原理及接口技術(shù).北京:清華大學(xué)出版社,北京交

45、通大學(xué)出版社,2004.20 李湘閩,唐宏,葛繼.學(xué)習(xí)型紅外遙控器.紅外.2004.21 李洪明.漫談紅外遙控.電子世界.2000年01期總第244期.22 戴峻峰,付麗輝. 多功能紅外線遙控器的設(shè)計(jì). 傳感器世界.2002.23 嚴(yán)后選,孫健國(guó)等. 無(wú)線紅外智能遙控器的設(shè)計(jì). 測(cè)控技術(shù).2003.24 李愛(ài)國(guó). 模塊化 LED 電子大屏幕的設(shè)計(jì)與實(shí)現(xiàn) J.計(jì)算機(jī)應(yīng)用研究,1998.25 張愛(ài)全.紅外線遙控的根本原理和應(yīng)用范圍.山西電子技術(shù).2003.26 J; HS,Mcnivens,Ikebukurok.Acta,1999.27 蘇凱 劉國(guó)慶 陳國(guó)平 . MCS-51系列單片機(jī)原理與設(shè)計(jì).

46、冶金工業(yè)出版社.2003.28 曲泊濤.微型計(jì)算機(jī)系統(tǒng)原理 接口與組裝.大連:大連理工大學(xué)出版社1999.29 楊光友,朱宏輝等.單片微型計(jì)算機(jī)原理及接口技術(shù).北京:中國(guó)水利水電出版社.2002.30 Angelo Martinez,Eddie Tunstel,Mo Jamshidi.Fuzzy logic based collisionfor a mobile robot.Robotica Colume,1994.31 胡漢才.單片機(jī)原理及系統(tǒng)設(shè)計(jì).北京:清華大學(xué)出版社.2002.32 Chang P.ShhJS.Anal Chim.Acta,1998.33 Johan Borenstein

47、,YonamKoren.Histogramic in-motion mapping for mobile robot obstacle avoidance.IEEE Transactions on Robotics and Automation,2000.附 錄發(fā)射電路程序:C51 COMPILER V7.06 TEST 12/10/2021 16:45:43 PAGE 1 C51 COMPILER V7.06, COMPILATION OF MODULE TESTCOMPILER INVOKED BY: D:toolskeil2C51BINC51.EXE test.c BROWSE DEBU

48、G OBJECTEXTENDstmt level source 1 #include 2 #include 3 #include 4 #include 5 #define uchar unsigned char 6 #define uint unsigned int 7 #define Lcd_Bus P0 /數(shù)據(jù)總線 8 /*/ 9 #define TX_ADR_WIDTH 5 / 5字節(jié)寬度的發(fā)送/接收地址 10 #define TX_PLOAD_WIDTH 4 / 數(shù)據(jù)通道有效數(shù)據(jù)寬度 11 #define LED P2 12 uchar code TX_ADDRESSTX_ADR_WI

49、DTH = 0 x34,0 x43,0 x10,0 x10,0 x01; / 定義一個(gè)靜態(tài)發(fā)送地址 13 uchar RX_BUFTX_PLOAD_WIDTH; 14 uchar TX_BUFTX_PLOAD_WIDTH; 15 uchar flag; 16 uchar DATA; 17 uchar bdata sta; 18 sbit RX_DR = sta6; 19 sbit TX_DS = sta5; 20 sbit MAX_RT = sta4; 21 sbit RS = P35;/模式位,為0輸入指令,為1輸入數(shù)據(jù) 22 sbit RW = P14;/讀寫(xiě)位,為0讀,為1寫(xiě) 23 sb

50、it E = P13;/使能位 24 /*/ 25 /定義累加器A中的各位 26 sbit a0 = ACC 0; 27 sbit a1 = ACC 1; 28 sbit a2 = ACC 2; 29 sbit a3 = ACC 3; 30 sbit a4 = ACC 4; 31 sbit a5 = ACC 5; 32 sbit a6 = ACC 6; 33 sbit a7 = ACC 7; 34 unsigned char table16 = 0 xC0,0 xf9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0XF8,0X80,0X90,0 xC0,0 xf9,0 xA4,

51、0 xB0,0 x99,0 x9 -2; 35 unsigned char key,motor_flag; 36 /*/ 37 void DelayM(unsigned int a)/延時(shí)函數(shù) 1MS/次 38 1 unsigned char i; 39 1 while( -a != 0) 40 2 for(i = 0; i 0) /應(yīng)用:lcm_w_word(您好!); 75 2 write_data(*s); 76 2 s+; 77 2 78 1 79 /*/ 80 /*/ 81 void lcm_w_test(bit i,unsigned char word)/寫(xiě)指令或數(shù)據(jù)被調(diào)用層 82

52、 1 if(i = 0) 83 2 write_com(word);/寫(xiě)指令或數(shù)據(jù)0,指令 84 2 else 85 2 write_data(word);/寫(xiě)指令或數(shù)據(jù)1,數(shù)據(jù) 86 2 87 1 88 void lcm_clr(void)/清屏函數(shù) 89 1 lcm_w_test(0,0 x01); 90 1 91 /*/ 92 /*/ 93 void lcm_init()/初始化LCD屏被調(diào)用層 94 1 write_com(0 x30); /選擇8bit數(shù)據(jù)流 95 1 write_com(0 x0c); /開(kāi)顯示(無(wú)游標(biāo)、不反白) 96 1 write_com(0 x01); /去除

53、顯示,并且設(shè)定地址指針為00H 97 1 98 /*/ 99 100 void keydelay(unsigned char u) 101 102 1 unsigned char i; 103 1 for(;u0;u-) 104 1 for(i=124;i0;i+); 105 1 106 char keyscan(void) 107 108 1 unsigned char cord_h,cord_l; 109 1 P2 = 0 x0f; 110 1 cord_h=P2 & 0 x0f; 111 1 if(cord_h!=0 x0f) 112 1 113 2 keydelay(1); 114 2

54、 cord_h=P2 & 0 x0f; 115 2 if(cord_h!=0 x0f) 116 2 C51 COMPILER V7.06 TEST 12/10/2021 16:45:43 PAGE 3 117 3 P2=cord_h | 0 xf0; 118 3 cord_l=P2 & 0 xf0; 119 3 key = (cord_h+cord_l); 120 3 return(key); 121 3 122 2 123 1 return(0 xff); 124 1 125 126 /*判斷鍵是否按下*/ 127 char keydown(void) 128 129 1 unsigned

55、char i; 130 1 P2=0 x0f; 131 1 if(P2!=0 x0f) 132 1 133 2 i = keyscan(); 134 2 return i; 135 2 while(P2!=0 x0f); /等待鍵釋放 136 2 137 1 return 0;/無(wú)按鍵按下時(shí)返回0 138 1 139 /*/ 140 141 /* 142 函數(shù): init_io() 143 144 描述: 145 初始化IO 146 /*/ 147 void init_io(void) 148 149 1 CE = 0; / 待機(jī) 150 1 CSN = 1; / SPI禁止 151 1 SC

56、K = 0; / SPI時(shí)鐘置低 152 1 IRQ = 1; / 中斷復(fù)位 153 1 / LED = 0 xff; / 關(guān)閉指示燈 154 1 155 /*/ 156 157 /* 158 函數(shù):delay_ms() 159 160 描述: 161 延遲x毫秒 162 /*/ 163 void delay_ms(uchar x) 164 165 1 uchar i, j; 166 1 i = 0; 167 1 for(i=0; ix; i+) 168 1 169 2 j = 250; 170 2 while(-j); 171 2 j = 250; 172 2 while(-j); 173

57、2 174 1 175 /*/ 176 177 /* 178 函數(shù):SPI_RW() 179 180 描述: 181 根據(jù)SPI協(xié)議,寫(xiě)一字節(jié)數(shù)據(jù)到nRF24L01,同時(shí)從nRF24L01 182 讀出一字節(jié) 183 /*/ 184 uchar SPI_RW(uchar byte) 185 186 1 uchar i; 187 1 for(i=0; i8; i+) / 循環(huán)8次 188 1 189 2 MOSI = (byte & 0 x80); / byte最高位輸出到MOSI 190 2 byte = 1; / 低一位移位到最高位 191 2 SCK = 1; / 拉高SCK,nRF24L

58、01從MOSI讀入1位數(shù)據(jù),同時(shí)從MISO輸出1位數(shù)據(jù) 192 2 byte |= MISO; / 讀MISO到byte最低位 193 2 SCK = 0; / SCK置低 194 2 195 1 return(byte); / 返回讀出的一字節(jié) 196 1 197 /*/ 198 199 /* 200 函數(shù):SPI_RW_Reg() 201 202 描述: 203 寫(xiě)數(shù)據(jù)value到reg存放器 204 /*/ 205 uchar SPI_RW_Reg(uchar reg, uchar value) 206 207 1 uchar status; 208 1 CSN = 0; / CSN置低

59、,開(kāi)始傳輸數(shù)據(jù) 209 1 status = SPI_RW(reg); / 選擇存放器,同時(shí)返回狀態(tài)字 210 1 SPI_RW(value); / 然后寫(xiě)數(shù)據(jù)到該存放器 211 1 CSN = 1; / CSN拉高,結(jié)束數(shù)據(jù)傳輸 212 1 return(status); / 返回狀態(tài)存放器 213 1 214 /*/ 215 216 /* 217 函數(shù):SPI_Read() 218 219 描述: 220 從reg存放器讀一字節(jié) 221 /*/ 222 uchar SPI_Read(uchar reg) 223 224 1 uchar reg_val; 225 1 CSN = 0; / C

60、SN置低,開(kāi)始傳輸數(shù)據(jù) 226 1 SPI_RW(reg); / 選擇存放器 227 1 reg_val = SPI_RW(0); / 然后從該存放器讀數(shù)據(jù) 228 1 CSN = 1; / CSN拉高,結(jié)束數(shù)據(jù)傳輸 229 1 return(reg_val); / 返回存放器數(shù)據(jù) 230 1 231 /*/ 232 233 /* 234 函數(shù):SPI_Read_Buf() 235 236 描述: 237 從reg存放器讀出bytes個(gè)字節(jié),通常用來(lái)讀取接收通道 238 數(shù)據(jù)或接收/發(fā)送地址 239 /*/ 240 uchar SPI_Read_Buf(uchar reg, uchar * 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論