




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、畢 業(yè) 設(shè) 計(jì) 論 文 基于RS485的多機(jī)溫度采集與顯示 陳 紅 香 指導(dǎo)老師姓名: 晏 文 靖 專(zhuān) 業(yè) 名 稱(chēng):電子信息工程技術(shù) 班 級(jí) 學(xué) 號(hào): 論文提交日期: 2010年01月07日 論文答辯日期: 2010年01月13日 2010年 01月 13 日【摘要】溫度是工業(yè)控制中主要的被控參數(shù)之一,特別是在冶金、化工、建材、食品、機(jī)械、石油等工業(yè)中,具有舉足重輕的作用。隨著電子技術(shù)和微型計(jì)算機(jī)的迅速發(fā)展,微機(jī)測(cè)量和控制技術(shù)得到了迅速的發(fā)展和廣泛的應(yīng)用。單片機(jī)具有處理能強(qiáng)、運(yùn)行速度快、功耗低等優(yōu)點(diǎn),應(yīng)用在溫度測(cè)量與控制方面,控制簡(jiǎn)單方便,測(cè)量范圍廣,精度較高。多機(jī)溫度監(jiān)測(cè)系統(tǒng)可實(shí)現(xiàn)對(duì)多點(diǎn)溫度
2、的測(cè)量,并能根據(jù)設(shè)定值對(duì)環(huán)境溫度進(jìn)行調(diào)節(jié),實(shí)現(xiàn)控溫的目的。本設(shè)計(jì)基于DS18B20傳感器的溫度測(cè)量和AT89S52單片機(jī)的控制裝置,通過(guò)MAX485通信模塊將溫度數(shù)據(jù)傳回計(jì)算機(jī)控制端,從而實(shí)現(xiàn)對(duì)環(huán)境溫度進(jìn)行監(jiān)測(cè)。 本設(shè)計(jì)就是利用一臺(tái)PC機(jī)與兩塊單片機(jī)所組成的主從式溫度監(jiān)測(cè)系統(tǒng)。在本系統(tǒng)中上位機(jī)以PC和Windows操作系統(tǒng)為軟硬件資源,下位機(jī)采用ATMEL公司的AT89S52,總線(xiàn)采用的是測(cè)控系統(tǒng)常用的RS-485。【關(guān)鍵詞】AT89S52 PC機(jī)與單片機(jī)通信 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章 系統(tǒng)設(shè)計(jì)原理及要求21.1 設(shè)計(jì)思路21.2 總體設(shè)計(jì)思路框圖21.3 各部分組件說(shuō)明2第2章 AT89S52單片機(jī)的原理與結(jié)構(gòu)32.1 AT89SXX系列單片機(jī)的內(nèi)部結(jié)構(gòu)42.2 AT89S52單片機(jī)的引腳功能42.2.1 I/O端口線(xiàn)輸入輸出引腳42.2.2 控制線(xiàn)控制引
8、腳42.2.3 外接晶體線(xiàn)52.3 AT89S52存儲(chǔ)器組織52.4 AT89S52程序存儲(chǔ)器52.5 AT89S52的復(fù)位方式62.6 AT89S52的時(shí)鐘電路6第3章 串口通信的基本原理73.1 串口通信的有關(guān)概念73.2 RS-232有關(guān)的串行通信概念73.3 與串行口有關(guān)的SFR73.3.1 串行通信控制寄存器SCON73.3.2 電源控制器PCON83.4串行口的工作方式83.5串行口的初始化103.5.1 串行口波特率103.5.2 初始化步驟10第4章 DS18B20溫度傳感器114.1 DS18B20的簡(jiǎn)介114.2 DS18B20的特點(diǎn)114.3 DS18B20的封裝結(jié)構(gòu)11
9、4.4 DS18B20的測(cè)溫原理124.5 DS18B20與單片機(jī)的典型接口電路124.6 DS18B20的軟件設(shè)計(jì)13第5章 定時(shí)/計(jì)數(shù)器與中斷的原理及應(yīng)用145.1 定時(shí)器/計(jì)數(shù)器有關(guān)的概念145.1.1 與T/C有關(guān)的特殊功能寄存器145.1.2 定時(shí)器/計(jì)數(shù)器的工作方式155.1.3 定時(shí)器/計(jì)數(shù)器的初始化165.2 中斷有關(guān)的概念165.2.1 中斷源165.2.2中斷的控制175.2.3中斷響應(yīng)18第6章 硬件電路其他元器件簡(jiǎn)介196.1 單片機(jī)的最小系統(tǒng)196.2 數(shù)碼管的顯示電路196.3 MAX485串口通信電路206.3.1 MAX485芯片簡(jiǎn)介206.3.2 通信方式21
10、6.3.3 與PC機(jī)通信方式22第7章 系統(tǒng)軟件的設(shè)計(jì)與實(shí)現(xiàn)方法237.1 軟件的使用237.1.1 AT89S52的編程器的使用237.1.2串口調(diào)試助手V2.2的使用方法237.2 程序設(shè)計(jì)框圖237.2.1 DS18B20溫度采集設(shè)計(jì)237.2.2 PC機(jī)與單片機(jī)的通信程序設(shè)計(jì)24第8章 調(diào)試278.1 調(diào)試環(huán)境278.1.1 硬件調(diào)試278.1.2 軟件調(diào)試278.2 調(diào)試過(guò)程278.2.1 硬件278.2.2 軟件278.3 硬件調(diào)試過(guò)程的問(wèn)題及解決辦法278.4 軟件調(diào)試過(guò)程的問(wèn)題及解決辦法288.5 本次設(shè)計(jì)結(jié)果28結(jié) 論29致 謝30參考文獻(xiàn)31附 錄32附錄A 硬件電路實(shí)物圖
11、32附錄B VB6.0效果圖33緒 論基于RS485的多機(jī)溫度采集與顯示是通過(guò)DS18B20檢測(cè)溫度,然后通過(guò)MAX485通信模塊,將檢測(cè)到的溫度發(fā)射到電腦端的接收端,從而在電腦上(VB界面)顯示檢測(cè)到的溫度。系統(tǒng)中使用到的主要材料有:MAX485通信模塊,多功能開(kāi)發(fā)板,溫度傳感器(DS18B20),RS232-RS485接口.在實(shí)際檢測(cè)時(shí),主要通過(guò)溫度傳感器(DS 18B20)的溫度檢測(cè)功能,以及MAX485通信模塊的多機(jī)串行通信功能,去實(shí)現(xiàn)多組溫度在電腦端的顯示。電腦端主要通過(guò)VB程序(Visual Basic),得以將開(kāi)發(fā)板上的溫度檢測(cè)系統(tǒng)(DS 18B20)所測(cè)得的溫度在電腦端顯示。通
12、信模塊采用了MAX485總線(xiàn)通信模塊,這種模式由于具有結(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è)多引出線(xiàn)接口,這個(gè)接口可以有多個(gè)驅(qū)動(dòng)器和接收器,可以實(shí)現(xiàn)一臺(tái)PC和多臺(tái)單片機(jī)之間的串行通信;而且RS-485的最長(zhǎng)的傳輸距離為1200m,適合中距離的傳輸。多功能開(kāi)發(fā)板通過(guò)下載溫度檢測(cè)程序(由AT89S52接收程序),與溫度檢測(cè)模塊(DS 18B20)連接,再連接MAX485通信模塊,再通過(guò)RS232-RS485轉(zhuǎn)接口與PC機(jī)連接即可實(shí)現(xiàn)PC與多單片機(jī)的多機(jī)通信。第1章 系統(tǒng)設(shè)計(jì)原理及要求1.1 設(shè)計(jì)
13、思路有兩個(gè)智能開(kāi)發(fā)板每個(gè)開(kāi)發(fā)板上安裝DS18B20溫度傳感器并顯示當(dāng)前檢測(cè)溫度值,板上的MAX485和RS232與485轉(zhuǎn)換接口與PC機(jī)連接。在PC微機(jī)上用VB建立一界面顯示兩個(gè)智能板上所測(cè)的溫度。1.2 總體設(shè)計(jì)思路框圖圖1-2 基于RS485的多機(jī)溫度采集與顯示總體設(shè)計(jì)框圖1.3 各部分組件說(shuō)明DS18B20是“一線(xiàn)總線(xiàn)”數(shù)字化溫度傳感器,測(cè)量溫度范圍為-55+125,在-10+85,精度范圍為0.5。51系列單片機(jī)采用AT89S52單片機(jī)。通信模塊采用了MAX485總線(xiàn)通信模塊,這種模式由于具有結(jié)構(gòu)簡(jiǎn)單、價(jià)格低廉、通信距離和數(shù)據(jù)傳輸速率適當(dāng)?shù)忍攸c(diǎn)而被廣泛應(yīng)用于儀器儀表、智能化傳感器集散控
14、制、樓宇控制、監(jiān)控報(bào)警等領(lǐng)域。RS-485是一個(gè)多引出線(xiàn)接口,這個(gè)接口可以有多個(gè)驅(qū)動(dòng)器和接收器,可以實(shí)現(xiàn)一臺(tái)PC和多臺(tái)單片機(jī)之間的串行通信;而且RS-485的最長(zhǎng)的傳輸距離為1200m,適合中距離的傳輸。在計(jì)算機(jī)接收端,編輯一個(gè)VB程序,用于接收數(shù)據(jù)和顯示溫度。第2章 AT89S52單片機(jī)的原理與結(jié)構(gòu)2.1 AT89SXX系列單片機(jī)的內(nèi)部結(jié)構(gòu)ATMEL89系列(以下簡(jiǎn)稱(chēng)AT89)單片機(jī)是美國(guó)ATMEL公司生產(chǎn)的8位高性能單片機(jī),其主要技術(shù)優(yōu)勢(shì)是內(nèi)部含有可編程Flash存儲(chǔ)器,用戶(hù)可以很方便地進(jìn)行程序的擦寫(xiě)操作,在嵌入式控制領(lǐng)域中被廣泛的應(yīng)用。內(nèi)部結(jié)構(gòu)如圖2-1所示圖2-1 MCS-51系列單片
15、機(jī)的內(nèi)部結(jié)構(gòu)圖下面對(duì)各功能部件作進(jìn)一步的說(shuō)明:數(shù)據(jù)存儲(chǔ)器(RAM):片內(nèi)為128個(gè)字節(jié)(單元),AT89S52單片機(jī)內(nèi)部有256個(gè)字節(jié)的RAM數(shù)據(jù)存儲(chǔ)器,片內(nèi)最多可外擴(kuò)64K字節(jié)。程序存儲(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ī)稱(chēng)為哈佛型結(jié)構(gòu)單片機(jī)。中斷系統(tǒng):具有5個(gè)中斷源,2級(jí)中斷優(yōu)先權(quán)。定時(shí)器/計(jì)數(shù)器:2個(gè)16位的定時(shí)器計(jì)數(shù)器,具有四種工作方式。串行口;一個(gè)全
16、雙工的串行口,具有四種工作方式。Pl口、P2口、P3口、P0口:為4個(gè)并行8位IO口。特殊功能寄存器(SFR):共有21個(gè),用于對(duì)片內(nèi)各功能模塊進(jìn)行管理、控制、監(jiān)視。實(shí)際上是一些控制寄存器和狀態(tài)寄存器,是一個(gè)特殊功能的RAM區(qū)。微處理器(CPU):為8位的CPU,且內(nèi)含一個(gè)1位CPU(位處理器),不僅可處理字節(jié)數(shù)據(jù),還可以進(jìn)行位變量的處理。8位機(jī)在數(shù)據(jù)采集,運(yùn)算處理有明顯的長(zhǎng)處。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è)。 2.2
17、 AT89S52單片機(jī)的引腳功能圖2-2 AT89S52單片機(jī)的引腳圖2.2.1 I/O端口線(xiàn)輸入輸出引腳P0.0P0.7(3932):P0口是一個(gè)漏極開(kāi)路型準(zhǔn)雙向IO口。在訪(fǎng)問(wèn)外部存儲(chǔ)器時(shí),它是分時(shí)多路轉(zhuǎn)換的地址(低8位)和數(shù)據(jù)總線(xiàn),在訪(fǎng)問(wèn)期間激活了內(nèi)部的上拉電阻。在EPROM編程時(shí),它接收指令字節(jié),而在驗(yàn)證程序時(shí),則輸出指令字節(jié)。驗(yàn)證時(shí),要求外接上拉電阻。P1.0P1.7(1-8):P1口是帶內(nèi)部上拉電阻的8位雙向IO口。在EPROM編程和程序驗(yàn)證時(shí),它接收低8位地址。P2.0P2.7(21-28):P2口是一個(gè)帶內(nèi)部上拉電阻的8位雙向IO口。在訪(fǎng)問(wèn)外部存儲(chǔ)器時(shí),它送出高8位地址。在對(duì)EF
18、ROM編程和程序驗(yàn)證期間,它接收高8位地址。P3.0P3.7(10-17):P3口是一個(gè)帶內(nèi)部上拉電阻的8位雙向IO口。在MCS5l中,這8個(gè)引腳還兼有專(zhuān)用功能,P3的8條口線(xiàn)都定義有第二功能,詳見(jiàn)表2-2-1:表2-2-1:P3口各引腳與第二功能2.2.2 控制線(xiàn)控制引腳ALE(30腳)地址鎖存控制信號(hào)。在系統(tǒng)擴(kuò)展時(shí),ALE用于控制P0口輸出的低8位地址鎖存起來(lái),以實(shí)現(xiàn)低位地址和數(shù)據(jù)的隔離。此外,由于A(yíng)LE是以晶振1/6的固定頻率輸出的正脈沖,因此,可作為外部時(shí)鐘或外部定時(shí)脈沖使用。PSEN(29腳)外部程序存儲(chǔ)器讀選通信號(hào)。在讀外部ROM時(shí),有效(低電平),以實(shí)現(xiàn)外部ROM單元的讀操作。E
19、A/Vpp(31腳)訪(fǎng)問(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)始,并可延至外部程序存儲(chǔ)器。RSTVpp (9腳) 復(fù)位信號(hào)。當(dāng)輸入的復(fù)位信號(hào)延續(xù)兩個(gè)機(jī)器周期以上的高電平時(shí)即為有效,用以完成單片機(jī)的復(fù)位初始化操作。2.2.3 外接晶體線(xiàn)XTAL1(19腳)和XTAL2(18腳)外接晶體引線(xiàn)端。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此二引線(xiàn)端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號(hào)。主電源引腳高VCC和低VSSVCC(40腳)+5V電源。VSS(20腳)地線(xiàn)(GND)。 2.3 AT89S52存儲(chǔ)
20、器組織ATMEL89S52單片機(jī)在物理上有四個(gè)存儲(chǔ)空間:片內(nèi)程序存儲(chǔ)器和片外程序存儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器。ATMEL89S52片內(nèi)有256字節(jié)數(shù)據(jù)存儲(chǔ)器RAM和4KB的程序存儲(chǔ)器ROM。除此以外,還可以在片外擴(kuò)展RAM和ROM,并且各有64KB的尋址范圍。也就是最多可以在外部擴(kuò)展264KB存儲(chǔ)器。ATMEL89S52的存儲(chǔ)器組織結(jié)構(gòu)如圖2-3所示:圖2-3-1 ATMEL89S52存儲(chǔ)器組織結(jié)構(gòu)2.4 AT89S52程序存儲(chǔ)器ATMEL89S52最多可外擴(kuò)64K字節(jié)程序存儲(chǔ)器,64K程序存儲(chǔ)器中有5個(gè)單元具有特殊用途。5個(gè)特殊單元分別對(duì)應(yīng)于5種中斷源的中斷服務(wù)程序的人口地址,見(jiàn)表
21、2-4:表2-4 各種中斷的子程序入口地址通常在這些人口地址處都放一條約對(duì)跳轉(zhuǎn)指令。加跳轉(zhuǎn)指令的目的是,由于兩個(gè)中斷入口間隔僅有八個(gè)單元,存放中斷服務(wù)程序往往是不夠用的。2.5 AT89S52的復(fù)位方式單片機(jī)的復(fù)位方式有上電自動(dòng)復(fù)位和手工復(fù)位兩種,其中C22uF,R200,Rk1k。RST引腳是復(fù)位信號(hào)的輸入瑞。復(fù)位信號(hào)是高電平有效。圖2-5 上電復(fù)位電路2.6 AT89S52的時(shí)鐘電路單片機(jī)的晶振電路也叫時(shí)鐘電路,是單片機(jī)時(shí)序的基礎(chǔ)。單片機(jī)內(nèi)部有振蕩器,可以產(chǎn)生時(shí)鐘。時(shí)鐘可以由兩種方式產(chǎn)生:內(nèi)部方式和外部方式。外部方式:可以通過(guò)XTAL1和XTAL2接入外部時(shí)鐘。內(nèi)部方式:在XTAL1和XT
22、AL2端外接入石英晶體作定時(shí)元件,內(nèi)部振蕩器自激振蕩,產(chǎn)生時(shí)鐘。時(shí)鐘發(fā)生器對(duì)振蕩脈沖進(jìn)行二分頻,因此,時(shí)鐘是一個(gè)雙相信號(hào),由P1相和P2相構(gòu)成。FOSC可在2MHZ-12MHZ選擇。小電容可以取30PF左右。圖2-6內(nèi)部方式時(shí)鐘電路其中電容為30PF,這種無(wú)極性電容是使單片機(jī)易起振并保持串口通信,準(zhǔn)確計(jì)算出波特率。一般情況晶振選用12MHZ,但串行通信時(shí),使用11.0592MHZ。第3章 串口通信的基本原理 3.1 串口通信的有關(guān)概念1、RS-232是串行數(shù)據(jù)接口標(biāo)準(zhǔn),最初都是美國(guó)EIA(電子工業(yè)聯(lián)合會(huì))制訂并發(fā)布的,1969年公布的通信協(xié)議,適合的數(shù)傳率為020bps。2、傳輸率:所謂傳輸率
23、就是指每秒傳輸多少位,傳輸率也常叫波特率。國(guó)際上規(guī)定了一個(gè)標(biāo)準(zhǔn)波特率系列,標(biāo)準(zhǔn)波特率也是最常用的波特率,標(biāo)準(zhǔn)波特率系列為110、300、600、1200、4800、9600和19200。在通信為保證通信正確,必須通信雙方必須同一波特率。3、RS-232-C標(biāo)準(zhǔn):RS-232-C標(biāo)準(zhǔn)對(duì)邏輯電平的各種信號(hào)線(xiàn)的功能作了規(guī)定,即信號(hào)電平標(biāo)準(zhǔn)和控制信號(hào)線(xiàn)的定義。RS-232C采用負(fù)邏輯規(guī)定邏輯電平,信號(hào)電平與通常的TTL電平不兼容,邏輯“1”=-3V-15V邏輯“0”=+3V+與TTL電平不一樣可用TTL/EIA轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。4、RS232接口芯片實(shí)現(xiàn)了TTL標(biāo)準(zhǔn)和RS-232-C標(biāo)準(zhǔn)之間的電平轉(zhuǎn)換。
24、5、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ī)其它管腳用軟件處理。3.2 RS-232有關(guān)的串行通信概念RS232是個(gè)人計(jì)算機(jī)上的通訊接口之一,由電子工業(yè)協(xié)會(huì)(Electronic Industries Asso
25、ciation,EIA) 所制定的異步傳輸標(biāo)準(zhǔn)接口。通常 RS-232 接口以9個(gè)接腳 (DB-9) 或是25個(gè)接腳 (DB-25) 的型態(tài)出現(xiàn),一般個(gè)人計(jì)算機(jī)上會(huì)有兩組 RS-232 接口,分別稱(chēng)為 COM1 和 COM2。3.3 與串行口有關(guān)的SFR3.3.1 串行通信控制寄存器SCONSCON是串行口控制和狀態(tài)寄存器,其格式如下:SM0、SM1:串行口工作方式控制位,具體工作方式見(jiàn)表3-3-1所示:表3-3-1 串行口工作方式控制SMO SM1工作方式說(shuō) 明波特串0 0方式0同步移位寄存器fosc120 1方式110位異步收發(fā)由定時(shí)器控制1 0方式211位異步收發(fā)fosc32或fosc6
26、41 1方式311位異步收發(fā)由定時(shí)器控制SM2:多機(jī)通信控制位(方式2,3)。1一只有接收到第9位(RB8)為1,RI才置位。 0-收到字符N就置位。REN:串行口接收允許位。1一允許串行口接收。 0一禁止串行口接收。TB8:方式2和方式3時(shí),為發(fā)送的第9位數(shù)據(jù),也可以作奇偶校驗(yàn)位。RB8:方式2和方式3時(shí),為接收到的第9位數(shù)據(jù);方式1時(shí),為接收到的停止位。TI:發(fā)送中斷標(biāo)志。由硬件置位,必須由軟件清0。RI:接收中斷標(biāo)志。由硬件置位,必須由軟件清0。3.3.2 電源控制器PCONPCON的第7位SMOD是與串行口的波特率設(shè)置有關(guān)的選擇位。SMOD:串行口波特率加倍位。1方式1,3波特率定時(shí)器
27、1溢出率16;方式2波特率為fosc32; 0方式1,3波特率定時(shí)器1溢出率32;方式2波特率為fosc64。GF0、GF1:兩個(gè)通用標(biāo)志位。PD、IDL:CHMOS器件的低功耗控制位。3.4串行口的工作方式1方式0方式0為移位寄存器輸入輸出方式。串行數(shù)據(jù)通過(guò)RXD輸入輸出,TXD則用于輸出移位時(shí)鐘脈沖。方式0時(shí),收發(fā)的數(shù)據(jù)為8位,低位在前。波特率固定為fosc12,其中fosc為單片機(jī)外接晶振頻率。發(fā)送是以寫(xiě)SBUF寄存器的指令開(kāi)始的,8位輸出結(jié)束時(shí)TI被置位。方式0接收是在REN1和RI0同時(shí)滿(mǎn)足時(shí)開(kāi)始的。接收的數(shù)據(jù)裝入SBUF中,結(jié)束時(shí)RI被置位。 2方式1方式1是10位異步通信方式,1
28、位起始位(0),8位數(shù)據(jù)位和1位停止位(1)。其中的起始位和停止位在發(fā)送時(shí)是自動(dòng)插入的。任何一條以SBUF為目的寄存器的指令都啟動(dòng)一次發(fā)送,發(fā)送的條件是TI=0,發(fā)送完置位TI。方式1接收的前提條件是SCON中的REN為1,同時(shí)以下兩個(gè)條件都滿(mǎn)足,本次接收有效,將其裝入SBUF和RB8位。否則放棄接收結(jié)果。兩個(gè)條件是:(1)RI=0; (2)SM2=0或接收到的停止位為1。方式1的波特率是可變的,波特率可由以下計(jì)算公式計(jì)算得到:方式1波特率2SMOD(定時(shí)器1的溢出率)32其中的SMOD為PCON的最高位。定時(shí)器1的方式0,1,2,都可以使用,其溢出率為定時(shí)時(shí)間的倒數(shù)值。3方式2和方式3這兩種
29、方式都是11位異步接收發(fā)送方式,它們的操作過(guò)程完全一樣,所不同的是波特率:方式2波特率2SMOD(fosc/64)方式3波特率同方式1(定時(shí)器1作波特率發(fā)生器)。方式2和方式3的發(fā)送起始于任何一條“寫(xiě)SBUF”指令。當(dāng)?shù)?位數(shù)據(jù)(TB8)輸出之后,置位TI。方式2和方式3的前提條件也是REN為1。在第9位數(shù)據(jù)接收到后,如果下列條件同時(shí)滿(mǎn)足:(1)RI0;(2)SM20或接收到的第9位為1,則將已接收的數(shù)據(jù)裝入SBUF和RB8,并置位RI;如果條件不滿(mǎn)足,則接收無(wú)效。ATMEL89S52串行口的不同尋常的特征是包括第九位方式。這允許在串行口通信增加的第九位用于標(biāo)志特殊字節(jié)的接收。對(duì)簡(jiǎn)單網(wǎng)絡(luò),第九
30、位方案允許接收單片機(jī)僅當(dāng)字節(jié)具有一個(gè)第九位時(shí)才能被中斷。用這種方法,發(fā)送器可以廣播一個(gè)字節(jié)讓第九位為高作為“每個(gè)人請(qǐng)注意”字節(jié)。字節(jié)可以為節(jié)點(diǎn)地址,地址相同的節(jié)點(diǎn)可以打開(kāi)接收接下來(lái)的字符。所接續(xù)字節(jié)(第九位為低)不能引起其它單片機(jī)中斷,因?yàn)槲此退鼈兊牡刂贰S眠@種方式。一個(gè)單片機(jī)可以和大量的其它單片機(jī)對(duì)話(huà)而不打擾不尋址的單片機(jī)。這種系統(tǒng)必須工作在嚴(yán)格的主從方式,由軟件進(jìn)行取舍安排。3.5串行口的初始化3.5.1 串行口波特率通常情況下,使用單片機(jī)的串行口時(shí),選用的晶振比較固定6MHz,12MHz,110592MHz。常用于和微機(jī)的通信;選用的波特率也相對(duì)固定。串行口常用的波特率及相應(yīng)的設(shè)置見(jiàn)表3
31、-5-1所示:表3-5-1 串行口波特率表3.5.2 初始化步驟在使用串行口之前,應(yīng)對(duì)它進(jìn)行編程初始化,主要是設(shè)置產(chǎn)生波特率的定時(shí)器1、串行口控制和中斷控制。具體步驟如下:確定定時(shí)器1的工作方式編程TMOD寄存器; 計(jì)算定時(shí)器1的初值裝載TH1、TL1;啟動(dòng)定時(shí)器1編程TCON中的TR1位;確定串行口的控制編程SCON; 串行口在中斷方式工作時(shí),須開(kāi)CPU和源中斷編程IE寄存器。第4章 DS18B20溫度傳感器4.1 DS18B20的簡(jiǎn)介DS18B20是美國(guó)DALLAS半導(dǎo)體公司繼DS1820之后最新推出的一種改進(jìn)型智能溫度傳感器。與傳統(tǒng)的熱敏電阻相比,他能夠直接讀出被測(cè)溫度并且可根據(jù)實(shí)際要求
32、通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式。可以分別在93.75 ms和750 ms內(nèi)完成9位和12位的數(shù)字量,并且從DS18B20讀出的信息或?qū)懭隓S18B20的信息僅需要一根口線(xiàn)(單線(xiàn)接口)讀寫(xiě),溫度變換功率來(lái)源于數(shù)據(jù)總線(xiàn),總線(xiàn)本身也可以向所掛接的DS18B20供電,而無(wú)需額外電源。因而使用DS18B20可使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。4.2 DS18B20的特點(diǎn)(1)獨(dú)特的單線(xiàn)接口方式:DS18B20與微處理器連接時(shí)僅需要一條口線(xiàn)即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。 (2)在使用中不需要任何外圍元件。 (3)可用數(shù)據(jù)線(xiàn)供電,電壓范圍:+3.0 +5.5 V。 (4)測(cè)溫范圍:-
33、55 +125 。固有測(cè)溫分辨率為0.5 。 (5)通過(guò)編程可實(shí)現(xiàn)912位的數(shù)字讀數(shù)方式。 (6)用戶(hù)可自設(shè)定非易失性的報(bào)警上下限值。 (7)支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可并聯(lián)在惟一的三線(xiàn)上,實(shí)現(xiàn)多點(diǎn)測(cè)溫。 (8)負(fù)壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。4.3 DS18B20的封裝結(jié)構(gòu)圖4-3 DS18B20的封裝結(jié)構(gòu)圖DS18B20引腳功能:GND 電壓地 DQ 單數(shù)據(jù)總線(xiàn) VDD 電源電壓 NC 空引腳4.4 DS18B20的測(cè)溫原理DS18B20的測(cè)溫原理如圖4-4所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小1,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)
34、數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(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的預(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)直到減法
35、計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。圖4-4中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線(xiàn)性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直至溫度寄存器值達(dá)到被測(cè)溫度值,這就是DS18B20的測(cè)溫原理。 圖4-4 DS18B20的測(cè)溫原理圖4.5 DS18B20與單片機(jī)的典型接口電路圖4-5 DS18B20與CPU的接口電路上圖采用寄生電源供電方式, P1.0口接單線(xiàn)總線(xiàn)為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)MOSFET管和89C51的P1.0來(lái)完成對(duì)總線(xiàn)的上拉。當(dāng)DS18B20處于寫(xiě)存儲(chǔ)器操作和溫度A/
36、D變換操作時(shí),總線(xiàn)上必須有強(qiáng)的上拉,上拉開(kāi)啟時(shí)間最大為10 s。采用寄生電源供電方式是VDD和GND端均接地。由于單線(xiàn)制只有一根線(xiàn),因此發(fā)送接收口必須是三態(tài)的。主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)3個(gè)步驟:初始化、ROM操作指令、存儲(chǔ)器操作指令。假設(shè)單片機(jī)系統(tǒng)所用的晶振頻率為12 MHz,根據(jù)DS18B20的初始化時(shí)序、寫(xiě)時(shí)序和讀時(shí)序,分別編寫(xiě)3個(gè)子程序:INIT為初始化子程序,WRITE為寫(xiě)(命令或數(shù)據(jù))子程序,READ為讀數(shù)據(jù)子程序,所有的數(shù)據(jù)讀寫(xiě)均由最低位開(kāi)始,實(shí)際在實(shí)驗(yàn)中不用這種方式,只要在數(shù)據(jù)線(xiàn)上加一個(gè)上拉電阻4.7 k,另外2個(gè)腳分別接電源和地。 4.6 DS18B20的軟件
37、設(shè)計(jì)較少的硬件開(kāi)銷(xiāo)需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS18B20與微處理器間采用串行數(shù)據(jù)傳送,因此,在對(duì)DS18 B 20進(jìn)行讀寫(xiě)編程時(shí),必須嚴(yán)格保證讀寫(xiě)時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。DS18B20的一線(xiàn)工作協(xié)議流程是:初始化ROM操作指令存儲(chǔ)器操作指令數(shù)據(jù)傳輸。其工作時(shí)序包括初始化時(shí)序、寫(xiě)時(shí)序和讀時(shí)序。軟件流程如圖4-6所示:圖4-6 DS18B20讀寫(xiě)框圖在DS18B20測(cè)溫程序設(shè)計(jì)中,向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS18B20的返回信號(hào),一旦DS18B20接觸不好或斷線(xiàn),當(dāng)程序讀該DS1820時(shí),將沒(méi)有返回信號(hào),程序進(jìn)入死循環(huán)。這一點(diǎn)在進(jìn)行DS1820硬件連接和軟件設(shè)
38、計(jì)時(shí)也要給予一定的重視。第5章 定時(shí)/計(jì)數(shù)器與中斷的原理及應(yīng)用5.1 定時(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(P3
39、4)或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ò)。5.1.1 與T/C有關(guān)的特殊功能寄存器1計(jì)數(shù)寄存器TH和TLTC是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ù)。 0-停
40、止計(jì)數(shù)。TCON復(fù)位后清“0”,TC需受到軟件控制才能啟動(dòng)計(jì)數(shù),當(dāng)計(jì)數(shù)寄存器計(jì)滿(mǎn)時(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控制。M1和M0:工作方式選擇位。由M1和 M0的四種組合狀態(tài)確定,見(jiàn)表5-1-1表5-1-1 定時(shí)器計(jì)數(shù)器工作方式M1M0方式功 能000為13位定時(shí)器計(jì)數(shù)據(jù),TL存低5位,TH存向8位011為16位定時(shí)器計(jì)數(shù)器102常數(shù)自動(dòng)裝入的8位定時(shí)器計(jì)效器113僅
41、適用于TC0,兩個(gè)8位定時(shí)器計(jì)數(shù)器5.1.2 定時(shí)器/計(jì)數(shù)器的工作方式1方式0當(dāng)TMOD中M1M000時(shí),TC工作在方式0。方式0為13位的TC,由TH提供高8位,TL提供低5位的計(jì)數(shù)值,滿(mǎn)計(jì)數(shù)值2,但啟動(dòng)前可以預(yù)置計(jì)數(shù)初值。TC啟動(dòng)后立即加1計(jì)數(shù),當(dāng)13位計(jì)數(shù)滿(mǎn)時(shí),TH向高位進(jìn)位,此進(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位,滿(mǎn)
42、計(jì)數(shù)值為2“。3方式2 當(dāng)TMOD中M1M010時(shí),TC工作在方式2。方式2是8位的可自動(dòng)重裝載的TC,滿(mǎn)計(jì)數(shù)值為2。在方式0和方式1中,當(dāng)計(jì)數(shù)滿(mǎn)后,若要進(jìn)行下一次定時(shí)計(jì)數(shù),須用軟件向TH和TL重裝預(yù)置計(jì)數(shù)初值。方式2中TH和TL被當(dāng)作兩個(gè)8位計(jì)數(shù)器,計(jì)數(shù)過(guò)程中,TH寄存8位初值并保持不變,由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)志位;而TH
43、0只能作定時(shí)器用,占用TC1的資源TR1和TF1。在這種情況下,TC1 仍可用于方式0、1、2,但不能使用中斷方式。只有將TC1用作串行口的波特率發(fā)生器時(shí),TC0才工作在方式3,以便增加一個(gè)定時(shí)器。5.1.3 定時(shí)器/計(jì)數(shù)器的初始化在使用8051的定時(shí)器計(jì)數(shù)器前,應(yīng)對(duì)它進(jìn)行編程初始化,主要是對(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位。5.2 中斷有關(guān)的概念
44、 所謂中斷,是指當(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ù)。相反,算術(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í)控制。5.2.1 中斷源中斷源是指任何引起計(jì)算機(jī)中斷的事件,一般一臺(tái)機(jī)器允許有
45、許多個(gè)中斷源。增加很少的硬件就可把各種硬件中斷源“線(xiàn)或”成為一個(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ā)送接收中斷請(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,
46、1觸發(fā)方式選擇位,由軟件設(shè)置。1一下降沿觸發(fā)方式,INT0INT1管腳上高到低的負(fù)跳變可引起中斷。0一電平觸發(fā)方式,INT0INT1管腳上低電平可引起中斷。IE0,IE1:外部中斷0,1請(qǐng)求標(biāo)志位。當(dāng)外部中斷0,1依據(jù)觸發(fā)方式滿(mǎn)足條件產(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í),由硬件清除(TF0TF10)。2串行口控制寄存器SCONRI:串行口接收中斷請(qǐng)求標(biāo)志位。當(dāng)串行口接收完一幀數(shù)據(jù)后請(qǐng)求中斷,
47、由硬件置位(RI=1)。RI必須由軟件清零。TI:串行口發(fā)送中斷請(qǐng)求標(biāo)志位。TI必須由軟件清零。當(dāng)串行口發(fā)送完一幀數(shù)據(jù)后請(qǐng)求中斷時(shí),由硬件置位(TI1)。5.2.2中斷的控制中斷的控制主要實(shí)現(xiàn)中斷的開(kāi)關(guān)管理和中斷優(yōu)先級(jí)的管理。這個(gè)管理主要通過(guò)對(duì)特殊功能寄存器IE和IP的編程實(shí)現(xiàn)。中斷允許寄存器IEEX0,EX1:外部中斷0,1的中斷允許位。1一外部中斷0,l開(kāi)中斷。 0一外部中斷0,1關(guān)中斷。ET0,ET1:定時(shí)器計(jì)數(shù)器0,1(TC0,TC1)溢出中斷允許位。1-T/C,TC1開(kāi)中斷。 0-TC0,T/C1關(guān)中斷。ES:串行口中斷允許位。1-串行口開(kāi)中斷。 0一串行口關(guān)中斷。ET2:定時(shí)器計(jì)數(shù)
48、器2(TC2)溢出中斷允許位。1一T/C2開(kāi)中斷。 0一TC2關(guān)中斷。EA:CPU開(kāi)關(guān)中斷控制位。1一CPU開(kāi)中斷。 0一CPU關(guān)中斷。8051復(fù)位時(shí),IE被清“0”,此時(shí)CPU關(guān)中斷,各中斷源的中斷也都屏蔽。若系統(tǒng)需用中斷方式進(jìn)行事件處理,則系統(tǒng)初始化程序中需編程IE寄存器。若僅一個(gè)定時(shí)器用來(lái)提供中斷,其它定時(shí)器中斷可被屏蔽。若程序中所有中斷都不使用時(shí),使用EA禁止。2中斷優(yōu)先級(jí)寄存器IP當(dāng)系統(tǒng)中多個(gè)中斷源同時(shí)請(qǐng)求中斷,CPU按中斷源的優(yōu)先級(jí)別,由高至低分別響應(yīng)。8051單片機(jī)有兩個(gè)中斷優(yōu)先級(jí),高優(yōu)先級(jí)和低優(yōu)先級(jí),每個(gè)中斷源都可以編程為高優(yōu)先級(jí)或低優(yōu)先級(jí)。這可以實(shí)現(xiàn)兩級(jí)中斷嵌套,嵌套的原則是
49、:一個(gè)正在執(zhí)行的中斷服務(wù)程序可以被較高級(jí)的中斷請(qǐng)求中斷,而不能被同級(jí)或較低級(jí)的中斷請(qǐng)求所中斷。兩級(jí)中斷通過(guò)使用IP寄存器設(shè)置。PX0,PX1:外部中斷0,1中斷優(yōu)先級(jí)控制位。PT0,PT1:定時(shí)器計(jì)數(shù)器0,1中斷優(yōu)先級(jí)控制位。PS:串行口中斷優(yōu)先級(jí)控制位。其中上面所有都是:1一高優(yōu)先級(jí)。 0一低優(yōu)先級(jí)。8051復(fù)位時(shí),IP被清“0”,5個(gè)中斷源都在同一優(yōu)先級(jí),這時(shí)若其中幾個(gè)中斷源同時(shí)產(chǎn)生中斷請(qǐng)求,則CPU按照片內(nèi)硬件優(yōu)先級(jí)鏈路的順序響應(yīng)中斷。硬件優(yōu)先級(jí)由高到低的順序如下:中斷源外部中斷0(IE0) 高定時(shí)器計(jì)數(shù)器0(TF0)外部中斷1(IE1)定時(shí)器計(jì)數(shù)器1(TF1)串行口中斷(RI十TI)
50、低5.2.3中斷響應(yīng)8051的CPU在每個(gè)機(jī)器周期采樣各中斷源的中斷請(qǐng)求標(biāo)志位,如果沒(méi)有下述阻止條件, 則將在下一個(gè)機(jī)器周期響應(yīng)被激活了的最高級(jí)中斷請(qǐng)求。阻止條件如下:1CPU正在處理同級(jí)或更高級(jí)的中斷;2現(xiàn)行機(jī)器周期不是所執(zhí)行指令的最后一個(gè)機(jī)器周期;3正在執(zhí)行的是RETI或是訪(fǎng)問(wèn)IE或IP的指令。CPU在中斷響應(yīng)后完成如下的操作:1硬件清除相應(yīng)的中斷請(qǐng)求標(biāo)志;2執(zhí)行一條硬件子程序,保護(hù)斷點(diǎn),并轉(zhuǎn)向中斷服務(wù)程序人口;3結(jié)束中斷時(shí)執(zhí)行RETI指令,恢復(fù)斷點(diǎn),返回主程序。第6章 硬件電路其他元器件簡(jiǎn)介此次電路設(shè)計(jì)中主要是由單片機(jī)的最小系統(tǒng)與顯示電路、DS18B20測(cè)溫電路、MAX485串口通信、V
51、B程序在計(jì)算機(jī)把溫度值顯示等部分組成。6.1 單片機(jī)的最小系統(tǒng)最小系統(tǒng)的核心是AT89S52單片機(jī),其內(nèi)部帶有8KB的FLASH ROM,256B片內(nèi)RAM,基本上能滿(mǎn)足最小系統(tǒng)的設(shè)計(jì)要求。如接上時(shí)鐘電路、復(fù)位電路即可加電工作。如圖6-1所示:圖6-1 單片機(jī)最小系統(tǒng)6.2 數(shù)碼管的顯示電路通過(guò)2個(gè)LED顯示模塊組成8個(gè)LED指示燈,P0口輸出段碼信號(hào),P2輸出位碼信號(hào)。這些信號(hào)由89SC52軟件生成。LED顯示器又稱(chēng)數(shù)碼管,八段LED顯示器由8個(gè)發(fā)光二極管組成。其中7個(gè)發(fā)光二極管構(gòu)成字型“8”的各個(gè)筆畫(huà)段,另一個(gè)小數(shù)點(diǎn)為dp發(fā)光二極管。LED顯示器有兩種不同的形式:一種是發(fā)光二極管的陽(yáng)極都連
52、在一起的,稱(chēng)之為共陽(yáng)極LED顯示器;另一種是發(fā)光二極管的陰極都連在一起的,為共陰極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各段為時(shí),顯示器顯示P字符,即對(duì)于共陰極LED顯示器, “P”字符的字形碼是73H。如果是共陽(yáng)LED顯示器,公共陽(yáng)極接高電平,顯示“
53、P”字符的字形代碼應(yīng)為(8CH)。圖6-2-2 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線(xiàn)控制。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í)
54、點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。6.3 MAX485串口通信電路6.3.1 MAX485芯片簡(jiǎn)介在工業(yè)控制及測(cè)量領(lǐng)域較為常用的網(wǎng)絡(luò)之一就是物理層采用MAX485通信接口所組成的工控設(shè)備網(wǎng)絡(luò)。這種通信接口可以十分方便地將許多設(shè)備組成一個(gè)控制網(wǎng)絡(luò)。從目前解決單片機(jī)之間中長(zhǎng)距離通信的諸多方案分析來(lái)看,MAX485總線(xiàn)通信模式由于具有結(jié)構(gòu)簡(jiǎn)單、價(jià)格低廉、通信距離和數(shù)據(jù)傳輸速率適當(dāng)?shù)忍攸c(diǎn)而被廣泛應(yīng)用于儀器儀表、智能化傳感器集散控制、樓宇控制、監(jiān)控報(bào)警等領(lǐng)域。MAX485是芯片接口的一種類(lèi)型 ,MAX485接口芯片是Maxim公司的一種RS485芯片。采用單一
55、電源+5 V工作,額定電流為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í)接線(xiàn)非常簡(jiǎn)單。只需要一個(gè)信號(hào)控制MAX485的接收和發(fā)送即可。同時(shí)將A和B端之間加匹配電阻,一般可選100的電阻。 可
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 森林公園生態(tài)旅游市場(chǎng)營(yíng)銷(xiāo)考核試卷
- 游樂(lè)場(chǎng)設(shè)備智能監(jiān)測(cè)技術(shù)考核試卷
- 橡膠制品在船舶制造行業(yè)中的應(yīng)用研究考核試卷
- 生態(tài)環(huán)境保護(hù)法律法規(guī)考核試卷
- 社區(qū)反貧困與可持續(xù)發(fā)展考核試卷
- 消費(fèi)級(jí)機(jī)器人傳感器技術(shù)與應(yīng)用考核試卷
- 游戲行業(yè)法律法規(guī)及合規(guī)管理考核試卷
- 油氣倉(cāng)儲(chǔ)自動(dòng)化控制考核試卷
- 旅館業(yè)供應(yīng)鏈與物流管理考核試卷
- 昆明衛(wèi)生職業(yè)學(xué)院《三維地質(zhì)建模與可視化》2023-2024學(xué)年第二學(xué)期期末試卷
- 2023年海南省財(cái)金集團(tuán)有限公司招聘筆試模擬試題及答案解析
- 耳聾與人工耳蝸植入術(shù)課件
- 公司獎(jiǎng)項(xiàng)申請(qǐng)表(個(gè)人)
- 三年級(jí)上冊(cè)語(yǔ)文閱讀同步擴(kuò)展課件-第十五講 童話(huà)寓言的閱讀技巧(共14張PPT)-人教(部編版)
- 機(jī)油濾清器工作原理剖析
- 執(zhí)行異議及復(fù)議課件
- 工程施工資源配置計(jì)劃施工資源配置計(jì)劃
- 高中美術(shù)教案3-12地域的永恒魅力1
- 安全生產(chǎn)管理組織機(jī)構(gòu)設(shè)置圖
- 高考政治思維導(dǎo)圖
- 一帶一路國(guó)家風(fēng)光資源評(píng)估報(bào)告
評(píng)論
0/150
提交評(píng)論