




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.基于單片機的溫度控制系統(tǒng)設(shè)計1.設(shè)計要求要求設(shè)計一個溫度測量系統(tǒng),在超過限制值的時候能進行聲光報警。具體設(shè)計要求如下:數(shù)碼管或液晶顯示屏顯示室內(nèi)當前的溫度;在不超過最高溫度的情況下,能夠通過按鍵設(shè)置想要的溫度并顯示;設(shè)有四個按鍵,分別是設(shè)置鍵、加1鍵、減1鍵和啟動/復(fù)位鍵;ds18b20溫度采集;超過設(shè)置值的±5時發(fā)出超限報警,采用聲光報警,上限報警用紅燈指示,下限報警用黃燈指示,正常用綠燈指示。2.方案論證根據(jù)設(shè)計要求,本次設(shè)計是基于單片機的課程設(shè)計,由于實現(xiàn)功能比較簡單,我們學(xué)習(xí)中接觸到的51系列單片機完全可以實現(xiàn)上述功能,因此可以選用at89c51單片機。溫度采集直接可以用設(shè)
2、計要求中所要求的ds18b20。報警和指示模塊中,可以選用3種不同顏色的led燈作為指示燈,報警鳴笛采用蜂鳴器。顯示模塊有兩種方案可供選擇。方案一:使用led數(shù)碼管顯示采集溫度和設(shè)定溫度;方案二:使用lcd液晶顯示屏來顯示采集溫度和設(shè)定溫度。led數(shù)碼管結(jié)構(gòu)簡單,使用方便,但在使用時,若用動態(tài)顯示則需要不斷更改位選和段選信號,且顯示時數(shù)碼管不斷閃動,使人眼容易疲勞;若采用靜態(tài)顯示則又需要更多硬件支持。lcd顯示屏可識別性較好,背光亮度可調(diào),而且比led數(shù)碼管顯示更多字符,但是編程要求比led數(shù)碼管要高。綜合考慮之后,我選用了lcd顯示屏作為溫度顯示器件,由于顯示字符多,在進行上下限警戒值設(shè)定時
3、同樣可以采集并顯示當前溫度,可以直觀的看到實際溫度與警戒溫度的對比。lcd精品.顯示模塊可以選用rt1602c。3.硬件設(shè)計根據(jù)設(shè)計要求,硬件系統(tǒng)主要包含6個部分,即單片機時鐘電路、復(fù)位電路、鍵盤接口模塊、溫度采集模塊、lcd顯示模塊、報警與指示模塊。其相互聯(lián)系如下圖1所示:單片機時鐘電路復(fù)位電路鍵盤接口模塊溫度采集模塊單 片 機lcd顯示模塊報警與指示模塊圖1 硬件電路設(shè)計框圖3.1單片機時鐘電路圖2 單片機內(nèi)部時鐘方式電路形成單片機時鐘信號的方式有內(nèi)部時鐘方式和外部時鐘方式。本次設(shè)計采用內(nèi)部時鐘方式,如圖2所示。單片機內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳xtal1和xtal2分
4、別為此放大器的輸入端和輸出端,其頻率范圍為1.212mhz,經(jīng)由片外晶體振蕩器精品.或陶瓷振蕩器與兩個匹配電容一起形成了一個自激振蕩電路,為單片機提供時鐘源。3.2復(fù)位電路圖3 單片機按鍵復(fù)位電路復(fù)位是單片機的初始化操作,其作用是使cpu和系統(tǒng)中的其他部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,以防止電源系統(tǒng)不穩(wěn)定造成cpu工作不正常。在系統(tǒng)中,有時會出現(xiàn)工作不正常的情況,為了從異常狀態(tài)中恢復(fù),同時也為了系統(tǒng)調(diào)試方便,需要設(shè)計一個復(fù)位電路。單片機的復(fù)位電路有上電復(fù)位和按鍵復(fù)位兩種形式,因為本次設(shè)計要求需要有啟動/復(fù)位鍵,因此本次設(shè)計采用按鍵復(fù)位,如圖3。復(fù)位電路主要完成系統(tǒng)的上電復(fù)位和
5、系統(tǒng)在運行時用戶的按鍵復(fù)位功能。3.3鍵盤接口模塊圖4 鍵盤接口模塊本次設(shè)計需要的按鍵有4個,除去一個復(fù)位按鍵外,還有3個功能按鍵,因此選擇獨立式鍵盤。如圖4,將鍵盤直接與單片機p1口的p1.0、p1.1、p1.2相連。3個鍵設(shè)計思路如下:當按下s1鍵時,系統(tǒng)進入上下限警戒值調(diào)整狀態(tài);當?shù)谝淮伟聪聅1鍵時,進行上限警戒值設(shè)定,當?shù)诙伟聪聅1鍵時,進行下限警戒值設(shè)定,當?shù)谌伟聪聅1鍵時,回到正常工作狀態(tài)。在警戒值調(diào)整狀態(tài)下,按下s2鍵,上下限警戒值加1,按下s3鍵,上下限警戒值減1,正常工作狀態(tài)下,按下s2和s3鍵無作用。精品.3.4溫度采集模塊本次設(shè)計中的溫度傳感器使用的是dallas公司
6、的單總線數(shù)字溫度傳感器ds18b20,這是一種常用的溫度傳感器,具有體積小、硬件開銷低、抗干擾能力強、精度高的特點。ds18b20采用獨特的一線接口,具有只需要一條口線通信多點的能力,簡化了分布式溫度傳感應(yīng)用,無需外部元件。可用數(shù)據(jù)總線供電,電壓范圍為3.0 v至5.5v,測量溫度的范圍為-55至+125 ,在-10至+85范圍內(nèi)精度為±0.5。溫度傳感器可編程的分辨率為912位,溫度轉(zhuǎn)換為12位數(shù)字格式最大值為750毫秒,用戶可定義的非易失性溫度報警設(shè)置,應(yīng)用范圍包括恒溫控制、工業(yè)系統(tǒng)、消費電子產(chǎn)品溫度計、或任何熱敏感系統(tǒng)。由于ds18b20是一條口線通信,所以中央微處理器與ds1
7、8b20只有一個一條口線連接。因為每一個ds18b20的包含一個獨特的序號,多個ds18b20可以同時存在于一條總線,這使得溫度傳感器放置在許多不同的地方。它的用途很多,包括空調(diào)環(huán)境控制,感測建筑物內(nèi)溫設(shè)備或機器,并進行過程監(jiān)測和控制。精品.圖5 ds18b20封裝及引腳ds18b20的核心功能是它的直接讀數(shù)字的溫度傳感器。溫度傳感器的精度為用戶可編程的9、10、11或12位,分別以0.5,0.25,0.125和0.0625增量遞增。在上電狀態(tài)下默認的精度為12位。ds18b20啟動后保持低功耗等待狀態(tài);當需要執(zhí)行溫度測量和ad轉(zhuǎn)換時,總線控制器必須發(fā)出44h命令。在那之后,產(chǎn)生的溫度數(shù)據(jù)以兩
8、個字節(jié)的形式被存儲到高速暫存器的溫度寄存器中,ds18b20繼續(xù)保持等待狀態(tài)。當ds18b20由外部電源供電時,總線控制器在溫度轉(zhuǎn)換指令之后發(fā)起“讀時序”,ds18b20正在溫度轉(zhuǎn)換中返回0,轉(zhuǎn)換結(jié)束返回1。如果ds18b20由寄生電源供電,除非在進入溫度轉(zhuǎn)換時總線被一個強上拉拉高,否則將不會由返回值。在硬件上,ds18b20與單片機的連接有兩種方法:一種是vdd接外部電源,gnd接地,dq與單片機的i/o口相連;另一種是用寄生電源供電,此時,vdd、gnd接地,dq接單片機的i/o口。無論是接外部電源還是用內(nèi)部寄生電源,i/o口線要接5k左右的上拉電阻。本次設(shè)計中,采用外部電源方式,其連接方
9、式如圖6所示。單總線dq端接單片機的p1.7口,dq端接一個4.7k的上拉電阻,這樣單總線dq在閑置狀態(tài)時為高電平。 圖6 ds18b20外部電源連接方式3.5 lcd顯示模塊精品.在本次設(shè)計中,使用rt1602c字符型液晶顯示模塊(lcm)來設(shè)計當前溫度和上下限警戒值的顯示電路。rt1602c字符型液晶顯示模塊是16字×2行的采用5×7點陣圖形來顯示字符的液晶顯示器,采用標準的16腳接口,其引腳定義如圖7所示。引腳號引腳名說 明引腳號引腳名說 明1gnd/vss電源地7d08位雙向數(shù)據(jù)線2vdd+5v電源8d13vl液晶顯示偏壓信號9d24rs數(shù)據(jù)/命令控制,h/l10d
10、35r/w讀/寫控制,h/l11d46e使能端12d515bla背光源正極13d616blk背光源負極14d7圖7 rt1602c的引腳定義rt1602c的內(nèi)部結(jié)構(gòu)可以分為3個部分:lcd控制器、lcd驅(qū)動器、lcd顯示器,其中l(wèi)cd控制器采用的是hd44780。rt1602c與單片機的連線如圖8所示。精品.圖8 rt1602c與單片機連線lcm的數(shù)據(jù)總線與單片機的p0口通過一個上拉電阻排相連,lcm的三條控制線rs、rw、en分別與單片機的i/o口p2.0、p2.1、p2.2相連,第1、2引腳分別與地、電源相連,第3引腳使用一個10k的可調(diào)電阻對顯示屏的明亮進行調(diào)整。3.6報警與指示模塊圖9
11、 報警與指示模塊在本次設(shè)計中,采用led發(fā)光二極管作為系統(tǒng)指示燈,采用蜂鳴器作為報警鳴笛。當溫度高于上限警戒值時,點亮紅色發(fā)光二極管,蜂鳴器發(fā)出響聲;當溫度低于下限警戒值時,點亮黃色發(fā)光二極管,蜂鳴器發(fā)出響聲;溫度在正常范圍內(nèi)時,點亮黃色發(fā)光二極管。精品.整個報警與指示電路如圖9所示,其中綠、紅、黃色指示燈分別接單片機p2.0、p2.1、p2.2口,電平拉低時點亮led,蜂鳴器電路接單片機的p2.7口,電平拉高時蜂鳴器響。至此便完成了整個硬件電路的設(shè)計工作,整個系統(tǒng)的原理圖見附錄二,系統(tǒng)i/o分配表如下:i/o口功能說明i/o口功能說明p0.0p0.7lcm數(shù)據(jù)口p2.1lcm讀/寫控制p1.
12、0p1.3鍵盤輸入p2.2lcm使能p1.7ds18b20溫度采集p2.4p2.6led信號輸出p2.0lcm數(shù)據(jù)/命令控制p2.7報警信號輸出4.軟件設(shè)計單片機應(yīng)用系統(tǒng)的設(shè)計中,軟件設(shè)計占有重要的位置。在本次設(shè)計中,根據(jù)功能要求,可以把系統(tǒng)程序劃分為5個模塊,即主程序模塊、顯示模塊、溫度測量模塊、鍵盤掃描模塊、其它子程序模塊,如圖10所示。精品.主程序模塊顯 示 模 塊溫 度 測 量 模 塊鍵 盤 掃 描 模 塊其 它 子 程 序圖10 軟件設(shè)計框圖4.1主程序設(shè)計開始初始化溫度傳感器初始化單片機初始化顯示模塊鍵盤掃描讀取溫度顯示字形轉(zhuǎn)換顯示主程序的內(nèi)容包括單片機初始化、相關(guān)部件初始化和一些
13、其它子程序的調(diào)用等。主程序清單如下,程序流程圖如圖11所示。/*主程序*/void main(void)p1=0xff; /初始化p1口以便讀入p2|=0x70;p2&=0x7f;temp_set1=90; /上限報警溫度初值90temp_set2=10; /下限報警溫度初值10delay(500); /延時500ms啟動init_lcd(); /lcd初始化init_18b20(); /ds18b20初始化display_str(0,0,str2); /開機界面display_str(0,1,str2); /開機界面精品.圖11 主程序流程圖delay(2000);display_s
14、tr(0,0,str0);display_str(0,1,str1);while(1)key_scan(); /掃描鍵盤read_temp(); /讀取溫度change();display(); /顯示alarm(); /指示燈與報警程序delay(1000);4.2顯示模塊顯示程序主要完成的功能是模式、上下限警戒值和測量溫度值的顯示,模塊中包含lcd初始化、顯示單個字符子函數(shù)、顯示一個字符串子函數(shù)。程序流程圖如圖12所示,lcd初始化程序如下,其它子函數(shù)程序詳見附錄一。開始寫顯示命令定位顯示位置寫顯示字符結(jié)束顯示/*lcd初始化*/void init_lcd(void)p0=0;delay(
15、15);精品.lcd_command(0x38,0);delay(5);lcd_command(0x38,0);圖12 顯示程序流程圖delay(5);lcd_command(0x38,0);delay(5);lcd_command(0x38,1); /8位數(shù)據(jù)傳送,2行顯示,5*7字形lcd_command(0x08,1); /關(guān)閉顯示lcd_command(0x01,1); /清屏lcd_command(0x06,1); /顯示光標右移設(shè)置lcd_command(0x0c,1); /顯示屏打開,光標不顯示不閃爍4.3溫度測量模塊 溫度測量程序主要功能是讀出數(shù)字溫度傳感器的溫度值。要正確地讀
16、出溫度值必須嚴格遵守單總線器件的命令序列,否則單總線器件不會響應(yīng)主機。單總線器件的命令序列如圖13所示。溫度測量模塊程序流程圖如圖14所示,ds18b20初始化程序如下,其它子程序詳見附錄一。/*ds18b20初始化*/void init_18b20(void)uchar x=0;精品.yn開始讀ds18b20序列號初始化ds18b20ds18b20存在?溫度轉(zhuǎn)換發(fā)跳過rom指令讀取溫度返回dq=1; /dq復(fù)位delay_us(4); /延時dq=0; /將dq拉低delay_us(250); /精確延時大于480usdq=1; /拉高總線delay_us(40);x=dq;開始發(fā)rom指令
17、初始化發(fā)功能指令結(jié)束delay_us(20);圖14 溫度測量程序流程圖圖13 單總線命令序列4.4鍵盤掃描模塊本次設(shè)計中使用了4個按鍵,除了1個復(fù)位鍵還有3個功能鍵,具體功能前面已介紹。鍵盤掃描程序如下,其它子程序詳見附錄一,相關(guān)流程圖如圖15所示。/*鍵盤掃描*/void key_scan(void)uchar temp;精品.p1=0xff;if(p1!=0xff)延時去抖動開始初始化ds18b20有鍵按下?讀取鍵值y執(zhí)行鍵功能程序返回有鍵按下?nnydelay(20); /延時消抖if(p1!=0xff) temp=p1; switch(temp) case 0xfe:key_set(
18、);break; /p1.0按下,功能選擇 case 0xfd:key_inc();break; /p1.1按下,數(shù)字加一 case 0xfb:key_dec();break; /p1.2按下,數(shù)字減一 default:break; 圖15 鍵盤掃描程序流程圖4.5其它子程序精品.程序中使用的其它子程序,包括延時子程序、顯示字符轉(zhuǎn)換子程序等,具體詳見附錄一。5.仿真分析在本次的設(shè)計中,使用了proteus仿真軟件進行了功能測試,具體仿真步驟及分析如下。(1)按照原理圖,從proteus元件庫中找出對應(yīng)元件,搭建硬件仿真電路,將程序燒寫到單片機中,仿真圖見附錄三。(2)點擊運行按鈕開始仿真,初始
19、上下限值為90和10,當前溫度為25,當前模式為n正常工作,綠燈亮,蜂鳴器不響,如圖16。圖16 正常模式下仿真圖(3)按下s1鍵,進入上限警戒值設(shè)置模式h,此時按s2、s3鍵可以進行上限值設(shè)定,同時溫度正常顯示,設(shè)置上限值80,如圖17。精品.圖17 上限值設(shè)定仿真圖(4)再次按下s1鍵,進入下限警戒值設(shè)置模式l,此時按s2、s3鍵可以進行下限值設(shè)定,同時溫度正常顯示,設(shè)置下限值20,如圖18。圖18 下限值設(shè)定仿真圖(5)再次按下s1鍵,返回正常模式n,調(diào)節(jié)ds18b20溫度,測量溫度隨之改變,降低溫度,超過下限值5以下時,黃燈亮,蜂鳴器報警,如圖19。圖19 下限報警仿真圖精品.圖20
20、上限報警仿真圖(6)升高溫度,超過上限值5以上時,黃燈亮,蜂鳴器報警,如圖20。(7)按下s4鍵,單片機復(fù)位。在本次仿真中,可以看出,本次設(shè)計的硬件電路和軟件程序均能成功仿真出來,設(shè)計要求的各種功能均已達到。精品.6.總結(jié)本次課程設(shè)計為期一周,到此已全部結(jié)束?;叵胍恢苤械脑O(shè)計過程,我深深感覺收獲良多。由于從前只是在理論上學(xué)習(xí)了單片機以及各種其它知識,即使是實驗也只是按照實驗指導(dǎo)書進行操作,并沒有實際的獨立設(shè)計一個系統(tǒng),因此在剛開始接觸本次課程設(shè)計時,有一點無從下手的感覺。后來通過查閱相關(guān)資料,漸漸開始了解課程設(shè)計的一般過程,開始明白一些元器件的相關(guān)作用與編程實現(xiàn)方法,并在此期間通過不斷深入的學(xué)
21、習(xí)和鍛煉,開始漸漸能熟練運用和熟練編程起來。通過本次計算機控制技術(shù)的課程設(shè)計,我更深層次的把理論知識和實際設(shè)計結(jié)合在一起,鍛煉了我的綜合運用所學(xué)的專業(yè)基礎(chǔ)知識和解決實際工程問題的能力。同時也提升了我查閱文獻資料、設(shè)計手冊、設(shè)計規(guī)范以及電腦制圖等其他知識能力水平。對各種系統(tǒng)的適用條件,各種設(shè)備的選用標準,各種管道的安裝方式,我都是隨著設(shè)計的不斷深入而逐漸熟悉并學(xué)會應(yīng)用的。并且,通過對整體的掌控,對局部的取舍,對細節(jié)的斟酌處理,以及繪圖的技巧都使我在設(shè)計領(lǐng)域的能力得到了鍛煉,得到了較豐富經(jīng)驗。精品. 最后,通過這次的課程設(shè)計,我也深刻地認識到,只有將書本與具體的實踐相結(jié)合,才會有真正的收
22、獲,才能鞏固自己的所學(xué),認識到自己的不足,同時我們也要有一種積極學(xué)習(xí)的態(tài)度,時代在進步我們也要跟著時代前進,要不斷學(xué)習(xí),不斷創(chuàng)新,用自己的知識與行動來證明自己的價值。本次課程設(shè)計以單片機為核心,介紹了用ds18b20溫度傳感器進行溫度采集,并將其傳輸給at89c51單片機進行處理再送到lcd顯示屏顯示。在此期間可以通過按鍵進行上下限警戒值設(shè)置,通過led和蜂鳴器進行指示和報警。本文是采用模塊化的方式進行敘述,對各模塊的設(shè)計進行了比較詳細地闡述,并著重分析硬件搭建過程和系統(tǒng)軟件的設(shè)計過程,使用單片機c語言進行程序沒計。本次設(shè)計的基于ds18b20的溫度測量系統(tǒng)是一個分布式的溫度測量系統(tǒng),它可以遠
23、程對溫度實現(xiàn)測量和監(jiān)控,廣泛應(yīng)用于電力工業(yè)、煤礦、森林、火災(zāi)、高層建筑等場合。本設(shè)計應(yīng)用性比較強,可以應(yīng)用在倉庫溫度、大棚溫度、機房溫度、水池等的監(jiān)控。當然,本次設(shè)計還存在一些不足,例如在本次設(shè)計中,由于時間較短,警戒值只是在199之間,沒有能夠擴展到負溫度和100以上;在本次設(shè)計中只是用了4個獨立按鍵,實現(xiàn)簡單的上下限警戒值設(shè)定,操作較麻煩,如果能夠設(shè)計出多按鍵的矩陣式鍵盤,則能夠?qū)囟冗M行很方便的設(shè)定。此外如果把本設(shè)計方案擴展為多點溫度控制,加上上位機,則可以實現(xiàn)遠程溫度監(jiān)控系統(tǒng),將具有更大的應(yīng)用價值。精品.7.參考文獻1 潘新民,王燕芳. 微型計算機控制技術(shù) m. 北京:電子工業(yè)出版社,
24、20142 王迎旭. 單片機原理與應(yīng)用 m. 北京:機械工業(yè)出版社,20133 康華光. 電子技術(shù)基礎(chǔ) m. 北京:高等教育出版社,20134 周正華,唐寧 rt1602c與fpga接口技術(shù) j. 中國科技信息,2008(10)5 廖琪梅,韓彬等. 基于ds18b20的溫度測量儀 j. 國外電子元器件,2008(2)精品.附錄一:程序清單#include<reg51.h>#include<intrins.h>#include<absacc.h>#define uchar unsigned char精品.#define uint unsigned int#de
25、fine busy 0x80void delay(uint);void init_lcd(void);void lcd_command(uchar,uchar);void lcd_data(uchar);void readylcd(void);void display_char(uchar,uchar,uchar);void display_str(uchar,uchar,uchar code *data);void change(void);void display(void);void init_18b20(void);uchar read_18b20(void);void write_1
26、8b20(uchar);void read_temp(void);void delay_us(uchar i);void key_scan(void);void key_set(void);void key_inc(void);void key_dec(void);void alarm(void);精品.sbit lcd_rs=p20;sbit lcd_rw=p21;sbit lcd_en=p22;sbit dq=p17;sbit normal=p24;sbit alarm_h=p25;sbit alarm_l=p26;sbit alarm_beep=p27;uchar set_flag=0;
27、uchar temp_mea,temp_set1,temp_set2;uchar temp_high_1,temp_high_2;uchar temp_low_1,temp_low_2;uchar temp_true_1,temp_true_2;extern uchar code str0="high: c low: c"extern uchar code str1="mode: deg: c"extern uchar code str2=" hellow! "extern uchar code str3="01234567
28、89"extern uchar code mode="nhl"/*主程序*/void main(void)精品.p1=0xff;p2|=0x70;p2&=0x7f;temp_set1=90; /上限報警溫度初值90temp_set2=10; /下限報警溫度初值10delay(500); /延時500ms啟動init_lcd(); /lcd初始化init_18b20(); /ds18b20初始化display_str(0,0,str2); /開機界面display_str(0,1,str2); /開機界面delay(2000);display_str(0,0
29、,str0);display_str(0,1,str1);while(1)key_scan(); /掃描鍵盤read_temp(); /讀取溫度change();display(); /顯示alarm(); /指示燈與報警程序delay(1000);精品./*延時kms*/void delay(uint k)uint i,j;for(i=0;i<k;i+)for(j=0;j<60;j+);/*顯示模塊*/*lcd初始化*/void init_lcd(void)p0=0;delay(15);lcd_command(0x38,0);精品.delay(5);lcd_command(0x3
30、8,0);delay(5);lcd_command(0x38,0);delay(5);lcd_command(0x38,1); /8位數(shù)據(jù)傳送,2行顯示,5*7字形lcd_command(0x08,1); /關(guān)閉顯示lcd_command(0x01,1); /清屏lcd_command(0x06,1); /顯示光標右移設(shè)置lcd_command(0x0c,1); /顯示屏打開,光標不顯示不閃爍/*寫指令數(shù)據(jù)到lcd*/void lcd_command(uchar lc,uchar bc)if(bc) readylcd();p0=lc;lcd_rs=0; /選中指令寄存器lcd_rw=0; /寫
31、模式lcd_en=1;_nop_();_nop_();精品._nop_();lcd_en=0;/*寫顯示數(shù)據(jù)到lcd*/void lcd_data(uchar ld)readylcd();p0=ld;lcd_rs=1; /選中數(shù)據(jù)寄存器lcd_rw=0; /寫模式lcd_en=1;_nop_();_nop_();_nop_();lcd_en=0;/*檢測lcd忙狀態(tài)*/void readylcd(void)p0=0xff;lcd_en=1;精品.lcd_rs=0;lcd_rw=1;_nop_();while(p0&busy)lcd_en=0;_nop_(); _nop_();lcd_e
32、n=1;_nop_(); _nop_(); lcd_en=0;/*顯示一個字符*/void display_char(uchar x,uchar y,uchar data)y&=0x01;x&=0x0f;if(y) x|=0x40;x|=0x80;精品.lcd_command(x,0);lcd_data(data);/*顯示一串字符*/void display_str(uchar x,uchar y,uchar code *data)uchar list=0;y&=0x01;x&=0x0f;while(x<16)display_char(x,y,datal
33、ist);list+;x+;/*顯示字型轉(zhuǎn)換*/void change(void)temp_high_1=temp_set1/10; temp_high_2=temp_set1%10;精品.temp_low_1=temp_set2/10;temp_low_2=temp_set2%10;temp_true_1=temp_mea/10;temp_true_2=temp_mea%10;/*顯示子程序*/void display(void)display_char(5,0,str3temp_high_1);display_char(6,0,str3temp_high_2);display_char(1
34、3,0,str3temp_low_1);display_char(14,0,str3temp_low_2);display_char(5,1,modeset_flag);display_char(13,1,str3temp_true_1);display_char(14,1,str3temp_true_2);/*溫度測量模塊*/*ds18b20初始化*/void init_18b20(void)uchar x=0;精品.dq=1; /dq復(fù)位delay_us(4); /延時dq=0; /將dq拉低delay_us(250); /精確延時大于480usdq=1; /拉高總線delay_us(40
35、);x=dq;delay_us(20);/*從ds18b20讀取一個字節(jié)數(shù)據(jù)*/uchar read_18b20(void)uchar i=0;uchar dat=0;for(i=8;i>0;i-)dq=0;_nop_();dat>>=1;dq=1;delay_us(1);精品.if(dq) dat|=0x80;delay_us(10);return(dat);/*向ds18b20寫入一個字節(jié)數(shù)據(jù)*/void write_18b20(uchar dat)uchar i=0;for(i=8;i>0;i-)dq=0;_nop_(); dq=dat&0x01;delay_us(10);dq=1;dat>>=1;delay_us(10);精品./*從ds18b20讀取溫度*/void read_temp(void)uchar a=0;uchar b=0;uchar t=0;init_18b20();write_18b20(0xcc);write_18b20(0x44);init_18b20();write_18b20(0xcc);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 健康街封路施工方案
- 電氣火災(zāi)監(jiān)控系統(tǒng)施工方案
- 石材室內(nèi)吊裝施工方案
- 曝氣管安裝施工方案
- 二零二五年度食品行業(yè)員工年勞動合同法規(guī)范文本
- 二零二五年度倆孩子離婚財產(chǎn)分割與共同撫養(yǎng)權(quán)協(xié)議
- 2025年度民宿轉(zhuǎn)租經(jīng)營合同模板
- 二零二五年度房屋院落租賃與社區(qū)公共空間開發(fā)合同
- 2025年度礦山買賣中介服務(wù)傭金標準合同
- 2025年度股東清算及公司清算審計報告出具服務(wù)合同
- 臨時工雇傭合同范本2025年度
- (二調(diào))武漢市2025屆高中畢業(yè)生二月調(diào)研考試 地理試卷
- “艾梅乙”感染者消除醫(yī)療歧視制度-
- 2024-2025學(xué)年八年級地理下冊第七章《南方地區(qū)》檢測卷(人教版)
- 森林防火知識
- 2025年湖南鐵路科技職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫參考答案
- 2025年黑龍江林業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫帶答案
- 小學(xué)語文常見的說明方法(四年級下冊第二單元)
- 跌倒護理不良事件案列分析 - 腎內(nèi)科
- BACnet對象說明
- 人工起搏器的技術(shù)參數(shù)
評論
0/150
提交評論