版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、河南理工大學單片機應用與仿真訓練設計報告基于單片機的數(shù)字溫度計設計姓 名: 學 號: 專業(yè)班級: 指導老師: 所在學院: 電氣工程與自動化系 2011年6月26日基于單片機的數(shù)字溫度計設計摘要隨著現(xiàn)代信息技術的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實現(xiàn)能夠獨立工作的溫度檢測和顯示系統(tǒng)應用于諸多領域。傳統(tǒng)的溫度檢測以熱敏電阻為溫度敏感元件。熱敏電阻的成本低,但需后續(xù)信號處理電路,而且可靠性相對較差,測溫準確度低,檢測系統(tǒng)也有一定的誤差。與傳統(tǒng)的溫度計相比,這里設計的數(shù)字溫度計具有讀數(shù)方便,測溫范圍廣,測溫精確,數(shù)字顯示,適用范圍寬等特點。選用AT89S52型單片機作為主控制器件,DSl8B20作為測溫傳感
2、器通過4位共陽極LED數(shù)碼管串口傳送數(shù)據(jù),實現(xiàn)溫度顯示。通過DSl8B20直接讀取被測溫度值,進行數(shù)據(jù)轉換,該器件的物理化學性能穩(wěn)定,線性度較好,在0100最大線性偏差小于0.1。該器件可直接向單片機傳輸數(shù)字信號,便于單片機處理及控制。另外,該溫度計還能直接采用測溫器件測量溫度,從而簡化數(shù)據(jù)傳輸與處理過程。目錄1 概述 4 1.1課題名稱 4 1.2課題要求4 1.3設計的目的意義42 系統(tǒng)總體方案及硬件設計 5 2.1單片機的選擇5 2.2溫度傳感器的介紹6 2.3溫度傳感器與單片機的連接8 2.4復位信號及外部復位電路8 2.5單片機與報警電路92.6顯示電路93 軟件設計 104 Pro
3、teus軟件仿真 12 4.1 仿真圖 12 4.2仿真結果分析135 總結體會 14參考文獻 15附錄 1 程序源代碼 15附錄 2 系統(tǒng)原理圖231概述1.1課題名稱 基于單片機的數(shù)字溫度計的設計1.2課題要求 1)基本范圍-501102)精度誤差小于0.53)LED數(shù)碼直讀顯示4)可以設定溫度的上下限報警功能1.3設計目的和意義 溫度數(shù)我們?nèi)粘Ia(chǎn)和生活中實時在接觸到的物理量,但是它是看不到的,僅憑感覺只能感覺到大概的溫度值,傳統(tǒng)的指針式的溫度計雖然能指示溫度,但是精度低,使用不夠方便,顯示不夠直觀,數(shù)字溫度計的出現(xiàn)可以讓人們直觀的了解自己想知道的溫度到底是多少度。數(shù)字溫度計采用溫度敏感
4、元件也就是溫度傳感器(如鉑電阻,熱電偶,半導體,熱敏電阻等),將溫度的變化轉換成電信號的變化,如電壓和電流的變化,溫度變化和電信號的變化有一定的關系,如線性關系,一定的曲線關系等,這個電信號可以使用模數(shù)轉換的電路即AD轉換電路將模擬信號轉換為數(shù)字信號,數(shù)字信號再送給處理單元,如單片機或者PC機等,處理單元經(jīng)過內(nèi)部的軟件計算將這個數(shù)字信號和溫度聯(lián)系起來,成為可以顯示出來的溫度數(shù)值,如25.0攝氏度,然后通過顯示單元,如LED,LCD或者電腦屏幕等顯示出來給人觀察。這樣就完成了數(shù)字溫度計的基本測溫功能。數(shù)字溫度計根據(jù)使用的傳感器的不同,AD轉換電路,及處理單元的不同,它的精度,穩(wěn)定性,測溫范圍等都
5、有區(qū)別,這就要根據(jù)實際情況選擇符合規(guī)格的數(shù)字溫度計。數(shù)字溫度計有手持式,盤裝式,及醫(yī)用的小體積的等等。另外作為電氣工程及其自動化的學生,通過基于單片機數(shù)字溫度計的設計可以提高自己理論聯(lián)系實際的能力,可以更好的掌握所學的專業(yè)理論只是,也培養(yǎng)了自己的動手能力,同時,也培養(yǎng)了信息搜集能力和分析問題解決問題的能力 2系統(tǒng)總體設計方案及硬件設計作為對專業(yè)理論知識學習后的實踐環(huán)節(jié),我選擇了自行設計基于AT89S52單片機的數(shù)字溫度計。設計原理框圖如,圖 1。圖 1 數(shù)字溫度計原理框圖2.1 單片機的選擇AT89S52是一種低功耗、高性能CMOS 8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。使用
6、Atmel 公司高密度非易失性存儲器技術制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52在眾多嵌入式控制應用系統(tǒng)中得到廣泛應用。Protues仿真軟件中用AT89C51代替AT89S52,單片機小系統(tǒng)的電路圖如圖2所示。圖2 單片機小系統(tǒng)電路 AT89S52主要性能1、與MCS-51單片機產(chǎn)品兼容;2、8K字節(jié)在系統(tǒng)可編程Flash存儲器;3、1000次擦寫周期; 4、全靜態(tài)操作:0Hz-33MHz; 5、三級加密程序存儲器;6、32個可編程I/O口線;7
7、、三個16位定時器/計數(shù)器;8、六個中斷源;9、全雙工UART串行通道; 10、低功耗空閑和掉電模式;11、掉電后中斷可喚醒;12、看門狗定時器;13、雙數(shù)據(jù)指針;14、掉電標識符 。2.2 溫度傳感器介紹DS18B20可以程序設定912位的分辨率,精度為±0.5°C。可選更小的封裝方式,更寬的電壓適用范圍。分辨率設定,及用戶設定的報警溫度存儲在EPROM中,掉電后依然保存。圖3 溫度傳感器引腳功能說明: NC :空引腳,懸空不使用; VDD :可選電源腳,電源電壓范圍35.5V。當工作于寄生電源時,此引腳必須接地。 DQ :數(shù)據(jù)輸入/輸出腳。漏極開路,常態(tài)下高電平。 GN
8、D :為電源地DS18B20內(nèi)部結構主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。光刻ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開始8位(28H)是產(chǎn)品類型標號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循環(huán)冗余校驗碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個DS18B20都各不相同,這樣就可以實現(xiàn)一根總線上掛接多個DS18B20的目的。 DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉化為例:用16位符號擴展的二進制補碼讀數(shù)形
9、式提供,以0.0625/LSB形式表達,其中S為符號位。 這是12位轉化后得到的12位數(shù)據(jù),存儲在18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實際溫度。 例如+125的數(shù)字輸出為07D0H,+25.0625的數(shù)字輸出為0191H,-25.0625的數(shù)字輸出為FF6FH,-55的數(shù)字輸出為FC90H。 DS18B20溫度傳感器的內(nèi)部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的E2RAM,后者存放高溫度和低溫度觸
10、發(fā)器TH、TL和結構寄存器。 暫存存儲器包含了8個連續(xù)字節(jié),前兩個字節(jié)是測得的溫度信息,第一個字節(jié)的內(nèi)容是溫度的低八位,第二個字節(jié)是溫度的高八位。第三個和第四個字節(jié)是TH、TL的易失性拷貝,第五個字節(jié)是結構寄存器的易失性拷貝,這三個字節(jié)的內(nèi)容在每一次上電復位時被刷新。第六、七、八個字節(jié)用于內(nèi)部計算。第九個字節(jié)是冗余檢驗字節(jié)。 該字節(jié)各位的意義如下:TM R1 R0 1 1 1 1 1低五位一直都是1 ,TM是測試模式位,用于設置DS18B20在工作模式還是在測試模式。在DS18B20出廠時該位被設置為0,用戶不要去改動。R1和R0用來設置分辨率,如表1所示:(DS18B20出廠時被設置為12位
11、) 表1 DS18B20溫度轉換時間表R1R0分辨率/位溫度最大轉向時間00993.750110187.510113751112750根據(jù)DS18B20的通訊協(xié)議,主機控制DS18B20完成溫度轉換必須經(jīng)過三個步驟:每一次讀寫之前都要對DS18B20進行復位,復位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進行預定的操作。復位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號后等待1660微秒左右,后發(fā)出60240微秒的存在低脈沖,主CPU收到此信號表示復位成功。2.3 溫度傳感器與單片機的連接DS18B20采用外部電源供電方式,在外部電源供電方式下
12、,DS18B20工作電源由VCC引腳接入,此時I/O線不需要強上拉,不存在電源電流不足的問題,可以保證轉換精度,同時在總線上理論可以掛接任意多個DS18B20傳感器,組成多點測溫系統(tǒng)。注意:在外部供電的方式下,DS18B20的GND引腳不能懸空 ,否則不能轉換溫度,讀取的溫度總是85。圖4 DS18B20接線2.4 復位信號及外部復位電路該復位信號高電平有效,其有效時間應持續(xù)24個振蕩脈沖周期即兩個機器周期以上。若使用頻率為12 MHz的晶體振蕩器,則復位信號持續(xù)時間應超過2s才完成復位操作。 圖 5 復位電路2.5 單片機與報警電路報警電路分為兩部分,一部分是蜂鳴器聲音報警,另一部分是發(fā)光二
13、極管放光報警。具體情況如下:接通電源,兩個(紅色,黃色)發(fā)光二極管都不亮,當溫度超過上線設定值(如38攝氏度)時,紅色二極管亮,同時蜂鳴器也報警;當溫度低于下限設定值時(如5攝氏度)時,黃色二極管亮,同時蜂鳴器也開始報警。 圖6 蜂鳴器報警 圖7 發(fā)光二極管報警 2.6 顯示電路采用技術成熟的5461AS共陰4位數(shù)碼管 0.56英寸紅色。LED顯示分為靜態(tài)顯示和動態(tài)顯示。這里采用靜態(tài)顯示,系統(tǒng)通過單片機的串行口來實現(xiàn)靜態(tài)顯示。串行口為方式零狀態(tài),即工作在移位寄存器方式,波特率為振蕩頻率的1/12。當器件執(zhí)行任何一條將SBUF作為目的寄存器的命令時,數(shù)據(jù)便開始從RXD端發(fā)送。在寫信號有效時,相隔
14、一個機器周期后發(fā)送控制端SEND有效,即允許RXD發(fā)送數(shù)據(jù),同時允許從TXD端輸出移位脈沖。圖8為顯示電路的連接圖。 圖 8 數(shù)碼顯示連接圖3 軟件設計DSl8820的主要數(shù)據(jù)元件有:64位激光Lasered ROM,溫度靈敏元件和非易失性溫度告警觸發(fā)器TH和TL。DSBl820可以從單總線獲取電源,當信號線為高電平時,將能量貯存在內(nèi)部電容器中;當單信號線為低電平時,將該電源斷開,直到信號線變?yōu)楦唠娖街匦陆由霞纳?電容)電源為止。此外,還可外接5 V電源,給DSl8820供電。DSl8820的供電方式靈活,利用外接電源還可增加系統(tǒng)的穩(wěn)定性和可靠性。圖9為讀取數(shù)據(jù)流程圖。開始DS18B20的初始
15、化啟動溫度轉換讀取溫度寄存器跳過讀序列號的操作跳過讀序列號的操作DS18B20的初始化RETLOW-低八位 HIGH-高八位圖9 讀取數(shù)據(jù)的流程圖讀出溫度數(shù)據(jù)后,LOW的低四位為溫度的小數(shù)部分,可以精確到0.0625,LOW的高四位和HIGH的低四位為溫度的整數(shù)部分,HIGH的高四位全部為1表示負數(shù),全為0表示正數(shù)。所以先將數(shù)據(jù)提取出來,分為三個部分:小數(shù)部分、整數(shù)部分和符號部分。小數(shù)部分進行四舍五入處理:大于0.5的話,向個位進1;小于0.5的時候,舍去不要。當數(shù)據(jù)是個負數(shù)的時候,顯示之前要進行數(shù)據(jù)轉換,將其整數(shù)部分取反加一。還因為DS18B20最低溫度只能為-55,所以可以將整數(shù)部分的最高
16、位換成一個“-”,表示為負數(shù)。圖10為溫度數(shù)據(jù)處理程序的流程圖。開始提取整數(shù)部分存入HT提取小數(shù)部分存入LTLT右移三位,將精度降低到0.5攝氏度HT+將小數(shù)部分整數(shù)化提取符號部分存入signLT是否大于5Sign=?0XF0RET負數(shù)表示flag=1 HT=HT+1YNNY圖10 溫度數(shù)據(jù)處理流程圖4 Proteus軟件仿真 仿真過程相當順利,需要注意原件的選取,尤其是數(shù)碼管顯示塊的共陰、共陽,還有就是電阻的選取,太大太小都會影響實驗效果。在仿真中不存在焊接的問題,所以接線只要引腳接口正確就是沒問題的。另外就是程序的調試,相當重要。4.1 仿真圖 圖 11 當溫度為上下限之間時的仿真情況圖
17、12 溫度在溫度下限設定值以下的仿真圖 圖 13 溫度在溫度上限設定值以上的仿真圖4.2仿真結果分析溫度在上下限設定值范圍內(nèi)是,放光二極管都是不亮的,當實際溫度值,低于設定下限時,黃色放光二極管亮;當實際溫度高于上限設定值時,紅色發(fā)光二極管亮。 原因,通過程序控制P1.0(紅色放光二極管) P1.1(黃色發(fā)光二極管),度在上下限設定值范圍內(nèi)是,P1.0,P1.1都是低電平,故發(fā)光二極管不會亮,當實際溫度值,低于設定下限時,P1.0 為低電平P1.1為高電平,故黃色放光二極管亮;當實際溫度高于上限設定值時,P1.0為高電平P1.1為低電平,故紅色發(fā)光二極管亮。5 總結與體會作為一名電氣工程及其自
18、動化大三學生,我覺得做單片機課程設計是很有意義的,而且也是必要的。在做這次課程設計的過程中,我感觸最深的當屬查閱大量的設計資料了。為了讓自己的設計更加完善,查閱這方面的實際資料是十分必要的,也是必不可少的。其次,在這次課程設計中,我們運用了以前學過的專業(yè)課知識,如:proteus仿真、C語言、模擬和數(shù)字電路知識等。雖然過去我從未獨立應用過他們,但在學習的過程中帶著問題去學我發(fā)現(xiàn)效率很高,這是我做這次課程設計的又一收獲。最后,要做好一個課程設計,就必須做到:在設計程序之前,對所用單片機的內(nèi)部結構有一個系統(tǒng)的了解,知道該單片機有哪些資源;要有一個清晰的思路和一個完整的軟件流程圖;在設計程序時,不能
19、妄想一次將整個程序設計好,反復修改、不斷改進是程序設計的必經(jīng)之路;要養(yǎng)成注釋程序的好習慣,這樣為資料的保留和交流提供了方便;在設計中遇到的問題要記錄,以免下次遇到同樣的問題。在這次的課程設計中,我真正的意識到,在以后的學習中,要理論聯(lián)系實際,把我們所學的理論知識用到實際當中,學習單片機更是如此,程序只有在經(jīng)常寫與讀的過程中才能提高,這就是這次課程設計的最大收獲。參考文獻1單片機原理及應用技術. 余發(fā)山,王福忠 徐州 中國礦業(yè)大學出版社.2 微型計算機控制技術 王新 中國電力出版社3 模擬電子技術 艾永樂 中國電力出版社附錄 1 程序源代碼/*程序名稱:DS18B20溫度測量、報警系統(tǒng)簡要說明:
20、DS18B20溫度計,溫度測量范圍099.9攝氏度 可設置上限報警溫度、下限報警溫度 即高于上限值或者低于下限值時蜂鳴器報警 默認上限報警溫度為38、默認下限報警溫度為5 報警值可設置范圍:最低上限報警值等于當前下限報警值 最高下限報警值等于當前上限報警值 將下限報警值調為0時為關閉下限報警功能 */#include <AT89X52.h>#include "DS18B20.h" #define uint unsigned int#define uchar unsigned char /宏定義#define SET P3_1 /定義調整鍵#define DEC
21、P3_2 /定義減少鍵#define ADD P3_3 /定義增加鍵#define BEEP P3_7 /定義蜂鳴器bit shanshuo_st; /閃爍間隔標志bit beep_st; /蜂鳴器間隔標志sbit DIAN = P07; /小數(shù)點uchar x=0; /計數(shù)器signed char m; /溫度值全局變量uchar n; /溫度值全局變量uchar set_st=0; /狀態(tài)標志signed char shangxian=38; /上限報警溫度,默認值為38signed char xiaxian=5; /下限報警溫度,默認值為5uchar code LEDData=0x3F,
22、0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00;unsigned int ReadTemperature(void);/*延時子程序*/void Delay(uint num) while( -num );/*初始化定時器0*/void InitTimer(void) TMOD=0x1; TH0=0x3c; TL0=0xb0; /50ms(晶振12M)/*定時器0中斷服務程序*/void timer0(void) interrupt 1 using 0 TH0=0x3c; TL0=0xb0; x+;/*外部中斷0服務程序*/void int0
23、(void) interrupt 0using 1 EX0=0; /關外部中斷0 if(DEC=0&&set_st=1) shangxian-; if(shangxian<xiaxian)shangxian=xiaxian; else if(DEC=0&&set_st=2) xiaxian-; if(xiaxian<0)xiaxian=0; /*外部中斷1服務程序*/void int1(void) interrupt 2 using 2 EX1=0; /關外部中斷1 if(ADD=0&&set_st=1) shangxian+; if
24、(shangxian>99)shangxian=99; else if(ADD=0&&set_st=2) xiaxian+; if(xiaxian>shangxian)xiaxian=shangxian; /*讀取溫度*/void check_wendu(void) uint a,b,c; c=ReadTemperature()-5; /獲取溫度值并減去DS18B20的溫漂誤差 a=c/100; /計算得到十位數(shù)字 b=c/10-a*10; /計算得到個位數(shù)字 m=c/10; /計算得到整數(shù)位 n=c-a*100-b*10; /計算得到小數(shù)位 if(m<0)m
25、=0;n=0; /設置溫度顯示上限 if(m>99)m=99;n=9; /設置溫度顯示上限 /*顯示開機初始化等待畫面*/Disp_init() P0 = 0x40; /顯示- P2 = 0xf7; Delay(200); P2 = 0xfb; Delay(200); P2 = 0xfd; Delay(200); P2 = 0xfe; Delay(200); P2 = 0xff; /關閉顯示/*顯示溫度子程序*/Disp_Temperature() /顯示溫度 P2 = 0xf7; P0 =0x39; /顯示C Delay(300); P2 = 0xfb; P0 =LEDDatan; /
26、顯示個位 Delay(300); P2 = 0xfd; P0 =LEDDatam%10; /顯示十位 DIAN = 1; /顯示小數(shù)點 Delay(300); P2 = 0xfe; P0 =LEDDatam/10; /顯示百位 Delay(300); P2 = 0xff; /關閉顯示/*顯示報警溫度子程序*/Disp_alarm(uchar baojing)P2 = 0xf7; P0 =0x39; /顯示C Delay(200); P2 = 0xfb; P0 =LEDDatabaojing%10; /顯示十位 Delay(200); P2 = 0xfd; P0 =LEDDatabaojing/10; /顯示百位 Delay(200); P2 = 0xfe; if(set_st=1)P0 =0x76; else if(set_st=2)P0 =0x38; /上限H、下限L標示 Delay(200); P2 = 0xff; /關閉顯示/*報警子程序*/void Alarm() unsigned int i; for(i=0;i<200
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年人民幣資金借款合同特色定制版3篇
- 2025年國際會議宣傳資料設計制作合同標準3篇
- 2024年電池材料采購合同模板
- 2024年電氣設備維護與保養(yǎng)服務合同
- 從家庭到社會兒童防走失技能普及
- 辦公室團隊合作中互動游戲的角色與價值分析報告
- 2024年度數(shù)字經(jīng)濟代理股權變更轉讓協(xié)議3篇
- 2024年電商平臺軟件授權及數(shù)據(jù)安全保障合同3篇
- 2025中國郵政集團限公司甘肅省分公司校園招聘高頻重點提升(共500題)附帶答案詳解
- 2024年度玉器鑒定與修復專業(yè)技術服務合同3篇
- 原始地形測量合同模板
- 江西省贛州市2022-2023學年四年級上學期期末數(shù)學試卷
- 鑿壁偷光兒童故事繪本
- 《THPJC-2型機床電氣技能實訓考核鑒定裝置》-X62W萬能銑床電氣線路分析及故障排除與分析
- 《記念劉和珍君》高中語文選擇性必修中冊
- 2024六年級英語上冊 Module 9 Unit 1 Do you want to visit the UN building教案 外研版(三起)
- 傳感器應用技術智慧樹知到期末考試答案章節(jié)答案2024年淄博職業(yè)學院
- 人教版九年級英語知識點復習課件全冊
- 2024年7月國家開放大學??啤掇k公室管理》期末紙質考試試題及答案
- 部編版九年級上冊語文必背古詩文+翻譯
- 2024河北科技師范學院教師招聘考試筆試試題
評論
0/150
提交評論