單片機溫度控制系統(tǒng)畢業(yè)論文.doc
《單片機溫度控制系統(tǒng)畢業(yè)論文.doc》由會員分享,可在線閱讀,更多相關《單片機溫度控制系統(tǒng)畢業(yè)論文.doc(44頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、淮安職業(yè)技術學院畢業(yè)論文 編號 淮安信息淮安信息職業(yè)職業(yè)技技術術學院學院 畢畢業(yè)業(yè)論論文文 題 目基于單片機的溫度控制系統(tǒng)的設計基于單片機的溫度控制系統(tǒng)的設計 學生姓名仝鵬 學 號42011710 系 部電氣工程 專 業(yè)機電一體化 班 級420117 指導教師龔希賓 顧問教師張守峰 二三年十月 摘要 I 摘摘 要要 溫度是一種最基本的環(huán)境參數(shù),人們生活與環(huán)境溫度息息相關,在工業(yè)生 產(chǎn)過程中需要實時測量溫度,在工業(yè)生產(chǎn)中也離不開溫度的測量,因此研究溫 度的測量方法和控制具有重要的意義。 本論文介紹了一種以單片機為主要控制器件,以 DS18B20 為溫度傳感器的 新型數(shù)字溫度計。主要包括硬件電路的
2、設計和系統(tǒng)程序的設計。硬件電路主要 包括主控制器,測溫控制電路和顯示電路等,主控制器采用單片機 AT89C51,溫 度傳感器采用美國 DALLAS 半導體公司生產(chǎn)的 DS18B20,顯示電路采用 8 位共陽 極 LED 數(shù)碼管,ULN2803A 為驅(qū)動的動態(tài)掃描直讀顯示。測溫控制電路由溫度傳 感器和預置溫度值比較報警電路組成,當實際測量溫度值大于預置溫度值時, 發(fā)出報警信號,即發(fā)光二極管亮。系統(tǒng)程序主要包括主程序,測溫子程序和顯 示子程序等。DS18B20 新型單總線數(shù)字溫度傳感器是 DALLAS 公司生產(chǎn)的單線數(shù) 字溫度傳感器, 集溫度測量和 A /D 轉(zhuǎn)換于一體 ,直接輸出數(shù)字量,具有接口
3、簡 單、精度高、抗干擾能力強、工作穩(wěn)定可靠等特點。系統(tǒng)程序的設計主要包括 Proteus ISIS 仿真軟件及 Keil uVision2 仿真軟件的使用。Proteus 軟件是一 款強大的單片機仿真軟件,對于單片機學習和開發(fā)幫助極大。Proteus ISIS 是 英國 Labcenter 公司開發(fā)的電路分析與實物仿真軟件。它運行于 Windows 操作 系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和數(shù)字集成電路,包括單片機。 Keil uVision2 是德國 Keil 公司開發(fā)的基于 Windows 平臺的單片機集成開發(fā)環(huán) 境,它包含一個高效的編譯器、一個項目管理器和一個 MAKE 工
4、具。其中 Keil C51 是一種專門為單片機設計的高效率 C 語言編譯器,符合 ANSI 標準,生成的 程序代碼運行速度極高,所需要的存儲器空間極小,完全可以與匯編語言媲美。 由于采用了改進型智能溫度傳感器 DS18B20 作為檢測元件,與傳統(tǒng)的溫度 計相比,本數(shù)字溫度計減少了外部的硬件電路,具有低成本和易使用的特點。 DS18B20 溫度計還可以在高溫報警、遠距離多點測溫控制等方面進行應用開發(fā), 具有很好的發(fā)展前景。此外,還介紹了系統(tǒng)的調(diào)試和性能分析。 關鍵詞:AT89C51, DS18B20 , Proteus ISIS, Keil uVision2 摘要 II 目目 錄錄 摘摘 要要I
5、 I 第一章第一章 緒論緒論1 1 第二章設計任務及方案分析第二章設計任務及方案分析2 2 2.12.1 設計任務及要求設計任務及要求2 2 2.22.2 設計總體方案及方案論證設計總體方案及方案論證2 2 2.32.3 溫度測量的方案與分析溫度測量的方案與分析2 2 第三章芯片功能及軟件簡介第三章芯片功能及軟件簡介4 4 3.13.1 AT89C51AT89C51 芯片簡介芯片簡介4 4 3.23.2 DS18B20DS18B20 的功能簡介的功能簡介6 6 3.33.3 KEILKEIL UVISION2UVISION2 的使用的使用6 6 3.43.4 PROTEUSPROTEUS IS
6、ISISIS 仿真軟件的使用仿真軟件的使用6 6 第四章系統(tǒng)硬件電路的設計第四章系統(tǒng)硬件電路的設計1212 4.14.1 主控制電路和測溫控制電路原理圖主控制電路和測溫控制電路原理圖1212 4.24.2 驅(qū)動電路模塊原理圖驅(qū)動電路模塊原理圖1212 4.34.3 顯示模塊原理圖顯示模塊原理圖1313 第五章軟件編程調(diào)試及性能分析第五章軟件編程調(diào)試及性能分析1515 5.15.1 主程序流程圖主程序流程圖1515 5.25.2 主程序主程序1515 5.35.3 溫度子程序溫度子程序1717 5.45.4 顯示子程序顯示子程序2222 5.55.5 程序調(diào)試程序調(diào)試2222 5.65.6 調(diào)試
7、性能分析和注意事項調(diào)試性能分析和注意事項2323 第六章第六章 總結(jié)與展望總結(jié)與展望2525 致致 謝謝2626 參考文獻參考文獻2727 附錄附錄2929 第一章 緒論 1 第一章第一章 緒論緒論 日常生活及工農(nóng)業(yè)生產(chǎn)中經(jīng)常要用到溫度的檢測及控制,在冶金、食品加 工、化工等工業(yè)生產(chǎn)過程中,廣泛使用的各種加熱爐、熱處理爐、反應爐等, 都要求對溫度進行嚴格控制。在日常生活中,電烤箱、微波爐、電熱水器、烘 干箱等電器也需要進行溫度檢測與控制。傳統(tǒng)的測溫元件有熱電偶和熱電阻。 而熱電偶和熱電阻測出的一般是電壓,再轉(zhuǎn)換成對應的溫度,需要比較多的外 部硬件支持,硬件電路復雜,軟件調(diào)試復雜,制作成本高。而
8、采用單片機對溫 度進行控制,不僅具有控制方便,簡單和靈活等優(yōu)點,而且可以大幅度提高溫 度控制的技術指標。 測量溫度的關鍵是溫度傳感器,溫度傳感器正從模擬式向數(shù)字式、從集成 化向智能化、網(wǎng)絡化的方向發(fā)展。在測溫電路中,可以使用熱敏電阻之類的器 件利用其感溫效應,將隨被測溫度變化的電壓或電流采集過來,先進行 A/D 轉(zhuǎn) 換,然后用單片機進行數(shù)據(jù)的處理,再在顯示電路上,將被測溫度顯示出來。 這種設計需要用到 A/D 轉(zhuǎn)換電路,因此感溫電路的設計比較復雜。 進而想到采用智能溫度傳感器來設計數(shù)字溫度計。本數(shù)字溫度計的設計采 用美國 DALLAS 半導體公司繼 DS1820 之后推出的一種改進型智能溫度傳
9、感器 DS18B20 作為檢測元件,其溫度值可以直接被讀出來,通過核心器件單片機 AT89C52 控制溫度的讀寫和顯示,用 LED 數(shù)碼管顯示。測溫范圍為 55125,最大分辨率可達 0.0625。而且采用 3 線制與單片機相連, 減少了外部的硬件電路,具有低成本和易使用的特點。 按照系統(tǒng)設計功能的要求,確定系統(tǒng)有 5 個模塊組成:主控制器、溫度傳 感器 DS18B20、報警電路、按鍵預置溫度值電路及顯示電路。控制器使用 AT89C52,溫度傳感器使用 DS18B20,用 8 位共陽極 LED 數(shù)碼管以動態(tài)掃描法 實現(xiàn)溫度顯示。系統(tǒng)程序主要包括主程序、溫度控制子程序及顯示子程序等等。 綜上所述
10、,本設計以智能集成溫度傳感器 DS18B20 為例,介紹基于 DS18B20 傳感器的數(shù)字溫度計的設計,該設計適用于人們的日常生活及工農(nóng)業(yè) 生產(chǎn)中用于溫度的檢測及控制。 第二章 設計任務與方案分析 2 第二章第二章. .設計任務及方案分析設計任務及方案分析 2.1 設計任務及要求設計任務及要求 設計一個以單片機為核心的溫度測量系統(tǒng),可實現(xiàn)的功能為: (1)測量溫度值精度為1。 (2)系統(tǒng)允許的誤差范圍為 1以內(nèi)。 (3)系統(tǒng)可由用戶預設溫度值,測溫范圍為55125。 (4)超出預置值時系統(tǒng)會自動報警,即發(fā)光二極管亮。 (5)系統(tǒng)具有數(shù)碼顯示功能,能實時顯示設定溫度值和測得的實際溫度值。 2.2
11、 設計總體方案及方案論證設計總體方案及方案論證 在日常生活及工農(nóng)業(yè)生產(chǎn)中經(jīng)常要用到溫度的檢測及控制,傳統(tǒng)的測溫元 件有熱電偶和熱點阻。而熱電偶和熱電阻測出的一般都是電壓,再轉(zhuǎn)換成對應 的溫度,需要比較多的外部硬件支持,硬件電路復雜,軟件調(diào)試復雜,制作成 本高。 本數(shù)字溫度計設計采用美國 DALLAS 半導體公司繼 DS1820 之后推出的一 種改進智能溫度傳感器 DS18B20 作為檢測元件,測溫范圍為55125, 最大分辨率可達 0.0625。DS18B20 可以直接讀出被測量的溫度值,而采用 3 線制與單片機相連,減少了外部的硬件電路,具有低成本和易使用的特點。 按照系統(tǒng)設計功能的要求,確
12、定系統(tǒng)由 5 個模塊組成:主控制器 AT89C52,溫度傳感器 DS18B20,報警電路,按鍵電路及驅(qū)動顯示電路。數(shù)字 溫度計總體電路框圖如圖 1-1 所示。 2.3 溫度測量的方案與分析溫度測量的方案與分析 1芯片選擇 本設計的測溫系統(tǒng)采用芯片 DS18B20, DS18B20 是 DALLAS 公司的最 新單線數(shù)字溫度傳感器,它的體積更小、適用電壓更寬、更經(jīng)濟,DS18B20 是 世界上第一片支持“一線總線”接口的溫度傳感器,具有一線總線獨特而且經(jīng)濟的 特點。采用智能溫度傳感器 DS18B20 作為檢測元件,測溫范圍為 55125,最大分辨率可達 0.0625。DS18B20 可以直接讀出
13、被測量的 溫度值,而且采用 3 線制與單片機相連,減少了外部的硬件電路,具有低成本 和易使用的特點。 2實現(xiàn)方法簡介: DS18B20 采用外接電源方式工作,一線測溫的一線與 AT89C52 的 P3.7 連 接并加上上拉電阻使其工作,測出的數(shù)據(jù)存放在寄存器 10H-12H 中,將數(shù)據(jù)經(jīng) 過 BCD 碼轉(zhuǎn)換后送 LED 顯示。具體實現(xiàn)步驟見軟件設計章節(jié)。 第二章 設計任務與方案分析 3 圖 1-1 總體電路框圖 3測溫流程圖: 圖 1-2 測溫流程圖 主控制器 AT89C52 驅(qū)動顯示電路按鍵電路 報警電路 DS18B20 初始化跳過 ROM 匹配 數(shù)碼管顯示 溫度變換 讀暫存器 轉(zhuǎn)換成顯示
14、碼 延時 1S 跳過 ROM 匹配 第三章 芯片功能簡介 4 第三章第三章. .芯片功能簡介芯片功能簡介 3.1 AT89C51 芯片簡介芯片簡介 AT89C51 是美國 ATMEL 公司生產(chǎn)的低電平,高性能 CMOS 8 位單片機, 片內(nèi)含 8k bytes 的可反復擦寫的只讀程序存儲器(PEROM)和 256 bytes 的隨機存 取數(shù)據(jù)存儲器(RAM ),器件采用 ATMEL 公司的高密度、非易失性存儲技術生產(chǎn), 與標準 MCS-51 指令系統(tǒng)及 8052 產(chǎn)品引腳兼容,片內(nèi)置通用 8 位中央處理器 (CPU)和 Flash 存儲單元,32 個可編程 I/O 口線, 3 個 16 位定時
15、/計數(shù)器, 低功耗 空閑和掉電模式。功能強大的 AT89C52 單片機適合于許多較為復雜控制應用場 合。 引腳功能說明如下: (1)VCC:電源電壓 (2)GND:地 (3) P0 口:P0 口是一組 8 位漏極開路型雙向 I/O 口,也即地址/數(shù)據(jù)總線 復用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動 8 個 TTL 邏輯門電路, 對端口 P0 寫“1”時可作為高阻抗輸入端用。 在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低 8 位)和 數(shù)據(jù)總線復位,在訪問期間激活內(nèi)部上拉電阻。 (4)P1 口:P1 是一個帶內(nèi)部上拉電阻的 8 位雙向 I/O 口,P1 的輸出緩沖級 可驅(qū)動(
16、吸收或輸出電流)4 個 TTE 邏輯門電路。對端口寫“1” ,通過內(nèi)部的上拉 電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上 拉電阻,某個引腳被外部信號拉低時會輸出一個電流(ILL)。 與 AT89C51 不同之處是,P1.0 和 P1.1 還可分別作為定時/計數(shù)器 2 的外部 計數(shù)輸入(P 1.0/T2)和輸入(P 1.1/T2EX ),參見表 2-1。 Flash 編程和程序校驗期間,P1 接收低 8 位地址。 表 2-1 P1.0 和 P1.1 的第二功能 引 腳 號 功能特性 P1.0T2(定時/計數(shù)器 2 外部計數(shù)脈沖輸入) ,時鐘輸出 P1.1T2EX(定時/
17、計數(shù) 2 捕獲/重裝載觸發(fā)和方向控制) (5)P2 口:P2 是一個帶有內(nèi)部上拉電阻的 8 位雙向 I/O 口,P2 的輸出緩沖 級可驅(qū)動(吸收或輸出電流)4 個 TTL 邏輯門電路。對端口 P2 寫“1” ,通過內(nèi)部 的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部 存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(ILL)。 在訪問外部程序存儲器或 16 位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行 MOVX DPTR 指令)時,P2 口送出高 8 位地址數(shù)據(jù)。在訪問 8 位地址的外部數(shù)據(jù)存儲 器(如執(zhí)行 MOVX RI 指令)時,P2 口輸出 P2 鎖存器的內(nèi)容。 第三章 芯
18、片功能簡介 5 (6)P3 口:P3 口是一組帶有內(nèi)部上拉電阻的 8 位雙向 I/O 口。P3 口輸出緩 沖級可驅(qū)動(吸收或輸出電流)4 個 TTL 邏輯門電路。對 P3 口寫入“1”時,它們 被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的 P3 口將用上拉電 阻輸出電流(ILL)。 P3 口除了作為一般的 I/O 口線外,更重要的用途是它的第二功能,如表 2-2 所示。 (7)RST:復位輸入。當振蕩器工作時,RST 引腳出現(xiàn)兩個機器周期以上高 電平將使單片機復位。 表 2-2 P3 口的第二功能 端口引腳第二功能 P3.0RXD(串行輸入口) P3.1TXD(串行輸出口) P3.2
19、 (外中斷 0)INT0 P3.3 (外中斷 1)INT1 P3.4T0(定時/計數(shù) 0) P3.5T1(定時/計數(shù) 1) P3.6 (外部數(shù)據(jù)存儲器寫選通)WR P3.7 (外部數(shù)據(jù)存儲器讀選通)RD (8)/VPP:外部訪問允許。欲使 CPU 僅訪問外部程序存儲器(地址為EA 0000H-FFFFH ) 。端必須保持低電平(接地)。需注意的是:如果加密位 LB1EA 被編程,復位時內(nèi)部會鎖存端狀態(tài)。EA 如端為高電平(接 VCC 端),CPU 則執(zhí)行內(nèi)部程序存儲器中的指令。EA Flash 存儲器編程時,該引腳加上+12V 的編程允許電源 VPP,當然這必須 是該器件是使用 12V 編程電
20、壓 VCC 。 (9)XTAL1:振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端。 (10)XTAL2:振蕩器反相放大器的輸出端。 (11)數(shù)據(jù)存儲器: AT89C52 有 256 個字節(jié)的內(nèi)部 RAM,80H-FFH 高 128 個字節(jié)與特殊功能寄 存器(SFR)地址是重疊的,也就是高 128。 字節(jié)的 RAM 和特殊功能寄存器的地址是相同的,但在物理上它們是分開 的。 當一條指令訪問 7FH 以上的內(nèi)部地址單元時,指令中使用的尋址方式是不 同的,也即尋址方式?jīng)Q定是訪問高 128 字節(jié)。 RAM 還是訪問特殊功能寄存器。如果指令是直接尋址方式則為訪問特殊功 能寄存器。 (12)中斷: 第三章 芯
21、片功能簡介 6 AT89C52 共有 6 個中斷向量:兩個外中斷(INT0 和 INT1) ,3 個定時器中斷 (定時器 0, 1, 2)和串行口中斷。 (13)時鐘振蕩器: AT89C52 中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳 XTAL1 和 XTAL2 分別是該放大器的輸入端和輸出端。 這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振 蕩器,振蕩電路參見圖 2-1(a)圖所示。 外接石英晶體(或陶瓷諧振器)及電容 C1、C2 接在放大器的反饋回路中 構(gòu)成并聯(lián)振蕩電路,對外接電容 C1、C2 雖然沒有十分嚴格的要求,但電容容量 的大小會輕微影響振蕩頻率的高低、振
22、蕩器工作的穩(wěn)定性、起振的難易程度及 溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用 30pF 士 10pF,而如果使用 陶瓷諧振器,建議選擇 40pF 士 l0pF。 用戶也可以采用外部時鐘。采用外部時鐘的電路如圖 2-1(b)圖所示。這 種情況下,外部時鐘脈沖接到 XTAL1 端,即內(nèi)部時鐘發(fā)生器的輸入端,XTAL2 則懸空。 (a)內(nèi)部振蕩電路 (b)外部振蕩電路 圖 2-1 振蕩電路 由于外部時鐘信號是通過一個 2 分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以 對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電 平持續(xù)時間應符合產(chǎn)品技術條件的要求。 3.2 DS18B20 的功
23、能簡介的功能簡介 DS18B20DS18B20 的性能指標的性能指標 (1)只需一根口線與 MCU 連接,無需外部原件。 由總線提供電源,或?qū)>€供電。 測溫范圍為-55 攝氏度至+125 攝氏度。 9 到 12 位溫度讀數(shù)。 第三章 芯片功能簡介 7 溫度轉(zhuǎn)換時間為 200ms。 用戶自行設定溫度報警上下限,掉電后數(shù)據(jù)有效。 可識別并尋址系統(tǒng)中溫度超限報警的 DS18B20, DS18B20DS18B20 的電源及工作方式的電源及工作方式 DS18B20 的供電方式,DS18B20 有兩種工作方式,一種是外部供電方式即從 VCC 引腳供電,GND 接地,另一種是寄生電源供電方式,直接從 DQ
24、端上獲得 電源,當 DQ 為高電平是為內(nèi)部電容充電,當 DQ 為低電平是電容為 DS18B20 供電(VCC 端必須接地)已確保芯片的穩(wěn)定性, DS18B20 的測溫原理,DS18B20 通過內(nèi)部溫度寄存器接收一個受溫度系數(shù)影 響的振蕩器輸出的脈沖個數(shù)直接影響到數(shù)字溫度數(shù)據(jù),溫度轉(zhuǎn)化命令執(zhí)行后, 發(fā)送讀高速暫存器命令(BEh)可將溫度數(shù)據(jù)經(jīng)單線總線讀出,溫度數(shù)據(jù)傳 輸時,低位在先。 當收到溫度轉(zhuǎn)換命令后,DS18B20 的內(nèi)部數(shù)字化溫度轉(zhuǎn)換器講溫度數(shù)據(jù)以二 進制補嗎形式儲存到 16 位快速暫存器中,有效數(shù)據(jù)位可編程設定為 9 位, 10 位,11 位,12 位,分別對應 4 種分辨率 :0.5
25、 攝氏度 0.25 攝氏度 0.125 攝氏度 0.0625 攝氏度。有效數(shù)據(jù)最高位為符號位,可表示溫度的正 負值。高字節(jié)的其他高位擴展為符號位;有效數(shù)據(jù)的第四位表示溫度的小數(shù) 位,DS18B20 出廠默認狀態(tài)為 12 位。 表DS18B20溫度值格式表 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 LSLS ByteByte2 2 3 2 2 2 2 212 2 0 2 2 1 2 2 2 2 2 3 2 2 4 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 MSMS ByteByteS SS SS SS SS
26、S2 2 6 2 2 5 2 2 4 表表 8-28-2 溫度與轉(zhuǎn)換數(shù)據(jù)的關系溫度與轉(zhuǎn)換數(shù)據(jù)的關系 +125+12500000000 01110111 11011101 0000000007D0h07D0h +85+8500000000 01010101 01010101 000000000550h0550h +25.0625+25.062500000000 00010001 10011001 000100010191h0191h +10.125+10.12500000000 00000000 10101010 0010001000A2h00A2h +0.5+0.500000000 00000
27、000 00000000 100010000008h0008h 0000000000 00000000 00000000 00000000 0000h0000h -0.5-0.511111111 11111111 11111111 10001000 FFF8hFFF8h -10.125-10.12511111111 11111111 01010101 11101110 FF5EhFF5Eh -25.0625-25.062511111111 11101110 01100110 11111111 FF6FhFF6Fh -55-5511111111 11001100 10011001 0000000
28、0FC90hFC90h /上電復位時溫度寄存器的值為上電復位時溫度寄存器的值為+85+85(00000000 01010101 01010101 00000000) 報警信號的應用 。DS18B20 每次執(zhí)行完溫度抓換后,溫度值將與儲存在 TH 和 TL 內(nèi)的觸發(fā)值相比較,如果測量的結(jié)果大于 TH 的值或小于 TL 的 值,就會置位內(nèi)部的報警標志位,在連接多片 DS18B20 的應用系統(tǒng)中, 主機發(fā)送報警搜索命令(ECh)時,有置位報警標志位的 DS18B20 會響應 總線主機發(fā)回標志位,其他沒有置位報警標志位的 DS18B20 則保持沉默, 第三章 芯片功能簡介 8 這樣便于主機立即識別 D
29、S18B20 并讀出數(shù)據(jù)。 16 位的溫度寄存器與 8 位 TH 或 TL 寄存器內(nèi)容進行比較操作時,講忽略 溫度寄存器高字節(jié),而 TH 或 TL 得最高位對應溫度數(shù)據(jù)的符號位。 DS18B20DS18B20 的結(jié)構(gòu)的結(jié)構(gòu) DS18B20 的外部圖及引腳意義。 序號名稱引腳功能描述 1 1GNDGND 地信號 2 2DQDQ 數(shù)據(jù)輸入/輸出引腳。開漏單總 線接口引腳。當被用著在寄生電 源下,也可以向器件提供電源。 3 3VDDVDD 可選擇的 VDD 引腳。當工作于寄 生電源時,此引腳必須接地。 DS18B20 的內(nèi)部結(jié)構(gòu)如圖 8-2 所示。主要由數(shù)字器件組成;64 位閃速 ROM,溫度傳感器
30、,溫度寄存器(告訴暫存 RAM 與 E2PR0M) 64bit 閃速 ROM 的結(jié)構(gòu)如圖 8-3 所示。每片 DS18B20 都有唯一的 64 位長 的激光 ROM 其中低 8 位是單線產(chǎn)品(DS18B20 代碼為 28h) ,后續(xù)的 48 位唯一的序列號,高 8 位是前 56 的 CRC(循環(huán)冗余校驗碼) 。64 位的 ROM 及其功能控制部分使 DS18B20 作物 idanxian 總線器件進行操作,只 有滿足功能協(xié)議后對 DS18B20 的控制功能才能接受,總線主機必須提供 5 個 ROM 命令中的一個且這個名林被成功執(zhí)行,DS18B20 才可接受總線主 機的指定功能,即后續(xù)提供的 6
31、 個存儲器操作中的一個命令。 64 位 ROM 和單線 接 口 高速緩存 存儲器 存儲器和控制器 8 位 CRC 生成器 溫度傳感器 低溫觸發(fā)器 TL 高溫觸發(fā)器 TH 配置寄存器 電 源 檢 測 DS18B20DS18B20 1 2 3 GND DQ VCC 第三章 芯片功能簡介 9 8-28-2 8bit8bit 校驗校驗 CRCCRC48bit48bit 序列號序列號8bit8bit 工廠代碼工廠代碼 Msb lsb msb lsb msb lsb 8-38-3 DS18B20DS18B20 閃速閃速 ROMROM 的存儲結(jié)構(gòu)的存儲結(jié)構(gòu) DS18B20 結(jié)構(gòu)廢紙寄存器。第 04 位始終為
32、“1” 。第 7 位始終為“0” 第 5,6 位(R1,R0)決定溫度分辨率及時對應的溫度轉(zhuǎn)換時間,見表 8-3。 0 0R1R1R0R01 11 11 11 11 1 MSBMSB LSBLSB R1R1R0R0 測溫分辨率測溫分辨率最大溫度轉(zhuǎn)最大溫度轉(zhuǎn) 換時間換時間 0 00 09-bit9-bit93.75ms93.75ms 0 01 110-bit10-bit187.5ms187.5ms 1 10 011-bit11-bit375ms375ms 1 11 112bit12bit750ms750ms 表 8-3 存儲器。DS18B20 的存儲器由一個告訴暫存器 RAM 和一個永久性電可擦
33、除 E2PR0M 組成,后則存儲高,低溫度觸發(fā)器 TH TL 和結(jié)構(gòu)配置寄存器的內(nèi)容。 暫存器有助于確保單線通信數(shù)據(jù)的完整性。數(shù)據(jù)首先用寫暫存器命令 (4Eh)讀回進行校驗;校驗之后,再用復制暫存器;寫入的數(shù)據(jù)可以被讀, 暫存器命令(BEh)讀回進行校驗;校驗之后,再用復制暫存器命令(48h) 把數(shù)據(jù)傳送到永久性 E2PROM 中,這一過程確保了更改存儲器是數(shù)據(jù)的完整 性。 高速暫存器由 8 字節(jié)存儲器組成,如圖 8-4 所示。前兩個字節(jié)婦女別是測 量溫度數(shù)據(jù)的低字節(jié)(LSB) ,高字節(jié)(MSB) ;第 3,4 字節(jié)是 TH TL 的復制值, 第 5 字節(jié)是結(jié)構(gòu)配置寄存器的復制值,這三個字節(jié)數(shù)
34、據(jù)雖會因普通 RAM 掉電而 失去信息,但每次上電時都會 自動從永久性 E2PROM 中復制數(shù) 據(jù)進行刷新,第 6-8 字節(jié)保留 作內(nèi)部運算用,第 9 字節(jié)是前 面 8 個字節(jié)的循環(huán)冗余校驗碼 (CRC) ; 循環(huán)冗余校驗碼 CRC 產(chǎn)生。 DS18B20 內(nèi)部 64 位 ROM 最高有 效字節(jié),是循環(huán)冗余校驗碼 CRC,主機可以讀出 64 位 ROM 的前 56 位,計算出 CRC 的值, 高速暫存器高速暫存器字節(jié)字節(jié) 溫度低字節(jié)溫度低字節(jié) LBLB 0 0 溫度高字節(jié)溫度高字節(jié) HBHB 1 1 溫度觸發(fā)高字節(jié)溫度觸發(fā)高字節(jié) THTH 2 2 溫度觸發(fā)低字節(jié)溫度觸發(fā)低字節(jié) TLTL 3 3
35、 結(jié)構(gòu)配置結(jié)構(gòu)配置 CONFIGCONFIG 4 4 保留保留 5 5 保留保留 6 6 保留保留 7 7 循環(huán)冗余校驗碼(循環(huán)冗余校驗碼(CRCCRC) 8 8 第三章 芯片功能簡介 10 并把它與存儲器在 DS18B20 內(nèi)的 CRC 值進行比較,以決定 ROM 的數(shù)據(jù)是否已被 主機正確地接收,計算 CRC 的等效多項式函數(shù)為, CRC=X8+X5+X4+1 DS18B20 也利用與上述相同的多項式函數(shù)產(chǎn)生一個 8 位 CRC 值,并把此值提供 給總線主機以證實數(shù)據(jù)字節(jié)的傳送。在使用 CRC 來證實數(shù)據(jù)傳送的每一種情況 中,總線主機必須用上述多現(xiàn)實計算出 CRC 的值,并把計算機所得的值與
36、存儲 在 DS18B20 的 64 位 ROM 中的最高字節(jié) CRC 值(ROM 讀數(shù)) ,或者 DS18B20 中計算 得到 CRC 值(讀暫存器操作時讀出的第 9 字節(jié))進行比較??偩€主機根據(jù) CRC 值的比較來決定是否繼續(xù)操作。當以上 CRC 值比較不相符合,DS18B20 內(nèi)部沒有 電路來阻止命令序列的繼續(xù)執(zhí)行。寄存器的所有為被初始化為零。然后從產(chǎn)品 系列編碼的最低有效位開始,每次一位。當產(chǎn)品系列編碼的 8 位移入后,接著 移入序列號。在序列號的第 48 位進入之后,移位寄存器便包含了 CRC 值。移入 CRC 的 8 位應該使移位寄存器返回為零。 DS18B20DDS18B20D 的
37、操作命令的操作命令 DS18B20 經(jīng)單線接口協(xié)議進行存取操作的順序是: 初始化(發(fā)復位脈沖)ROM 功能命令操作存儲器功能命令操作數(shù)據(jù)處 理操作。 初始化。單線總線上的所有傳輸操作均從初始化序列開始,如圖 8-6。初始 化序列包括總線主機發(fā)出復位脈沖,接著由從屬器件送出存在脈沖。存在脈 沖使總線主機知道 DS18B20 掛在總線上并準備進行操作。 主機發(fā)送復位脈沖主機發(fā)送復位脈沖 主主 機機 接接 收收 480us480us 4801us1us 15us15us DS18B20DS18B20 采樣采樣 45us45us 15us15us DS18B20DS18B20 采樣采樣 45us45u
38、s DS18B20 在 DQ 數(shù)據(jù)線變低后 15-60us 之間采樣數(shù)據(jù)線,DQ 數(shù)據(jù)線為高電平既是 數(shù)據(jù)“1” ,DQ 數(shù)據(jù)線為低電平既是數(shù)據(jù)“0:” 。 主機發(fā)送寫“1”時際拉低數(shù)據(jù)線至少 1us,再拉高數(shù)據(jù)線,也也已在 15us 后拉 高數(shù)據(jù)線然后釋放;發(fā)送寫“0”時際拉低數(shù)據(jù)線后一直保持低電平 60us 在釋 第三章 芯片功能簡介 12 放。 讀時際。讀時際是主機使數(shù)據(jù)線從邏輯高電平大地為邏輯低電平,持續(xù)至少 1us 后釋放數(shù)據(jù)線,再接收從 DS18B20 傳來的數(shù)據(jù)位的過陳塘關,讀時際的 持續(xù)時間必須大于 60us,且兩個讀時際操作的回復時間間隔必須大于 1us, 如圖 8-8 所示
39、。 主機讀主機讀 0 0 時際時際 1us1us 主機讀主機讀 1 1 時際時際 1us1us 15us15us 主機采樣主機采樣 45us45us 15us15us 主機主機 采樣采樣 45us45us DS18B20 在讀時際數(shù)據(jù)線下降沿之后 15us 開始輸出有效數(shù)據(jù), ,此時主機必須釋 放數(shù)據(jù)線(轉(zhuǎn)為輸入狀態(tài)) 。讀時際技術后數(shù)據(jù)線由外部上拉電阻拉回至高電平。 5.1k5.1k VCCVCC GNDGND GNDGND MCS51 P1.7 100 DS18B20DS18B20 DQDQ 第三章 芯片功能簡介 13 3.3Keil uVision2 仿真軟件的使用 Keil uVisi
40、on2 的使用 Keil uVision2 是目前使用廣泛的單片機開發(fā)軟件, 它集成了源程序編輯和程序調(diào)試于一體,支持匯編、C、PL/M語言。這里我僅僅 介紹 Keil uVision2 的簡單使用, 創(chuàng)建項目實例創(chuàng)建項目實例 Vision2 包括一個項目管理器,它可以使 8x51 應用系統(tǒng)的設計變得簡單。要創(chuàng)建一個 應用,需要按下列步驟進行操作: 啟動 Vision2,新建一個項目文件并從器件庫中選擇一個器件。 新建一個源文件并把它加入到項目中。 增加并設置選擇的器件的啟動代碼 針對目標硬件設置工具選項。 編譯項目并生成可編程 PROM 的 HEX 文件。 下面將逐步地進行描述,從而指引讀者
41、創(chuàng)建一個簡單的 Vision2 項目。 1) 選擇【Project】/【New Project】選項,如圖 1-2 所示。 圖 1-2 Project 菜單 2) 在彈出的“Create New Project”對話框中選擇要保存項目文件的路徑,比如保存到 Exercise 目錄里,在“文件名”文本框中輸入項目名為 example,如圖 1-3 所示,然后單擊 “保存”按鈕。 第三章 芯片功能簡介 14 圖 1-3 Create New Project 對話框 3) 時會彈出一個對話框,要求選擇單片機的型號。讀者可以根據(jù)使用的單片機型號來 選擇,Keil C51 幾乎支持所有的 51 核的單片
42、機,這里只是以常用的 AT89C51 為例來說明, 如圖 1-4 所示。選擇 89C51 之后,右邊 Description 欄中即顯示單片機的基本說明,然后單 擊“確定”按鈕。 圖 14 選擇單片機的型號對話框 4)這時需要新建一個源程序文件。建立一個匯編或 C 文件,如果已經(jīng)有源程序文件, 可以忽略這一步。選擇【File】/【New】選項,如圖 1-5 所示。 5)在彈出的程序文本框中輸入一個簡單的程序,如圖 1-6 所示。 第三章 芯片功能簡介 15 圖 1-5 新建源程序文件對話框圖 圖 1-6 程序文本框 6) 選擇【File】/【Save】選項,或者單擊工具欄按鈕,保存文件。 在彈
43、出的如圖 1-7 所示的對話框中選擇要保存的路徑,在“文件名”文本框中輸入文件 名。注意一定要輸入擴展名,如果是 C 程序文件,擴展名為.c;如果是匯編文件,擴展名為. asm;如果 ini 文件,擴展名為. ini。這里需要存儲 ASM 源程序文件,所以輸入.asm 擴展名 (也可以保存為其他名字,比如 new.asm 等) ,單擊“保存”按鈕。 圖 1-7 “Save As”對話框圖 7) 單擊 Target1 前面的+號,展開里面的內(nèi)容 Source Group1,如圖 1-8 所示。 圖 1-8 Target 展開圖 8) 用右鍵單擊 Source Group1,在彈出的快捷菜單中選擇
44、 Add File to GroupSource Group1選項,如圖 1-9 所示。 第三章 芯片功能簡介 16 圖 19 Add Files to Group Source Group1菜單 9) 選擇剛才的文件 example.asm,文件類型選擇 Asm Source file(*.C) 。如果是 C 文 件,則選擇 C Source file;如果是目標文件,則選擇 Object file;如果是庫文件,則選擇 Library file。最后單擊“Add”按鈕,如果要添加多個文件,可以不斷添加。添加完畢后單 擊“Close”按鈕,關閉該窗口,如圖 1-10 所示 第三章 芯片功能簡
45、介 17 圖 1-10 Add Files to Group Source Group1對話框 設置 Output 選項卡(如圖 1-17 所示) 第三章 芯片功能簡介 18 圖 1-17 設置 Output 卡 Select Folder for Objects:單擊該按鈕可以選擇編譯后目標文件的存儲目錄,如果不 設置,就存儲在項目文件的目錄里。 Name of Executable:設置生成的目標文件的名字,缺省情況下和項目的名字一樣。 目標文件可以生成庫或者 obj、HEX 的格式。 Create Executable:如果要生成 OMF 以及 HEX 文件,一般選中 Debug Inf
46、ormation 和 Browse Information。選中這兩項,才有調(diào)試所需的詳細信息,比如要調(diào)試 C 語言程序, 如果不選中,調(diào)試時將無法看到高級語言寫的程序。 Create HEX File:要生成 HEX 文件,一定要選中該選項,如果編譯之后沒有生成 HEX 文件,就是因為這個選項沒有被選中。默認是不選中的。 Create Library:選中該項時將生成 lib 庫文件。根據(jù)需要決定是否要生成庫文件, 一般應用是不生成庫文件的。 After Make:欄中有以下幾個設置。 Beep when complete:編譯完成之后發(fā)出咚的聲音。 Start Debugging:馬上啟動
47、調(diào)試(軟件仿真或硬件仿真) ,根據(jù)需要來設置,一般是 不選中。 Run User Program #1,Run User Program #2:這個選項可以設置編譯完之后所要運 行的其他應用程序(比如有些用戶自己編寫了燒寫芯片的程序,編譯完便執(zhí)行該程序,將 HEX 文件寫入芯片) ,或者調(diào)用外部的仿真器程序。根據(jù)自己的需要設置。 圖 1-21 Rebuild all target files 或者單擊工具欄中的按鈕,如圖 1-22 所示,開始編譯程序。 圖 1-22 工具欄中的按鈕 如果編譯成功,開發(fā)環(huán)境下面會顯示編譯成功的信息,如圖 1-23 所示。 圖 1-23 編譯成功信息 第三章 芯片
48、功能簡介 19 14)編譯完畢之后,選擇【Debug】/【Start/Stop Debug Session】選項,即就進入仿真 環(huán)境,如圖 1-24 所示。 圖 1-24 仿真 或者單擊工具欄中的銨鈕,如圖 1-25 所示。 圖 1-25 工具欄仿真按鈕 15)裝載代碼之后,開發(fā)環(huán)境下面顯示如圖 1-26 所示的信息。 圖 1-26 裝載代碼 3.4Proteus ISIS 仿真軟件的使用 Proteus 軟件是一款強大的單片機仿真軟件,對于單片機學習和開發(fā)幫助極大。 Proteus ISIS 是英國 Labcenter 公司開發(fā)的電路分析與實物仿真軟件。它運行于 Windows 操作系統(tǒng)上,
49、可以仿真、分析(SPICE)各種模擬器件和數(shù)字集成電路,包括單片機。在國內(nèi) 由廣州的風標電子技術有限公司代理。 在單片機課程中我們主要利用它實現(xiàn)下列功能: 1、繪制硬件原理圖,并設置元件參數(shù)。 2、仿真單片機及其程序以及外部接口電路,驗證設計的可行性與合理性,為實際的硬 件實驗做好準備。 3、如有必要可以利用它來設計電路板。 第三章 芯片功能簡介 20 總之,該軟件是一款集單片機和 SPICE 分析于一身的仿真軟件,可以實現(xiàn)從構(gòu)想到實 際項目完成全部功能。 雙擊桌面上的 ISIS 7 Professional 圖標或者單擊屏幕左下方的“開始”“程序” “Proteus 7 Profession
50、al” “ISIS 7 Professional” ,出現(xiàn)如圖 2-1 所示屏幕,表明進入 Proteus ISIS 集成環(huán)境。 圖 2-1 Proteus ISIS 集成環(huán)境 圖中已經(jīng)標注各個部分的作用,我們現(xiàn)在就使用軟件提供的功能進行工作。 第三章 芯片功能簡介 21 圖 2-2 ISIS 主窗口 端子模式 引腳模式 圖形模式 錄音機模式 信號源模式 電壓探測模式 電流探測模式 虛擬儀器模式 選擇模式 元件模式 連接點模式 線標號模式 文本描述模式 總線模式 子電路模式 圖 1-6 元件選擇區(qū) 順時針旋轉(zhuǎn) 逆時針旋轉(zhuǎn) 旋轉(zhuǎn)度數(shù) 水平鏡像 垂直鏡像 第三章 芯片功能簡介 22 調(diào)入元件 在新
51、設計窗口中,點擊對象選擇器上方的按鈕 P(如圖 2-5 所示) ,即可進入元件拾取 對話框,如圖 2-6 所示。 圖 2-5 調(diào)入元件 3-1 放置元件 在對象選擇器中的元件列表中,單擊所用元件,再在設計窗口單擊,出現(xiàn)所用元件的 輪廓,并隨鼠標移動,找到合適位置,單擊,元件被放到當前位置。至此,一個元件放置 好了。繼續(xù)放置要用的其他元件。 第三章 芯片功能簡介 23 3-4 連線 就是把元件的引腳按照需要用導線連接起來。方法是,在開始連線的元件引腳處點擊左鍵 (光標接近引腳端點附近會出現(xiàn)紅色小方框,這時就可以了) ,移動光標到另一個元件引腳 的端點,單擊即可。移動過程中會有一根線跟隨光標延長,
52、直到單擊才停住 電阻電容等元件的參數(shù)可以根據(jù)需要修改。比如限流電阻的阻值應該在 200 到 500 歐姆左 右,上拉電阻應該在幾千歐姆 3-6 添加電源和地 在左邊工具欄點擊終端圖標,即可出現(xiàn)可用的終端,圖 2-11-a 所示。在對象選擇器 中的對象列表中,單擊 POWER,圖 2-11-b 所示,在預覽窗口出現(xiàn)電源符號,在需要放置電 源的地方單擊,即可放置電源符號,如圖 2-11-c 所示。放置之后,就可以連線了。 放置接地符號(地線)的方法與放置電源類似,在對象選擇列表中單擊 GROUND , 然后在需要接地符號的地方單擊,就可以了。 注意注意:放置電源和地之后,如果又需要放置元件,應該先
53、點擊左邊工具欄元件圖標, 就會在對象列表中出現(xiàn)我們從元件庫中調(diào)出來的元件。 圖 2-11-a 選擇端口 圖 2-11-啊選擇電源符號 圖 2-11-不 放置電源符號圖 添加程序添加程序 單片機應用系統(tǒng)的原理圖設計完成之后,還要設計和添加程序,否則無法仿真運行。 實際的單片機也是這樣。編譯源程序我們使用的是Keil uVision2 仿真軟件進行調(diào)試。 只要編譯產(chǎn)生的機器碼文件是.HEX 格式就可以。 方法如下:在原理圖中點擊單片機以選中,再次點擊打開元件編輯對話框, 如圖 2-19 所示。 圖 2-19 編輯單片機添加機器碼程序 在圖中看到: 在 Program File:后邊的方框里顯示 P
54、1P2.HEX,說明機器碼已經(jīng)裝入。 如果沒有裝入,這里將是空白。這時可以點擊其右邊的打開文件圖標,查找并選中機器 碼文件即可。這樣,就可以在仿真時執(zhí)行程序。 這樣裝入的機器碼程序有個缺點,只能執(zhí)行,不好調(diào)試。因為沒有源代碼,也無法打 開源代碼窗口,無法單步執(zhí)行。解決的方法是,在其他編輯編譯軟件通過之后,再將源程 序添加到項目,如 4-2 節(jié)所述。然后再用本節(jié)開始 5-1 所述方法添加源程序并編譯一次,這 時不會出現(xiàn)錯誤。一般也不用再給單片機添加機器碼程序,除非你途中改換了源程序。 第三章 芯片功能簡介 24 在圖 2-19 中還有一個時鐘頻率(Clock Frequency)可以改變。一般情
55、況下,單片機的 時鐘頻率由此設定,而不是來自時鐘電路,這就是為什么在仿真時可以省略時鐘電路和復 位電路的原因。 6、仿真執(zhí)行 Program 軟件可以仿真模擬電路和數(shù)字電路,還可以仿真若干型號的單片機。我們使用 的目的主要就是仿真單片機和外圍的接口電路。這里簡要介紹 MCS-51 單片機和部分接口 電路的仿真過程,其他方面的內(nèi)容請自行查找資料。 6-1 一般仿真 在原理圖編輯窗口下面有一排按鈕,利用它可以控制仿真的過 程。點擊按鈕開始仿真,開始以后按鈕的小三角變成綠色,點擊按鈕單步仿真, 點擊按鈕暫停和繼續(xù)仿真切換,點擊按鈕停止仿真。 第四章 系統(tǒng)硬件電路的設計 25 第四章第四章. .系統(tǒng)硬
56、件電路的設計系統(tǒng)硬件電路的設計 4.1 主控制電路和測溫控制電路原理圖主控制電路和測溫控制電路原理圖 主控制電路由 AT89C51 及外圍元件構(gòu)成,測溫電路由 DS18B20、預置數(shù) 電路和報警電路組成。AT89C51 是此硬件電路設計的核心,通過 AT89C51 的管 腳 P3.7 與 DS18B20 相連,控制溫度的讀出和顯示。預置數(shù)電路由兩個按鍵和兩 個數(shù)碼管組成,兩個按鍵分別與 AT89C51 的管腳 P3.2 和 P3.6 相連。報警電路 很簡單,只有一個發(fā)光二極管,與 AT89C51 的 P3.0 管腳相連,若實際測量的溫 度值大于預置溫度值,則發(fā)光二極管亮,即為報警標志。硬件電路
57、的功能都是 與軟件編程相結(jié)合而實現(xiàn)的。具體電路原理圖如下圖 3-1 所示。 圖3-1主控制電路和測溫控制電路原理圖 4.3 顯示模塊原理圖顯示模塊原理圖 采用動態(tài)顯示方案,設計中使用八個共陰極數(shù)碼管作為顯示載體,通過八 路并口傳輸,共使用了十六個I/O口。顯示時采用循環(huán)移位法,即八位數(shù)碼管依 次循環(huán)點亮,利用人眼睛的視覺暫留效果達到連續(xù)顯示,主程序每運行一遍便 調(diào)用一次顯示子程序,將數(shù)據(jù)顯示出來。 顯示電路由八位共陰極的數(shù)碼管組成,通過網(wǎng)絡標號 A、B、C、D、E、F、G、DP等與AT89C51的P0口相連,由八個350歐的電阻驅(qū) 動,實現(xiàn)段控制功能。通過網(wǎng)絡標號C0-C7與驅(qū)動芯片ULN28
58、03A相連,以此為 橋梁與AT89C51相連,實現(xiàn)位控制功能。 第五章 軟件編程調(diào)試及性能分析 26 第五章第五章. .軟件編程調(diào)試及性能分析軟件編程調(diào)試及性能分析 5.1 主程序流程圖主程序流程圖 圖 4-1 主程序流程圖 5.2 主程序主程序 ORG 0000H LJMP START START: MOV DISBUF4,#00H ;開始,初始化 MOV DISBUF5, #00H MAIN: ;主程序 LCAAL KEY ;調(diào)按鍵預置數(shù)子程序 開始 調(diào)復位子程序 發(fā) SKIP ROM 命令 CCH 調(diào) WRITE DS18B20 子程序 發(fā)出溫度轉(zhuǎn)換命令 調(diào) WRITE DS18B20
59、子程序 調(diào)復位子程序 調(diào) READ DS18B20 子程序 調(diào) WRITE DS18B20 子程序 發(fā)命令 BEH 讀暫存器內(nèi)容 調(diào) WRITE DS18B20 子程序發(fā) SKIP ROM 命令 CCH 對讀出的溫度值進行轉(zhuǎn)換 轉(zhuǎn)換后的數(shù)存于緩沖區(qū) 調(diào)用比較報警子程序 調(diào)顯示子程序調(diào)按鍵子程序 第五章 軟件編程調(diào)試及性能分析 27 CLR RS1 CLR RS0 LCALL RESET ;調(diào)復位子程序 MOV A,#0CCH ;跳過 ROM 匹配-0CCH LCALL WRITE ;調(diào) DS18B20 寫子程序 MOV A,#44H ;發(fā)出溫度轉(zhuǎn)換命令 LCALL WRITE ;調(diào) DS18B
60、20 寫子程序 LCALL RESET ;調(diào)復位子程序 MOV A,#0CCH ;跳過 ROM 匹配 LCALL WRITE ;調(diào) DS18B20 寫子程序 MOV A,#0BEH ;發(fā)出讀取溫度值命令 LCALL WRITE ;調(diào) DS18B20 寫子程序 LCALL READ ;調(diào) DS18B20 讀子程序 MOV A, 3DH MOV 29H,A LCALL READ MOV A, 3DH MOV 28H, A MOV R0, #34H MOV A, 28H RLC A MOV 47H, C JNB 47H, BTOD1 ;28H 中的最高位是否為 1(溫度0) ;小于 0 的溫度值不處
61、理,大于 0 順序執(zhí)行 BTOD1: MOV A, 28H RRC A MOV 40H, C RRC A MOV 41H, C RRC A MOV 42H, C RRC A MOV 43H, C MOV A, 29H MOV 27H, A MOV C,40H ;將 28H 中的最低位移入 C,40H41H42H ;43H 為 28H 中的位地址 RRC A ;將 28H 中的低 4 位移到 A 的高 4 位 第五章 軟件編程調(diào)試及性能分析 28 MOV C, 41H RRC A MOV C, 42H RRC A MOV C, 43H RRC A MOV 29H,A ;將 28H 中的低 4 位
62、放入 29H 中 MOV A, 29H ;將 29H 中的十六進制數(shù)轉(zhuǎn)換成 10 進制 MOV B, #100 DIV AB MOV R0, A ;百位存于 34H MOV R0, #11H ;百位不顯示 DEC R0 MOV A, #10 XCH A, B DIV AB MOV R0, A ;十位存于 33H DEC R0 MOV R0, B ;個位存于 32H DEC R0 ANL 27H, #0FH ;小數(shù)點后一位進制轉(zhuǎn)換 MOV A, 27H MOV B, #06H MUL AB MOV B, #10 DIV AB MOV R0, A ;小數(shù)點后一位存于 31H MOV DISBUF0
63、,33H ;十位 MOV DISBUF1,32H ;個位 MOV DISBUF2,31H ;小數(shù)位 MOV DISBUF3, #0H ;置 0 MOV DISBUF6, #0H MOV DISBUF7, #0H LCALL CMP ;調(diào)比較報警子程序 LCALL DISPLAY ;調(diào)用顯示子程序 LJMP MAIN ;轉(zhuǎn)到 MAIN 5.3 溫度子程序溫度子程序 由于 DS18B20 單線通信功能是分時完成的,它有嚴格的時隙概念,因此讀 寫時序很重要。系統(tǒng)對 DS18B20 的各種操作都是按時序進行的。DS18B20 的一 線工作協(xié)議流程是:初始化ROM 操作指令存儲器操作指令數(shù)據(jù)傳輸。 第五
64、章 軟件編程調(diào)試及性能分析 29 1. DS18B20 復位子程序 DS18B20 復位時序圖參看后面芯片功能部分有詳細的介紹。在這一部分只 給出程序流程圖,然后給出根據(jù)流程圖所編寫的 DS18B20 復位子程序。 Y 開始 拉低數(shù)據(jù)線 P3.7=0 發(fā) 600us 復位脈沖 P3.7 送給 CY 延時 500us DS18B20 等待 60us 主機釋放數(shù)據(jù)線 P3.7=1 DS18B20 的 P3.7=1? 延時 1us 以上 返回 DS18B20 的 P3.7=1? Y N 延時 240us Y N 圖 4-2 DS18B20 復位子程序流程圖 第五章 軟件編程調(diào)試及性能分析 30 1. 程序如下: RESET: NOP L0: CLR P3.7 ;拉低數(shù)據(jù)線 MOV R2,#200 ;發(fā)出 600us 的復位脈沖 L1: NOP DJNZ R2, L1 SETB P3.7 ;主機釋放數(shù)據(jù)線 MOV R2,#30 ;DS18B20 等待 60us L4: DJNZ R2, L4 CLR C ORL C,P3.7 ;DS18B20 數(shù)據(jù)變低(存在脈沖)嗎? JC L3 ;DS1
- 溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。