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

正文內(nèi)容

基于51單片機(jī)的溫度檢測系統(tǒng)-預(yù)覽頁

2024-11-25 18:44 上一頁面

下一頁面
 

【正文】 三 、器件選擇 溫度 信號采集模塊 傳統(tǒng)的溫度檢測大多以熱敏電阻為傳感器,采用熱敏電阻,可滿足 40℃ 度 至 90℃ 測量范圍,但熱敏電阻可靠性差,測量溫度準(zhǔn)確率低,對于 1℃ 的信號是不適用的,還得經(jīng)過專門的接口電路轉(zhuǎn)換成數(shù)字信號才能由微處理器進(jìn)行處理。這些總線至少需要兩條或兩條以上的信號線。主機(jī)或從機(jī)通過一個漏極開路或三態(tài)端口連 接到 數(shù)據(jù)線,以允許設(shè)備在不發(fā)送數(shù)據(jù)時能夠釋放總線,而讓其它設(shè)備使用總線。 DS18B20 特性 采用單總線的接口方式,與微處理器連接時僅需要一條口線即可實(shí)現(xiàn)微處理器與 DS18B20 的雙向通訊。 ( 3) DS18B20 支持多點(diǎn)組網(wǎng)功能,多個 DS18B20 可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫 。 ( 7) 在 9位分辨率時最多在 內(nèi)把溫度轉(zhuǎn)換為數(shù)字, 12 位分辨率時 最多在 750ms 內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快 。高溫度系數(shù)晶 振 隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計(jì)數(shù)器 2 的脈沖輸入 . 計(jì)數(shù)器 1 對 低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器 1 的預(yù)置值減到 0 時,溫度寄存器的值將加 1,計(jì)數(shù)器 1 的預(yù)置將重新被裝入,計(jì)數(shù)器 1 重 新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器 2 計(jì)數(shù)到 0 時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。 . DS18B20 溫度數(shù)據(jù)表 DS18B20溫度傳感器的存儲器 DS18B20溫度傳感器的內(nèi)部存儲器包括一個高速暫存 RAM和一個非易失性的可電擦除的 EEPRAM,后者存放高溫度和低溫度觸發(fā)器 TH、 TL 和結(jié)構(gòu)寄存器。復(fù)位要求主 CPU 將數(shù)據(jù)線下拉 500 微秒,然后 釋放,當(dāng) DS18B20 收到信號后等待16~ 60 微秒左右,后發(fā)出 60~ 240 微秒的存在低脈沖,主 CPU 收到此信號表示復(fù)位成功。 跳過 ROM 0CCH 忽略 64 位 ROM 地址,直接向 DS1820 發(fā)溫度變換命令。結(jié)果存入內(nèi)部 9 字節(jié) RAM中。 讀供電方式 0B4H 讀 DS1820 的供電模式。 本次 課題 以 51 單片機(jī)為核心實(shí)現(xiàn) 了 智能化 溫度 測量 ,過溫警告, 傳感器 異常警報(bào) 功能 。接下來 把所有的程序段組合在一起 綜合分析 ,最后燒錄到單片機(jī)上進(jìn)行硬件調(diào)試。這其中 的 苦淚 和歡笑只有自己知道。我定會 把這次課題設(shè)計(jì) 積累的經(jīng)驗(yàn)落實(shí)到 以后 的 學(xué)習(xí)中去。 sbit K7=P2^1。 //減按鍵 sbit lcden = P2^7 。 uchar code cdis3[ ] = { DS18B20 ERR0R } 。 uchar code cdis7[ ] = {!!!!Warning!!!!} 。//可設(shè)兩位 uchar bai,shi,ge,xiaoshu1,xiaoshu2,xiaoshu3,xiaoshu4,fuhao,th_temp,tl_temp。_nop_() 。 /******************************************************************* . * 兩個延時函數(shù) * *******************************************************************/ //1us void Delay(unsigned int num) { while( num ) 。 y++) { _nop_() 。 } } } void warning() //蜂鳴器發(fā)聲 {speaker=1。 } /****************************************************************** * 檢查 LCD 忙狀態(tài) * * lcd_busy 為 1時,忙,等待。 lcdrw = 1 。0x80) 。 * ******************************************************************/ void lcd_wcmd(uchar cmd) { while(lcd_busy()) 。 _nop_() 。 lcden = 1 。 //控制停留時間 lcd_wcmd(0x08)。 } /******************************************************************* * 寫顯示數(shù)據(jù)到 LCD * * RS=H, RW=L, E=高脈沖, D0D7=數(shù)據(jù)。 lcden = 0 。 delayNOP() 。 //清除 LCD 的顯示內(nèi)容 lcd_wcmd(0x38) 。 lcd_wcmd(0x38) 。 lcd_wcmd(0x06) 。 } /********************* * 設(shè)定顯示位置 * *********************/ void lcd_pos(uchar pos) { lcd_wcmd(pos | 0x80) 。 //單片機(jī)將 DQ 拉低 Delay(90) 。 //如果 =0 則初 始化成功 =1 則初始化失敗 Delay(100) 。 uchar dat = 0 。 // 給脈沖信號 dat = 1 。 } return (dat) 。 i) { DQ = 0 。 DQ = 1 。 // 跳過讀序號列號的操作 WriteOneChar(0x44) 。 //讀取溫度寄存器 tl_temp=ReadOneChar()。 } /******************************************************************* * 顯示鍵值 * *******************************************************************/ void Disp_key() { lcd_pos(0x49) 。 lcd_pos(0x4b) 。 while(!flag) //按下 K3 就退出循環(huán)套 { Disp_key()。 if(K5) { set++。if(set==1){set=99。 //正數(shù)處理 T=T*。 xiaoshu1=(Tamp。 xiaoshu3=(Tamp。 } else { fuhao=0x2d。 ge=(T%100)%10。0x000f)*625%1000/100。0x000f)*625%1000/100%10。 //0x45 寫符號 lcd_wdat(fuhao)。 //0x47 寫十位 lcd_wdat(shi+0x30)。//0x4a 寫小數(shù)點(diǎn)后 1位 lcd_wdat(xiaoshu1+0x30)。 //0x4c 寫小數(shù)點(diǎn)后 3位 lcd_wdat(xiaoshu3+0x30)。 //0x4e 寫 176。 //初始化 LCD while(k) { lcd_wcmd(0x01)。 while(cdis5[i] != 39。 } lcd_pos(0x50)。) { lcd_wdat(cdis6[i])。j++) //向左移動 16次 { lcd_wcmd(0x18)。 lcd_init() 。) { //顯示字符 lcd_wdat(cdis9[i]) 。 while(cdis10[i] != 39。 } } /******************************************************************* * WELCOM TO USE! 顯示菜單 * *******************************************************************/ void Ok_Menu () { uchar i = 0 。\039。 //設(shè)置顯示位置為第二行第 1個字符 i = 0 。 //顯示字符 i++ 。 //設(shè)置顯示位置為第一行的第 1 個字符 m = 0 。 m++ 。\039。 lcd_init() 。\039。 //設(shè)置顯示位置為第二行第 1個字符 i = 0 。 //顯示字符 i++ 。//設(shè)定溫度(設(shè)定中就包含顯示) Read_Temperature() 。 while(presence) { warning()。 Read_Temperature()。 Read_Temperature()。 while(Tempsetamp。} } else if(Temp=setamp。 //音樂在此只響一次 while(Temp=setam
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1