機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
DS18B20的溫度系統(tǒng)課程設(shè)計(jì)
DS18B20的溫度系統(tǒng)課程設(shè)計(jì)
 更新時(shí)間:2010-1-11 16:46:48  點(diǎn)擊數(shù):0
【字體: 字體顏色

•  實(shí)驗(yàn)?zāi)康?/H2>

•了解 DS1820數(shù)字溫度傳感器特性
•掌握單片機(jī)基本功能的運(yùn)用、簡(jiǎn)單接口電路如鍵盤、 LED顯示電路或LCD顯示電路設(shè)計(jì)及其相應(yīng)驅(qū)動(dòng)軟件的編制軟、硬件系統(tǒng)的調(diào)試

•  實(shí)驗(yàn)任務(wù)

設(shè)計(jì)一個(gè)具有基于DS1820數(shù)字溫度傳感器的溫度檢測(cè)及顯示的系統(tǒng)。要求系統(tǒng)具有以下功能:
•  兩路溫度檢測(cè);
•  具有顯示功能;
•  具有用戶輸入功能;
•  可通過輸入補(bǔ)償溫度設(shè)定校準(zhǔn);

•  實(shí)驗(yàn)原理

   原理簡(jiǎn)述:數(shù)字溫度傳感器DS1820把溫度信息轉(zhuǎn)換為數(shù)字格式;通過“1-線協(xié)議”,單片機(jī)獲取指定傳感器的數(shù)字溫度信息,并顯示到顯示設(shè)備上。通過鍵盤,單片機(jī)可根據(jù)程序指令實(shí)現(xiàn)更靈活的功能,如單點(diǎn)檢測(cè)、輪轉(zhuǎn)檢測(cè)、越限檢測(cè)等;贒S1820數(shù)字溫度傳感器的溫度檢測(cè)及顯示的系統(tǒng)原理圖如圖1

圖 1 基于DS1820的溫度檢測(cè)系統(tǒng)框圖

•  硬件設(shè)計(jì)

電路設(shè)計(jì)--單片機(jī)基本系統(tǒng)電路:

圖 2 單片機(jī)基本系統(tǒng)電路原理圖

電路說明:
    綜合考慮系統(tǒng)使用到的單片機(jī)內(nèi)部存儲(chǔ)資源、系統(tǒng)處理信號(hào)的種類、處理數(shù)據(jù)的速度、系統(tǒng)的 I/O口開銷,以及系統(tǒng)的可擴(kuò)展性能,本系統(tǒng)選用了ATMEL公司的8位低功耗,高性能CMOS單片機(jī),芯片內(nèi)集成有通用8位中央處理器(兼容標(biāo)準(zhǔn)MCS -51指令系統(tǒng)及80C51引腳結(jié)構(gòu))和4K/8K Bytes ISP Flash存儲(chǔ)單元(可實(shí)現(xiàn)在系統(tǒng)編程)。復(fù)位電路采用上電復(fù)位加按鍵復(fù)位的方式。采用無源晶體提供正弦振蕩信號(hào)為系統(tǒng)提供時(shí)鐘,其硬件原理圖如圖 2所示。
溫度檢測(cè)電路:
   由于采用數(shù)字傳感器,電路不用考慮A/D轉(zhuǎn)換,只需設(shè)計(jì)指定某個(gè)I/O口作為與數(shù)字傳感器相連,電路原理圖如圖示。“1-線協(xié)議”

圖 3 溫度檢測(cè)電路原理圖

電路說明:
    DS18B20的數(shù)字溫度輸出通過 “ 一線 ” 總線( 1-Wire是被MAXIM公司收購的DALLAS公司新?lián)碛械囊环N獨(dú)特的數(shù)字信號(hào)總線協(xié)議,它將獨(dú)特的 電源線和信號(hào)線復(fù)合在一起,僅使用一條口線;每個(gè)芯片唯一編碼,支持聯(lián)網(wǎng)尋址、零功耗等待等,是所需硬件連線最少的一種總線)這種獨(dú)特的方式,使多個(gè) DS18B20方便地組建成傳感器網(wǎng)絡(luò),為整個(gè)測(cè)量系統(tǒng)的建立和組合提供了更大可能性。
    DS18B20可以設(shè)置成兩種供電方式,即數(shù)據(jù)總線供電方式和外部供電方式。采取數(shù)據(jù)總線供電方式可以節(jié)省一根導(dǎo)線,但由此帶來的缺點(diǎn)是完成溫度測(cè)量的時(shí)間較長(zhǎng);而采取外部供電方式則多用一根導(dǎo)線,但測(cè)量速度較快。本設(shè)計(jì)采用一總線2路溫度測(cè)量使用外部供電,如圖3所示。
鍵盤控制電路:

圖 4 鍵盤控制電路原理圖

電路說明:
    為了節(jié)約系統(tǒng)硬件開銷,設(shè)計(jì)方案中鍵盤模塊沒有采用ZLG7289或者ZLG7290等專用的鍵盤控制芯片。使用普通的行列掃描鍵盤的優(yōu)點(diǎn)是沒有更多的外圍電路,缺點(diǎn)是如果軟件調(diào)試不當(dāng)可能引起按鍵連擊,為系統(tǒng)的運(yùn)行帶來不穩(wěn)定。系統(tǒng)使用鍵盤電路為四行四列16個(gè)按鍵的行列掃描式鍵盤,其電路原理圖如圖4所示。    從圖中的硬件連接看來,鍵盤接口并沒有增加任何其他的附加驅(qū)動(dòng)電路,而是直接和單片機(jī)的引腳相連。操作時(shí)直接用程序設(shè)置單片機(jī)相應(yīng)的端口驅(qū)動(dòng)按鍵。
顯示電路:

圖 5 LED顯示電路原理圖

電路說明:
    采用四位共陰極動(dòng)態(tài)LED顯示單元。LED動(dòng)態(tài)顯示的基本做法在于分時(shí)輪流選通數(shù)碼管的公共端,使得各數(shù)碼管輪流導(dǎo)通,在選通相應(yīng)LED后,即在顯示字段上得到顯示的字型碼。這種方式不但能夠提高數(shù)碼管的發(fā)光效率,而且由于各個(gè)數(shù)碼管的字段線是并聯(lián)使用的,從而大大簡(jiǎn)化了硬件線路。
    動(dòng)態(tài)掃描顯示接口是單片機(jī)系統(tǒng)中應(yīng)用最為廣泛的一種顯示方式。其接口電路是把所有顯示器的 8個(gè)筆畫段a~dp同名端并聯(lián)在一起,而每一個(gè)顯示器的公共極COM是各自獨(dú)立地受I/O控制的。MPU向字段輸出口送出字型碼時(shí),所有顯示器由于同名端并聯(lián)連接收到相同的字型碼,但究竟是哪個(gè)顯示器亮,則取決于COM端,而這一端是通過MPU對(duì)I/O編程控制的,所以就可以自行決定何時(shí)那一位顯示器被點(diǎn)亮了。這兒所說的動(dòng)態(tài)就是在基于COM端選擇,可編程的基礎(chǔ)上,采用分時(shí)的方法輪流控制各個(gè)顯示器的COM端,使各個(gè)顯示器輪流點(diǎn)亮。
    在輪流點(diǎn)亮掃描過程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的 (約1ms),由于人眼的視覺暫留現(xiàn)象及發(fā)光二極管的速度足夠快,給人的視覺誤差就是一組穩(wěn)定的顯示數(shù)據(jù),如果做的足夠好是不會(huì)有閃爍感。
    與液晶顯示器相比,動(dòng)態(tài) LED顯示單元具有軟件編寫簡(jiǎn)單的優(yōu)點(diǎn)。但是其功耗比LCD顯示大,為了達(dá)到最佳的顯示效果,硬件連接必須考慮段和位驅(qū)動(dòng)的電路的設(shè)計(jì);其次LED在顯示刷新率,顯示穩(wěn)定性方面也不及LCD顯示。
    在如圖 5的本設(shè)計(jì)方案中,使用的是四位共陰極LED顯示器。典型的硬件設(shè)計(jì)是使用74HC245提供段a~dp(圖中為PB1~PB8)的驅(qū)動(dòng),74LS139提供位COM1~COM4(圖中為L(zhǎng)ED1~LED4)的驅(qū)動(dòng)。
    使用雙向總線驅(qū)動(dòng)器 74HC245作為段驅(qū)動(dòng),由于HC電路輸出電阻較大,外部可直接驅(qū)動(dòng)而不需要限流電阻。位驅(qū)動(dòng)使用2~4譯碼器,具有四個(gè)OC門輸出,輸出低電平有效,直接用來驅(qū)動(dòng)四位公共陰極COM1~COM4。

返回頂部

•  軟件設(shè)計(jì)

1).軟件設(shè)計(jì)工具及調(diào)試環(huán)境
    系統(tǒng)軟件采用 C語言開發(fā),與匯編相比,使用C語言開發(fā)單片機(jī)軟件系統(tǒng),具有程序的可讀性、易維護(hù)性和可移植性好,對(duì)硬件的控制能力強(qiáng)等特點(diǎn),F(xiàn)代單片機(jī)集成大容量的程序存儲(chǔ)器一定程度上解決了部分C編譯器機(jī)器語言生成代碼效率低的缺點(diǎn),解決代碼效率問題最重要的還是得靠編譯器性能得不斷提高。
    KeilC51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng)。 KeilC51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),通過查看編譯后生成的匯編代碼,我們就能體會(huì)到KeilC51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)。C51中使用C語言編程與匯編語言編程相比,具有以下的優(yōu)勢(shì)。匯編語言雖然有執(zhí)行效率高的優(yōu)點(diǎn),但其可移植性和可讀性差,以及本身就是一種編程效率低下的低級(jí)語言,這些都使它的編程和維護(hù)極不方便,從而導(dǎo)致整個(gè)系統(tǒng)的可靠性也較差。而使用C語言進(jìn)行單片機(jī)應(yīng)用系統(tǒng)的開發(fā),有著匯編語言不可比擬的優(yōu)勢(shì)。
   當(dāng)前較好的C語言編譯系統(tǒng)的編譯效率已經(jīng)基本達(dá)到中高級(jí)程序開發(fā)人員的水平,尤其是用于開發(fā)較為復(fù)雜的單片機(jī)應(yīng)用系統(tǒng)時(shí)更具優(yōu)勢(shì)。
2).主程序控制流程
    在軟件的設(shè)計(jì)過程中,為了進(jìn)一步提高軟件的透明度,作者將系統(tǒng)的一些功能菜單寫成子程序的形式供主程序(操作系統(tǒng))調(diào)用。此程序中主要包括系統(tǒng)開始狀態(tài)等待,系統(tǒng)工作模式選擇,多通道工作模式操作,單通道工作模式操作,通過鍵盤輸入 -9.99~+9.99之間的誤差數(shù)據(jù),通過鍵盤查詢和重置各通道的誤差量。
    本文中詳細(xì)給出了操作子程序中部分功能模塊的流程圖,這樣有利于對(duì)系統(tǒng)工作的了解。
    圖6給出了系統(tǒng)開始等待程序的流程圖,圖7中給出了系統(tǒng)工作模式選擇流程圖,圖8中給出了系統(tǒng)的主函數(shù)流程圖。

圖 6 系統(tǒng)開始等待程序的流程圖
圖 7 系統(tǒng)工作模式選擇流程圖
圖 8 系統(tǒng)的主函數(shù)流程圖

3).溫度檢測(cè)流程
    DS18B20子程序是結(jié)合它的用戶使用資料編寫,主要完成的是初始化DS18B20,從DS18B20中讀出一個(gè)字節(jié)的數(shù)據(jù),向DS18B20中寫入一個(gè)字節(jié)的數(shù)據(jù),配置DS18B20包括警報(bào)溫度的上限和下限、溫度轉(zhuǎn)換的精度,讀出Scrachpad存儲(chǔ)器中的九個(gè)字節(jié)的數(shù)據(jù),讀出Rom中的64位Code值,對(duì)讀出的Scrachpad數(shù)據(jù)進(jìn)行CRC校驗(yàn),然后根據(jù)讀出的數(shù)據(jù)得到測(cè)量出的十進(jìn)制溫度值。從DS18B20中讀出九個(gè)字節(jié)數(shù)據(jù)的流程圖如圖9所示。

圖 9 從DS18B20中讀數(shù)據(jù)的流程圖

    DS18B20數(shù)據(jù)的CRC校驗(yàn)。為了解決單總線串行傳輸數(shù)據(jù)可能引起的錯(cuò)誤,DS18B20內(nèi)部具有產(chǎn)生CRC校驗(yàn)碼電路,這樣程序員可以通過對(duì)讀出的數(shù)據(jù)進(jìn)行CRC校驗(yàn)碼,并用這個(gè)校驗(yàn)碼和獲得的數(shù)據(jù)的最后一個(gè)字節(jié)比較,若兩者相同則證明數(shù)據(jù)傳送沒有錯(cuò)誤,從而驗(yàn)證通信過程中數(shù)據(jù)傳輸?shù)恼_性,使采集溫度信號(hào)的可靠性得到保證。
    本系統(tǒng)中 CRC校驗(yàn)在程序中是通過查表來實(shí)現(xiàn)。CRC校驗(yàn)數(shù)據(jù)表保存在程序代碼中的一個(gè)一維數(shù)組中。 
    CRC檢驗(yàn)的求法。M為一個(gè)k位長(zhǎng)的信息幀。P為n+1位預(yù)先確定的用來生成校驗(yàn)碼的二進(jìn)制序列其最高位和最低位必須為1,DS18B20中使用的序列為:P = 1 0011 0001。F為n位FCS,即校驗(yàn)碼序列。T為k+n位被傳輸?shù)膸。因(yàn)镕是接在M信息幀之后的,因此T=M · 2 n (2 n 為2的n次方)中,M · 2 n 相當(dāng)于M左移n位,后面添n個(gè)零。設(shè)M · 2 n 除以P的商和余數(shù)分別是Q和R,則有M · 2 n =P · Q+R即M · 2 n /P=Q+R/P若設(shè)T=M · 2 n +R,則T定能被整除。因?yàn)榘茨?的加減運(yùn)算相當(dāng)于異或運(yùn)算,故有T/P=(M · 2 n +R)/P=(M · 2 n )/P+R/P =Q+R/P+R/P=Q這樣一來,校驗(yàn)碼序列F就是M · 2 n 除以P的余數(shù)R。通過計(jì)算可以得到 256個(gè)用于CRC檢驗(yàn)的數(shù)據(jù)。
4).鍵盤控制
    鍵盤處理子程序主要完成的是通過特定的設(shè)置按鍵端口的狀態(tài),并對(duì)端口狀態(tài)進(jìn)行檢測(cè),然后為按鍵設(shè)置特定的值,為主程序提供執(zhí)行判決。需考慮多鍵按下和去抖動(dòng)的問題。圖 10給出了鍵盤掃描的程序流程圖。

圖 10 鍵盤掃描流程圖

5).顯示控制:
    系統(tǒng)硬件選擇的是四段共陰極 LED動(dòng)態(tài)顯示,LED顯示子程序主要是完成對(duì)設(shè)定的LED段,并通過查七段碼表,使它顯示制定的圖樣。圖11中描述的是通過選定一段數(shù)碼管,顯示數(shù)據(jù)的程序流程圖。

圖 11 LED顯示流程圖

6).數(shù)據(jù)處理
    完成數(shù)據(jù)格式的轉(zhuǎn)換、保存;設(shè)置誤差值的補(bǔ)償?shù)葦?shù)據(jù)操作。根據(jù)不同的應(yīng)用要求定制,在此不作強(qiáng)制定義。

•  思考題

1、LED動(dòng)態(tài)顯示時(shí)顯示的亮度與什么物理量有關(guān)?
2、顯示刷新率(單位時(shí)間內(nèi)顯示數(shù)據(jù)改變的次數(shù))和顯示穩(wěn)定性(閃爍感越。┲g的關(guān)系?
3、通過怎樣的方法解決顯示刷新率和顯示穩(wěn)定性之間的關(guān)系?
4、你有什么好的硬件方案解決LED顯示的驅(qū)動(dòng)(增加流過LED段的電流)問題,請(qǐng)給出電路圖?
5、LCD顯示和動(dòng)態(tài)LED顯示的區(qū)別?


6、在單片機(jī)的RAM中,30H單元存放著一個(gè)無符號(hào)類型數(shù)據(jù),請(qǐng)你通過編程得到這個(gè)數(shù)各位上的數(shù)字?如果是一個(gè)有符號(hào)數(shù)呢?如果是一個(gè)壓縮BCD編碼的數(shù)呢?


7、如果你使用的單片機(jī)系統(tǒng)沒有在線編程調(diào)試器(有程序燒寫器),你有什么樣的辦法在軟硬件聯(lián)調(diào)時(shí),以最快的速度找出問題出在那個(gè)地方?


8、如果單片機(jī)的GPIO口線在硬件連接時(shí)已經(jīng)連接到高電平或者低電平,在進(jìn)行軟件編程時(shí),你可以把這個(gè)口線用軟件進(jìn)行置低或者置高嗎?


9、請(qǐng)你說說單片機(jī)和PC機(jī)的相似和差別,并就工業(yè)運(yùn)用中單片機(jī)和PC機(jī)相比存在那些優(yōu)勢(shì)和不足,并就這個(gè)談?wù)剢纹瑱C(jī)的生命力在哪兒?


10、請(qǐng)結(jié)合DS18B20的用戶資料,和相關(guān)的設(shè)計(jì)報(bào)告,說說單總線的通信協(xié)議?

  • 上一篇: TLC2543設(shè)計(jì)的采集系統(tǒng)
  • 下一篇: 沒有了
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1