版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、分?jǐn)?shù):?jiǎn)纹瑱C(jī)技能+電子初級(jí)工程師認(rèn)證培訓(xùn)設(shè)計(jì)報(bào)告題目:簡(jiǎn)易數(shù)字式溫度計(jì)的設(shè)計(jì)指導(dǎo)老師: 文麗 完成時(shí)間: 2012-5-15 華南理工大學(xué)廣州學(xué)院電子信息工程學(xué)院目 錄1 引言2方案設(shè)計(jì)3 系統(tǒng)的硬件設(shè)計(jì)4 proteus 仿真圖5 系統(tǒng)的軟件設(shè)計(jì)6 心理體會(huì)7 參考文獻(xiàn)1 引言在當(dāng)下,人們生活水平的不斷提高,單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例子,但人們對(duì)它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比
2、,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對(duì)測(cè)溫比較準(zhǔn)確的場(chǎng)所,或科研實(shí)驗(yàn)室使用,該設(shè)計(jì)控制器使用單片機(jī)at89s51,測(cè)溫傳感器使用ds18b20,用3位共陽極led數(shù)碼管以串口傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到以上要求。目前的智能溫度傳感器(亦稱數(shù)字溫度傳感器)是在20世紀(jì)90年代中期問世的,它是微電子技術(shù)、計(jì)算機(jī)技術(shù)和自動(dòng)測(cè)試技術(shù)(ate)的結(jié)晶,特點(diǎn)是能輸出溫度數(shù)據(jù)及相關(guān)的溫度控制量,適配各種微控制器(mcu)。社會(huì)的發(fā)展使人們對(duì)傳感器的要求也越來越高,現(xiàn)在的溫度傳感器正在基于單片機(jī)的基礎(chǔ)上從模擬式向數(shù)字式,從集成化向智能化、網(wǎng)絡(luò)化的方向飛速發(fā)展,并朝著高精
3、度、多功能、總線標(biāo)準(zhǔn)化、高可靠性及安全性、開發(fā)虛擬傳感器和網(wǎng)絡(luò)傳感器、研制單片測(cè)溫系統(tǒng)等高科技的方向迅速發(fā)展,本文將介紹智能集成溫度傳感器ds18b20的結(jié)構(gòu)特征及控制方法,并對(duì)以此傳感器,89s51單片機(jī)為控制器構(gòu)成的數(shù)字溫度測(cè)量裝置的工作原理及程序設(shè)計(jì)作了詳細(xì)的介紹。2方案設(shè)計(jì)本設(shè)計(jì)主要是介紹了單片機(jī)控制下的溫度檢測(cè)系統(tǒng),詳細(xì)介紹了其硬件和軟件設(shè)計(jì),并對(duì)其各功能模塊做了詳細(xì)介紹,其主要功能和指標(biāo)如下:利用溫度傳感器(ds18b20)測(cè)量某一環(huán)境溫度測(cè)量范圍為-55127,精度為±0.5如果測(cè)量范圍超過127或低于-55蜂鳴器就會(huì)自動(dòng)進(jìn)行報(bào)警用液晶顯示器lcd進(jìn)行實(shí)際溫度值顯示采用
4、at89s52單片機(jī)p3 .5口控制溫度傳感器ds18b20的溫度測(cè)量,以液晶顯示器lcd形式輸出測(cè)量溫度。圖2.1原理圖3 系統(tǒng)的硬件設(shè)計(jì) 3.1 主控制器 at89s52 是一種低功耗、高性能cmos8位微控制器,具有8k在系統(tǒng)可編程flash 存儲(chǔ)器。使用atmel 公司高密度非 易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80c51 產(chǎn)品指令和引腳完 全兼容。片上flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位cpu 和在系統(tǒng) 可編程flash,使得at89s52為眾多嵌入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。at89s52具有以下標(biāo)準(zhǔn)功能: 3.2 溫度傳
5、感器工作原理ds18b20溫度傳感器是美國(guó)dallas半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過簡(jiǎn)單的編程實(shí)現(xiàn)位的數(shù)字值讀數(shù)方式。ds18b20的性能特點(diǎn)如下: 獨(dú)特的單線接口僅需一個(gè)端口引腳進(jìn)行通訊 簡(jiǎn)單的多點(diǎn)分布應(yīng)用 無需外部器件 可通過數(shù)據(jù)線供電 零待機(jī)功耗 測(cè)溫范圍-55+125,以0.5遞增。華氏器件-67+2570f,以0.90f 遞增 溫度以9 位數(shù)字量讀出 溫度數(shù)字量轉(zhuǎn)換時(shí)間200ms(典型值) 用戶可定義的非易失性溫度報(bào)警設(shè)置 報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件3.3 溫
6、度傳感器接口電路4 proteus 仿真圖4.1 仿真圖利用proteus按電路圖排放元器件以及連接線路,用keil c51將寫好的c語言進(jìn)行仿真,獲得的仿真圖如下所示:圖4.1電路仿真圖4.2 仿真程序/ds18b20溫度檢測(cè)及其液晶顯示#include<reg52.h> /包含單片機(jī)寄存器的頭文件#include<intrins.h> /包含_nop_()函數(shù)定義的頭文件#include<stdio.h>#define uint unsigned int/宏定義unsigned int為 uint,為了使程序更簡(jiǎn)潔與出現(xiàn)少錯(cuò)誤。以下uchar同#defi
7、ne uchar unsigned charuchar code digit11="0123456789-" /定義字符數(shù)組顯示數(shù)字unsigned char code str="max:" /說明顯示的是溫度unsigned char code ostr="min:"uchar code str1="welcome to use"/開機(jī)啟動(dòng)時(shí)的說明文字uchar code str2="my work 2012" /開機(jī)說明文字uchar code error=" ds18b20 er
8、ror" /說明沒有檢測(cè)到ds18b20uchar code error1=" please check" /說明沒有檢測(cè)到ds18b20uchar code temp="temp:" /說明顯示的是溫度uchar code user=0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00; /溫度單位uchar flag,tltemp;/負(fù)溫度標(biāo)志 和臨時(shí)暫存變量/*以下是對(duì)液晶模塊的操作程序*/sbit rs=p20; /寄存器選擇位,將rs位定義為p2.0引腳sbit rw=p21; /讀寫選擇位,將rw位定義為p
9、2.1引腳sbit e=p22; /使能信號(hào)位,將e位定義為p2.2引腳sbit bf=p07; /忙碌標(biāo)志位,將bf位定義為p0.7引腳/*函數(shù)功能:延時(shí)1ms(3j+2)*i=(3×33+2)×10=1010(微秒),可以認(rèn)為是1毫秒*/void delay1ms() uchar i,j; for(i=0;i<4;i+) for(j=0;j<33;j+) ; /*函數(shù)功能:延時(shí)若干毫秒入口參數(shù):n*/ void delaynms(uint n) uint i;for(i=0;i<n;i+) delay1ms(); /*以下是對(duì)蜂鳴器的定義和操作*/sb
10、it beep=p36;void delay500us() uchar i,j; for(i=0;i<2;i+) for(j=0;j<33;j+); void beep( ) uint i; for(i=0;i<1000;i+) beep=0; delay500us(); beep=1; delay500us(); beep=1; delaynms(1000);/*函數(shù)功能:判斷液晶模塊的忙碌狀態(tài)返回值:result。result=1,忙碌;result=0,不忙*/bit busytest(void) bit result;rs=0; /根據(jù)規(guī)定,rs為低電平,rw為高電平
11、時(shí),可以讀狀態(tài) rw=1; e=1; /e=1,才允許讀寫 _nop_(); /空操作 _nop_(); _nop_(); _nop_(); /空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間 result=bf; /將忙碌標(biāo)志電平賦給result e=0; /將e恢復(fù)低電平 return result; /*函數(shù)功能:將模式設(shè)置指令或顯示地址寫入液晶模塊入口參數(shù):dictate*/void writeinstruction (uchar dictate) while(busytest()=1); /如果忙就等待 rs=0; /根據(jù)規(guī)定,rs和r/w同時(shí)為低電平時(shí),可以寫入指令 rw=0; e=0; /e置
12、低電平(根據(jù)書上表7.7,寫指令時(shí),e為高脈沖, / 就是讓e從0到1發(fā)生正跳變,所以應(yīng)先置"0" _nop_(); _nop_(); /空操作兩個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間 p0=dictate; /將數(shù)據(jù)送入p0口,即寫入指令或地址 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間 e=1; /e置高電平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間 e=0; /當(dāng)e由高電平跳變成低電平時(shí),液晶模塊開始執(zhí)行命令 /*函數(shù)功能:指定字符顯示的實(shí)際地址入
13、口參數(shù):x*/ void writeaddress(uchar x) writeinstruction(x|0x80); /顯示位置的確定方法規(guī)定為"80h+地址碼x" /*函數(shù)功能:將數(shù)據(jù)(字符的標(biāo)準(zhǔn)ascii碼)寫入液晶模塊入口參數(shù):y(為字符常量)*/ void writedata(uchar y) while(busytest()=1); rs=1; /rs為高電平,rw為低電平時(shí),可以寫入數(shù)據(jù) rw=0; e=0; /e置低電平(根據(jù)書上表7.7,寫指令時(shí),e為高脈沖, / 就是讓e從0到1發(fā)生正跳變,所以應(yīng)先置"0" p0=y; /將數(shù)據(jù)送入
14、p0口,即將數(shù)據(jù)寫入液晶模塊 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間 e=1; /e置高電平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間 e=0; /當(dāng)e由高電平跳變成低電平時(shí),液晶模塊開始執(zhí)行命令 /*函數(shù)功能:對(duì)lcd的顯示模式進(jìn)行初始化設(shè)置*/void lcdinitiate(void) delaynms(15); /延時(shí)15ms,首次寫指令時(shí)應(yīng)給lcd一段較長(zhǎng)的反應(yīng)時(shí)間 writeinstruction(0x38); /顯示模式設(shè)置:16×2
15、顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口delaynms(5); /延時(shí)5ms,給硬件一點(diǎn)反應(yīng)時(shí)間 writeinstruction(0x38);delaynms(5); /延時(shí)5ms,給硬件一點(diǎn)反應(yīng)時(shí)間writeinstruction(0x38); /連續(xù)三次,確保初始化成功delaynms(5); /延時(shí)5ms,給硬件一點(diǎn)反應(yīng)時(shí)間writeinstruction(0x0c); /顯示模式設(shè)置:顯示開,無光標(biāo),光標(biāo)不閃爍delaynms(5); /延時(shí)5ms,給硬件一點(diǎn)反應(yīng)時(shí)間writeinstruction(0x06); /顯示模式設(shè)置:光標(biāo)右移,字符不移delaynms(5); /延時(shí)5
16、ms,給硬件一點(diǎn)反應(yīng)時(shí)間writeinstruction(0x01); /清屏幕指令,將以前的顯示內(nèi)容清除delaynms(5); /延時(shí)5ms,給硬件一點(diǎn)反應(yīng)時(shí)間 /*以下是ds18b20的操作程序 */ sbit dq=p32;uchar time; /設(shè)置全局變量,專門用于嚴(yán)格延時(shí)/*函數(shù)功能:將ds18b20傳感器初始化,讀取應(yīng)答信號(hào)出口參數(shù):flag */bit init_ds18b20(void) bit flag; /儲(chǔ)存ds18b20是否存在的標(biāo)志,flag=0,表示存在;flag=1,表示不存在 dq = 1; /先將數(shù)據(jù)線拉高 for(time=0;time<2;ti
17、me+) /略微延時(shí)約6微秒 ; dq = 0; /再將數(shù)據(jù)線從高拉低,要求保持480960us for(time=0;time<200;time+) /略微延時(shí)約600微秒 ; /以向ds18b20發(fā)出一持續(xù)480960us的低電平復(fù)位脈沖 dq = 1; /釋放數(shù)據(jù)線(將數(shù)據(jù)線拉高) for(time=0;time<10;time+) ; /延時(shí)約30us(釋放總線后需等待1560us讓ds18b20輸出存在脈沖) flag=dq; /讓單片機(jī)檢測(cè)是否輸出了存在脈沖(dq=0表示存在) for(time=0;time<200;time+) /延時(shí)足夠長(zhǎng)時(shí)間,等待存在脈沖輸
18、出完畢 ; return (flag); /返回檢測(cè)成功標(biāo)志/*函數(shù)功能:從ds18b20讀取一個(gè)字節(jié)數(shù)據(jù)出口參數(shù):dat*/ uchar readonechar(void) uchar i=0;uchar dat; /儲(chǔ)存讀出的一個(gè)字節(jié)數(shù)據(jù)for (i=0;i<8;i+) dq =1; / 先將數(shù)據(jù)線拉高 _nop_(); /等待一個(gè)機(jī)器周期 dq = 0; /單片機(jī)從ds18b20讀書據(jù)時(shí),將數(shù)據(jù)線從高拉低即啟動(dòng)讀時(shí)序 _nop_(); /等待一個(gè)機(jī)器周期 dq = 1; /將數(shù)據(jù)線"人為"拉高,為單片機(jī)檢測(cè)ds18b20的輸出電平作準(zhǔn)備 for(time=0;t
19、ime<2;time+) ; /延時(shí)約6us,使主機(jī)在15us內(nèi)采樣 dat>>=1; if(dq=1) dat|=0x80; /如果讀到的數(shù)據(jù)是1,則將1存入datelsedat|=0x00;/如果讀到的數(shù)據(jù)是0,則將0存入dat /將單片機(jī)檢測(cè)到的電平信號(hào)dq存入ri for(time=0;time<8;time+) ; /延時(shí)3us,兩個(gè)讀時(shí)序之間必須有大于1us的恢復(fù)期 return(dat); /返回讀出的十六進(jìn)制數(shù)據(jù)/*函數(shù)功能:向ds18b20寫入一個(gè)字節(jié)數(shù)據(jù)入口參數(shù):dat*/ writeonechar(uchar dat)uchar i=0;for (
20、i=0; i<8; i+) dq =1; / 先將數(shù)據(jù)線拉高 _nop_(); /等待一個(gè)機(jī)器周期 dq=0; /將數(shù)據(jù)線從高拉低時(shí)即啟動(dòng)寫時(shí)序 dq=dat&0x01; /利用與運(yùn)算取出要寫的某位二進(jìn)制數(shù)據(jù), /并將其送到數(shù)據(jù)線上等待ds18b20采樣 for(time=0;time<10;time+) ;/延時(shí)約30us,ds18b20在拉低后的約1560us期間從數(shù)據(jù)線上采樣 dq=1; /釋放數(shù)據(jù)線 for(time=0;time<1;time+) ;/延時(shí)3us,兩個(gè)寫時(shí)序間至少需要1us的恢復(fù)期 dat>>=1; /將dat中的各二進(jìn)制位數(shù)據(jù)右
21、移1位 for(time=0;time<4;time+) ; /稍作延時(shí),給硬件一點(diǎn)反應(yīng)時(shí)間/*函數(shù)功能:做好讀溫度的準(zhǔn)備*/ void readyreadtemp(void) init_ds18b20(); /將ds18b20初始化writeonechar(0xcc); / 跳過讀序號(hào)列號(hào)的操作writeonechar(0x44); / 啟動(dòng)溫度轉(zhuǎn)換 delaynms(200); /轉(zhuǎn)換一次需要延時(shí)一段時(shí)間 init_ds18b20(); /將ds18b20初始化writeonechar(0xcc); /跳過讀序號(hào)列號(hào)的操作writeonechar(0xbe); /讀取溫度寄存器,前兩
22、個(gè)分別是溫度的低位和高位/*以下是與溫度有關(guān)的顯示設(shè)置 */ /*函數(shù)功能:顯示沒有檢測(cè)到ds18b20*/ void display_error(void) uchar i; writeaddress(0x00); /寫顯示地址,將在第1行第1列開始顯示 i = 0; /從第一個(gè)字符開始顯示while(errori != '0') /只要沒有寫到結(jié)束標(biāo)志,就繼續(xù)寫writedata(errori); /將字符常量寫入lcdi+; /指向下一個(gè)字符delaynms(100); /延時(shí)100ms較長(zhǎng)時(shí)間,以看清關(guān)于顯示的說明 writeaddress(0x40); /寫顯示地址,
23、將在第1行第1列開始顯示 i = 0; /從第一個(gè)字符開始顯示while(error1i != '0') /只要沒有寫到結(jié)束標(biāo)志,就繼續(xù)寫writedata(error1i); /將字符常量寫入lcdi+; /指向下一個(gè)字符delaynms(100); /延時(shí)100ms較長(zhǎng)時(shí)間,以看清關(guān)于顯示的說明while(1) /進(jìn)入死循環(huán),等待查明原因 ;/*函數(shù)功能:顯示溫度符號(hào)*/ void display_symbol(void) uchar i; writeaddress(0x40); /寫顯示地址,將在第2行第1列開始顯示 i = 0; /從第一個(gè)字符開始顯示while(tem
24、pi != '0') /只要沒有寫到結(jié)束標(biāo)志,就繼續(xù)寫writedata(tempi); /將字符常量寫入lcdi+; /指向下一個(gè)字符delaynms(50); /延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間/*函數(shù)功能:顯示溫度的小數(shù)點(diǎn)*/ void display_dot(void) writeaddress(0x49); /寫顯示地址,將在第2行第10列開始顯示 writedata('.'); /將小數(shù)點(diǎn)的字符常量寫入lcd delaynms(50); /延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間/*函數(shù)功能:顯示溫度的單位()*/ void display_cent(void) u
25、char j; writeinstruction(0x40); /設(shè)定cgram地址delaynms(5);for(j=0;j<8;j+ )writedata(userj);/寫入自定義圖形 writeaddress(0x4b);/設(shè)定屏幕上的顯示位置 delaynms(5); writedata(0x00); /從cgram里取出自定義圖形顯示/*函數(shù)功能:顯示溫度的整數(shù)部分入口參數(shù):x*/ void display_temp1(uchar x) uchar j,k,l; /j,k,l分別儲(chǔ)存溫度的百位、十位和個(gè)位j=x/100; /取百位k=(x%100)/10; /取十位l=x%1
26、00%10; /取個(gè)位 writeaddress(0x46); /寫顯示地址,將在第2行第7列開始顯示if(flag=1)/負(fù)溫度時(shí) 顯示“”writedata(digit10); /將百位數(shù)字的字符常量寫入lcd elsewritedata(digitj); /將十位數(shù)字的字符常量寫入lcdwritedata(digitk); /將十位數(shù)字的字符常量寫入lcdwritedata(digitl); /將個(gè)位數(shù)字的字符常量寫入lcddelaynms(50); /延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間 /*函數(shù)功能:顯示溫度的小數(shù)數(shù)部分入口參數(shù):x*/ void display_temp2(unsigned
27、 char x) writeaddress(0x4a); /寫顯示地址,將在第2行第11列開始顯示writedata(digitx); /將小數(shù)部分的第一位數(shù)字字符常量寫入lcddelaynms(50); /延時(shí)1ms給硬件一點(diǎn)反應(yīng)時(shí)間 /*-按鍵掃描函數(shù),返回掃描鍵值-*/uchar keyscan(void ) uchar temp; p1=0xff; p1=0xf0; temp=p1; if(temp!=0xf0) delaynms(10); if(temp!=0xf0) p1=0xfe; temp=p1; switch(temp) case(0xee):return 1;break;
28、case(0xde):return 2;break; case(0xbe):return 3;break; case(0x7e):return 5;break; /*- 寫入字符串函數(shù)-*/ void lcd_write_string(uchar x,uchar y,uchar *s) if (y = 0) writeinstruction(0x80 + x); /表示第一行 else writeinstruction(0xc0 + x); /表示第二行 while (*s) writedata(*s); s +; /*函數(shù)功能:主函數(shù)*/ void main(void) uchar num,
29、tem; char displaytemp7,displaytem7;int temph=50,templ=1; uchar i,j; uchar tl; /儲(chǔ)存暫存器的溫度低位 uchar th; /儲(chǔ)存暫存器的溫度高位 uchar tn; /儲(chǔ)存溫度的整數(shù)部分 uchar td; /儲(chǔ)存溫度的小數(shù)部分 lcdinitiate(); /將液晶初始化 delaynms(5); /延時(shí)5ms給硬件一點(diǎn)反應(yīng)時(shí)間 writeaddress(0x02); i=0; while(str1i!='0') writedata(str1i); i+; delaynms(100);writead
30、dress(0x40); j=0;while(str2j!='0') writedata(str2j); j+; delaynms(100); delaynms(3000); writeinstruction(0x01); delaynms(5);if(init_ds18b20()=1) display_error(); display_symbol(); /顯示溫度說明 display_dot(); /顯示溫度的小數(shù)點(diǎn) display_cent(); /顯示溫度的單位 while(1) /不斷檢測(cè)并顯示溫度 beep=0; flag=0;readyreadtemp(); /讀
31、溫度準(zhǔn)備 tl=readonechar(); /先讀的是溫度值低位th=readonechar(); /接著讀的是溫度值高位if(th&0xf8)!=0x00)/判斷高五位 得到溫度正負(fù)標(biāo)志flag=1;tl=tl; /取反th=th; /取反tltemp=tl+1; /低位加1tl=tltemp;if(tltemp>255) th+; /如果低8位大于255,向高8位進(jìn)1 tn=th*16+tl/16; /實(shí)際溫度值=(th*256+tl)/16,即:th*16+tl/16 /這樣得出的是溫度的整數(shù)部分,小數(shù)部分被丟棄了 td=(tl%16)*10/16; /計(jì)算溫度的小數(shù)部分
32、,將余數(shù)乘以10再除以16取整,tn=th*16+tl/16; /實(shí)際溫度值=(th*256+tl)/16,即:th*16+tl/16 /這樣得出的是溫度的整數(shù)部分,小數(shù)部分被丟棄了 td=(tl%16)*10/16; /計(jì)算溫度的小數(shù)部分,將余數(shù)乘以10再除以16取整, /這樣得到的是溫度小數(shù)部分的第一位數(shù)字(保留1位小數(shù)) display_temp1(tn); /顯示溫度的整數(shù)部分 display_temp2(td); /顯示溫度的小數(shù)部分 delaynms(10); num=keyscan(); switch(num) case 1:if(temph<127)temph+;brea
33、k;case 2:if(temph>-55)temph-;break;case 3:if(templ<127)templ+;break;case 5:if(templ>-55)templ-;break;default:break; sprintf(displaytemp,"max:%3d",temph); lcd_write_string(0x00,0,displaytemp); sprintf(displaytem,"min:%3d",templ); lcd_write_string(0x09,0,displaytem); tem=tn+(td*0.1); if(tem>temph) beep(); else if(tem<templ) beep( ); 5 系統(tǒng)的軟件設(shè)計(jì) 系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序5.1 主程序主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理ds18b20的測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025上海市寶山區(qū)青年儲(chǔ)備人才公開招聘30人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年江蘇省南通市屬事業(yè)單位招聘95人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年四川省內(nèi)江市事業(yè)單位招聘歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年四川內(nèi)江頁巖氣產(chǎn)業(yè)發(fā)展限公司員工招聘8人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025三鋼集團(tuán)三明本部招聘34人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年度二零二五年度農(nóng)產(chǎn)品實(shí)物抵押收購合同3篇
- 2025年度廣告牌廣告效果評(píng)估與優(yōu)化承包合同
- 2025婚前財(cái)產(chǎn)放棄婚后共同財(cái)產(chǎn)管理及婚姻關(guān)系維護(hù)協(xié)議3篇
- 2025年度夫妻共同投資創(chuàng)業(yè)與家庭事業(yè)發(fā)展協(xié)議書
- 2025年度工廠車間承包與工業(yè)物聯(lián)網(wǎng)技術(shù)應(yīng)用合同3篇
- (完整版)食堂管理制度及流程
- 某醫(yī)院后備人才梯隊(duì)建設(shè)方案
- 二年級(jí)上冊(cè)英語教案Unit6 Lesson22︱北京課改版
- 桂枝加龍骨牡蠣湯_金匱要略卷上_方劑加減變化匯總
- 《2021國(guó)標(biāo)建筑專業(yè)圖集資料》96S821鋼筋混凝土清水池附屬構(gòu)配件圖集
- CHEETAH高壓制備色譜操作手冊(cè)
- 水利基本建設(shè)項(xiàng)目竣工財(cái)務(wù)決算報(bào)表編制說明
- 公司勞動(dòng)工資結(jié)構(gòu)圖(doc 1頁)
- 《AFM簡(jiǎn)介實(shí)驗(yàn)》ppt課件
- 客運(yùn)公司崗位安全生產(chǎn)操作規(guī)程
- 中學(xué)學(xué)生評(píng)教實(shí)施方案
評(píng)論
0/150
提交評(píng)論