版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
溫控風(fēng)扇參考論文PAGE17任務(wù)書溫控自動風(fēng)扇系統(tǒng)摘要:本設(shè)計為一種溫控風(fēng)扇系統(tǒng),具有靈敏的溫度感測和顯示功能,系統(tǒng)AT89S52單片機作為控制平臺對風(fēng)扇轉(zhuǎn)速進(jìn)行控制??捎捎脩粼O(shè)置高、低溫度值,測得溫度值在高低溫度之間時打開風(fēng)扇弱風(fēng)檔,當(dāng)溫度升高超過所設(shè)定的溫度時自動切換到大風(fēng)檔,當(dāng)溫度小于所設(shè)定的溫度時自動關(guān)閉風(fēng)扇,控制狀態(tài)隨外界溫度而定。引言生活中,我們經(jīng)常會使用一些與溫度有關(guān)的設(shè)備。比如,現(xiàn)在雖然不少城市家庭用上了空調(diào),但在占中國大部分人口的農(nóng)村地區(qū)依舊使用電風(fēng)扇作為降溫防暑設(shè)備,春夏(夏秋)交替時節(jié),白天溫度依舊很高,電風(fēng)扇應(yīng)高轉(zhuǎn)速、大風(fēng)量,使人感到清涼;到了晚上,氣溫降低,當(dāng)人入睡后,應(yīng)該逐步減小轉(zhuǎn)速,以免使人感冒。雖然電風(fēng)扇都有調(diào)節(jié)不同檔位的功能,但必須要人手動換檔,睡著了就無能為力了,而普遍采用的定時器關(guān)閉的做法,一方面是定時時間長短有限制,一般是一兩個小時;另一方面可能在一兩個小時后氣溫依舊沒有降低很多,而風(fēng)扇就關(guān)閉了,使人在睡夢中熱醒而不得不起床重新打開風(fēng)扇,增加定時器時間,非常麻煩,而且可能多次定時后最后一次定時時間太長,在溫度降低以后風(fēng)扇依舊繼續(xù)吹風(fēng),使人感冒;第三方面是只有簡單的到了定時時間就關(guān)閉風(fēng)扇電源的單一功能,不能滿足氣溫變化對風(fēng)扇風(fēng)速大小的不同要求。又比如在較大功率的電子產(chǎn)品散熱方面,現(xiàn)在絕大多數(shù)都采用了風(fēng)冷系統(tǒng),利用風(fēng)扇引起空氣流動,帶走熱量,使電子產(chǎn)品不至于發(fā)熱燒壞。要使電子產(chǎn)品保持較低的溫度,必須用大功率、高轉(zhuǎn)速、大風(fēng)量的風(fēng)扇,而風(fēng)扇的噪音與其功率成正比。如果要低噪音,則要減小風(fēng)扇轉(zhuǎn)速,又會引起電子設(shè)備溫度上升,不能兩全其美。為解決上述問題,我們設(shè)計了這套溫控自動風(fēng)扇系統(tǒng)。本系統(tǒng)采用高精度集成溫度傳感器,用單片機控制,能顯示實時溫度,并根據(jù)使用者設(shè)定的溫度自動在相應(yīng)溫度時作出小風(fēng)、大風(fēng)、停機動作,精確度高,動作準(zhǔn)確。1、方案論證本系統(tǒng)實現(xiàn)風(fēng)扇的溫度控制,需要有較高的溫度變化分辨率和穩(wěn)定可靠的換檔停機控制部件。1.1溫度傳感器的選用溫度傳感器可由以下幾種方案可供選擇:方案一:選用熱敏電阻作為感測溫度的核心元件,通過運算放大器放大由于溫度變化引起熱敏電阻電阻的變化、進(jìn)而導(dǎo)至的輸出電壓變化的微弱電壓變化信號,再用AD轉(zhuǎn)換芯片ADC0809將模擬信號轉(zhuǎn)化為數(shù)字信號輸入單片機處理。方案二:采用熱電偶作為感測溫度的核心元件,配合橋式電路,運算放大電路和AD轉(zhuǎn)換電路,將溫度變化信號送入單片機處理。方案三:采用數(shù)字式集成溫度傳感器DS18B20作為感測溫度的核心元件,直接輸出數(shù)字溫度信號供單片機處理。對于方案一,采用熱敏電阻有價格便宜、元件易購的優(yōu)點,但熱敏電阻對溫度的細(xì)微變化不敏感,在信號采集、放大、轉(zhuǎn)換過程中還會產(chǎn)生失真和誤差,并且由于熱敏電阻的R-T關(guān)系的非線性,其本身電阻對溫度的變化存在較大誤差,雖然可以通過一定電路予以糾正,但不僅將使電路復(fù)雜穩(wěn)定性降低,而且在人體所處溫度環(huán)境溫度變化中難以檢測到小的溫度變化。故該方案不適合本系統(tǒng)。對于方案二,采用熱電偶和橋式測量電路相對于熱敏電阻其對溫度的敏感性和器件的非線性誤差都有較大提高,其測溫范圍也非常寬,從-50攝氏度到1600攝氏度均可測量。但是依然存在電路復(fù)雜,對溫度敏感性達(dá)不到本系統(tǒng)要求的標(biāo)準(zhǔn),故不采用該方案。對于方案三,由于數(shù)字式集成溫度傳感器DS18B20的高度集成化,大大降低了外接放大轉(zhuǎn)換等電路的誤差因素,溫度誤差很小,并且由于其感測溫度的原理與上述兩種方案的原理有著本質(zhì)的不同,使得其溫度分辨力極高。溫度值在器件內(nèi)部轉(zhuǎn)換成數(shù)字量直接輸出,簡化了系統(tǒng)程序設(shè)計,又由于該傳感器采用先進(jìn)的單總線技術(shù)(1-WRIE),與單片機的接口變的非常簡潔,抗干擾能力強。關(guān)于DS18B20的詳細(xì)參數(shù)參看下面“硬件設(shè)計”中的器件介紹。1.2控制核心的選擇方案一:采用電壓比較電路作為控制部件。溫度傳感器采用熱敏電阻或熱電偶等,溫度信號轉(zhuǎn)為電信號并放大,由集成運放組成的比較電路判決控制風(fēng)扇轉(zhuǎn)速,當(dāng)高于或低于某值時將風(fēng)扇切換到相應(yīng)檔位。方案二:采用單片機作為控制核心。以軟件編程的方法進(jìn)行溫度判斷,并在端口輸出控制信號。對于方案一,采用電壓比較電路具有電路簡單、易于實現(xiàn),以及無需編寫軟件程序的特點,但控制方式過于單一,不能自由設(shè)置上下限動作溫度,無法滿足不同用戶以及不同環(huán)境下的多種動作溫度要求,故不在本系統(tǒng)中采用。對于方案二,以單片機作為控制器,通過編寫程序不但能將傳感器感測到的溫度通過顯示電路顯示出來,而且用戶能通過鍵盤接口,自由設(shè)置上下限動作溫度值,滿足全方位的需求。并且通過程序判斷溫度具有極高的精準(zhǔn)度,能精確把儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令A(yù)LE才會被激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE無效。PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT80C51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,這兩次有效的PSEN信號不出現(xiàn)。EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序儲存器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需要注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(Vcc端),CPU則執(zhí)行內(nèi)部程序儲存器中的指令。FLASH儲存器編程時,該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12v編程電壓。XTAL1:振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。2.2DS18B20簡介DS18B20是DALLAS公司生產(chǎn)的單線式數(shù)字溫度傳感器,具有3引腳TO-92小體積封裝形式;溫度測量范圍為-55℃~+125℃,可編程為9位~12位A/D轉(zhuǎn)換精度,測溫分辨率可達(dá)0.0625℃,被測溫度用符號擴展的16位數(shù)字量方式串行輸出;其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生;多個DS18B20可以并聯(lián)到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。以上特點使DS18B20非常適用于遠(yuǎn)距離多點溫度檢測系統(tǒng)。
每一個DSl820包括一個唯一的64位長的序號該序號值存放在DSl820內(nèi)部的ROM(只讀存貯器)中開始8位是產(chǎn)品類型編碼(DSl820編碼均為10H)接著的48位是每個器件唯一的序號最后8位是前面56位的CRC(循環(huán)冗余校驗)碼DSl820中還有用于貯存測得的溫度值的兩個8位存貯器RAM編號為0號和1號1號存貯器存放溫度值的符號如果溫度為負(fù)則1號存貯器8位全為1否則全為0。0號存貯器用于存放溫度值的補碼LSB(最低位)的1表示0.5貯器中的二進(jìn)制數(shù)求補再轉(zhuǎn)換成十進(jìn)制數(shù)并除以2就得到被測溫度值。具體引腳說明如圖2-6,功能如表2-5。圖2-6DS18B20引腳與封裝表2-5DS18B20引腳說明序號名稱引腳功能1GND接地2DQ數(shù)據(jù)輸入/輸出引腳:開漏單總線接口引腳;當(dāng)被用到寄生電源下,也可向器件提供電源3VDD可選擇的VDD引腳,當(dāng)工作于寄生電源時,此引腳必須接地DS18B20控制字和讀寫時序說明DS18B20是1--wire單線器件,它在一根數(shù)據(jù)線上實現(xiàn)數(shù)據(jù)的雙向傳輸,這就需要一定的協(xié)議來對讀寫數(shù)據(jù)提出嚴(yán)格的時序要求,AT89S52單片機并不支持單線傳輸。因此,必須采用軟件的方法來模擬單線的協(xié)議時序。主機操作單線器件DS18B20必須遵循下面的順序[8]。1.初始化單線總線上的所有操作均從初始化開始,初始化過程如下。主機通過拉低單線480us以上,產(chǎn)生復(fù)位脈沖,然后釋放該線,進(jìn)入RX接收模式。主機釋放總線時,會產(chǎn)生一個上升沿。單線器件DS18B20檢測到該上升沿后,延時15-60us,通過拉低總線60-24us來產(chǎn)生應(yīng)答脈沖,主機接收到從機的應(yīng)答脈沖后,說明有單線器件在線。2.ROM操作命令一旦總線主機檢測對應(yīng)答脈沖,便可以發(fā)起ROM操作命令。共有5位ROM操作命令。詳細(xì)說明如下表2-6。表2-6ROM操作命令與說明命令類型命令字節(jié)功能說明Readrom33H此命令讀取激光ROM的64位,只能用于總線上單個DS18B20的情況下,多掛則會發(fā)生沖突Matchrom(匹配rom)55H此命令后跟64位ROM序列號,尋址多掛總線上的DS18B20。只有序列號完全匹配的DS18B20才能響應(yīng)后面的內(nèi)存操作命令,其他不匹配的將等待復(fù)位脈沖。此命令可用于單掛或多掛接總線。Skiprom(跳過rom)CCH此命令用于單掛接總線系統(tǒng)時,可以無需提供64位ROM序列號皆可運行內(nèi)存操作命令。如果總線上掛多掛DS18B20,并且在此命令后執(zhí)行讀命令,將會發(fā)生數(shù)據(jù)沖突。Scarchrom(搜索rom)F0H主機調(diào)用此命令,通過一個排除法過程,可以識別出總線上所有器件的ROM序列號。Alarmrom(警報rom)ECH此命令流程圖和scarchrom命令相同,但是DS18B20只有在最近的一次溫度測量時滿足了告警觸發(fā)條件,才會響應(yīng)此命令。3.內(nèi)存操作命令在成功執(zhí)行了ROM操作命令之后,才可以使用內(nèi)存操作命令。主機可以提供6種內(nèi)存操作命令,如表2-7。4.數(shù)據(jù)處理DS18B20要求有嚴(yán)格的時序來保證數(shù)據(jù)的完整。在單線DQ上,存在復(fù)位脈沖、應(yīng)答脈沖、寫“1”、寫“0”、讀“1”、讀“0”幾種信號類型。其中,除了應(yīng)答脈沖之外,均由主機產(chǎn)生。而數(shù)據(jù)位讀寫則是通過使用讀、寫時隙實現(xiàn)的。首先了解寫時隙。當(dāng)主機將數(shù)據(jù)線從高平拉至低電平時,產(chǎn)生2種類型的寫時隙:寫“1”和“0”。所有寫時隙必須在60μs以上(即由高拉低后持續(xù)60μs以上),各個寫時隙之間必須保證最短1us的恢復(fù)時間。DS18B20在DQ線變低后的15μs~60μs的端口對DQ進(jìn)行采樣,如果為高電平,就為寫“1”;如果為低電平,就為寫“0”。對于主機產(chǎn)生寫“1”時隙的情況,數(shù)據(jù)線必須先被拉低,然后釋放,在寫時隙開始后的15μs,允許DQ線拉至高電平。對于主機寫“0”時隙的情況,DQ線必須被拉至低電平至少保持低電平60μs。再來了解一下讀時隙。當(dāng)主機從DS18B20讀數(shù)據(jù)時,把數(shù)據(jù)線從高電平拉至低電平,產(chǎn)生讀時隙。數(shù)據(jù)線DQ必須保持低電平至少1μs,來自DS18B20的輸出數(shù)據(jù)在讀時隙下降沿之后15μs內(nèi)有效。因此,在此15μs內(nèi),主機必須停止將DQ引腳置低。在讀時隙結(jié)束時,DQ引腳通過外部上拉電阻拉回高電平。所有的讀時隙最短必須持續(xù)60μs,各個讀時隙之間必須保證最短1μs的恢復(fù)時間。表2-7內(nèi)存操作命令與說明命令類型命令字節(jié)功能說明WriteScratchpad(寫暫存器)4EH此命令寫暫存器中地址2~4的3個字節(jié)(TH、TL和配置寄存器)在發(fā)起復(fù)位脈沖之前,3個字節(jié)都必須要寫。RradScratchpad(讀暫存器)BEH此命令讀取暫存器內(nèi)容,從字節(jié)0~一直讀取到字節(jié)8。主機可以隨時發(fā)起復(fù)位脈沖以停止此操作。CopyScratchpad(復(fù)制暫存器)48H此命令將暫存器中的內(nèi)容復(fù)制進(jìn)E2RAM,以便將溫度告警觸發(fā)字節(jié)存入非易失內(nèi)存。如果在此命令后產(chǎn)生讀時隙,那么只要器件在進(jìn)行復(fù)制就會輸出0,復(fù)制完成后,再輸出1。ConvenrtT(溫度轉(zhuǎn)換)44H此命令開始溫度轉(zhuǎn)換操作。如果在此命令后主機產(chǎn)生讀時隙,那么只要器件在進(jìn)行溫度轉(zhuǎn)換就會輸出0,轉(zhuǎn)換完成后在輸出1。RecallE2(重調(diào)E2存儲器)B8H將存儲在E2RAM中的溫度告警觸發(fā)值和配置寄存器值重新拷貝到暫存器中,此重調(diào)操作在DS18B20加電時自動產(chǎn)生。ReadPowerSupply(讀供電方式)B4H主機發(fā)起此命令后每個讀數(shù)據(jù)時隙內(nèi),DS1820發(fā)信號通知它的供電方式:0為寄生電源方式,1為外部供電方式。所有的讀寫時隙至少需要60μs,且每個獨立的時隙之間至少需要1μs的恢復(fù)時間。在寫時序中,主機將在拉低總線15μs內(nèi)釋放總線,并向DS18B20寫“1”。若主機拉低總線后能保持60μs的低電平,則向單總線器件寫“0”。DS18B20僅在主機發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時隙,以便DS18B20能傳輸數(shù)據(jù)。特別需要注意的是,與DS18B20配套使用的是頻率為11.0592Mhz單片機晶振,這決定了指令運行時間,在軟件設(shè)計將根據(jù)指令運行時間編寫各種延時程序。四、溫度采集電路與單片機的連接本設(shè)計中使用DS18B20溫度傳感器進(jìn)行環(huán)境溫度采集和轉(zhuǎn)化,其與單片機的連接圖如圖2-7所示[4]。圖2-7單片機與DS18B20連接圖AT89S52單片機的P3.4腳接DS18B20的I/O腳,作為數(shù)據(jù)的讀入和寫出。電阻R11作為DS18B20的I/O口的上拉電阻,在讀時隙結(jié)束時,I/O引腳將通過此上拉電阻拉回到高電平。要想使DS18B20進(jìn)行精確的溫度轉(zhuǎn)換,I/O線必須保證在溫度轉(zhuǎn)換期間提供足夠的能量,由于每個DS18B20在溫度轉(zhuǎn)換期間工作電流達(dá)到1mA,電路采用5V電源供電,根據(jù)I=U/R=5/4700=1.06mA,所以根據(jù)這個原理,可以選用小一點的電阻,只要保證DS18B20的工作電流,當(dāng)然也可以直接接在電源上,但是為了使信號穩(wěn)定,一般在電路設(shè)計中加上拉電阻。我們選用4.7KΩ。2.3時鐘電路設(shè)計時鐘電路是用來產(chǎn)生AT89S52單片機工作時所必須的時鐘信號,AT89S52本身就是一個復(fù)雜的同步時序電路,為保證工作方式的實現(xiàn),AT89S52在唯一的時鐘信號的控制下嚴(yán)格的按時序執(zhí)行指令進(jìn)行工作,時鐘的頻率影響單片機的速度和穩(wěn)定性。通常時鐘由于兩種形式:內(nèi)部時鐘和外部時鐘。我們系統(tǒng)采用內(nèi)部時鐘方式來為系統(tǒng)提供時鐘信號。AT89S52內(nèi)部有一個用于構(gòu)成振蕩器的高增益反向放大器,該放大器的輸入輸出引腳為XTAL1和XTAL2,它們跨接在晶體振蕩器和用于微調(diào)的電容,便構(gòu)成了一個自激勵振蕩器。電路中的C1、C2的選擇在30PF左右,但電容太小會影響振蕩的頻率、穩(wěn)定性和快速性。晶振頻率為在1.2MHZ~12MHZ之間,頻率越高單片機的速度就越快,但對存儲器速度要求就高。為了提高穩(wěn)定性我們采用溫度穩(wěn)定性好的NPO電容,采用的晶振頻率為12MHZ。本次系統(tǒng)的時鐘電路設(shè)計如圖3.2所示。圖3.2時鐘電路圖2.4系統(tǒng)復(fù)位電路AT89S52的復(fù)位輸入引腳RST為單片機提供了初始化的手段,可以使程序從指定處開始執(zhí)行,在AT89S52的時鐘電路工作后,只要RST引腳上出現(xiàn)超過兩個機器周期以上的高電平時,即可產(chǎn)生復(fù)位的操作,只要RST保持高電平,則AT89S52循環(huán)復(fù)位,只有當(dāng)RET由高電平變成低電平以后,單片機復(fù)位。圖3.3復(fù)位電路圖2.5按鍵控制部分第一個是功能鍵,按一次出現(xiàn)L20,可以進(jìn)行對下限溫度進(jìn)行設(shè)置按一次出現(xiàn)H30,可以進(jìn)行對上限溫度進(jìn)行設(shè)置按第三次恢復(fù)溫度顯示第二個按鍵是增加鍵,可以對上下限溫度進(jìn)行增大調(diào)整第三個按鍵是減小鍵,可以對上下限溫度進(jìn)行減小調(diào)整2.6風(fēng)扇部分控制電路的設(shè)計采用用PWM波進(jìn)行調(diào)速,可由用戶設(shè)置高、低溫度值,測得溫度值在高低溫度之間時打開風(fēng)扇弱風(fēng)檔,當(dāng)溫度升高超過所設(shè)定的溫度時自動切換到大風(fēng)檔,當(dāng)溫度小于所設(shè)定的溫度時自動關(guān)閉風(fēng)扇,控制狀態(tài)隨外界溫度而定。3系統(tǒng)軟件的設(shè)計3.1系統(tǒng)總體流程圖系統(tǒng)AT89S52單片機作為控制平臺對風(fēng)扇轉(zhuǎn)速進(jìn)行控制。通過DS18B20進(jìn)行測溫,可由用戶設(shè)置高、低溫度值,測得溫度值在高低溫度之間時打開風(fēng)扇弱風(fēng)檔,當(dāng)溫度升高超過所設(shè)定的溫度時自動切換到大風(fēng)檔,當(dāng)溫度小于所設(shè)定的溫度時自動關(guān)閉風(fēng)扇,控制狀態(tài)隨外界溫度而定。系統(tǒng)總體流程圖如下3.2按鍵設(shè)置流程圖參考文獻(xiàn)[1]胡漢才.單片機原理及其接口技術(shù).北京:清華大學(xué)出版社,2004[2]吳金戍,沈慶陽,郭庭吉.8051單片機實踐與應(yīng)用.北京:清華大學(xué)出版社,2002[3]王化詳,張淑英.傳感器原理.天津:天津大學(xué)出版社,2002[4]張建民,機電一體化系統(tǒng)設(shè)計,高等教育出版社,2007總結(jié)及心得體會本次設(shè)計作業(yè)中是以機電系統(tǒng)為主要方向來定方案的,是電子電工和機械的結(jié)合,使得設(shè)計更加有挑戰(zhàn)性和先進(jìn)性。更能增加和提高我們的設(shè)計能力。本設(shè)計中的溫控自動控制風(fēng)扇可以根據(jù)季節(jié)、溫度的變化自動開啟和調(diào)節(jié)室內(nèi)的溫度和空氣流通。對其的使用方便,單片的控制和電路的改造使其在普通風(fēng)扇上大大增加優(yōu)勢,而且外形體積也沒有增大或改變。在市場不斷要求產(chǎn)品的功能多元化和使用方便、人性化中,經(jīng)過這樣改進(jìn)和更具有潛力的產(chǎn)品無疑是風(fēng)和要求的。附件一:總體原理圖:附件二:總體PCB圖附件3總體程序#include<reg52.h> //52系列頭文件#include<stdio.h>#defineucharunsignedchar#defineuintunsignedint#definePWM_T100sbitds=P3^4;sbitdula=P2^6;sbitbeep=P1^0; //定義蜂鳴器uinttemp,t,w; //定義整型的溫度數(shù)據(jù)ucharflag;floatf_temp; //定義浮點型的溫度數(shù)據(jù)uinthigh,low,PWM_t,time_count; sbitled1=P1^1; //控制發(fā)光二極管sbitled2=P1^2; //控制發(fā)光二極管sbits1=P3^5;sbits2=P3^6;sbits3=P3^7;sbitPWM=P1^6;ucharflag1,flag2,flag3,flag4,s1num,qian,bai,shi,ge;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc6}; //共陽數(shù)碼管段碼表ucharcodetable1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//帶小數(shù)點的編碼voiddelay(ucharz) //延時函數(shù){uchara,b;for(a=z;a>0;a--)for(b=100;b>0;b--);}voidinit(){EA=1;ET1=1;ET0=1;TR1=1;TR0=1;TMOD=0x12;TH1=(65536-4000)/256;TL1=(65536-4000)%256;TH0=0x216;//保證定時時長為0.1msTL0=0x216;flag=0;low=200;high=300;}voidhdidi(){beep=0;led1=0;delay(500);beep=1;led1=1;delay(500);}voidldidi(){beep=0;led2=0;delay(50);beep=1;led2=1;delay(50);}voiddsreset(void) //DS18b20復(fù)位,初始化函數(shù){uinti;ds=0;i=103; //延時最短480uswhile(i>0)i--;ds=1; //等待16-60us,收到低電平一個約60-240us則復(fù)位成功i=4;while(i>0)i--;}bittempreadbit(void) //讀1位數(shù)據(jù)函數(shù){uinti;bitdat;ds=0;i++;ds=1;i++;i++; //i++起到延時作用dat=ds;i=8;while(i>0)i--;return(dat);}uchartempread(void) //讀1字節(jié)的數(shù)據(jù)函數(shù){uinti,j,dat;dat=0;for(i=1;i<=8;i++){j=tempreadbit();dat=(j<<7)|(dat>>1);//讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個字節(jié)在dat里}return(dat);}voidtempwritebyte(uchardat)//向DS18B20寫一個字節(jié)的數(shù)據(jù)函數(shù){uinti;ucharj;bittestb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb) //寫1 { ds=0; i++;i++; ds=1; i=8; while(i>0) i--; }else //寫0{ ds=0; i=8; while(i>0)i--; ds=1; i++;i++; }}}voidtempchange(void) //DS18B20開始獲取溫度并轉(zhuǎn)換{dsreset();delay(1);tempwritebyte(0xcc); //寫跳過讀ROM指令tempwritebyte(0x44); //寫溫度轉(zhuǎn)換指令}uintget_temp() //讀取寄存器中存儲的溫度數(shù)據(jù){uchara,b;dsreset();delay(1);tempwritebyte(0xcc); //寫跳過讀ROM指令tempwritebyte(0xbe); //寫溫度轉(zhuǎn)換指令a=tempread(); //讀低8位b=tempread(); //讀高8位temp=256*b+a;f_temp=temp*0.0625; //溫度在寄存器中為12位,分辨率為0.0625temp=f_temp*10+0.5; //乘以10表示小數(shù)點后面只取一位returntemp; //temp是整型}voidkeyscan(){ if(s1==0) {P2=0xff; delay(5); if(s1==0) { while(!s1); s1num++; if(s1num==1) { flag=1; } if(s1num==2) { flag=2; } if(s1num==3) { s1num=0; flag=0; } } } if(s1num==1) { flag=1; if(s2==0) { delay(5); if(s2==0) { while(!s2); low+=10; if(high<low)low=high; if(low==1000) low=200; } } if(s3==0) { delay(5); if(s3==0) { while(!s3); low-=10; if(low==0) low=200; } } } if(s1num==2) { flag=2; if(s2==0) { delay(5); if(s2==0) { while(!s2); high+=10; if(high==1000) high=200; } } if(s3==0) { delay(5); if(s3==0) { while(!s3); high-=10; if(high<low)high=low; if(high==0) high=300; } } }}voidmain() //主函數(shù){init();
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度密封膠產(chǎn)品環(huán)保標(biāo)準(zhǔn)制定與執(zhí)行合同3篇
- 2025年度智能溫室大棚設(shè)施買賣合同范本4篇
- 2025年度園林除草項目承包合同范本4篇
- 2025年度現(xiàn)代農(nóng)業(yè)示范園區(qū)開發(fā)承包經(jīng)營合同范本3篇
- 2025年度智能穿戴設(shè)備開發(fā)框架授權(quán)許可合同3篇
- 2024面粉市場推廣與品牌代言合同3篇
- 2024版設(shè)備維修及日常保養(yǎng)合同合同一
- 2025年度床墊行業(yè)展會參展與合作協(xié)議3篇
- 2025年度玻璃行業(yè)研發(fā)成果轉(zhuǎn)化銷售合同3篇
- 2025年度新型城鎮(zhèn)化建設(shè)項目承包合同終止協(xié)議3篇
- 2025年湖北武漢工程大學(xué)招聘6人歷年高頻重點提升(共500題)附帶答案詳解
- 【數(shù) 學(xué)】2024-2025學(xué)年北師大版數(shù)學(xué)七年級上冊期末能力提升卷
- GB/T 26846-2024電動自行車用電動機和控制器的引出線及接插件
- 遼寧省沈陽市皇姑區(qū)2024-2025學(xué)年九年級上學(xué)期期末考試語文試題(含答案)
- 2024年國家工作人員學(xué)法用法考試題庫及參考答案
- 妊娠咳嗽的臨床特征
- 國家公務(wù)員考試(面試)試題及解答參考(2024年)
- 《阻燃材料與技術(shù)》課件 第6講 阻燃纖維及織物
- 2024年金融理財-擔(dān)保公司考試近5年真題附答案
- 泰山產(chǎn)業(yè)領(lǐng)軍人才申報書
- 高中語文古代文學(xué)課件:先秦文學(xué)
評論
0/150
提交評論