單片機設(shè)計報告溫度傳感器_第1頁
單片機設(shè)計報告溫度傳感器_第2頁
單片機設(shè)計報告溫度傳感器_第3頁
單片機設(shè)計報告溫度傳感器_第4頁
單片機設(shè)計報告溫度傳感器_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1、 設(shè)計題目 溫度傳感器2、 設(shè)計背景 溫度測量在物理實驗、醫(yī)療衛(wèi)生、食品生產(chǎn)等領(lǐng)域,尤其在熱學(xué)實驗(如:物體的比熱容、汽化熱、熱功當(dāng)量、壓強溫度系數(shù)等教學(xué)實驗)中,有特別重要的意義。目前溫度計的發(fā)展很快,從原始的玻璃管溫度計發(fā)展到了現(xiàn)在的熱電阻溫度計、熱電偶溫度計、數(shù)字溫度計、電子溫度計等等?,F(xiàn)在所使用的溫度計通常都是精度為1和0.1的水銀、煤油或酒精溫度計,這些溫度計的刻度間隔通常都很密,不容易準(zhǔn)確分辨,讀數(shù)困難,而且他們的熱容量還比較大,達(dá)到熱平衡所需的時間較長,因此很難讀準(zhǔn),并且使用非常不方便。本文所介紹與傳統(tǒng)的溫度計相比,具有讀數(shù)方便、測溫范圍廣、測溫準(zhǔn)確等優(yōu)點,其輸出溫度采用數(shù)字

2、顯示,主要供測溫要求準(zhǔn)確的場所和科研實驗室使用。2、 設(shè)計目的 利用單片機及其外圍電路完成遠(yuǎn)程溫度檢測系統(tǒng)設(shè)計。通過本課題設(shè)計,學(xué)生能夠掌握單片機硬件設(shè)計及其編程語言,掌握利用protel軟件繪制電路圖,提高根據(jù)實際情況進(jìn)行單片機開發(fā)能力。在電氣工程及其自動化學(xué)科的培養(yǎng)方向上,提高針對具體問題的資料收集、自我學(xué)習(xí)、分析及處理能力。 學(xué)習(xí)protel軟件,并繪制本課題的硬件電路圖;熟悉單片機編程語言,并能用單片機C語言進(jìn)行本課題的編程;通過本課題的設(shè)計,學(xué)習(xí)根據(jù)實際情況進(jìn)行合理設(shè)計的方法,并能選擇合適的器件實現(xiàn)系統(tǒng)功能。3、 設(shè)計原理 本設(shè)計是以51單片機為核心的溫度傳感器設(shè)計,該系統(tǒng)以STC8

3、9C516RD單片機為中心控制單元,由數(shù)碼管顯示模塊,蜂鳴器警報模塊組成,并預(yù)設(shè)溫度報警上下限,系統(tǒng)啟動后可以實時采集環(huán)境中的溫度,并且當(dāng)溫度超出上下限的值以后蜂鳴器報警.五、設(shè)計要求與內(nèi)容1.用Protel等軟件繪制原理圖SCH的繪制;2.畫出電路原理圖,并對元件進(jìn)行正確的封裝、合理布局、布線,完成PCB圖。3.小組成員掌握相關(guān)操作,完成各自的演示實驗;4.進(jìn)行單片機仿真實驗,按照設(shè)計任務(wù)書的要求對基礎(chǔ)實驗進(jìn)行創(chuàng)新,達(dá)到預(yù)期目的。六、主要過程 1.由老師布置設(shè)計任務(wù),并對相關(guān)知識進(jìn)行了講述,并領(lǐng)取工具; 2.在老師的指導(dǎo)下,安裝相關(guān)軟件,對軟件的常用操作進(jìn)行學(xué)習(xí); 3小組成員按照分配的任務(wù)展

4、開工作。主要是:搜集相關(guān)資料,繪制SCH和PCB圖,對程序進(jìn)行修改完成相關(guān)創(chuàng)新; 4.進(jìn)行仿真實驗,對問題進(jìn)行反饋,小組成員內(nèi)展開討論; 5.遞交設(shè)計結(jié)果及設(shè)計報告。7、 相關(guān)結(jié)果 1、設(shè)計原理圖 2、由protel繪制的SCH圖 3、由protel繪制的PCB圖4、基礎(chǔ)設(shè)計仿真結(jié)果圖5、 創(chuàng)新之后的仿真結(jié)果 (1)、程序 見附錄 1 (2)、結(jié)果8、 設(shè)計總結(jié) 這次課程設(shè)計的完成真的挺不容易的。有的知識不太清楚,網(wǎng)上找的不符合課程設(shè)計要求,我們幾個又跑到圖書館去找相關(guān)書籍,結(jié)果還是不太滿意,最后還是求教于老師,還好老師有足夠的耐心幫助我們完成課題設(shè)計。雖然這次課程設(shè)計的完成有點吃力,但我還是

5、挺珍惜課程設(shè)計的機會,因為它可以暴漏我自身的問題,讓我更清楚的認(rèn)識自己,同時,與組員之間討論的時間多了,與老師接觸的機會多了,鍛煉了自己各個方面的能力。而且,它是我們在校期間難得的實踐機會。 在今后社會的發(fā)展和學(xué)習(xí)實踐過程中,一定要不懈努力,不能遇到問題就想到要退縮,一定要不厭其煩的發(fā)現(xiàn)問題所在,然后一一進(jìn)行解決,只有這樣,才能成功的做成想做的事,才能在今后的道路上,不斷收獲喜悅,得到社會及他人對你的認(rèn)可!九、參考文獻(xiàn) 電子CAD(Protel)教程 中南大學(xué)出版社 10、 附錄 附錄1 C+算法仿真程序 (main.c)/*     

6、0;           *              普中科技* 實 驗 名  : 18B20溫度顯示試驗* 實驗說明       : LCD1602顯示溫度值。* 連接方式  

7、     : 見連接圖* 注    意  : */#include<reg51.h>#include"lcd.h"#include"temp.h"void LcdDisplay(int);void delay(unsigned int i) /延遲sbit Beep =  P15 /定義全局變量unsigned

8、60;char datas = 0, 0, 0, 0, 0; /定義數(shù)組/* 函數(shù)名         : main* 函數(shù)功能    : 主函數(shù)* 輸入           : 無* 輸出  

9、0;        : 無*/void main()LcdInit();  /初始化LCD1602LcdWriteCom(0x88); /寫地址 80表示初始地址LcdWriteData('C'); while(1)LcdDisplay(Ds18b20ReadTemp();/ Delay1ms(1000);/1s鐘刷一次        if(datas1=2&&da

10、tas2>=5|datas1>2)         Beep= 1;     delay(5);     Beep= 0;     delay(5); /* 函數(shù)名         : delay()*

11、60;函數(shù)功能  : 延遲程序* 輸入           : i* 輸出           : 無*/ void delay(unsigned int i)    char j;    for(i

12、; i > 0; i-)        for(j = 200; j > 0; j-);/* 函數(shù)名         : LcdDisplay()* 函數(shù)功能    : LCD顯示讀取到的溫度* 輸入   &

13、#160;       : v* 輸出           : 無*/void LcdDisplay(int temp)   /lcd顯示    float tp;  if(temp< 0) /當(dāng)溫度值為負(fù)數(shù)      LcdWrit

14、eCom(0x80); /寫地址 80表示初始地址    LcdWriteData('-');   /顯示負(fù)/因為讀取的溫度是實際溫度的補碼,所以減1,再取反求出原碼temp=temp-1;temp=temp;tp=temp;temp=tp*0.0625*100+0.5; /留兩個小數(shù)點就*100,+0.5是四舍五入,因為C語言浮點數(shù)轉(zhuǎn)換為整型的時候把小數(shù)點/后面的數(shù)自動去掉,不管是否大于0.5,而+0.5之后大于0.5的就是進(jìn)1了,小于0.5的就/算由?.5,還是在小數(shù)點后面。    e

15、lse      LcdWriteCom(0x80); /寫地址 80表示初始地址    LcdWriteData('+');  /顯示正tp=temp;/因為數(shù)據(jù)處理有小數(shù)點所以將溫度賦給一個浮點型變量/如果溫度是正的那么,那么正數(shù)的原碼就是補碼它本身temp=tp*0.0625*100+0.5; /留兩個小數(shù)點就*100,+0.5是四舍五入,因為C語言浮點數(shù)轉(zhuǎn)換為整型的時候把小數(shù)點/后面的數(shù)自動去掉,不管是否大于0.5,而+0.5之后大于0.5的就是進(jìn)1了,小于0.5的就/算

16、加上0.5,還是在小數(shù)點后面。datas0 = temp / 10000;datas1 = temp % 10000 / 1000;datas2 = temp % 1000 / 100;datas3 = temp % 100 / 10;datas4 = temp % 10; LcdWriteCom(0x82);  &#

17、160;/寫地址 80表示初始地址LcdWriteData('0'+datas0); /百位 LcdWriteCom(0x83);  /寫地址 80表示初始地址LcdWriteData('0'+datas1); /十位LcdWriteCom(0x84); /寫地址 80表示初始地址LcdWriteData('0'+datas2); /個位 LcdWriteCom(0x85); /寫地址 80表示初始地址LcdWriteData('.'

18、;);  /顯示 .LcdWriteCom(0x86);  /寫地址 80表示初始地址LcdWriteData('0'+datas3); /顯示小數(shù)點  LcdWriteCom(0x87);  /寫地址 80表示初始地址LcdWriteData('0'+datas4); /顯示小數(shù)點  附錄 2 C+算法仿真程序 (lcd.c)/*         

19、60;      普中科技-* 實 驗 名  : 18B20溫度顯示試驗* 實驗說明       : LCD1602顯示溫度值。* 連接方式       : 見連接圖* 注    意  : */#include<reg51.h>

20、#include"lcd.h"#include"temp.h"void LcdDisplay(int);void delay(unsigned int i) /延遲sbit Beep =  P15 /定義全局變量unsigned char datas = 0, 0, 0, 0, 0; /定義數(shù)組/* 函數(shù)名    &#

21、160;    : main* 函數(shù)功能    : 主函數(shù)* 輸入           : 無* 輸出           : 無*/void main()LcdInit();  /初始化LCD1602LcdWriteCom(0x

22、88); /寫地址 80表示初始地址LcdWriteData('C'); while(1)LcdDisplay(Ds18b20ReadTemp();/ Delay1ms(1000);/1s鐘刷一次        if(datas1=2&&datas2>=5|datas1>2)         Beep= 1;    

23、; delay(5);     Beep= 0;   delay(5); /* 函數(shù)名         : delay()* 函數(shù)功能   :延遲程序* 輸入          : i* 輸出   &

24、#160;      : 無*/ void delay(unsigned int i)    char j;    for(i; i > 0; i-)        for(j = 200; j > 0; j-);/*

25、 函數(shù)名          : LcdDisplay()* 函數(shù)功能     : LCD顯示讀取到的溫度* 輸入           : v* 輸出            : 無*/void

26、 LcdDisplay(int temp)   /lcd顯示       float tp;  if(temp< 0) /當(dāng)溫度值為負(fù)數(shù)      LcdWriteCom(0x80); /寫地址 80表示初始地址    LcdWriteData('-');   /顯示負(fù)/因為讀取的溫度是實際溫度的補碼,所以減1,再取反求出原碼

27、temp=temp-1;temp=temp;tp=temp;temp=tp*0.0625*100+0.5; /留兩個小數(shù)點就*100,+0.5是四舍五入,因為C語言浮點數(shù)轉(zhuǎn)換為整型的時候把小數(shù)點/后面的數(shù)自動去掉,不管是否大于0.5,而+0.5之后大于0.5的就是進(jìn)1了,小于0.5的就/算由?.5,還是在小數(shù)點后面。    else      LcdWriteCom(0x80); /寫地址 80表示初始地址    LcdWriteData('+');  /顯示正tp=temp;/因為數(shù)據(jù)處理有小數(shù)點所以將溫度賦給一個浮點型變量/如果溫度是正的那么,那么正數(shù)的原碼就是補碼它本身temp=tp*0.0625*100+0.5; /留兩個小數(shù)點就*100,+0.5是四舍五入,因為C語言浮點數(shù)轉(zhuǎn)換為整型的時候把小數(shù)點/后面的數(shù)自動去掉,不管是否大于0.5,而+0.5之后大于0.5的就是進(jìn)1了,小于0.5的就/算加上0.5,還是在小數(shù)點后面。datas0 = temp / 10000;da

溫馨提示

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

最新文檔

評論

0/150

提交評論