版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 《智能儀器設(shè)計基礎(chǔ)》</p><p> 課 程 設(shè) 計 報 告</p><p> 論文題目: 基于1N4007的溫度測量電路設(shè)計 </p><p> 學院(系): 電子信息與自動化學院 </p><p> 班 級: </p><p><b
2、> 學生姓名: </b></p><p><b> 指導教師: </b></p><p> 基于PN結(jié)的溫度測量系統(tǒng)設(shè)計</p><p><b> 摘要:</b></p><p> 本文給出了一種基于PN結(jié)的溫度測量系統(tǒng)方案。利用PN結(jié)正向壓降的溫度特性測量環(huán)境溫度。
3、文章詳細介紹了電路中恒流源、放大電路、AD采樣電路、LCD液晶的設(shè)計方法、硬件連接電路以及軟件的編寫思路,其中,數(shù)據(jù)處理部分詳細介紹了線性插值的數(shù)據(jù)處理方法。</p><p> 關(guān)鍵字:二極管 溫度 非線性校正 </p><p><b> 正文:</b></p><p><b> 一、原理與總體方案</b
4、></p><p> 1.1、二極管(PN結(jié))特性:</p><p> 晶體二極管為一個由p型半導體和n型半導體形成的p-n結(jié),在其界面處兩側(cè)形互相抑消作用使載流子的擴散電流增加引起了正向電流,并且和電壓成指數(shù)關(guān)系。</p><p> 1.1.1電流-電壓特性:</p><p> 理想PN結(jié)的正向電流IF和正向壓降VF存在如下關(guān)
5、系:IF= Is*exp【-e*Vf/(k*T)】式中,-e為電子電量;k為玻耳茲曼常數(shù);T為絕對溫度;Is為反向飽和電流,與PN結(jié)材料的禁帶寬度及溫度有關(guān).在此基礎(chǔ)上得出PN結(jié)的正向電壓Vf與熱力學溫度T之間的關(guān)系,從而證明半導體PN結(jié)在某個溫度范圍內(nèi)是性能優(yōu)良的溫度傳感器。</p><p> 1.1.2溫度特性:</p><p> 溫度對二極管的性能有較大的影響,溫度升高時,反向電
6、流將呈指數(shù)規(guī)律增加,如硅二極管溫度每增加8℃,反向電流將約增加一倍;鍺二極管溫度每增加12℃,反向電流大約增加一倍。另外,溫度升高時,二極管的正向壓降將減小,每增加1℃,正向壓降VD大約減小2 mV,即具有負的溫度系數(shù)。這些可以從下圖所示二極管的伏安特性曲線上看出。</p><p><b> 據(jù)資料介紹:在恒流</b></p><p> 模式下,If=If0,1n
7、=If/If0=0,有:S=(Vg0-Vf0)/T0-(kB/q)*(1+1nT/T0).因1nT/T0是T的緩變函數(shù), S的模隨著T增加而上升,但在不寬的溫度范圍內(nèi),S近似常數(shù)。</p><p> 1.2主要電路方案分析:</p><p><b> 1.2.1恒流源:</b></p><p> 為保證整個溫度測量范圍內(nèi)PN結(jié)的正向電流恒
8、定,PN結(jié)的正向偏置采用恒流源驅(qū)動。采用三極管的特性和特殊電路,讓通過二極管的電流始終在100uA左右。</p><p> 1.2.2電橋的設(shè)置:</p><p> 采用電橋連接方式使放大器放大傳感器變化電壓的差值。電橋通過兩個電阻和二極管并聯(lián)構(gòu)成,從而向放大器正負兩端輸入電壓。通過理論分析及仿真實驗研究選擇合適的電橋電路參數(shù)。</p><p> 1.2.3放
9、大電路的設(shè)置:</p><p> PN結(jié)的結(jié)電壓變化是一個微弱信號,結(jié)電壓在溫度每變化1度時大約變化2mv左右,所以需要進行放大后才能被后續(xù)電路處理。采用三運放高共模抑制比放大電路,放大電橋兩端的差模信號。設(shè)計中可采用三個獨立的運放來構(gòu)成放大電路,也可采用儀用放大器AD620,根據(jù)電路實際情況來設(shè)置。(AD620的電源提供范圍為正負2.3V到正負18V,低功耗,精確度高)。</p><p&g
10、t; 1.2.4濾波電路:</p><p> 采用一階無源RC低通濾波器,截至頻率為50HZ。</p><p> 1.2.5AD轉(zhuǎn)換:</p><p> 采用8位的AD轉(zhuǎn)換元件AD0809,這樣可以使用其8位數(shù)據(jù)線與CPU進行并口通信。因為AD0809對于本設(shè)計來說,精度已經(jīng)達到,所以未用采用SPI通信的12位AD7841等多位的AD轉(zhuǎn)換器件。</p&
11、gt;<p><b> 1.2.6處理器:</b></p><p> 采用單片機STC89C52(32個IO口,8KB的Flash等)。而未用本身帶有10位AD的ARM處理器,因為其對本設(shè)計而言會有很多硬件資源剩余,而且不熟悉其操作更會增加程序設(shè)計難度。所以綜合考慮,對本設(shè)計而言,一般單片機的性價比更高。</p><p> 1.2.7顯示部分:&l
12、t;/p><p> 采用液晶LCD1602,可設(shè)置8位數(shù)據(jù)端口,2行顯示,5*7點陣等。</p><p> 1.3 DS18B20介紹:</p><p> DS18B20為一款單總線測溫器件,它具有線路簡單,體積小的特點。由于DS18B20采用的是1-Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳輸,而對STC89C51單片機來說,硬件上并不支持單總線協(xié)議,
13、因此,必須采用軟件的方法來模擬單總線的協(xié)議時序來完成對DS18B20芯片的訪問。 DS18B20有嚴格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),在進行寫命令后,主機需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。 </p>
14、<p><b> 1.4實驗原理:</b></p><p> 設(shè)計整體思路:當通過PN結(jié)(以后用二極管表示)的電流恒定后,二極管兩端的電壓變化就主要與其感受的環(huán)境溫度有關(guān),所以以此來研究二極管的電壓和溫度特性。通過電橋設(shè)置,將溫度選擇一個基準,即電壓隨溫度變化的基準,當溫度變化時,電壓就會相對基準有個差值。將差值信號放大,濾波,輸入單片機處理和采用溫度傳感器18B20標定溫度值
15、,得到一個AD值和溫度對應(yīng)的表,然后用二極管測溫度,得到AD值采用查表非線性處理得到溫度值,結(jié)果和18B20測溫結(jié)果對比顯示在液晶上。</p><p> 非線性處理方法原理:將非線性的圖形取一些采樣點,通過這些采樣點相鄰之間直線相連就近似得到該曲線。我們的實驗?zāi)康闹痪褪堑玫蕉O管電壓-溫度特性曲線。</p><p> 二極管測溫原理:由文獻資料我們已知了PN結(jié)的溫度電壓變化特性是指數(shù)
16、關(guān)系?,F(xiàn)假設(shè)我們測得N個溫度值(可用18b20測得)y1,y2,……,yn以及的對應(yīng)的AD采樣值x1,x2,……,xn。在N值足夠大的情況下,我們認為相鄰兩點是線性的關(guān)系,因此,具體某測量點對應(yīng)的溫度值可用以下方法</p><p> 獲得: 首先,我們需要知道未知值x那兩個x值的中間,然后根據(jù)我們已知坐標(x0,y0)與(x1,y1),要得到[x0,x1]區(qū)間內(nèi)某一位置x在直線上的值。根據(jù)圖中所示,我
17、們得到 假設(shè)方程兩邊的值為α,那么這個值就是插值系數(shù)—從x0到x的距離與從x0到x1距離的比值。由于x值已知,所以可以從公式得到α的值。</p><p><b> 二、硬件設(shè)計</b></p><p><b> 2.1電源部分:</b></p><p> 2.2電橋和放大部分</p><
18、p> 2.2.1恒流源分析:</p><p> 為保證整個溫度測量范圍內(nèi)二極管的正向電流恒定,其正向偏置采用恒流源驅(qū)動。當三極管Q1正常工作時,其Ube=0.7V,通過三極管集電極端的電流I=(VDD-0.7v)/R1,只要VDD和R1恒定,I就一定。那么由Q1和Q2兩個三極管參數(shù)幾乎一樣,鏡像得到通過二極管D1的電流值就為I,那么就一定了。</p><p> 2.2.2電橋分
19、析:</p><p> 通過R3和R4在R4兩端產(chǎn)生一個恒定基準電壓(比如15度時VDD減去二極管的電壓值),從而當溫度變化時,電橋兩端就會有一電壓差。</p><p> 2.2.3放大分析:</p><p> 采用LM324自己搭建三運放高共模抑制比放大電路。從下表我們可以看出所測電路輸出值與輸入值的關(guān)系,在差值為0.1V到0.50V范圍內(nèi),輸出放大5倍,在
20、差值為0.6V以上就有一些非線性關(guān)系。根據(jù)電路設(shè)計方案,當差值大于0.90V以上時 U值不隨U0-U1變化而變化,U最大值為3.23V。能夠滿足設(shè)計要求。從理論上說,我們將0到100℃對應(yīng)放大后的值為0.5V到3V,那么所有值都在其線性區(qū)域內(nèi),由資料介紹二極管的溫度特性分析,每變化1℃就會使差值增加1mv,那么最多變化200mv,這樣三運放放大倍數(shù)為12.5倍。由差模增益:調(diào)節(jié)硬件電路得到。</p><p>
21、2.3AD采樣、單片機及顯示部分</p><p> 2.3.1AD轉(zhuǎn)換原理:</p><p> 由于采用8位的ADC0809,其參考電壓為3v, 理論上輸入的電壓為0.875v到3v(對應(yīng)溫度為15°~100°),根據(jù)轉(zhuǎn)換原理可得到AD轉(zhuǎn)換值x=(255*Vin)/3,通過比較取整。</p><p><b> 三、程序設(shè)計:<
22、;/b></p><p> 3.1溫度傳感器18B20標定溫度:</p><p> 注意:DS18B20在完成一個讀時序過程,至少需要60us才能完成。寫0時序和寫1時序的要求不同,當要寫0時序時,單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當要寫1時序時,單總線被拉低之后,在15us之內(nèi)就得釋放單總線</
23、p><p><b> 3.2程序流程圖</b></p><p><b> 四、實驗結(jié)果記錄:</b></p><p> 所測二極管1N4007電壓-溫度特性曲線:二極管兩端電壓—溫度基本成指數(shù)關(guān)系:</p><p> 五、電路調(diào)試與問題分析</p><p> 5.1.電
24、路部分調(diào)試:</p><p> 5.1.1模擬部分硬件調(diào)試及分析:</p><p> 首先必須保證電路原理正確,然后根據(jù)原理檢查電路板的接線是否正確,有無虛焊、錯焊以及漏焊,各電路是否連接正確。我們在制作電路過程中就有焊錯焊漏的現(xiàn)象,比如7805輸入輸出腳接反,導致電源輸出為7V以上。通過對關(guān)鍵點的測試以及各電路的特點,最終很不容易完成電路板。但是只要細心一點,還是不會出什么錯的。&l
25、t;/p><p> 在確保電路連接無誤后,我們開始模擬部分調(diào)試。調(diào)節(jié)滑動變阻器設(shè)定AD620的放大倍數(shù)到設(shè)定值。然后輸入一較小電壓差,但是輸出值確是4V以上,調(diào)節(jié)滑動變阻器就是下不來。反復分析電路連接,輸入電壓差值,以及濾波電路都查不出問題所在。所以我們將問題集中在AD620上,但是Proteus和multisim軟件仿真都沒有錯啊。查看資料和詢問老師后,單電源其線性工作區(qū)大楷在-Vs+1.6v和+Vs-1.6v,
26、可能是輸入的共模電壓值太大,或是采用單電源的原因。二極管電橋輸出電壓高于3.5v,于是我們串聯(lián)了一個30歐/2W的電阻欲將其共模降下來,但是連上電路后居然降低到1.5v左右了,但是另一個電橋輸出最低在2.3V左右,這樣無法調(diào)零。懷疑是不是電阻的功率太大了,我們把電阻值換后,而且電阻小于30歐都使其值在原來位置。最后我們考慮將另外一電橋的電阻比例換了,使其輸出電壓調(diào)節(jié)能力更大。這樣我們就將共模電壓降了下來,輸入AD620后,其輸出值有一點
27、變化,但是調(diào)節(jié)滑動變阻器還是不能得到理想值,甚至調(diào)而無用,輸入電壓為0v時輸出超過了1.5v, 所以我們認為其放大后沒在線性區(qū)工作所致。后來我們將單電源改為正負1</p><p> 調(diào)節(jié)數(shù)字部分電路時,剛開始ADC0809一直不正常工作,反復檢查電路連接和程序都沒多大問題,最終檢查電路原理圖時,發(fā)現(xiàn)單片機的EA腳沒接電源。因為其控制是否訪問外部存儲器,接電源表示從程序從內(nèi)部存儲器開始工作,接好后,ADC0809
28、正常工作。</p><p> 在測量溫度時,發(fā)現(xiàn)IN4007所測溫度不穩(wěn)定,而AD輸入值還是較穩(wěn)定的,示波器測量其參考電壓(我們是用滑動變阻器調(diào)節(jié)5V電源到3V)紋波較大,接了電容后所測溫度比較穩(wěn)定。另外我們在標定溫度是出現(xiàn)溫度下降時,AD值成鋸齒波下降,我想也是由此影響。</p><p> 5.2程序部分調(diào)試:</p><p> 我們采用各個程序模塊單獨調(diào)試
29、,顯示、AD轉(zhuǎn)換、18b20程序依次調(diào)試,各個部分都正常后,再將其全部合成一起,所以程序并未出現(xiàn)大的問題,只是在標定溫度列表后,出現(xiàn)數(shù)據(jù)存儲區(qū)溢出情況。</p><p><b> 六、總結(jié)</b></p><p> 通過對電路的實際測試,電路基本上達到了預定要求,能夠測得15攝氏度到100攝氏度左右的溫度。但由于當溫度高于65攝氏度左右時,電壓值不會隨溫度升高而升
30、高.</p><p> 通過本次課程設(shè)計,我們學習了實際問題的處理方法。這次課程設(shè)計的實際問題是設(shè)計一個測量PN結(jié)溫度-電壓特性曲線和用PN結(jié)做一個溫度傳感器測量溫度電路,并通過動手和使用所學知識將其實現(xiàn)。我們在制作過程也得到了一些收獲:1.在制作電路前必須把原理搞清楚,確保方案沒有錯誤 ,同時深刻理解,看似簡單的事情,要實際動手做好卻不是很容易。2.實驗也鍛煉了我們分析和解決實際問題的能力,比如從設(shè)計檢測電路
31、的過程中,我們都有步驟并依次一步步進行,確保每一部分正確后在進行下一步。3.我們的基本理論都是采用所學知識,讓我們深刻認識理論與實踐相結(jié)合的重要性以及理論與實踐存在的差異性,同時我們也采用其他途徑查詢所需資料,并認真學習。4. 本次課程設(shè)計過后,我們鞏固了最電器元件的識別和選擇方面的知識,熟悉了各種繪圖仿真軟件及測試儀器的應(yīng)用,編程的經(jīng)驗。5.讓我們最有收獲的是在遇到問題時,能夠有步驟的分析,我們感受解決問題后的樂趣。雖然有少數(shù)理論問題
32、還沒分析清楚,這也跟我們提供了很多繼續(xù)思考學習的空間。</p><p><b> 參考文獻:</b></p><p> 【1】智能儀器設(shè)計基礎(chǔ)/史健芳[等]編著 北京: 電子工業(yè)出版社, 2007</p><p> 【2】電路與模擬電子技術(shù)/陳士英,郭炯杰編著 北京: 機械工業(yè)出版社, 2004 </p><p&g
33、t; 【3】萬文略主編.《嵌入式系統(tǒng)設(shè)計及應(yīng)用》實驗指導書[M].重慶:重慶工學院電子信息與自動化學院,2008。</p><p> 【4】放大電路實用設(shè)計手冊/段九州主編 沈陽: 遼寧科學技術(shù)出版社, 2002 </p><p> 【5】液晶顯示器件應(yīng)用技術(shù)/李宏,張家田等編著 北京: 機械工業(yè)出版社, 2004 </p><p> 【6】張國雄主編.
34、測控電路[M].天津大學:機械工業(yè)出版社,2008。</p><p> 【7】PN結(jié)正向壓降溫度特性的研究和應(yīng)用/陳水橋 物理實驗 第二十卷 第七期</p><p><b> 附:</b></p><p> #include <reg51.H></p><p> #include "LCD1
35、602.h"</p><p> sbit AL=P2^3;</p><p> sbit START=P2^4;</p><p> sbit EOC=P2^6;</p><p> sbit OUTE=P2^5;</p><p> sbit AD_CLK=P2^7;</p><p&g
36、t; sbit DQ =P3^0; //定義通信端口</p><p> unsigned char TempBuffer[10]; // </p><p> unsigned char ADBuffer[10];//存顯示的字符</p><p> /***********T0中斷服務(wù)程序************/</p><p&g
37、t; void t0(void) interrupt 1 using 0</p><p><b> { </b></p><p> AD_CLK=~AD_CLK;</p><p> } </p><p> void IntToT(unsigned int t, unsigned char
38、 *str, unsigned char n) </p><p><b> {</b></p><p> unsigned char a[5]; </p><p> unsigned char i, j; </p><p> a[0]=(t/100
39、0)%10; //取得整數(shù)值到數(shù)組 </p><p> a[1]=(t/100)%10; </p><p> a[2]=-2;// </p><p> a[3]=(t/10)%1
40、0; </p><p> a[4]=(t/1)%10; </p><p> for(i=0; i<5; i++) //轉(zhuǎn)成ASCII碼 </p><p>
41、 a[i]=a[i]+'0'; </p><p> for(i=0; a[i]=='0' && i<=3; i++); </p><p> for(j=5-n; j<i; j++) //填充空格
42、 </p><p> { *str=' '; str++; } </p><p> for(i=0; i<5; i++) </p><p> { *str=a[i]; str+
43、+; } //加入有效的數(shù)字 </p><p> *str='\0'; </p><p><b> }</b></p><p> void Delay1ms(unsigned int count)</p><p><b> {</b></p>
44、;<p> unsigned int i,j;</p><p> for(i=0;i<count;i++)</p><p> for(j=0;j<120;j++);</p><p><b> }</b></p><p> /********************18b20采集溫度程序
45、***********************/</p><p><b> //延時函數(shù)</b></p><p> void delay(unsigned int i)</p><p><b> {</b></p><p> while(i--);</p><p>&
46、lt;b> }</b></p><p><b> //初始化函數(shù)</b></p><p> void Init_DS18B20(void)</p><p><b> {</b></p><p> unsigned char x=0;</p><p>
47、; DQ = 1; //DQ復位</p><p> delay(8); //稍做延時</p><p> DQ = 0; //單片機將DQ拉低</p><p> delay(80); //精確延時 大于 480us</p><p> DQ = 1; //拉高總線</p><p> dela
48、y(14);</p><p> x=DQ; //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗</p><p> delay(20);</p><p><b> }</b></p><p><b> //讀一個字節(jié)</b></p><p> Rea
49、dOneChar(void)</p><p><b> {</b></p><p> unsigned char i=0;</p><p> unsigned char dat = 0;</p><p> for (i=8;i>0;i--)</p><p><b> {&
50、lt;/b></p><p> DQ = 0; // 給脈沖信號</p><p><b> dat>>=1;</b></p><p> DQ = 1; // 給脈沖信號</p><p><b> if(DQ)</b></p><p> dat|=0
51、x80;</p><p><b> delay(4);</b></p><p><b> }</b></p><p> return(dat);</p><p><b> }</b></p><p><b> //寫一個字節(jié)</
52、b></p><p> void WriteOneChar(unsigned char dat)</p><p><b> {</b></p><p> unsigned char i=0;</p><p> for (i=8; i>0; i--)</p><p><b&
53、gt; {</b></p><p><b> DQ = 0;</b></p><p> DQ = dat&0x01;</p><p><b> delay(5);</b></p><p><b> DQ = 1;</b></p>&l
54、t;p><b> dat>>=1;</b></p><p><b> }</b></p><p> //delay(4);</p><p><b> }</b></p><p><b> //讀取溫度</b></p>
55、<p> ReadTemperature(void)</p><p><b> {</b></p><p> unsigned char a=0;</p><p> unsigned char b=0;</p><p> unsigned int t=0;</p><p>
56、 float tt=0;</p><p> Init_DS18B20();</p><p> WriteOneChar(0xCC); // 跳過讀序號列號的操作</p><p> WriteOneChar(0x44); // 啟動溫度轉(zhuǎn)換</p><p> Init_DS18B20();</p><p>
57、WriteOneChar(0xCC); //跳過讀序號列號的操作</p><p> WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度</p><p> a=ReadOneChar();</p><p> b=ReadOneChar();</p><p><b> t=b;<
58、;/b></p><p><b> t<<=8;</b></p><p><b> t=t|a;</b></p><p> tt=t*0.0625;</p><p> t=tt*100; //放大10倍輸出并四舍五入---此行沒用</p><p>
59、 return(t);</p><p><b> }</b></p><p> /************************************************************/</p><p> unsigned char ADC(void) //AD采樣函數(shù)</p><p>&l
60、t;b> {</b></p><p> unsigned char temp=0;</p><p> AL=0;START=0;OUTE=0; </p><p> AL=1;START=1; </p><p> AL=0;START=0; </p><p> while(EOC==0);
61、</p><p><b> OUTE=1;</b></p><p><b> temp=P1;</b></p><p><b> OUTE=0;</b></p><p> return (temp);</p><p><b> }&l
62、t;/b></p><p> unsigned char DATA_GET(void) //AD濾波(均值濾波等)</p><p><b> {</b></p><p> unsigned char AD_DATA[12]; //存放12次AD采樣值</p><p> unsigned char g
63、etdata,temp;</p><p> unsigned int R_DATA=0;</p><p> unsigned char i,j;</p><p> for(i=0;i<=11;i++)</p><p><b> {</b></p><p> AD_DATA[i]
64、=ADC();</p><p><b> }</b></p><p> for(i=0;i<=11;i++)</p><p><b> {</b></p><p> for(j=0;j<=10;j++)</p><p> if(AD_DATA[j]>
65、;AD_DATA[j+1])</p><p><b> {</b></p><p> temp=AD_DATA[j];</p><p> AD_DATA[j]=AD_DATA[j+1];</p><p> AD_DATA[j+1]=temp;</p><p><b> }<
66、;/b></p><p><b> }</b></p><p> for(i=1;i<=10;i++)</p><p><b> {</b></p><p> R_DATA=AD_DATA[i]+R_DATA;</p><p><b> }&l
67、t;/b></p><p> R_DATA=R_DATA/10;</p><p> getdata=(unsigned char)R_DATA;</p><p> return getdata;</p><p><b> } </b></p><p> unsigned int x
68、ianxing(unsigned char DATA_IN) /*線性校正函數(shù)*/</p><p><b> {</b></p><p> float Y[16]={15.18,20.40,23.12,27.63,33.27,36.23,40.93,44.74,47.24,50.12,52.5,53.18,55.31,57.87,59.61,65.91};
69、</p><p> unsigned char X[16]={94,106,112,122,138,146,155,163,173,181,185,189,192,194,203,208};</p><p> unsigned char m=0;</p><p> unsigned int R_DATA=0;</p><p> flo
70、at temp=0.0;</p><p> if(DATA_IN<X[0])</p><p> DATA_IN=X[0];</p><p> if(DATA_IN>X[15])</p><p> DATA_IN=X[15];</p><p> for(m=1;m<16;m++)</p&
71、gt;<p><b> {</b></p><p> if(DATA_IN<=X[m])</p><p> { temp=(float)((DATA_IN-X[m-1])/(X[m]-X[m-1]))*(Y[m]-Y[m-1])+Y[m-1];</p><p><b> break;</b
72、></p><p> } </p><p><b> }</b></p><p> temp*=100;</p><p> R_DATA=(unsigned int)temp;</p><p> return (R_DATA);</p>&
73、lt;p><b> }</b></p><p><b> main()</b></p><p> {</p><p> unsigned char AD_OUT=0; </p><p> unsigned int T_OUT=0;</p><p
74、> unsigned int DATA;</p><p> EA = 1; //開總中斷</p><p> TMOD = 0x02; //設(shè)定定時器T0工作方式 </p><p> TH0=216; //利用T0中斷產(chǎn)生CLK信號</p
75、><p><b> TL0=216;</b></p><p> TR0=1; //啟動定時器T0</p><p><b> ET0=1;</b></p><p> LCD_Initial();</p><p> Delay1ms
76、(10);</p><p> GotoXY(0,0);</p><p> Print(" The temperature ");</p><p> GotoXY(0,1);</p><p> Print(" gather system ");</p><p><b
77、> while(1)</b></p><p><b> {</b></p><p> AD_OUT=DATA_GET();</p><p> DATA=xianxing(AD_OUT); </p><p> IntToT(DATA,&ADBuffer[0],5);//Delay1ms
78、(1);</p><p> T_OUT=ReadTemperature();</p><p> IntToT(T_OUT,&TempBuffer[0],5);</p><p> GotoXY(0,0);</p><p> Print(" 18b20: 'C");//Delay1ms(
79、1);</p><p> GotoXY(8,0);</p><p> Print(&TempBuffer[0]);Delay1ms(1);</p><p> GotoXY(0,1);</p><p> Print("1N4007: 'C");Delay1ms(1);</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 溫度控制課程設(shè)計--數(shù)字溫度測量系統(tǒng)
- 溫度測量課程設(shè)計
- 糧庫溫度測量顯示系統(tǒng)課程設(shè)計
- 數(shù)字溫度測量系統(tǒng)課程設(shè)計論文
- pn結(jié)的伏安特性與溫度特性測量
- 電子信息工程課程設(shè)計--溫度測量系統(tǒng)設(shè)計
- 溫度測量儀課程設(shè)計
- 單片機課程設(shè)計---基于單片機溫度測量系統(tǒng)設(shè)計
- 溫度測量儀課程設(shè)計
- 溫度測量與控制課程設(shè)計
- 溫度測量儀課程設(shè)計
- 電子信息工程課程設(shè)計--溫度測量系統(tǒng)設(shè)計
- 虛擬儀器課程設(shè)計--基于labview的身體皮膚溫度測量系統(tǒng)設(shè)計
- 溫度測量顯示電路課程設(shè)計--溫度測量顯示電路設(shè)計
- 溫度測量與控制課程設(shè)計
- 課程設(shè)計---溫度測量顯示電路設(shè)計
- 傳感器課程設(shè)計----基于pt100溫度測量系統(tǒng)
- 基于8086的溫度測控系統(tǒng)課程設(shè)計
- 智能溫度測量儀課程設(shè)計
- 課程設(shè)計---基于ds18b20的多點溫度測量系統(tǒng)
評論
0/150
提交評論