版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、II西安科技大學(xué)電控學(xué)院課程設(shè)計(jì) 電控學(xué)院課程設(shè)計(jì)(論文) 課程名稱(chēng): ARM嵌入式系統(tǒng) 題 目:紅外感應(yīng)自動(dòng)窗簾控制器設(shè)計(jì) 院 (系): 電 控 學(xué) 院 專(zhuān)業(yè)班級(jí): 自動(dòng)化1105班 姓 名: 夏轉(zhuǎn)轉(zhuǎn) 何瑢 蔡馳 劉阿敏 學(xué) 號(hào): 1106050502 1106050503 1106050505 1106050507 指導(dǎo)教師: 李紅巖 楊學(xué)存 2015年 1 月 20日I西安科技大學(xué)電控學(xué)院課程設(shè)計(jì)目 錄一、 ARM嵌入式系統(tǒng)及課題背景11.1嵌入式系統(tǒng)11.1.1嵌入式系統(tǒng)的特點(diǎn):11.2紅外感應(yīng)自動(dòng)窗簾課題背景2二、步進(jìn)電機(jī)原理簡(jiǎn)介22.1步進(jìn)電機(jī)22.1.1步進(jìn)電機(jī)原理:32.1.2
2、步進(jìn)電機(jī)的一些基本參數(shù):3三、控制系統(tǒng)的總體設(shè)計(jì)33.1總體設(shè)計(jì)思路33.2系統(tǒng)硬件設(shè)計(jì)43.2.1 EasyARM2131開(kāi)發(fā)板功能:43.2.2 ULN003A驅(qū)動(dòng)芯片:53.2.4 電機(jī)驅(qū)動(dòng)模塊:63.2.5顯示模塊:73.2.6紅外感應(yīng)模塊:83.3總設(shè)計(jì)電路圖(見(jiàn)報(bào)告最后)83.4軟件設(shè)計(jì)83.4.1 程序流程:(如右圖)8結(jié)論9五、附錄95.1參考文獻(xiàn)95.2實(shí)習(xí)心得95.3設(shè)計(jì)程序:11第 16 頁(yè)西安科技大學(xué)電控學(xué)院課程設(shè)計(jì)一、 ARM嵌入式系統(tǒng)及課題背景1.1嵌入式系統(tǒng) 嵌入式計(jì)算機(jī)系統(tǒng)的出現(xiàn),是現(xiàn)代計(jì)算機(jī)發(fā)展史上的里程碑。嵌入式系統(tǒng)誕生于微型計(jì)算機(jī)時(shí)代,與通用計(jì)算機(jī)的發(fā)展道
3、路完全不同,形成了獨(dú)立的單芯片的技術(shù)發(fā)展道路。由于嵌入式系統(tǒng)的誕生,現(xiàn)代計(jì)算機(jī)領(lǐng)域出現(xiàn)了通用計(jì)算機(jī)與嵌入式計(jì)算機(jī)兩大分支。1.1.1嵌入式系統(tǒng)的特點(diǎn): (1) 由于嵌入式系統(tǒng)一般是應(yīng)用于小型電子裝置,系統(tǒng)資源相對(duì)有限,所以?xún)?nèi)核較之傳統(tǒng)的操作系統(tǒng)要小得多。 (2) 嵌入式系統(tǒng)的個(gè)性化很強(qiáng),其中的軟件系統(tǒng)和硬件的結(jié)合非常緊密,一般要針對(duì)硬件進(jìn)行系統(tǒng)的移植,即使在同一品牌、同一系列的產(chǎn)品中也需要根據(jù)系統(tǒng)硬件的變化和增減不斷進(jìn)行修改。(3) 嵌入式系統(tǒng)一般沒(méi)有系統(tǒng)軟件和應(yīng)用軟件的明顯區(qū)分,不要求其功能的 設(shè)計(jì)及實(shí)現(xiàn)過(guò)于復(fù)雜,這樣一方面利于控制系統(tǒng)成本,同時(shí)也利于實(shí)現(xiàn)系統(tǒng)安全。 (4) 高實(shí)時(shí)性的操作系
4、統(tǒng)軟件是嵌入式軟件的基本要求。而且軟件要求固化存儲(chǔ),以提高速度。軟件代碼要求高質(zhì)量和高可靠性。 (5) 嵌入式軟件開(kāi)發(fā)要想走向標(biāo)準(zhǔn)化,就必須使用多任務(wù)的操作系統(tǒng)。嵌入式系統(tǒng)的應(yīng)用程序可以沒(méi)有操作系統(tǒng)而直接在芯片上運(yùn)行;(6) 嵌入式系統(tǒng)開(kāi)發(fā)需要專(zhuān)門(mén)的開(kāi)發(fā)工具和環(huán)境。由于嵌入式系統(tǒng)本身不具備自主開(kāi)發(fā)能力,即使設(shè)計(jì)完成以后,用戶(hù)通常也不能對(duì)其中的程序功能進(jìn)行修改,因此必須有一套開(kāi)發(fā)工具和環(huán)境才能進(jìn)行開(kāi)發(fā),這些工具和環(huán)境一般是基于通用計(jì)算機(jī)上的軟硬件設(shè)備以及各種邏輯分析儀、混合信號(hào)示波器等。1.2紅外感應(yīng)自動(dòng)窗簾課題背景智能家居控制系統(tǒng)可以定義為一個(gè)過(guò)程或者一個(gè)系統(tǒng),利用先進(jìn)的計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)通訊技
5、術(shù)、技術(shù),將與家居生活有關(guān)的各種子系統(tǒng),有機(jī)的結(jié)合在一起,通過(guò)統(tǒng)籌管理,讓家居生活更加舒適、安全、高效。在現(xiàn)代社會(huì),對(duì)室內(nèi)設(shè)計(jì)而言,窗簾不僅具有遮光作用,更有美化功能,它不僅可以協(xié)調(diào)局是色彩搭配,而且能夠柔化空間造型的線(xiàn)條,營(yíng)造溫馨愜意的環(huán)境。隨著高新技術(shù)及電子器件的發(fā)展,光控、溫控及遙控窗簾應(yīng)運(yùn)而生,給人們的生活帶來(lái)很多方便。自動(dòng)窗簾控制系統(tǒng),既能解決用手拉開(kāi)和關(guān)上窗簾的不便,又顯示出生活的檔次,同時(shí)還可以根據(jù)光線(xiàn)的明暗來(lái)自動(dòng)控制窗簾的開(kāi)關(guān),以調(diào)節(jié)室內(nèi)的光線(xiàn),進(jìn)一步滿(mǎn)足人們的享受要求。自動(dòng)窗簾主要有以下功能:(1)、手動(dòng)控制:該功能自動(dòng)窗簾具有手動(dòng)正轉(zhuǎn),手動(dòng)反轉(zhuǎn)和手動(dòng)停止功能。(2)、半自動(dòng)
6、手動(dòng)控制:半自動(dòng)手動(dòng)控制是指在需要關(guān)閉和打開(kāi)窗簾的時(shí)候,只需要人工按一下“正轉(zhuǎn)”或“反轉(zhuǎn)”按鍵后,窗簾到位自動(dòng)停止。(3)、紅外智能控制:窗簾的關(guān)閉和開(kāi)啟通過(guò)紅外感應(yīng)環(huán)境自動(dòng)完成窗簾的開(kāi)啟或關(guān)閉操作控制,具有智能管理功能。二、步進(jìn)電機(jī)原理簡(jiǎn)介2.1步進(jìn)電機(jī) 在電氣時(shí)代的今天,電動(dòng)機(jī)一直在現(xiàn)代化的生產(chǎn)和生活中起著十分重要的作用。無(wú)論是在工農(nóng)業(yè)生產(chǎn)還是在日常生活中的家用電器,都大量地使用著各種各樣的電動(dòng)機(jī)。因此對(duì)電動(dòng)機(jī)的控制變得越來(lái)越重要了。下圖1為所用到的五線(xiàn)式四相步進(jìn)電機(jī)。圖1五線(xiàn)式四相步進(jìn)電機(jī)2.1.1步進(jìn)電機(jī)原理: 步進(jìn)電機(jī)是機(jī)電控制中一種常用的執(zhí)行機(jī)構(gòu),其原理是通過(guò)對(duì)它每相線(xiàn)圈中的電流和
7、順序切換來(lái)使電機(jī)作步進(jìn)式旋轉(zhuǎn)。驅(qū)動(dòng)電路由脈沖信號(hào)來(lái)控制,所以調(diào)節(jié)脈沖信號(hào)的頻率便可改變步進(jìn)電機(jī)的轉(zhuǎn)速。通俗地說(shuō):當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(及步進(jìn)角)。通過(guò)控制脈沖個(gè)數(shù)即可以控制角位移量,從而達(dá)到準(zhǔn)確定位的目的。同時(shí)通過(guò)控制脈沖頻率來(lái)控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的,現(xiàn)在比較常用的步進(jìn)電機(jī)包括反應(yīng)式步進(jìn)電機(jī)(VR)、永磁式步進(jìn)電機(jī)(PM),混合式步進(jìn)電機(jī)(HB)和單相式步進(jìn)電機(jī)等。2.1.2步進(jìn)電機(jī)的一些基本參數(shù): 電機(jī)固有步距角:它表示控制系統(tǒng)每發(fā)一個(gè)步進(jìn)脈沖信號(hào),電機(jī)所轉(zhuǎn)動(dòng)的角度。電機(jī)出廠時(shí)給出了一個(gè)步距角的值,如86BYG
8、250A型電機(jī)給出的值為0。90/1。80(表示半步工作時(shí)為0。90、整步工作時(shí)為1。80),這個(gè)步距角可以稱(chēng)之為“電機(jī)固有步距角”,它不一定是電機(jī)實(shí)際工作時(shí)的真正步距角,真正的步距角和驅(qū)動(dòng)器有關(guān)。 步進(jìn)電機(jī)的相數(shù):是指電機(jī)內(nèi)部的線(xiàn)圈組數(shù),目前常用的有二相、三相、四相、五相步進(jìn)電機(jī)。電機(jī)相數(shù)不同,其步距角也不同,一般二相電機(jī)的步距角為0。90/1。80、三相的為0。750/1。50、五相的為0。360/0。720。在沒(méi)有細(xì)分驅(qū)動(dòng)器時(shí),用戶(hù)主要靠選擇不同相數(shù)的步進(jìn)電機(jī)來(lái)滿(mǎn)足自己步距角的要求。如果使用細(xì)分動(dòng)器,則“相數(shù)”將變得沒(méi)有意義,用戶(hù)只需在驅(qū)動(dòng)器上改變細(xì)分?jǐn)?shù),就可以改變步距角。三、控制系統(tǒng)的
9、總體設(shè)計(jì)3.1總體設(shè)計(jì)思路 本次設(shè)計(jì)采用EasyARM2131 ARM芯片為主控制芯片,由ULN2003A為驅(qū)動(dòng)芯片控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng);并通過(guò)MG12864點(diǎn)陣圖形液晶圖形模塊顯示步進(jìn)電機(jī)轉(zhuǎn)動(dòng)模式。設(shè)計(jì)原理:當(dāng)光敏器件受到光照300Lux以下時(shí),步進(jìn)電機(jī)正轉(zhuǎn),使窗簾上升,當(dāng)受到1500到3000Lux之間的光照時(shí),步進(jìn)電機(jī)反轉(zhuǎn),使窗簾下降。按鍵控制,分為三個(gè)按鍵,分別為上升鍵K1,下降鍵K2和自動(dòng)鍵。當(dāng)按下K1鍵時(shí),電機(jī)正轉(zhuǎn),窗簾上升,按下K2鍵時(shí),電機(jī)反轉(zhuǎn),窗簾下降,當(dāng)按下自動(dòng)鍵時(shí),光敏器件作用,系統(tǒng)自動(dòng)運(yùn)行。系統(tǒng)硬件總體設(shè)計(jì)框圖如圖2所示。3.2系統(tǒng)硬件設(shè)計(jì) 本設(shè)計(jì)共用到的功能器件有:Eas
10、yARM2131開(kāi)發(fā)板、ULN2003A驅(qū)動(dòng)芯片、MG12864液晶顯示屏、四相五線(xiàn)式步進(jìn)電機(jī)、按鍵開(kāi)關(guān)等器件。3.2.1 EasyARM2131開(kāi)發(fā)板功能: EasyARM2131開(kāi)發(fā)板是廣州周立功公司設(shè)計(jì)的EasyARM系列開(kāi)發(fā)套件之一,采用了PHILIPS公司基于ARM7TDMI-S 核、單電源供電、LQFP64封裝的LPC2131,具有JTAG仿真調(diào)試、ISP編程等功能。 如下圖3所示為2131功能框圖。圖3 EasyARM2131開(kāi)發(fā)板功能框圖可進(jìn)行GPIO的控制實(shí)驗(yàn),如LED閃爍控制、鍵盤(pán)輸入、蜂鳴器控制、模擬SPI等; 可進(jìn)行外部中斷實(shí)驗(yàn),學(xué)習(xí)向量中斷控制器(VIC); 定時(shí)器控
11、制實(shí)驗(yàn),如定時(shí)控制LED、按鍵捕獲輸入、匹配比較輸出等;使用RS232轉(zhuǎn)換電路,完成UART通訊實(shí)驗(yàn)等。3.2.2 ULN003A驅(qū)動(dòng)芯片: ULN是集成達(dá)林管IC,內(nèi)部還集成了一個(gè)消線(xiàn)圈反電動(dòng)勢(shì)的二極管,可用來(lái)驅(qū)動(dòng)繼電器。它是雙列16腳封裝,NPN晶體管矩陣,最大驅(qū)動(dòng)電壓為50V,電流為500MA,輸入電壓為,適用于TTL COMS,由達(dá)林頓管組成驅(qū)動(dòng)電路。下圖4為ULN2003A的管腳功能圖。圖4 ULN2003A管腳圖 ULN2003 高壓大電流達(dá)林頓晶體管陣列芯片,吸收電流可達(dá)500mA,輸出耐壓50V,具有很強(qiáng)的驅(qū)動(dòng)能力。內(nèi)部具有7組達(dá)林頓管電路,可以驅(qū)動(dòng)7路負(fù)載。IN 為
12、輸入端可由單片機(jī)引腳直接控制,當(dāng)輸入端為高電平時(shí),輸出端OUT輸出低電平。3.2.3 TH12864-15液晶顯示: TH12864-15是128(列)×64(行)點(diǎn)陣的液晶顯示模塊。當(dāng)15腳為低且16腳為高時(shí)選中TH12864-15的左區(qū)(左邊的64×64),當(dāng)15腳為高且16腳為低時(shí)選中MG12864的右區(qū)(右邊的64×64)。19腳和20腳是為了在光線(xiàn)暗的環(huán)境下看到液晶顯示器的顯示內(nèi)容而加的背光,即在液晶顯示器的背面加一光源??刂凭€(xiàn)RW、CSI、CS2、RS必須在使能線(xiàn)E為低的時(shí)候改變。當(dāng)使能線(xiàn)E為高時(shí)控制線(xiàn)RW、CSI、CS2、RS不能改變;使能線(xiàn)E為高時(shí)
13、TH12864-15從數(shù)據(jù)線(xiàn)DB0DB7輸出數(shù)據(jù)。下圖5為12864-15的管腳說(shuō)明。引腳號(hào) 符號(hào) 功能引腳號(hào) 符號(hào) 功能1GND 模塊的電源地714 DB0DB7 并行數(shù)據(jù)072VDD 模塊的電源正端15PSB 并/串行接口選擇3 V0 LCD驅(qū)動(dòng)電壓輸入端16NC空腳4 RS 并行的指令/數(shù)據(jù)選擇信號(hào);串行的片選信號(hào)17RET復(fù)位,低電平有效18 NC 空腳5 R/W 并行的讀/寫(xiě)選擇信號(hào);串行的數(shù)據(jù)口19 BLA 背光源正極(LED+5V)6 E 并行的使能信號(hào);串行的同步時(shí)鐘19BLK 背光源負(fù)極(LED-0V)圖5TH12864-15管腳說(shuō)明3.2.4 電機(jī)驅(qū)動(dòng)模塊: 設(shè)計(jì)使用ULN
14、2003A驅(qū)動(dòng)芯片來(lái)驅(qū)動(dòng)步進(jìn)電機(jī),用發(fā)光二極管來(lái)顯示程序的運(yùn)行狀態(tài)。驅(qū)動(dòng)電路如下圖6示。圖6 驅(qū)動(dòng)模塊電路3.2.5顯示模塊: 設(shè)計(jì)采用TH12864-15點(diǎn)陣式液晶顯示屏,使用串行接法,電路模塊圖如下圖7所示。圖7 2864液晶顯示模塊3.2.6紅外感應(yīng)模塊:3.3總設(shè)計(jì)電路圖(見(jiàn)報(bào)告最后)3.4軟件設(shè)計(jì)3.4.1 程序流程:(如右圖)結(jié)論 本次課程設(shè)計(jì)中主體功能采用步進(jìn)電機(jī)實(shí)現(xiàn),顯示功能采用液晶12864實(shí)現(xiàn),對(duì)于步進(jìn)電機(jī)的驅(qū)動(dòng)采用uln2003芯片,使用方便,簡(jiǎn)化電路。對(duì)于液晶12864的操作采用串行通信,串行通信操作簡(jiǎn)單,連線(xiàn)方便。檢測(cè)感應(yīng)模塊主要通過(guò)檢測(cè)人體運(yùn)動(dòng)產(chǎn)生電平跳變即有人走近
15、窗簾或者離開(kāi)窗簾,然后將信號(hào)發(fā)送給lpc2131來(lái)控制電機(jī)正反轉(zhuǎn)。對(duì)于主程序的設(shè)計(jì),先定義一個(gè)標(biāo)志變量flag,當(dāng)檢測(cè)到電平上升沿時(shí),控制電機(jī)正轉(zhuǎn),變量flag=1;當(dāng)檢測(cè)到下降沿,同時(shí)flag=1時(shí)即人離開(kāi)窗簾,控制電機(jī)反轉(zhuǎn),關(guān)閉窗簾。定義兩個(gè)變量用來(lái)計(jì)數(shù),在開(kāi)關(guān)窗簾過(guò)程中,每當(dāng)電機(jī)轉(zhuǎn)動(dòng)一圈時(shí),相應(yīng)變量自動(dòng)加一,當(dāng)變量達(dá)到設(shè)定上限值時(shí),電機(jī)停止轉(zhuǎn)動(dòng),即窗簾已經(jīng)完全打開(kāi)或者完全關(guān)閉。五、附錄5.1參考文獻(xiàn)1馬忠梅,馬廣云.ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ)M.北京:北京航空航天大學(xué)出版社.2002.2黃智偉.ARM嵌入式系統(tǒng)應(yīng)用設(shè)計(jì)與實(shí)踐M.北京:北京航空航天大學(xué)出版社.2011.3沈建華.譯.
16、ARM嵌入式系統(tǒng)開(kāi)發(fā)、軟件設(shè)計(jì)與優(yōu)化M.北京:北京航空航天大學(xué)出版社.2005.4周立功.編著.ARM微控制器基礎(chǔ)與實(shí)踐M.北京:北京航空航天大學(xué)出版社.20055.2實(shí)習(xí)心得夏轉(zhuǎn)轉(zhuǎn)實(shí)習(xí)心得:為期兩周的實(shí)習(xí)接近尾聲,我們這一期的實(shí)習(xí)題目是紅外線(xiàn)感應(yīng)窗簾,在組長(zhǎng)的領(lǐng)導(dǎo)下,我們發(fā)揮團(tuán)隊(duì)協(xié)作精神,積極配合組長(zhǎng),基本完成了老師要求的任務(wù),基本實(shí)現(xiàn)了根據(jù)光線(xiàn)變化自主開(kāi)閉窗簾。我主要負(fù)責(zé)軟件的調(diào)試,剛開(kāi)始的時(shí)候在圖書(shū)館查閱資料寫(xiě)的程序運(yùn)行一直有錯(cuò)誤,經(jīng)過(guò)反復(fù)調(diào)試和詢(xún)問(wèn)老師,最終實(shí)現(xiàn)了基本的功能。然后又添加新的功能,經(jīng)過(guò)調(diào)試實(shí)現(xiàn)了一部分功能,但不能完全實(shí)現(xiàn)。以后一定會(huì)繼續(xù)努力。很辛苦的兩周讓我受益良多,不知
17、不覺(jué)時(shí)間就過(guò)去了。兩周內(nèi),在老師的幫助下,組長(zhǎng)的帶領(lǐng)下,我們能順利地完成老師布置的任務(wù),最終實(shí)現(xiàn)了預(yù)期的目標(biāo),無(wú)論多艱苦的情況,都可以很耐心的學(xué)習(xí),遇到自己不會(huì)的問(wèn)題,一定積極解決,詢(xún)問(wèn),反復(fù)練習(xí)。今后一定要繼續(xù)努力,爭(zhēng)取做得更好。謝謝組員以及老師的幫助。何瑢實(shí)習(xí)心得:很快,我們的實(shí)習(xí)就接近了尾聲,我們這一期的實(shí)習(xí)題目是紅外線(xiàn)感應(yīng)窗簾,在組長(zhǎng)的領(lǐng)導(dǎo)下,我們發(fā)揮團(tuán)隊(duì)協(xié)作精神,積極配合組長(zhǎng),基本完成了老師要求的任務(wù),起初,程序老是出現(xiàn)問(wèn)題,我們經(jīng)過(guò)多次的調(diào)試,修改,使得它得以正確運(yùn)行,窗簾也基本實(shí)現(xiàn)了在光線(xiàn)變化的條件下自主升降。我們也各自完成了自己的任務(wù)。兩周內(nèi),在老師指導(dǎo)下,我們順利的完成了實(shí)現(xiàn)
18、了所有功能,最終實(shí)現(xiàn)了預(yù)期的目標(biāo),使自己這學(xué)期所學(xué)到的知識(shí)得到了應(yīng)用,通過(guò)這兩周的實(shí)習(xí),我認(rèn)識(shí)到了自己的很多不足,學(xué)到了很多課本上學(xué)不到的東西,使我認(rèn)識(shí)到自己的不足,所以我以后要努力學(xué)習(xí),把知識(shí)用到實(shí)際中去,以便將來(lái)更好的報(bào)效國(guó)家。蔡馳實(shí)習(xí)心得:為期兩周的課程設(shè)計(jì)結(jié)束了,在沒(méi)有實(shí)際操作以前,我覺(jué)得ARM課程設(shè)計(jì)會(huì)比較麻煩,為此我們參考了別人的設(shè)計(jì),初步了解總體思路后開(kāi)始動(dòng)手實(shí)踐。由于有C語(yǔ)言編程經(jīng)驗(yàn)和51單片機(jī)課設(shè)的經(jīng)驗(yàn),再結(jié)合ARM課程的學(xué)習(xí),真正設(shè)計(jì)的過(guò)程中并沒(méi)有想象的那么困難。只要ARM中的各個(gè)寄存器的名稱(chēng)和功能,以及一些常用的指令語(yǔ)句記得清楚,那么同樣的用C語(yǔ)言編程是沒(méi)有什么困難的。對(duì)
19、于這種實(shí)踐性比較強(qiáng)的課程,一般情況下是少說(shuō)多動(dòng)手才有益于我們對(duì)這門(mén)課程的學(xué)習(xí)。對(duì)于程序設(shè)計(jì)來(lái)說(shuō),各個(gè)子程序的設(shè)計(jì)比較簡(jiǎn)單,只需按照各個(gè)芯片的操作時(shí)序編程就可以。劉阿敏實(shí)習(xí)心得:本次A R M課程設(shè)計(jì),我這一組選的是紅外感應(yīng)自動(dòng)窗簾控制器,總共實(shí)習(xí)了兩周,實(shí)習(xí)過(guò)程中,完成了對(duì)硬件的焊接,雖然焊接過(guò)程中,出現(xiàn)了失誤和一些困難,但經(jīng)過(guò)自己的檢查和通過(guò)請(qǐng)教別人,一些小的難題都解決了,但比較困難的是功能的擴(kuò)展。軟件實(shí)現(xiàn)的過(guò)程中,比較困難,大部分是通過(guò)去圖書(shū)館和上網(wǎng)解決,最終還是完成了課程設(shè)計(jì)。通過(guò)這次課設(shè),使我對(duì)ARM的知識(shí)更了解,尤其是在實(shí)際應(yīng)用中,知道了怎樣去編譯程序,怎么去調(diào)試,知道怎么和團(tuán)隊(duì)一起
20、合作,一起解決問(wèn)題,真的收益真大,相信這對(duì)以后的工作也會(huì)有幫助,其中也有老師的幫忙,謝謝李老師,和楊老師的指導(dǎo)!5.3設(shè)計(jì)程序:#include "config.h"#include "stdio.h"#define KEY1 1<<16 / P0.16#define KEY2 1<<20 / P0.20 #define BEEPCON 1<<7 / P0.7#define KEY3 1<<21 / P0.21#define KEY4 1<<17 / P0.17#define MOTO1 1&l
21、t;<9 / P0.9 #define MOTO2 1<<10/ P0.10#define MOTO3 1<<12/ P0.12#define MOTO41<<13/ P0.13#define MOTOCON0x3c003600 / MOTO控制字#define GPIOSET(PIN) IO0SET = PIN / 方便修改置位端口#define GPIOCLR(PIN)IO0CLR = PIN / 方便修改清位端口#define LCD_CON 0x000c0080 /液晶顯示控制字#define E_CLK (1<<18) ; /cl
22、ock input 同步時(shí)鐘輸入端 const uint32 RW_SID= (1<<19) ; /data input/output 串行數(shù)據(jù)輸入、輸出端 const uint32 CS = (1<<7); /P0.7unsigned char XX = "西安科技大學(xué)"unsigned char TM = "紅外智能窗簾"unsigned char XS = "劉 何 夏 蔡"unsigned char BJ = "自動(dòng)化1105班"unsigned char ZZ = "開(kāi)窗
23、簾:正轉(zhuǎn)"unsigned char ZZ1 = "每步走1.8"unsigned char FZ = "關(guān)窗簾:反轉(zhuǎn)"unsigned char TZ = "停止"unsigned char KD= "開(kāi)度:"uint32 zhen;uint32 fan,temp=0,ADC_Data;uint8 tin;uint8 flag;void DelayNS(uint32 dly);void MOTO_Mode1(uint8 i); / AB-BC-CD-DA 正轉(zhuǎn)void MOTO_Mode2(uint8
24、i); / AD-DC-CB-BA 反轉(zhuǎn)void MOTO_Mode3(uint8 i); /電機(jī)停止void MOTO_A(uint8 i);void MOTO_B(uint8 i);/*/ /*以下是顯示器的子程序*/void delay(uint32 dly)uint32 i;for ( ; dly>0; dly-)for (i=0; i<10; i+); /串行發(fā)送一字節(jié)數(shù)據(jù) void SendByte(uint8 dat) uint8 i; IO0SET=CS; for(i=0;i<8;i+) IO0CLR=E_CLK ;delay(5);if(dat&0x
25、80)IO0SET=RW_SID;delay(5);else IO0CLR=RW_SID; IO0SET=E_CLK;delay(5); dat=dat<<1; IO0CLR=CS; /串行接收一字節(jié)數(shù)據(jù) unsigned char ReceieveByte(void) uint8 i,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); IO0SE
26、T=E_CLK;delay(5); if(RW_SID)d2+; d2=d2<<1; return (d1&0xF0+d2&0x0F); /寫(xiě)控制命令 void SendCMD(uint8 dat) SendByte(0xF8); SendByte(dat&0xF0); SendByte(dat&0x0F)<<4); /寫(xiě)顯示數(shù)據(jù)或單字節(jié)字符 void SendDat(uint8 dat) SendByte(0xFA); SendByte(dat&0xF0); SendByte(dat&0x0F)<<4); v
27、oid display(uint8 x_add, unsigned char * word) SendCMD(x_add); while(*word) SendDat(*(word+); /初始化 LCM void initlcm(void) delay(200); SendCMD(0x30);/功能設(shè)置,一次送8位數(shù)據(jù),基本指令集 SendCMD(0x0C);/0000,1100 整體顯示,游標(biāo)off,游標(biāo)位置off SendCMD(0x01);/0000,0001 清DDRAM SendCMD(0x02);/0000,0010 DDRAM地址歸位 SendCMD(0x80);/1000,0
28、000 設(shè)定DDRAM 7位地址000,0000到地址計(jì)數(shù)器AC /* 名 稱(chēng):main()* 功 能:根據(jù)表DISP_TAB來(lái)控制LED顯示。*/int main(void)PINSEL0&=0xFFFF3FFF;PINSEL1|=0x15400000;/PINSEL2&=0x00000000; /設(shè)置所有I/O口為GPIO口IO0DIR =MOTOCON|BEEPCON|LCD_CON;initlcm(); /12864初始化程序 display(0x80,XX); delay(100); display(0x90,TM); delay(100); display(0x88
29、,XS); delay(100); display(0x98,BJ); /DelayNS(1000); /IO0CLR=LCD_CON; /while(1); AD0CR = (1 << 1) |/ SEL = 1 ,選擇通道0 (Fpclk / 1000000 - 1) << 8) | / CLKDIV = Fpclk / 1000000 - 1 ,即轉(zhuǎn)換時(shí)鐘為1MHz (0 << 16) |/ BURST = 0 ,軟件控制轉(zhuǎn)換操作 (0 << 17) | / CLKS = 0 ,使用11clock轉(zhuǎn)換 (1 << 21) | /
30、 PDN = 1 , 正常工作模式(非掉電轉(zhuǎn)換模式) (0 << 22) | / TEST1:0 = 00 ,正常工作模式(非測(cè)試模式) (1 << 24) | / START = 1 ,直接啟動(dòng)ADC轉(zhuǎn)換 (0 << 27);/ EDGE = 0 (CAP/MAT引腳下降沿觸發(fā)ADC轉(zhuǎn)換) DelayNS(10); ADC_Data = AD0DR;while(1)AD0CR = (AD0CR&0x00FFFF00)|0x08|(1 << 24);while (AD0DR & 0x80000000) = 0);/ 等待轉(zhuǎn)換結(jié)束A
31、D0CR |= 1 << 24;/ 再次啟動(dòng)轉(zhuǎn)換while (AD0DR & 0x80000000) = 0);/ 等待轉(zhuǎn)換結(jié)束ADC_Data= AD0DR;ADC_Data = (ADC_Data >> 6) & 0x3ff;ADC_Data = ADC_Data * 3280;ADC_Data=ADC_Data/1024;if(KEY4&IO0PIN)=0)while(KEY4&IO0PIN)=0);temp+;delay(5);if(temp%2)=1)if (ADC_Data>2000)MOTO_B(6);if(fan=0
32、x587) initlcm(); display(0x80,TZ); delay(100);elseMOTO_A(6);if(fan=0x587) initlcm(); display(0x80,TZ); delay(100);if(KEY1&IO0PIN)=0)delay(5);if(KEY1&IO0PIN)!=0&&(flag=0)MOTO_Mode1(6);flag=1;/if(KEY1&IO0PIN)=0)/delay(5);if(KEY1&IO0PIN)!=0&&(flag!=0)MOTO_Mode2(6);fan=0x
33、00;flag=0;/else if(KEY2&IO0PIN)=0) MOTO_Mode2(6); /WaitKey3(); if (KEY3&IO0PIN)=0) MOTO_Mode3(6); return 0;/* 名 稱(chēng):DelayNS()* 功 能:長(zhǎng)軟件延時(shí)* 入口參數(shù):dly延時(shí)參數(shù),值越大,延時(shí)越久* 出口參數(shù):無(wú)*/void DelayNS(uint32 dly) uint32 i; for(; dly>0; dly-) for(i=0; i<4000; i+); void MOTO_B(uint8 i)initlcm(); display(0x80
34、,FZ); delay(100); display(0x90,ZZ1); delay(100); if(zhen<=1400) display(0x88,KD);delay(100);SendCMD(0x8B);SendDat(zhen/14)/10+0x30); SendCMD(0x8C);SendDat(zhen/14)%10+0x30); /* AD*/ GPIOSET(MOTO1); GPIOSET(MOTO4); DelayNS(i); GPIOCLR(MOTO1); GPIOCLR(MOTO4); /* DC */ GPIOSET(MOTO4); GPIOSET(MOTO3); DelayNS(i); GPIOCLR(MOTO4); GPIOCLR(MOTO3); /* CB */ GPIOSET(MOTO3); GPIOSET(MOTO2); DelayNS(i); GPIOCLR
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家居光環(huán)境設(shè)計(jì)與身心健康
- 《金壇市農(nóng)業(yè)技術(shù)推廣體系現(xiàn)狀與發(fā)展對(duì)策初步研究》
- 《微型樁復(fù)合土釘墻支護(hù)體系應(yīng)用研究》
- 《一類(lèi)非理想條件下非線(xiàn)性系統(tǒng)的高斯濾波算法及其應(yīng)用研究》
- 《溫膽湯加減治療單純性非酒精性脂肪肝血脂異常(痰濕質(zhì))的臨床觀察》
- 固廢工程師年度工作計(jì)劃
- 2025年度消防安全演練策劃及執(zhí)行合同3篇
- 小學(xué)數(shù)學(xué)教學(xué)軟件中的圖形操作功能
- 《負(fù)載型共摻雜TiO2光催化劑的制備與研究》
- 不粘柄面包夾行業(yè)行業(yè)發(fā)展趨勢(shì)及投資戰(zhàn)略研究分析報(bào)告
- 外科學(xué)-粘連性腸梗阻
- 護(hù)理學(xué)基礎(chǔ)簡(jiǎn)答題 126道題 附答案
- 名著導(dǎo)讀簡(jiǎn)·愛(ài)整本書(shū)閱讀計(jì)劃
- 明渠均勻流計(jì)算公式
- GB/T 28621-2023安裝于現(xiàn)有建筑物中的新電梯制造與安裝安全規(guī)范
- CPK-數(shù)據(jù)自動(dòng)生成器
- 英語(yǔ)現(xiàn)在完成時(shí)專(zhuān)項(xiàng)練習(xí)題(附答案)
- 柒牌電梯媒體投放提案
- 碧桂園集團(tuán)同心共享實(shí)施辦法全套文件
- 五金合同2023(含價(jià)格清單明細(xì))
- 冷連軋機(jī)張力控制
評(píng)論
0/150
提交評(píng)論