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

正文內(nèi)容

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

2024-09-01 12:27本頁面
  

【正文】 } /*************** DS18。 PORTD=table[x2]。 PORTD=table[x1]。 //送第 2 行第 9 位置 ENABLE1()。 PORTD=39。 PORTD=table[x2]。 PORTD=table[x1]。 //送第 2 行第 6 位置 ENABLE1()。 PORTD=39。 PORTD=table[x2]。 PORTD=table[x1]。039。 //送第 2 行第 2位置 ENABLE1()。 PORTD=39。 //光標(biāo)指向第 2 行的第 2 位置 ENABLE()。 break。A39。ENABLE1()。PORTD=39。S39。 break。I39。ENABLE1()。PORTD=39。F39。 break。U39。ENABLE1()。PORTD=39。T39。 break。D39。ENABLE1()。PORTD=39。W39。 break。E39。ENABLE1()。PORTD=39。T39。 break。N39。ENABLE1()。PORTD=39。M39。 break。N39。ENABLE1()。PORTD=39。S39。 //光標(biāo)指向第 2 行的 12 位置 ENABLE()。 //十位數(shù)送第一行第 11 位置 ENABLE1()。 //百位數(shù)送第一行第 10 位置 ENABLE1()。 display_NYRSFM(miao)。:39。 //送 第一行第 8 位置 ENABLE1()。 //送第一行第 7 位置 ENABLE1()。 display_NYRSFM(fen)。:39。 //送第一行第 5 位置 ENABLE1()。 //送第一行第 4 位置 ENABLE1()。 display_NYRSFM(shi)。 PORTD=0x83。//取十位數(shù) XXX:智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì) 44 x2=data%10。 nian=BCD_Change(R1302(0x8d))。 rq=BCD_Change(R1302(0x87))。 shi=BCD_Change(R1302(0x85))。 } void get_ds1302() { miao=BCD_Change(R1302(0x81))。 return(Decimal=Decimal*10+(bcdamp。 //打開寫保護(hù) } //********BCD 碼轉(zhuǎn)十進(jìn)制函數(shù),輸入 BCD,返回十進(jìn)制 *************** unsigned char BCD_Change(unsigned char bcd) { unsigned char Decimal。//寫入初始月份數(shù)據(jù) 04 W1302(0x8c,0x15)。//寫入初始星期數(shù)據(jù) 5 W1302(0x86,0x16)。//寫入初始分?jǐn)?shù)據(jù) 00 W1302(0x84,0x09)。 //允許寫 WP=0,禁止寫保護(hù) W1302(0x80,0x00)。 return(Data)。 // 讀 1Byte 數(shù)據(jù) SCLK = 1。 W_byte(Addr)。 SCLK = 0。 //關(guān)閉 DS1302 } //*******讀數(shù)據(jù) ****先寫地址,后讀命令 /數(shù)據(jù) ************* 附錄 43 unsigned char R1302(unsigned char Addr) { unsigned char Data。 // 寫 1Byte 數(shù)據(jù) SCLK = 1。 //打開 DS1302 W_byte(Addr)。 SCLK = 0。 //下降沿接收 } return(val)。// 從最低位開始接收 SCLK = 1。 f) { val = val 1。 for(f=8。 TRISC7=1。//恢復(fù) dat=dat1。//取最低位 SCLK=1。z) { IO=datamp。 for(z=8。 TRISC=0。 RA3=1。RA3=0。 } void ENABLE1() XXX:智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì) 42 { RA1=1。 //LCD 寫入控制命令的子程序 delay2()。 RA2=0。i)。 for(i=999。 //******************** //=============用到的子函數(shù) ======== void delay(unsigned int num) { while(num)。 unsigned long sd。 char a,b,c,d,x1,x2,x3,x4。 //采集到的溫度低 8位 unsigned char K1=0,K2=0,K3=0,K4=0,K5=0。 TRISC4 = 0//設(shè)置數(shù)據(jù)口為輸出 define RST RC5 define SCLK RC6 define IO RC7 unsigned char TLV=0。LCD 片選信號(hào)腳定義在 腳 include define DQ RC4 //定義 18B20 數(shù)據(jù)端口 define DQ_HIGH() TRISC4 =1 //。LCD 寄存器選擇信號(hào)腳定義在 腳 //RW EQU 2 。為了解決這個(gè)問題, 我采用的是先在稿紙紙上畫出控制單個(gè)功能的程序流程圖,根據(jù)流程圖編寫出正確程序后,再一個(gè)個(gè)地加入其他控制功能,進(jìn)過多次不斷地修改最終才實(shí)現(xiàn)整體控制功能程序的設(shè)計(jì)編碼。經(jīng)過加入這樣的設(shè)計(jì),能夠使得整個(gè)系統(tǒng)更加的智能化。 本設(shè)計(jì)的不足之處是未能充分利用 PIC16F877 單片機(jī)的功能,因此可以在今后的設(shè)計(jì)中加入定時(shí)功能,實(shí)現(xiàn)在不同的時(shí)間段自動(dòng)改變報(bào)警溫度的范圍。 本設(shè)計(jì)的優(yōu)點(diǎn) 和特色在于系統(tǒng)所需要求的電路簡(jiǎn)單,除了溫度測(cè)量報(bào)警功能外,還擁有實(shí)時(shí)時(shí)鐘和日歷功能,測(cè)量的溫度精度比較高,具有較高的應(yīng)用價(jià)值。 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)軟件的過程。經(jīng)過類似這種形式的修改后,能夠?qū)崿F(xiàn)對(duì) DS1302 的日歷和時(shí)鐘數(shù)據(jù)進(jìn)行修改,能正常的通過按鍵實(shí)現(xiàn)減功能,不會(huì)出現(xiàn)數(shù)值混亂。0x80)==0x80){if(nian=0xff)nian=0x63。后來經(jīng)過思考和檢查程序,才回想 到 DS1302 的一些寄存器存儲(chǔ)的是 BCD 碼,所以不能直接在我的程序中使用像判斷 nian 是否減到最小值的條件語句 :if(nian==1)nian=99。以下的圖 和圖 為系統(tǒng)實(shí)現(xiàn)切換功能的截圖情況。因此,軟件系統(tǒng)的報(bào)警模塊程序能夠?qū)崿F(xiàn)報(bào)警功能。而當(dāng)溫度超過報(bào)警限定范,報(bào)警電路就會(huì)報(bào)警,蜂鳴器發(fā)出嘀嘀聲, LED 燈也會(huì)發(fā)出閃爍的紅光。另外由于,仿真軟件上傳感器的XXX:智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì) 32 溫度只能以整數(shù)的形式調(diào)整,所以還無法肯定溫度 的小數(shù)部分也能正常顯示。例如,圖 、圖 為仿真電路系統(tǒng)在程序的控制下,對(duì)不同溫度環(huán)境采集到溫度情況。 第四章 系統(tǒng)軟件設(shè)計(jì) 29 圖 實(shí)時(shí)時(shí)鐘部分修改設(shè)置程序流程圖 XXX:智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì) 30 第五章 系統(tǒng)軟件調(diào)試 31 第五章 系統(tǒng)軟件調(diào)試 DS18B20 溫度測(cè)量功能調(diào)試 通過將源程序經(jīng)編譯生成的 文件載入到仿真電路的 PIC單片機(jī)上,點(diǎn)擊運(yùn)行 仿真按鈕進(jìn)行仿真。例如當(dāng) K2%7=2 并且 K1=1 時(shí),則可以進(jìn)行修改和設(shè)置日期的數(shù)值,對(duì)日期的修改需要先判斷是閏年還是平年,再根據(jù)月份進(jìn)行日期的修改。 表 按鍵功能及其對(duì)應(yīng)的引腳和返回值 功能鍵 連接引腳 按下后的返回值 屏幕切換功能鍵 RB3 K1 選擇所修改 參數(shù)功能鍵 RB0 K2 進(jìn)入 /退出修改功能鍵 RB4 K3 加的功能鍵 RB1 K4 減的功能鍵 RB2 K5 XXX:智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì) 28 圖 上下限溫度修改程序流程圖 實(shí)時(shí)時(shí)鐘修改程序 下圖圖 為實(shí)時(shí)時(shí)鐘修改設(shè)置功能的部分程序流程圖,圖中繪出了對(duì) nian 和yue 的修改設(shè)置的程序流程圖。因此上下限溫度的修改設(shè)定程序的流程就如圖 。同理,下上限溫度最低只能減到 53℃ ,最高只能加到 124℃ 。為了讓接下來的程序流程圖看得簡(jiǎn)潔一些,程序流程圖中的一些按鍵的名稱就直接采用了與其對(duì)應(yīng)引腳名稱。函數(shù)的返回值 K1 在主函數(shù)中用于判斷需要調(diào)用的是 case 0 語句 ,還是case 1 語句,即用于切換液晶顯示器所顯示的內(nèi)容。 } 按鍵控制功能程序設(shè)計(jì) 設(shè)計(jì)中的按鍵功能具體可以分為三個(gè)部分,分別是顯示切換功能、上下限溫度修改功能和實(shí)時(shí)時(shí)鐘修改功能。delayms()。i0。}。i){RC1=!RC1。 for(i=500。}。i){RC0=!RC0。 for(i=100。delay1ms()。i0。 報(bào)警程序: void sound_delay()//蜂鳴器報(bào)警程序 {unsigned int i,j。圖中的 t 表示 DS18B20 測(cè)得的實(shí)際溫度,負(fù)溫度并未進(jìn)行取反加一處理, LT表示下限溫度, HT表示上限溫度。第一部分是判斷是否超上下限溫度,第二部分是報(bào)警程序 。0x0F))。 Decimal=bcd4。至于顯示其 他的日歷和時(shí)鐘的內(nèi)容,就要先將要顯示的數(shù)據(jù)轉(zhuǎn)為十進(jìn)制,再顯示。周寄存器的數(shù)據(jù)只能存儲(chǔ)從 1 到 7 的其中一個(gè),所以當(dāng)存儲(chǔ)的是 1時(shí),則表示周日,類似的 2 則表示星期一。//寫入初始年份數(shù)據(jù) 15 W1302(0x8e,0x80)。//寫入初始日期 數(shù)據(jù) 16 W1302(0x88,0x04)。//寫入初始小時(shí)數(shù)據(jù) 09 W1302(0x8a,0x05)。 //寫入初始秒數(shù)據(jù) 00 W1302(0x82,0x00)。 例 如 初 始 顯 示 的 內(nèi) 容 為“ 20200416,09:00:00,week3”,則進(jìn)行 DS1302 的初始化函數(shù)具體如下: void Int_1302() { W1302(0x8e,0x00)。 圖 DS1302 控制字圖 第四章 系統(tǒng)軟件設(shè)計(jì) 23 圖 與日歷時(shí)鐘有關(guān)寄存器和控制字 圖 DS1302 讀寫一字節(jié)數(shù)據(jù)的時(shí)序圖 根據(jù)以上了解的 DS1302 的控制字以及時(shí)序圖,就可以編寫出讀寫一個(gè)字節(jié)數(shù)據(jù)的程序,其讀和寫的程序流程圖分如圖 和圖 所示。其中與日歷、時(shí)鐘有關(guān)寄存器和控制字具體如圖 所示。其控制字結(jié)構(gòu)圖如圖 。 Flag=0 表示正溫度, Flag=1 表示負(fù)溫度。由表中的 二進(jìn)制數(shù)據(jù)可以看出數(shù)據(jù)的第十一位到第五位表示溫度值的整數(shù)部分,第四位表示溫度的小數(shù)部分。小于 0時(shí),就需要先取反加一,再按大于零的情況處理。如果 S=0 則溫度大于 0,否則溫度小于 0。 //沒有接收到應(yīng)答信號(hào),繼續(xù)復(fù)位 } } 本設(shè)計(jì)中 DS18B20 采用的是出廠配置位為 12 位,即將采集到的溫度轉(zhuǎn)換為 12 位的數(shù)字信號(hào),此時(shí)的溫度分辨率為 ℃,轉(zhuǎn)化溫度的最大時(shí)間需要 750ms。//再次拉高電,釋放總線平 。 //接收到應(yīng)答信號(hào) delay(40)。 //釋放總線等電阻拉高總線 , delay(2)。 //主機(jī)拉至低電平 delay(63)。//拉高電平 delay(1)。 DS18B20 復(fù)位程序 : void reset()// { char presence=1。其各個(gè)時(shí)序圖如下圖 、 、 所示。 第四章 系統(tǒng)軟件設(shè)計(jì) 19 圖 顯示與 DS1302 有關(guān)的內(nèi)容 圖 display_ds1302()程序流程圖 溫度采集和轉(zhuǎn)換程序設(shè)計(jì) 完成溫度采集和轉(zhuǎn)換程序設(shè)計(jì)之前 ,要先了解 DS18B20 的復(fù)位時(shí)序圖和讀寫時(shí)序圖。 圖 顯示與溫度有關(guān)的內(nèi)容 XXX:智能溫度報(bào)警系統(tǒng)的軟件設(shè)計(jì) 18 圖 display_18b20()程 序流程圖 圖 display_Temperature()程序流程圖 顯示與 DS1302 有關(guān)的內(nèi)容時(shí), LCD 的顯示格式如下圖圖 所示。第一行為溫度傳感器采集到的溫度值,這 里 只顯 示 到十 分 位。一部分用于顯示與
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1