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

正文內(nèi)容

基于51單片機(jī)的溫度檢測(cè)系統(tǒng)-在線瀏覽

2024-12-27 18:44本頁(yè)面
  

【正文】 RST9 U180C51X1 CRYSTALC122pFC222pFGNDVCCGNDR110kC31uFVCCVCCGND234567891RP1RESPACK8VCC VCC3GND1U2DS18B20R2D714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016LLS2SOUNDER MUC 一、 設(shè)計(jì) 功能 二 、系統(tǒng)設(shè)計(jì) 三 、器件選擇 溫度 信號(hào)采集模塊 傳統(tǒng)的溫度檢測(cè)大多以熱敏電阻為傳感器,采用熱敏電阻,可滿足 40℃ 度 至 90℃ 測(cè)量范圍,但熱敏電阻可靠性差,測(cè)量溫度準(zhǔn)確率低,對(duì)于 1℃ 的信號(hào)是不適用的,還得經(jīng)過(guò)專門(mén)的接口電路轉(zhuǎn)換成數(shù)字信號(hào)才能由微處理器進(jìn)行處理。其中 2IC總線以同步串行 2 線方式進(jìn)行通信(一條時(shí)鐘線,一條數(shù)據(jù)線) 。這些總線至少需要兩條或兩條以上的信號(hào)線。 單總線具有廣闊的應(yīng)用前景,是值得關(guān)注 的一個(gè)發(fā)展領(lǐng)域。主機(jī)或從機(jī)通過(guò)一個(gè)漏極開(kāi)路或三態(tài)端口連 接到 數(shù)據(jù)線,以允許設(shè)備在不發(fā)送數(shù)據(jù)時(shí)能夠釋放總線,而讓其它設(shè)備使用總線。 DS18B20 數(shù)字式溫度傳感器 DS18B20 數(shù)字式溫度傳感器 使用集成芯片,采用單總線技術(shù),其 能夠有效的減小外界的干擾,提高測(cè)量的精度 , 同時(shí),它可以直接將被測(cè)溫度轉(zhuǎn)化成串行數(shù)字信號(hào)供微機(jī)處理,接口簡(jiǎn)單,使數(shù)據(jù)傳輸和處理簡(jiǎn)單 化。 DS18B20 特性 采用單總線的接口方式,與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與 DS18B20 的雙向通訊。 . ( 1) 適應(yīng)電壓范圍更寬,電壓范圍: ~ ,在寄生電源方式下可由數(shù)據(jù)線供電 。 ( 3) DS18B20 支持多點(diǎn)組網(wǎng)功能,多個(gè) DS18B20 可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫 。 ( 5) 溫范圍- 55℃ ~ +125℃ 。 ( 7) 在 9位分辨率時(shí)最多在 內(nèi)把溫度轉(zhuǎn)換為數(shù)字, 12 位分辨率時(shí) 最多在 750ms 內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快 。 ( 9) 負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀, 但不能正常工作。高溫度系數(shù)晶 振 隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器 2 的脈沖輸入 . 計(jì)數(shù)器 1 對(duì) 低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器 1 的預(yù)置值減到 0 時(shí),溫度寄存器的值將加 1,計(jì)數(shù)器 1 的預(yù)置將重新被裝入,計(jì)數(shù)器 1 重 新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器 2 計(jì)數(shù)到 0 時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。 DS18B20 的讀寫(xiě)功能 DS18B20 溫度值格式表 這是 12 位轉(zhuǎn)化后得到的 12 位數(shù)據(jù),存儲(chǔ)在 18B20 的兩個(gè) 8 比特的 RAM 中,二進(jìn)制中的前面 5 位是符號(hào)位,如果測(cè)得的溫度大于 0, 這 5 位為 0,只要將測(cè)到的數(shù)值乘于 即可得到實(shí)際溫度;如果溫度小于 0,這 5 位為 1,測(cè)到的數(shù)值需要取反加 1 再乘于 即可得到實(shí)際 溫度。 . DS18B20 溫度數(shù)據(jù)表 DS18B20溫度傳感器的存儲(chǔ)器 DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存 RAM和一個(gè)非易失性的可電擦除的 EEPRAM,后者存放高溫度和低溫度觸發(fā)器 TH、 TL 和結(jié)構(gòu)寄存器。在 DS18B20 出廠時(shí)該位被設(shè)置為 0,用 戶不要去改動(dòng)。復(fù)位要求主 CPU 將數(shù)據(jù)線下拉 500 微秒,然后 釋放,當(dāng) DS18B20 收到信號(hào)后等待16~ 60 微秒左右,后發(fā)出 60~ 240 微秒的存在低脈沖,主 CPU 收到此信號(hào)表示復(fù)位成功。 搜索 ROM 0FOH 用于確定掛接在同一總線上 DS1820 的個(gè)數(shù)和識(shí)別 64 位 ROM 地址。 跳過(guò) ROM 0CCH 忽略 64 位 ROM 地址,直接向 DS1820 發(fā)溫度變換命令。 告警搜索命令 0ECH 執(zhí)行后只有溫度超過(guò)設(shè)定值上限或下限的片子才做出響應(yīng)。結(jié)果存入內(nèi)部 9 字節(jié) RAM中。 復(fù)制暫存器 48H 將 RAM 中第 3 、 4 字節(jié)的內(nèi)容復(fù)制到 EEPROM 中。 讀供電方式 0B4H 讀 DS1820 的供電模式。 ROM 指令表 . 液晶顯示器 1602LCD 顯 示容量 :16 2 個(gè)字符,芯片工作電壓 :— ,工作電流 :(),模塊最佳工作電壓 :,字符尺寸 : (W H)mm。 本次 課題 以 51 單片機(jī)為核心實(shí)現(xiàn) 了 智能化 溫度 測(cè)量 ,過(guò)溫警告, 傳感器 異常警報(bào) 功能 。 在一開(kāi)始,我 制訂了合理的規(guī)劃 ,繪制了與 課題相關(guān)的硬件原理圖,分析 了單片機(jī)的各 I/O 端口。接下來(lái) 把所有的程序段組合在一起 綜合分析 ,最后燒錄到單片機(jī)上進(jìn)行硬件調(diào)試。 ( 1)高位為零時(shí)消隱 ; ( 2) 18B20上電 溫度 誤判 ; ( 3) LCD 顯示閃爍 ; ( 4) 18B20 修復(fù)溫度誤判 ; ( 5) LCD 查表寫(xiě)坐標(biāo) 混合顯示。這其中 的 苦淚 和歡笑只有自己知道。 通過(guò) 這次課題設(shè)計(jì) , 我 深深 意識(shí)到 學(xué)習(xí)單片機(jī)不 是只要學(xué)好怎樣寫(xiě)程序就夠 了,還要對(duì)硬件有所了解,要把軟件與硬件 相結(jié)合才,期間還要經(jīng)過(guò)多次的失敗 ,需要相當(dāng)?shù)哪托?和細(xì)致的思考 來(lái)排除 一切困難,一步一步地解決問(wèn)題 。我定會(huì) 把這次課題設(shè)計(jì) 積累的經(jīng)驗(yàn)落實(shí)到 以后 的 學(xué)習(xí)中去。 //定義 DS18B20 端口 DQ sbit K5=P2^3。 sbit K7=P2^1。 //初始化標(biāo)志位 sbit lcdrs = P2^6 。 //減按鍵 sbit lcden = P2^7 。 //T 包含兩個(gè)單元,用來(lái)存儲(chǔ) 16位溫度信息 uchar code cdis1[ ] = { WELCOM TO USE! } 。 uchar code cdis3[ ] = { DS18B20 ERR0R } 。 uchar code cdis5[ ] = {Zhong Qian Peng} 。 uchar code cdis7[ ] = {!!!!Warning!!!!} 。 uchar code cdis9[ ] = {Please set temp!} 。//可設(shè)兩位 uchar bai,shi,ge,xiaoshu1,xiaoshu2,xiaoshu3,xiaoshu4,fuhao,th_temp,tl_temp。//set 存有設(shè)定的溫度,設(shè)初值為 30 define delayNOP() 。_nop_() 。_nop_() 。 /******************************************************************* . * 兩個(gè)延時(shí)函數(shù) * *******************************************************************/ //1us void Delay(unsigned int num) { while( num ) 。 while(ms) { for(y = 0 。 y++) { _nop_() 。 _nop_() 。 } } } void warning() //蜂鳴器發(fā)聲 {speaker=1。speaker=0。 } /****************************************************************** * 檢查 LCD 忙狀態(tài) * * lcd_busy 為 1時(shí),忙,等待。 * ******************************************************************/ bit lcd_busy() { bit result 。 lcdrw = 1 。 delayNOP() 。0x80) 。 return(result) 。 * ******************************************************************/ void lcd_wcmd(uchar cmd) { while(lcd_busy()) 。 lcdrw = 0 。 _nop_() 。 P0 = cmd 。 lcden = 1 。 lcden = 0 。 //控制停留時(shí)間 lcd_wcmd(0x08)。 //延時(shí) lcd_wcmd(0x0c)。 } /******************************************************************* * 寫(xiě)顯示數(shù)據(jù)到 LCD * * RS=H, RW=L, E=高脈沖, D0D7=數(shù)據(jù)。 lcdrs = 1 。 lcden = 0 。 . delayNOP() 。 delayNOP() 。 } /************************************* /* LCD 初始化設(shè)定 * /*************************************/ void lcd_init() { delay1(15) 。 //清除 LCD 的顯示內(nèi)容 lcd_wcmd(0x38) 。 lcd_wcmd(0x38) 。 lcd_wcmd(0x38) 。 lcd_wcmd(0x0c) 。 lcd_wcmd(0x06) 。 lcd_wcmd(0x01) 。 } /********************* * 設(shè)定顯示位置 * *********************/ void lcd_pos(uchar pos) { lcd_wcmd(pos | 0x80) 。 //DQ 復(fù)位 Delay(8) 。 //單片機(jī)將 DQ 拉低 Delay(90) 。 //拉高總線 Delay(8) 。 //如果 =0 則初 始化成功 =1 則初始化失敗 Delay(100) 。 return(presence) 。 uchar dat = 0 。 i 0 。 // 給脈沖信號(hào) dat = 1 。 // 給脈沖信號(hào) if(DQ) dat |= 0x80 。 } return (dat) 。 for (i = 8 。 i) { DQ = 0 。0x01 。 D
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1