




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、畢 業(yè) 設(shè) 計(jì) 論 文 基于RS485的溫度采集與顯示33畢業(yè)設(shè)計(jì)論文 論文題目【摘要】 單片機(jī)在檢測(cè)和控制系統(tǒng)中獲患上廣泛的應(yīng)用, 隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活、工作、科研、各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù), 本文主要介紹了一個(gè)基于AT89S52單片機(jī)的測(cè)溫系統(tǒng),詳細(xì)描述了利用數(shù)字溫度傳感器DS18B20開(kāi)發(fā)測(cè)溫系統(tǒng)的過(guò)程,重點(diǎn)對(duì)傳感器在單片機(jī)下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進(jìn)行了詳盡分析,對(duì)各部分的電路也一一進(jìn)行了介紹,該系統(tǒng)可以方便的實(shí)現(xiàn)溫度采集和顯示,它使用起來(lái)相當(dāng)方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點(diǎn),適合于我們?nèi)粘I詈凸?、農(nóng)業(yè)生
2、產(chǎn)中的溫度測(cè)量,也可以當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴(kuò)展。DS18B20與AT89S52結(jié)合實(shí)現(xiàn)最簡(jiǎn)溫度檢測(cè)系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,抗干擾能力強(qiáng),適合于惡劣環(huán)境下進(jìn)行現(xiàn)場(chǎng)溫度測(cè)量,有廣泛的應(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)思及原理說(shuō)
7、明1.1.1設(shè)計(jì)構(gòu)思1.1.2組件說(shuō)明1.2串口通信的有關(guān)概念1.2.1串行通訊的分類(lèi)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存儲(chǔ)器組織1.3.5復(fù)位方式1.3.6AT89S52的時(shí)鐘電路1.3.7外接晶體線第二章 硬件2.1 DS18B20數(shù)字溫度傳感器2.1.1 DS18B20的簡(jiǎn)介2.1.2DS18B20與單片機(jī)的典型接口電路2.1.3 DS18B20 使用中注意事項(xiàng)2.2 MAX485串口通信電路2.3硬件電路及定時(shí)/計(jì)數(shù)器與中斷的
8、原理簡(jiǎn)介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)試過(guò)程中的問(wèn)題及解決方法4.3.1硬件4.3.2軟件結(jié)論致謝參考文獻(xiàn)
9、附錄附錄A 33附錄B 附錄C 附錄D 畢業(yè)設(shè)計(jì)論文 論文題目緒論基于RS485的多機(jī)溫度采集與顯示的設(shè)計(jì)是通過(guò)溫度傳感器DS18B20來(lái)檢測(cè)溫度,然后通過(guò)MAX485通信模塊,將檢測(cè)到的溫度發(fā)射到電腦端的接收端,從而在電腦上(VB界面)顯示檢測(cè)到的溫度。設(shè)計(jì)中所使用的材料有:多功能開(kāi)發(fā)板,MAX485通信模塊,溫度傳感器(DS18B20),RS232-RS485接口。在兩個(gè)智能開(kāi)發(fā)板每個(gè)開(kāi)發(fā)板上安裝DS18B20溫度傳感器并顯示當(dāng)前檢測(cè)溫度值,板上的MAX485和RS232與485轉(zhuǎn)換接與PC機(jī)連接。在PC微機(jī)上用VB建立一界面顯示兩個(gè)智能板上所測(cè)的溫度。在所選擇的材料中,DS18B20具有
10、測(cè)量溫度范圍寬,測(cè)量精度高。MAX485具有結(jié)構(gòu)簡(jiǎn)單、價(jià)格低廉、通信距離和數(shù)據(jù)傳輸速率適當(dāng)?shù)忍攸c(diǎn)而被廣泛應(yīng)用于儀器儀表、智能化傳感器集散控制、樓宇控制、監(jiān)控報(bào)警等領(lǐng)域。RS-485是一個(gè)多引出線接口,這個(gè)接口可以有多個(gè)驅(qū)動(dòng)器和接收器,可以實(shí)現(xiàn)一臺(tái)PC和多臺(tái)單片機(jī)之間的串行通信;而且RS-485的最長(zhǎng)的傳輸距離為1200m,適合中距離的傳輸。第一章系統(tǒng)設(shè)計(jì)及概念1.1系統(tǒng)設(shè)計(jì)構(gòu)思及原理說(shuō)明1.1.1設(shè)計(jì)構(gòu)思在兩個(gè)智能開(kāi)發(fā)板分別安裝DS18B20溫度傳感器來(lái)顯示當(dāng)前檢測(cè)溫度值,將板上的MAX485和RS232與485轉(zhuǎn)換接口與PC機(jī)連接。在PC微機(jī)上用VB建立一界面顯示兩個(gè)智能板上所測(cè)的溫度。通過(guò)
11、多功能開(kāi)發(fā)板下載溫度檢測(cè)程序,與溫度檢測(cè)模塊連接,再連接通信模塊,再通過(guò)RS232-RS485轉(zhuǎn)接口與PC機(jī)連接即可實(shí)現(xiàn)PC與多單片機(jī)的多機(jī)通信。圖1-1-1-1 基于RS485的多機(jī)溫度采集與顯示總體設(shè)計(jì)框圖1.1.2組件說(shuō)明1.51系列單片機(jī)采用AT89S52單片機(jī)。2. DS18B20數(shù)字式溫度傳感器,使用集成芯片,采用單總線技術(shù),其能夠有效的減小外界的干擾,提高測(cè)量的精度。同時(shí),它可以直接將被測(cè)溫度轉(zhuǎn)化成串行數(shù)字信號(hào)供微機(jī)處理,接口簡(jiǎn)單, 使數(shù)據(jù)傳輸和處理簡(jiǎn)單化。能有效地降低成本,搭建電路和焊接電路時(shí)更快,調(diào)試也更方便簡(jiǎn)單化。DS18B20的測(cè)量溫度范圍為-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ǎn)單、價(jià)格低廉、通信距離和數(shù)據(jù)傳輸速率適當(dāng)?shù)忍攸c(diǎn)而被廣泛應(yīng)用于儀器儀表、智能化傳感器集散控制、樓宇控制、監(jiān)控報(bào)警等領(lǐng)域。4. RS-485是雙向、半雙工通信協(xié)議,允許多個(gè)驅(qū)動(dòng)器和接收器掛接在總線上,其中每個(gè)驅(qū)動(dòng)器都能夠脫離總線。即RS-485是一個(gè)多引出線接口,這個(gè)接口可以有多個(gè)驅(qū)動(dòng)器和接收器,可以實(shí)現(xiàn)一臺(tái)PC和多臺(tái)單片
13、機(jī)之間的串行通信;而且RS-485的最長(zhǎng)的傳輸距離為1200m, 接收器輸入阻抗和更寬的共模范圍(-7V至+12V),適合中距離的傳輸。1.2串口通信的有關(guān)概念1.2.1串行通訊的分類(lèi)按通信進(jìn)行的過(guò)程,分為:?jiǎn)喂?、半雙工、全雙工通信方式 1.單 工:只容許數(shù)據(jù)由一方發(fā)、一方收,單向通訊,如BP機(jī)。 2.半雙工:容許雙向通訊,但是收發(fā)只能分時(shí)共用一路通道,如對(duì)講機(jī)。3.全雙工:容許數(shù)據(jù)同時(shí)雙向收發(fā),如KEILC開(kāi)發(fā)裝置。1.2.2串口通信的有關(guān)概念1.RS-323C 標(biāo)準(zhǔn)是美國(guó) EIA(電子工業(yè)聯(lián)合會(huì))與 BELL 等公司一起開(kāi)發(fā)的 1969 年公布的通信協(xié)議。它適合于數(shù)據(jù)傳輸速率在 02000
14、0b/s 范圍內(nèi)的通信。這個(gè)標(biāo)準(zhǔn)對(duì)串行通信接口的有關(guān)問(wèn)題,如信號(hào)線功能、電器特性都作了明確規(guī)定。由于通行設(shè)備廠商都生產(chǎn)與 RS-232C 制式兼容的通信設(shè)備,因此,它作為一種標(biāo)準(zhǔn),目前已在微機(jī)通信接口中廣泛采用。2.傳輸率:所謂傳輸率就是指每秒傳輸多少位,傳輸率也常叫波特率。國(guó)際上規(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)對(duì)邏輯電平的各種信號(hào)線的功能作了規(guī)定,即信號(hào)電平標(biāo)準(zhǔn)和控制信號(hào)線的定義。RS-232C采用負(fù)邏輯規(guī)定邏輯電平,信號(hào)電平與通常的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ù)電壓來(lái)表示邏輯狀態(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é)會(huì)(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ī)上會(huì)有兩組 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ū)動(dòng)芯片(MAX232或14881489)可接成RS232C和通用微機(jī)進(jìn)行通信。波特率時(shí)鐘必須從內(nèi)部定時(shí)器1或定時(shí)器2獲得。若應(yīng)用要求RS232完全的握手功能,必須借助單片機(jī)其它管腳用軟件處理
17、。7. SCON和PCONSCON是串行口控制和狀態(tài)寄存器,它是一個(gè)可尋址的專(zhuān)用寄存器,用于串行數(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ù)通過(guò)RXD輸入輸出. 2.方式1是點(diǎn)對(duì)點(diǎn)的通信方式。方式1是10位異步通信方式,1位起始位(0),8位數(shù)據(jù)位和1位停止位(1)。其中的起始位和停止位在發(fā)送時(shí)是自動(dòng)插入的
18、。 3.方式2和方式3是9位異步串行通信,一般用在多機(jī)通信系統(tǒng)中或奇偶校驗(yàn)的通信過(guò)程。在通訊中,TB8和RB8位作為數(shù)據(jù)的第9位,位SM2也起作用。方式2與方式3的區(qū)別只是波特率的設(shè)置方式不同. 1.2.4初始化步驟在使用串行口之前,應(yīng)對(duì)它進(jìn)行編程初始化,主要是設(shè)置產(chǎn)生波特率的定時(shí)器1、串行口控制和中斷控制。具體步驟如下:1.確定定時(shí)器1的工作方式編程TMOD寄存器; 2.計(jì)算定時(shí)器1的初值裝載TH1、TL1;3.啟動(dòng)定時(shí)器1編程TCON中的TR1位;4.確定串行口的控制編程SCON; 5.串行口在中斷方式工作時(shí),須開(kāi)CPU和源中斷編程IE寄存器。1.3 AT89S52單片機(jī)1.3.1AT89
19、S52的原理與結(jié)構(gòu)1.AT89S52 概述AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。AT89S52使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(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 口線,看門(mén)狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)
20、數(shù)器,一個(gè)6向量2級(jí)中斷結(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. 功能說(shuō)明1.數(shù)據(jù)存儲(chǔ)器(RAM):片內(nèi)為128個(gè)字節(jié)(單元),AT89S52單
21、片機(jī)內(nèi)部有256個(gè)字節(jié)的RAM數(shù)據(jù)存儲(chǔ)器,片內(nèi)最多可外擴(kuò)64K字節(jié)。2.程序存儲(chǔ)器(ROMEPROM):803l無(wú)此部件,8051為4KROM;8751則為4KEPROM。AT89S51單片機(jī)內(nèi)部有4KB的閃存程序存儲(chǔ)器(Flash),當(dāng)不夠使用時(shí),可擴(kuò)展為64 KB外部程序存儲(chǔ)器。它們的邏輯空間是分開(kāi)的,并有各自的尋址機(jī)構(gòu)和尋址方式。這種結(jié)構(gòu)的單片機(jī)稱為哈佛型結(jié)構(gòu)單片機(jī)。3.中斷系統(tǒng):具有5個(gè)中斷源,2級(jí)中斷優(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è),用于對(duì)片內(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)算處理有明顯的長(zhǎng)處。4.AT89S52單片機(jī)的特性· 兼容MCS-51指令系統(tǒng) · 8k可反復(fù)擦寫(xiě)(>1000次)ISP Flash ROM · 1000次擦寫(xiě)周期 · 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級(jí)加密位 · 看門(mén)狗(WDT)電路 · 軟件設(shè)置空閑和省電功能靈活的ISP字節(jié)和分頁(yè)編程 · 雙數(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端口,對(duì)應(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位漏極開(kāi)路的雙向I/O口。在作為輸出口時(shí),每根引腳可以帶動(dòng)8個(gè)TTL輸入負(fù)載。當(dāng)把“1”寫(xiě)入P0時(shí),則它的引腳可用作高阻抗輸入。當(dāng)對(duì)外部程序或數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P0可用作多路復(fù)用的低字節(jié)地址/數(shù)據(jù)總線,在該模式,P0口擁有內(nèi)部上拉電阻。在對(duì)Flash存儲(chǔ)器進(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ū)動(dòng)(吸收或輸出電流方式)4個(gè)TTL輸入。對(duì)端口寫(xiě)“1”時(shí),通過(guò)內(nèi)部的上拉電阻把端口拉到高電位,此時(shí)可用作輸入口。P3口作輸入口使用時(shí),因?yàn)橛袃?nèi)部的上拉電阻,那些被外部信號(hào)拉低的引腳會(huì)輸出一個(gè)電流。在AT89S52中,同樣P3口還用于一些復(fù)用功能,如表1-2所列。在對(duì)Flash編程和程序校驗(yàn)期間,P3口還接收一些控制信號(hào)。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ù)存儲(chǔ)器寫(xiě)選通)P3.7RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)P3端口管腳復(fù)用功能表2-1-2-21.3.3控制線控制引腳ALE/PROG(30腳) 地址鎖存允許信號(hào)。在存取外部存儲(chǔ)器時(shí),這個(gè)輸出信號(hào)用于鎖存低字節(jié)地址。在對(duì)Flash存儲(chǔ)器編程時(shí),這條引腳用于輸入編程脈沖PROG。一般情況下,ALE是振蕩器頻率的6分頻信號(hào),可用于外部定時(shí)或時(shí)鐘。定頻率輸出的正脈沖,因此,可作為外部時(shí)鐘或外部定時(shí)脈沖使用。PSEN(29腳)外部程序存儲(chǔ)器讀選通信號(hào)。在
27、讀外部ROM時(shí),有效(低電平),以實(shí)現(xiàn)外部ROM單元的讀操作。EA/Vpp(31腳)訪問(wèn)程序存儲(chǔ)控制信號(hào)。當(dāng)信號(hào)為低電平時(shí),對(duì)ROM的讀操作限定在外部程序存儲(chǔ)器;當(dāng)信號(hào)為高電平時(shí),對(duì)ROM的讀操作是從內(nèi)部程序存儲(chǔ)器開(kāi)始,并可延至外部RSTVpp (9腳) 復(fù)位信號(hào)。當(dāng)輸入的復(fù)位信號(hào)延續(xù)兩個(gè)機(jī)器周期以上的高電平時(shí)即為有效,用以完成單片機(jī)的復(fù)位初始化操作。1.3.4存儲(chǔ)器組織ATMEL89S52單片機(jī)在物理上有四個(gè)存儲(chǔ)空間,ATMEL89S52片內(nèi)有256字節(jié)數(shù)據(jù)存儲(chǔ)器RAM和4KB的程序存儲(chǔ)器ROM。除此以外,還可以在片外擴(kuò)展RAM和ROM,并且各有64KB的尋址范圍。也就是最多可以在外部擴(kuò)展2
28、×64KB存儲(chǔ)器。89系列單片機(jī)可尋址的內(nèi)部和外部程序存儲(chǔ)器總空間為64KB。每個(gè)外部程序和數(shù)據(jù)存儲(chǔ)器的可尋址范圍高達(dá)64KB。它沒(méi)有采用程序存儲(chǔ)器分區(qū)的方法,64KB的地址空間是統(tǒng)一的。EA引腳接低電平時(shí),單片機(jī)就從外部程序存儲(chǔ)器中取指。ATMEL89S52最多可外擴(kuò)64K字節(jié)程序存儲(chǔ)器,64K程序存儲(chǔ)器中有5個(gè)單元具有特殊用途。5個(gè)特殊單元分別對(duì)應(yīng)于5種中斷源的中斷服務(wù)程序的人口地址.表2-1-4-1 各種中斷的子程序入口地址通常在這些人口地址處都放一條約對(duì)跳轉(zhuǎn)指令。加跳轉(zhuǎn)指令的目的是,由于兩個(gè)中斷入口間隔僅有八個(gè)單元,存放中斷服務(wù)程序往往是不夠用的。1.3.5復(fù)位方式單片機(jī)的復(fù)
29、位方式有上電自動(dòng)復(fù)位和手工復(fù)位兩種,其中C22uF,R200,Rk1k。RST引腳是復(fù)位信號(hào)的輸入瑞。復(fù)位信號(hào)是高電平有效。圖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)部方式和外部方式。外部方式:可以通過(guò)XTAL1和XTAL2接入外部時(shí)鐘。內(nèi)部方式:在XTAL1和XTAL2端外接入石英晶體作定時(shí)元件,內(nèi)部振蕩器自激振蕩,產(chǎn)生時(shí)鐘。時(shí)鐘發(fā)生器對(duì)振蕩脈沖進(jìn)行二分頻,因此,時(shí)鐘是一個(gè)雙相信號(hào),由P1相和P2相構(gòu)成。FOSC可在2MHZ-12MHZ選擇。小電容可以取30PF左右
30、。 圖2-1-6-1內(nèi)部方式時(shí)鐘電路其中電容為30PF,這種無(wú)極性電容是使單片機(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í)鐘脈沖信號(hào)。主電源引腳高VCC和低VSSVCC(40腳)+5V電源。VSS(20腳)地線(GND)。第二章 硬件2.1 DS18B20數(shù)字溫度傳感器2.1.1 DS18B20的簡(jiǎn)介1. DS18B20的概念DS18B20數(shù)字式溫度傳感器,與傳統(tǒng)
31、的熱敏電阻相比,使用集成芯片,采用單總線技術(shù),其能夠有效的減小外界的干擾,提高測(cè)量的精度。同時(shí),它可以直接將被測(cè)溫度轉(zhuǎn)化成串行數(shù)字信號(hào)供微機(jī)處理,接口簡(jiǎn)單, 使數(shù)據(jù)傳輸和處理簡(jiǎn)單化。 部分功能電路的集成,使總體硬件設(shè)計(jì)更簡(jiǎn)潔,能有效地降低成本,搭建電路和焊接電路時(shí)更快,調(diào)試也更方便簡(jiǎn)單化,這也就縮短了開(kāi)發(fā)的周期 。他能夠直接讀出被測(cè)溫度并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式。可以分別在93.75 ms和750 ms內(nèi)完成9位和12位的數(shù)字量,并且從DS18B20讀出的信息或?qū)懭隓S18B20的信息僅需要一根口線(單線接口)讀寫(xiě),溫度變換功率來(lái)源于數(shù)據(jù)總線,總線本身也可以向
32、所掛接的DS18B20供電,而無(wú)需額外電源。因而使用DS18B20可使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。2.DS18B20的優(yōu)點(diǎn)采用單總線的接口方式與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。單總線具有經(jīng)濟(jì)性好,抗干擾能力強(qiáng),適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,使用方便等優(yōu)點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念。 測(cè)量溫度范圍寬,測(cè)量精度高。DS18B20 的測(cè)量范圍為-55 +125 ;在-10+85 范圍內(nèi),精度為±0.5 。在使用中不需要任何外圍元器件即可實(shí)現(xiàn)測(cè)溫。 多點(diǎn)組網(wǎng)功能。多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)測(cè)溫
33、。供電方式靈活。DS18B20可以通過(guò)內(nèi)部寄生電路從數(shù)據(jù)線上獲取電源。因此,當(dāng)數(shù)據(jù)線上的時(shí)序滿足一定的要求時(shí),可以不接外電源,從而使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。測(cè)量參數(shù)可配置。DS18B20的測(cè)量分辨率可通過(guò)程序設(shè)定912位。負(fù)壓特性。電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。掉電保護(hù)功能。DS18B20內(nèi)部含有EEPROM,在系統(tǒng)掉電以后,它仍可保存分辨率及報(bào)警溫度的設(shè)定值。DS18B20 具有體積更小、適用電壓更寬、更經(jīng)濟(jì)、可選更小的封裝方式,更寬的電壓適用范圍,適合于構(gòu)建自己的經(jīng)濟(jì)的測(cè)溫系統(tǒng),因此也就被設(shè)計(jì)者們所青睞。3. DS18B20測(cè)溫原理低溫度系數(shù)晶振的振蕩頻率受
34、溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,為計(jì)數(shù)器提供一頻率穩(wěn)定的計(jì)數(shù)脈沖。高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,很敏感的振蕩器,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,為計(jì)數(shù)器2提供一個(gè)頻率隨溫度變化的計(jì)數(shù)脈沖。圖中還隱含著計(jì)數(shù)門(mén),當(dāng)計(jì)數(shù)門(mén)打開(kāi)時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門(mén)的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將-55 所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器 1 和溫度寄存器被預(yù)置在-55 所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1
35、的預(yù)置值減到0時(shí)溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直至溫度寄存器值達(dá)到被測(cè)溫度值。4. DS18B20 的管腳排列及封裝圖 圖2-1-1-1 DS18B20 的管腳排列及封裝圖DQ為數(shù)字信號(hào)輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端,電源供電 3.05.5V
36、(在寄生電源接線方式時(shí)接地)。2.1.2DS18B20與單片機(jī)的典型接口電路DS18B20的硬件接口非常簡(jiǎn)單。供電方式為計(jì)生電源供電或外部供電。 圖2-1-2-1DS18B20的接口電路采用寄生電源供電時(shí),在遠(yuǎn)程溫度測(cè)量和測(cè)量空間受限的情況下特別有價(jià)值。寄生電源供電的原理是在數(shù)據(jù)線為高電平的時(shí)候“竊取”數(shù)據(jù)線的電源,電荷被存儲(chǔ)在寄生供電電容上,用于在數(shù)據(jù)線為低的時(shí)候?yàn)樵O(shè)備提供電源。需要注意的是,DS18B20在進(jìn)行溫度轉(zhuǎn)換或者將高速緩存里面的數(shù)據(jù)復(fù)制到EEPROM中時(shí),所需的電流會(huì)達(dá)到1.5mA,超出了電容所能提供的電流,此時(shí)可采用一個(gè)MOSFET三極管來(lái)供電。2.1.3
37、 DS18B20 使用中注意事項(xiàng)DS1820 雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問(wèn)題:1.每一次讀寫(xiě)之前都要對(duì) DS18B20 進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條 ROM 指令,最后發(fā)送 RAM 指令,這樣才能對(duì) DS18B20 進(jìn)行預(yù)定的操作。2.在寫(xiě)數(shù)據(jù)時(shí),寫(xiě) 0 時(shí)單總線至少被拉低 60us, 寫(xiě) 1 時(shí) ,15us 內(nèi)就得釋放總線。3.轉(zhuǎn)化后得到的 12 位數(shù)據(jù),存儲(chǔ)在 18B20 的兩個(gè) 8 比特的 RAM 中,二進(jìn)制中的前面 5 位是符號(hào)位,如果測(cè)得的溫度大于 0 ,這 5 位為 0 ,只要將測(cè)到的數(shù)值乘于 0.0625 即可
38、得到實(shí)際溫度;如果溫度小于 0 ,這 5 位為 1 ,測(cè)到的數(shù)值需要取反加 1 再乘于 0.0625 即可得到實(shí)際溫度。4.較小的硬件開(kāi)銷(xiāo)需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于 DS1820 與微處理器間采用串行數(shù)據(jù)傳送,因此,在對(duì) DS1820 進(jìn)行讀寫(xiě)編程時(shí),必須嚴(yán)格的保證讀寫(xiě)時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。在使用 PL/M 、 C 等高級(jí)語(yǔ)言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對(duì) DS1820 操作部分最好采用匯編語(yǔ)言實(shí)現(xiàn)。5. 在 DS1820 的有關(guān)資料中均未提及單總線上所掛 DS1820 數(shù)量問(wèn)題,容易使人誤認(rèn)為可以掛任意多個(gè) DS1820 ,在實(shí)際應(yīng)用中并非如此。當(dāng)單總線上所掛 DS1820 超過(guò) 8
39、個(gè)時(shí),就需要解決微處理器的總線驅(qū)動(dòng)問(wèn)題,這一點(diǎn)在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。6. 連接 DS1820 的總線電纜是有長(zhǎng)度限制的。7.在 DS1820 測(cè)溫程序設(shè)計(jì)中,向 DS1820 發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待 DS1820 的返回信號(hào),一旦某個(gè) DS1820 接觸不好或斷線,當(dāng)程序讀該 DS1820 時(shí),將沒(méi)有返回信號(hào),程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行 DS1820 硬件連接和軟件設(shè)計(jì)時(shí)也要給予一定的重視。2.2 MAX485串口通信電路2.2.1 MAX485芯片的簡(jiǎn)介MAX485是芯片接口的一種類(lèi)型。MAX485接口芯片是Maxim公司的一種RS485芯片。采用單一電源+5 V工
40、作,額定電流為300 A,采用半雙工通訊方式。它完成將TTL電平轉(zhuǎn)換為RS485電平的功能。MAX485芯片的結(jié)構(gòu)和引腳都非常簡(jiǎn)單,內(nèi)部含有一個(gè)驅(qū)動(dòng)器和接收器。RO和DI端分別為接收器的輸出和驅(qū)動(dòng)器的輸入端,與單片機(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ā)送的差分信號(hào)端,當(dāng)A引腳的電平高于B時(shí),代表發(fā)送的數(shù)據(jù)為1;當(dāng)A的電平低于B端時(shí),代表發(fā)送的數(shù)據(jù)為0。在與單片機(jī)連接時(shí)
41、接線非常簡(jiǎn)單。只需要一個(gè)信號(hào)控制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ū)動(dòng)器擺率不受限制, 可以實(shí)現(xiàn)最高2.5Mbps的傳輸速率。這些收發(fā)器在驅(qū)動(dòng)器禁用的空載或滿載狀態(tài)下,吸取的電源電流在120A至500A之間。所有器件都工作在5
42、V單電源下。驅(qū)動(dòng)器具有短路電流限制,并可以通過(guò)熱關(guān)斷電路將驅(qū)動(dòng)器輸出置為高阻狀態(tài)。接收器輸入具有失效保護(hù)特性,當(dāng)輸入開(kāi)路時(shí),可以確保邏輯高電平輸出。具有較高的抗干擾性能。MAX485是市面上最為常見(jiàn)的RS422芯片,亦是用量最大的RS422芯片,性價(jià)比高,優(yōu)質(zhì),供貨穩(wěn)定是大部分廠家采用它的原因。 2.2.4 MAX485芯片的電路圖2-2-4-1MAX485引腳(管腳)圖及工作電路2.2.5MAX485的通信方式1.微機(jī)和智能儀器間基于RS485總線的主從方式點(diǎn)對(duì)多點(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)消息的格式;在通信接收過(guò)程中如果發(fā)生一錯(cuò)誤,或從設(shè)備不能執(zhí)行其命令,從設(shè)備將建立一錯(cuò)誤命令并把它作為回應(yīng)發(fā)送出去。盡管網(wǎng)絡(luò)通信方法是“對(duì)等”。如果一設(shè)備發(fā)送一消息,它只是作為主設(shè)備,并期望從從設(shè)備得到回應(yīng)。同樣,當(dāng)主設(shè)備接收到一消息,它將建立一從設(shè)備回應(yīng)格式并返回給發(fā)送的控制器。3.通訊方式全兼容,采用異步通信,起始位1位,數(shù)據(jù)位8位,停止位1位,無(wú)校驗(yàn)。數(shù)據(jù)傳輸速率為1.2 kbps、2.4kbps、4.8kbps、9.6kbps、19.2kbps。4.
44、與PC機(jī)通信方式PC機(jī)通過(guò)串行口(COM1或COM2)來(lái)實(shí)現(xiàn)與通信MCU之間的通信。由于PC機(jī)的COM口輸入/輸出的是RS-232電平,往往只能用于實(shí)現(xiàn)單點(diǎn)通信,且傳送距離有限,為了對(duì)其進(jìn)行擴(kuò)展,我們采用RS-232/RS-485接口轉(zhuǎn)換器,將其轉(zhuǎn)換為RS-485電平,從而通過(guò)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)電平,通過(guò)RS485總線實(shí)現(xiàn)與PC機(jī)的對(duì)接。MAX485通訊程序與MAX232通訊程序在本質(zhì)上是一樣的,只是M
45、AX485通訊程序需要加上通訊方向控制。在本設(shè)計(jì)的通信中,晶振為外部11.0592M ,MAX485的DE和RE短接連P2.7口.單片機(jī)與MAX485的連接如圖2-2-5-1所示PC通過(guò)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ù)器與中斷的原理簡(jiǎn)介2.3.1電路設(shè)計(jì)的組成電路設(shè)計(jì)中主要是由單片機(jī)的最小系統(tǒng)與顯示電路、DS18B20測(cè)溫電路、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顯示電路通過(guò)2個(gè)LED顯示模塊組成8個(gè)LED指示燈,P0口輸出段碼信號(hào),P2輸出位碼信號(hào)。這些信號(hào)由89SC52軟件生成。LED顯示器又稱數(shù)碼管,八段LED顯示器由8個(gè)發(fā)光二極管組成。其中7個(gè)發(fā)光二極管構(gòu)成字型“8”的各個(gè)筆畫(huà)段,另一個(gè)小數(shù)點(diǎn)為dp發(fā)光二極管。LED顯示器有兩種不同的形式:一種是發(fā)光二極管的陽(yáng)極都連在一起的,稱之為共陽(yáng)極LED顯示器;另一種是發(fā)光二極管的陰極都連在一
47、起的,為共陰極LED顯示器。如圖6-2-2所示:共陰和共陽(yáng)結(jié)構(gòu)的LED顯示器各筆劃段名和安排位置是相同的。當(dāng)二極管導(dǎo)通時(shí),相應(yīng)的筆劃段發(fā)亮,由發(fā)亮的筆劃段組合而顯示各種字符。8個(gè)筆劃段hgfedcba對(duì)應(yīng)于一個(gè)字節(jié)(8位)的D7 D6 D5 D4 D3 D2 D1 D0,于是用8位二進(jìn)制碼就可以表示欲顯示字符的字型代碼。例如,對(duì)于共陰LED顯示器,當(dāng)公共陰極接地(為零電平),而陽(yáng)極hgfedcba各段為0111011時(shí),顯示器顯示"P"字符,即對(duì)于共陰極LED顯示器,“P”字符的字形碼是73H。如果是共陽(yáng)LED顯示器,公共陽(yáng)極接高電平,顯示“P”字符的字形代碼應(yīng)為10001
48、100(8CH). 圖2-3-3-1 LED數(shù)碼管共陽(yáng)極和共陰極示圖LED顯示方式有動(dòng)態(tài)顯示和靜態(tài)顯示兩種方式。本系統(tǒng)采用動(dòng)態(tài)掃描顯示接口電路,動(dòng)態(tài)顯示接口電路是把所有顯示器的8個(gè)筆劃段a-h同名端連在一起,而每一個(gè)顯示器的公共極COM各自獨(dú)立地受I/O線控制。CPU向字段輸出口送出字型碼時(shí),所有顯示器接收到相同的字型碼,但究竟是哪個(gè)顯示器亮,則取決于COM端。也就是說(shuō)我們可以采用分時(shí)的方法,輪流控制各個(gè)顯示器的COM端,使各個(gè)顯示器輪流點(diǎn)亮。在輪流點(diǎn)亮掃描過(guò)程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的(約1ms),但由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮,但只
49、要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。2.4定時(shí)器/計(jì)數(shù)器有關(guān)的概念805l系列單片機(jī)至少有兩個(gè)16位內(nèi)部定時(shí)器計(jì)數(shù)器,若是計(jì)數(shù)內(nèi)部晶振驅(qū)動(dòng)時(shí)鐘,則它是定時(shí)器;若是計(jì)數(shù)8051的輸入引腳的脈沖信號(hào),則是計(jì)數(shù)器。805l的TC是加1計(jì)數(shù)的。定時(shí)器實(shí)際上也是工作在計(jì)數(shù)方式下,只不過(guò)對(duì)固定頻率的脈沖計(jì)數(shù),由于脈沖周期固定,由計(jì)數(shù)值可以計(jì)算出時(shí)間,有定時(shí)功能。當(dāng)TC工作在定時(shí)器時(shí),對(duì)振蕩源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ù)脈沖來(lái)自外部脈沖輸入管腳T0(
50、P34)或T1(P35),當(dāng)T0或T1腳上負(fù)跳變時(shí)計(jì)數(shù)值加1。識(shí)別管腳上的負(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)中,對(duì)應(yīng)TC0為T(mén)H0和TL0,對(duì)應(yīng)TC1為T(mén)H1和TL1。定時(shí)器計(jì)數(shù)器的初始值通過(guò)TH1TH0和TL1TL0設(shè)置。2. 定時(shí)器計(jì)數(shù)器控制寄存器TCON TR0,TR1:TC0,1啟動(dòng)控制位。1-啟動(dòng)計(jì)數(shù)。
51、 0-停止計(jì)數(shù)。TCON復(fù)位后清“0”,TC需受到軟件控制才能啟動(dòng)計(jì)數(shù),當(dāng)計(jì)數(shù)寄存器計(jì)滿時(shí),產(chǎn)生向高位的進(jìn)位TF,即溢出中斷請(qǐng)求標(biāo)志。3TC的方式控制寄存器TMODCT:計(jì)數(shù)器或定時(shí)器選擇位。1一為計(jì)數(shù)器。 0一為定時(shí)器。GATE:門(mén)控信號(hào)。1-TC的啟動(dòng)受到雙重控制,即要求TR0TR1和INT0/INT1同時(shí)為高。0-TC的啟動(dòng)僅受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,但啟動(dòng)前可以預(yù)置計(jì)數(shù)初值。TC啟動(dòng)后立即加1計(jì)數(shù),當(dāng)13位計(jì)數(shù)滿時(shí),TH向高位進(jìn)
52、位,此進(jìn)位將中斷溢出標(biāo)志TF置1,產(chǎn)生中斷請(qǐng)求,表示定時(shí)時(shí)間到或計(jì)數(shù)次數(shù)到。若T/C開(kāi)中斷(ET1)且CPU開(kāi)中斷(EA1),則當(dāng)CPU轉(zhuǎn)向中斷服務(wù)程序時(shí),TF自動(dòng)清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位的可自動(dòng)重裝載的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ù)過(guò)程中,TH寄存8位初值
53、并保持不變,由TL進(jìn)行8位計(jì)數(shù)。計(jì)數(shù)溢出時(shí),除產(chǎn)生溢出中斷請(qǐng)求外,還自動(dòng)將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)對(duì)它進(jìn)行編程初始化
54、,主要是對(duì)TCON和TMOD編程;計(jì)算和裝載TC的計(jì)數(shù)初值。一般完成以下幾個(gè)步驟:1.確定TC的工作方式編程TMOD寄存器;2.計(jì)算TC中的計(jì)數(shù)初值,并裝載到TH和TL;3.TC在中斷方式工作時(shí),須開(kāi)CPU中斷和源中斷編程IE寄存器;4.啟動(dòng)定時(shí)器計(jì)數(shù)器編程TCON中TR1或TR0位2.4.4中斷有關(guān)的概念所謂中斷,是指當(dāng)計(jì)算機(jī)執(zhí)行正常程序時(shí),系統(tǒng)中出現(xiàn)某些急需處理的異常情況和特殊請(qǐng)求,CPU暫時(shí)中止現(xiàn)行程序,轉(zhuǎn)去對(duì)隨機(jī)發(fā)生的更緊迫事件進(jìn)行處理,處理完畢后,CPU自動(dòng)返回原來(lái)的程序繼續(xù)執(zhí)行。中斷允許軟件設(shè)計(jì)不需要關(guān)心系統(tǒng)其它部分的定時(shí)要求,算術(shù)程序不需要考慮隔幾個(gè)指令檢查IO設(shè)備是否需要服務(wù)。
55、相反,算術(shù)程序編寫(xiě)時(shí)好像有無(wú)限的時(shí)間做算術(shù)運(yùn)算而無(wú)其他工作在進(jìn)行。若其它事件需要服務(wù)時(shí),通過(guò)中斷告訴系統(tǒng)。8051單片機(jī)有5個(gè)中斷源,有2個(gè)中斷優(yōu)先級(jí),每個(gè)中斷源的優(yōu)先級(jí)可以編程控制。中斷允許受到CPU開(kāi)中斷和中斷源開(kāi)中斷的兩級(jí)控制。1.中斷源是指任何引起計(jì)算機(jī)中斷的事件,一般一臺(tái)機(jī)器允許有許多個(gè)中斷源。增加很少的硬件就可把各種硬件中斷源“線或”成為一個(gè)外部中斷輸入,然后再順序檢索引起中斷的特定源。8051單片機(jī)的5個(gè)中斷源是:外部中斷請(qǐng)求0,由INT0(P32)輸入;外部中斷請(qǐng)求1,由INT1(P33)輸入;片內(nèi)定時(shí)器計(jì)數(shù)器0溢出中斷請(qǐng)求;片內(nèi)定時(shí)器計(jì)數(shù)器1溢出中斷請(qǐng)求;片內(nèi)串行口發(fā)送接收中
56、斷請(qǐng)求。為了了解每個(gè)中斷源是否產(chǎn)生了中斷請(qǐng)求,中斷系統(tǒng)對(duì)應(yīng)設(shè)置多個(gè)中斷請(qǐng)求觸發(fā)器(標(biāo)志位)實(shí)現(xiàn)記憶。這些中斷源請(qǐng)求標(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請(qǐng)求標(biāo)志位。當(dāng)外部中斷0,1依據(jù)觸發(fā)方式滿足條件產(chǎn)生中斷請(qǐng)求時(shí),由硬件置位(IE0IE1=1). 當(dāng)CPU響應(yīng)中斷時(shí),由硬件清除(IE0IE10)。TF0,TF1:定時(shí)器計(jì)數(shù)器0,1(TC0,TC1)溢出中斷請(qǐng)求標(biāo)志。當(dāng)TC0,l計(jì)數(shù)溢出時(shí),由硬件置位(TF0TF11)。當(dāng)CPU響應(yīng)中斷時(shí),由硬
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 萊蕪市2024-2025學(xué)年五年級(jí)數(shù)學(xué)第二學(xué)期期末監(jiān)測(cè)試題含答案
- 山東省濱州市鄒平雙語(yǔ)學(xué)校一、二區(qū)2024-2025學(xué)年高三下學(xué)期物理試題周測(cè)試卷含解析
- 安全教育活動(dòng)中班教案
- 2024-2025公司項(xiàng)目部負(fù)責(zé)人安全培訓(xùn)考試試題【含答案】
- 汽車(chē)行業(yè)數(shù)據(jù)分析報(bào)告
- 2025年中國(guó)清洗機(jī)配件市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)水泡電熱管市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)機(jī)械振打袋式除塵器市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)折疊式初效空氣過(guò)濾器市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)底碗紙進(jìn)筒機(jī)市場(chǎng)調(diào)查研究報(bào)告
- 2022年第三屆大學(xué)生組織管理能力大賽真題題庫(kù)和答案
- 理綜-新疆烏魯木齊市2024年高三三??荚囋囶}和答案
- 聾啞人輔助交流系統(tǒng)
- 帶狀皰疹病人的個(gè)案護(hù)理
- 《中藥鑒定技術(shù)》課件-五味子的鑒定
- 大數(shù)據(jù) AI大模型-智慧統(tǒng)計(jì)大數(shù)據(jù)平臺(tái)解決方案(2023版)
- 江蘇省安全員《B證》考試題庫(kù)及答案
- 自殺及其預(yù)防課件
- 灰姑娘童話故事
- 等離子切割機(jī)操作手冊(cè)與安全操作規(guī)程
- 印刷合同:紙袋印刷合作
評(píng)論
0/150
提交評(píng)論