紅外感應(yīng)自動窗簾控制器報告_第1頁
紅外感應(yīng)自動窗簾控制器報告_第2頁
紅外感應(yīng)自動窗簾控制器報告_第3頁
紅外感應(yīng)自動窗簾控制器報告_第4頁
紅外感應(yīng)自動窗簾控制器報告_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課程設(shè)計(論文)課程名稱:ARM嵌入式系統(tǒng)題目:自動窗簾控制器設(shè)計院(系):電氣與控制工程學(xué)院目錄TOC\o"1-3"\h\u18593第1章ARM嵌入式系統(tǒng)概述 252671.1嵌入式系統(tǒng) 2139981.2嵌入式系統(tǒng)的特點 29661第2章步進電機原理簡介 2253112.1步進電機 2115772.1.1步進電機原理 399502.1.2步進電機的一些基本參數(shù) 3220192.1.328BYJ48步進電機及其電氣特性 416840第3章控制系統(tǒng)的總體設(shè)計 4272823.1自動窗簾控制器設(shè)計要求: 5258133.2總體設(shè)計思路 5116023.3系統(tǒng)硬件設(shè)計 5119003.3.1EasyARM2131開發(fā)板功能 6229893.3.2ULN003A驅(qū)動芯片 6203153.3.312864液晶顯示 7154593.3.4電機驅(qū)動模塊 8121973.3.5顯示模塊 9318723.4總設(shè)計電路圖 9248243.5軟件設(shè)計 10219293.5.1程序流程: 1118358結(jié)論 117649心得體會 1292參考文獻: 1511306設(shè)計程序: 16第1章ARM嵌入式系統(tǒng)概述1.1嵌入式系統(tǒng)嵌入式計算機系統(tǒng)的出現(xiàn),是現(xiàn)代計算機發(fā)展史上的里程碑。嵌入式系統(tǒng)誕生于微型計算機時代,與通用計算機的發(fā)展道路完全不同,形成了獨立的單芯片的技術(shù)發(fā)展道路。由于嵌入式系統(tǒng)的誕生,現(xiàn)代計算機領(lǐng)域出現(xiàn)了通用計算機與嵌入式計算機兩大分支。1.2嵌入式系統(tǒng)的特點(1)由于嵌入式系統(tǒng)一般是應(yīng)用于小型電子裝置,系統(tǒng)資源相對有限,所以內(nèi)核較之傳統(tǒng)的操作系統(tǒng)要小得多。(2)嵌入式系統(tǒng)的個性化很強,其中的軟件系統(tǒng)和硬件的結(jié)合非常緊密,一般要針對硬件進行系統(tǒng)的移植,即使在同一品牌、同一系列的產(chǎn)品中也需要根據(jù)系統(tǒng)硬件的變化和增減不斷進行修改。(3)嵌入式系統(tǒng)一般沒有系統(tǒng)軟件和應(yīng)用軟件的明顯區(qū)分,不要求其功能的設(shè)計及實現(xiàn)過于復(fù)雜,這樣一方面利于控制系統(tǒng)成本,同時也利于實現(xiàn)系統(tǒng)安全。

高實時性的操作系統(tǒng)軟件是嵌入式軟件的基本要求。而且軟件要求固化存儲,以提高速度。軟件代碼要求高質(zhì)量和高可靠性。

(4)嵌入式軟件開發(fā)要想走向標(biāo)準(zhǔn)化,就必須使用多任務(wù)的操作系統(tǒng)。嵌入式系統(tǒng)的應(yīng)用程序可以沒有操作系統(tǒng)而直接在芯片上運行;(5)嵌入式系統(tǒng)開發(fā)需要專門的開發(fā)工具和環(huán)境。由于嵌入式系統(tǒng)本身不具備自主開發(fā)能力,即使設(shè)計完成以后,用戶通常也不能對其中的程序功能進行修改,因此必須有一套開發(fā)工具和環(huán)境才能進行開發(fā),這些工具和環(huán)境一般是基于通用計算機上的軟硬件設(shè)備以及各種邏輯分析儀、混合信號示波器等。第2章步進電機原理簡介2.1步進電機在電氣時代的今天,電動機一直在現(xiàn)代化的生產(chǎn)和生活中起著十分重要的作用。無論是在工農(nóng)業(yè)生產(chǎn)還是在日常生活中的家用電器,都大量地使用著各種各樣的電動機。因此對電動機的控制變得越來越重要了。2.1.1步進電機原理步進電機是機電控制中一種常用的執(zhí)行機構(gòu),其原理是通過對它每相線圈中的電流和順序切換來使電機作步進式旋轉(zhuǎn)。驅(qū)動電路由脈沖信號來控制,所以調(diào)節(jié)脈沖信號的頻率便可改變步進電機的轉(zhuǎn)速。通俗地說:當(dāng)步進驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進電機按設(shè)定的方向轉(zhuǎn)動一個固定的角度(及步進角)。通過控制脈沖個數(shù)即可以控制角位移量,從而達到準(zhǔn)確定位的目的。同時通過控制脈沖頻率來控制電機轉(zhuǎn)動的速度和加速度,從而達到調(diào)速的目的,現(xiàn)在比較常用的步進電機包括反應(yīng)式步進電機(VR)、永磁式步進電機(PM),混合式步進電機(HB)和單相式步進電機等。四相步進電機按照通電順序的不同,可分為單四拍、雙四拍、八拍三種工作方式。單四拍與雙四拍的步距角相等,但單四拍的轉(zhuǎn)動力矩小。八拍工作方式的步距角是單四拍與雙四拍的一半,因此,八拍工作方式既可以保持較高的轉(zhuǎn)動力矩又可以提高控制精度。單四拍、雙四拍與八拍工作方式的電源通電時序與波形分別如圖a、b、c所示:a.單四拍b.雙四拍c八拍2.1.2步進電機的一些基本參數(shù)電機固有步距角:它表示控制系統(tǒng)每發(fā)一個步進脈沖信號,電機所轉(zhuǎn)動的角度。電機出廠時給出了一個步距角的值,如86BYG250A型電機給出的值為0。90/1。80(表示半步工作時為0。90、整步工作時為1。80),這個步距角可以稱之為“電機固有步距角”,它不一定是電機實際工作時的真正步距角,真正的步距角和驅(qū)動器有關(guān)。步進電機的相數(shù):是指電機內(nèi)部的線圈組數(shù),目前常用的有二相、三相、四相、五相步進電機。電機相數(shù)不同,其步距角也不同,一般二相電機的步距角為0。90/1。80、三相的為0。750/1。50、五相的為0。360/0。720。在沒有細分驅(qū)動器時,用戶主要靠選擇不同相數(shù)的步進電機來滿足自己步距角的要求。如果使用細分動器,則“相數(shù)”將變得沒有意義,用戶只需在驅(qū)動器上改變細分數(shù),就可以改變步距角。2.1.328BYJ48步進電機及其電氣特性步進電機28BYJ48型四相八拍電機,電壓為DC5V—DC12V。當(dāng)對步進電機施加一系列連續(xù)不斷的控制脈沖時,它可以連續(xù)不斷地轉(zhuǎn)動。每一個脈沖信號對應(yīng)步進電機的某一相或兩相繞組的通電狀態(tài)改變一次,也就對應(yīng)轉(zhuǎn)子轉(zhuǎn)過一定的角度(一個步距角)。當(dāng)通電狀態(tài)的改變完成一個循環(huán)時,轉(zhuǎn)子轉(zhuǎn)過一個齒距。四相步進電機可以在不同的通電方式下運行,常見的通電方式有單(單相繞組通電)四拍(A-B-C-D-A。。。),雙(雙相繞組通電)四拍(AB-BC-CD-DA-AB-。。。),八拍(A-AB-B-BC-C-CD-D-DA-A。。。)下圖為本設(shè)計所用到的28BYJ48步進電機28BYJ48電氣性能:額定電壓:12VDC另有電壓:5V、6V、24V2.相數(shù):43.減速比:1/64另有減速比:1/16、1/324.步距角:5.625°/645.驅(qū)動方式:4相8拍6.直流電阻:200Ω±7%(25℃)7.空載牽入頻率:≥600Hz8.空載牽出頻率:≥1000Hz9.牽入轉(zhuǎn)矩:≥34.3mN.m(120Hz)10.自定位轉(zhuǎn)矩:≥34.3mN.m11.絕緣電阻:>10MΩ(500V)12.絕緣介電強度:600VAC/1mA/1S13.絕緣等級:A14.溫升:<50K(120Hz)15.噪音:<40dB(120Hz)16.重量:大約40g17.未注公差按:GB1804-m18.轉(zhuǎn)向:CCW第3章控制系統(tǒng)的總體設(shè)計3.1自動窗簾控制器設(shè)計要求:1)用protel畫出最小系統(tǒng)及外圍擴展電路2)顯示部分可用12864或者數(shù)碼管,最好用上位機(VB或labvIEW界面)3)驅(qū)動部分用三極管搭接H橋驅(qū)動,或uln2003驅(qū)動4)要求小組成員分工明確3.2總體設(shè)計思路本次設(shè)計采用EasyARM2131ARM芯片為主控制芯片,由ULN2003A為驅(qū)動芯片控制步進電機轉(zhuǎn)動;并通過MG12864點陣圖形液晶圖形模塊顯示步進電機轉(zhuǎn)動模式。系統(tǒng)硬件總體設(shè)計框圖如圖所示12864液晶顯示EasyARMLPC213112864液晶顯示EasyARMLPC2131最小系統(tǒng)紅外感應(yīng)模塊紅外感應(yīng)模塊四相五線步進電機ULN2003A驅(qū)動芯片四相五線步進電機ULN2003A驅(qū)動芯片系統(tǒng)原理結(jié)構(gòu)框圖3.3系統(tǒng)硬件設(shè)計本設(shè)計共用到的功能器件有,EasyARM2131開發(fā)板、ULN2003A驅(qū)動芯片、MG12864液晶顯示屏、四相五線式步進電機、按鍵開關(guān)等器件。3.3.1EasyARM2131開發(fā)板功能EasyARM2131開發(fā)板是廣州周立功公司設(shè)計的EasyARM系列開發(fā)套件之一,采用了PHILIPS公司基于ARM7TDMI-S核、單電源供電、LQFP64封裝的LPC2131,具有JTAG仿真調(diào)試、ISP編程等功能。如下圖所示為2131功能框圖。EasyARM2131開發(fā)板功能框圖可進行GPIO的控制實驗,如LED閃爍控制、鍵盤輸入、蜂鳴器控制、模擬SPI等;也可進行外部中斷實驗,學(xué)習(xí)向量中斷控制器(VIC);定時器控制實驗,如定時控制LED、按鍵捕獲輸入、匹配比較輸出等;使用RS232轉(zhuǎn)換電路,完成UART通訊實驗等。3.3.2ULN003A驅(qū)動芯片ULN2003的每一對達林頓都串聯(lián)一個2.7K的基極電阻,在5V的工作電壓下它能與TTL和CMOS電路直接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏輯緩沖器來處理的數(shù)據(jù)。ULN2003工作電壓高,工作電流大,灌電流可達500mA,并且能夠在關(guān)態(tài)時承受50V的電壓,輸出還可以在高負載電流并行運行。ULN是集成達林管IC,內(nèi)部還集成了一個消線圈反電動勢的二極管,可用來驅(qū)動繼電器。它是雙列16腳封裝,NPN晶體管矩陣,最大驅(qū)動電壓為50V,電流為500MA,輸入電壓為5V,適用于TTLCOMS,由達林頓管組成驅(qū)動電路。下圖為ULN2003A的管腳功能圖。ULN2003A管腳圖ULN2003高壓大電流達林頓晶體管陣列芯片,吸收電流可達500mA,輸出耐壓50V,具有很強的驅(qū)動能力。內(nèi)部具有7組達林頓管電路,可以驅(qū)動7路負載。IN為輸入端可由單片機引腳直接控制,當(dāng)輸入端為高電平時,輸出端OUT輸出低電平。

3.3.312864液晶顯示帶中文字庫的128X64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標(biāo)一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64,內(nèi)置8192個16*16點漢字,和128個16*8點ASCII字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機交互圖形界面??梢燥@示8×4行16×16點陣的漢字,也可完成圖形顯示.低電壓低功耗是其又一顯著特點。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。當(dāng)15腳為低且16腳為高時選中TH12864-15的左區(qū)(左邊的64×64),當(dāng)15腳為高且16腳為低時選中MG12864的右區(qū)(右邊的64×64)。19腳和20腳是為了在光線暗的環(huán)境下看到液晶顯示器的顯示內(nèi)容而加的背光,即在液晶顯示器的背面加一光源??刂凭€R/W、CSI、CS2、RS必須在使能線E為低的時候改變。當(dāng)使能線E為高時控制線R/W、CSI、CS2、RS不能改變;使能線E為高時TH12864-15從數(shù)據(jù)線DB0~DB7輸出數(shù)據(jù)。下圖為TH12864-15的管腳說明。引腳號符號功能引腳號符號功能1 GND 模塊的電源地7~14 DB0~DB7并行數(shù)據(jù)0~72 VDD模塊的電源正端15 PSB并/串行接口選擇3V0LCD驅(qū)動電壓輸入端16 NC 空腳4RS并行的指令/數(shù)據(jù)選擇信號;串行的片選信號17 RET 復(fù)位,低電平有效18NC 空腳5R/W并行的讀/寫選擇信號;串行的數(shù)據(jù)口19BLA背光源正極(LED+5V)6E 并行的使能信號;串行的同步時鐘19 BLK背光源負極(LED-0V)TH12864-15管腳說明3.3.4電機驅(qū)動模塊設(shè)計使用ULN2003A驅(qū)動芯片來驅(qū)動步進電機,用發(fā)光二極管來顯示程序的運行狀態(tài)。驅(qū)動電路如下圖所示。電機驅(qū)動模塊電路3.3.5顯示模塊設(shè)計采用TH12864-15點陣式液晶顯示屏,使用串行接法,電路模塊圖如下圖所示。12864液晶顯示模塊3.4總設(shè)計電路圖3.5軟件設(shè)計3.5.1程序流程:設(shè)置引腳功能液晶初始化是否上升沿跳變設(shè)置引腳功能液晶初始化是否上升沿跳變是電機正轉(zhuǎn)是否下降沿跳變是電機反轉(zhuǎn)結(jié)論本次課程設(shè)計中主體功能采用步進電機實現(xiàn),顯示功能采用液晶12864實現(xiàn),對于步進電機的驅(qū)動采用uln2003芯片,使用方便,簡化電路。對于液晶12864的操作采用串行通信,串行通信操作簡單,連線方便。檢測感應(yīng)模塊主要通過檢測人體運動產(chǎn)生電平跳變即有人走近窗簾或者離開窗簾,然后將信號發(fā)送給lpc2131來控制電機正反轉(zhuǎn)。對于主程序的設(shè)計,先定義一個標(biāo)志變量flag,當(dāng)檢測到電平上升沿時,控制電機正轉(zhuǎn),變量flag=1;當(dāng)檢測到下降沿,同時flag=1時即人離開窗簾,控制電機反轉(zhuǎn),關(guān)閉窗簾。定義兩個變量用來計數(shù),在開關(guān)窗簾過程中,每當(dāng)電機轉(zhuǎn)動一圈時,相應(yīng)變量自動加一,當(dāng)變量達到設(shè)定上限值時,電機停止轉(zhuǎn)動,即窗簾已經(jīng)完全打開或者完全關(guān)閉。心得體會在這次課程設(shè)計沒有實際操作以前,我覺得ARM課程設(shè)計會比較麻煩,為此我們參考了別人的設(shè)計,初步了解總體思路后開始動手實踐。由于有C語言編程經(jīng)驗和51單片機課設(shè)的經(jīng)驗,再結(jié)合ARM課程的學(xué)習(xí),真正設(shè)計的過程中并沒有想象的那么困難。使得我從一開始對系統(tǒng)的不太熟悉,到能開發(fā)一個簡單的系統(tǒng),在這整個過程中我學(xué)到了很多東西,掌握了一些常用的開發(fā)技能,也發(fā)現(xiàn)了大量的問題,有些在設(shè)計過程中已經(jīng)解決,有些還有待今后慢慢學(xué)習(xí)。同樣的,這次課程設(shè)計也讓我意識到心態(tài)的重要性,看著別人一個個都快做好了,自己很著急,就想草草做完了事。誰知越急躁就是越達不到想要的效果。等到靜下心來,和其他同伴商量后才又回到正常狀態(tài),在不斷的失敗和努力中,最后終于實現(xiàn)了效果。盡管不是很完美,但是我卻覺得很滿意。通過這次ARM課程設(shè)計,不僅鍛煉了我們的動手能力,培養(yǎng)了團隊協(xié)作及永不放棄、不屈不撓的精神。并且使我們對ARM的知識得到了進一步的提高,同時感謝對我們幫助的同學(xué)和老師,謝謝你們對我們的幫助和支持。通過這次課程設(shè)計,讓我更加深刻了解課本知識,和以往對知識的疏忽得以補充,在使用手冊時,有的數(shù)據(jù)很難查出,但是這些問題經(jīng)過這次設(shè)計,都一一得以解決,我相信這本書中還有很多我為搞清楚的問題,但是這次的課程設(shè)計給我相當(dāng)?shù)幕A(chǔ)知識,為我以后工作打下了嚴(yán)實的基礎(chǔ)。雖然這次課程是那么短暫的2周時間,我感覺到這些天我的所學(xué)勝過我這一學(xué)期所學(xué),課程設(shè)計是培訓(xùn)學(xué)生運用本專業(yè)所學(xué)的理論知識和專業(yè)知識來分析解決實際問題的重要教學(xué)環(huán)節(jié),是對三年所學(xué)知識的復(fù)習(xí)和鞏固。同樣,也促使了同學(xué)們的相互探討,相互學(xué)習(xí)。因此,我們必須認真、謹慎、踏實、一步一步的完成設(shè)計。如果時間可以重來,我可能會認真的去學(xué)習(xí)和研究,也可能會自己獨立的完成一個項目,我相信無論是誰看到自己做出的成果時心里一定會很興奮。此次設(shè)計讓我明白了一個很深刻的道理:團隊精神固然很重要,但人往往還是要靠自己的努力,自己親身去經(jīng)歷,這樣自己的心里才會踏實,學(xué)到的東西才會更多。課程設(shè)計是一個重要的教學(xué)環(huán)節(jié),通過課程設(shè)計使我們了解到一些實際與理論之間的差異。通過課程設(shè)計不僅可以鞏固專業(yè)知識,為以后的工作打下了堅實的基礎(chǔ),而其還可以培養(yǎng)和熟練使用資料,運用工具書的能力,把我們所學(xué)的課本知識與實踐結(jié)合起來,起到溫故而知新的作用。課程設(shè)計誠然是一門專業(yè)課,給我很多專業(yè)知識以及專業(yè)技能上的提升,同時又是一門講道課,一門設(shè)計課,給了我許多道,給了我很多思,給了我莫大的空間。同時,設(shè)計讓我感觸很深。使我對抽象的理論有了具體的認識。在課程設(shè)計過程中。我對arm有了更加深刻的認識對電機驅(qū)動的搭建顯示模塊的調(diào)試光敏感應(yīng)電阻的應(yīng)用理解的更加透徹??傊@次課程設(shè)計使我收獲很多、學(xué)會很多、比以往更有耐心很多。感謝學(xué)校及老師給我們這次課程設(shè)計的機會,最真摯的感謝我們的輔導(dǎo)老師,在設(shè)計過程中,老師精心的輔導(dǎo)和不厭其煩地的態(tài)度才使得我們以順利的完成這次設(shè)計,他那無私的奉獻的精神照耀著我們對學(xué)習(xí)的熱愛,同時也增加我們對知識的追求和欲望度。為期三周的課程設(shè)計很快就過去了!通過三周的課程設(shè)計讓我有很大的收獲,不僅讓我在理論方面有了更深的了解,還讓我的動手能力有了很大的提高。在我看來總體感覺很充實,很有意義。在本學(xué)期前十二周我們學(xué)習(xí)了ARM這門課程,通過本次實訓(xùn),它鞏固和加深了我們課堂上所學(xué)的理論知識,同時我感覺這次的實踐難度比我以往的難度要大,我們不僅要學(xué)習(xí)理論知識還要和時間結(jié)合起來。這次長達三周的課程設(shè)計,我們需要在幾個課題中選擇一個,我們組選擇了自動窗簾控制器設(shè)計,這次課程設(shè)計一切都要靠自己,依靠團隊合作,我們齊心協(xié)力,從開始到最后一直在耐心的查詢資料、討論思考咨詢老師。這次課程設(shè)計我們從設(shè)計電路圖到焊接電路板,一切都要求自己動手。通過這次課程設(shè)計我們真正了解到其實每個人都是潛力股,不管你之前會不會,只要你耐心學(xué)習(xí),認真思考,不管再難的知識我們都會掌握,在這之前我們基本上就沒有接觸過這方面的知識。這次課程讓我們掌握很多具體知識,對元器件的樣子、用途和儀器的使用,都有很大的掌握。在設(shè)計好電路后我們進行焊接電路板,在焊接電路板時我們分為兩組,一人焊接電路,另兩人負責(zé)檢查電路和調(diào)試。在我們的努力下,焊接好了電路板,但是并沒有達到預(yù)期的效果,我們就使用電源和萬用表檢查錯誤,在不斷修正直至成功。紙上得來終覺淺,絕知此事要躬行。課程設(shè)計真的是大學(xué)學(xué)習(xí)生活里很有必要的一項學(xué)習(xí)方式。也許是它安排的時間太少,或者是對課程設(shè)計內(nèi)容太陌生,很多人變得越來越不重視它,課程設(shè)計過程中也漸漸變得不積極了。我想說任何理論知識離開了實踐它就是一無是處的,我們學(xué)理論知識的最終目的都是要把它運用于實踐當(dāng)中。所以,在這為數(shù)不多的課程設(shè)計中,即使困難再大,我們都要珍惜每一個過程,增強自己的動手能力。通過本次課程設(shè)計,我們組員在驚嘆別人焊的電路板的同時,相比之下知道了自己的動手能力有多差;在詢問老師的時候知道了自己的理論知識還是比較貧乏;也在實踐的過程中掌握了不少技巧。作為自動化專業(yè)的學(xué)生,我深知動手能力的培養(yǎng)在我們心目中有著至高的地位,并且理論知識所起到作用更是不可輕視的,這也為我們今后的學(xué)習(xí)敲響了警鐘,指明了方向,今后我們要加強理論學(xué)習(xí)結(jié)合實踐訓(xùn)練,鞏固理論知識,使學(xué)習(xí)的理論知識實實在在的能夠應(yīng)用于生活。在本次課程設(shè)計過程中,我們組得到了老師的細心指導(dǎo)與幫助,在此,表示感謝!通過此次課程設(shè)計,使我更加扎實的掌握了有關(guān)ARM嵌入式系統(tǒng)方面的知識,在設(shè)計過程中雖然遇到了一些問題,但經(jīng)過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識欠缺和經(jīng)驗不足。實踐出真知,通過親自動手制作,使我們掌握的知識不再是紙上談兵。過而能改,善莫大焉。在課程設(shè)計過程中,我們不斷發(fā)現(xiàn)錯誤,不斷改正,不斷領(lǐng)悟,不斷獲齲最終的檢測調(diào)試環(huán)節(jié),本身就是在踐行“過而能改,善莫大焉”的知行觀。這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多問題,最后在楊老師的指導(dǎo)下,終于游逆而解。我想在今后社會的發(fā)展和學(xué)習(xí)實踐過程中,一定要不懈努力,不能遇到問題就想到要退縮,一定要不厭其煩的發(fā)現(xiàn)問題所在,然后一一進行解決,只有這樣,才能成功的做成想做的事,才能在今后的道路上劈荊斬棘,而不是知難而退,那樣永遠不可能收獲成功,收獲喜悅,得到社會及他人對你的認可!參考文獻:[1]周立功.編著.ARM微控制器基礎(chǔ)與實踐[M].北京:北京航空航天大學(xué)出版社.2005.[2]黃智偉.ARM嵌入式系統(tǒng)應(yīng)用設(shè)計與實踐[M].北京:北京航空航天大學(xué)出版社.2011.[2]沈建華.譯.ARM嵌入式系統(tǒng)開發(fā)、軟件設(shè)計與優(yōu)化[M].北京:北京航空航天大學(xué)出版社.2005.

設(shè)計程序:#include"config.h"#include"stdio.h"#defineKEY11<<17//P0.17#defineKEY21<<20//P0.20#defineBEEPCON1<<7//P0.7#defineKEY31<<21//P0.21#defineMOTO1 1<<9//P0.9#defineMOTO2 1<<10 //P0.10#defineMOTO3 1<<12 //P0.12#defineMOTO4 1<<13 //P0.13#defineMOTOCON 0x3c003600//MOTO控制字#defineGPIOSET(PIN)IO0SET=PIN//方便修改置位端口#defineGPIOCLR(PIN) IO0CLR=PIN//方便修改清位端口#defineLCD_CON0x000c0080//液晶顯示控制字#defineE_CLK(1<<18);//clockinput同步時鐘輸入端constuint32RW_SID=(1<<19);//datainput/output串行數(shù)據(jù)輸入、輸出端constuint32CS=(1<<7);//P0.7unsignedcharXX[]="西安科技大學(xué)";unsignedcharTM[]="紅外智能窗簾";unsignedcharXS[]="HJQYXZYZHH";unsignedcharBJ[]="自動化1206班";unsignedcharZZ[]="開窗簾:正轉(zhuǎn)";unsignedcharZZ1[]="每步走1.8";unsignedcharFZ[]="關(guān)窗簾:反轉(zhuǎn)";unsignedcharTZ[]="停止";unsignedcharKD[]="開度:";uint32zhen;uint32fan;uint8tin;uint8flag;voidDelayNS(uint32dly);voidMOTO_Mode1(uint8i);//AB-BC-CD-DA正轉(zhuǎn)voidMOTO_Mode2(uint8i);//AD-DC-CB-BA反轉(zhuǎn)voidMOTO_Mode3(uint8i);//電機停止/*****************************************************************************以下是顯示器的子程序********************/voiddelay(uint32dly){ uint32i; for(;dly>0;dly--) for(i=0;i<10;i++);}//串行發(fā)送一字節(jié)數(shù)據(jù)voidSendByte(uint8dat){uint8i;IO0SET=CS;for(i=0;i<8;i++){ IO0CLR=E_CLK;delay(5); if(dat&0x80) { IO0SET=RW_SID;delay(5); } elseIO0CLR=RW_SID; { IO0SET=E_CLK;delay(5); } dat=dat<<1;}IO0CLR=CS;}//串行接收一字節(jié)數(shù)據(jù)unsignedcharReceieveByte(void){ uint8i,d1,d2;for(i=0;i<8;i++) { IO0CLR=E_CLK;delay(5); IO0SET=E_CLK;delay(5); if(RW_SID)d1++; d1=d1<<1; }for(i=0;i<8;i++) { IO0CLR=E_CLK;delay(5); IO0SET=E_CLK;delay(5); if(RW_SID)d2++; d2=d2<<1; }return(d1&0xF0+d2&0x0F);}//寫控制命令voidSendCMD(uint8dat){SendByte(0xF8); SendByte(dat&0xF0); SendByte((dat&0x0F)<<4); }//寫顯示數(shù)據(jù)或單字節(jié)字符voidSendDat(uint8dat){SendByte(0xFA); SendByte(dat&0xF0); SendByte((dat&0x0F)<<4); }voiddisplay(uint8x_add,unsignedchar*word){SendCMD(x_add); while(*word) { SendDat(*(word++)); }}//初始化LCMvoidinitlcm(void){delay(200);SendCMD(0x30); //功能設(shè)置,一次送8位數(shù)據(jù),基本指令集SendCMD(0x0C); //0000,1100整體顯示,游標(biāo)off,游標(biāo)位置offSendCMD(0x01); //0000,0001清DDRAMSendCMD(0x02); //0000,0010DDRAM地址歸位SendCMD(0x80); //1000,0000設(shè)定DDRAM7位地址000,0000到地址計數(shù)器AC} /*****************************************************************************名稱:main()*功能:根據(jù)表DISP_TAB來控制LED顯示。****************************************************************************/intmain(void){PINSEL0=0x00000000;PINSEL1=0X00000000;PINSEL2&=~(0x00000006);//設(shè)置所有I/O口為GPIO口IO0DIR=MOTOCON|BEEPCON|LCD_CON;initlcm(); //12864初始化程序 display(0x80,XX); delay(100); display(0x90,TM); delay(100); display(0x88,XS); delay(100); display(0x98,BJ); //DelayNS(1000); //IO0CLR=LCD_CON; //while(1);while(1){if((KEY1&IO0PIN)==0) {delay(5); if((KEY1&IO0PIN)!=0&&(flag==0)) {MOTO_Mode1(6); zhen=0x00; flag=1; } }//if((KEY1&IO0PIN)==0) //{delay(5); if((KEY1&IO0PIN)!=0&&(flag!=0)) {MOTO_Mode2(6); fan=0x00; flag=0; } //} elseif((KEY2&IO0PIN)==0){MOTO_Mode2(6);}//WaitKey3();if((KEY3&IO0PIN)==0) {MOTO_Mode3(6);}}return0;}/*****************************************************************************名稱:DelayNS()*功能:長軟件延時*入口參數(shù):dly 延時參數(shù),值越大,延時越久*出口參數(shù):無****************************************************************************/voidDelayNS(uint32dly){uint32i;for(;dly>0;dly--){for(i=0;i<4000;i++);}}voidMOTO_Mode2(uint8i){while((fan!=0x5cf)&&(KEY3&IO0PIN)!=0){initlcm();display(0x80,FZ);delay(100);display(0x90,ZZ1);delay(100);/*AB*/GPIOSET(MOTO1);GPIOSET(MOTO4);DelayNS(i);GPIOCLR(MOTO1);GPIOCLR(MOTO4);/*BC*/GPIOSET(MOTO4);GPIOSET(MOTO3);DelayNS(i);GPIOCLR(MOTO4);GPIOCLR(MOTO3);/*CD*/GPIOSET(MOTO3);GPIOSET(MOTO2);DelayNS(i);GPIOCLR(MOTO3);GPIOCLR(MOTO2);/*DA*/GPIOSET(MOTO2);GPIOSET(MOTO1);DelayNS(i);GPIOCLR

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論