課程設(shè)計主從式溫度監(jiān)測報警與控制系統(tǒng)_第1頁
課程設(shè)計主從式溫度監(jiān)測報警與控制系統(tǒng)_第2頁
課程設(shè)計主從式溫度監(jiān)測報警與控制系統(tǒng)_第3頁
課程設(shè)計主從式溫度監(jiān)測報警與控制系統(tǒng)_第4頁
課程設(shè)計主從式溫度監(jiān)測報警與控制系統(tǒng)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、題目 主從式溫度監(jiān)測報警與控制系統(tǒng) 任務(wù)與要求:設(shè)計以單片機為從機利用溫度傳感器對環(huán)境溫度進行監(jiān)測,將結(jié)果通過標準串行口傳送通信給微機主機,由微機跟蹤顯示目標狀態(tài);若超過設(shè)定值,則從機目標狀態(tài)以某種現(xiàn)場變化為提示,主機則以某種直觀警方式為提示。設(shè)計硬件電路,編寫pc機和單片機的控制程序,寫出設(shè)計報告及詳細使用說明。開始日期 2011年6月 20 日完成日期 2011 年6月 21 日主從式溫度監(jiān)測報警與控制系統(tǒng)摘要:本設(shè)計分為硬件電路設(shè)計和pc設(shè)計兩部分。硬件電路設(shè)計主要由單片機at89s52、溫度傳感器ds18b20、max232芯片、四位一體共陰極數(shù)碼管以及rs232母頭組成,該電路主要是

2、由對環(huán)境溫度進行監(jiān)控,然后用數(shù)碼管顯示出來,再將所測溫度通過母頭傳入pc機。pc機部分主要是對溫度進行監(jiān)測,如果超過設(shè)定值,pc機和電路都會以一定的方式進行反應(yīng)。關(guān)鍵詞:單片機at89s52、溫度傳感器ds18b20、max232芯片、四位一體共陰極數(shù)碼管以及pc部分程序一、主要器件功能介紹1at89s52單片機圖1 at89s52單片機管腳圖at89s52是一種低功耗、高性能cmos8位微控制器,具有8k在系統(tǒng)可編程flash存儲器。使用atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80c51產(chǎn)品指令和引腳完全兼容。片上flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,

3、擁有靈巧的8位cpu和在系統(tǒng)可編程flash,使得at89s52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。at89s52具有以下標準功能:8k字節(jié)flash,256字節(jié)ram,32位i/o口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,at89s52可降至0hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,cpu停止工作,允許ram、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,ram內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復位為止。2數(shù)字溫度傳感器ds1820圖2

4、數(shù)字溫度傳感器ds1820ds18b20有三個引腳,gnd接地;dq為數(shù)字信號輸入輸出端;vdd為外接電源輸入端。圖3 ds18b20的內(nèi)部結(jié)構(gòu)ds18b20內(nèi)結(jié)構(gòu)主要由4部分組成:64位光刻rom、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器th、tl和配置寄存器。64位光刻rom:光刻rom中的64位序列號是出廠前被光刻好的,它可以看作是該ds18b20的地址序列碼,即id。它的作用是使每一個ds18b20的地址都各不相,可以實現(xiàn)在相同的總線上掛接多個ds18b20的目的。64位光刻rom的排列是開始8位(28h)是產(chǎn)品類型標號,接著的48位是該ds18b20自身序列號,最后8位是前面56位的循環(huán)冗

5、余校驗碼(crc=x8+x5+x4+1)。溫度傳感器:在ds18b20溫度傳感器的使用中,以9位轉(zhuǎn)化為例,從ds18b20中得到16位符號擴展的二進制補碼讀數(shù)形式,以0.5/lsb的形式表達,其中s為符號位,二進制的數(shù)存儲在ds18b20的2個8位的ram中,這是9位轉(zhuǎn)化后得到的16位數(shù)據(jù),其中前面5位是符號位,如果測得溫度大于0,這5位為0,只要將測到的數(shù)值乘以0.5即可得到實際溫度;如果溫度小于0,這5位為1,測得到的數(shù)值需要取反加1再乘以0.5即可得到實際溫度。非發(fā)揮的溫度報警觸發(fā)器th、tl:ds18b20溫度傳感器的內(nèi)部存儲器包括一個高速暫存ram和一個非易失性的電可擦除的eepra

6、m,后者存放高溫度和低溫度觸發(fā)器th、tl和結(jié)構(gòu)寄存器。當溫度達到低溫或高溫的時候,溫度報警觸發(fā)器會發(fā)出警報。高速暫存ram:高速暫存存儲器包含了9個連續(xù)字節(jié),如表-1,當溫度轉(zhuǎn)換命令發(fā)出后,經(jīng)轉(zhuǎn)換所得的溫度值存放在高速暫存存儲器的第0和第1個字節(jié)內(nèi),第0個字節(jié)存放的是溫度的低8位信息,第1個字節(jié)存放的是溫度的高8位信息,單片機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后;第2、3字節(jié)是th、tl的易失性拷貝,第4個字節(jié)是結(jié)構(gòu)寄存器的易失行拷貝,這三個字節(jié)的內(nèi)容每一次上電復位時被刷新;第5、6、7字節(jié)用于內(nèi)部計算;第8個字節(jié)是冗余檢驗字節(jié)。ds18b20的設(shè)置位有一個字節(jié),該字節(jié)的各位定

7、義為tmr1r011111,每一次進行針對ds18b20的讀寫前,都需要對ds18b20進行設(shè)置,從上面的定義可以看出,該字節(jié)的低5位一直都是1,tm位是測試模式位,用于設(shè)置ds18b20在工作模式及測試模式。在ds18b20出廠時該位被置為0,用戶不要進行改動,r1、r0用來設(shè)置分辨率。3max232芯片圖4 max232芯片引腳圖a)引腳介紹:第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個電源,提供給rs-232串口電平的需要。 第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個數(shù)據(jù)通道。其中13腳(r1in)、1

8、2腳(r1out)、11腳(t1in)、14腳(t1out)為第一數(shù)據(jù)通道。8腳(r2in)、9腳(r2out)、10腳(t2in)、7腳(t2out)為第二數(shù)據(jù)通道。ttl/cmos數(shù)據(jù)從t1in、t2in輸入轉(zhuǎn)換成rs-232數(shù)據(jù)從t1out、t2out送到電腦db9插頭;db9插頭的rs-232數(shù)據(jù)從r1in、r2in輸入轉(zhuǎn)換成ttl/cmos數(shù)據(jù)后從r1out、r2out輸出。 第三部分是供電。15腳gnd、16腳vcc(+5v)。b)主要特點1、符合所有的rs-232c技術(shù)標準 2、只需要單一+5v電源供電 3、片載電荷泵具有升壓、電壓極性反轉(zhuǎn)能力,能夠產(chǎn)生+10v和-10v電壓v+

9、、v- 4、功耗低,典型供電電流5ma 5、內(nèi)部集成2個rs-232c驅(qū)動器 6、內(nèi)部集成兩個rs-232c接收器 7、高集成度,片外最低只需4個電容即可工作。4四位一體共陰極數(shù)碼管圖5 四位一體共陰極數(shù)碼管最常用的是七段式和八段式led數(shù)碼管,八段比七段多了一個小數(shù)點,其他的基本相同。所謂的八段就是指數(shù)碼管里有八個小led發(fā)光二極管,通過控制不同的led的亮滅來顯示出不同的字形。數(shù)碼管又分為共陰極和共陽極兩種類型,其實共陰極就是將八個led的陰極連在一起,讓其接地,這樣給任何一個led的另一端高電平,它便能點亮。二、溫度顯示設(shè)計電路:圖6 溫度顯示電路圖說明:根據(jù)感應(yīng)的溫度,在數(shù)碼管里顯示。

10、三、電路圖片圖7 電路正面圖8 電路背面圖9 溫度顯示照片圖10 溫度上升四、總結(jié):這個電子綜合課程設(shè)計包括了硬件電路和pc部分兩大塊,硬件電路方面做了一個溫度的顯示電路,總體的難度也是體現(xiàn)在溫度傳感器ds1820的理解和應(yīng)用上,至于pc部分就是體現(xiàn)在對傳入溫度進行處理的編程,但是這次由于時間太急,因此只是做了溫度顯示的部分而沒有做pc機的部分。這次課程設(shè)計同時鍛煉了我們電路設(shè)計能力和編程能力,經(jīng)過這次的鍛煉,我們的能力得到長足的進步。另外,關(guān)于這次課程設(shè)計的所有資料的查找,也鍛煉了我們的資料搜索能力。這次課程設(shè)計完成的時間實在是很緊迫,但在我們看來這也是對我們意志的一種考驗,每一次面對困難時

11、,只有勇于面對,我們也明白只有通過磨練,人的能力才會提升。五、參考文獻:1郭瑜茹,張樸.光電子技術(shù)及其應(yīng)用.化學工業(yè)出版社 ,20062康華光.電子技術(shù)基礎(chǔ) 數(shù)字部分.高等教育出版社,2006 3康華光.電子技術(shù)基礎(chǔ) 模擬部分.高等教育出版社,20064李朝青單片機原理及接口技術(shù)北京航空航天大學出版社. 2009.34-39附錄:單片機程序: 程序名: 芯片ds18b20驅(qū)動程序 自身函數(shù):void delay10us_f( uint16 count ) uint8 ds18b20init_f( void )void ds18b20write_byte( uint8 cmd )uint8 ds

12、18b20read_byte( void )uint16 ds18b20readtemp_f( void )void temperatureupdate( void ) 全局變量: uint16 idata tempdat 以十進制形式保存所獲得溫度值uint8 idata temperature 4 保存溫度值的數(shù)組.依次存放正負標志,溫度值十位,個位,和小數(shù)位 引用的外部函數(shù)或變量: 無 功能: 對 ds18b20 進行初始化對 ds18b20 進行數(shù)據(jù)讀寫的操作。 實現(xiàn)溫度的獲取。 */* 以下為 ds18b20 的驅(qū)動程序 */#include #include #define uin

13、t8 unsigned char#define sint8signed char#define uint16 unsigned short#define sint16signed short#define nop _nop_()/*定義芯片ds18b20的數(shù)據(jù)輸入輸出管腳*/sbit io_ds18b20_dq = p37 ; / #define ds18b20_dq_high io_ds18b20_dq = 1 #define ds18b20_dq_lowio_ds18b20_dq = 0 #define ds18b20_dq_read io_ds18b20_dq #define uchar

14、 unsigned charvoid delay2ms();/* 函數(shù)聲明 */void delay10us_f( uint8 dt ) ;uint8 ds18b20init_f( void );void ds18b20write_byte( uint8 cmd );uint8 ds18b20read_byte( void );uint16 ds18b20readtemp_f( void );void temperatureupdate( void );float idata temp_v ;/*聲明以十進制形式保存溫度值的變量 tempdat */uint8 idata temperatur

15、e 4 ; /*聲明保存溫度值的數(shù)組.依次存放正負標志,溫度值十位,個位,和小 */uchar code dispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xef,0xdf,0x00,0x40; uchar i; uchar a,b; uchar code temp=0xfe,0xfd,0xfb,0xf7; /*顯示哪一位?*/*函數(shù)名:delay_10us*/*輸入:uint16 count(延時的時間大?。?/*輸出: 無*/*功能:延時10

16、us函數(shù)*/void delay10us_f( uint8 dt ) while( -dt0 ); /*函數(shù)名:ds18b20init_f*/*輸入:無*/*輸出: uint8 flag(復位成功與否標志)*/*功能:初始化芯片ds18b20*/uint8 ds18b20init_f( void ) bit flag ; ds18b20_dq_high ; /*稍作延時*/ nop ; ds18b20_dq_low ; /總線拉低 delay10us_f(50) ; /延時大于480us nop ; ds18b20_dq_high ; /總線釋放 delay10us_f(10) ; /等待ds

17、18b02復位 flag = ds18b20_dq_read ; /如果flag為0,則復位成功,否則復位失敗 delay10us_f(15) ;nop ;nop ;ds18b20_dq_high ; return flag ; /*函數(shù)名:ds18b20write_byte( uint8 cmd )*/*輸入:uint8 cmd(需要寫入的命令)*/*輸出: 無*/*功能:對芯片ds18b20進行寫命令*/void ds18b20write_byte( uint8 cmd ) uint8 i ; for( i = 8 ; i 0 ; i- ) ds18b20_dq_low ;/拉低總線,開始

18、寫時序delay10us_f( 2 ) ; ds18b20_dq_read = cmd & 0x01 ; /控制字的最低位先送到總線 delay10us_f( 4 ) ; /稍作延時,讓ds18b20讀取總線上的數(shù)據(jù) nop ;nop ; ds18b20_dq_high ; /拉高總線,1bit寫周期結(jié)束 cmd = 1 ; /*函數(shù)名:ds18b20read_byte*/*輸入:無*/*輸出:readvalue(從ds18b20讀取的數(shù)據(jù))*/*功能:從ds18b20中讀取一個字節(jié)的數(shù)據(jù)*/uint8 ds18b20read_byte( void ) uint8 readvalue = 0

19、, i ; for( i = 8 ; i 0 ; i- ) ds18b20_dq_low ; readvalue = 1 ; ds18b20_dq_high ; if( ds18b20_dq_read = 1 ) readvalue |= 0x80 ; delay10us_f( 3 ) ; return readvalue ; /*函數(shù)名:ds18b20readtemp_f*/*輸入:無 */*輸出: returntemp(讀取的溫度值)*/*功能:讀取當前的溫度數(shù)據(jù)(只保留一位小數(shù))*/uint16 ds18b20readtemp_f( void ) uint8 temph, templ ;

20、 uint16 returntemp ; ds18b20init_f() ; /復位ds18b20 ds18b20write_byte( 0xcc ) ; /跳過rom ds18b20write_byte( 0x44 ) ; /啟動溫度轉(zhuǎn)換 ds18b20init_f() ; ds18b20write_byte( 0xcc ) ; /跳過rom ds18b20write_byte( 0xbe ) ; /讀取ds18b20內(nèi)部的寄存器內(nèi)容 templ = ds18b20read_byte() ; /讀溫度值低位(內(nèi)部ram的第0個字節(jié)) temph = ds18b20read_byte() ; /讀溫度值高位(內(nèi)部ra

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論