基于RX485的溫度采集與顯示(終稿_第1頁
基于RX485的溫度采集與顯示(終稿_第2頁
基于RX485的溫度采集與顯示(終稿_第3頁
基于RX485的溫度采集與顯示(終稿_第4頁
基于RX485的溫度采集與顯示(終稿_第5頁
已閱讀5頁,還剩47頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、畢 業 設 計 論 文 基于RS485的多機溫度采集與顯示 陳 紅 香 指導老師姓名: 晏 文 靖 專 業 名 稱:電子信息工程技術 班 級 學 號: 論文提交日期: 2010年01月07日 論文答辯日期: 2010年01月13日 2010年 01月 13 日【摘要】溫度是工業控制中主要的被控參數之一,特別是在冶金、化工、建材、食品、機械、石油等工業中,具有舉足重輕的作用。隨著電子技術和微型計算機的迅速發展,微機測量和控制技術得到了迅速的發展和廣泛的應用。單片機具有處理能強、運行速度快、功耗低等優點,應用在溫度測量與控制方面,控制簡單方便,測量范圍廣,精度較高。多機溫度監測系統可實現對多點溫度

2、的測量,并能根據設定值對環境溫度進行調節,實現控溫的目的。本設計基于DS18B20傳感器的溫度測量和AT89S52單片機的控制裝置,通過MAX485通信模塊將溫度數據傳回計算機控制端,從而實現對環境溫度進行監測。 本設計就是利用一臺PC機與兩塊單片機所組成的主從式溫度監測系統。在本系統中上位機以PC和Windows操作系統為軟硬件資源,下位機采用ATMEL公司的AT89S52,總線采用的是測控系統常用的RS-485。【關鍵詞】AT89S52 PC機與單片機通信 MAX485 【Abstract】Temperature is the main accused in the industrial

3、control one of the parameters, especially in the metallurgical, chemical, building materials, food, machinery, oil industry, has held the role of heavy-light foot. As electronic technology and the rapid development of micro-computer, computer measurement and control technology has been rapid develop

4、ment and wide application. SCM has a deal can be strong, fast, low power consumption advantages, applications in temperature measurement and control, control is simple and convenient, measuring a wide range of high precision.Multi-machine temperature monitoring system can realize the multi-point tem

5、perature measurements, and according to set value to adjust to the ambient temperature to achieve temperature control purposes. The design is based on DS18B20 sensor temperature measurement and control unit MCU AT89S52, through the MAX485 communication module the temperature data back to computer-co

6、ntrolled side, thus bringing about the ambient temperature monitoring.This design is the use of a PC, and composed of two master-slave microcontroller temperature monitoring system. In this system, host computer and the Windows operating system to PC hardware and software resources, the next-bit mac

7、hine using ATMEL Corporation AT89S52, the bus uses a control system commonly used in RS-485.【KeyWords】 AT89S52 PC and Single-chip communication MAX485 目 錄緒 論1第1章 系統設計原理及要求21.1 設計思路21.2 總體設計思路框圖21.3 各部分組件說明2第2章 AT89S52單片機的原理與結構32.1 AT89SXX系列單片機的內部結構42.2 AT89S52單片機的引腳功能42.2.1 I/O端口線輸入輸出引腳42.2.2 控制線控制引

8、腳42.2.3 外接晶體線52.3 AT89S52存儲器組織52.4 AT89S52程序存儲器52.5 AT89S52的復位方式62.6 AT89S52的時鐘電路6第3章 串口通信的基本原理73.1 串口通信的有關概念73.2 RS-232有關的串行通信概念73.3 與串行口有關的SFR73.3.1 串行通信控制寄存器SCON73.3.2 電源控制器PCON83.4串行口的工作方式83.5串行口的初始化103.5.1 串行口波特率103.5.2 初始化步驟10第4章 DS18B20溫度傳感器114.1 DS18B20的簡介114.2 DS18B20的特點114.3 DS18B20的封裝結構11

9、4.4 DS18B20的測溫原理124.5 DS18B20與單片機的典型接口電路124.6 DS18B20的軟件設計13第5章 定時/計數器與中斷的原理及應用145.1 定時器/計數器有關的概念145.1.1 與T/C有關的特殊功能寄存器145.1.2 定時器/計數器的工作方式155.1.3 定時器/計數器的初始化165.2 中斷有關的概念165.2.1 中斷源165.2.2中斷的控制175.2.3中斷響應18第6章 硬件電路其他元器件簡介196.1 單片機的最小系統196.2 數碼管的顯示電路196.3 MAX485串口通信電路206.3.1 MAX485芯片簡介206.3.2 通信方式21

10、6.3.3 與PC機通信方式22第7章 系統軟件的設計與實現方法237.1 軟件的使用237.1.1 AT89S52的編程器的使用237.1.2串口調試助手V2.2的使用方法237.2 程序設計框圖237.2.1 DS18B20溫度采集設計237.2.2 PC機與單片機的通信程序設計24第8章 調試278.1 調試環境278.1.1 硬件調試278.1.2 軟件調試278.2 調試過程278.2.1 硬件278.2.2 軟件278.3 硬件調試過程的問題及解決辦法278.4 軟件調試過程的問題及解決辦法288.5 本次設計結果28結 論29致 謝30參考文獻31附 錄32附錄A 硬件電路實物圖

11、32附錄B VB6.0效果圖33緒 論基于RS485的多機溫度采集與顯示是通過DS18B20檢測溫度,然后通過MAX485通信模塊,將檢測到的溫度發射到電腦端的接收端,從而在電腦上(VB界面)顯示檢測到的溫度。系統中使用到的主要材料有:MAX485通信模塊,多功能開發板,溫度傳感器(DS18B20),RS232-RS485接口.在實際檢測時,主要通過溫度傳感器(DS 18B20)的溫度檢測功能,以及MAX485通信模塊的多機串行通信功能,去實現多組溫度在電腦端的顯示。電腦端主要通過VB程序(Visual Basic),得以將開發板上的溫度檢測系統(DS 18B20)所測得的溫度在電腦端顯示。通

12、信模塊采用了MAX485總線通信模塊,這種模式由于具有結構簡單、價格低廉、通信距離和數據傳輸速率適當等特點而被廣泛應用于儀器儀表、智能化傳感器集散控制、樓宇控制、監控報警等領域。RS-485是一個多引出線接口,這個接口可以有多個驅動器和接收器,可以實現一臺PC和多臺單片機之間的串行通信;而且RS-485的最長的傳輸距離為1200m,適合中距離的傳輸。多功能開發板通過下載溫度檢測程序(由AT89S52接收程序),與溫度檢測模塊(DS 18B20)連接,再連接MAX485通信模塊,再通過RS232-RS485轉接口與PC機連接即可實現PC與多單片機的多機通信。第1章 系統設計原理及要求1.1 設計

13、思路有兩個智能開發板每個開發板上安裝DS18B20溫度傳感器并顯示當前檢測溫度值,板上的MAX485和RS232與485轉換接口與PC機連接。在PC微機上用VB建立一界面顯示兩個智能板上所測的溫度。1.2 總體設計思路框圖圖1-2 基于RS485的多機溫度采集與顯示總體設計框圖1.3 各部分組件說明DS18B20是“一線總線”數字化溫度傳感器,測量溫度范圍為-55+125,在-10+85,精度范圍為0.5。51系列單片機采用AT89S52單片機。通信模塊采用了MAX485總線通信模塊,這種模式由于具有結構簡單、價格低廉、通信距離和數據傳輸速率適當等特點而被廣泛應用于儀器儀表、智能化傳感器集散控

14、制、樓宇控制、監控報警等領域。RS-485是一個多引出線接口,這個接口可以有多個驅動器和接收器,可以實現一臺PC和多臺單片機之間的串行通信;而且RS-485的最長的傳輸距離為1200m,適合中距離的傳輸。在計算機接收端,編輯一個VB程序,用于接收數據和顯示溫度。第2章 AT89S52單片機的原理與結構2.1 AT89SXX系列單片機的內部結構ATMEL89系列(以下簡稱AT89)單片機是美國ATMEL公司生產的8位高性能單片機,其主要技術優勢是內部含有可編程Flash存儲器,用戶可以很方便地進行程序的擦寫操作,在嵌入式控制領域中被廣泛的應用。內部結構如圖2-1所示圖2-1 MCS-51系列單片

15、機的內部結構圖下面對各功能部件作進一步的說明:數據存儲器(RAM):片內為128個字節(單元),AT89S52單片機內部有256個字節的RAM數據存儲器,片內最多可外擴64K字節。程序存儲器(ROMEPROM):803l無此部件,8051為4KROM;8751則為4KEPROM。AT89S51單片機內部有4KB的閃存程序存儲器(Flash),當不夠使用時,可擴展為64 KB外部程序存儲器。它們的邏輯空間是分開的,并有各自的尋址機構和尋址方式。這種結構的單片機稱為哈佛型結構單片機。中斷系統:具有5個中斷源,2級中斷優先權。定時器/計數器:2個16位的定時器計數器,具有四種工作方式。串行口;一個全

16、雙工的串行口,具有四種工作方式。Pl口、P2口、P3口、P0口:為4個并行8位IO口。特殊功能寄存器(SFR):共有21個,用于對片內各功能模塊進行管理、控制、監視。實際上是一些控制寄存器和狀態寄存器,是一個特殊功能的RAM區。微處理器(CPU):為8位的CPU,且內含一個1位CPU(位處理器),不僅可處理字節數據,還可以進行位變量的處理。8位機在數據采集,運算處理有明顯的長處。ATMEL52子系列功能增強的具體如下四個方面。(1) 片內ROM從4 KB增加到8 KB。(2) 片內RAM從128 B增加到256 B。(3) 定時/計數器從2個增加到3個。(4) 中斷源從5個增加到6個。 2.2

17、 AT89S52單片機的引腳功能圖2-2 AT89S52單片機的引腳圖2.2.1 I/O端口線輸入輸出引腳P0.0P0.7(3932):P0口是一個漏極開路型準雙向IO口。在訪問外部存儲器時,它是分時多路轉換的地址(低8位)和數據總線,在訪問期間激活了內部的上拉電阻。在EPROM編程時,它接收指令字節,而在驗證程序時,則輸出指令字節。驗證時,要求外接上拉電阻。P1.0P1.7(1-8):P1口是帶內部上拉電阻的8位雙向IO口。在EPROM編程和程序驗證時,它接收低8位地址。P2.0P2.7(21-28):P2口是一個帶內部上拉電阻的8位雙向IO口。在訪問外部存儲器時,它送出高8位地址。在對EF

18、ROM編程和程序驗證期間,它接收高8位地址。P3.0P3.7(10-17):P3口是一個帶內部上拉電阻的8位雙向IO口。在MCS5l中,這8個引腳還兼有專用功能,P3的8條口線都定義有第二功能,詳見表2-2-1:表2-2-1:P3口各引腳與第二功能2.2.2 控制線控制引腳ALE(30腳)地址鎖存控制信號。在系統擴展時,ALE用于控制P0口輸出的低8位地址鎖存起來,以實現低位地址和數據的隔離。此外,由于ALE是以晶振1/6的固定頻率輸出的正脈沖,因此,可作為外部時鐘或外部定時脈沖使用。PSEN(29腳)外部程序存儲器讀選通信號。在讀外部ROM時,有效(低電平),以實現外部ROM單元的讀操作。E

19、A/Vpp(31腳)訪問程序存儲控制信號。當信號為低電平時,對ROM的讀操作限定在外部程序存儲器;當信號為高電平時,對ROM的讀操作是從內部程序存儲器開始,并可延至外部程序存儲器。RSTVpp (9腳) 復位信號。當輸入的復位信號延續兩個機器周期以上的高電平時即為有效,用以完成單片機的復位初始化操作。2.2.3 外接晶體線XTAL1(19腳)和XTAL2(18腳)外接晶體引線端。當使用芯片內部時鐘時,此二引線端用于外接石英晶體和微調電容;當使用外部時鐘時,用于接外部時鐘脈沖信號。主電源引腳高VCC和低VSSVCC(40腳)+5V電源。VSS(20腳)地線(GND)。 2.3 AT89S52存儲

20、器組織ATMEL89S52單片機在物理上有四個存儲空間:片內程序存儲器和片外程序存儲器、片內數據存儲器和片外數據存儲器。ATMEL89S52片內有256字節數據存儲器RAM和4KB的程序存儲器ROM。除此以外,還可以在片外擴展RAM和ROM,并且各有64KB的尋址范圍。也就是最多可以在外部擴展264KB存儲器。ATMEL89S52的存儲器組織結構如圖2-3所示:圖2-3-1 ATMEL89S52存儲器組織結構2.4 AT89S52程序存儲器ATMEL89S52最多可外擴64K字節程序存儲器,64K程序存儲器中有5個單元具有特殊用途。5個特殊單元分別對應于5種中斷源的中斷服務程序的人口地址,見表

21、2-4:表2-4 各種中斷的子程序入口地址通常在這些人口地址處都放一條約對跳轉指令。加跳轉指令的目的是,由于兩個中斷入口間隔僅有八個單元,存放中斷服務程序往往是不夠用的。2.5 AT89S52的復位方式單片機的復位方式有上電自動復位和手工復位兩種,其中C22uF,R200,Rk1k。RST引腳是復位信號的輸入瑞。復位信號是高電平有效。圖2-5 上電復位電路2.6 AT89S52的時鐘電路單片機的晶振電路也叫時鐘電路,是單片機時序的基礎。單片機內部有振蕩器,可以產生時鐘。時鐘可以由兩種方式產生:內部方式和外部方式。外部方式:可以通過XTAL1和XTAL2接入外部時鐘。內部方式:在XTAL1和XT

22、AL2端外接入石英晶體作定時元件,內部振蕩器自激振蕩,產生時鐘。時鐘發生器對振蕩脈沖進行二分頻,因此,時鐘是一個雙相信號,由P1相和P2相構成。FOSC可在2MHZ-12MHZ選擇。小電容可以取30PF左右。圖2-6內部方式時鐘電路其中電容為30PF,這種無極性電容是使單片機易起振并保持串口通信,準確計算出波特率。一般情況晶振選用12MHZ,但串行通信時,使用11.0592MHZ。第3章 串口通信的基本原理 3.1 串口通信的有關概念1、RS-232是串行數據接口標準,最初都是美國EIA(電子工業聯合會)制訂并發布的,1969年公布的通信協議,適合的數傳率為020bps。2、傳輸率:所謂傳輸率

23、就是指每秒傳輸多少位,傳輸率也常叫波特率。國際上規定了一個標準波特率系列,標準波特率也是最常用的波特率,標準波特率系列為110、300、600、1200、4800、9600和19200。在通信為保證通信正確,必須通信雙方必須同一波特率。3、RS-232-C標準:RS-232-C標準對邏輯電平的各種信號線的功能作了規定,即信號電平標準和控制信號線的定義。RS-232C采用負邏輯規定邏輯電平,信號電平與通常的TTL電平不兼容,邏輯“1”=-3V-15V邏輯“0”=+3V+與TTL電平不一樣可用TTL/EIA轉換器進行轉換。4、RS232接口芯片實現了TTL標準和RS-232-C標準之間的電平轉換。

24、5、AT89S52單片機片上有通用異步接收發送(UART)用于串行通信,發送時數據由TXD端送出,接收時數據由RXD端輸入。有兩個緩沖器SBUF,一個作發送緩沖器,另一個作接收緩沖器。它是可編程的全雙工的串行口。短距離的機間通信可使用UART的TTL電平,使用驅動芯片(MAX232或14881489)可接成RS232C和通用微機進行通信。波特率時鐘必須從內部定時器1或定時器2獲得。若應用要求RS232完全的握手功能,必須借助單片機其它管腳用軟件處理。3.2 RS-232有關的串行通信概念RS232是個人計算機上的通訊接口之一,由電子工業協會(Electronic Industries Asso

25、ciation,EIA) 所制定的異步傳輸標準接口。通常 RS-232 接口以9個接腳 (DB-9) 或是25個接腳 (DB-25) 的型態出現,一般個人計算機上會有兩組 RS-232 接口,分別稱為 COM1 和 COM2。3.3 與串行口有關的SFR3.3.1 串行通信控制寄存器SCONSCON是串行口控制和狀態寄存器,其格式如下:SM0、SM1:串行口工作方式控制位,具體工作方式見表3-3-1所示:表3-3-1 串行口工作方式控制SMO SM1工作方式說 明波特串0 0方式0同步移位寄存器fosc120 1方式110位異步收發由定時器控制1 0方式211位異步收發fosc32或fosc6

26、41 1方式311位異步收發由定時器控制SM2:多機通信控制位(方式2,3)。1一只有接收到第9位(RB8)為1,RI才置位。 0-收到字符N就置位。REN:串行口接收允許位。1一允許串行口接收。 0一禁止串行口接收。TB8:方式2和方式3時,為發送的第9位數據,也可以作奇偶校驗位。RB8:方式2和方式3時,為接收到的第9位數據;方式1時,為接收到的停止位。TI:發送中斷標志。由硬件置位,必須由軟件清0。RI:接收中斷標志。由硬件置位,必須由軟件清0。3.3.2 電源控制器PCONPCON的第7位SMOD是與串行口的波特率設置有關的選擇位。SMOD:串行口波特率加倍位。1方式1,3波特率定時器

27、1溢出率16;方式2波特率為fosc32; 0方式1,3波特率定時器1溢出率32;方式2波特率為fosc64。GF0、GF1:兩個通用標志位。PD、IDL:CHMOS器件的低功耗控制位。3.4串行口的工作方式1方式0方式0為移位寄存器輸入輸出方式。串行數據通過RXD輸入輸出,TXD則用于輸出移位時鐘脈沖。方式0時,收發的數據為8位,低位在前。波特率固定為fosc12,其中fosc為單片機外接晶振頻率。發送是以寫SBUF寄存器的指令開始的,8位輸出結束時TI被置位。方式0接收是在REN1和RI0同時滿足時開始的。接收的數據裝入SBUF中,結束時RI被置位。 2方式1方式1是10位異步通信方式,1

28、位起始位(0),8位數據位和1位停止位(1)。其中的起始位和停止位在發送時是自動插入的。任何一條以SBUF為目的寄存器的指令都啟動一次發送,發送的條件是TI=0,發送完置位TI。方式1接收的前提條件是SCON中的REN為1,同時以下兩個條件都滿足,本次接收有效,將其裝入SBUF和RB8位。否則放棄接收結果。兩個條件是:(1)RI=0; (2)SM2=0或接收到的停止位為1。方式1的波特率是可變的,波特率可由以下計算公式計算得到:方式1波特率2SMOD(定時器1的溢出率)32其中的SMOD為PCON的最高位。定時器1的方式0,1,2,都可以使用,其溢出率為定時時間的倒數值。3方式2和方式3這兩種

29、方式都是11位異步接收發送方式,它們的操作過程完全一樣,所不同的是波特率:方式2波特率2SMOD(fosc/64)方式3波特率同方式1(定時器1作波特率發生器)。方式2和方式3的發送起始于任何一條“寫SBUF”指令。當第9位數據(TB8)輸出之后,置位TI。方式2和方式3的前提條件也是REN為1。在第9位數據接收到后,如果下列條件同時滿足:(1)RI0;(2)SM20或接收到的第9位為1,則將已接收的數據裝入SBUF和RB8,并置位RI;如果條件不滿足,則接收無效。ATMEL89S52串行口的不同尋常的特征是包括第九位方式。這允許在串行口通信增加的第九位用于標志特殊字節的接收。對簡單網絡,第九

30、位方案允許接收單片機僅當字節具有一個第九位時才能被中斷。用這種方法,發送器可以廣播一個字節讓第九位為高作為“每個人請注意”字節。字節可以為節點地址,地址相同的節點可以打開接收接下來的字符。所接續字節(第九位為低)不能引起其它單片機中斷,因為未送它們的地址。用這種方式。一個單片機可以和大量的其它單片機對話而不打擾不尋址的單片機。這種系統必須工作在嚴格的主從方式,由軟件進行取舍安排。3.5串行口的初始化3.5.1 串行口波特率通常情況下,使用單片機的串行口時,選用的晶振比較固定6MHz,12MHz,110592MHz。常用于和微機的通信;選用的波特率也相對固定。串行口常用的波特率及相應的設置見表3

31、-5-1所示:表3-5-1 串行口波特率表3.5.2 初始化步驟在使用串行口之前,應對它進行編程初始化,主要是設置產生波特率的定時器1、串行口控制和中斷控制。具體步驟如下:確定定時器1的工作方式編程TMOD寄存器; 計算定時器1的初值裝載TH1、TL1;啟動定時器1編程TCON中的TR1位;確定串行口的控制編程SCON; 串行口在中斷方式工作時,須開CPU和源中斷編程IE寄存器。第4章 DS18B20溫度傳感器4.1 DS18B20的簡介DS18B20是美國DALLAS半導體公司繼DS1820之后最新推出的一種改進型智能溫度傳感器。與傳統的熱敏電阻相比,他能夠直接讀出被測溫度并且可根據實際要求

32、通過簡單的編程實現912位的數字值讀數方式。可以分別在93.75 ms和750 ms內完成9位和12位的數字量,并且從DS18B20讀出的信息或寫入DS18B20的信息僅需要一根口線(單線接口)讀寫,溫度變換功率來源于數據總線,總線本身也可以向所掛接的DS18B20供電,而無需額外電源。因而使用DS18B20可使系統結構更趨簡單,可靠性更高。4.2 DS18B20的特點(1)獨特的單線接口方式:DS18B20與微處理器連接時僅需要一條口線即可實現微處理器與DS18B20的雙向通訊。 (2)在使用中不需要任何外圍元件。 (3)可用數據線供電,電壓范圍:+3.0 +5.5 V。 (4)測溫范圍:-

33、55 +125 。固有測溫分辨率為0.5 。 (5)通過編程可實現912位的數字讀數方式。 (6)用戶可自設定非易失性的報警上下限值。 (7)支持多點組網功能,多個DS18B20可并聯在惟一的三線上,實現多點測溫。 (8)負壓特性,電源極性接反時,溫度計不會因發熱而燒毀,但不能正常工作。4.3 DS18B20的封裝結構圖4-3 DS18B20的封裝結構圖DS18B20引腳功能:GND 電壓地 DQ 單數據總線 VDD 電源電壓 NC 空引腳4.4 DS18B20的測溫原理DS18B20的測溫原理如圖4-4所示,圖中低溫度系數晶振的振蕩頻率受溫度的影響很小1,用于產生固定頻率的脈沖信號送給減法計

34、數器1,高溫度系數晶振隨溫度變化其震蕩頻率明顯改變,所產生的信號作為減法計數器2的脈沖輸入,圖中還隱含著計數門,當計數門打開時,DS18B20就對低溫度系數振蕩器產生的時鐘脈沖后進行計數,進而完成溫度測量。計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,首先將-55 所對應的基數分別置入減法計數器1和溫度寄存器中,減法計數器1和溫度寄存器被預置在 -55 所對應的一個基數值。減法計數器1對低溫度系數晶振產生的脈沖信號進行減法計數,當減法計數器1的預置值減到0時溫度寄存器的值將加1,減法計數器1的預置將重新被裝入,減法計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環直到減法

35、計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數值即為所測溫度。圖4-4中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正減法計數器的預置值,只要計數門仍未關閉就重復上述過程,直至溫度寄存器值達到被測溫度值,這就是DS18B20的測溫原理。 圖4-4 DS18B20的測溫原理圖4.5 DS18B20與單片機的典型接口電路圖4-5 DS18B20與CPU的接口電路上圖采用寄生電源供電方式, P1.0口接單線總線為保證在有效的DS18B20時鐘周期內提供足夠的電流,可用一個MOSFET管和89C51的P1.0來完成對總線的上拉。當DS18B20處于寫存儲器操作和溫度A/

36、D變換操作時,總線上必須有強的上拉,上拉開啟時間最大為10 s。采用寄生電源供電方式是VDD和GND端均接地。由于單線制只有一根線,因此發送接收口必須是三態的。主機控制DS18B20完成溫度轉換必須經過3個步驟:初始化、ROM操作指令、存儲器操作指令。假設單片機系統所用的晶振頻率為12 MHz,根據DS18B20的初始化時序、寫時序和讀時序,分別編寫3個子程序:INIT為初始化子程序,WRITE為寫(命令或數據)子程序,READ為讀數據子程序,所有的數據讀寫均由最低位開始,實際在實驗中不用這種方式,只要在數據線上加一個上拉電阻4.7 k,另外2個腳分別接電源和地。 4.6 DS18B20的軟件

37、設計較少的硬件開銷需要相對復雜的軟件進行補償,由于DS18B20與微處理器間采用串行數據傳送,因此,在對DS18 B 20進行讀寫編程時,必須嚴格保證讀寫時序,否則將無法讀取測溫結果。DS18B20的一線工作協議流程是:初始化ROM操作指令存儲器操作指令數據傳輸。其工作時序包括初始化時序、寫時序和讀時序。軟件流程如圖4-6所示:圖4-6 DS18B20讀寫框圖在DS18B20測溫程序設計中,向DS18B20發出溫度轉換命令后,程序總要等待DS18B20的返回信號,一旦DS18B20接觸不好或斷線,當程序讀該DS1820時,將沒有返回信號,程序進入死循環。這一點在進行DS1820硬件連接和軟件設

38、計時也要給予一定的重視。第5章 定時/計數器與中斷的原理及應用5.1 定時器/計數器有關的概念805l系列單片機至少有兩個16位內部定時器計數器,若是計數內部晶振驅動時鐘,則它是定時器;若是計數8051的輸入引腳的脈沖信號,則是計數器。805l的TC是加1計數的。定時器實際上也是工作在計數方式下,只不過對固定頻率的脈沖計數,由于脈沖周期固定,由計數值可以計算出時間,有定時功能。當TC工作在定時器時,對振蕩源12分頻的脈沖計數,即每個機器周期計數值加1,計數率fosc/12。當晶振為6MHz時,計數率500 kHz,每2us計數值加1。當TC工作在計數器時,計數脈沖來自外部脈沖輸入管腳T0(P3

39、4)或T1(P35),當T0或T1腳上負跳變時計數值加1。識別管腳上的負跳變需兩個機器周期,即24個振蕩周期。所以T0或T1腳輸入的可計數外部脈沖的最高頻率為fosc/24。當晶振為12MHz時,最高計數率為500 kHz,高于此頻率將計數出錯。5.1.1 與T/C有關的特殊功能寄存器1計數寄存器TH和TLTC是16位的,計數寄存器由TH高8位和TL低8位構成。在特殊功能寄存器(SFR)中,對應TC0為TH0和TL0,對應TC1為TH1和TL1。定時器計數器的初始值通過TH1TH0和TL1TL0設置。2定時器計數器控制寄存器TCON TR0,TR1:TC0,1啟動控制位。1-啟動計數。 0-停

40、止計數。TCON復位后清“0”,TC需受到軟件控制才能啟動計數,當計數寄存器計滿時,產生向高位的進位TF,即溢出中斷請求標志。3TC的方式控制寄存器TMODCT:計數器或定時器選擇位。1一為計數器。 0一為定時器。GATE:門控信號。1-TC的啟動受到雙重控制,即要求TR0TR1和INT0/INT1同時為高。0-TC的啟動僅受TR0或TR1控制。M1和M0:工作方式選擇位。由M1和 M0的四種組合狀態確定,見表5-1-1表5-1-1 定時器計數器工作方式M1M0方式功 能000為13位定時器計數據,TL存低5位,TH存向8位011為16位定時器計數器102常數自動裝入的8位定時器計效器113僅

41、適用于TC0,兩個8位定時器計數器5.1.2 定時器/計數器的工作方式1方式0當TMOD中M1M000時,TC工作在方式0。方式0為13位的TC,由TH提供高8位,TL提供低5位的計數值,滿計數值2,但啟動前可以預置計數初值。TC啟動后立即加1計數,當13位計數滿時,TH向高位進位,此進位將中斷溢出標志TF置1,產生中斷請求,表示定時時間到或計數次數到。若T/C開中斷(ET1)且CPU開中斷(EA1),則當CPU轉向中斷服務程序時,TF自動清0。2方式1當TMOD中M1M001時。TC工作在方式1。方式1與方式0基本相同。唯一區別在于計數寄存器的位數是16位的,由TH和TL寄存器各提供8位,滿

42、計數值為2“。3方式2 當TMOD中M1M010時,TC工作在方式2。方式2是8位的可自動重裝載的TC,滿計數值為2。在方式0和方式1中,當計數滿后,若要進行下一次定時計數,須用軟件向TH和TL重裝預置計數初值。方式2中TH和TL被當作兩個8位計數器,計數過程中,TH寄存8位初值并保持不變,由TL進行8位計數。計數溢出時,除產生溢出中斷請求外,還自動將TH中初值重裝到了L,即重裝載。 除此之外,方式2也同方式0。4方式3方式3只適合于TC0。當T/C0工作在方式3時,TH0和TL0成為兩個獨立的計數器。這時,TL0可作定時器計數器,占用TC0在TCON和TMOD寄存器中的控制位和標志位;而TH

43、0只能作定時器用,占用TC1的資源TR1和TF1。在這種情況下,TC1 仍可用于方式0、1、2,但不能使用中斷方式。只有將TC1用作串行口的波特率發生器時,TC0才工作在方式3,以便增加一個定時器。5.1.3 定時器/計數器的初始化在使用8051的定時器計數器前,應對它進行編程初始化,主要是對TCON和TMOD編程;計算和裝載TC的計數初值。一般完成以下幾個步驟:(1)確定TC的工作方式編程TMOD寄存器;(2)計算TC中的計數初值,并裝載到TH和TL;(3)TC在中斷方式工作時,須開CPU中斷和源中斷編程IE寄存器;(4)啟動定時器計數器編程TCON中TR1或TR0位。5.2 中斷有關的概念

44、 所謂中斷,是指當計算機執行正常程序時,系統中出現某些急需處理的異常情況和特殊請求,CPU暫時中止現行程序,轉去對隨機發生的更緊迫事件進行處理,處理完畢后,CPU自動返回原來的程序繼續執行。中斷允許軟件設計不需要關心系統其它部分的定時要求,算術程序不需要考慮隔幾個指令檢查IO設備是否需要服務。相反,算術程序編寫時好像有無限的時間做算術運算而無其他工作在進行。若其它事件需要服務時,通過中斷告訴系統。8051單片機有5個中斷源,有2個中斷優先級,每個中斷源的優先級可以編程控制。中斷允許受到CPU開中斷和中斷源開中斷的兩級控制。5.2.1 中斷源中斷源是指任何引起計算機中斷的事件,一般一臺機器允許有

45、許多個中斷源。增加很少的硬件就可把各種硬件中斷源“線或”成為一個外部中斷輸入,然后再順序檢索引起中斷的特定源。8051單片機的5個中斷源是:外部中斷請求0,由INT0(P32)輸入;外部中斷請求1,由INT1(P33)輸入;片內定時器計數器0溢出中斷請求;片內定時器計數器1溢出中斷請求;片內串行口發送接收中斷請求。為了了解每個中斷源是否產生了中斷請求,中斷系統對應設置多個中斷請求觸發器(標志位)實現記憶。這些中斷源請求標志位分別由特殊功能寄存器TCON和SCON的相應位鎖存。定時器計數器控制寄存器TCON(Time/counter Control Register)IT0,IT1:外部中斷0,

46、1觸發方式選擇位,由軟件設置。1一下降沿觸發方式,INT0INT1管腳上高到低的負跳變可引起中斷。0一電平觸發方式,INT0INT1管腳上低電平可引起中斷。IE0,IE1:外部中斷0,1請求標志位。當外部中斷0,1依據觸發方式滿足條件產生中斷請求時,由硬件置位(IE0IE1=1). 當CPU響應中斷時,由硬件清除(IE0IE10)。TF0,TF1:定時器計數器0,1(TC0,TC1)溢出中斷請求標志。當TC0,l計數溢出時,由硬件置位(TF0TF11)。當CPU響應中斷時,由硬件清除(TF0TF10)。2串行口控制寄存器SCONRI:串行口接收中斷請求標志位。當串行口接收完一幀數據后請求中斷,

47、由硬件置位(RI=1)。RI必須由軟件清零。TI:串行口發送中斷請求標志位。TI必須由軟件清零。當串行口發送完一幀數據后請求中斷時,由硬件置位(TI1)。5.2.2中斷的控制中斷的控制主要實現中斷的開關管理和中斷優先級的管理。這個管理主要通過對特殊功能寄存器IE和IP的編程實現。中斷允許寄存器IEEX0,EX1:外部中斷0,1的中斷允許位。1一外部中斷0,l開中斷。 0一外部中斷0,1關中斷。ET0,ET1:定時器計數器0,1(TC0,TC1)溢出中斷允許位。1-T/C,TC1開中斷。 0-TC0,T/C1關中斷。ES:串行口中斷允許位。1-串行口開中斷。 0一串行口關中斷。ET2:定時器計數

48、器2(TC2)溢出中斷允許位。1一T/C2開中斷。 0一TC2關中斷。EA:CPU開關中斷控制位。1一CPU開中斷。 0一CPU關中斷。8051復位時,IE被清“0”,此時CPU關中斷,各中斷源的中斷也都屏蔽。若系統需用中斷方式進行事件處理,則系統初始化程序中需編程IE寄存器。若僅一個定時器用來提供中斷,其它定時器中斷可被屏蔽。若程序中所有中斷都不使用時,使用EA禁止。2中斷優先級寄存器IP當系統中多個中斷源同時請求中斷,CPU按中斷源的優先級別,由高至低分別響應。8051單片機有兩個中斷優先級,高優先級和低優先級,每個中斷源都可以編程為高優先級或低優先級。這可以實現兩級中斷嵌套,嵌套的原則是

49、:一個正在執行的中斷服務程序可以被較高級的中斷請求中斷,而不能被同級或較低級的中斷請求所中斷。兩級中斷通過使用IP寄存器設置。PX0,PX1:外部中斷0,1中斷優先級控制位。PT0,PT1:定時器計數器0,1中斷優先級控制位。PS:串行口中斷優先級控制位。其中上面所有都是:1一高優先級。 0一低優先級。8051復位時,IP被清“0”,5個中斷源都在同一優先級,這時若其中幾個中斷源同時產生中斷請求,則CPU按照片內硬件優先級鏈路的順序響應中斷。硬件優先級由高到低的順序如下:中斷源外部中斷0(IE0) 高定時器計數器0(TF0)外部中斷1(IE1)定時器計數器1(TF1)串行口中斷(RI十TI)

50、低5.2.3中斷響應8051的CPU在每個機器周期采樣各中斷源的中斷請求標志位,如果沒有下述阻止條件, 則將在下一個機器周期響應被激活了的最高級中斷請求。阻止條件如下:1CPU正在處理同級或更高級的中斷;2現行機器周期不是所執行指令的最后一個機器周期;3正在執行的是RETI或是訪問IE或IP的指令。CPU在中斷響應后完成如下的操作:1硬件清除相應的中斷請求標志;2執行一條硬件子程序,保護斷點,并轉向中斷服務程序人口;3結束中斷時執行RETI指令,恢復斷點,返回主程序。第6章 硬件電路其他元器件簡介此次電路設計中主要是由單片機的最小系統與顯示電路、DS18B20測溫電路、MAX485串口通信、V

51、B程序在計算機把溫度值顯示等部分組成。6.1 單片機的最小系統最小系統的核心是AT89S52單片機,其內部帶有8KB的FLASH ROM,256B片內RAM,基本上能滿足最小系統的設計要求。如接上時鐘電路、復位電路即可加電工作。如圖6-1所示:圖6-1 單片機最小系統6.2 數碼管的顯示電路通過2個LED顯示模塊組成8個LED指示燈,P0口輸出段碼信號,P2輸出位碼信號。這些信號由89SC52軟件生成。LED顯示器又稱數碼管,八段LED顯示器由8個發光二極管組成。其中7個發光二極管構成字型“8”的各個筆畫段,另一個小數點為dp發光二極管。LED顯示器有兩種不同的形式:一種是發光二極管的陽極都連

52、在一起的,稱之為共陽極LED顯示器;另一種是發光二極管的陰極都連在一起的,為共陰極LED顯示器。如圖6-2-2所示:共陰和共陽結構的LED顯示器各筆劃段名和安排位置是相同的。當二極管導通時,相應的筆劃段發亮,由發亮的筆劃段組合而顯示各種字符。8個筆劃段hgfedcba對應于一個字節(8位)的D7 D6 D5 D4 D3 D2 D1 D0,于是用8位二進制碼就可以表示欲顯示字符的字型代碼。例如,對于共陰LED顯示器,當公共陰極接地(為零電平),而陽極hgfedcba各段為時,顯示器顯示P字符,即對于共陰極LED顯示器, “P”字符的字形碼是73H。如果是共陽LED顯示器,公共陽極接高電平,顯示“

53、P”字符的字形代碼應為(8CH)。圖6-2-2 LED數碼管共陽極和共陰極示圖LED顯示方式有動態顯示和靜態顯示兩種方式。本系統采用動態掃描顯示接口電路,動態顯示接口電路是把所有顯示器的8個筆劃段a-h同名端連在一起,而每一個顯示器的公共極COM各自獨立地受I/O線控制。CPU向字段輸出口送出字型碼時,所有顯示器接收到相同的字型碼,但究竟是哪個顯示器亮,則取決于COM端。也就是說我們可以采用分時的方法,輪流控制各個顯示器的COM端,使各個顯示器輪流點亮。在輪流點亮掃描過程中,每位顯示器的點亮時間是極為短暫的(約1ms),但由于人的視覺暫留現象及發光二極管的余輝效應,盡管實際上各位顯示器并非同時

54、點亮,但只要掃描的速度足夠快,給人的印象就是一組穩定的顯示數據,不會有閃爍感。6.3 MAX485串口通信電路6.3.1 MAX485芯片簡介在工業控制及測量領域較為常用的網絡之一就是物理層采用MAX485通信接口所組成的工控設備網絡。這種通信接口可以十分方便地將許多設備組成一個控制網絡。從目前解決單片機之間中長距離通信的諸多方案分析來看,MAX485總線通信模式由于具有結構簡單、價格低廉、通信距離和數據傳輸速率適當等特點而被廣泛應用于儀器儀表、智能化傳感器集散控制、樓宇控制、監控報警等領域。MAX485是芯片接口的一種類型 ,MAX485接口芯片是Maxim公司的一種RS485芯片。采用單一

55、電源+5 V工作,額定電流為300 A,采用半雙工通訊方式。它完成將TTL電平轉換為RS485電平的功能。MAX485芯片的結構和引腳都非常簡單,內部含有一個驅動器和接收器。RO和DI端分別為接收器的輸出和驅動器的輸入端,與單片機連接時只需分別與單片機的RXD和TXD相連即可;/RE和DE端分別為接收和發送的使能端,當/RE為邏輯0時,器件處于接收狀態;當DE為邏輯1時,器件處于發送狀態,因為MAX485工作在半雙工狀態,所以只需用單片機的一個管腳控制這兩個引腳即可;A端和B端分別為接收和發送的差分信號端,當A引腳的電平高于B時,代表發送的數據為1;當A的電平低于B端時,代表發送的數據為0。在與單片機連接時接線非常簡單。只需要一個信號控制MAX485的接收和發送即可。同時將A和B端之間加匹配電阻,一般可選100的電阻。 可

溫馨提示

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

評論

0/150

提交評論