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

正文內(nèi)容

課程設(shè)計(jì)-基于ds18b20數(shù)字溫度計(jì)的設(shè)計(jì)(編輯修改稿)

2024-07-10 16:47 本頁面
 

【文章內(nèi)容簡介】 如果不想讀完所有字節(jié),控制器可以在任何時(shí)刻發(fā)出復(fù)位命令來中止讀取。 ( 8) Copy Scratchpad[48H] 這個(gè)命令把暫存器的內(nèi)容拷貝到 DS18B20 的 E2 ROM 存儲器里,即把溫度報(bào)警觸發(fā)器字節(jié)存入非易失性存儲器里。如果控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而 DS18B20 又忙于把暫存器拷貝到 E 存儲器,DS18B20 就會輸出一個(gè) 0,如果拷貝結(jié)束的話, DS18B20 輸出 1。如果使用寄生電源,總線控制器必須在這條命令后立即啟動(dòng)強(qiáng)上拉,并最少保持10ms。 ( 9) Convert T[44H] 這個(gè)命令啟動(dòng)一次溫度轉(zhuǎn)換而無需其他數(shù)據(jù)。溫度轉(zhuǎn)換命令被執(zhí)行,而后 DS18B20 保持等待狀態(tài)。如果控制器在這條命令之后跟著發(fā)出時(shí)間隙,而 DS18B20 有忙于做時(shí)間轉(zhuǎn)換的話, DS18B20 將在總線上輸出一個(gè)0,若溫度轉(zhuǎn)換完,則輸出 1。如果使用寄生電源,總線控制器必須在發(fā)出這條命令后立即啟動(dòng)強(qiáng)上拉 ,并最少保持 500ms 以上時(shí)間。 ( 10) Read E2 [0B8H] 這條命令把 觸發(fā)器里的值拷貝回暫存器。這種拷貝操作在 DS18B20 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 14 上電時(shí)自動(dòng)執(zhí)行,這樣一上電暫存器里馬上存在有效的數(shù)據(jù)了。若在這條命令之后發(fā)出讀數(shù)據(jù)隙,器件會輸出溫度轉(zhuǎn)換忙的標(biāo)識: 0 為忙, 1 為完成。 ( 11) Read Power Supply[0B4H] 若把這條命令發(fā)給 DS18B20 后發(fā)出讀時(shí)間隙,器件會返回它的電源模式: 0 為寄生電源, 1 為外部電源。 3. 硬件系統(tǒng)電路設(shè)計(jì) 整個(gè)電路由主 控器 AT89C51 控制,與其相連的分別是一個(gè)溫度傳感器 DS18B20 和一個(gè)數(shù)碼管。傳感器感知周圍的溫度并將感知的溫度傳給單片機(jī),在通過相應(yīng)的接口將溫度傳給數(shù)碼管顯示。這樣就實(shí)現(xiàn)了溫度的采集與顯示。整個(gè)電路的電路圖如下圖所示: 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 15 4. 軟件編程調(diào)試及性能分析 一、整個(gè)軟件的主流程圖如下圖所示: 二、主程序 include define uchar unsigned char define unit unsigned int sbit DQ=P3^0。 sbit p20=P2^0。 開始 傳感器初始化程序 向傳感器讀取一個(gè)字節(jié)程序 從傳感器讀一個(gè)字節(jié)程序 溫度轉(zhuǎn)換程序 調(diào) 用溫度轉(zhuǎn)換程序 調(diào)用寫程序?qū)懭胂鄳?yīng)的數(shù) 調(diào)用讀程序讀取溫度值 顯示對應(yīng)的溫度 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 16 sbit p21=P2^1。 sbit p22=P2^2。 sbit p23=P2^3。 code uchar tab[]={0xC0,0xF9,0xA4,0xB0,0x99, 0x92,0x82,0xf8,0x80,0x90}。 code uchar tab1[]={0x40,0x79,0x24,0x30,0x19, 0x12,0x02,0x78,0x00,0x10}。 uchar a,b,t,h,c。 uchar bai,shi,ge,xiao。 void delay(unsigned int i) { while(i)。 } //初始化函數(shù) bit int_DS18B20(void) { unsigned char x=0。 DQ=1。 delay(8)。 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 17 DQ=0。 delay(52)。 DQ=1。 delay(6)。 x=DQ。 delay(20)。 return(x)。 } //讀一個(gè)字節(jié) unsigned char read(void) { unsigned char i=0,j=0。 unsigned char dat=0。 for(i=8。i0。i) { DQ=0。 j++。 dat=1。 DQ=1。 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 18 j++。j++。 if(DQ) dat|=0x80。 delay(5)。 } return(dat)。 } //寫一個(gè)字節(jié)程序 write(unsigned char dat) { unsigned char i=0。 for(i=8。i0。i) {DQ=0。 DQ=datamp。0x01。 delay(6)。 DQ=1。 dat=1。 } delay(5)。 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 19 } //啟動(dòng)轉(zhuǎn)換 void int_(void) { while(int_DS18B20())。 write(0xCC)。 write(0x44)。 } void main(void) { unit count=0。 P2=0x00。 int_()。 DQ=1。 delay(2200)。 for(count=0。count1000。count++) {p20=1。 P0=tab[0]。 delay(20)。 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 20 p20=0。 p21=1。 P0=tab[0]。 delay(20)。 p21=0。 p22=1。 P0=tab[0]。 delay(20)。 p22=0。 p23=1。 P0=0xc6。 delay(20)。 p23=0。 } while(1) {delay(120)。 while(int_DS18B20())。 write(0xcc)。 write(0xbe)。 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 21 a=read()。 b=read()。 if(b127)//根據(jù)溫度的正負(fù)值選擇相應(yīng)的顯示程序 {a=~a。 b=~b。 a=a4。 t=b4。 t=t|a。 t+=1。 shi=t/10。 ge=tshi*10。 for(count=0。count123。count++) {if(t=10) {p20=1。 P0=0xbf。 delay(20)。 p20=0。 p21=1。 P0=tab[shi]。 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 22 delay(20)。 p21=0。 p22=1。 P0=tab1[ge]。 delay(20)。 p22=0。 p23=1。 P0=0xc6。 delay(20)。 p23=0。 } else {p20=0。 p21=1。 P0=0xBF。 delay(20)。 p21=0。 p22=1。 P0=tab1[ge]。 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 23 delay(20)。 p22=0。 p23=1。 P0=0xc6。 delay(20)。 p23=0。 } } } else {count=0。 a=a4。 t=b4。 t=t|a。 bai=t/100。 shi=(t100*bai)/10。 ge=t(bai*100+shi*10)。 for(count=0。count123。count++) {if(t=100){ 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 24 if(bai) {p20=1。 P0=tab[bai]。 delay(20)。 p20=0。 } else p20=0。 if(shi) { p21=1。 P0=tab[shi]。 delay(20)。 p21=0。 } p21=0。 p22=1。 P0=tab1[ge]。 delay(20)。 p22=0。 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 25 p23=1。 P0=0xc6。 delay(20)。 p23=0。 } else {if(shi) { p20=1。 P0=tab[shi]。 delay(20)。 p20=0。 } else p20=0。 p21=1。 P0=tab1[ge]。 delay(20)。 p21=0。 基于 DS18B20 數(shù)字溫度計(jì)的設(shè)計(jì) 26 p22=1。 P0=tab[xiao]。 delay(20)。 p22=0。 p23=1。 P0=
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1