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

正文內(nèi)容

基于單片機(jī)的溫控報(bào)警器設(shè)計(jì)-wenkub

2023-06-18 05:13:53 本頁(yè)面
 

【正文】 本設(shè)計(jì)是利用 DS18B20 溫度傳感器設(shè)計(jì)的一個(gè)液晶顯示溫度報(bào)警器。再經(jīng)由單片機(jī)進(jìn)行處理和分析。這個(gè)報(bào)警器能夠穩(wěn)定運(yùn)行,并且能夠在大多數(shù)情況下對(duì)高溫帶來(lái)的不良影響有一個(gè)預(yù)警的作用,防止一些對(duì)高溫敏感的器械有不良情況出現(xiàn)。 4. 設(shè)計(jì)好原理圖和程序設(shè)計(jì)。 所以我會(huì)選擇采用集成化溫度傳感器傳輸數(shù)據(jù)、由單片機(jī)收集處理的方案制作溫控報(bào)警裝置。數(shù)字溫度計(jì)根據(jù)使用的傳感器的不同, AD 轉(zhuǎn)換電路,及處理單元的不同,它的精度,穩(wěn)定性,測(cè)溫范圍等都有區(qū)別,這就要根據(jù)實(shí)際情況選擇符合規(guī)格的數(shù)字溫度計(jì)。綜合以上種種情況的出現(xiàn),溫度報(bào)警器就極其需要,只要環(huán)境溫度超過(guò)一定范圍時(shí)報(bào)警,來(lái)提醒使用者。若電氣線路發(fā)生短路、過(guò)載等故障而達(dá)到局部高溫從而引發(fā)火災(zāi),那 7 損失是無(wú)法想象的。工作時(shí),設(shè)定好溫度測(cè)量的范圍,若當(dāng)前環(huán)境溫度超過(guò)設(shè)定的高溫臨界溫度,由單片機(jī)發(fā)出聲光報(bào)警信號(hào),防止因溫度再升高而帶來(lái)的不必要的損失。 溫度控制技術(shù)在工業(yè)上有很多方面都起到一個(gè)至關(guān)重要的作用。 所以,溫度的測(cè)量是一個(gè)很重要的物理參數(shù),它能直接告訴人們所需要的溫度的大小。溫度的測(cè)量不僅僅局限于外出穿衣的指標(biāo)上了,在現(xiàn)實(shí)的社會(huì)中,溫度的測(cè)量和控制無(wú)處不在,例如家庭里面都能看見(jiàn)的冰箱的自動(dòng)溫度調(diào)節(jié)。 1 廣州大學(xué)松田學(xué)院 畢業(yè)論文(設(shè)計(jì)) 題目 ___ 基于單片機(jī)的溫控報(bào)警器設(shè)計(jì) ____ 2 基于單片機(jī)的溫控報(bào)警器設(shè)計(jì) 摘要: 溫度是我們?nèi)粘Ia(chǎn)和生活中實(shí)時(shí)接觸到的物理量,但是它是看不到的,僅憑感覺(jué)只能感覺(jué)到大概的溫度值,傳統(tǒng)的指針式的溫度計(jì)雖然能指示溫度,但是精度低,使用不夠方便,顯示不夠直觀,數(shù)字溫度計(jì)就應(yīng)運(yùn)而生了,利用數(shù)字讓人們更加直觀的了解自己想知道的溫度到底是多少。但是很多時(shí)候,在惡劣的環(huán)境中的測(cè)量則會(huì)受到很大程度的限制,尤其在工業(yè)控制中,在這個(gè)時(shí)候,溫度測(cè)量的自動(dòng)控制先得尤為重要。隨著世界的科技發(fā)展,對(duì)于溫度的測(cè)量要求也是越來(lái)越嚴(yán)格了,但是測(cè)量溫度的環(huán)境也越來(lái)越惡劣。隨著現(xiàn)代工農(nóng)業(yè)技術(shù)的發(fā)展和人們對(duì)生活環(huán)境要求的提高,人們迫切需要檢測(cè)與控制溫度。 在農(nóng)業(yè)生產(chǎn)中,溫室的溫度是很難把握的。最重要的是,若果溫度得不到有效的調(diào)節(jié),會(huì)令機(jī)房?jī)?nèi)的電子設(shè)備、機(jī)械老化,導(dǎo)致這樣那樣的故障出現(xiàn)。 數(shù)字溫度計(jì) 的出現(xiàn)為現(xiàn)今社會(huì)帶來(lái)一定程度上的方便。 研究的基本內(nèi)容 要設(shè)計(jì)出一款由單片機(jī)控制的溫度報(bào)警器,首先,我們要知道 溫度傳感器的選擇。我會(huì)首先用 protel99 繪畫(huà)出原理圖和 PCB 圖,接著編寫(xiě)單片機(jī)程序,然后在 proteus 上進(jìn)行仿真工作,最后在實(shí)際電路板上進(jìn)行調(diào)試和改善。 5. 準(zhǔn)備好制作的各種材料。 利用數(shù)字溫度芯片 DS18B20 測(cè)量溫度, 輸出信號(hào)全數(shù)字化。然后將用 DS18B20 采集回來(lái)的數(shù)據(jù)經(jīng)處理后打印到 LCD1602 上。 設(shè)定安全溫度在 10℃ ~+ 125℃ (可根據(jù)具體需要 在程序中進(jìn)行調(diào)整), 對(duì)在這一范圍內(nèi)的溫度變化采集后送入單片的端口。而溫度溫度高于 125176。 ℃,符合設(shè)計(jì)條件;它還有負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱燒毀,實(shí)驗(yàn)結(jié)果。 3. VDD:可選擇的 VDD 引腳。 ( 2) 延時(shí)(該時(shí)間要求的不是很嚴(yán)格,但是盡可能的短一點(diǎn)) ( 3) 數(shù)據(jù)線拉到低電平 “0” 。據(jù)該狀態(tài)可以來(lái)確定它的存在,但是應(yīng)注意不能無(wú)限的進(jìn)行等待,不然會(huì)使程序進(jìn)入死循環(huán),所以要進(jìn)行超時(shí)控制)。 ( 2) 延時(shí)確定的時(shí)間為 15微秒。 ( 6) 重復(fù)上( 1)到( 6)的操作直到所有的字節(jié)全部發(fā)送完為止。 ( 3)將數(shù)據(jù)線拉低 “0” 。 ( 7)讀數(shù)據(jù)線的狀態(tài)得到 1個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。 第 2 腳: VDD 接 5V正電源。當(dāng) RS和 R/W 共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng) RS 為低電平 R/W 為高電平時(shí)可以讀忙信號(hào),當(dāng) RS 為高電平 R/W 為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。 第 16 腳:背光源負(fù)極。并且支持串口、模數(shù)轉(zhuǎn)換等功能,擁有 512 字節(jié)的 eeprom, 1K 字節(jié)片內(nèi) RAM,在外加RAM 和 ROM 的情況完全可以運(yùn)行到 ucOS 操作系統(tǒng)。 圖 5 DS18B20 原理圖 這個(gè)是 DS18B20 傳感器的硬件設(shè)計(jì)。這里帶字符顯示 的 液晶顯示器里面已經(jīng)有一個(gè)解釋芯片,當(dāng)收到字符數(shù)據(jù)時(shí),自動(dòng)識(shí)別出字符, 不 需要在單片機(jī)作解釋,但缺點(diǎn)就是這種帶字符的顯示器不能按照設(shè)計(jì)者的意思隨心所欲地顯示需要的圖案。LCD1602 原理圖如下: 圖 6 LCD1602 原理圖 設(shè)計(jì)按照 LCD1602 的接口信號(hào)來(lái)連接引腳。包含了程序燒寫(xiě)下載端口, 3 個(gè)按鍵,電源端口,預(yù)留串口通訊端、復(fù)位模塊和聲光報(bào)警模塊。 圖 8 程序燒寫(xiě) 16 電源端口 這部分只需要外接一個(gè) 2PIN 的端子用于連接 5V 開(kāi)關(guān)。 1 腳 RXD 連接到單片機(jī) mega16 港口PD0,引腳 2 連接到端口 TXD 單片機(jī) mega16 PD1。當(dāng)實(shí)時(shí)溫度到了設(shè)定的溫度,那么蜂鳴器響led 燈亮。其他三個(gè)按鈕用來(lái)設(shè)置設(shè)定溫度。 //拉高 PB3 電平 delay_10us(1)。 //再次拉高 PB3 電平 delay_10us(6)。 //等待 DS18B20 初始化完畢 DS18B20 的子函數(shù) 程序代碼如下 : uint read_18b20_temp(void) { uchar temp1,temp2。 //忽略 rom 配置 write_18b20_(0x44)。 //發(fā)出讀溫度命令 temp1=read_18b20_byte()。 //設(shè)置輸出形式為小數(shù)點(diǎn)后一位 return temp。這里有個(gè)需要注意的是命令 0xcc,這是一個(gè)忽略單片機(jī) rom 配置 噶命令,原本rom 配置命令是當(dāng)有多個(gè)傳感器的時(shí)候要用到選擇傳感器的 ID,但設(shè)計(jì)中只有一個(gè)傳感器,所以就不需要理會(huì) rom 配置了。 傳感器 DS18B20 寫(xiě)命令子函數(shù) 程序代碼如下: void write_18b20_(uchar ) { uchar i。 //設(shè)置 PB3 為輸出 DQ_CLR。 //拉高 PB3 電平 } else //當(dāng)命令的最低位不為 1 { DQ_CLR。 //命令右移一位 } delay_10us(5)。之后就是進(jìn)入一個(gè)判斷語(yǔ)句,判斷命令的最后一位是否為 1,當(dāng)為 1 拉高引腳電平,但不為 1拉低引腳電平。 for(i=0。 //設(shè)置 PB3 為輸出 DQ_CLR。NOP()。 //數(shù) 據(jù)變量的最高位為 1 } delay_10us(5)。這里有一個(gè)循環(huán)語(yǔ)句,同樣是 8次,一次只能讀一位的數(shù)據(jù)。延時(shí) 50us等待傳感器,當(dāng)循環(huán)語(yǔ)句結(jié)束,返回?cái)?shù)據(jù)變量給相關(guān)的函數(shù)、語(yǔ)句使用。 delay_ms(5)。 //8 位數(shù)據(jù)傳輸, 2 行顯示, 5*7 字形,檢測(cè)忙信號(hào) lcd_w_(0x08,1)。 //顯示屏打開(kāi),光標(biāo)不顯示,不閃爍,檢測(cè)忙信號(hào) delay_ms(5)。 //第二行要顯示的初始內(nèi)容 delay_ms(5)。 //拉低 rw 電平 _NOP()。 //拉高 en 電平 _NOP()。檢測(cè) LCD1602 是在一個(gè)繁忙的狀態(tài),當(dāng) LCD1602 閑置無(wú)效的 RS 級(jí)別(對(duì)應(yīng)引腳查找表 ),并拉低的 RW 級(jí)延時(shí)等待 LCD1602 反應(yīng)。 //拉低 rs 電平 lcd_rw_0。 lcd_en_1。 //拉低 en 電平 } 這個(gè)函數(shù)是一個(gè)單片機(jī)的寫(xiě)命令到 LCD1602 功能并有兩個(gè)參數(shù),輸入命令 COM,如果你想檢測(cè)忙音信號(hào)則用 attribc 寫(xiě)命令。其次延遲等待命令完成,給一個(gè)下降沿 LCD1602 寫(xiě)命令完成。 } } if((plus==0)amp。 //小數(shù)位加 1 if(xs9) //當(dāng)小數(shù)位加到 10 歸 0 { xs=0。 xs。(sw==2)) //當(dāng)加 1鍵按下并且轉(zhuǎn)換位變量 sw 等于 2 { delay_ms(100)。amp。 } } 27 if((plus==0)amp。 if(shi9) { shi=0。 shi。(sw==4)) //當(dāng)加 1鍵按下并且轉(zhuǎn)換位變量 sw 等于 4,百位加法變化 { delay_ms(100)。amp。 } } t=(bai*1000)+(shi*100)+(ge*10)+(xs)。 //lcd1602 初始化 led_off。 //實(shí)時(shí)溫度顯示子函數(shù) 29 delay_us(100)。 //打開(kāi)蜂鳴器 led_on。在最后的死循環(huán)當(dāng)中,程序在做一個(gè)不斷的掃描,把讀回來(lái)的溫度數(shù)據(jù)賦予全局變量 temperature,然后顯示函數(shù)顯示讀回來(lái)的實(shí)時(shí)溫度, 判斷分析按鍵是否按下。首先,設(shè)計(jì)時(shí),必須根據(jù) 原理圖 來(lái)連接每個(gè)設(shè)備。 按鍵 防抖調(diào)試 是 調(diào)試設(shè)定溫度,實(shí)時(shí)和準(zhǔn)確度 是否良好 。影像穩(wěn)定器的軟件和硬件,應(yīng)用軟件防抖在這個(gè)設(shè)計(jì)中,單片機(jī)檢測(cè)后約 100ms 的延遲進(jìn)行電平轉(zhuǎn)換的關(guān)鍵水平變動(dòng)后不讀,要收取穩(wěn)定的觸發(fā)電平轉(zhuǎn)換,直到所需的功能。經(jīng)過(guò)學(xué)習(xí)后 LCD1602 的功能性質(zhì)的毫秒級(jí)后 ,每完成的數(shù)據(jù)延遲是用來(lái)等待 LCD1602 一次寫(xiě)入數(shù)據(jù)的動(dòng)作完成, 解決顯示不匹配的位置和設(shè)計(jì)。所以,延遲不起作用。=~BIT(PD5) //1602 的 rs 信號(hào)拉低電平 define lcd_rw_1 PORTD|=BIT(PD6) //1602 的 rw 信號(hào)拉高電平 define lcd_rw_0 PORTDamp。=~(1PB3) //拉低 PB3 電平 define DQ_R (PINBamp。(1PD3)) //設(shè)置讀 PD3,數(shù)字位減信號(hào) define led_on PORTBamp。 //全局變量,實(shí)時(shí)溫度變量 int t=50。 void port_init(void)。 void lcd_init(void)。 uint read_18b20_temp(void)。 36 void displayl(uint ddd)。 } while(us) { NOP()。i++) { for(j=0。 PORTD=0x0C。=~(1PB2)。 //PORTB|=BIT(3)。 if(posy==1) //判斷 y軸是否為 1 { temp|=0x40。 lcd_w_data(code)。 //x, y 為顯示的位置, *s 是要顯示的子函數(shù) x++。 x = 0。 } } } //============================================================== 39 ///=================================================================== void lcd_busy(void) //lcd1602 忙信號(hào)子函數(shù) { uchar val。 _NOP()。 DDRC=0x00。 //自讀 PC端口,等待 lcd1602 返回來(lái)的信號(hào)為0,即不忙 } lcd_en_0。 //拉低 rs 電平 lcd_rw_0。 lcd_en_1。 //拉低 en 電平 } //lcd1602 寫(xiě)數(shù)據(jù)子函數(shù) void lcd_w_data(uchar w_data) { lcd_busy()。 //空命令,用于延時(shí) dataport=w_data。_NOP()。 //延時(shí) 5ms lcd_w_(0x38,0)。 lcd_w_(0x38,1)。 //顯示光標(biāo)右移設(shè)置,檢測(cè)忙信號(hào) lcd_w_(0x0c,1)。 display_str(0,1,set T:)。 //端口初始化 lcd_init()。 //將從 18b20 讀回來(lái)的數(shù)據(jù)傳入全局變量 temperture 中 displayl(temperture)。 //設(shè)定溫度顯示子 函數(shù) if(temperture=t) //當(dāng)實(shí)時(shí)溫度比設(shè)定溫度高 { bell_on。 //關(guān)閉蜂鳴器 } } 43 } /********************************************************/ void displayl(uint ddd)
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1