版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于單片機(jī)得溫度控制系統(tǒng)設(shè)計(jì)1、設(shè)計(jì)要求要求設(shè)計(jì)一個(gè)溫度測量系統(tǒng),在超過限制值得時(shí)候能進(jìn)行聲光報(bào)警。具體設(shè)計(jì)要求如下:①數(shù)碼管或液晶顯示屏顯示室內(nèi)當(dāng)前得溫度;②在不超過最高溫度得情況下,能夠通過按鍵設(shè)置想要得溫度并顯示 ;設(shè)有四個(gè)按鍵,分別就是設(shè)置鍵、加1鍵、減1鍵與啟動(dòng)/復(fù)位鍵③DS18B20溫度采集;④超過設(shè)置值得±0時(shí)發(fā)出超限報(bào)警,采用聲光報(bào)警,上限報(bào)警用紅燈指示,下限報(bào)警用黃燈指示,正常用綠燈指示。2、方案論證根據(jù)設(shè)計(jì)要求,本次設(shè)計(jì)就是基于單片機(jī)得課程設(shè)計(jì),由于實(shí)現(xiàn)功能比較簡單,我們學(xué)習(xí)中接觸到得5 1系列單片機(jī)完全可以實(shí)現(xiàn)上述功能,因此可以選用DS18B20。報(bào)AT89CDS18B20。報(bào)警與指示模塊中,可以選用3種不同顏色得LED燈作為指示燈,報(bào)警鳴笛采用蜂鳴器。顯示模塊有兩種方案可供選擇.方案一:使用LED數(shù)碼管顯示采集溫度與設(shè)定溫度;方案二:使用LCD液晶顯示屏來顯示米集溫度與設(shè)定溫度。LED數(shù)碼管結(jié)構(gòu)簡單,使用方便,但在使用時(shí),若用動(dòng)態(tài)顯示則需要不斷更改位選與段選信號(hào),且顯示時(shí)數(shù)碼管不斷閃動(dòng),使人眼容易疲勞;若采用靜態(tài)顯示則又需要更多硬件支持。LCD顯示屏可識(shí)別性較好,背光亮度可調(diào),而且比LED數(shù)碼管顯示更多字符,但就是編程要求比LED數(shù)碼管要高.綜合考慮之后,我選用了LCD顯示屏作為溫度顯示器件,由于顯示字符多,在進(jìn)行上下限警戒值設(shè)定時(shí)同樣可以采集并顯示當(dāng)前溫度,可以直觀得瞧到實(shí)際溫度與警戒溫度得對(duì)比。LCD顯示模塊可以選用RT1602C。3、硬件設(shè)計(jì)根據(jù)設(shè)計(jì)要求,硬件系統(tǒng)主要包含6個(gè)部分,即單片機(jī)時(shí)鐘電路、復(fù)位電路、鍵盤接口模塊、溫度采集模塊、LCD顯示模塊、報(bào)警與指示模塊。其相互聯(lián)系66如下圖1所示:硬件電路設(shè)計(jì)框圖3、1單片機(jī)時(shí)鐘電路序A形成單片機(jī)時(shí)鐘信號(hào)得方式有內(nèi)部鍵盤接口模塊時(shí)鐘方式與外部時(shí)鐘方式。得方式有內(nèi)部」硬件電路設(shè)計(jì)框圖3、1單片機(jī)時(shí)鐘電路序A形成單片機(jī)時(shí)鐘信號(hào)得方式有內(nèi)部鍵盤接口模塊時(shí)鐘方式與外部時(shí)鐘方式。得方式有內(nèi)部」本次設(shè)計(jì)采用時(shí)鐘方式,如圖02所示 >單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器LCD顯示模塊XI19報(bào)警與指示模塊11,X1AL機(jī)1SCiX2XIG\D得高增益反相放大器,引腳XTAL1與XTAL2分別為此放大器得輸入端與輸出端,其頻率范圍為1、端,其頻率范圍為1、2~12MHZ,經(jīng)由片外晶體振蕩器或陶瓷振蕩器與兩個(gè)匹GNU圖2單片機(jī)內(nèi)部時(shí)鐘方式電路配電容一起形成了一個(gè)自激振蕩電路,為單片機(jī)提供時(shí)鐘源.3、2復(fù)位電路復(fù)位就是單片機(jī)得初始化操作,其作VCCRST用就是使CPU與系統(tǒng)中得其她部件都處于一個(gè)確定得初始狀態(tài)復(fù)位就是單片機(jī)得初始化操作,其作VCCRST用就是使CPU與系統(tǒng)中得其她部件都處于一個(gè)確定得初始狀態(tài),并從這個(gè)狀態(tài)開始工作,以防止電源系統(tǒng)不穩(wěn)定造成CPC3R3—VAIkS4U工作不正常。在系統(tǒng)中,有時(shí)會(huì)出現(xiàn)工作不正常得情況,為了從異常狀態(tài)中恢復(fù)GND不正常得情況,為了從異常狀態(tài)中恢復(fù)同時(shí)也為了系統(tǒng)調(diào)試方便需要設(shè)計(jì)一個(gè)復(fù)位電路圖3單片機(jī)按鍵復(fù)位電路單片機(jī)得復(fù)位電路有上電復(fù)位與按鍵復(fù)位兩種形式 ,因?yàn)楸敬卧O(shè)計(jì)要求需要有啟動(dòng)/復(fù)位鍵,因此本次設(shè)計(jì)采用按鍵復(fù)位,如圖3。復(fù)位電路主要完成系統(tǒng)得上電復(fù)位與系統(tǒng)在運(yùn)行時(shí)用戶得按鍵復(fù)位功能。3、3鍵盤接口模塊本次設(shè)計(jì)需要得按鍵有4個(gè),本次設(shè)計(jì)需要得按鍵有4個(gè),除去GND■一個(gè)復(fù)位按鍵外,還有3個(gè)功能按鍵S1因此選擇獨(dú)立式鍵盤。如圖4,將鍵盤直接與單片機(jī)P1口得P接與單片機(jī)P1口得P1、0、P1、1、00S3y4
■5■PIO卩11P12P13P14圖4鍵盤接口模塊P1、2相連。3個(gè)鍵設(shè)計(jì)思路如下:當(dāng)按下S1鍵時(shí),系統(tǒng)進(jìn)入上下限警戒值調(diào)整狀態(tài);當(dāng)?shù)谝淮伟聪耂1鍵時(shí),進(jìn)行上限警戒值設(shè)定,當(dāng)?shù)诙伟聪耂1鍵時(shí),進(jìn)行下限警戒值設(shè)定,當(dāng)?shù)谌伟聪耂1鍵時(shí),回到正常工作狀態(tài)。在警戒值調(diào)整狀態(tài)下,按下S2鍵,上下限警戒值加1,按下S3鍵,上下限警戒值減1,正常工作狀態(tài)下,按下S2與S3鍵無作用。3、4溫度采集模塊本次設(shè)計(jì)中得溫度傳感器使用得就是DALLAS公司得單總線數(shù)字溫度傳感器DS18B20,這就是一種常用得溫度傳感器,具有體積小、硬件開銷低、抗干擾能力強(qiáng)、精度高得特點(diǎn)。DS18B20采用獨(dú)特得一線接口,具有只需要一條口線通信多點(diǎn)得能力,簡化了分布式溫度傳感應(yīng)用,無需外部元件??捎脭?shù)據(jù)總線供電,電壓范圍為3、0V至5、5V,測量溫度得范圍為一55C至+125C,在一10C至+85C范圍內(nèi)精度為±0、5C。溫度傳感器可編程得分辨率為9?12位,溫度轉(zhuǎn)換為12位數(shù)字格式最大值為750毫秒,用戶可定義得非易失性溫度報(bào)警設(shè)置值為750DS1&201?JOOMl>SIKn24]To-PlDS1&201?JOOMl>SIKn24]To-Pl3705JOncI【IlNCJNnc3705JOncI【IlNCJNnc工業(yè)系統(tǒng)、消費(fèi)電子產(chǎn)品溫度計(jì)、或任何熱敏感系統(tǒng) .由于DS18B20就是一條口線通信,所以中央微處理器與 DS18B20只有一個(gè)一條口線連接。因?yàn)槊恳粋€(gè)DS18B20得包含一個(gè)獨(dú)特得序號(hào),多個(gè)DS18B20可以同時(shí)存在于一條總線,這使得溫度傳感器放置在許多不同得地方.它得用途很多,包括空調(diào)環(huán)境控制,感測建筑物內(nèi)溫設(shè)備或機(jī)器,并進(jìn)行過程監(jiān)測與控制.圖5DS18B20封裝及引腳DS18B20得核心功能就是它得直接讀數(shù)字得溫度傳感器.溫度傳感器得精度為用戶可編程得9、10、11或12位,分別以0、5C,0、250,0、125C與
0、0625r增量遞增。在上電狀態(tài)下默認(rèn)得精度為 12位。DS18B20啟動(dòng)后保持低功耗等待狀態(tài);當(dāng)需要執(zhí)行溫度測量與AD轉(zhuǎn)換時(shí),總線控制器必須發(fā)出[44h]命令。在那之后,產(chǎn)生得溫度數(shù)據(jù)以兩個(gè)字節(jié)得形式被存儲(chǔ)到高速暫存器得溫度寄存器中,DS18B20繼續(xù)保持等待狀態(tài).當(dāng)DS18B20由外部電源供電時(shí),總線控制器在溫度轉(zhuǎn)換指令之后發(fā)起“讀時(shí)序” ,DS18B20正在溫度轉(zhuǎn)換中返回0,轉(zhuǎn)換結(jié)束返回1。如果DS18B20由寄生電源供電,除非在進(jìn)入溫度轉(zhuǎn)換時(shí)總線被一個(gè)強(qiáng)上拉拉高,否則將不會(huì)由返回值.在硬件上,DS18B20與單片機(jī)得連接有兩種方法:一種就是VDD接外部電源,GND接地,DQ與單片機(jī)得1/O口相連;另一種就是用寄生電源供電,此時(shí),VDD、GND接地,DQ接單片機(jī)得I/O口.無論就是接外部電源還就是用內(nèi)部寄生電源,I/O口線要接5kVDD、GND接地,DQ接單片機(jī)得I/O口.無論就是接外部電源還就是用內(nèi)部寄生電源,I/O口線要接5kQ左右得上拉電阻。本次設(shè)計(jì)中,采用外部電源方式,其連接方式如圖6所示。單總線DQ端接單片VCCU2VCC1/0GNDR14Jk3Di8B20機(jī)得P1、7口,DQ端接一個(gè)4、7kQ得上拉電阻,這樣單總線D上拉電阻,這樣單總線DQ在閑置狀態(tài)時(shí)GND為高電平。DS18B20外部電源連接方式3、5LCD顯示模塊在本次設(shè)計(jì)中,使用RT1602C字符型液晶顯示模塊(LCM)來設(shè)計(jì)當(dāng)前溫度與上下限警戒值得顯示電路。RT1602C字符型液晶顯示模塊就是16字X2行得采用5X7點(diǎn)陣圖形來顯示字符得液晶顯示器,采用標(biāo)準(zhǔn)得16腳接口,其引腳定義如圖7所示。引腳號(hào)引腳名說明引腳號(hào)引腳名說明1GND/VsS電源地7D08位雙向數(shù)據(jù)線2Vdd+5V電源8D13Vl液晶顯示偏壓信號(hào)9D24RS數(shù)據(jù)/命令控制,H/L10D35R/W讀/寫控制,H/L11D46E使能端12D515BLA背光源正極13D616BLK背光源負(fù)極14D7圖7RT1602C得引腳定義RT1602C得內(nèi)部結(jié)構(gòu)可以分為3個(gè)部分:LCD控制器、LCD驅(qū)動(dòng)器、LCD顯示器,其中LCD控制器采用得就是HD44780。RT1602C與單片機(jī)得連線如圖8所示.LCDil.eO2LCM得數(shù)據(jù)總線與單片機(jī)得P0口通過一個(gè)上拉電阻排相連,LCM得三條控制線RS、RW、EN分別與單片機(jī)得1/O口P2、0、P2、1、P2、2相連,第1、2引腳分別與地、電源明亮進(jìn)行調(diào)整。3、6報(bào)警與指示模塊相連,第3引腳使用一個(gè)10kQ得可調(diào)電阻對(duì)顯示屏得在本次設(shè)計(jì)中,米用圖9報(bào)警與指示模塊LED發(fā)光二極管作為系統(tǒng)指示燈,采用蜂鳴器作為報(bào)警鳴笛。當(dāng)溫度高于上限警戒值時(shí),點(diǎn)亮紅色發(fā)光二極管,蜂鳴器發(fā)出響聲;當(dāng)溫度低于下限警戒值時(shí),點(diǎn)亮P2、0、口,P2、0、口,電平,系統(tǒng)I整個(gè)報(bào)警與指示電路如圖9所示,其中綠、紅、黃色指示燈分別接單片機(jī)P2、1、P2、2口,電平拉低時(shí)點(diǎn)亮LED,蜂鳴器電路接單片機(jī)得P2、7拉高時(shí)蜂鳴器響。至此便完成了整個(gè)硬件電路得設(shè)計(jì)工作,整個(gè)系統(tǒng)得原理圖見附錄二/O分配表如下:I/O口功能說明I/O口功能說明P0、0~PO、7LCM數(shù)據(jù)口P2、1LCM讀/寫控制P1、0~P1、3鍵盤輸入P2、2LCM使能P1、7DS18B20溫度采集P2、4?P2、6LED信號(hào)輸出P2、0LCM數(shù)據(jù)/命令控制P2、7報(bào)警信號(hào)輸出4、軟件設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)得設(shè)計(jì)中,軟件設(shè)計(jì)占有重要得位置。在本次設(shè)計(jì)中,根據(jù)功能要求,可以把系統(tǒng)程序劃分為5個(gè)模塊,即主程序模塊、顯示模塊、溫度測量模塊、鍵盤掃描模塊、其它子程序模塊,如圖10所示。4、1主程序設(shè)計(jì)主程序得內(nèi)容包括單片機(jī)初始化、相關(guān)部件初始化與一些其它子程序得調(diào)用I開始初始化單片機(jī)
等。主程序清單如下,程序流程圖如圖11所示。**********.主程,序************/vo1dmain(void)?P1=0xf?P1=0xff;//初始化P1口以便讀入P2|=0x70;?P2&=0x7f;Temp_setTemp_set1=90;//上限報(bào)警溫度初值90TeTemp_set2=10;//下限報(bào)警溫度初值?De1?De1ay(500);//延時(shí)500ms啟動(dòng)1n1n1t_LCD()//LCD初始化init_18B20()init_18B20();//DS18B20初始化Display_str(0,0,st⑵;//開機(jī)界面?Display_str(0,1,str2?Display_str(0,1,str2);//開機(jī)界面Delay(2000);11主程序流程圖Display_str(0,0,str0);?D1splay_str(0,1,str1);while(1)?Key_scan();//掃描鍵盤?Reac?Key_scan();//掃描鍵盤?Reac_temp();//讀取溫度?Change();??D1splay(??D1splay();//顯示?Alarm();//指示燈與報(bào)警程序Delay(1000);?}4、4、2顯示模塊顯示程序主要完成得功能就是模式、上下限警戒值與測量溫度值得顯示 ,模塊中包含LCD初始化、顯示單個(gè)字符子函數(shù)、顯示一個(gè)字符串子函數(shù)。程序流程圖如圖12所示,LCD初始化程序如下,其它子函數(shù)程序詳見附錄一。/************LCD/************LCD初始化************/voidinit_LCD(void)P0=0;Delay(15);LCD_mand(0x38,0);Delay(5);LCD_mand(0x38,0);L4始J定位顯示位置寫顯示命令I(lǐng)寫顯示字符結(jié)束顯示Delay(5);LCD_mand(0x380)LCD_mand(0x380);圖12顯示程序流程圖Delay(5);?LCD_mand(0x38,1); //8位數(shù)據(jù)傳送,2行顯示,5*7字形?LCD_mand(0x08,1?LCD_mand(0x08,1);//關(guān)閉顯示?LCD_mand(0x01,1); //清屏LCD_mand(0x06,1); //顯示光標(biāo)右移設(shè)置LCD_mand(0x0c,1);//顯示屏打開,光標(biāo)不顯示不閃爍4、3溫度測量模塊溫度測量程序主要功能就是讀出數(shù)字溫度傳感器得溫度值. 要正確地讀出溫度值必須嚴(yán)格遵守單總線器件得命令序列,否則單總線器件不會(huì)響應(yīng)主機(jī).單總線器件得命令序列如圖13所示。溫度測量模塊程序流程圖如圖14所示,DS18B20初始化程序如下,其它子程序詳見附錄一./******** ****dS18B20初始化************/voidinit_18B20(void)?ucharx=0;?DQ=1;//DQ復(fù)位Delay_usDQ=O;Delay—us開始J初始化DS18B20(250); //精確延時(shí)大于480usJ(4); //延時(shí)//將DQ拉低DQ=1;//拉高總線Delay_us(40);?x=DQ;?Delay_us(20);開始)4、4鍵盤掃描模塊單總線命令序列本次設(shè)計(jì)屮使用了為指按鍵,除了1個(gè)復(fù)位鍵還.面已介紹。鍵盤掃描程序如卜,其它子程序詳見附錄一/********啜功能指令掃描*voidKey_scan(yoid)結(jié)束uchartemp;P1=0xff;if(P1!=0xff)Delay(20); //延時(shí)消抖if(P1!=0xff)switch(temp)讀DS18B20序列號(hào)N發(fā)跳過ROM指令DS18B20存在?圖14溫度測量程序流程圖溫有度3轉(zhuǎn)換功能鍵,具體功能前讀取關(guān)流程圖如圖1/n5所示。返回case0xfe:Key_set();break;//P1、0按下,功能選擇?case0xfd:Key_inc();break;//P1、1按下,數(shù)字加一?case0xfb:Kcy—dec();break;//Pl、2按下,數(shù)字減一defauIt:break;圖15鍵盤掃描程序流程圖4、5其它子程序程序中使用得其它子程序,包括延時(shí)子程序、顯示字符轉(zhuǎn)換子程序等,具體詳見附錄一。5、仿真分析在本次得設(shè)計(jì)中,使用了Proteus仿真軟件進(jìn)行了功能測試,具體仿真步驟及分析如下。(1)按照原理圖,從Proteus元件庫中找出對(duì)應(yīng)元件,搭建硬件仿真電路,將程序燒寫到單片機(jī)中,仿真圖見附錄三。1or,當(dāng)前溫度為25C,(2)點(diǎn)擊運(yùn)行按鈕開始仿真,初始上下限值為9or與當(dāng)前模式為N正常工作,綠燈亮,1or,當(dāng)前溫度為25C,(3)按下S1鍵,進(jìn)入上限警戒值設(shè)置模式H,此時(shí)按S2、S3鍵可以進(jìn)行上限值設(shè)定,同時(shí)溫度正常顯示,設(shè)置上限值80r,如圖17.Hi^h=S致匚LOW:lOC
nodesHDeg:2SC亠一
S2、S3鍵可以進(jìn)行下18。(4)再次按下S1鍵,進(jìn)入下限警戒值設(shè)置設(shè)定仿真圖匕時(shí)按限值設(shè)定,同時(shí)溫度正常顯示S2、S3鍵可以進(jìn)行下18。、#-MjI■■E07r_■—rFJ*g氓倫SJtAAA*?、#-MjI■■E07r_■—rFJ*g氓倫SJtAAA*?li4鼻RP14a-□.i-{dTWE"需"EEP-:JJl3L£fi:SPJ.4SaJ4i圖18下限值設(shè)定仿真圖(5)再次按下S1鍵,返回正常模式N,調(diào)節(jié)DS18B20溫度,測量溫度隨之
改變,降低溫度,超過下限值5C以下時(shí)黃燈亮,蜂鳴器報(bào)警,如圖19。CH■L£?皆0亠■打!_?」r:、ZR耳2El^>DrliTMk?JJH-mFT*、水討巧■STTjbo中Nrr^rfC'rvCH■L£?皆0亠■打!_?」r:、ZR耳2El^>DrliTMk?JJH-mFT*、水討巧■STTjbo中Nrr^rfC'rvrtf'Kk■"ft-曠,KtJlAfcR--LU-■IN
■JUA
_ux圖19下限報(bào)警仿真圖4iL 1R5.1(6)升高溫度,超過上限值5C以上時(shí),黃燈亮,蜂鳴器報(bào)警,如圖20。PF1r.Highi!39€Lou;2eCirii<td^j_M0?專斗8較丘雖艮邑薔?址亠SiEssisaai-uiL*lnEMECM>J」I?JE/NEUr?4#iMPOiAlAlMpaTcairr?仆.:|-?廿〉*叱:恒「■|^rv>^nbcMv>rmn召-a_xits2Fl斗盧峠diE
■■”斤--M-VkAt—-1£I■??UdkTIfIso、b圖20上限報(bào)警仿真圖(7)按下S4鍵,單片機(jī)復(fù)位。在本次仿真中,可以瞧出,本次設(shè)計(jì)得硬件電路與軟件程序均能成功仿真出來,設(shè)計(jì)要求得各種功能均已達(dá)到。6、總結(jié)本次課程設(shè)計(jì)為期一周,到此已全部結(jié)束。回想一周中得設(shè)計(jì)過程,我深深感覺收獲良多。由于從前只就是在理論上學(xué)習(xí)了單片機(jī)以及各種其它知識(shí),即使就是實(shí)驗(yàn)也只就是按照實(shí)驗(yàn)指導(dǎo)書進(jìn)行操作,并沒有實(shí)際得獨(dú)立設(shè)計(jì)一個(gè)系統(tǒng),因此在剛開始接觸本次課程設(shè)計(jì)時(shí),有一點(diǎn)無從下手得感覺.后來通過查閱相關(guān)資料,漸漸開始了解課程設(shè)計(jì)得一般過程,開始明白一些元器件得相關(guān)作用與編程實(shí)現(xiàn)方法,并在此期間通過不斷深入得學(xué)習(xí)與鍛煉,開始漸漸能熟練運(yùn)用與熟練編程起來.通過本次計(jì)算機(jī)控制技術(shù)得課程設(shè)計(jì),我更深層次得把理論知識(shí)與實(shí)際設(shè)計(jì)結(jié)合在一起,鍛煉了我得綜合運(yùn)用所學(xué)得專業(yè)基礎(chǔ)知識(shí)與解決實(shí)際工程問題得能力。同時(shí)也提升了我查閱文獻(xiàn)資料、設(shè)計(jì)手冊、設(shè)計(jì)規(guī)范以及電腦制圖等其她知識(shí)能力水平。對(duì)各種系統(tǒng)得適用條件,各種設(shè)備得選用標(biāo)準(zhǔn),各種管道得安裝方式,我都就是隨著設(shè)計(jì)得不斷深入而逐漸熟悉并學(xué)會(huì)應(yīng)用得。并且 ,通過對(duì)整體得掌控,對(duì)局部得取舍,對(duì)細(xì)節(jié)得斟酌處理,以及繪圖得技巧都使我在設(shè)計(jì)領(lǐng)域得能力得到了鍛煉,得到了較豐富經(jīng)驗(yàn).最后,通過這次得課程設(shè)計(jì),我也深刻地認(rèn)識(shí)到,只有將書本與具體得實(shí)踐相結(jié)合,才會(huì)有真正得收獲,才能鞏固自己得所學(xué),認(rèn)識(shí)到自己得不足,同時(shí)我們也要有一種積極學(xué)習(xí)得態(tài)度 ,時(shí)代在進(jìn)步我們也要跟著時(shí)代前進(jìn),要不斷學(xué)習(xí),不斷創(chuàng)新,用自己得知識(shí)與行動(dòng)來證明自己得價(jià)值。本次課程設(shè)計(jì)以單片機(jī)為核心,介紹了用DS18B20溫度傳感器進(jìn)行溫度采集,并將其傳輸給AT89C51單片機(jī)進(jìn)行處理再送到LCD顯示屏顯示.在此期間可以通過按鍵進(jìn)行上下限警戒值設(shè)置,通過LED與蜂鳴器進(jìn)行指示與報(bào)警.本文就是采用模塊化得方式進(jìn)行敘述,對(duì)各模塊得設(shè)計(jì)進(jìn)行了比較詳細(xì)地闡述,并著重分析硬件搭建過程與系統(tǒng)軟件得設(shè)計(jì)過程,使用單片機(jī)C語言進(jìn)行程序沒計(jì)本次設(shè)計(jì)得基于DS18B20得溫度測量系統(tǒng)就是一個(gè)分布式得溫度測量系統(tǒng) ,它可以遠(yuǎn)程對(duì)溫度實(shí)現(xiàn)測量與監(jiān)控,廣泛應(yīng)用于電力工業(yè)、煤礦、森林、火災(zāi)、高層建筑等場合。
本設(shè)計(jì)應(yīng)用性比較強(qiáng),可以應(yīng)用在倉庫溫度、大棚溫度、機(jī)房溫度、水池等得監(jiān)控.當(dāng)然,本次設(shè)計(jì)還存在一些不足,例如在本次設(shè)計(jì)中,由于時(shí)間較短,警戒值只就是在1~99C之間,沒有能夠擴(kuò)展到負(fù)溫度與100C以上;在本次設(shè)計(jì)中只就是用了4個(gè)獨(dú)立按鍵,實(shí)現(xiàn)簡單得上下限警戒值設(shè)定,操作較麻煩,如果能夠設(shè)計(jì)出多按鍵得矩陣式鍵盤,則能夠?qū)囟冗M(jìn)行很方便得設(shè)定。此外如果把本設(shè)計(jì)計(jì)出多按鍵得矩陣式鍵盤,則能夠?qū)囟冗M(jìn)行很方便得設(shè)定。此外如果把本設(shè)計(jì)方案擴(kuò)展為多點(diǎn)溫度控制,加上上位機(jī),方案擴(kuò)展為多點(diǎn)溫度控制,加上上位機(jī),則可以實(shí)現(xiàn)遠(yuǎn)程溫度監(jiān)控系統(tǒng),將具有更大得應(yīng)用價(jià)值。7、參考文獻(xiàn)[1][1]潘新民,王燕芳、微型計(jì)算機(jī)控制技術(shù)[M卜北京:電子工業(yè)出版社,#incl#includevabsacc、h>2014[2]王迎旭、單片機(jī)原理與應(yīng)用[M]、北京:機(jī)械工業(yè)出版社,2013[3] 康華光、電子技術(shù)基礎(chǔ)[M]、北京:高等教育出版社,2013[4]周正華,唐寧RT1602C與FPGA接口技術(shù)[J]、中國科技信息,2008(10)[5]廖琪梅,韓彬等、基于DS18B20得溫度測量儀[[5]廖琪梅,韓彬等、件,2008(2)附錄一:程序清單#include〈reg51、h>h〉#include<intrinsh〉#defineucharunsignedchar#defineuintunsignedint#defineBUSY0x80VoidDelay(uint);Voidinit—LCD(void);VoidLCD—mand(uchar,uchar);voidLCD^pata(uchar);voidReadyLCD(void);voidDisplay_char(uchar,uchar,uchar);
VoidDisplay_str(uchar,uchar,ucharcode*Data);void Change(void);VoidDisplay(void);voidinit_18B20(void);ucharRead_l8B20(void);voidWrite—18B20(uchar);voidRead_temp(Void);VoidDe1ay_us(uchari);voidKey_scanV(oid);voidKey_set(void);VoidKey_inc(void);voidKey_dec(void);voidA1arm(void))sbitLCD_RS=P2八0;sbitLCD_R毎P2M;sbitLCD_EN=P2八2sbitDQ=P1八7;sbitNormal=P2八4;sbitAlarm_H=卩2八5;sbitAlarm_L=P2人6;sbitA1arm_BEEP=P2八7;ucharSet_f1ag=0;ucharTemp_mea,Temp_set1,Temp_set2;ucharTemp—high_1,Temp_high_2;ucharTemp_low_1,Temp_low_2;ucharTemp_true_1,Temp_true_2;externucharcodestr0[]={"High:CLow:C"};Deg:C"};externucharcodestr1[]={"Deg:C"};externucharcodestr2[]={”Hellow!!”;}//********延時(shí)kms** ******/externucharcodestr3[]={"0123456789';eXternueXternucharcodemode[]={"NHL”';/********主程序*******/voidmain(void)?P1=0xff;?P2I=0x70;P2&=0X7f;Temp_set1=90;Temp_set1=90;//上限報(bào)警溫度初值90Ternp_set2=10;//下限報(bào)警溫度初值10Delay(500);//延時(shí)500ms啟動(dòng)init_LCinit_LCD();//LCD初始化?init_?init_18B20();//DS18B20初始化?Display_str(0,0,str2);//開機(jī)界面?Display_str(0,0,str2);//開機(jī)界面?Display_str(0,1,str2);//開機(jī)界面?Delay(2000);?Display_str(0,0,str0);?Display_str(0,1,str1);?while(1)Key_scan();Key_scan();//掃描鍵盤Read—temp();//讀取溫度??Change();Display();Display();//顯示Alarm();//指示燈與報(bào)警程序?Delay(1000);{{voidDelay(uintk)uinti,j;?for(i=0;i〈k;i++)for(j=0;jv60;j++)???;?}/********顯示模塊********//********LCD初始化********/voidinit_LCD(void)P0=0;De1ay(15);?LCD_mand(0x38,0);Delay(5);?LCD_mand(0x38,0);?Delay(5);?LCD_mand(0x38,0);?De1ay(5);?LCD_mand(0x38,1);//8位數(shù)據(jù)傳送,2行顯示,5*7字形LCD_mand(0x08,1); //關(guān)閉顯示?LCD_mand(0x01,1); //清屏?LCD_mand(0x06,1); //顯示光標(biāo)右移設(shè)置?LCD_mand(0x0c,1); //顯示屏打開,光標(biāo)不顯示不閃爍
/********寫指令數(shù)據(jù)到LCD***** ***/void LCD_mand(ucharLC,ucharBC?if(BC)ReadyLCD();?PO=LC?LCD衛(wèi)S=0//選中指令寄存器?LCD_RW=O;//寫模式LCD_EN=;1?_nop_();_nop_();_nop_();LCD_EN=O;/********寫顯示數(shù)據(jù)到LCD********/voidLCD_Data(ucharLD)?ReadyLCD();?P0=LD;LCD_RLCD_RS=1;//選中數(shù)據(jù)寄存器LCD_RW=0;//寫模式LCD_EN=1;_nop_();?_nop_();_nop_();LCD_EN=0;/********檢測LCD忙狀態(tài)********/VoidReadyLCD(void){{P0=0xff;LCD_EN=1;LCD_RS=0;LCD_RV=1;—nop_();while(P0&BUSf)?{LCD_EN=0;?_nop_();?_nop_();?LCD_EN=1;_nop_();?_nop_();LCD_EN=0;/********顯示一個(gè)字符********/voidDisplay_char(ucharX,ucharY,ucharData)Y&=0x01;X&=0x0f;?if(Y)X|=0x40;?X|=0x80;LCD_mand(X,0);?LCD_Data(Data);/********顯示一串字符********/voidDisplay_str(ucharX,ucharY,ucharcode*Data)?uCharList=0;Y&=0x01;?X&=0x0f;while(X〈16)?{??Display_char(X,YData[List]);List++;X++;/********顯示字型轉(zhuǎn)換********/voidChange(void)Temp_high_仁Temp_set1/10;Temp_high_2=Temp—set1%10;Ternp_low—仁Ternp_set210;Temp_low_2=Temp_set2%10;Ternp_true_1=Temp_mea/10;Ternp_true_2=Temp_mea%10;/********顯示子程序********/voidDisplay(void)?Display—char(5,0,str3[Temp_high_1]);?Display_char(6,0,str3[Temp_high_2]);?Display_char(13,0,str3[Temp_low_1]);?Display_char(14,0,str3[Temp_low_2]);Display_char(5,1,mode[Set_flag]);?Display_char(13,1,str3[Temp_true_1]);
?Display_char(14,1,str3[Temp_true_2]);/********溫度測量模塊********//***?ucharinit_18B20(Void)x=0;DQ=1;//DQ復(fù)位?De1ay_us(4);//***?ucharinit_18B20(Void)x=0;DQ=1;//DQ復(fù)位?De1ay_us(4);//延時(shí)?DQ=0;//將DQ拉低?Delay_us(250);//精確延時(shí)大于480usDQ=1;//DQ=1;Delay—us(40);?x=DQ;?De1ay_us(20);/********從DS18B20讀取一個(gè)字節(jié)數(shù)據(jù)********/ucharRead_18B20(void)?uchari=0;uchardat=0;?for(i=8;i〉0;i——)?DQ=0;_nop_();dat>>=1;?DQ=1;??Delay_us(1);if(DQ)dat|=0x80;??De1ay_us(10);?}return(dat);/********向DS18B20寫入一個(gè)字節(jié)數(shù)據(jù)********/voidWrite_18B20(uchardat)uchari=0;for(i=8;i〉0;i-—)DQ=0;_nop_();??DQ=dat&0x01;?Delay_us(l0);??DQ=1;dat〉>=1;Delay_us(10);/********從DS18B20讀取溫度********/VoidRead_temp(void)uchara=0;?ucharb=0;?uchart=0;init_18B20();?Write_18B20(0xcc);Write_18B20(0x44);?init_18B20();
?Write_18B20(0xcc);Write_18B20(0xbe);?a=Read_18B20();?b=Read_18B20();t<<=8;?t=t|a;Temp_mea=t*(0、0Temp_mea=t*(0、0625);/********精確延時(shí)********/voidDelay_us(uchari)while(--i);/********鍵盤掃描程序********/voidKey_scan(void)uchartemp;P1=0xff;1f(P1!=0
溫馨提示
- 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至2031年中國信息管理發(fā)布平臺(tái)行業(yè)投資前景及策略咨詢研究報(bào)告
- 智能家居場景應(yīng)用與服務(wù)優(yōu)化方案
- 2024年紅磚銷售協(xié)議模板版B版
- 信息安全保障體系構(gòu)建與實(shí)施指南
- 2024年網(wǎng)上商城品牌入駐合作協(xié)議范本大全3篇
- 2024年版影視制作合同范本
- 虛擬現(xiàn)實(shí)體驗(yàn)館用戶體驗(yàn)免責(zé)合同協(xié)議
- 二零二五年度市政給排水管網(wǎng)維護(hù)保養(yǎng)合同2篇
- 企業(yè)并購及戰(zhàn)略合作協(xié)議
- 2024洗衣店與汽車4S店合作內(nèi)飾清潔保養(yǎng)協(xié)議3篇
- 光譜報(bào)告格式
- 英法核動(dòng)力裝置
- GB/T 41837-2022溫泉服務(wù)溫泉水質(zhì)要求
- YS/T 79-2006硬質(zhì)合金焊接刀片
- 考研考博-英語-山東師范大學(xué)押題密卷附帶答案詳解篇
- 實(shí)用性閱讀與交流任務(wù)群設(shè)計(jì)思路與教學(xué)建議
- 中醫(yī)診療器具清洗消毒(醫(yī)院感染防控專家課堂培訓(xùn)課件)
- 通風(fēng)設(shè)施標(biāo)準(zhǔn)
- 藥廠生產(chǎn)車間現(xiàn)場管理-PPT課件
- 軸與孔標(biāo)準(zhǔn)公差表
- 防火門施工方案
評(píng)論
0/150
提交評(píng)論