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

正文內(nèi)容

智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì)畢業(yè)論文及程序-wenkub

2022-09-08 12:27:38 本頁(yè)面
 

【正文】 程序 ,最終實(shí)現(xiàn)在仿真電路上成功運(yùn)行所設(shè)計(jì)的軟件,實(shí)現(xiàn)了智能溫度報(bào)警,以及通過(guò)按鍵實(shí)現(xiàn)對(duì)報(bào)警范圍和時(shí)間等參數(shù)進(jìn)行設(shè)置。 因此研究智能溫度報(bào)警系統(tǒng) 有利于對(duì)現(xiàn)代化工農(nóng)業(yè)的標(biāo)準(zhǔn)化生產(chǎn),以及提高企業(yè)的經(jīng)濟(jì)效益。當(dāng)所采集的溫度超過(guò)報(bào)警溫度范圍時(shí)可以通過(guò)蜂鳴器發(fā)聲和 發(fā)光二極管閃爍實(shí)現(xiàn)報(bào)警。 課題背景 隨著現(xiàn)代科學(xué)技術(shù)的發(fā)展,為了提高向現(xiàn)代化生產(chǎn)的效率和經(jīng)濟(jì)效益,越來(lái)越多的行業(yè)生產(chǎn)都在向智能化和自動(dòng)化方向發(fā)展。所以本設(shè)計(jì)采用 PIC單片機(jī)來(lái)控制溫度傳感器實(shí)時(shí)的測(cè)量環(huán)境溫度,當(dāng)溫度超過(guò)限制時(shí)能及時(shí)報(bào)警,并且能通過(guò)按鍵對(duì)報(bào)警溫度和日歷時(shí)鐘進(jìn)行設(shè)置。 軟件設(shè)計(jì)的要求 本論文是設(shè)計(jì)智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì)。 論文主要內(nèi)容 1. 確定設(shè)計(jì)方案,熟悉設(shè)計(jì)所需芯片的 C語(yǔ)言編程。 第二章介紹設(shè)計(jì)所需的開(kāi)發(fā)平臺(tái)和設(shè)計(jì)方案的確定。 MPLAB IDE 可以直接使用匯編語(yǔ)言編寫(xiě)源程序,也選擇 MPLAB C 編譯器使用 C語(yǔ)言編寫(xiě)單片機(jī)的源程序,或者用 C 語(yǔ)言和匯編語(yǔ)言進(jìn)行混合嵌入式編寫(xiě)源程序的代碼。出現(xiàn)選擇芯片型號(hào)的界面,選擇 PIC16F877,再點(diǎn)擊下一步。 ( 4) 點(diǎn)擊 New File 新建一個(gè)文本編輯窗口,并在其上編寫(xiě)源程序代碼,完成后保存到指定的目錄下,保存為 *.c 格式。 電路仿真開(kāi)發(fā)環(huán)境 Proteus 軟件是英國(guó) Lab Center 公司開(kāi)發(fā)的電路分析與實(shí)物仿真及印制電路板設(shè)計(jì)軟件,它可以仿真、分析各種模擬電路與集成電 路,同時(shí)提供了大量模擬與數(shù)字元器件及外部設(shè)備,各種虛擬儀器,具有對(duì)單片機(jī)及其外圍電路組成的綜合系統(tǒng)的交互仿真功能 [2]。 在本設(shè)計(jì)中,主要是用 Proteus 7 Professional 版本來(lái)仿真本課題軟件系統(tǒng)設(shè)計(jì)所需的仿真電路,并利用它與用 MPLAB IDE 進(jìn)行源程序編寫(xiě)和編譯后生成的 *.hex文件進(jìn)行聯(lián)調(diào)仿真,測(cè)試所設(shè)計(jì)的智能溫度報(bào)警軟件系統(tǒng)軟件的是否能夠?qū)崿F(xiàn)課題所要XXX:智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì) 6 求的功能。與熱電偶相比,其測(cè)量范圍要小,價(jià)格也貴。以 12 位作為寄存器配置時(shí),分辨率可以達(dá)到 ℃。所以本設(shè)計(jì)就選用了中 PIC16F877 型號(hào)芯片作為本設(shè)計(jì)的主控芯片。 其外圍由多個(gè)功能模塊構(gòu)成,分別是 5 個(gè)位寬不都相同的可編程輸入 /輸出端口模塊、 3個(gè)定時(shí)器模塊、多通道 10 位分辨率 ADC 模塊、捕捉 /比較 /脈寬調(diào)制 CCP1 和 CCP2 模塊和 MSSP 模塊等其他 模塊。時(shí)鐘電路本應(yīng)該使用的是 XT 模式下用震蕩頻率為 4MHz 的XXX:智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì) 10 石英晶體和兩個(gè)電容構(gòu)成,但因?yàn)槭欠抡骐娐?,所以可以不用?huà)出,可直接在加載程序時(shí)設(shè)定時(shí)鐘頻率。它共有16 個(gè)引腳,其第 15和第 16引腳為空腳不需要鏈接,第 7到第 14 引腳為雙向數(shù)據(jù)引腳。 第三章 仿真電路設(shè)計(jì) 11 溫度采集模塊仿真電路 本設(shè)計(jì)采用的是半導(dǎo)體數(shù)字式溫度傳感器 DS18B20,它屬于接觸式溫度傳感器能測(cè)量的溫度范圍 為 55℃~ +125℃。 圖 DS18B20 仿真電路連接圖 時(shí)鐘模塊仿真電路 DS1302 時(shí)鐘芯片 能夠提供 年月日、時(shí)分秒和星期 BCD 碼數(shù)據(jù) , 而且它的時(shí)間能夠自動(dòng)計(jì)時(shí)增加,能實(shí)現(xiàn)自動(dòng)判斷潤(rùn)平年同時(shí) 可自動(dòng)調(diào)整 年月日 。 本次設(shè)計(jì)是利用 DS1302 時(shí)鐘芯片 的簡(jiǎn)單串行接口跟 PIC16F877 單片機(jī)進(jìn)行數(shù)據(jù)通信,實(shí)現(xiàn)課題中增加的實(shí)時(shí)時(shí)鐘內(nèi)容。 圖 XXX:智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì) 12 圖 時(shí)鐘模塊仿真電路連接圖 按鍵控制模塊仿真電路 按鍵模塊的設(shè)計(jì)主要是用 PIC16F877 單片機(jī) RB口的弱上拉功能來(lái)判斷按鍵是否有下。通過(guò)這種形式的循環(huán)報(bào)警,來(lái)提醒周?chē)娜藴囟瘸^(guò)了限定,需要采取降溫措施來(lái)降低溫度。因?yàn)楸驹O(shè)計(jì)所用的主控芯片是 PIC16F877,它是一款8 位的單片機(jī),所以在編寫(xiě)程序時(shí)所用的數(shù)據(jù)類型、數(shù)據(jù)長(zhǎng)度和值域如表 所示。 對(duì)于用到的子程序:溫度采集和轉(zhuǎn)化子程序用于啟動(dòng)溫度傳感器采集外界溫 度并將溫度值送給單片機(jī)用于下一步處理; DS1302 初始化子程序是用于初始化 DS1302 的日歷和時(shí)鐘內(nèi)容;判斷溫度報(bào)警子程序是實(shí)現(xiàn)判斷溫度是否超過(guò)上下限,若超過(guò)則會(huì)掉用與報(bào)警有關(guān)的函數(shù)實(shí)現(xiàn)報(bào)警;切屏控制功能子程序和修改設(shè)定功能子程序都屬于系統(tǒng)的控制功能模塊,用于對(duì)系統(tǒng)的控制;實(shí)時(shí)溫度顯示子程序和上下限溫度顯示子程序以及實(shí)時(shí)時(shí)鐘顯示子程序,都是處理需要顯示的數(shù)據(jù),并顯示在液晶顯示器的相應(yīng)位置。 第四章 系統(tǒng)軟件設(shè)計(jì) 17 圖 LCD1602 控制命令 其中, 指令 3是通過(guò)高低電平來(lái)設(shè)置 光標(biāo)和顯示模式 I/D; 指令 4是 高 電平工作 ,低 電平不工作; 指令 5的 D3位為 1時(shí)移動(dòng)文字, 為 0 時(shí)移動(dòng)光標(biāo) 。 //8 位 2 行 5x7 點(diǎn)陣 ENABLE()。 //文字不動(dòng),光標(biāo)自動(dòng)右移 ENABLE()。第一行為溫度傳感器采集到的溫度值,這 里 只顯 示 到十 分 位。 第四章 系統(tǒng)軟件設(shè)計(jì) 19 圖 顯示與 DS1302 有關(guān)的內(nèi)容 圖 display_ds1302()程序流程圖 溫度采集和轉(zhuǎn)換程序設(shè)計(jì) 完成溫度采集和轉(zhuǎn)換程序設(shè)計(jì)之前 ,要先了解 DS18B20 的復(fù)位時(shí)序圖和讀寫(xiě)時(shí)序圖。 DS18B20 復(fù)位程序 : void reset()// { char presence=1。 //主機(jī)拉至低電平 delay(63)。 //接收到應(yīng)答信號(hào) delay(40)。 //沒(méi)有接收到應(yīng)答信號(hào),繼續(xù)復(fù)位 } } 本設(shè)計(jì)中 DS18B20 采用的是出廠配置位為 12 位,即將采集到的溫度轉(zhuǎn)換為 12 位的數(shù)字信號(hào),此時(shí)的溫度分辨率為 ℃,轉(zhuǎn)化溫度的最大時(shí)間需要 750ms。小于 0時(shí),就需要先取反加一,再按大于零的情況處理。 Flag=0 表示正溫度, Flag=1 表示負(fù)溫度。其中與日歷、時(shí)鐘有關(guān)寄存器和控制字具體如圖 所示。 例 如 初 始 顯 示 的 內(nèi) 容 為“ 20200416,09:00:00,week3”,則進(jìn)行 DS1302 的初始化函數(shù)具體如下: void Int_1302() { W1302(0x8e,0x00)。//寫(xiě)入初始小時(shí)數(shù)據(jù) 09 W1302(0x8a,0x05)。//寫(xiě)入初始年份數(shù)據(jù) 15 W1302(0x8e,0x80)。至于顯示其 他的日歷和時(shí)鐘的內(nèi)容,就要先將要顯示的數(shù)據(jù)轉(zhuǎn)為十進(jìn)制,再顯示。0x0F))。圖中的 t 表示 DS18B20 測(cè)得的實(shí)際溫度,負(fù)溫度并未進(jìn)行取反加一處理, LT表示下限溫度, HT表示上限溫度。i0。 for(i=100。}。i){RC1=!RC1。i0。 } 按鍵控制功能程序設(shè)計(jì) 設(shè)計(jì)中的按鍵功能具體可以分為三個(gè)部分,分別是顯示切換功能、上下限溫度修改功能和實(shí)時(shí)時(shí)鐘修改功能。為了讓接下來(lái)的程序流程圖看得簡(jiǎn)潔一些,程序流程圖中的一些按鍵的名稱就直接采用了與其對(duì)應(yīng)引腳名稱。因此上下限溫度的修改設(shè)定程序的流程就如圖 。例如當(dāng) K2%7=2 并且 K1=1 時(shí),則可以進(jìn)行修改和設(shè)置日期的數(shù)值,對(duì)日期的修改需要先判斷是閏年還是平年,再根據(jù)月份進(jìn)行日期的修改。例如,圖 、圖 為仿真電路系統(tǒng)在程序的控制下,對(duì)不同溫度環(huán)境采集到溫度情況。而當(dāng)溫度超過(guò)報(bào)警限定范,報(bào)警電路就會(huì)報(bào)警,蜂鳴器發(fā)出嘀嘀聲, LED 燈也會(huì)發(fā)出閃爍的紅光。以下的圖 和圖 為系統(tǒng)實(shí)現(xiàn)切換功能的截圖情況。0x80)==0x80){if(nian=0xff)nian=0x63。 XXX:智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì) 34 結(jié)論 35 結(jié)論 本文詳細(xì)的講述了智能溫度報(bào)警系統(tǒng)軟件設(shè)計(jì)的設(shè)計(jì)方案,以及根據(jù)方案設(shè)計(jì)出仿真電路,再依據(jù)電路設(shè)計(jì)出相應(yīng)的系統(tǒng)軟件的過(guò)程。 本設(shè)計(jì)的不足之處是未能充分利用 PIC16F877 單片機(jī)的功能,因此可以在今后的設(shè)計(jì)中加入定時(shí)功能,實(shí)現(xiàn)在不同的時(shí)間段自動(dòng)改變報(bào)警溫度的范圍。為了解決這個(gè)問(wèn)題, 我采用的是先在稿紙紙上畫(huà)出控制單個(gè)功能的程序流程圖,根據(jù)流程圖編寫(xiě)出正確程序后,再一個(gè)個(gè)地加入其他控制功能,進(jìn)過(guò)多次不斷地修改最終才實(shí)現(xiàn)整體控制功能程序的設(shè)計(jì)編碼。LCD 片選信號(hào)腳定義在 腳 include define DQ RC4 //定義 18B20 數(shù)據(jù)端口 define DQ_HIGH() TRISC4 =1 //。 //采集到的溫度低 8位 unsigned char K1=0,K2=0,K3=0,K4=0,K5=0。 unsigned long sd。 for(i=999。 RA2=0。 } void ENABLE1() XXX:智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì) 42 { RA1=1。 RA3=1。 for(z=8。//取最低位 SCLK=1。 TRISC7=1。 f) { val = val 1。 //下降沿接收 } return(val)。 //打開(kāi) DS1302 W_byte(Addr)。 //關(guān)閉 DS1302 } //*******讀數(shù)據(jù) ****先寫(xiě)地址,后讀命令 /數(shù)據(jù) ************* 附錄 43 unsigned char R1302(unsigned char Addr) { unsigned char Data。 W_byte(Addr)。 return(Data)。//寫(xiě)入初始分?jǐn)?shù)據(jù) 00 W1302(0x84,0x09)。//寫(xiě)入初始月份數(shù)據(jù) 04 W1302(0x8c,0x15)。 return(Decimal=Decimal*10+(bcdamp。 shi=BCD_Change(R1302(0x85))。 nian=BCD_Change(R1302(0x8d))。 PORTD=0x83。 //送第一行第 4 位置 ENABLE1()。:39。 //送第一行第 7 位置 ENABLE1()。:39。 //百位數(shù)送第一行第 10 位置 ENABLE1()。 //光標(biāo)指向第 2 行的 12 位置 ENABLE()。PORTD=39。N39。M39。ENABLE1()。 break。PORTD=39。E39。W39。ENABLE1()。 break。PORTD=39。U39。F39。ENABLE1()。 break。PORTD=39。A39。 //光標(biāo)指向第 2 行的第 2 位置 ENABLE()。 //送第 2 行第 2位置 ENABLE1()。 PORTD=table[x1]。 PORTD=39。 PORTD=table[x1]。 PORTD=39。 PORTD=table[x1]。 } /*************** DS18。 PORTD=table[x2]。 //送第 2 行第 9 位置 ENABLE1()。 PORTD=table[x2]。 //送第 2 行第 6 位置 ENABLE1()。 PORTD=table[x2]。039。 PORTD=39。 break。ENABLE1()。S39。I39。PORTD=39。 break。ENABLE1()。T39。D39。PORTD=39。 break。ENABLE1()。T39。N39。PORTD=39。 break。ENABLE1()。S39。 //十位數(shù)送第一行第 11 位置 ENABLE1()。 display_NYRSFM(miao)。 //送 第一行第 8 位置 ENABLE1()。 display_NYRSFM(fen)。 //送第一行第 5 位置 ENABLE1()。 display_NYRSFM(shi)。//取十位數(shù) XXX:智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì) 44 x2=data%10。 rq=BCD_Change(R1302(0x87))。 } void get_ds1302() { miao=BCD_Change(R1302(0x81))。 //打開(kāi)寫(xiě)保護(hù) } //********BCD 碼轉(zhuǎn)十進(jìn)制函數(shù),輸入 BCD,返回十進(jìn)制 *************** unsigned char BCD_Change(unsigned char bcd) { unsigned char Decimal。//寫(xiě)入初始星期數(shù)據(jù) 5 W1302(0x86,0x16)。 //允許寫(xiě) WP=0,禁止寫(xiě)保護(hù) W1302(0x80,0x00)。
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1