畢業(yè)設(shè)計(jì)論文 基于RS485的溫度采集與顯示_第1頁
畢業(yè)設(shè)計(jì)論文 基于RS485的溫度采集與顯示_第2頁
畢業(yè)設(shè)計(jì)論文 基于RS485的溫度采集與顯示_第3頁
畢業(yè)設(shè)計(jì)論文 基于RS485的溫度采集與顯示_第4頁
畢業(yè)設(shè)計(jì)論文 基于RS485的溫度采集與顯示_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、畢 業(yè) 設(shè) 計(jì) 論 文 基于RS485的溫度采集與顯示33畢業(yè)設(shè)計(jì)論文 論文題目【摘要】 單片機(jī)在檢測和控制系統(tǒng)中獲患上廣泛的應(yīng)用, 隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活、工作、科研、各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù), 本文主要介紹了一個(gè)基于AT89S52單片機(jī)的測溫系統(tǒng),詳細(xì)描述了利用數(shù)字溫度傳感器DS18B20開發(fā)測溫系統(tǒng)的過程,重點(diǎn)對傳感器在單片機(jī)下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進(jìn)行了詳盡分析,對各部分的電路也一一進(jìn)行了介紹,該系統(tǒng)可以方便的實(shí)現(xiàn)溫度采集和顯示,它使用起來相當(dāng)方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點(diǎn),適合于我們?nèi)粘I詈凸?、農(nóng)業(yè)生

2、產(chǎn)中的溫度測量,也可以當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴(kuò)展。DS18B20與AT89S52結(jié)合實(shí)現(xiàn)最簡溫度檢測系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡單,抗干擾能力強(qiáng),適合于惡劣環(huán)境下進(jìn)行現(xiàn)場溫度測量,有廣泛的應(yīng)用前景?!娟P(guān)鍵詞】AT89S52 PC機(jī)與單片機(jī)通信 MAX485【Abstract】As the times progress and development, single chip technology so pervasive in our lives, work, research in various fields has become a relatively mature

3、 technology, this paper describes a AT89S51 microcontroller-based temperature measurement system, a detailed description of the use of digital temperature measurement system temperature sensor DS18B20 development process, focusing on the sensor under the SCM hardware connection, software programming

4、, and the module system process and a detailed analysis of the various parts of the circuits were introduced one by one, the system can easily achieve temperature acquisition and display, and can be arbitrarily set upper and lower alarm temperature, it is very convenient to use, high accuracy, wide

5、range, high sensitivity, small size and low power consumption, suitable for our daily life and work agricultural production in the temperature measurement, temperature processing module can also be embedded as other systems, as other supporting expansion of the main system. DS18B20 combination with

6、AT89C51 temperature detection system to achieve the most simple, the system is simple, strong anti-interference, suitable for harsh environment on-site temperature measurements and has a broad application prospects.【KeyWords】 AT89S52 PC and Single-chip communication MAX48目 錄緒論第一章系統(tǒng)設(shè)計(jì)及概念1.1系統(tǒng)設(shè)計(jì)構(gòu)思及原理說

7、明1.1.1設(shè)計(jì)構(gòu)思1.1.2組件說明1.2串口通信的有關(guān)概念1.2.1串行通訊的分類1.2.2串口通信的有關(guān)概念1.2.3串行口的工作方式1.2.4初始化步驟1.3 AT89S52單片機(jī)1.3.1AT89S52的原理與結(jié)構(gòu)1.3.2多功能I/O口1.3.3控制線控制引腳1.3.4存儲器組織1.3.5復(fù)位方式1.3.6AT89S52的時(shí)鐘電路1.3.7外接晶體線第二章 硬件2.1 DS18B20數(shù)字溫度傳感器2.1.1 DS18B20的簡介2.1.2DS18B20與單片機(jī)的典型接口電路2.1.3 DS18B20 使用中注意事項(xiàng)2.2 MAX485串口通信電路2.3硬件電路及定時(shí)/計(jì)數(shù)器與中斷的

8、原理簡介2.3.1電路設(shè)計(jì)的組成2.3.2單片機(jī)的最小系統(tǒng)2.3.3顯示電路2.4定時(shí)器/計(jì)數(shù)器有關(guān)的概念2.4.1與T/C有關(guān)的特殊功能寄存器2.4.2定時(shí)器/計(jì)數(shù)器的工作方式2.4.3 定時(shí)器、計(jì)數(shù)器的初始化2.4.4 中斷有關(guān)的概念第3章 軟件3.1軟件的使用2.4.1AT89S52的使用2.4.2串口調(diào)試助手的使用方法2.4.3 C51的程序結(jié)構(gòu)2.4.4 DS18B20溫度程序的設(shè)計(jì)第4章 調(diào)試4.1硬件調(diào)試4.1.1硬件調(diào)試環(huán)境4.1.2硬件調(diào)試步驟4.2軟件調(diào)試4.2.1軟件調(diào)試環(huán)境4.2.2軟件調(diào)試步驟4.3調(diào)試過程中的問題及解決方法4.3.1硬件4.3.2軟件結(jié)論致謝參考文獻(xiàn)

9、附錄附錄A 33附錄B 附錄C 附錄D 畢業(yè)設(shè)計(jì)論文 論文題目緒論基于RS485的多機(jī)溫度采集與顯示的設(shè)計(jì)是通過溫度傳感器DS18B20來檢測溫度,然后通過MAX485通信模塊,將檢測到的溫度發(fā)射到電腦端的接收端,從而在電腦上(VB界面)顯示檢測到的溫度。設(shè)計(jì)中所使用的材料有:多功能開發(fā)板,MAX485通信模塊,溫度傳感器(DS18B20),RS232-RS485接口。在兩個(gè)智能開發(fā)板每個(gè)開發(fā)板上安裝DS18B20溫度傳感器并顯示當(dāng)前檢測溫度值,板上的MAX485和RS232與485轉(zhuǎn)換接與PC機(jī)連接。在PC微機(jī)上用VB建立一界面顯示兩個(gè)智能板上所測的溫度。在所選擇的材料中,DS18B20具有

10、測量溫度范圍寬,測量精度高。MAX485具有結(jié)構(gòu)簡單、價(jià)格低廉、通信距離和數(shù)據(jù)傳輸速率適當(dāng)?shù)忍攸c(diǎn)而被廣泛應(yīng)用于儀器儀表、智能化傳感器集散控制、樓宇控制、監(jiān)控報(bào)警等領(lǐng)域。RS-485是一個(gè)多引出線接口,這個(gè)接口可以有多個(gè)驅(qū)動器和接收器,可以實(shí)現(xiàn)一臺PC和多臺單片機(jī)之間的串行通信;而且RS-485的最長的傳輸距離為1200m,適合中距離的傳輸。第一章系統(tǒng)設(shè)計(jì)及概念1.1系統(tǒng)設(shè)計(jì)構(gòu)思及原理說明1.1.1設(shè)計(jì)構(gòu)思在兩個(gè)智能開發(fā)板分別安裝DS18B20溫度傳感器來顯示當(dāng)前檢測溫度值,將板上的MAX485和RS232與485轉(zhuǎn)換接口與PC機(jī)連接。在PC微機(jī)上用VB建立一界面顯示兩個(gè)智能板上所測的溫度。通過

11、多功能開發(fā)板下載溫度檢測程序,與溫度檢測模塊連接,再連接通信模塊,再通過RS232-RS485轉(zhuǎn)接口與PC機(jī)連接即可實(shí)現(xiàn)PC與多單片機(jī)的多機(jī)通信。圖1-1-1-1 基于RS485的多機(jī)溫度采集與顯示總體設(shè)計(jì)框圖1.1.2組件說明1.51系列單片機(jī)采用AT89S52單片機(jī)。2. DS18B20數(shù)字式溫度傳感器,使用集成芯片,采用單總線技術(shù),其能夠有效的減小外界的干擾,提高測量的精度。同時(shí),它可以直接將被測溫度轉(zhuǎn)化成串行數(shù)字信號供微機(jī)處理,接口簡單, 使數(shù)據(jù)傳輸和處理簡單化。能有效地降低成本,搭建電路和焊接電路時(shí)更快,調(diào)試也更方便簡單化。DS18B20的測量溫度范圍為-55+125,在-10+85

12、,精度范圍為±0.5。3. MAX485接口芯片是Maxim公司的一種RS485芯片。采用單一電源+5 V工作,額定電流為300 A,采用半雙工通訊方式。它完成將TTL電平轉(zhuǎn)換為RS485電平的功能。本設(shè)計(jì)的通信模塊采用了MAX485總線通信模塊,這種模式由于具有結(jié)構(gòu)簡單、價(jià)格低廉、通信距離和數(shù)據(jù)傳輸速率適當(dāng)?shù)忍攸c(diǎn)而被廣泛應(yīng)用于儀器儀表、智能化傳感器集散控制、樓宇控制、監(jiān)控報(bào)警等領(lǐng)域。4. RS-485是雙向、半雙工通信協(xié)議,允許多個(gè)驅(qū)動器和接收器掛接在總線上,其中每個(gè)驅(qū)動器都能夠脫離總線。即RS-485是一個(gè)多引出線接口,這個(gè)接口可以有多個(gè)驅(qū)動器和接收器,可以實(shí)現(xiàn)一臺PC和多臺單片

13、機(jī)之間的串行通信;而且RS-485的最長的傳輸距離為1200m, 接收器輸入阻抗和更寬的共模范圍(-7V至+12V),適合中距離的傳輸。1.2串口通信的有關(guān)概念1.2.1串行通訊的分類按通信進(jìn)行的過程,分為:單工、半雙工、全雙工通信方式 1.單 工:只容許數(shù)據(jù)由一方發(fā)、一方收,單向通訊,如BP機(jī)。 2.半雙工:容許雙向通訊,但是收發(fā)只能分時(shí)共用一路通道,如對講機(jī)。3.全雙工:容許數(shù)據(jù)同時(shí)雙向收發(fā),如KEILC開發(fā)裝置。1.2.2串口通信的有關(guān)概念1.RS-323C 標(biāo)準(zhǔn)是美國 EIA(電子工業(yè)聯(lián)合會)與 BELL 等公司一起開發(fā)的 1969 年公布的通信協(xié)議。它適合于數(shù)據(jù)傳輸速率在 02000

14、0b/s 范圍內(nèi)的通信。這個(gè)標(biāo)準(zhǔn)對串行通信接口的有關(guān)問題,如信號線功能、電器特性都作了明確規(guī)定。由于通行設(shè)備廠商都生產(chǎn)與 RS-232C 制式兼容的通信設(shè)備,因此,它作為一種標(biāo)準(zhǔn),目前已在微機(jī)通信接口中廣泛采用。2.傳輸率:所謂傳輸率就是指每秒傳輸多少位,傳輸率也常叫波特率。國際上規(guī)定了一個(gè)標(biāo)準(zhǔn)波特率系列,標(biāo)準(zhǔn)波特率也是最常用的波特率,為保證通信正確,必須通信雙方必須同一波特率。3. RS-232-C標(biāo)準(zhǔn):RS-232-C標(biāo)準(zhǔn)對邏輯電平的各種信號線的功能作了規(guī)定,即信號電平標(biāo)準(zhǔn)和控制信號線的定義。RS-232C采用負(fù)邏輯規(guī)定邏輯電平,信號電平與通常的TTL電平不兼容,邏輯“1”=-3V-15V

15、邏輯“0”=+3V+與TTL電平不一樣可用TTL/EIA轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。4. RS-232C 與 TTL 轉(zhuǎn)換:RS-232C 是用正負(fù)電壓來表示邏輯狀態(tài),與 TTL 以高低電平表示邏輯狀態(tài)的規(guī)定不同。因此,為了能夠同計(jì)算機(jī)接口或終端的 TTL 器件連接,必須在 EIA-RS-232C 與 TTL 電路之間進(jìn)行電平和邏輯關(guān)系的變換.RS232接口芯片實(shí)現(xiàn)了TTL標(biāo)準(zhǔn)和RS-232-C標(biāo)準(zhǔn)之間的電平轉(zhuǎn)換。5. RS232是個(gè)人計(jì)算機(jī)上的通訊接口之一,由電子工業(yè)協(xié)會(Electronic Industries Association,EIA) 所制定的異步傳輸標(biāo)準(zhǔn)接口。通常 RS-232 接口以9

16、個(gè)接腳 (DB-9) 或是25個(gè)接腳 (DB-25) 的型態(tài)出現(xiàn),一般個(gè)人計(jì)算機(jī)上會有兩組 RS-232 接口,分別稱為 COM1 和 COM2。6. AT89S52單片機(jī)片上有通用異步接收發(fā)送(UART)用于串行通信,發(fā)送時(shí)數(shù)據(jù)由TXD端送出,接收時(shí)數(shù)據(jù)由RXD端輸入。有兩個(gè)緩沖器SBUF,一個(gè)作發(fā)送緩沖器,另一個(gè)作接收緩沖器。它是可編程的全雙工的串行口。短距離的機(jī)間通信可使用UART的TTL電平,使用驅(qū)動芯片(MAX232或14881489)可接成RS232C和通用微機(jī)進(jìn)行通信。波特率時(shí)鐘必須從內(nèi)部定時(shí)器1或定時(shí)器2獲得。若應(yīng)用要求RS232完全的握手功能,必須借助單片機(jī)其它管腳用軟件處理

17、。7. SCON和PCONSCON是串行口控制和狀態(tài)寄存器,它是一個(gè)可尋址的專用寄存器,用于串行數(shù)據(jù)的通信控制,單元地址是98H,其結(jié)構(gòu)格式如下:表1 SCON寄存器結(jié)構(gòu)SCOND7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRIPCON是電源控制器PCON的第7位SMOD是與串行口的波特率設(shè)置有關(guān)的選擇位1.2.3串行口的工作方式1方式0是外接串行移位寄存器方式。方式0為移位寄存器輸入輸出方式。串行數(shù)據(jù)通過RXD輸入輸出. 2.方式1是點(diǎn)對點(diǎn)的通信方式。方式1是10位異步通信方式,1位起始位(0),8位數(shù)據(jù)位和1位停止位(1)。其中的起始位和停止位在發(fā)送時(shí)是自動插入的

18、。 3.方式2和方式3是9位異步串行通信,一般用在多機(jī)通信系統(tǒng)中或奇偶校驗(yàn)的通信過程。在通訊中,TB8和RB8位作為數(shù)據(jù)的第9位,位SM2也起作用。方式2與方式3的區(qū)別只是波特率的設(shè)置方式不同. 1.2.4初始化步驟在使用串行口之前,應(yīng)對它進(jìn)行編程初始化,主要是設(shè)置產(chǎn)生波特率的定時(shí)器1、串行口控制和中斷控制。具體步驟如下:1.確定定時(shí)器1的工作方式編程TMOD寄存器; 2.計(jì)算定時(shí)器1的初值裝載TH1、TL1;3.啟動定時(shí)器1編程TCON中的TR1位;4.確定串行口的控制編程SCON; 5.串行口在中斷方式工作時(shí),須開CPU和源中斷編程IE寄存器。1.3 AT89S52單片機(jī)1.3.1AT89

19、S52的原理與結(jié)構(gòu)1.AT89S52 概述AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。AT89S52使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,AT89S52擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)

20、數(shù)器,一個(gè)6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。2. ATMEL52子系列功能增強(qiáng)的具體如下四個(gè)方面1. 片內(nèi)ROM從4 KB增加到8 KB。2.片內(nèi)RAM從128 B增加到256 B。3.定時(shí)/計(jì)數(shù)器從2個(gè)增加到3個(gè)。4.中斷源從5個(gè)增加到6個(gè)。 3. 功能說明1.數(shù)據(jù)存儲器(RAM):片內(nèi)為128個(gè)字節(jié)(單元),AT89S52單

21、片機(jī)內(nèi)部有256個(gè)字節(jié)的RAM數(shù)據(jù)存儲器,片內(nèi)最多可外擴(kuò)64K字節(jié)。2.程序存儲器(ROMEPROM):803l無此部件,8051為4KROM;8751則為4KEPROM。AT89S51單片機(jī)內(nèi)部有4KB的閃存程序存儲器(Flash),當(dāng)不夠使用時(shí),可擴(kuò)展為64 KB外部程序存儲器。它們的邏輯空間是分開的,并有各自的尋址機(jī)構(gòu)和尋址方式。這種結(jié)構(gòu)的單片機(jī)稱為哈佛型結(jié)構(gòu)單片機(jī)。3.中斷系統(tǒng):具有5個(gè)中斷源,2級中斷優(yōu)先權(quán)。4.定時(shí)器/計(jì)數(shù)器:2個(gè)16位的定時(shí)器計(jì)數(shù)器,具有四種工作方式。5.串行口;一個(gè)全雙工的串行口,具有四種工作方式。6.Pl口、P2口、P3口、P0口:為4個(gè)并行8位IO口。7.特

22、殊功能寄存器(SFR):共有21個(gè),用于對片內(nèi)各功能模塊進(jìn)行管理、控制、監(jiān)視。實(shí)際上是一些控制寄存器和狀態(tài)寄存器,是一個(gè)特殊功能的RAM區(qū)。8.微處理器(CPU):為8位的CPU,且內(nèi)含一個(gè)1位CPU(位處理器),不僅可處理字節(jié)數(shù)據(jù),還可以進(jìn)行位變量的處理。8位機(jī)在數(shù)據(jù)采集,運(yùn)算處理有明顯的長處。4.AT89S52單片機(jī)的特性· 兼容MCS-51指令系統(tǒng) · 8k可反復(fù)擦寫(>1000次)ISP Flash ROM · 1000次擦寫周期 · 32個(gè)雙向I/O口 · 4.5-5.5V工作電壓 · 3個(gè)16位可編程定時(shí)/計(jì)數(shù)器 &

23、#183; 時(shí)鐘頻率0-33MHz · 全雙工UART串行中斷口 · 128x8bit內(nèi)部RAM · 低功耗空閑和省電模式 · 中斷喚醒省電模式 · 3級加密位 · 看門狗(WDT)電路 · 軟件設(shè)置空閑和省電功能靈活的ISP字節(jié)和分頁編程 · 雙數(shù)據(jù)寄存器指針 5. AT89S52單片機(jī)的引腳圖2-1-1-1 AT89S52單片機(jī)的引腳1.3.2多功能I/O口AT89S52共有四個(gè)8位的并行I/O口:P0、P1、P2、P3端口,對應(yīng)的引腳分別是P0.0 P0.7,P1.0 P1.7,P2.0 P2.7,P3.0

24、P3.7,共32根I/O線。每根線可以單獨(dú)用作輸入或輸出。1P0端口,該口是一個(gè)8位漏極開路的雙向I/O口。在作為輸出口時(shí),每根引腳可以帶動8個(gè)TTL輸入負(fù)載。當(dāng)把“1”寫入P0時(shí),則它的引腳可用作高阻抗輸入。當(dāng)對外部程序或數(shù)據(jù)存儲器進(jìn)行存取時(shí),P0可用作多路復(fù)用的低字節(jié)地址/數(shù)據(jù)總線,在該模式,P0口擁有內(nèi)部上拉電阻。在對Flash存儲器進(jìn)行編程時(shí),P0用于接收代碼字節(jié);在校驗(yàn)時(shí),則輸出代碼字節(jié);此時(shí)需要外加上拉電阻。2.P1端口管腳復(fù)用功能:P1端口管腳復(fù)用功能表2-1-2-1端口引腳復(fù)用功能P1.0T2(定時(shí)器/計(jì)算器2的外部輸入端)P1.1T2EX(定時(shí)器/計(jì)算器2的外部觸發(fā)端和雙向控

25、制)P1.5MOSI(用于在線編程)P1.6MISO(用于在線編程)P1.7SCK(用于在線編程)3P3端口,該口是帶有內(nèi)部上拉電阻的8位雙向I/O端口,P3口的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個(gè)TTL輸入。對端口寫“1”時(shí),通過內(nèi)部的上拉電阻把端口拉到高電位,此時(shí)可用作輸入口。P3口作輸入口使用時(shí),因?yàn)橛袃?nèi)部的上拉電阻,那些被外部信號拉低的引腳會輸出一個(gè)電流。在AT89S52中,同樣P3口還用于一些復(fù)用功能,如表1-2所列。在對Flash編程和程序校驗(yàn)期間,P3口還接收一些控制信號。P3端口引腳與復(fù)用功能表:端口引腳復(fù)用功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3

26、.2INT0(外部中斷0)P3.3INT1(外部中斷1)P3.4T0(定時(shí)器0的外部輸入)P3.5T1(定時(shí)器1的外部輸入)P3.6WR(外部數(shù)據(jù)存儲器寫選通)P3.7RD(外部數(shù)據(jù)存儲器讀選通)P3端口管腳復(fù)用功能表2-1-2-21.3.3控制線控制引腳ALE/PROG(30腳)  地址鎖存允許信號。在存取外部存儲器時(shí),這個(gè)輸出信號用于鎖存低字節(jié)地址。在對Flash存儲器編程時(shí),這條引腳用于輸入編程脈沖PROG。一般情況下,ALE是振蕩器頻率的6分頻信號,可用于外部定時(shí)或時(shí)鐘。定頻率輸出的正脈沖,因此,可作為外部時(shí)鐘或外部定時(shí)脈沖使用。PSEN(29腳)外部程序存儲器讀選通信號。在

27、讀外部ROM時(shí),有效(低電平),以實(shí)現(xiàn)外部ROM單元的讀操作。EA/Vpp(31腳)訪問程序存儲控制信號。當(dāng)信號為低電平時(shí),對ROM的讀操作限定在外部程序存儲器;當(dāng)信號為高電平時(shí),對ROM的讀操作是從內(nèi)部程序存儲器開始,并可延至外部RSTVpp (9腳) 復(fù)位信號。當(dāng)輸入的復(fù)位信號延續(xù)兩個(gè)機(jī)器周期以上的高電平時(shí)即為有效,用以完成單片機(jī)的復(fù)位初始化操作。1.3.4存儲器組織ATMEL89S52單片機(jī)在物理上有四個(gè)存儲空間,ATMEL89S52片內(nèi)有256字節(jié)數(shù)據(jù)存儲器RAM和4KB的程序存儲器ROM。除此以外,還可以在片外擴(kuò)展RAM和ROM,并且各有64KB的尋址范圍。也就是最多可以在外部擴(kuò)展2

28、×64KB存儲器。89系列單片機(jī)可尋址的內(nèi)部和外部程序存儲器總空間為64KB。每個(gè)外部程序和數(shù)據(jù)存儲器的可尋址范圍高達(dá)64KB。它沒有采用程序存儲器分區(qū)的方法,64KB的地址空間是統(tǒng)一的。EA引腳接低電平時(shí),單片機(jī)就從外部程序存儲器中取指。ATMEL89S52最多可外擴(kuò)64K字節(jié)程序存儲器,64K程序存儲器中有5個(gè)單元具有特殊用途。5個(gè)特殊單元分別對應(yīng)于5種中斷源的中斷服務(wù)程序的人口地址.表2-1-4-1 各種中斷的子程序入口地址通常在這些人口地址處都放一條約對跳轉(zhuǎn)指令。加跳轉(zhuǎn)指令的目的是,由于兩個(gè)中斷入口間隔僅有八個(gè)單元,存放中斷服務(wù)程序往往是不夠用的。1.3.5復(fù)位方式單片機(jī)的復(fù)

29、位方式有上電自動復(fù)位和手工復(fù)位兩種,其中C22uF,R200,Rk1k。RST引腳是復(fù)位信號的輸入瑞。復(fù)位信號是高電平有效。圖2-1-5-1復(fù)位方式圖1.3.6AT89S52的時(shí)鐘電路單片機(jī)的晶振電路也叫時(shí)鐘電路,是單片機(jī)時(shí)序的基礎(chǔ)。單片機(jī)內(nèi)部有振蕩器,可以產(chǎn)生時(shí)鐘。時(shí)鐘可以由兩種方式產(chǎn)生:內(nèi)部方式和外部方式。外部方式:可以通過XTAL1和XTAL2接入外部時(shí)鐘。內(nèi)部方式:在XTAL1和XTAL2端外接入石英晶體作定時(shí)元件,內(nèi)部振蕩器自激振蕩,產(chǎn)生時(shí)鐘。時(shí)鐘發(fā)生器對振蕩脈沖進(jìn)行二分頻,因此,時(shí)鐘是一個(gè)雙相信號,由P1相和P2相構(gòu)成。FOSC可在2MHZ-12MHZ選擇。小電容可以取30PF左右

30、。 圖2-1-6-1內(nèi)部方式時(shí)鐘電路其中電容為30PF,這種無極性電容是使單片機(jī)易起振并保持串口通信,準(zhǔn)確計(jì)算出波特率。一般情況晶振選用12MHZ,但串行通信時(shí),使用11.0592MHZ。1.3.7外接晶體線XTAL1(19腳)和XTAL2(18腳)外接晶體引線端。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此二引線端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號。主電源引腳高VCC和低VSSVCC(40腳)+5V電源。VSS(20腳)地線(GND)。第二章 硬件2.1 DS18B20數(shù)字溫度傳感器2.1.1 DS18B20的簡介1. DS18B20的概念DS18B20數(shù)字式溫度傳感器,與傳統(tǒng)

31、的熱敏電阻相比,使用集成芯片,采用單總線技術(shù),其能夠有效的減小外界的干擾,提高測量的精度。同時(shí),它可以直接將被測溫度轉(zhuǎn)化成串行數(shù)字信號供微機(jī)處理,接口簡單, 使數(shù)據(jù)傳輸和處理簡單化。 部分功能電路的集成,使總體硬件設(shè)計(jì)更簡潔,能有效地降低成本,搭建電路和焊接電路時(shí)更快,調(diào)試也更方便簡單化,這也就縮短了開發(fā)的周期 。他能夠直接讀出被測溫度并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式??梢苑謩e在93.75 ms和750 ms內(nèi)完成9位和12位的數(shù)字量,并且從DS18B20讀出的信息或?qū)懭隓S18B20的信息僅需要一根口線(單線接口)讀寫,溫度變換功率來源于數(shù)據(jù)總線,總線本身也可以向

32、所掛接的DS18B20供電,而無需額外電源。因而使用DS18B20可使系統(tǒng)結(jié)構(gòu)更趨簡單,可靠性更高。2.DS18B20的優(yōu)點(diǎn)采用單總線的接口方式與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。單總線具有經(jīng)濟(jì)性好,抗干擾能力強(qiáng),適合于惡劣環(huán)境的現(xiàn)場溫度測量,使用方便等優(yōu)點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念。 測量溫度范圍寬,測量精度高。DS18B20 的測量范圍為-55 +125 ;在-10+85 范圍內(nèi),精度為±0.5 。在使用中不需要任何外圍元器件即可實(shí)現(xiàn)測溫。 多點(diǎn)組網(wǎng)功能。多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)測溫

33、。供電方式靈活。DS18B20可以通過內(nèi)部寄生電路從數(shù)據(jù)線上獲取電源。因此,當(dāng)數(shù)據(jù)線上的時(shí)序滿足一定的要求時(shí),可以不接外電源,從而使系統(tǒng)結(jié)構(gòu)更趨簡單,可靠性更高。測量參數(shù)可配置。DS18B20的測量分辨率可通過程序設(shè)定912位。負(fù)壓特性。電源極性接反時(shí),溫度計(jì)不會因發(fā)熱而燒毀,但不能正常工作。掉電保護(hù)功能。DS18B20內(nèi)部含有EEPROM,在系統(tǒng)掉電以后,它仍可保存分辨率及報(bào)警溫度的設(shè)定值。DS18B20 具有體積更小、適用電壓更寬、更經(jīng)濟(jì)、可選更小的封裝方式,更寬的電壓適用范圍,適合于構(gòu)建自己的經(jīng)濟(jì)的測溫系統(tǒng),因此也就被設(shè)計(jì)者們所青睞。3. DS18B20測溫原理低溫度系數(shù)晶振的振蕩頻率受

34、溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計(jì)數(shù)器1,為計(jì)數(shù)器提供一頻率穩(wěn)定的計(jì)數(shù)脈沖。高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,很敏感的振蕩器,所產(chǎn)生的信號作為減法計(jì)數(shù)器2的脈沖輸入,為計(jì)數(shù)器2提供一個(gè)頻率隨溫度變化的計(jì)數(shù)脈沖。圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55 所對應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器 1 和溫度寄存器被預(yù)置在-55 所對應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1

35、的預(yù)置值減到0時(shí)溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測溫度。斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值。4. DS18B20 的管腳排列及封裝圖     圖2-1-1-1 DS18B20 的管腳排列及封裝圖DQ為數(shù)字信號輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端,電源供電 3.05.5V

36、(在寄生電源接線方式時(shí)接地)。2.1.2DS18B20與單片機(jī)的典型接口電路DS18B20的硬件接口非常簡單。供電方式為計(jì)生電源供電或外部供電。  圖2-1-2-1DS18B20的接口電路采用寄生電源供電時(shí),在遠(yuǎn)程溫度測量和測量空間受限的情況下特別有價(jià)值。寄生電源供電的原理是在數(shù)據(jù)線為高電平的時(shí)候“竊取”數(shù)據(jù)線的電源,電荷被存儲在寄生供電電容上,用于在數(shù)據(jù)線為低的時(shí)候?yàn)樵O(shè)備提供電源。需要注意的是,DS18B20在進(jìn)行溫度轉(zhuǎn)換或者將高速緩存里面的數(shù)據(jù)復(fù)制到EEPROM中時(shí),所需的電流會達(dá)到1.5mA,超出了電容所能提供的電流,此時(shí)可采用一個(gè)MOSFET三極管來供電。2.1.3

37、 DS18B20 使用中注意事項(xiàng)DS1820 雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題:1.每一次讀寫之前都要對 DS18B20 進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條 ROM 指令,最后發(fā)送 RAM 指令,這樣才能對 DS18B20 進(jìn)行預(yù)定的操作。2.在寫數(shù)據(jù)時(shí),寫 0 時(shí)單總線至少被拉低 60us, 寫 1 時(shí) ,15us 內(nèi)就得釋放總線。3.轉(zhuǎn)化后得到的 12 位數(shù)據(jù),存儲在 18B20 的兩個(gè) 8 比特的 RAM 中,二進(jìn)制中的前面 5 位是符號位,如果測得的溫度大于 0 ,這 5 位為 0 ,只要將測到的數(shù)值乘于 0.0625 即可

38、得到實(shí)際溫度;如果溫度小于 0 ,這 5 位為 1 ,測到的數(shù)值需要取反加 1 再乘于 0.0625 即可得到實(shí)際溫度。4.較小的硬件開銷需要相對復(fù)雜的軟件進(jìn)行補(bǔ)償,由于 DS1820 與微處理器間采用串行數(shù)據(jù)傳送,因此,在對 DS1820 進(jìn)行讀寫編程時(shí),必須嚴(yán)格的保證讀寫時(shí)序,否則將無法讀取測溫結(jié)果。在使用 PL/M 、 C 等高級語言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對 DS1820 操作部分最好采用匯編語言實(shí)現(xiàn)。5. 在 DS1820 的有關(guān)資料中均未提及單總線上所掛 DS1820 數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個(gè) DS1820 ,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛 DS1820 超過 8

39、個(gè)時(shí),就需要解決微處理器的總線驅(qū)動問題,這一點(diǎn)在進(jìn)行多點(diǎn)測溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。6. 連接 DS1820 的總線電纜是有長度限制的。7.在 DS1820 測溫程序設(shè)計(jì)中,向 DS1820 發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待 DS1820 的返回信號,一旦某個(gè) DS1820 接觸不好或斷線,當(dāng)程序讀該 DS1820 時(shí),將沒有返回信號,程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行 DS1820 硬件連接和軟件設(shè)計(jì)時(shí)也要給予一定的重視。2.2 MAX485串口通信電路2.2.1 MAX485芯片的簡介MAX485是芯片接口的一種類型。MAX485接口芯片是Maxim公司的一種RS485芯片。采用單一電源+5 V工

40、作,額定電流為300 A,采用半雙工通訊方式。它完成將TTL電平轉(zhuǎn)換為RS485電平的功能。MAX485芯片的結(jié)構(gòu)和引腳都非常簡單,內(nèi)部含有一個(gè)驅(qū)動器和接收器。RO和DI端分別為接收器的輸出和驅(qū)動器的輸入端,與單片機(jī)連接時(shí)只需分別與單片機(jī)的RXD和TXD相連即可;/RE和DE端分別為接收和發(fā)送的使能端,當(dāng)/RE為邏輯0時(shí),器件處于接收狀態(tài);當(dāng)DE為邏輯1時(shí),器件處于發(fā)送狀態(tài),因?yàn)镸AX485工作在半雙工狀態(tài),所以只需用單片機(jī)的一個(gè)管腳控制這兩個(gè)引腳即可;A端和B端分別為接收和發(fā)送的差分信號端,當(dāng)A引腳的電平高于B時(shí),代表發(fā)送的數(shù)據(jù)為1;當(dāng)A的電平低于B端時(shí),代表發(fā)送的數(shù)據(jù)為0。在與單片機(jī)連接時(shí)

41、接線非常簡單。只需要一個(gè)信號控制MAX485的接收和發(fā)送即可。同時(shí)將A和B端之間加匹配電阻,一般可選100的電阻。2.2.2 MAX485芯片基本參數(shù)1.半雙工; 2.速率:2.5Mbps; 3.限擺率:NO; 4.低電流關(guān)斷模式:NO; 5.接收允許控制:YES; 6.靜態(tài)電流300; 7.負(fù)載個(gè)數(shù):32; 8.引腳數(shù):8。2.2.3 MAX485芯片的作用MAX485是用于RS-485與RS-422通信的低功耗收發(fā)器。MAX485的驅(qū)動器擺率不受限制, 可以實(shí)現(xiàn)最高2.5Mbps的傳輸速率。這些收發(fā)器在驅(qū)動器禁用的空載或滿載狀態(tài)下,吸取的電源電流在120A至500A之間。所有器件都工作在5

42、V單電源下。驅(qū)動器具有短路電流限制,并可以通過熱關(guān)斷電路將驅(qū)動器輸出置為高阻狀態(tài)。接收器輸入具有失效保護(hù)特性,當(dāng)輸入開路時(shí),可以確保邏輯高電平輸出。具有較高的抗干擾性能。MAX485是市面上最為常見的RS422芯片,亦是用量最大的RS422芯片,性價(jià)比高,優(yōu)質(zhì),供貨穩(wěn)定是大部分廠家采用它的原因。 2.2.4 MAX485芯片的電路圖2-2-4-1MAX485引腳(管腳)圖及工作電路2.2.5MAX485的通信方式1.微機(jī)和智能儀器間基于RS485總線的主從方式點(diǎn)對多點(diǎn)通信,各為主/從屬設(shè)備,被呼叫到時(shí)響應(yīng),或主發(fā);主設(shè)備可單獨(dú)和從設(shè)備通信,也能以廣播方式和所有從設(shè)備通信。如果單獨(dú)通信

43、,從設(shè)備返回一消息作為回應(yīng),如果是以廣播方式查詢的,則不作任何回應(yīng)。2.微機(jī)和智能儀器可作為主從設(shè)備,主從設(shè)備中建立了主設(shè)備查詢和從設(shè)備回應(yīng)消息的格式;在通信接收過程中如果發(fā)生一錯(cuò)誤,或從設(shè)備不能執(zhí)行其命令,從設(shè)備將建立一錯(cuò)誤命令并把它作為回應(yīng)發(fā)送出去。盡管網(wǎng)絡(luò)通信方法是“對等”。如果一設(shè)備發(fā)送一消息,它只是作為主設(shè)備,并期望從從設(shè)備得到回應(yīng)。同樣,當(dāng)主設(shè)備接收到一消息,它將建立一從設(shè)備回應(yīng)格式并返回給發(fā)送的控制器。3.通訊方式全兼容,采用異步通信,起始位1位,數(shù)據(jù)位8位,停止位1位,無校驗(yàn)。數(shù)據(jù)傳輸速率為1.2 kbps、2.4kbps、4.8kbps、9.6kbps、19.2kbps。4.

44、與PC機(jī)通信方式PC機(jī)通過串行口(COM1或COM2)來實(shí)現(xiàn)與通信MCU之間的通信。由于PC機(jī)的COM口輸入/輸出的是RS-232電平,往往只能用于實(shí)現(xiàn)單點(diǎn)通信,且傳送距離有限,為了對其進(jìn)行擴(kuò)展,我們采用RS-232/RS-485接口轉(zhuǎn)換器,將其轉(zhuǎn)換為RS-485電平,從而通過RS-485總線實(shí)現(xiàn)與16個(gè)通信MCU之間的通信。由于單片機(jī)的通用同步/異步收發(fā)器(USART)采用TTL電平,與標(biāo)準(zhǔn)RS-485電平不匹配,我們采用MAXIM公司生產(chǎn)的MAX485芯片將其轉(zhuǎn)換為RS-485標(biāo)準(zhǔn)電平,通過RS485總線實(shí)現(xiàn)與PC機(jī)的對接。MAX485通訊程序與MAX232通訊程序在本質(zhì)上是一樣的,只是M

45、AX485通訊程序需要加上通訊方向控制。在本設(shè)計(jì)的通信中,晶振為外部11.0592M ,MAX485的DE和RE短接連P2.7口.單片機(jī)與MAX485的連接如圖2-2-5-1所示PC通過RS232與485轉(zhuǎn)換接口與兩個(gè)站點(diǎn)的單片機(jī)相連接,每個(gè)站點(diǎn)有一MAX485連接一個(gè)溫度傳感DS18B20。并將兩個(gè)站點(diǎn)的溫度傳送到PC 微機(jī)屏幕顯示。PC與單片機(jī)的連接如圖2-2-5-2所示:圖2-2-5-2 PC與單片機(jī)連接2.3硬件電路及定時(shí)/計(jì)數(shù)器與中斷的原理簡介2.3.1電路設(shè)計(jì)的組成電路設(shè)計(jì)中主要是由單片機(jī)的最小系統(tǒng)與顯示電路、DS18B20測溫電路、MAX485串口通信、VB程序在計(jì)算機(jī)把溫度值顯

46、示等部分組成。2.3.2單片機(jī)的最小系統(tǒng)最小系統(tǒng)的核心是AT89S52單片機(jī),其內(nèi)部帶有8KB的FLASH ROM,256B片內(nèi)RAM,基本上能滿足最小系統(tǒng)的設(shè)計(jì)要求。圖2-3-1-1 單片機(jī)最小系統(tǒng)電路圖2.3.3顯示電路通過2個(gè)LED顯示模塊組成8個(gè)LED指示燈,P0口輸出段碼信號,P2輸出位碼信號。這些信號由89SC52軟件生成。LED顯示器又稱數(shù)碼管,八段LED顯示器由8個(gè)發(fā)光二極管組成。其中7個(gè)發(fā)光二極管構(gòu)成字型“8”的各個(gè)筆畫段,另一個(gè)小數(shù)點(diǎn)為dp發(fā)光二極管。LED顯示器有兩種不同的形式:一種是發(fā)光二極管的陽極都連在一起的,稱之為共陽極LED顯示器;另一種是發(fā)光二極管的陰極都連在一

47、起的,為共陰極LED顯示器。如圖6-2-2所示:共陰和共陽結(jié)構(gòu)的LED顯示器各筆劃段名和安排位置是相同的。當(dāng)二極管導(dǎo)通時(shí),相應(yīng)的筆劃段發(fā)亮,由發(fā)亮的筆劃段組合而顯示各種字符。8個(gè)筆劃段hgfedcba對應(yīng)于一個(gè)字節(jié)(8位)的D7 D6 D5 D4 D3 D2 D1 D0,于是用8位二進(jìn)制碼就可以表示欲顯示字符的字型代碼。例如,對于共陰LED顯示器,當(dāng)公共陰極接地(為零電平),而陽極hgfedcba各段為0111011時(shí),顯示器顯示"P"字符,即對于共陰極LED顯示器,“P”字符的字形碼是73H。如果是共陽LED顯示器,公共陽極接高電平,顯示“P”字符的字形代碼應(yīng)為10001

48、100(8CH). 圖2-3-3-1 LED數(shù)碼管共陽極和共陰極示圖LED顯示方式有動態(tài)顯示和靜態(tài)顯示兩種方式。本系統(tǒng)采用動態(tài)掃描顯示接口電路,動態(tài)顯示接口電路是把所有顯示器的8個(gè)筆劃段a-h同名端連在一起,而每一個(gè)顯示器的公共極COM各自獨(dú)立地受I/O線控制。CPU向字段輸出口送出字型碼時(shí),所有顯示器接收到相同的字型碼,但究竟是哪個(gè)顯示器亮,則取決于COM端。也就是說我們可以采用分時(shí)的方法,輪流控制各個(gè)顯示器的COM端,使各個(gè)顯示器輪流點(diǎn)亮。在輪流點(diǎn)亮掃描過程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的(約1ms),但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮,但只

49、要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感。2.4定時(shí)器/計(jì)數(shù)器有關(guān)的概念805l系列單片機(jī)至少有兩個(gè)16位內(nèi)部定時(shí)器計(jì)數(shù)器,若是計(jì)數(shù)內(nèi)部晶振驅(qū)動時(shí)鐘,則它是定時(shí)器;若是計(jì)數(shù)8051的輸入引腳的脈沖信號,則是計(jì)數(shù)器。805l的TC是加1計(jì)數(shù)的。定時(shí)器實(shí)際上也是工作在計(jì)數(shù)方式下,只不過對固定頻率的脈沖計(jì)數(shù),由于脈沖周期固定,由計(jì)數(shù)值可以計(jì)算出時(shí)間,有定時(shí)功能。當(dāng)TC工作在定時(shí)器時(shí),對振蕩源12分頻的脈沖計(jì)數(shù),即每個(gè)機(jī)器周期計(jì)數(shù)值加1,計(jì)數(shù)率fosc/12。當(dāng)晶振為6MHz時(shí),計(jì)數(shù)率500 kHz,每2us計(jì)數(shù)值加1。當(dāng)TC工作在計(jì)數(shù)器時(shí),計(jì)數(shù)脈沖來自外部脈沖輸入管腳T0(

50、P34)或T1(P35),當(dāng)T0或T1腳上負(fù)跳變時(shí)計(jì)數(shù)值加1。識別管腳上的負(fù)跳變需兩個(gè)機(jī)器周期,即24個(gè)振蕩周期。所以T0或T1腳輸入的可計(jì)數(shù)外部脈沖的最高頻率為fosc/24。當(dāng)晶振為12MHz時(shí),最高計(jì)數(shù)率為500 kHz,高于此頻率將計(jì)數(shù)出錯(cuò)。2.4.1與T/C有關(guān)的特殊功能寄存器1計(jì)數(shù)寄存器TH和TL TC是16位的,計(jì)數(shù)寄存器由TH高8位和TL低8位構(gòu)成。在特殊功能寄存器(SFR)中,對應(yīng)TC0為TH0和TL0,對應(yīng)TC1為TH1和TL1。定時(shí)器計(jì)數(shù)器的初始值通過TH1TH0和TL1TL0設(shè)置。2. 定時(shí)器計(jì)數(shù)器控制寄存器TCON TR0,TR1:TC0,1啟動控制位。1-啟動計(jì)數(shù)。

51、 0-停止計(jì)數(shù)。TCON復(fù)位后清“0”,TC需受到軟件控制才能啟動計(jì)數(shù),當(dāng)計(jì)數(shù)寄存器計(jì)滿時(shí),產(chǎn)生向高位的進(jìn)位TF,即溢出中斷請求標(biāo)志。3TC的方式控制寄存器TMODCT:計(jì)數(shù)器或定時(shí)器選擇位。1一為計(jì)數(shù)器。 0一為定時(shí)器。GATE:門控信號。1-TC的啟動受到雙重控制,即要求TR0TR1和INT0/INT1同時(shí)為高。0-TC的啟動僅受TR0或TR1空置。2.4.2定時(shí)器/計(jì)數(shù)器的工作方式1方式0當(dāng)TMOD中M1M000時(shí),TC工作在方式0。方式0為13位的TC,由TH提供高8位,TL提供低5位的計(jì)數(shù)值,滿計(jì)數(shù)值2,但啟動前可以預(yù)置計(jì)數(shù)初值。TC啟動后立即加1計(jì)數(shù),當(dāng)13位計(jì)數(shù)滿時(shí),TH向高位進(jìn)

52、位,此進(jìn)位將中斷溢出標(biāo)志TF置1,產(chǎn)生中斷請求,表示定時(shí)時(shí)間到或計(jì)數(shù)次數(shù)到。若T/C開中斷(ET1)且CPU開中斷(EA1),則當(dāng)CPU轉(zhuǎn)向中斷服務(wù)程序時(shí),TF自動清0。2方式1當(dāng)TMOD中M1M001時(shí)。TC工作在方式1。方式1與方式0基本相同。唯一區(qū)別在于計(jì)數(shù)寄存器的位數(shù)是16位的,由TH和TL寄存器各提供8位,滿計(jì)數(shù)值為2“。3方式2 當(dāng)TMOD中M1M010時(shí),TC工作在方式2。方式2是8位的可自動重裝載的TC,滿計(jì)數(shù)值為2。在方式0和方式1中,當(dāng)計(jì)數(shù)滿后,若要進(jìn)行下一次定時(shí)計(jì)數(shù),須用軟件向TH和TL重裝預(yù)置計(jì)數(shù)初值。方式2中TH和TL被當(dāng)作兩個(gè)8位計(jì)數(shù)器,計(jì)數(shù)過程中,TH寄存8位初值

53、并保持不變,由TL進(jìn)行8位計(jì)數(shù)。計(jì)數(shù)溢出時(shí),除產(chǎn)生溢出中斷請求外,還自動將TH中初值重裝到了L,即重裝載。 除此之外,方式2也同方式0。4方式3方式3只適合于TC0。當(dāng)T/C0工作在方式3時(shí),TH0和TL0成為兩個(gè)獨(dú)立的計(jì)數(shù)器。這時(shí),TL0可作定時(shí)器計(jì)數(shù)器,占用TC0在TCON和TMOD寄存器中的控制位和標(biāo)志位;而TH0只能作定時(shí)器用,占用TC1的資源TR1和TF1。在這種情況下,TC1 仍可用于方式0、1、2,但不能使用中斷方式。只有將TC1用作串行口的波特率發(fā)生器時(shí),TC0才工作在方式3,以便增加一個(gè)定時(shí)器2.4.3定時(shí)器/計(jì)數(shù)器的初始化在使用8051的定時(shí)器計(jì)數(shù)器前,應(yīng)對它進(jìn)行編程初始化

54、,主要是對TCON和TMOD編程;計(jì)算和裝載TC的計(jì)數(shù)初值。一般完成以下幾個(gè)步驟:1.確定TC的工作方式編程TMOD寄存器;2.計(jì)算TC中的計(jì)數(shù)初值,并裝載到TH和TL;3.TC在中斷方式工作時(shí),須開CPU中斷和源中斷編程IE寄存器;4.啟動定時(shí)器計(jì)數(shù)器編程TCON中TR1或TR0位2.4.4中斷有關(guān)的概念所謂中斷,是指當(dāng)計(jì)算機(jī)執(zhí)行正常程序時(shí),系統(tǒng)中出現(xiàn)某些急需處理的異常情況和特殊請求,CPU暫時(shí)中止現(xiàn)行程序,轉(zhuǎn)去對隨機(jī)發(fā)生的更緊迫事件進(jìn)行處理,處理完畢后,CPU自動返回原來的程序繼續(xù)執(zhí)行。中斷允許軟件設(shè)計(jì)不需要關(guān)心系統(tǒng)其它部分的定時(shí)要求,算術(shù)程序不需要考慮隔幾個(gè)指令檢查IO設(shè)備是否需要服務(wù)。

55、相反,算術(shù)程序編寫時(shí)好像有無限的時(shí)間做算術(shù)運(yùn)算而無其他工作在進(jìn)行。若其它事件需要服務(wù)時(shí),通過中斷告訴系統(tǒng)。8051單片機(jī)有5個(gè)中斷源,有2個(gè)中斷優(yōu)先級,每個(gè)中斷源的優(yōu)先級可以編程控制。中斷允許受到CPU開中斷和中斷源開中斷的兩級控制。1.中斷源是指任何引起計(jì)算機(jī)中斷的事件,一般一臺機(jī)器允許有許多個(gè)中斷源。增加很少的硬件就可把各種硬件中斷源“線或”成為一個(gè)外部中斷輸入,然后再順序檢索引起中斷的特定源。8051單片機(jī)的5個(gè)中斷源是:外部中斷請求0,由INT0(P32)輸入;外部中斷請求1,由INT1(P33)輸入;片內(nèi)定時(shí)器計(jì)數(shù)器0溢出中斷請求;片內(nèi)定時(shí)器計(jì)數(shù)器1溢出中斷請求;片內(nèi)串行口發(fā)送接收中

56、斷請求。為了了解每個(gè)中斷源是否產(chǎn)生了中斷請求,中斷系統(tǒng)對應(yīng)設(shè)置多個(gè)中斷請求觸發(fā)器(標(biāo)志位)實(shí)現(xiàn)記憶。這些中斷源請求標(biāo)志位分別由特殊功能寄存器TCON和SCON的相應(yīng)位鎖存。定時(shí)器計(jì)數(shù)器控制寄存器TCON(Time/counter Control Register)IT0,IT1:外部中斷0,1觸發(fā)方式選擇位,由軟件設(shè)置。1一下降沿觸發(fā)方式,INT0INT1管腳上高到低的負(fù)跳變可引起中斷。0一電平觸發(fā)方式,INT0INT1管腳上低電平可引起中斷。IE0,IE1:外部中斷0,1請求標(biāo)志位。當(dāng)外部中斷0,1依據(jù)觸發(fā)方式滿足條件產(chǎn)生中斷請求時(shí),由硬件置位(IE0IE1=1). 當(dāng)CPU響應(yīng)中斷時(shí),由硬件清除(IE0IE10)。TF0,TF1:定時(shí)器計(jì)數(shù)器0,1(TC0,TC1)溢出中斷請求標(biāo)志。當(dāng)TC0,l計(jì)數(shù)溢出時(shí),由硬件置位(TF0TF11)。當(dāng)CPU響應(yīng)中斷時(shí),由硬

溫馨提示

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

評論

0/150

提交評論