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

正文內(nèi)容

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

2025-07-16 13:31 本頁面
 

【文章內(nèi)容簡介】 100。i0。i){RC0=!RC0。delayms()。}。}void LED_delay()//LED閃爍報(bào)警程序{unsigned int i,j。for(i=500。i0。i){RC1=!RC1。delayms()。}。for(i=500。i0。i){RC1=!RC1。delayms()。}。} 設(shè)計(jì)中的按鍵功能具體可以分為三個(gè)部分,分別是顯示切換功能、上下限溫度修改功能和實(shí)時(shí)時(shí)鐘修改功能。 切換顯示功能是通過與單片機(jī)RB3引腳相連的按鍵開關(guān)控制。函數(shù)的返回值K1在主函數(shù)中用于判斷需要調(diào)用的是case 0語句,還是case 1語句,即用于切換液晶顯示器所顯示的內(nèi)容。 顯示切換按鍵程序流程圖 [11]。為了讓接下來的程序流程圖看得簡潔一些,程序流程圖中的一些按鍵的名稱就直接采用了與其對應(yīng)引腳名稱。因?yàn)樵O(shè)計(jì)中的設(shè)計(jì)報(bào)警上下限溫度的范圍是從54℃到124℃,所以下限溫度最低只能減到54℃,最高只能加到123℃。同理,下上限溫度最低只能減到53℃,最高只能加到124℃。設(shè)計(jì)的最小報(bào)警范圍為1℃。圖中的日歷時(shí)鐘設(shè)置是用于對DS1302要顯示的內(nèi)容進(jìn)行修改設(shè)定程序,這里只是進(jìn)行簡單帶過。 按鍵功能及其對應(yīng)的引腳和返回值功能鍵連接引腳按下后的返回值屏幕切換功能鍵 RB3 K1選擇所修改參數(shù)功能鍵 RB0 K2進(jìn)入/退出修改功能鍵 RB4 K3加的功能鍵 RB1 K4減的功能鍵 RB2 K5 上下限溫度修改程序流程圖 ,圖中繪出了對nian和yue的修改設(shè)置的程序流程圖。因?yàn)閷?shí)時(shí)時(shí)鐘的其他設(shè)置程序與nian和yue的流程圖相似,只是在自加和自減之后對對數(shù)據(jù)的處理方法有所不同,它們都是通過K2%7的值作為修改設(shè)置相應(yīng)數(shù)據(jù)的判斷依據(jù)。例如當(dāng)K2%7=2并且K1=1時(shí),則可以進(jìn)行修改和設(shè)置日期的數(shù)值,對日期的修改需要先判斷是閏年還是平年,再根據(jù)月份進(jìn)行日期的修改。像修改日期、時(shí)分秒和星期的具體程序,可見附錄源程序中的RB3_scan()的子程序。 實(shí)時(shí)時(shí)鐘部分修改設(shè)置程序流程圖第五章 系統(tǒng)軟件調(diào)試第五章 系統(tǒng)軟件調(diào)試 DS18B20溫度測量功能調(diào)試 ,點(diǎn)擊運(yùn)行仿真按鈕進(jìn)行仿真。調(diào)節(jié)DS18B20傳感器上顯示的溫度值,看液晶顯示器上的溫度值是否與之相等。例如,、對不同溫度環(huán)境采集到溫度情況。 溫度傳感器設(shè)置的溫度為21℃ 溫度傳感器設(shè)置的溫度為4℃ 通過多次仿真調(diào)整傳感器的測量溫度,液晶上都能顯示出與傳感器上設(shè)置的溫度值相同的數(shù)字,所以軟件系統(tǒng)的溫度測量程序能夠正確運(yùn)行。另外由于,仿真軟件上傳感器的溫度只能以整數(shù)的形式調(diào)整,所以還無法肯定溫度的小數(shù)部分也能正常顯示。 溫度報(bào)警功能程序調(diào)試 、以及在仿真電路上多次調(diào)試,在報(bào)警溫度的限定范圍內(nèi),報(bào)警電路無反應(yīng),系統(tǒng)不報(bào)警。而當(dāng)溫度超過報(bào)警限定范,報(bào)警電路就會報(bào)警,蜂鳴器發(fā)出嘀嘀聲,LED燈也會發(fā)出閃爍的紅光。因此,軟件系統(tǒng)的報(bào)警模塊程序能夠?qū)崿F(xiàn)報(bào)警功能。 測量的溫度超過上限溫度時(shí)電路報(bào)警圖 測量的溫度超過下限溫度時(shí)電路報(bào)警圖 顯示切換功能調(diào)試 通過按下屏幕切換鍵,來測試軟件系統(tǒng)是否能實(shí)現(xiàn)切換功能。 顯示與溫度有關(guān)的內(nèi)容 顯示與日歷和時(shí)鐘有關(guān)的內(nèi)容 修改設(shè)置功能調(diào)試 在起初調(diào)試修改設(shè)置功能的時(shí)候,除了星期和上下限溫度能夠完整的實(shí)現(xiàn)加減修改設(shè)置,其它的就只能實(shí)現(xiàn)加的修改功能,而減功能只能實(shí)現(xiàn)減到最小值,但是再減的話就會出現(xiàn)數(shù)值錯(cuò)誤。后來經(jīng)過思考和檢查程序,才回想到DS1302的一些寄存器存儲的是BCD碼,所以不能直接在我的程序中使用像判斷nian是否減到最小值的條件語句:if(nian==1)nian=99。而應(yīng)該將十進(jìn)制的判斷條件改為像if((nianamp。0x80)==0x80){if(nian=0xff)nian=0x63。}形式。經(jīng)過類似這種形式的修改后,能夠?qū)崿F(xiàn)對DS1302的日歷和時(shí)鐘數(shù)據(jù)進(jìn)行修改,能正常的通過按鍵實(shí)現(xiàn)減功能,不會出現(xiàn)數(shù)值混亂。 最終調(diào)試完成后,系統(tǒng)的報(bào)警溫度范圍可以從54℃到124℃,上下限溫度的最小溫差為1℃,日歷的設(shè)置范圍可以從2000年到2099年。67結(jié)論結(jié)論 本文詳細(xì)的講述了智能溫度報(bào)警系統(tǒng)軟件設(shè)計(jì)的設(shè)計(jì)方案,以及根據(jù)方案設(shè)計(jì)出仿真電路,再依據(jù)電路設(shè)計(jì)出相應(yīng)的系統(tǒng)軟件的過程。本設(shè)計(jì)可以用于監(jiān)控一些像保溫養(yǎng)殖房、農(nóng)業(yè)大棚、機(jī)房等地方的溫度。 本設(shè)計(jì)的優(yōu)點(diǎn)和特色在于系統(tǒng)所需要求的電路簡單,除了溫度測量報(bào)警功能外,還擁有實(shí)時(shí)時(shí)鐘和日歷功能,測量的溫度精度比較高,具有較高的應(yīng)用價(jià)值。而設(shè)計(jì)的創(chuàng)新在于,它是基于PIC16F877單片機(jī)而詳細(xì)設(shè)計(jì)的溫度報(bào)警軟件系統(tǒng),在仿真電路上能夠成功運(yùn)行,并實(shí)現(xiàn)對環(huán)境溫度的實(shí)時(shí)監(jiān)控報(bào)警功能。 本設(shè)計(jì)的不足之處是未能充分利用PIC16F877單片機(jī)的功能,因此可以在今后的設(shè)計(jì)中加入定時(shí)功能,實(shí)現(xiàn)在不同的時(shí)間段自動(dòng)改變報(bào)警溫度的范圍。同時(shí)也可以在實(shí)現(xiàn)報(bào)警模塊的程序中加入對其他外圍電路的控制功能,實(shí)現(xiàn)當(dāng)溫度超過報(bào)警上限制溫度時(shí),系統(tǒng)能控制外圍電路啟動(dòng)降溫設(shè)備降低溫度,而當(dāng)溫度低于下限溫度時(shí)啟動(dòng)加熱設(shè)備提高周圍場所的溫度。經(jīng)過加入這樣的設(shè)計(jì),能夠使得整個(gè)系統(tǒng)更加的智能化。 這次設(shè)計(jì)中所遇到的最大問題是,如何編寫出按鍵控制程序?qū)崿F(xiàn)對系統(tǒng)的整體控制功能。為了解決這個(gè)問題,我采用的是先在稿紙紙上畫出控制單個(gè)功能的程序流程圖,根據(jù)流程圖編寫出正確程序后,再一個(gè)個(gè)地加入其他控制功能,進(jìn)過多次不斷地修改最終才實(shí)現(xiàn)整體控制功能程序的設(shè)計(jì)編碼。致謝語致謝語參考文獻(xiàn)參考文獻(xiàn)[1] 陶冶,袁永超,羅平. 基于DS18B20的單片機(jī)溫度測量系統(tǒng)[J]. 農(nóng)機(jī)化研究,2007,10:160164.[2][M].北京:電子工業(yè)出版社,2009:1213.[3] 周靈彬,張靖武. PROTEUS的單片機(jī)教學(xué)與應(yīng)用仿真[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2008,(01):7679.[4] DS18B20+ 和 Maxim Integrated 信息?[EB].+/Maxim+Integrated:20150425.[5] [M].:北京航空航天大學(xué)出版社,2004:1433.[6] 方玉鑫. 基于單片機(jī)的溫濕度控制系統(tǒng)的研究與應(yīng)用[D].哈爾濱工程大學(xué),2012.[7] [J].電子元器件應(yīng)用,2004,(01):12.[8] 胡景華. 基于單片機(jī)的溫室數(shù)據(jù)采集系統(tǒng)的研究[D].內(nèi)蒙古農(nóng)業(yè)大學(xué),2012.[9] [J].電子測量技術(shù),2008,31(7):15.[10] [J].電子制作,2005,(10):17.[11] 羅翼,[M].:中國電力出版社,2005:159168.附錄附錄系統(tǒng)源程序:/**************************************************************************** 編譯環(huán)境 MPLAB IDE 仿真環(huán)境 Proteus 7 Professional 主控芯片 PIC16F877 4MHz***************************************************************************///RS EQU 1 。LCD 寄存器選擇信號腳定義在 腳//RW EQU 2 。LCD 讀/寫信號腳定義在 腳//E EQU 3 。LCD 片選信號腳定義在 腳 include define DQ RC4 //定義18B20數(shù)據(jù)端口 define DQ_HIGH() TRISC4 =1 //。DQ=1//設(shè)置數(shù)據(jù)口為輸入 define DQ_LOW() DQ = 0。 TRISC4 = 0//設(shè)置數(shù)據(jù)口為輸出 define RST RC5 define SCLK RC6 define IO RC7unsigned char TLV=0。 //采集到的溫度高8位unsigned char THV=0。 //采集到的溫度低8位unsigned char K1=0,K2=0,K3=0,K4=0,K5=0。//static volatile char table[16]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39, 0X41,0X42,0X43,0X44,0X45,0X46}。char a,b,c,d,x1,x2,x3,x4。unsigned char flag,flag1,miao,fen,shi,week,rq,yue,nian。unsigned long sd。int TZ=0,tmp,x,a1,a2,a3,year=2000,t,t1,lt,ht,HT=23,LT=3。//********************//=============用到的子函數(shù)========void delay(unsigned int num){ while(num)。}void delay2(){unsigned int i。 for(i=999。i0。i)。}void ENABLE(){ RA1=0。 RA2=0。RA3=0。 //LCD寫入控制命令的子程序 delay2()。 RA3=1。}void ENABLE1(){ RA1=1。 RA2=0。RA3=0。 //LCD寫入字的子程序 delay2()。 RA3=1。}//******************************/******往1302寫入8位數(shù)據(jù)**************/void W_byte(unsigned char dat){ unsigned char z。 TRISC=0。 //RST=1。 for(z=8。z0。z) { IO=datamp。0x01。//取最低位 SCLK=1。//上升沿發(fā)送 SCLK=0。//恢復(fù) dat=dat1。 } }/**********從1302讀取8位數(shù)據(jù)******************/unsigned char R_byte(void) { unsigned char f,val=0。 TRISC7=1。 //設(shè)置為輸入 //RST=1。 for(f=8。 f0。 f) { val = val 1。 if(IO)val=val|0x80。// 從最低位開始接收 SCLK = 1。 SCLK = 0。 //下降沿接收 } return(val)。 }//*********寫數(shù)據(jù)****先寫地址,后寫命令/數(shù)據(jù)************void W1302(unsigned char Addr, unsigned char dat){ RST = 0。 SCLK = 0。 RST = 1。 //打開DS1302 W_byte(Addr)。 // 地址,命令 W_byte(dat)。 // 寫1Byte數(shù)據(jù) SCLK = 1。 RST = 0。 //關(guān)閉DS1302}//*******讀數(shù)據(jù)****先寫地址,后讀命令/數(shù)據(jù)*************unsigned char R1302(unsigned char Addr){ unsigned char Data。 RST = 0。 SCLK = 0。 RST = 1。 W_byte(Addr)。 // 地址,命令 Data = R_byte()。 // 讀1Byte數(shù)據(jù) SCLK = 1。 RST = 0。 return(Data)。}//********初始化子DS1302(20150416,09:00:00,week3)**********void Int_1302() {W1302(0x8e,0x00)。 //允許寫WP=0,禁止寫保護(hù) W1302(0x80,0x00)。 //寫入初始秒數(shù)據(jù)00W1302(0x82,0x00)。//寫入初始分?jǐn)?shù)據(jù)00W1302(0x84,0x09)。//寫入初始小時(shí)數(shù)據(jù)09W1302(0x8a,0x05)。//寫入初始星期數(shù)據(jù)5W1302(0x86,0x16)。//寫入初始日期數(shù)據(jù)16W1302(0x88,0x04)。//寫入初始月份數(shù)據(jù)04W1302(0x8c,0x15)。//寫入初始年份數(shù)據(jù)15W1302(0x8e,0x80)。 //打開寫保護(hù)}//********BCD碼轉(zhuǎn)十進(jìn)制函數(shù),輸入BCD,返回十進(jìn)制***************unsigned char BCD_Change(unsigned char bcd){ unsigned char Decimal。 Decimal=bcd4。 return(Decimal=Decimal*10+(bcdamp。0x0F))。}void get_ds1302(){ miao=BCD_Change(R1302(0x81))。 fen=BCD_Change(R1302(0x83))。 shi=BCD_Change(R1302(0x85))。 week=BCD_Ch
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1