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

正文內(nèi)容

嵌入式溫度監(jiān)測與警報系統(tǒng)設(shè)計畢業(yè)設(shè)計論文(編輯修改稿)

2024-07-25 15:05 本頁面
 

【文章內(nèi)容簡介】 將會被懸起等待中斷結(jié)束,所以能保證任務(wù)及時的得到響應(yīng)。Task_wave任務(wù)將溫度數(shù)據(jù)顯示成折線圖,便于直觀了解一段時間的溫度變化。當(dāng)溫度值超過設(shè)定的最大最小溫度范圍后引起TASK_beep任務(wù)打開蜂鳴器報警,30秒后蜂鳴器將關(guān)閉。 主要任務(wù)分析 Task_wave任務(wù),Task_wave任務(wù)是一個循環(huán)結(jié)構(gòu),只有調(diào)用延時函數(shù)后才會引起任務(wù)切換。該任務(wù)的主要功能是通過_Wave函數(shù)實現(xiàn)折線圖的顯示。_Wave函數(shù)是繪制溫度折線圖核心函數(shù),繪制函數(shù)的主要思想是t開始賦值0,然后判斷t的值是否在4—12的區(qū)間里,由于緩沖數(shù)組長度13,顯示數(shù)據(jù)個數(shù)是10個數(shù)據(jù)點,t代表顯示數(shù)據(jù)在緩沖數(shù)組中的起始下標(biāo),e代表顯示數(shù)據(jù)在緩沖數(shù)組中的結(jié)束下標(biāo)。如果t值在[4..12]區(qū)間就代表e值需要調(diào)整成數(shù)組起始位置,然后開始繪制從起始位置t到結(jié)束位置e的十個數(shù)據(jù)值。每繪制一個數(shù)據(jù)點就需要將當(dāng)前點的x坐標(biāo)和y坐標(biāo)分別保存到pre_x和 pre_y中,以便于繪制下個點時能將兩點連接成直線。繪制完十個點后還需要調(diào)整起始位置e和t的值。調(diào)用延時函數(shù)創(chuàng)建內(nèi)存設(shè)備延時10 μs繪制折線圖開始Star按鍵按下?結(jié)束NY Task_wave任務(wù)流程圖 Task_TOUCH任務(wù)延時10 μs轉(zhuǎn)換成屏幕坐標(biāo)調(diào)用驅(qū)動函數(shù)得到坐標(biāo)開始任務(wù)切換?結(jié)束YN Task_TOUCH任務(wù)流程圖該任務(wù)每10ms調(diào)用一次。當(dāng)手或者觸摸筆在屏幕任意一點按下后,該任務(wù)將檢測到觸摸按下的坐標(biāo)值。并將坐標(biāo)值存儲在pState結(jié)構(gòu)體中,結(jié)構(gòu)體定義如下:typedef struct { int x,y; unsigned char Pressed;} GUI_PID_STATE;該結(jié)構(gòu)體的x,y分別是屏幕坐標(biāo)值,Pressed是標(biāo)記是否松開。由于該任務(wù)是10ms執(zhí)行一次,而人的觸摸時間要遠遠大于10ms,所以每個觸摸都能檢測出來。當(dāng)?shù)玫阶鴺?biāo)值后,將調(diào)用窗口管理功能的庫函數(shù)對得到的坐標(biāo)值進行判斷該坐標(biāo)位于哪個窗口控件上,并進一步判斷該控件是否有父窗口,然后將WM_NOTIFY_PARENT消息發(fā)送給對應(yīng)窗口,消息封裝形式如下:typedef struct { int MsgId; //消息Id WM_HWIN hWin; //目的窗口句柄 WM_HWIN hWinSrc; // 發(fā)送窗口句柄 union { const void* p; //消息附帶信息 int v; GUI_COLOR Color; } Data;} WM_MESSAGE;Data聯(lián)合體v變量中包含通知代碼WM_NOTIFICATION_RELEASED,當(dāng)釋放小工具后,小工具發(fā)送該通知代碼給父窗口,標(biāo)記鼠標(biāo)松開調(diào)用父窗口的回調(diào)函數(shù),在回調(diào)函數(shù)中執(zhí)行對應(yīng)的操作。 TASK_beep任務(wù)。在第一遍執(zhí)行的時候,首先會繪制坐標(biāo)軸,然后繪制刻度線,接著創(chuàng)建具有滑動條,編輯框以及按鈕資源的對話框。進入循環(huán)后,將當(dāng)前讀取的溫度值與從編輯框讀取的設(shè)定的溫度范圍值進行比較,如果超出溫度范圍便會打開蜂鳴器30秒,然后關(guān)閉蜂鳴器,接著進入延時函數(shù),等待任務(wù)切換。延時時間到了之后,便會從判斷溫度開始執(zhí)行,或者從被中斷的地方開始執(zhí)行。創(chuàng)建控制對話框繪制刻度線報警當(dāng)前溫度超出報警范圍?YN開始結(jié)束 TASK_beep任務(wù) Task_DS18B20任務(wù)。該任務(wù)核心的函數(shù)是DS18B20_Get_Temp()函數(shù),由于讀寫DS18B20的時序需要延時微秒級別,所以需要關(guān)閉中斷才能調(diào)用該函數(shù),否則其它任務(wù)可能打斷正在執(zhí)行的讀取操作導(dǎo)致失敗。讀取完畢后,需要打開中斷,以允許多任務(wù)切換。DS18B20_Get_Temp()函數(shù)的詳細分析如下。首先調(diào)用DS18B20_Start ()函數(shù)開始執(zhí)行溫度轉(zhuǎn)換操作,通過分別調(diào)用DS18B20_Rst();DS18B20_Check();DS18B20_Write_Byte(0xcc);DS18B20_Write_Byte(0x44)函數(shù)執(zhí)行上面三個步驟。DS18B20_Rst()通過拉低DQ數(shù)據(jù)線750微妙,然后釋放并延時15微妙,并接著調(diào)用DS18B20_Check()函數(shù)讀取從DS18B20返回的存在脈沖,返回0表示存在該器件,否則不存在。然后執(zhí)行第二部操作,調(diào)用DS18B20_Write_Byte0xcc),0xcc是ROM指令,表示允許總線控制器不用提供64 位ROM 編碼;接著調(diào)用DS18B20_Write_Byte(0x44);0x44是DS18B20功能指令,這條命令用以啟動一次溫度轉(zhuǎn)換。溫度轉(zhuǎn)換指令被執(zhí)行,產(chǎn)生的溫度轉(zhuǎn)換結(jié)果數(shù)據(jù)以2個字節(jié)的形式被存儲在高速暫存器中,而后DS18B20保持等待狀態(tài)。DS18B20_Write_Byte(0xbe)是讀取暫存器的指令,該指令發(fā)出便可以從DQ數(shù)據(jù)線讀取9個暫存寄存器的值。TL=DS18B20_Read_Byte(),TH=DS18B20_Read_Byte() 便是將第一和第二個字節(jié)保存到TL和TH中,而開始的兩個字節(jié)便是測得的溫度值,開始讀出的第一個字節(jié)是高位,第二個是低位。部分程序代碼如下:DS18B20_Start ()。//發(fā)出復(fù)位脈沖對芯片初始化,檢測總線上是否有芯片DS18B20_Write_Byte(0xcc)。//忽略ROM指令DS18B20_Write_Byte(0xbe)。//開始讀取暫存器溫度值TL=DS18B20_Read_Byte()。//將溫度值存儲在TL和TH中TH=DS18B20_Read_Byte()。 初始化DS18B20硬件關(guān)中斷DS18B20_Get_Temp()讀取溫度開中斷延時函數(shù)開始任務(wù)切換?結(jié)束YN Task_DS18B20任務(wù)流程圖第5章 調(diào)試結(jié)果及分析本系統(tǒng)能夠?qū)崿F(xiàn)預(yù)期的溫度監(jiān)測和報警功能,在實際應(yīng)用中,溫度監(jiān)測的主要目的就是能夠及時發(fā)現(xiàn)所監(jiān)測溫度值超出預(yù)先設(shè)定的溫度范圍并能及時解決這一問題,例如,在溫室大棚中應(yīng)用此設(shè)計,把此系統(tǒng)放在溫室大棚中并設(shè)置好溫度報警范圍,當(dāng)在控制室聽到報警聲時,能及時趕到大棚并采取相應(yīng)措施來控制溫室大棚的溫度,等到報警解除后再進行下一次的溫度檢測;我們還可以在溫度要求高的食品廠放置這種溫度監(jiān)控系統(tǒng),一旦出現(xiàn)溫度值超過正常范圍,系統(tǒng)并會報警,可以避免溫度過高導(dǎo)致食物變質(zhì)。所以說本設(shè)計達到了這樣的一個目的,一旦檢測到的溫度發(fā)生報警,我們就可以及時采取措施來解決超溫報警帶來的問題,減少不必要的損失。 系統(tǒng)初始圖。左上角標(biāo)題欄和右上角顯示作者簽名,在還未按下start按鈕前,系統(tǒng)溫度傳感器DS18B20已經(jīng)開始每隔兩秒讀取一次溫度值,并將溫度值保存到循環(huán)緩沖數(shù)組中。選擇兩秒間隔讀取溫度值是因為太過密集的采集溫度也是沒有必要的,一般場合下,例如溫室,房間等等,一段時間的溫度并不會發(fā)生劇烈變化。而且毫秒級的采樣,在某些場合下也是需要的,那種情況下就需要修改采樣時間。不過采樣時間并不會一直都是兩秒,因為Task_DS18B20的任務(wù)優(yōu)先級不是最高的,當(dāng)Task_TOUCH任務(wù)發(fā)生的時候,任務(wù)調(diào)度器會掛起Task_DS18B20任務(wù),執(zhí)行觸摸屏監(jiān)測任務(wù),所以利用循環(huán)緩沖數(shù)組保證繪制折線圖的連續(xù)。 溫度曲線圖當(dāng)按下start鍵后,此時蜂鳴器將開始工作,所以需要在按下start鍵之前設(shè)置溫度報警范圍值,start按鈕按下將顯示最近十個點的溫度折線圖,兩秒更新一次,與溫度采樣頻率相同。Stop it按鈕被按下可以關(guān)閉蜂鳴器與停止顯示溫度折線圖,star按鈕可以恢復(fù)。右上角顯示當(dāng)前溫度值,便隨溫度折線圖的頻率更新。兩個滑動條控件是分別設(shè)置報警溫度上限值與下限值的,由于控件并不是很精確只能進行粗略的調(diào)整,更加精確的調(diào)整需要打開鍵盤。 當(dāng)按下控制面板上的bord按鈕后將打開鍵盤。鍵盤有09十個數(shù)字按鍵,一個小數(shù)點按鍵,一個負號按鍵,以及一個OK鍵。數(shù)字鍵是輸入09的數(shù)字值,當(dāng)數(shù)值輸入完后,按下OK鍵并關(guān)閉鍵盤,并將數(shù)字顯示在編輯框控件窗口。設(shè)計鍵盤和控制面板的原因主要是減少實體按鍵的數(shù)量,本次設(shè)計出了電源鍵和復(fù)位鍵之外沒有一個按鍵,更加能減少成本和系統(tǒng)的大小。當(dāng)溫度值超過系統(tǒng)設(shè)置的溫度后,便會打開蜂鳴器進行報警提醒,蜂鳴器在兩分鐘后,便會自動關(guān)閉。采用μC/OSⅡ?qū)崟r內(nèi)核更能方便以后對系統(tǒng)進行移植,以及對系統(tǒng)維護,添加新的硬件和完善程序功能更加的方便。μC/GUI圖形庫能減少對底層圖形驅(qū)動函數(shù)的編寫,將更多的精力集中在界面的設(shè)計上。 鍵盤顯示總 結(jié)本次畢業(yè)設(shè)計達到了之前預(yù)定的各項功能,從確定課題到最終完成經(jīng)歷了半年的時間,從開始構(gòu)思到最終完成,一步步走來,對專業(yè)知識的理解更加深入以及對自己能力充滿了信心。本次設(shè)計的難點在于關(guān)于μC/GUI的資料比較少不像Windows編程有成熟的參考資料。初作為一個初學(xué)者來說,駕馭μC/GUI顯得有點吃力,所以我先利用互聯(lián)網(wǎng)以及SEGGER公司提供的demos,先在VS2012上面利用仿真器修改程序,學(xué)習(xí)各個函數(shù)間的配合使用以及消息機制,同時參考SEGGER公司提供的API手冊。由于μC/GUI是開源的軟件,所以在這期間從顯示屏驅(qū)動,到圖形繪制函數(shù)都有了一個大概的了解,發(fā)現(xiàn)像Windows編程中的很多概念與μC/GUI都很相似,這也算是一次很有意義的收獲了。Micrium公司的uC/OSII也是一個很優(yōu)秀的開源產(chǎn)品,小巧但具有操作系統(tǒng)要求的各個功能,對uC/OSII的學(xué)習(xí)也讓我收獲頗豐,對于操作系統(tǒng)的概念有了一個立體深刻的印象。基于操作系統(tǒng)和圖形庫的開發(fā)比在裸機上的開發(fā)更加的方便快捷,可以設(shè)計出更加穩(wěn)定界面更加美觀的作品。本次設(shè)計只是使用兩個系統(tǒng)的一小部分功能,但通過本次設(shè)計掌握了開發(fā)的方法,我相信在以后的工作學(xué)習(xí)中能更加的得心應(yīng)手。由于時間的原因,并不能將成品做到盡善盡美,所以可以對產(chǎn)品進一步完善??梢越柚谒{牙功能實現(xiàn)與計算機的無線通信,或者串口通信等方式,可以進一步實現(xiàn)實現(xiàn)由計算機控制溫度和監(jiān)控等功能。另一個方面可以在設(shè)計中添加存儲功能,將測得的數(shù)據(jù)存儲到大容量的設(shè)備中,以實現(xiàn)溫度讀取分析等功能。參考文獻[1] Ⅱ的嵌入式系統(tǒng)[D]. .[2] 鄭振宇,晉芳,[J].新型工業(yè)化,2012,(7):1116 .[3] Ⅱ的嵌入式溫度控制系統(tǒng)設(shè)計[D]..[4] 宗明超,文方,Ⅱ 的嵌入式實時多點溫度監(jiān)測系統(tǒng)設(shè)計[J].工業(yè)控制計算機,2013,26(8):5051[5] 肖林京,于鵬杰,[J].電視技術(shù),2015,39(1):3942[6] 李鋼,[J].現(xiàn)代電子技術(shù),2005,28(21):7779[7] 劉鳴,車立新,[J].電測與儀表,2001,38(10):4751[8] 齊婉玉,孟英紅,[J].儀器儀表學(xué)報,2003,24(z2):235236.[9] (庫函數(shù)版)[M]. .[10] :基于ARM的應(yīng)用[M]. .[11] STM32F103xx RM0008 Reference manual[EB/OL] . .[12] Joseph CortexM3權(quán)威指南[M].:清華大學(xué)出版社,2014.[13] 181。C/OSII Users39。 Guide[EB/OL]. .[14] 鄧曉燕,朱維璐,[J]..[15] Huifu Zhang,Wei of the Data Acquisition System Based on STM32[J].Procedia Computer Science,2013: 222228. [16] Yujun Bao, Xiaoyan Jiang. Construction of Embedded System Platform which Based on μ C/OSII and ARM7 Kernel Microprocessor[C].Computer Network and Multimedia Technology, 2009. CNMT 2009. International Symposium on. 2009:1821.[17] [D]..致 謝我首先要感謝四年來的老師們以及各位領(lǐng)導(dǎo),在湖南理工學(xué)院的四年里面,從大一到大四,每一門課程都有一個不同的老師,每個老師都是獨一無二,敬業(yè),和藹,幽默,淵博,無一不深深地影響著我,從你們那里我懂得了對待學(xué)習(xí)需要踏實,作為一個工科生更需要實事求是,嚴(yán)謹求學(xué)的態(tài)度,我覺得能在這里學(xué)習(xí)是一種幸福。湖南理工學(xué)院生活的四年也是我收獲最多的四年,從進校門的青澀高中生成長成即將邁向社會獨立工作生活的準(zhǔn)工程師,這里有我難忘的記憶,不論走到哪里都將是湖南理工學(xué)院的一員。感謝萬忠民老師對我的指導(dǎo),他是一個和藹、耐、負責(zé)的老師,一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣。在開始準(zhǔn)備前,萬老師指導(dǎo)我們?nèi)绾卫脤W(xué)校的圖書館資源查找文獻。在整個畢業(yè)設(shè)計期間,萬老師更是監(jiān)督我完成進度以及詢問遇到的困難,并總是給我一些有用的建議,在各個環(huán)節(jié)中給了我許多寶貴的意見,對我提出的疑問一一解答,并且還了解關(guān)心我們的工作情況。在此,謹向萬老師的指導(dǎo)教育之恩表示最深的謝意!感謝我的父母,是你們辛勤的勞作,辛辛苦苦掙錢供我上大學(xué),才能提供一個衣食無憂的學(xué)習(xí)環(huán)境給我,沒有你們的辛苦就沒有我的成就。最后感謝一起讀了四年大學(xué)的同學(xué)們,特別感謝那些在我遇到困難時給與我?guī)椭耐瑢W(xué),我衷心的感謝他們!附錄一 硬件原理圖
點擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1