freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的水土流失監(jiān)測系統(tǒng)軟件設(shè)計(jì)(編輯修改稿)

2025-07-17 12:43 本頁面
 

【文章內(nèi)容簡介】 樹型體系結(jié)構(gòu)有以下三種層次: (1)目標(biāo)。它處于樹型體系結(jié)構(gòu)的最高層。用戶定義想要建立的應(yīng)用程序的不同目標(biāo)系統(tǒng)版本。對于簡單的應(yīng)用程序,可能只需要兩種版本:調(diào)試版(Debug)和發(fā)布版(Release)。 (2)組。組處于樹型體系結(jié)構(gòu)的中間層。它的作用是將一個(gè)或多個(gè)相關(guān)的源程序集合在一起。一個(gè)組可以惟一地屬于某個(gè)目標(biāo),也可以分屬于多個(gè)目標(biāo)。每一種目標(biāo)包含一個(gè)或多個(gè)組。 (3)源程序。源程序處于樹型體系結(jié)構(gòu)的最低層。一般地,每一個(gè)源程序可以惟一地屬于一個(gè)組,也可以屬于多個(gè)組。但是屬于多個(gè)組的源程序由于連接時(shí)可能出錯(cuò),因而這種做法是不推薦的。當(dāng)用戶以項(xiàng)目管理模式進(jìn)行開發(fā)時(shí),總有一個(gè)選定的當(dāng)前目標(biāo)。在項(xiàng)目窗口中只有作為當(dāng)前目標(biāo)成員的組以及它們所包含的文件才是可見的。也只有這些文件將生成代碼,并通過連接,形成代碼輸出。 在IAR Embedded Workbench中可以方便地進(jìn)入高級語言交互式調(diào)試器CSPY,CSPY的工作方式有三種: (1)模擬方式(Simulation)。在這種方式下,目標(biāo)系統(tǒng)的工作過程由調(diào)試主機(jī)以軟件模擬的方式來實(shí)現(xiàn),用戶可以通過各種不同的窗口來觀察調(diào)試程序的運(yùn)行過程,即在目標(biāo)硬件系統(tǒng)產(chǎn)生之前,驗(yàn)證程序的設(shè)計(jì)思想和程序結(jié)構(gòu)。 (2)仿真方式(Emulation)。在這種方式下,目標(biāo)硬件系統(tǒng)通過JTAG接口與調(diào)試主機(jī)連接起來,使整個(gè)調(diào)試過程在目標(biāo)硬件系統(tǒng)的真實(shí)運(yùn)行下進(jìn)行,不僅可以驗(yàn)證程序的設(shè)計(jì)思想和程序結(jié)構(gòu),還可以實(shí)際判斷目標(biāo)系統(tǒng)的硬件設(shè)計(jì),調(diào)試完成后產(chǎn)生的程序代碼可以在最終的目標(biāo)系統(tǒng)上運(yùn)行。 (3)RomMonitor方式。這種方式是采用調(diào)試主機(jī)通過RS232接口聯(lián)機(jī)的方法進(jìn)行調(diào)試,并要求將調(diào)試程序暫時(shí)存入RAM中。這種方式使用較少。 第三章 水土流失監(jiān)測系統(tǒng)程序設(shè)計(jì) 根據(jù)功能的監(jiān)控系統(tǒng)設(shè)計(jì)的水土流失,可以將軟件系統(tǒng)的功能分為以下幾個(gè)模塊: (1)主控制程序模塊 (2)按鍵中斷控制程序模塊 (3)定時(shí)器控制程序模塊 (4)傳感器控制程序模塊 (5)DSC1302模塊 (6)液晶顯示模塊 (7)鍵盤控制模塊1 .監(jiān)控程序模塊 傳 感 器 獨(dú)立鍵盤 電源 MSP430 單片機(jī) 時(shí)鐘顯示 液晶顯示 圖一 水土流失監(jiān)測系統(tǒng)設(shè)計(jì)框圖 MSP430具有很豐富的程序中斷源設(shè)計(jì),在程序的設(shè)計(jì)過程中可以任意的調(diào)用,使用方式比較的靈活。如果系統(tǒng)處于空閑的狀態(tài)時(shí)通過對中斷的調(diào)用,可以迅速的進(jìn)入工作模式,時(shí)間只需要5us。主要特性:(1) 五種省電模式,快速從省電模式喚醒;(2) 低電壓供電:;耗電電流:(掉電工作模式:;待機(jī)模式:);(3) 具有16位的RISC結(jié)構(gòu)的CPU和外圍的設(shè)備和存儲器的鏈接是通過總線鏈接的;(4) 三個(gè)時(shí)鐘信號對應(yīng)了三個(gè)時(shí)鐘的模塊:ACLK、MCLK、SMCLK。(5) 多達(dá)64KB尋址空間,包括ROM、RAM、Flash。(6) 只有三種指令的格式,并且其全部都為正交結(jié)構(gòu);(7) 共有七種尋址方式,這樣可以進(jìn)行字或者字節(jié)尋址(8) 具有多達(dá)16個(gè)中斷源(如定時(shí)器、串行口、PPWDT等),多級優(yōu)先級,可以實(shí)現(xiàn)中斷嵌套。(9) 串行通信接口USART可設(shè)置為同步(SPI)、異步(UART)或模式,發(fā)送與接收有各自的中斷入口地址;(10) 定時(shí)器有基本定時(shí)器、定時(shí)器A、定時(shí)器B和看門狗定時(shí)器,能實(shí)現(xiàn)事件定時(shí)、計(jì)數(shù)、PWM等功能;(11) 具有16位看門狗功能;(12) 內(nèi)部包含了A/D轉(zhuǎn)換器和D/A轉(zhuǎn)換器;(13) 在單片機(jī)上就集成LCD驅(qū)動(dòng)器、硬件乘法器、比較器、DMA控制器及Scan IF模塊等,方便使用。 響應(yīng)中斷 MSP430初始化 開始 液晶顯示初始化 中斷 顯示初始化 CPU關(guān)閉,進(jìn)入休眠模式等待中斷 Y 圖二 主程序設(shè)計(jì)流程圖 主程序所要實(shí)現(xiàn)的動(dòng)能是對單片機(jī)以及外圍設(shè)備的控制,在上電以后對單片機(jī)以及外圍設(shè)備首先運(yùn)行的程序,然后它實(shí)現(xiàn)的主要功能是對與外圍設(shè)備與單片機(jī)連接的各個(gè)原件端口的進(jìn)行初始化。由于MSP430具有低功耗的特點(diǎn),要實(shí)現(xiàn)這個(gè)功能就要使單片機(jī)的CPU在沒有任務(wù)的時(shí)候進(jìn)入休眠狀態(tài)以保持低功耗,當(dāng)有執(zhí)行操作就必須通過中斷來實(shí)現(xiàn)對CPU的喚醒,所以在主程序的控制中酒必須加入各種中斷的定義,并在運(yùn)行過程中開啟中斷和休眠模式。如前面所了解到的關(guān)于MSP430系列單片機(jī)的看門狗定時(shí)功能,在單片機(jī)的初始過程中看門狗會(huì)在系統(tǒng)出現(xiàn)錯(cuò)誤或者看門狗溢出時(shí)將系統(tǒng)重啟,因此要將看門狗定時(shí)器在這個(gè)過程中關(guān)閉,同時(shí)也要將鍵盤,顯示器,傳感器,日歷/時(shí)鐘等相連的連接端口也要進(jìn)行初始化并且設(shè)置其輸入/輸出形式,然后再初始化定時(shí)器功能。 開始 關(guān)閉看門狗傳感器、液晶、按鍵端口初始化 定時(shí)器A。B初始化 返回1 按鍵中斷程序設(shè)計(jì)流程圖、B程序設(shè)計(jì)MSP430內(nèi)部具有很多的定時(shí)器功能,例如看門狗WDT、基本定時(shí)器、定時(shí)器A、定時(shí)器B和八位的定時(shí)器/計(jì)數(shù)器等。定時(shí)器的作用是實(shí)現(xiàn)程序的延遲、脈寬的測量、頻率的測量、定時(shí)控制和信號檢測的和發(fā)生等,除此外定時(shí)器A還具有一個(gè)功能那就是用作可編程波特率發(fā)生器,在具有多種任務(wù)的系統(tǒng)中也可以用來做一個(gè)中斷的信號實(shí)現(xiàn)對任務(wù)的停止。但是看門狗WDT定時(shí)器只是完成對MSP430內(nèi)部定時(shí)系統(tǒng)和檢測系統(tǒng)完成的一種模塊,當(dāng)程序發(fā)生故障時(shí)能使受控系統(tǒng)重新啟動(dòng),也可以作為一般內(nèi)部定時(shí)器使用??撮T狗的主要特點(diǎn)如下:(1) 需要一個(gè)命令才能對其一定的操作;(2) 包含定時(shí)器和看門狗兩種模式;(3) WDT是一個(gè)16位計(jì)數(shù)器;(4) 有8種可選的定時(shí)時(shí)間。 我們可以通過WDTCLT寄存器中的TMSEL和HOLD位來控制WDT的看門狗模式或者定時(shí)器模式或低功耗模式。 (1)定時(shí)器模式 當(dāng)TMSET=1是選擇定時(shí)器模式。在系統(tǒng)當(dāng)中設(shè)定好了中斷的條件后,看門狗WDT將會(huì)按照當(dāng)初設(shè)定的定時(shí)時(shí)間實(shí)現(xiàn)周期性的不斷地產(chǎn)生中斷信號,在定時(shí)器響應(yīng)了中斷以后就會(huì)將存儲器中的中斷標(biāo)志位清零。在定時(shí)形式下要注重定時(shí)期間的改變應(yīng)伴隨計(jì)數(shù)器的清零工作,而且要在相同的命令下實(shí)行。 (2)低功耗模式 看門狗模該系統(tǒng)不需要看門狗,你可以設(shè)置保持= 1關(guān)閉定時(shí)器,它可以減少功率消耗模式。 (3) 當(dāng)看門狗定時(shí)器控制寄存器tmsel = 0指WDT工作,這種工作模式的看門狗,在這種操作模式,如果在看門狗到達(dá)定時(shí)的時(shí)間或者加入了一句錯(cuò)誤的指令那么這樣就會(huì)觸發(fā)PUC信號,那么看門狗的兩個(gè)寄存器WDTCNT和WDTCTL里面的所有的內(nèi)容將會(huì)被全部的清除,這樣看門狗模式就會(huì)被自動(dòng)的打開然后近入到看門狗模式。為了是一整條程序順利的進(jìn)行下去,在這個(gè)過程中就必須周期性的使用看門狗的初始化程序不停地對看門狗的寄存器進(jìn)行清零,防止計(jì)時(shí)的溢出。 TI公司推出的所有的MSP430系列的FLASH型的單片機(jī)都會(huì)含有定時(shí)器A和定時(shí)器B,定時(shí)器A是由一個(gè)16位的定時(shí)器和多路捕獲/比較通道組成的,其中的各個(gè)通道都可以對其進(jìn)行單獨(dú)的控制,這樣我們就能可以有多路的選擇余地。由于在本系統(tǒng)中定時(shí)器A和定時(shí)器B要分別完成兩個(gè)不同的控制。按照實(shí)際的需要,就是電路里傳感器的要求,當(dāng)現(xiàn)實(shí)某一路的傳感器數(shù)據(jù)時(shí)時(shí)間就要繼續(xù)計(jì)時(shí)而傳感器則要進(jìn)行停止的要求所以根據(jù)返回鍵的要求對操作進(jìn)行終止,然后返回到此前的中斷處,繼續(xù)進(jìn)行傳感器數(shù)據(jù)的循環(huán)顯示,通過程序來使用計(jì)時(shí)器A來控制傳感器數(shù)據(jù)的轉(zhuǎn)換和顯示,計(jì)時(shí)器B來進(jìn)行對時(shí)間的顯示,每一秒鐘進(jìn)行一次中斷并且將其通過線路顯示出來。4. 傳感器程序設(shè)計(jì)1) .溫度傳感器 對所有的用單總線控制的ROM操作來說,它的開始都需要一個(gè)對所有東西的初始化的清零程序,由此開始進(jìn)行其他的控制。而初始化的意思就是作為控制系統(tǒng)的單片機(jī)系統(tǒng)通過電位把總線的所有接口拉低一段時(shí)間這樣保證所有的管腳管口都表現(xiàn)為低電平,然后大概保持480us,之后就再把所有的電平拉到高位,隨后判斷接口的電平如果表現(xiàn)為‘1’則表示沒有器件在位,相反如果表現(xiàn)為‘0’則有器件在位。當(dāng)有器件在位的時(shí)候通過系統(tǒng)加一個(gè)延遲,然后再進(jìn)行下面的操作指令,由于這個(gè)過程中有按鍵的選擇所以需要一個(gè),所以在系統(tǒng)設(shè)計(jì)中要加一個(gè)響應(yīng)按鍵中斷的程序,對所選的按鍵值判斷和處理。unsigned char ow_reset(uint n) { unsigned char presence。 P4DIR=0xff。 //SET TO OUTPUT P4OUT=0xff。 P4OUT=0x00。 //pull dQ line low _NOP()。 _NOP()。 delay(100)。 // leave it low for 600us P4OUT=0xff。 // allow line to return high P4DIR=0x00。 //SET TO INPUT while(P4IN!=0)。 while(P4IN==0) { presence =0。 // get presence signal return(presence)。 // presence signal returned } } // 0=presence,1 = no part這是對溫度傳感器的初始化程序 DS18B20的還具有很多針對溫度的變換的指令,例如可以完成對溫度的讀取和溫度的轉(zhuǎn)換,還可以對指令進(jìn)行匹配序列號等操作指令,但是這些指令的操作都是針對都是DS18B20的寄存器的操作所進(jìn)行的,并且這些針對溫度傳感器的控制都基本上是對其內(nèi)部的寄存器的操作,而且這些操作都是都是通過溫度傳感器的讀/寫操作進(jìn)行的,DS18B20的每一條指令都是八個(gè)字節(jié)但是DS18B20是一個(gè)單總線的傳感器,所以每一次的指令的發(fā)送都是一次性的進(jìn)行八次的發(fā)送,所以用程序編寫傳感器的發(fā)送或者接受數(shù)據(jù)時(shí)要用循環(huán)語句進(jìn)行數(shù)據(jù)的八次循環(huán),加上每次必須對數(shù)據(jù)的‘0’或者‘1’進(jìn)行判斷操作。uchar DS18B20_ReadByte(uint n) //讀取ds18b20的一個(gè)字節(jié){ uchar u。 uchar q P4DIR=0xff。 //SET TO OUTPUT Switch(n) { case 0: for(q=0。q8。q++) { u=u1。 P4OUT amp。=~BIT0。 _NOP()。_NOP()。 P4OUT |=BIT0。 P4DIR amp。=~BIT0。 //SET TO INPUT _NOP()。_NOP()。 if((P4INamp。0x08)==0x08) u=u|0x80。 else u=uamp。0x7f。 delay(20)。 P4DIR |=BIT0。 //SET TO OUTPUT P4OUT |=BIT0。 } break。 } return u。 }這是對DS18B20溫度傳感器的一個(gè)讀字節(jié)的程序。 與讀取數(shù)據(jù)一樣當(dāng)對傳感器寫入一個(gè)數(shù)據(jù)時(shí)也需要對它進(jìn)行‘0’和‘1’的判斷,在這個(gè)過程中要注意延遲時(shí)間的長短問題。void DS18B20_WriteByte (uint n,uchar wr) //寫入一個(gè)字節(jié){ uchar i。 P4DIR=0xff。 //SET TO OUTPUT switch (n) { case 0: for (i=0。i8。i++) { P4OUT amp。=~BIT0。 _NOP()。 if(wramp。0x01) P4OUT |=BIT0。 else P4OUT amp。=~BIT0。 delay(2)。 //delay 45 uS //5 _NOP()。 _NOP()。 P4OUT |=BIT0。 wr = 1。 }break。 } }
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1