簡(jiǎn)易數(shù)字溫度計(jì)的設(shè)計(jì)_第1頁(yè)
簡(jiǎn)易數(shù)字溫度計(jì)的設(shè)計(jì)_第2頁(yè)
簡(jiǎn)易數(shù)字溫度計(jì)的設(shè)計(jì)_第3頁(yè)
簡(jiǎn)易數(shù)字溫度計(jì)的設(shè)計(jì)_第4頁(yè)
簡(jiǎn)易數(shù)字溫度計(jì)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、下面是我本次課程設(shè)計(jì)的內(nèi)容,報(bào)告還沒(méi)有寫(xiě),暫時(shí)上傳仿真和程序啦!簡(jiǎn)易數(shù)字溫度計(jì)的設(shè)計(jì)利用數(shù)字溫度傳感器與單片機(jī)結(jié)合來(lái)測(cè)量溫度。利用數(shù)字溫度傳感器測(cè)量溫度信號(hào),計(jì)算后在LED數(shù)碼管上顯示相應(yīng)的溫度值。要求數(shù)字溫度計(jì)所測(cè)量的溫度采用數(shù)字顯示,控制器采用單片機(jī),測(cè)溫傳感器使用DS18B20,用3位共陽(yáng)極LED數(shù)碼管以串口傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示。圖一仿真時(shí),數(shù)碼管會(huì)出現(xiàn)閃爍,修改程序沒(méi)有作用。猜測(cè)是軟件問(wèn)題,換用圖二數(shù)碼管,正常程序仿真通過(guò),下面是程序:#include reg52.h#define uint unsigned int#define uchar unsigned charuchar c

2、ode tab=0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84,0xff;/0-9,正值uchar Tem3=0; /存儲(chǔ)溫度 uchar tempL,tempH;uchar Neg;/負(fù)值標(biāo)志sbit DQ = P23; /DS18B20數(shù)據(jù)口unsigned int temp;void Delay_50ms(unsigned int t);void Delay(uint t);void Reset(void);void WriteByte(uchar dat);uint ReadByte(void);uint ReadTemp(void)

3、;void Display(void);/* 延時(shí)50ms,精確*/void Delay_50ms(unsigned int t)unsigned int j; for(;t0;t-) for(j=6245;j0;j-);/* 延時(shí)函數(shù) 約位10us*/void Delay(unsigned int i) while(i-);/*定時(shí)器初始化*/void timer_init(void) TMOD = 0x01; /定時(shí)器0工作在模式1,16Bit定時(shí)器模式 TH0 = (65536-50000) / 256; TL0 = (65536-50000) % 256; TR0 =1; /開(kāi)定時(shí)器

4、ET0 =1;/開(kāi)啟定時(shí)器和中斷/* DS18B20復(fù)位函數(shù)*/void Reset(void) DQ=1; /DQ先置高Delay(4); /延時(shí)sec=0.00047400DQ=0; /發(fā)送復(fù)位脈沖 sec=0.00052600Delay(60); /精確延時(shí)大于480ussec=0.00052700DQ=1; /拉高數(shù)據(jù)線 sec=0.00108300Delay(30); /等待(1560us)這里是等待DS18B20做出回應(yīng),如果回應(yīng)DQ將變低,/MCU是在DQ拉高后開(kāi)始監(jiān)視DQ的值的。 /* DS18B20寫(xiě)一個(gè)字節(jié)函數(shù)*/void WriteByte(uchar dat) uint

5、 i; for(i=8;i0;i-) DQ=0; /先將DQ拉低,我們這里先不延時(shí)15us先,在下面的 delay(5)一起延了, /因?yàn)闀r(shí)序圖它是一直保持低電平的 DQ=dat&0x01;/去數(shù)據(jù)的最低位,應(yīng)為DS18B20是從低到高讀的 Delay(8);/延時(shí)在60-120us之間 DQ=1; /將DQ拉高 dat=1;/右移一位 Delay(1);/這里延時(shí)1us以上/* DS18B20讀一個(gè)字節(jié)函數(shù)*/uint ReadByte(void)uchar i,dat=0;/這里要付初值 for (i=8;i0;i-) DQ=1; /DQ稍微拉高,這不可有可無(wú) Delay(1);/延時(shí)小會(huì)

6、,這里延時(shí)不嚴(yán)格 DQ=0; /按照時(shí)序圖,將DQ拉低,先不延時(shí),在下面delay(4)在一起延! dat=1;/右移一位 DQ=1; /釋放一下總線,等待檢查DQ值! if(DQ)/當(dāng)DQ為1是執(zhí)行下面,如果DQ為0,值不變。 dat=dat|0x80;/把低位先放在高位,然后右移8次,高位的數(shù)據(jù)就移到了低位,因?yàn)橄葘?xiě)低位的! Delay(6);/延時(shí)60-120us return(dat);/返回dat值 /* DS18B20讀溫度程序*/uint ReadTemp(void) uint temperature; Reset(); /初始化 WriteByte(0xcc); /寫(xiě)SKIP

7、ROM(跳過(guò)檢查ROM序列,當(dāng)需要級(jí)聯(lián)時(shí)需要檢查) WriteByte(0x44); /寫(xiě)啟動(dòng)溫度轉(zhuǎn)換 Delay(60); /轉(zhuǎn)換需要一點(diǎn)時(shí)間,延時(shí)大一點(diǎn),應(yīng)該大于500us Reset(); /初始化 WriteByte(0xcc); /寫(xiě)SKIP ROM(跳過(guò)檢查ROM序列) WriteByte(0xbe); /讀溫度寄存器RAM(頭兩個(gè)值分別為溫度的低位和高位) tempL=ReadByte(); /讀出溫度的低位LSB tempH=ReadByte(); /讀出溫度的高位MSB /溫度轉(zhuǎn)換,把高低位做相應(yīng)的運(yùn)算轉(zhuǎn)化為實(shí)際溫度 temperature=(tempH*256)+tempL

8、; /temperature=(tempH*256)+tempL)*0.625;/tempH*256的意思是tempH向左移8位0.0625擴(kuò)大十倍,增加小數(shù)位 /Delay(200);/兩次間隔轉(zhuǎn)換的間隔要延時(shí)一下 return(temperature); /*發(fā)送數(shù)據(jù)、顯示子函數(shù)*/void Display(void)uchar Num;Num=0;while(Num0x0fff) temp=temp+1; Neg=1; /判斷溫度正負(fù) else Neg=0; temp=temp*0.625; */*顯示部分也可以采用一般模式,定時(shí)器中斷部分去掉,加上上面部分即可*/ Tem2=temp/100; /十位 Tem1=temp/10%10;/個(gè)位 Tem0=temp%10;/小數(shù)位 Display(); Delay_50ms(5);/*定時(shí)器0中斷*/void timer0_int(void) interrupt 1 TR0=0; TH0 =(65536-50000) / 2

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論