畢業(yè)論文基于ATC的數字溫計的設計_第1頁
畢業(yè)論文基于ATC的數字溫計的設計_第2頁
畢業(yè)論文基于ATC的數字溫計的設計_第3頁
畢業(yè)論文基于ATC的數字溫計的設計_第4頁
畢業(yè)論文基于ATC的數字溫計的設計_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、學生畢業(yè)設計(論文)報告系 別: 電子與電氣工程學院 專 業(yè): 電子信息工程 班 號: 電子0 8 5 學 生 姓 名: 傅浩 學 生 學 號: 080012212 設計(論文)題目: 基于AT89C51的數字溫度計的設計 指 導 教 師: 傅浩 設 計 地 點: 起 迄 日 期: 2010.5.4-2010.7.3 畢業(yè)設計(論文)任務書專業(yè) 電子信息工程 班級 電子085 姓名 傅浩 一、課題名稱:基于AT89C51的數字溫度計的設計 二、主要技術指標: 1、測溫范圍-50-110 2、精度誤差小于0.5 3、LED數碼直讀顯示 4、可通過人機接口任意設定溫度報警閥值 三、工作內容和要求:

2、 (1)、要求數字溫度計能對環(huán)境的溫度進行實時監(jiān)測。 (2)、數字溫度計要能夠實時顯示環(huán)境的溫度信息,使用戶及時了解到環(huán)境溫度情況。 (3)、數字溫度計能夠在程序跑飛的情況下自動重啟,對環(huán)境溫度進行正確的測量。 四、主要參考: 1.李勛.劉源單片機實用教程M.北京航空航天大學出版社,2000 2.李朝青.單片機原理及接口技術(簡明修訂版)M.杭州:北京航空航天大學出版社,1998 3.李廣弟.單片機基礎M.北京:北京航空航天大學出版社,1994 4.閻石.數字電子技術基礎(第三版)M.北京:高等教育出版社,1989 5.廖常初.現(xiàn)場總線概述J.電工技術,1999 6.王津.單片機原理與應用M.

3、重慶大學出版社,2000 學 生(簽名) 年 月 日 指 導 教師(簽名) 年 月 日 教研室主任(簽名) 年 月 日 系 主 任(簽名) 年 月 日畢業(yè)設計(論文)開題報告設計(論文)題目基于AT89C51的數字溫度計的設計一、 選題的背景和意義:隨著時代的進步和發(fā)展,單片機技術已經普及到我們生活、工作、科研等各個領域,已經成為一種比較成熟的技術,本文將介紹一種基于單片機控制的數字溫度計,它給人帶來的方便也是不可否定的。要為現(xiàn)代人生活提供更好、更方便的設施就需要從數單片機技術入手,一切向著數字化控制,智能化控制方向發(fā)展。本文將要設計的數字溫度計具有性能穩(wěn)定、靈敏度高、抗干擾能力強、使用方便等

4、優(yōu)點,廣泛應用于冰箱、空調器、糧倉等日常生活中溫度的測量和控制中,為人們生活水平的提高做出了巨大的貢獻。二、課題研究的主要內容:1本文是以單片機AT89C51為核心進行設計。2通過DALLAS公司的單總線數字溫度傳感器DS18B20來實現(xiàn)環(huán)境溫度的采集和A/D轉換。3其輸出溫度采用數字顯示,用3位共陽極LED數碼管以串口傳送數據,實現(xiàn)溫度顯示,能準確達到以上要求。4此溫度計屬于多功能溫度計可以用來測量環(huán)境溫度,還可以設置上下報警溫度,當溫度不在設置范圍內時,可以報警。三、主要研究(設計)方法論述:1. 通過查閱書籍了解數字溫度計的基本概念等信息,結合以前所學的電子專業(yè)知識認真研究課題。2. 借

5、助強大的網絡功能,借鑒前人的研究成果更好的幫助自己更好地理解所需掌握的內容。3. 通過與老師與同學的討論研究,及時地發(fā)現(xiàn)問題反復地檢查修改最終完成。四、設計(論文)進度安排:時間(迄止日期)工 作 內 容2010.05.042010.05.05查找資料,確定論文題目2010.05.062010.05.07根據選題方向查資料,確定基本框架和設計方法2010.05.082010.05.10完成開題報告2010.05.112010.05.31完成初稿并交指導老師審閱2010.06.012010.06.26根據指導老師意見修改論文2010.06.269根據模板將論文排版2010.06.302010.0

6、7.03仔細閱讀論文并作細節(jié)完善后上交五、指導教師意見: 指導教師簽名: 年 月 日六、系部意見: 系主任簽名: 年 月 日目錄摘要Abstract第1章 前言1第2章 數字溫度計總體設計方案22.1 數字溫度計設計方案22.2 總體設計框圖2第3章 數字溫度計的硬件設計33.1 主控制器AT89C5133.1.1 AT89C51的特點及特征33.1.2 管腳功能說明33.1.3 片內振蕩器53.1.4 芯片擦除5 3.2 單片機的主板電路63.3 溫度采集部分的設計63.3.1 溫度傳感器DS18B2063.3.2 DS18B20溫度傳感器與單片機的接口電路103.4 顯示部分設計103.4

7、.1 74LS164引腳功能及特征103.4.2 溫度顯示電路113.5 報警系統(tǒng)電路12第4章 數字溫度計的軟件設計134.1 系統(tǒng)軟件設計流程圖134.2 數字溫度計部分程序清單15第5章 結束語20答謝辭參考文獻 摘 要隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標之一,它所給人帶來的方便也是不可否定的,其中數字溫度計就是一個典型的例子。本設計所介紹的數字溫度計與傳統(tǒng)的溫度計相比,具有讀數方便,測溫范圍廣,測溫準確,其輸出溫度采用數字顯示。該設計控制器使用單片機AT89C51,測溫傳感器使用DS18B20,用3位共陽極LED數碼管以串口傳送數據,實現(xiàn)溫度顯示。本溫度計屬于多功

8、能溫度計,可以設置上下報警溫度,當溫度不在設置范圍內時,可以報警。此外本文還介紹了數字溫度計的硬件設計和軟件設計,硬件設計主要包括主控制器、單片機的主板電路、溫度采集部分電路、顯示電路以及報警系統(tǒng)電路。 軟件設計包括系統(tǒng)軟件的流程圖和數字溫度計的部分程序清單。關鍵詞:AT89C51單片機,數字控制,測溫傳感器,多功能溫度計 AbstractAs people's living standard rising, SCM is undoubtedly one of the objectives pursued by the people, the convenience it brings

9、 is equally negative, and one digital thermometer is a typical example.The design presented in the traditional thermometer digital thermometer and compared with a reading convenience, a wide range of temperature measurement, temperature measurement accuracy, the output of the temperature digital dis

10、play. The design of the controller using microcontroller AT89C51, temperature sensor uses DS18B20, with three common anode LED digital tube to serial transmission of data, to achieve temperature display. The thermometer is multi-functional thermometer, you can set the upper and lower alarm temperatu

11、re range when the temperature is not set, you can alarm. Besides, the paper also describes the digital thermometer in hardware design and software design, hardware design includes the main controller, microcontroller circuit board, the temperature acquisition part of the circuit, display circuit and

12、 the alarm system circuit. Software design, including system software flow chart and the digital thermometer in the part of the program list. Key words: AT89C51 microcontroller, digital control, temperature sensor, multi-function thermometer第1章 前言隨著時代的進步和發(fā)展,單片機技術已經普及到我們生活,工作,科研,各個領域,已經成為一種比較成熟的

13、技術,本文將介紹一種基于單片機控制的數字溫度計,本溫度計屬于多功能溫度計,可以設置上下報警溫度,當溫度不在設置范圍內時,可以報警?,F(xiàn)代信息技術的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實現(xiàn)。能夠獨立工作的溫度檢測和顯示系統(tǒng)應用于諸多領域。傳統(tǒng)的溫度檢測以熱敏電阻為溫度敏感元件。熱敏電阻的成本低,但需后續(xù)信號處理電路,而且可靠性相對較差,測溫準確度低,檢測系統(tǒng)也有一定的誤差,所以傳統(tǒng)的溫度計有反應速度慢、讀數麻煩、測量精度不高、誤差大等缺點。本文是以單片機AT89C51為核心,通過DALLAS公司的單總線數字溫度傳感器DS18B20來實現(xiàn)環(huán)境溫度的采集和A/D轉換,用來測量環(huán)境溫度,溫度分辨率為0.0625

14、,并能數碼顯示。因此本文設計的數字溫度計具有讀數方便,測溫范圍廣,測溫精確,數字顯示,適用范圍寬其電路簡單,軟硬件結構模塊化,易于實現(xiàn)等特點。數字式溫度計的設計將給人們的生活帶來很大的方便,為人們生活水平的提高做出了貢獻。數字溫度計在以后將應用于我們生產和生活的各個方面,數字式溫度計的眾多優(yōu)點告訴我們:數字溫度計將在我們的未來生活中應用于各個領域,它將會是傳統(tǒng)溫度計的理想的替代產品。第2章 數字溫度計總體設計方案2.1 數字溫度計設計方案方案 一:采用熱敏電阻器件,利用其感溫效應,再將隨被測溫度變化的電壓或電流采集過來,進行A/D轉換后,利用單片機進行數據的處理,然后在顯示電路上,將被測溫度顯

15、示出來。 方案 二:利用溫度傳感器,在單片機電路設計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進行轉換就可以滿足設計要求。分析上述兩種方案可以看出方案一是使用熱敏電阻之類的器件利用其感溫效應,進行A/D轉換后,利用單片機進行數據的處理,在顯示電路上被測溫度顯示出來,這種設計需要用到A/D轉換電路,感溫電路比較麻煩。方案二是利用溫度傳感器直接讀取被測溫度,讀數方便,測溫范圍廣,測溫精確,適用范圍寬而且電路簡單易于實現(xiàn)。 綜合方案一和方案二的優(yōu)缺點,我們選擇方案二。2.2 總體設計框圖溫度計電路設計總

16、體設計方框圖如圖2-1所示,控制器采用單片機AT89C51,溫度傳感器采用DS18B20,用4位LED數碼管以串口傳送數據實現(xiàn)溫度顯示。主 控 制 器LED顯示溫度傳感器單片機復位時鐘振蕩報警點按鍵調整圖2-1總體設計方框圖 第3章 數字溫度計硬件設計3.1 主控制器AT89C513.1.1 AT89C51的特點及特性:40個引腳,4K Bytes FLASH片內程序存儲器,128 Bytes的隨機存取數據存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數器,2個全雙工串行通信口,看門狗(WDT)電路,片內時鐘振蕩器。此外,AT89

17、C51在空閑模式下,CPU暫停工作,而RAM定時計數器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結振蕩器而保存RAM的數據,停止芯片其它功能直至外中斷激活或硬件復位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應不同產品的需求。主要功能特性: 兼容MCS-51指令系統(tǒng) 4k可反復擦寫(>1000次)ISP FLASH ROM 32個雙向I/O口 4.5-5.5V工作電壓2個16位可編程定時/計數器 時鐘頻率0-33MHZ全雙工UART串行中斷口線 128X8 BIT內部RAM2個外部中斷源 低功耗空閑和省電模式中斷喚醒省電模式 3級加密位看門狗(WDT)電路 軟件設置

18、空閑和省電功能靈活的ISP字節(jié)和分頁編程 雙數據寄存器指針 管腳功能說明:AT89C51管腳如圖3-1所示:圖3-1 AT89C51管腳圖(1)VCC:供電電壓。(2)GND:接地。(3)P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。(4)P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被

19、內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。(5)P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編

20、程和校驗時接收高八位地址信號和控制信號。(6)P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下所示:P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時器0外部輸入)P3.5 T1(記時器1外部輸入)P3.6 /WR(外部數據存儲器寫選通)P3.7 /RD(外部數據存儲器讀選通)P3

21、口同時為閃爍編程和編程校驗接收一些控制信號。(7)RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。(8)ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外

22、部執(zhí)行狀態(tài)ALE禁止,置位無效。(9)/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。(10)/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。(11)XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。(12)XTAL2:來自反向振蕩器的輸出。3.1.3 片

23、內振蕩器:該反向放大器可以配置為片內振蕩器,如圖3-2所示。圖3-2 片內振蕩器3.1.4 芯片擦除:整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。此外,AT89C51設有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM、定時器、計數器、串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。單片機AT89C51具有低電壓供

24、電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設計需要,很適合便攜手持式產品的設計使用系統(tǒng)可用二節(jié)電池供電。單片機AT89C51具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設計需要,很適合便攜手持式產品的設計使用系統(tǒng)可用二節(jié)電池供電。3.2 單片機主板電路單片機AT89C51是數字溫度計的核心元件,單片機的主板電路如圖3-3所示,包括單片機芯片、報警系統(tǒng)電路、晶振電路、上拉電阻以及與單片機相連的其他電路。圖3-3 單片機的主板電路3.3 溫度采集部分的設計3.3.1 溫度傳感器DS18B20DS18B20溫度傳感器是美國DALLAS半導體公司最新推出的一種改進

25、型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據實際要求通過簡單的編程實現(xiàn)912位的數字值讀數方式。 TO92封裝的DS18B20的引腳排列見圖3-4,其引腳功能描述見表3-1。表3-1DS18B20詳細引腳功能描述序號名稱引腳功能描述1GND地信號2DQ數據輸入/輸出引腳。開漏單總線接口引腳。當被用著在寄電源下,也可以向器件提供電源。3VDD可選擇的VDD引腳。當工作于寄生電源時,此引腳必須接地。圖3-4 DS18B20引腳排列DS18B20的性能特點如下:獨特的單線接口僅需要一個端口引腳進行通信;多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網功能;

26、無須外部器件;可通過數據線供電,電壓范圍為3.05.5V;零待機功耗;溫度以9或12位數字;用戶可定義報警設置;報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作; DS18B20采用3腳PR35封裝或8腳SOIC封裝,其內部結構框圖如圖3-5所示。C64位ROM和單線接口高速緩存存儲器與控制邏輯溫度傳感器高溫觸發(fā)器TH低溫觸發(fā)器TL配置寄存器 8位CRC發(fā)生器VddI/O圖3-5 DS18B20內部結構64位ROM的結構開始8位是產品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的CRC檢

27、驗碼,這也是多個DS18B20可以采用一線進行通信的原因。溫度報警觸發(fā)器TH和TL,可通過軟件寫入戶報警上下限。DS18B20溫度傳感器的內部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM。高速暫存RAM的結構為8字節(jié)的存儲器,結構如圖3-6所示。頭8個字節(jié)包含測得的溫度信息,第8和第8字節(jié)TH和TL的拷貝,是易失的,每次上電復位時被刷新。第8個字節(jié),為配置寄存器,它的內容用于確定溫度值的數字轉換分辨率。DS18B20工作時寄存器中的分辨率轉換為相應精度的溫度數值。該字節(jié)各位的定義如圖3-6所示。低8位一直為,TM是工作模式位,用于設置DS18B20在工作模式還是在測試模式

28、,DS18B20出廠時該位被設置為8,用戶要去改動,R1和R0決定溫度轉換的精度位數,來設置分辨率。溫度 LSB溫度 MSBTH用戶字節(jié)1TL用戶字節(jié)2配置寄存器保留保留保留CRC圖3-6DS18B20字節(jié)定義由表3-2可見,DS18B20溫度轉換的時間比較長,而且分辨率越高,所需要的溫度數據轉換時間越長。因此,在實際應用中要將分辨率和轉換時間權衡考慮。表3-2 DS18B20溫度轉換時間表R1R0分辨率(位)溫度最大轉向時間(ms)00993.750110187.510113751112750高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用

29、來檢驗數據,從而保證通信數據的正確性。當DS18B20接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數據,讀數據時低位在先,高位在后,數據格式以0.0625LSB形式表示。當符號位S0時,表示測得的溫度值為正值,可以直接將二進制位轉換為十進制;當符號位S1時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數值。表3-3是一部分溫度值對應的二進制溫度數據。DS18B20完成溫度轉換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內容作比較。若T>TH或T<TL,則將該器

30、件內的報警標志位置位,并對主機發(fā)出的報警搜索命令作出響應。因此,可用多只DS18B20同時測量溫度并進行報警搜索。在64位ROM的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(CRC)。主機ROM的前56位來計算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機收到的ROM數據是否正確。DS18B20的測溫原理是這這樣的,器件中低溫度系數晶振的振蕩頻率受溫度的影響很小,用于產生固定頻率的脈沖信號送給減法計數器1;高溫度系數晶振隨溫度變化其振蕩頻率明顯改變,所產生的信號作為減法計數器2的脈沖輸入。器件中還有一個計數門,當計數門打開時,DS18B20就對低溫度系數振蕩器產生的時鐘脈沖進行計數進而完

31、成溫度測量。計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,首先將55所對應的一個基數分別置入減法計數器1、溫度寄存器中,計數器1和溫度寄存器被預置在55所對應的一個基數值。減法計數器1對低溫度系數晶振產生的脈沖信號進行減法計數,當減法計數器1的預置值減到0時,溫度寄存器的值將加1,減法計數器1的預置將重新被裝入,減法計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環(huán)直到減法計數器計數到0時,停止溫度寄存器的累加,此時溫度寄存器中的數值就是所測溫度值。其輸出用于修正減法計數器的預置值,只要計數器門仍未關閉就重復上述過程,直到溫度寄存器值大致被測溫度值。表3-3 一部分溫度對

32、應值表溫度/二進制表示十六進制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 000

33、0FC90H另外,由于DS18B20單線通信功能是分時完成的,它有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作按協(xié)議進行。操作協(xié)議為:初使化DS18B20(發(fā)復位脈沖)發(fā)ROM功能命令發(fā)存儲器操作命令處理數據。3.3.2 DS18B20溫度傳感器與單片機的接口電路DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20的1腳接地,2腳作為信號線,3腳接電源;另一種是寄生電源供電方式,如圖3-7所示單片機端口接單線總線,為保證在有效的DS18B20時鐘周期內提供足夠的電流,可用一個MOSFET管來完成對總線的上拉。圖3-7 DS18B20與單片機的接口

34、電路當DS18B20處于寫存儲器操作和溫度A/D轉換操作時,總線上必須有強的上拉,上拉開啟時間最大為10us。采用寄生電源供電方式時VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。由于DS18B20是在一根I/O線上讀寫數據,因此,對讀寫的數據位有著嚴格的時序要求。DS18B20有嚴格的通信協(xié)議來保證各位數據傳輸的正確性和完整性。3.4 顯示部分電路設計3.4.1 74LS164引腳功能及特性74LS164是一個串入并出的8位移位寄存器,他常用于單片機系統(tǒng)中,下面總結一下這個元件的基本知識如圖3-10為74LS164引腳圖, 圖3.11為74LS164內部功能圖。圖3-10 74

35、LS164引腳圖3-11 74LS164內部功能圖· 串行輸入帶鎖存 · 時鐘輸入,串行輸入帶緩沖 · 異步清除 · 最高時鐘頻率可高達36MHZ · 功耗:10mW/bit · 74系列工作溫度: 0°C 70°C · Vcc最高電壓:7V · 輸入最高電壓:7V · 高電平:-0.4mA. · 低電平:8mA.3.4.2 溫度顯示電路溫度顯示電路(如圖3-12)采用4位共陽LED數碼管,從P3口RXD,TXD串口輸出段碼。顯示電路是使用的串口顯示,這種顯示最大的優(yōu)點就是使

36、用口資源比較少,該顯示電路只使用單片機的3個端口:P1.7,P3.0,P3.1,并配以4片串入并出移位寄存器74LS164(LED驅動)四只數碼管采用74LS164右移寄存器驅動,顯示比較清晰。其工作過程如下:1.串行數據由P3.0發(fā)送,移位時鐘由P3.1送出。2.在移位時鐘的作用下,串行口發(fā)送緩沖器的數據一位一位地移入74LS164中。3.四片74LS164串級擴展為4個8位并行輸出口,分別連接到4個LED顯示器的段選端作靜態(tài)顯示。圖3-12 溫度顯示電路3.5 報警系統(tǒng)電路在圖3-13中蜂鳴器可以在被測溫度不在上下限范圍內時,發(fā)出報警鳴叫聲音,同時LED數碼管將沒有被測溫度值顯示。圖中有三

37、個獨立式按鍵可以分別調整溫度計的上下限報警設置,圖中蜂鳴器可以在被測溫度不在上下限范圍內時,發(fā)出報警鳴叫聲音,同時LED數碼管將沒有被測溫度值顯示,這時可以調整報警上下限,從而測出被測的溫度值。圖中的按健復位電路是上電復位加手動復位,使用比較方便,在程序跑飛時,可以手動復位,這樣就不用在重起單片機電源,就可以實現(xiàn)復位。圖3-13 報警系統(tǒng)電路 第4章 數字溫度計的軟件設計4.1 系統(tǒng)軟件設計的流程圖系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉換命令子程序,計算溫度子程序,顯示數據刷新子程序等。主程序的主要功能是負責溫度的實時顯示、讀出并處理DS18B20的測量的當前溫度值,溫度測量每1S進行

38、一次。這樣可以在一秒之內測量一次被測溫度,其程序流程見圖4-1所示。初始化調用顯示子程序1S到?初次上電讀出溫度值溫度計算處理顯示數據刷新發(fā)溫度轉換開始命令NYNY圖4-1 主程序流程圖溫度轉換命令子程序主要是發(fā)溫度轉換開始命令,當采用12位分辨率時轉換時間約為750ms,在本程序設計中采用1s顯示程序延時法等待轉換的完成。溫度轉換命令子程序流程圖如上圖,圖4-2所示。發(fā)DS18B20復位命令發(fā)跳過ROM命令發(fā)溫度轉換開始命令 結束圖 4-2溫度轉換流程圖計算溫度子程序將RAM中讀取值進行BCD碼的轉換運算,并進行溫度值正負的判定,其程序流程圖如圖4-3示。 開始溫度零下?溫度值取補碼置“”標

39、志計算小數位溫度BCD值 計算整數位溫度BCD值 結束置“+”標志NY圖4-3計算溫度流程圖顯示數據刷新子程序主要是對顯示緩沖器中的顯示數據進行刷新操作,當最高顯示位為0時將符號顯示位移入下一位。程序流程圖如圖4-4。溫度數據移入顯示寄存器十位數0?百位數0?十位數顯示符號百位數不顯示百位數顯示數據(不顯示符號) 結束NNYY圖4-4顯示數據刷新流程圖4.2 數字溫度計部分程序清單(1)初始化程序S1OK EQU 5FHTEMPUTER EQU 39HTEMPH EQU 5EHTEMPLEQU 5DHMS50 EQU 5CHSIGN EQU 5BHS1 BIT P1.0S2 BIT P1.1S

40、3 BIT P1.2S4 BIT P1.3ORG 0000HLJMP MAINORG 000BHLJMP TOITORG 0030HMAIN: MOV SP, #60HMOV TMOD, #01HMOV TH0, #3CHMOV TL0, #0B0HSETB ET0SETB TR0SETB EAMOV TEMPH, #30MOV TEMPL, #9MOV TEMPUTER, #15 MOV S1OK, #00HMOV 38H, #0BHMOV 37H, #0CHMOV 36H, #0BHACALL DISPACALL T1S(2)主程序START: JB S1, NET1ACALL T12MS

41、JB S1, NET1JNB S1, $INC SIGNMOV A, SIGNCJNE A, #1, TIAOACALL TIAOTLTIAO:CJNE A, #2, NET1MOV SIGN, #0ACALL TIAOTHNET1: MOV A, S1OKCJNE A, #1, STARTMOV A, TEMPUTERSUBB A, TEMPHJNB ACC.7, ALEMMOV A, TEMPUTERSUBB A, TEMPLJB ACC.7, ALEMSETB P2.1ACALL WENDUACALL DISPMOV S1OK, #00HAJMP STARTALEM: MOV 36H,

42、#0CHMOV 37H, #0CHMOV 38H, #0CHCLR P2.1ACALL DISPACALL T1SLCALL WENDULCALL DISPMOV S1OK, #00HSJMP START(3)溫度總子程序ACALL INIT_1820ACALL RE_CONFIGACALL GET_TEMPERACALL TEMPER_COVRET(4)DS18B20初始化程序INIT_1820:SETB P2.0NOPCLR P2.0MOV R0,#06BHMOV R1,#03HTSR1:DJNZ R0,TSR1 ; 延時MOV R0,#6BHDJNZ R1,TSR1SETB P2.0NO

43、PNOPNOPMOV R0,#25HTSR2:JNB P2.0,TSR3DJNZ R0,TSR2LJMP TSR4 ; 延時TSR3:SETB 20H.1 ; 置標志位,表示DS1820存在LJMP TSR5TSR4:CLR 20H.1 ; 清標志位,表示DS1820不存在LJMP TSR7TSR5:MOV R0,#06BHMOV R1,#03HTSR6:DJNZ R0,TSR6 ; 延時MOV R0,#6BHDJNZ R1,TSR6TSR7:SETB P2.0RET(5)讀出轉換后的溫度值GET_TEMPER:SETB P2.0 ; 定時入口LCALL INIT_1820JB 20H.1,T

44、SS2RET ; 若DS18B20不存在則返回TSS2:MOV A,#0CCH ; 跳過ROM匹配LCALL WRITE_1820MOV A,#44H ; 發(fā)出溫度轉換命令LCALL WRITE_1820LCALL INIT_1820MOV A,#0CCH ; 跳過ROM匹配LCALL WRITE_1820MOV A,#0BEH ; 發(fā)出讀溫度命令LCALL WRITE_1820LCALL READ_18200MOV 37H,A ; 將讀出的溫度數據保存RET(6)寫DS18B20的程序WRITE_1820:MOV R2,#8CLR CWR1:CLR P2.0 NOPNOPNOPNOPRRC

45、AMOV P2.0,CMOV R3,#35DJNZ R3,$SETB P2.0NOPDJNZ R2,WR1SETB P2.0RET讀DS18B20的程序,從DS18B20中讀出兩個字節(jié)的溫度數據READ_18200:MOV R4,#2 ; 將溫度高位和低位DS18B20中讀 RE00:MOV R2,#8RE01:CLR CSETB P2.0NOPNOPCLR P2.0NOPNOPNOPSETB P2.0NOPNOPMOV C,P2.0MOV R3,#35RE20:DJNZ R3,RE20RRC ADJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00RET將從DS18B2

46、0中讀出的溫度數據進行轉換TEMPER_COV:MOV A,#0F0HANL A,36H ; 舍去溫度低位中小數點SWAP AMOV 37H,AMOV A,36HNB ACC.3,TEMPER_COV1 ; 四舍五入去溫度值INC 37HTEMPER_COV1:MOV A,35HANL A,#07HSWAP AADD A,37HMOV 37H,A ; 保存變換后的溫度數據LCALL BIN_BCDRET將16進制的溫度數據轉換成壓縮BCD碼; 38H中放百位,37十位,36個位BIN_BCD:MOV 39H,37HMOV A,37HMOV B,#100DIV ABMOV 38H,AMOV 37H,BXCH A,BMOV B,#10DIV ABMOV 37H,AMOV 36H,BRETDISP: SET

溫馨提示

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

評論

0/150

提交評論