![嵌入式系統(tǒng)設計報告_第1頁](http://file4.renrendoc.com/view/1c24de82f9c0e238419c96642dc01242/1c24de82f9c0e238419c96642dc012421.gif)
![嵌入式系統(tǒng)設計報告_第2頁](http://file4.renrendoc.com/view/1c24de82f9c0e238419c96642dc01242/1c24de82f9c0e238419c96642dc012422.gif)
![嵌入式系統(tǒng)設計報告_第3頁](http://file4.renrendoc.com/view/1c24de82f9c0e238419c96642dc01242/1c24de82f9c0e238419c96642dc012423.gif)
![嵌入式系統(tǒng)設計報告_第4頁](http://file4.renrendoc.com/view/1c24de82f9c0e238419c96642dc01242/1c24de82f9c0e238419c96642dc012424.gif)
![嵌入式系統(tǒng)設計報告_第5頁](http://file4.renrendoc.com/view/1c24de82f9c0e238419c96642dc01242/1c24de82f9c0e238419c96642dc012425.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
精選優(yōu)質文檔傾情為你奉上精選優(yōu)質文檔傾情為你奉上專心專注專業(yè)專心專注專業(yè)精選優(yōu)質文檔傾情為你奉上專心專注專業(yè)目錄TOC\o"1-3"\u第一章設計任務說明 1第二章系統(tǒng)方案設計 22.1溫度傳感器的選型 32.2流量傳感器的選型 52.3步進電機及其驅動芯片的選型 82.3.1步進電機選型 82.3.2步進電機驅動芯片選型 92.4混水閥選型 102.5CPU選型 112.6系統(tǒng)整體結構示意圖和設計原理 12第三章硬件設計 133.1按鍵與顯示電路 133.2溫度與流量檢測電路 143.3步進電機驅動及控制電路 15第四章軟件設計 164.1控制器外觀設計以及按鍵、顯示程序流程 164.2溫度檢測方法及程序流程 174.3流量檢測方法及程序流程 184.4步進電機的控制算法及程序流程 194.5系統(tǒng)軟件流程 214.6應用子程序代碼 22附錄:實驗報告…………………..28第一章設計任務說明有一浴池,需要實現(xiàn)水溫自動控制和用水量自動檢測,要求水溫的給定溫度可以由操作面板上的按鍵輸入,也可以由遠程計算機串行傳送輸入。顯示溫度精確到小數(shù)點后一位。用水量單位為立方米,顯示到小數(shù)點后兩位。供水方式是把熱水管路與冷水管路同時進入混水器,通過調節(jié)混水器旋鈕的角度來實現(xiàn)溫度控制。當給定標準溫度值后,要求實際水溫控制在標準值的。設計要求如下:一、設計一個可行的控制系統(tǒng)方案,包括:檢測方法設計,傳感器的選型與安裝方式及位置;控制方法設計,調節(jié)器的選型與安裝方式及位置;單片機控制器與傳感器、調節(jié)器的聯(lián)接方式與安裝位置;畫出方案示意圖,并寫出設計原理說明。包括傳感器、調節(jié)器的基本參數(shù)說明。二、單片機控制器的硬件部分設計設計檢測電路、驅動控制電路;設計鍵盤和顯示電路;設計并畫出單片機控制器的外形設計圖;設計并畫出單片機應用系統(tǒng)硬件系統(tǒng)原理圖;寫出設計說明。單片機控制器軟件部分設計確定水溫、流量的檢測方法并畫出流程圖;設計調節(jié)器的控制方法并畫出流程圖;設計操作面板功能及鍵盤、顯示的流程圖;設計并畫出系統(tǒng)應用軟件的流程圖;編寫一個應用子程序;寫出設計說明。第二章系統(tǒng)方案設計該浴池水溫控制系統(tǒng)的系統(tǒng)框圖如圖2.1所示,其工作過程是:由按鍵輸入設定溫度值,溫度傳感器檢測浴池內(nèi)的水溫,通過對混水器步進電機轉角的控制來調節(jié)熱水與冷水的比例,使浴池水溫調整到設定溫度值;流量傳感器檢測流入浴池的水量;此外,系統(tǒng)的顯示模塊能夠顯示設定溫度,當前溫度,以及當前用水量。圖2.1浴池水溫控制系統(tǒng)框圖2.1溫度傳感器的選型溫度傳感器主要有四種主要類型:熱電偶、熱敏電阻、電阻溫度檢測器(RTD)和集成溫度傳感器(IC)。IC溫度傳感器又包括模擬輸出和數(shù)字輸出兩種類型。如表2.1。熱電偶由于其較高的性價比,應用很廣泛。熱電偶有多種類型,它們覆蓋非常寬的溫度范圍,從-200℃~2000℃。它們的特點是:低靈敏度、低穩(wěn)定性、中等精度、響應速度慢、高溫下容易老化和有漂移,以及非線性。另外,熱電偶需要外部參考端。RTD精度極高且具有中等線性度。它們特別穩(wěn)定,并有許多種配置。但它們的最高工作溫度只能達到400℃左右。它們也有很大的TC,且價格昂貴(是熱電偶的4~10倍),并且需要一個外部參考源。模擬輸出IC溫度傳感器具有很高的線性度(如果配合一個模數(shù)轉換器或ADC可產(chǎn)生數(shù)字輸出)、低成本、高精度(大約1%)、小尺寸和高分辨率。它們的不足之處在于溫度范圍有限(-55℃~+150℃),并且需要一個外部參考源。數(shù)字輸出IC溫度傳感器帶有一個內(nèi)置參考源,它們的響應速度也相當慢(100ms數(shù)量級)。雖然它們固有地會自身發(fā)熱,但可以采用自動關閉和單次轉換模式使其在需要測量之前將IC設置為低功耗狀態(tài),從而將自身發(fā)熱降到最低。與熱敏電阻、RTD和熱電偶傳感器相比,IC溫度傳感器具有很高的線性,低系統(tǒng)成本,集成復雜的功能,能夠提供一個數(shù)字輸出,并能夠在一個相當有用的范圍內(nèi)進行溫度測量。表2.1:不同類型溫度傳感器的比較本設計選用AD公司生產(chǎn)的專用集成溫度傳感器AD590。它屬于電流輸出型。在一定溫度范圍內(nèi),它相當于一個高阻電流源,其電流溫度靈敏度。它不易受接觸電阻、引線電阻、電壓噪聲等的干擾。此外它還具有體積小、測量精度高、線性好和互換性強等優(yōu)點,其主要技術指標為:測量范圍:;電流輸出(標定系數(shù)):;電源電壓:;線性度:在滿量程范圍內(nèi)小于;重復性:;輸出阻抗:約為;長期漂移:;2.2流量傳感器的選型根據(jù)測量原理的不同,流量傳感器可分為熱式流量傳感器和非熱式流量傳感器兩大類。熱式流量傳感器主要依靠傳感器與流體間的熱相互作用來進行測量。該類傳感器由于易采用半導體工藝制造,具有體積小、成本低、可以批量生產(chǎn),同時能與處理電路集成在同一芯片上,使傳感器的輸出直接實現(xiàn)數(shù)字化,易于與計算機接口等優(yōu)點。但熱流量傳感器也存在一定的不足,如反應時間較長、功耗大、襯底的熱傳導導致測量誤差、零點隨環(huán)境溫度的漂移等問題;對流體加熱,也限制了熱式微流量傳感器在生物技術方面的應用。非熱式流量傳感器是利用其他的物理方式來實現(xiàn)對流體的測量。它把流速的信息轉化為力或壓強或物體的旋轉,再檢測由此帶來的物體的形變或電學性能的變化,利用一定的對應關系,反過來測出流速的大小。和熱式流量傳感器相比,它有功耗小,無零點漂移、測量方式多樣,檢出電路簡單,響應時間短等優(yōu)點。其缺點主要體現(xiàn)在難以實現(xiàn)二維或三維方向的測量,難以兼顧全量程范圍內(nèi)的靈敏度,制造過程難以與標準CMOS工藝兼容等。盡管如此,在大量不需感知流向的流速測量應用中,該類傳感具有廣闊的應用前景。在這一類非熱傳感器中,風輪式結構是最廣泛應用的一種,如傳統(tǒng)的風杯等。顯然,熱式流量傳感器不適用于本設計,所以應選擇非熱式流量傳感器。非熱式流量傳感器的測量原理有:流體粘滯力測量,聲學測量,光學測量,電磁測量,浮子測量以及機械轉子(葉輪)測量等。綜合比較各種類型的非熱式流量傳感器的性能與價格之后,本設計選用上海自儀九儀表有限公司生產(chǎn)的LWGY25C0A5T0型渦輪流量傳感器,其技術性能如下:測量介質:液體;介質粘度范圍:;流體溫度:;環(huán)境溫度:;相對濕度:;接觸流體的零件材料:殼體、導向件:1Cr18NiTi葉輪:不銹鋼2Cr13軸、軸承:硬質合金軸+軸承安裝方式:安裝于水平管道;連接方式:非密封的管螺紋連接;電源與輸出信號:前置放大器輸出的脈沖信號,高電平4.5V以上,低電平0.5V以下,占空比;公稱直徑:25mm;流量范圍():,誤差限為;公稱壓力:。:渦輪流量傳感器的基本結構: 如圖2.2所示,渦輪流量傳感器由殼體、前導向架、軸、葉輪、后導向架、壓緊圈和帶磁電感應轉換器的放大器等組成。前導向架和后導向架安裝在殼體中,軸安裝在導向架上,同時因導向架上有幾片呈輻射形的整流片,還可以起一定的整流作用,使流體基本上沿著平行于軸線的方向流動;前、后導向架是用壓緊圈固定在殼體上的。葉輪中有軸承,套在軸上,可以靈活地旋轉。葉輪上均勻分布著葉片,液體流過時沖擊葉片使葉輪產(chǎn)生轉動。圖2.2渦輪流量傳感器的結構示意圖:渦輪流量傳感器的工作原理: 當被測流體流經(jīng)傳感器時,傳感器內(nèi)的葉輪借助于流體的動能而產(chǎn)生旋轉,周期性地改變磁電感應轉換系統(tǒng)中的磁阻值,使通過線圈的磁通量周期性地發(fā)生變化而產(chǎn)生電脈沖信號。在一定的流量范圍下,葉輪轉速與流體流量成正比,即電脈沖數(shù)量與流量成正比。該脈沖信號經(jīng)放大器放大后送至二次儀表進行流量和總量的顯示或積算,如圖2.3和圖2.4。在測量范圍內(nèi),傳感器的輸出脈沖總數(shù)與流過傳感器的體積總量成正比,其比值稱為儀表常數(shù),以表示。每臺傳感器都經(jīng)過實際標定測得儀表常數(shù)值。當測出脈沖信號的頻率f和某一段時間內(nèi)的脈沖總數(shù)N后,分別除以儀表常數(shù)便可求得瞬時流量和累積流量。即:(1)(2)圖2.3前置放大器的內(nèi)部電路圖圖2.4前置放大器的接線端子圖2.3步進電機及其驅動芯片的選型2.3.1步進電機選型步進電機分類:1)按步進電機輸出扭矩的大小,可分為快速步進電機與功率步進電機;2)按勵磁相數(shù),可分為二相、三相、四相、五相甚至八相;3)按其運動方式,分旋轉式、直線式、平面運動式和滾切運動式;4)按結構,可分為單段式(徑向式)、多段式(軸向式)、印刷繞組式;5)按工作原理,可分為反應式、電磁式、永磁式、永磁感應子式(混合式)步進電機,其中反應式和混合式步進電機比較常用。永磁式式步進電機一般為兩相,轉矩和體積較小,步進角一般為7.5度或15度;反應式步進電機一般為三相,可實現(xiàn)大轉矩輸出,步進角一般為1.5度,但噪聲和振動都很大。反應式步進電機的轉子磁路由軟磁材料制成,定子上有多相勵磁繞組,利用磁導的變化產(chǎn)生轉矩?;旌鲜讲竭M電機是指混合了永磁式和反應式的優(yōu)點。它又分為兩相和五相:兩相步進角一般為1.8度而五相步進角一般為0.72度。本設計選用北京前蘇電子科技公司的42HS003型兩相混合式步進電機,其性能參數(shù)如表2.5,其靜轉矩為0.45Nm,可以直接用于驅動混水閥轉子,其轉矩滿足家用自來水水壓條件下直徑25mm的水管混水要求。圖2.542HS003型步進電機性能參數(shù)2.3.2步進電機驅動芯片選型本設計選用ST公司生產(chǎn)的L298型步進電機驅動芯片。L298是一種高電壓、大電流電機驅動芯片,該芯片的主要特點是:工作電壓高,最高工作電壓可達46V;輸出電流大,瞬間峰值電流可達3A,持續(xù)工作電流為2A;內(nèi)含兩個H橋的高電壓大電流全橋式驅動器,可以來驅動直流電機和步進電機、繼電器、線圈等感性負載;采用標準TTL邏輯電平信號控制;具有兩個使能控制器,在不受輸入信號影響的情況下允許或禁止器件工作;有一個邏輯電源輸入端,使內(nèi)部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。L298有兩種封裝,如圖2.6。圖2.6L298兩種封裝形式的管腳圖2.4混水閥選型由于市場上沒有采用步進電機驅動的混水閥,因此需要設計或組裝一個??梢再徺I混水閥的主要配件,如閥體和閥芯(如圖2.7)以及相關密封件,然后采用機械連接的方式或者用聯(lián)軸器將步進電機轉軸與閥芯轉子連接起來,從而組成一個用步進電機驅動的混水閥。圖2.7混水閥的閥體和閥芯2.5CPU選型因為本人對PIC16F87X型單片機比較熟悉,故選用Microchip公司的PIC16F877型單片機作為系統(tǒng)的控制芯片,如圖2.8.圖2.8PIC16F877的管腳圖單片機的主要性能:采用高性能RISC;僅有35條單字指令,除程序分支指令為兩個周期外,其余均為單周期指令;運行速度:DC-20MHz時鐘輸入,DC-200ns指令周期;8K*14個FLASH程序存儲器,368*8個數(shù)據(jù)存儲器字節(jié),256*8EEPROM數(shù)據(jù)存儲字節(jié);14個中斷源;低功耗:在5V,4MHz時典型值小于2mA;在3V,32KHz時典型值小于;典型的穩(wěn)態(tài)電流值小于。具有10位的內(nèi)部ADC模塊。2.6系統(tǒng)整體結構示意圖和設計原理圖2.9浴池水溫控制系統(tǒng)整體結構示意圖設計原理說明:按鍵、LED指示燈和數(shù)碼管顯示部分是系統(tǒng)的人機接口模塊。按鍵用于設定浴池水溫值或進行功能切換,LED指示燈指示當前工作狀態(tài),數(shù)碼管顯示用水量、浴池當前水溫或設定溫度。AD590檢測浴池的水溫和,LWGY檢測用水量,兩個傳感器的檢測信號經(jīng)PIC單片機處理后可由數(shù)碼管顯示。此外,系統(tǒng)根據(jù)溫度傳感器的測量值與設定值之差,由單片機輸出控制信號,經(jīng)L298芯片轉換后驅動步進電機調節(jié)混水器,使浴池水溫到達設定值。圖2.10系統(tǒng)設計原理框圖第三章硬件設計3.1按鍵與顯示電路該部分電路包括4個按鍵,命名為KEY1,KEY2,KEY3,KEY4;4位8段數(shù)碼管顯示,以及一個LED指示燈。PIC單片機通過8155控制數(shù)碼管的顯示。8155的B口和數(shù)碼管中所有LED的a、b、c、d、e、f、g、DP引線相連,各個數(shù)碼管的控制端和8155的C口相連,即B口為字形口,C口為字位口。圖3.1按鍵與顯示電路3.2溫度與流量檢測電路系統(tǒng)選用的PIC16F877單片機內(nèi)部包含10位的ADC模塊,具有8路模擬信號輸入通道,因此,不需要擴展外圍ADC芯片。圖3.2溫度與流量檢測電路3.3步進電機驅動及控制電路該部分電路如圖3.3所示,時鐘電路的晶振頻率為4MHz,復位電路選用常用的綜合復位電路。L298的4個輸出端兩兩驅動步進電機的兩個線圈,單片機的端口C產(chǎn)生步進電機所需要的脈沖信號和控制信號,RC0~RC3分別與L298芯片的INPUT1~INPUT4相連,脈沖信號由此端口進入驅動芯片。圖3.3基于L298的兩相步進電機驅動電路第四章軟件設計4.1控制器外觀設計以及按鍵、顯示程序流程:控制器外觀設計操作面板說明:器件名稱功能按鍵“復位”使系統(tǒng)復位按鍵“ON/OFF”系統(tǒng)電源開關按鍵“水溫設定”按一下進入溫度設定,再按一下確認退出按鍵“顯示切換”使顯示器顯示水溫或用水量按鍵“降溫”在“水溫設定”狀態(tài)下,按一下,降低一攝氏度按鍵“升溫”在“水溫設定”狀態(tài)下,按一下,升高一攝氏度4位8段數(shù)碼管顯示器顯示水溫或用水量LED指示燈亮:表示當前顯示數(shù)據(jù)為溫度;暗:表示當前顯示數(shù)據(jù)為用水量:按鍵與顯示程序流程圖4.1按鍵與顯示程序流程4.2溫度檢測方法及程序流程AD590屬于電流輸出型溫度傳感器,在的溫度范圍內(nèi),它相當于一個高阻電流源,電流溫度靈敏度。經(jīng)10K歐電阻之后對應于0~100度溫度范圍的電壓是2.732V~3.732V,經(jīng)10位A/D轉化后的測量精度滿足0.1度的設計要求。PIC16F877的端口A的RA0為溫度傳感器模擬量的輸入引腳,A/D轉換后的結果可由顯示程序調用。圖4.2溫度采集程序流程圖4.3流量檢測方法及程序流程LWGY25C0A5T0型渦輪流量傳感器的輸出為占空比為50%的脈沖,流量計算公式:,其中為傳感器常數(shù),傳感器在出廠時該常數(shù)由廠家標定給出。若用一個計數(shù)器記錄脈沖數(shù)N,則任意時刻的用水量就可由上述公式求出。圖4.3流量檢測程序流程4.4步進電機的控制算法及程序流程對混水器采用模糊控制方法。模糊控制原理:模糊控制器的輸入為測得溫度與設定溫度的偏差以及偏差的變化量,輸出為步進電機的控制量——脈沖個數(shù)及頻率。將E分為四個模糊子集B(大),M(中),S(小),N(負),對應溫度變差為:。分為三個模糊子集P(正),Z(零),N(負)。對應的偏差變化量為:;控制器輸出的脈沖頻率分為四個模糊子集B(快),M(中),S(慢),Z(零)。模糊控制規(guī)則見表4.1。模糊控制程序:將系統(tǒng)本次測得的溫度值與設定的溫度值相減得到溫度的偏差E,并存儲到存儲單元TMS,將本次測得溫度減去前次測得的溫度,得到溫度變差的變化量,將存入存儲單元TMCB。根據(jù)E以及可以制定模糊控制表。例如將E的四個模糊子集N、S、M、B分別用數(shù)字-1、1、3、6表示,的三個模糊子集N、Z、P分別用數(shù)字-1、0、1表示,則根據(jù)模糊控制規(guī)則表4.1,可以得到表4.2所示的判定函數(shù)。將表4.2與表4.1對比可以看出:當時,輸出頻率為Z;當時,輸出頻率為S;當時,輸出頻率為M,當時,輸出頻率為B。根據(jù)以上分析,可以編寫模糊控制程序。實際應用時,可根據(jù)控制效果制定適合的模糊控制規(guī)則,如增加模糊子集或改變相關模糊子集對應的數(shù)字等。表4.1:模糊控制規(guī)則表4.2圖4.4混水閥控制程序流程4.5系統(tǒng)軟件流程系統(tǒng)采用前后臺的軟件結構,后臺程序用于按鍵掃描,顯示水溫和用水量,在CPU空閑時間進行溫度采集;前臺程序即中斷服務程序,利用T0產(chǎn)生周期為1s的定時中斷,在中斷周期內(nèi)調節(jié)混水閥,使浴池溫度趨近設定溫度;利用RA1作為外部中斷累計流量傳感器脈沖數(shù)。圖4.5系統(tǒng)軟件流程4.6應用子程序代碼;***************************************************************************步進電機的控制程序;***********************************************************************PCL EQU 02H ;定義PCL寄存器地址STATUS EQU 03H ;定義狀態(tài)寄存器地址PORTC EQU 07H ;定義端口C的數(shù)據(jù)寄存器地址PORTD EQU 08H TRISC EQU 87H TRISD EQU 88H ;定義端口D的方向寄存器INTCON EQU 0BH ;定義INTCON控制寄存器CCP1IF EQU 2H CCP1CON EQU 17H CCPR1L EQU 0EH CCPR1H EQU 0FH PIR1 EQU 0CH ;定義第一外設中斷標志寄存器PIR2 EQU 0DH TMR1L EQU 0EH ;定義TMR1LTMR1H EQU 0FH ADRESH EQU 1EH ;定義ADRESHADCON0 EQU 1FH ;定義數(shù)模轉換器ADC的寄存器PIE1 EQU 8CH ;定義第一外設中斷屏蔽寄存器PIE2 EQU 8DH ADCON1 EQU 9FH ;定義數(shù)模轉換器ADC的寄存器T1CON EQU 10H ;定義TIMER1控制寄存器RP1 EQU 06H RP0 EQU 05H Z EQU 02H C EQU 00H TMR1IF EQU 00H DATA1 EQU 20H ;定義外循環(huán)變量DATA2 EQU 21H ;定義內(nèi)循環(huán)變量TEMP EQU 22H W_TEMP EQU 25H S_TEMP EQU 26H SCALER EQU 27H AD_STATUS EQU 28H SIGN EQU 22H SUN EQU 24H INDEX EQU 25H W_BUF EQU 26H VALUE EQU 27H NUM EQU 28H COUNT1 EQU 1AH ;定義存儲外循環(huán)次數(shù)的變量COUNT2 EQU 0FFH ;定義存儲內(nèi)循環(huán)次數(shù)的變量;***************************主程序開始********************************* ORG 00H NOP GOTO MAIN ORG 04H ;中斷向量的地址為04H GOTO INT ;跳到中斷子程序;*****************************中斷子程序開始****************************INT MOVWF W_TEMP ;W寄存器的內(nèi)容存儲 SWAPF STATUS,0 ;將STATUS寄存器中高低字節(jié)交換 MOVWF S_TEMP ;交換后的結果存入S_TEMP BCF STATUS,RP0 BCF STATUS,RP1 BTFSC PIR1,TMR1IF ;察看是否TMR1中斷 GOTO NEXT1 GOTO NEXT2 NEXT1 BTFSC SIGN,0 ;察看SIGN的第0位是否為0 GOTO NEXT3 BCF PORTC,2 NEXT3 COMF SIGN,1 ;SIGN取反 BCF PIR1,TMR1IF ;清中斷標志位 CLRF TMR1L ;對TMR1重新輸入值0F548H MOVLW 0F5H MOVWF TMR1H MOVLW 48H MOVWF TMR1L NEXT2 SWAPF S_TEMP,0 ;中斷前的STATUS的內(nèi)容,重新裝入 MOVWF STATUS SWAPF W_TEMP,1 ;中斷前的W的內(nèi)容重新裝入 SWAPF W_TEMP,0 RETFIE;*******************************中斷子程序結束**************************;********************************主程序開始*****************************MAIN CALL INITIAL ;調初始化子程序LOOP CALL AAA ;調用AAA輸出子程序 NOPS_0 BTFSS SIGN,0 ;SIGN為1,則轉到S_1 GOTO S_0 S_1 BTFSC SIGN,0 ;SIGN為0,則轉到LOOP GOTO S_1 GOTO LOOP ;***************************************************************************;***************************初始化子程序開始*********************************INITIAL BCF STATUS,RP0 BCF STATUS,RP1 CLRF W_TEMP CLRF W_BUF CLRF SIGN BSF STATUS,RP0 BCF STATUS,RP1 BCF TRISC,2 BCF STATUS,RP0 BCF STATUS,RP1 CLRF T1CON MOVLW 0F5H ;將TMR1設為0F548H MOVWF TMR1H MOVLW 048H MOVWF TMR1L CLRF INTCON ;清中斷標志 BSF INTCON,6 ;中斷使能 BSF STATUS,RP0 BCF STATUS,RP1 BSF PIE1,0 ;TMR1中斷使能 BCF STATUS,RP0 BCF STATUS,RP1 CLRF PIR1 ;清中斷標志 BSF STATUS,RP0 BCF STATUS,RP1 BSF T1CON,0 ;開TMR1 BCF STATUS,RP0 BCF STATUS,RP1 BSF INTCON,7 BCF PORTC,2 CLRF NUM CLRF VALUE CLRF NUM CLRF INDEX RETURN;***************************初始化子程序結束*********************************;***************************AAA輸出子程序***********************************AAA BCF STATUS,RP0 BCF STATUS,RP1 MOVF NUM,0 BTFSS STATUS,Z GOTO BBB CLRF NUM BTFSC INDEX,4 CLRF INDEX CALL TABLE MOVWF VALUE INCF INDEX,0 BBB MOVF VALUE,0 ADDWF NUM,0 ;VALUE+SUM存到W中 BTFSC STATUS,C ;測試是否有進位 GOTO NEXT4 BCF PORTC,2 RETURNNEXT4 BSF PORTC,2 RETURN TABLE MOVF INDEX,W ADDWF PCL,F RETLW 00H RETLW 04H RETLW 08H RETLW 0CH RETLW 10H RETLW 14H RETLW 14H RETLW 14H RETLW 14H RETLW 14H RETLW 14H RETLW 0CH RETLW 08H RETLW 04H RETLW 00H;***************************AAA輸出子程序結束********************;***************************主程序結束********************END實驗1:ARM的GPIO實驗板上有3個按鍵分別接到P2.11,P2.12,P2.13和3個發(fā)光二極管分別接到P2.2,P2.3,P2.4編寫程序實現(xiàn):1、上電后3個LED燈全部點亮2、按一下KEY1,LED1熄滅,再按一下KEY1,LED1點亮. 同理KEY2、KEY3控制LED2、LED3.3、(選做)同時按下KEY1和KEY2,3個燈開始間隔1秒依次點亮和熄滅,再按下KEY3,退出閃爍狀態(tài)。實驗程序:第1,2題的程序:#defineLED1 (1<<2) //P2.2#defineLED2 (1<<3) //P2.3#defineLED3 (1<<4) //P2.4#defineKEY1 (1<<11) //P2.11#defineKEY2 (1<<12) //P2.12#defineKEY3 (1<<13) //P2.13PINSEL4 = 0x;PINMODE4 = 0X;FIO2DIR = 0xffff00ff;intmain(){ ucharflagk1=0,flagk2=0,flagk3=0; ………… ………… //開機全亮 FIO2SET=LED1|LED2|LED3; DelayNS(500); while(1) { if((FIO2PIN&KEY1)==KEY1) { DelayNS(20); if(flagk1==0) {FIO2SET=LED1;flagk1=1;} else{FIO2CLR=LED1;flagk1=0;} } elseif((FIO2PIN&KEY2)==KEY2) { DelayNS(20); if(flagk2==0) {FIO2SET=LED2;flagk2=1;} else{FIO2CLR=LED2;flagk2=0;} } elseif((FIO2PIN&KEY3)==KEY3) { DelayNS(20); if(flagk3==0) {FIO2SET=LED3;flagk3=1;} else{FIO2CLR=LED3;flagk3=0;} } } return(0);}=========================================第3題的程序:用外部中斷方式實現(xiàn)#defineLED1 (1<<2) //P2.2#defineLED2 (1<<3) //P2.3#defineLED3 (1<<4) //P2.4#defineKEY1 (1<<11) //P2.11#defineKEY2 (1<<12) //P2.12#defineKEY3 (1<<13) //P2.13PINSEL4 = 0x;PINMODE4 = 0X;FIO2DIR = 0xffff00ff;intmain(void){ …… //p2.13作為外部中斷設置 EXTMODE =0x08; EXTPOLAR =0x08; //上升沿觸發(fā) IRQEnable(); //IRQ中斷使能 //初始化外部中斷1 VICIntSelect=0x00; //所有中斷通道設置為IRQ中斷 VICVectPri17=0x00; //設EINT3中斷優(yōu)先級為最高 VICVectAddr17=(uint32)IRQ_EINT3; //設置中斷服務程序地址 EXTINT =1<<3; //清EINT3中斷標志 VICIntEnable=1<<17; //使能EINT3中斷 //開機全亮 FIO2SET=LED1|LED2|LED3; DelayNS(500); while(1) { if(((FIO2PIN&KEY1)==KEY1)&&((FIO2PIN&KEY2)==KEY2)) { DelayNS(20); FIO2CLR=LED1|LED2|LED3; while(1) { FIO2SET=LED1;FIO2CLR=LED2|LED3; DelayNS(100); FIO2SET=LED2;FIO2CLR=LED1|LED3; DelayNS(100); FIO2SET=LED3;FIO2CLR=LED2|LED1; DelayNS(100); } } } return(0);}實驗2::彩色液晶實驗顯示屏為2.4寸,320×240,65536色TFT液晶屏,數(shù)據(jù)線控制線見原理圖。要求編寫程序實現(xiàn):1、全屏顯示紅色,綠色,藍色,黃色,可通過按鍵切換。2、能夠顯示數(shù)字,字母和漢字,字體和大小可調,位置可控。3、能夠顯示小幅的彩色圖片。實驗程序:第1題:用KEY1控制屏幕的顏色#defineKEY1 (1<<11) //P2.11PINSEL4 = 0x;PINMODE4 = 0X;FIO2DIR = 0xffff00ff;==========================================//背景顏色控制函數(shù)voidMy_BackGround(unsignedintmycolor){unsignedinti,j;Init_R61505U_2();for(i=0;i<240;i++){for(j=0;j<320;j++){ WMLCDDATA(mycolor); } }}========================================intmain(void){ uint8i=0; …… while(1) { if((FIO2PIN&KEY1)==KEY1) {DelayNS(20); if(i==0) { My_BackGround(GREEN);i=1; } elseif(i==1) { My_BackGround(RED);i=2; } elseif(i==2) { My_BackGround(BLUE);i=3; } else { My_BackGround(YELLOW);i=0; } } }}===============================================第2題:#defineKEY1 (1<<11) //P2.11#defineKEY2 (1<<12) //P2.12#defineKEY3 (1<<13) //P2.13PINSEL4 = 0x;PINMODE4 = 0X;FIO2DIR = 0xffff00ff;intmain(void){ uint8mode=0;//mode0,1,2對應位置,大小,字體控制,KEY1改變mode uint8i=0,j=0; …… StartScreen(); while(1) { if((FIO2PIN&KEY1)==KEY1) { DelayNS(20); if(mode==0)//顯示位置控制 { while(1) { if((FIO2PIN&KEY2)==KEY2){DelayNS(20);i=i+0.5;}//KEY2,KEY3控制位置 if((FIO2PIN&KEY3)==KEY3){DelayNS(20);j=j+0.5;} if((FIO2PIN&KEY1)==KEY1){DelayNS(20);mode=1;break;}//再按KEY1退出顯示位置控制 }
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人民版道德與法治九年級上冊第七課《生命之間》配套聽課評課記錄
- 湘教版七年級數(shù)學下冊第2章2.1.2冪的乘方與積的乘方(第1課時)聽評課記錄
- 人教版七年級數(shù)學上冊:1.2.1《有理數(shù)》聽評課記錄
- 冀教版數(shù)學九年級上冊《平行線分線段成比例》聽評課記錄1
- 《兩漢的科技和文化》聽課評課記錄1(新部編人教版七年級上冊歷史)
- 蘇教版四年級數(shù)學下冊期末復習口算練習題三
- 湘教版數(shù)學八年級上冊《小結練習》聽評課記錄
- 聽評課記錄數(shù)學二年級
- 小學生營養(yǎng)餐飯?zhí)霉ぷ魅藛T聘用合同范本
- 人員派遣租賃協(xié)議書范本
- (正式版)FZ∕T 80014-2024 潔凈室服裝 通 用技術規(guī)范
- 新起點英語二年級下冊全冊教案
- 【幼兒園戶外體育活動材料投放的現(xiàn)狀調查報告(定量論文)8700字】
- 剪映專業(yè)版:PC端短視頻制作(全彩慕課版) 課件 第3章 短視頻剪輯快速入門
- 湖南省長沙市開福區(qū)青竹湖湘一外國語學校2023-2024學年九年級下學期一模歷史試題
- 帶狀皰疹與帶狀皰疹后遺神經(jīng)痛(HZ與PHN)
- 漢密爾頓抑郁和焦慮量表
- 風電場事故案例分析
- 前列腺癌的診斷與治療
- 人教版八年級數(shù)學初中數(shù)學《平行四邊形》單元教材教學分析
- EPC項目設計及施工的配合
評論
0/150
提交評論