基于單片機的室內(nèi)電熱水器控制系統(tǒng)設(shè)計說明_第1頁
基于單片機的室內(nèi)電熱水器控制系統(tǒng)設(shè)計說明_第2頁
基于單片機的室內(nèi)電熱水器控制系統(tǒng)設(shè)計說明_第3頁
基于單片機的室內(nèi)電熱水器控制系統(tǒng)設(shè)計說明_第4頁
基于單片機的室內(nèi)電熱水器控制系統(tǒng)設(shè)計說明_第5頁
已閱讀5頁,還剩53頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 PAGE53 / NUMPAGES58基于單片機的室電熱水器控制系統(tǒng)設(shè)計 2B專業(yè)名稱:測控技術(shù)與儀器指導(dǎo)教師:2B講師摘要隨著微機測量和控制技術(shù)的迅速發(fā)展與廣泛應(yīng)用,以單片機為核心的溫度采集與控制系統(tǒng)的研發(fā)與應(yīng)用在很大程度上提高了生產(chǎn)生活中對溫度的控制水平。本設(shè)計論述了一種以STC89C51單片機為主控制單元,以DS18B20為溫度傳感器的溫度控制系統(tǒng)。該控制系統(tǒng)可以實時存儲相關(guān)的溫度數(shù)據(jù)并記錄當(dāng)前的時間。系統(tǒng)設(shè)計了相關(guān)的硬件電路和相關(guān)應(yīng)用程序。硬件電路主要包括STC89C51單片機最小系統(tǒng),測溫電路、實時時鐘電路、LED液晶顯示電路以與通訊模塊電路等。系統(tǒng)程序主要包括主程序,讀出溫度子程

2、序,計算溫度子程序、按鍵處理程序、LED顯示程序以與數(shù)據(jù)存儲程序等。關(guān)鍵詞:STC89C51,單片機, DS18B20, 顯示電路AbstractAlong with the computer measurement and control technology of the rapid development and wide application, based on singlechip temperature gathering and control system development and application greatly improve the production o

3、f temperature in life level of control. This design STC89C51 describes a kind of mainly by MCU control unit, for temperature sensor DS18B20 temperature control system. The control system can real-time storage temperature data and record related to the current time. System design related hardware cir

4、cuit and related applications. STC89C51 microcontroller hardware circuit include temperature detection circuit smallest system, and real-time clock circuit, LED display circuit, communication module circuit, etc. System programming mainly include main program, read temperature subroutine, the calcul

5、ation of temperature subroutines, key processing procedures, LED display procedures and data storage procedures, etc. Keywords:STC89C51,icrocontroller,DS18B20,display circuit目錄 TOC o 1-3 h z u HYPERLINK l _Toc325628671摘要 PAGEREF _Toc325628671 h IHYPERLINK l _Toc325628672Abstract PAGEREF _Toc32562867

6、2 h IIHYPERLINK l _Toc325628673目錄 PAGEREF _Toc325628673 h IIIHYPERLINK l _Toc325628674前言 PAGEREF _Toc325628674 h 1HYPERLINK l _Toc3256286751片機與設(shè)計軟件介紹 PAGEREF _Toc325628675 h 2HYPERLINK l _Toc3256286761.1單片機介紹 PAGEREF _Toc325628676 h 2HYPERLINK l _Toc3256286771.2 Proteus 軟件介紹 PAGEREF _Toc325628677 h

7、8HYPERLINK l _Toc3256286781.3單片機編譯軟件Keil介紹 PAGEREF _Toc325628678 h 10HYPERLINK l _Toc3256286792 方案設(shè)計 PAGEREF _Toc325628679 h 12HYPERLINK l _Toc3256286802.1功能介紹 PAGEREF _Toc325628680 h 12HYPERLINK l _Toc3256286812.1.1 AT89C51 主要性能 PAGEREF _Toc325628681 h 12HYPERLINK l _Toc3256286822.1.2數(shù)字溫度傳感器 PAGERE

8、F _Toc325628682 h 12HYPERLINK l _Toc3256286832.2系統(tǒng)方案論證 PAGEREF _Toc325628683 h 16HYPERLINK l _Toc3256286842.2.1方案一 PAGEREF _Toc325628684 h 16HYPERLINK l _Toc3256286852.2.2方案二 PAGEREF _Toc325628685 h 18HYPERLINK l _Toc3256286863系統(tǒng)硬件設(shè)計 PAGEREF _Toc325628686 h 19HYPERLINK l _Toc3256286873.1設(shè)計要求 PAGEREF

9、 _Toc325628687 h 19HYPERLINK l _Toc3256286883.2系統(tǒng)整體硬件電路 PAGEREF _Toc325628688 h 19HYPERLINK l _Toc3256286893.2.1主板電路 PAGEREF _Toc325628689 h 20HYPERLINK l _Toc3256286903.2.2顯示部分 PAGEREF _Toc325628690 h 20HYPERLINK l _Toc3256286913.2.3手動開關(guān)復(fù)位部分 PAGEREF _Toc325628691 h 21HYPERLINK l _Toc3256286923.2.4按

10、鍵部分 PAGEREF _Toc325628692 h 21HYPERLINK l _Toc3256286933.2.5加熱部分 PAGEREF _Toc325628693 h 23HYPERLINK l _Toc3256286943.2.6溫度傳感電路設(shè)計 PAGEREF _Toc325628694 h 24HYPERLINK l _Toc3256286953.2.7溫度控制電路的設(shè)計 PAGEREF _Toc325628695 h 26HYPERLINK l _Toc3256286963.2.8時鐘電路 PAGEREF _Toc325628696 h 26HYPERLINK l _Toc3

11、256286974系統(tǒng)軟件設(shè)計 PAGEREF _Toc325628697 h 28HYPERLINK l _Toc3256286984.1主程序 PAGEREF _Toc325628698 h 28HYPERLINK l _Toc3256286994.2顯示數(shù)據(jù)刷新子程序 PAGEREF _Toc325628699 h 28HYPERLINK l _Toc325628700圖4.2 數(shù)據(jù)刷新子程序 PAGEREF _Toc325628700 h 29HYPERLINK l _Toc3256287014.3鍵盤掃描 PAGEREF _Toc325628701 h 29HYPERLINK l _

12、Toc3256287024.4定時器 PAGEREF _Toc325628702 h 30HYPERLINK l _Toc325628703總結(jié) PAGEREF _Toc325628703 h 32HYPERLINK l _Toc325628704致 PAGEREF _Toc325628704 h 33HYPERLINK l _Toc325628705參考文獻 PAGEREF _Toc325628705 h 34HYPERLINK l _Toc325628706附件1 系統(tǒng)電路原理圖 PAGEREF _Toc325628706 h 36HYPERLINK l _Toc325628707附錄2源

13、程序 PAGEREF _Toc325628707 h 37前言課題背景和意義:隨著人們生活水平的提高,熱水器越來越受到人們的青睞。由于燃?xì)鉄崴饕资芩畨合拗?,而且安全性較差。每年使用燃?xì)鉄崴髟斐傻谋?、中毒等事故也屢有所聞。消費者對燃?xì)鉄崴鲬延幸欢ǖ膽峙赂小6姛崴髟絹碓绞艿饺藗兊恼J(rèn)可。采用MCS-51單片機對熱水器水溫進行控制,具有控制方便、組態(tài)簡單和靈活性大等優(yōu)點。單片機以其功能強、體積小、可靠性高、造價低和開發(fā)周期短等優(yōu)點,為自動化和各個測控領(lǐng)域中廣泛應(yīng)用的器件。國外研究現(xiàn)狀:電熱水器在中國的歷史已經(jīng)有10多年了,期間也經(jīng)歷了數(shù)次起落的過程,在上個世紀(jì)的最后幾年,隨著國外品牌的進入

14、和國一些大家電廠的目光轉(zhuǎn)向電熱水器,儲水式電熱水器能適應(yīng)任何天氣變化,普通家庭可直接安裝使用,長時間通電可以大流量供熱水。使用時不產(chǎn)生廢氣,既安全又衛(wèi)生。目前市場上銷售的電熱水器多數(shù)還帶有防觸電裝置。干凈衛(wèi)生,不必分室安裝,調(diào)溫方便。隨著技術(shù)的成熟,今后將朝著保溫層整體發(fā)泡技術(shù)、溫控器置入膽、加熱管下潛式設(shè)計、節(jié)能免更換幾個方面發(fā)展。熱水器是一種可供浴室,洗手間與廚房使用的家用電器。據(jù)國務(wù)院發(fā)展研究中心市場經(jīng)濟研究所統(tǒng)計數(shù)據(jù)表明:近年來我國熱水器的銷量每年以 25%的速度上升,在未來五年,銷售額每年可達(dá)近500億以上。眾所周知,燃?xì)鉄崴饕蚱浒踩[患與越來越高的使用成本正漸漸淡出熱水器市場,而

15、太陽能熱水器也因其嚴(yán)格受天氣氣候與安裝條件影響而很難占據(jù)更大的市場份額,所以電熱水器迅速崛起而不斷壯大。為了滿足人們對現(xiàn)代電器的智能化的要求,利用目前電子技術(shù)的最新成果改善電熱水器的性能已經(jīng)完全可能和必要。本課題將以單片機為控制核心,實現(xiàn)對熱水器的自動控制,設(shè)計出一款具有自動化、智能化、易于操作、控制精度高、性價比高的電熱水器控制系統(tǒng)。1片機與設(shè)計軟件介紹1.1單片機介紹由于單片機在整個設(shè)計中占據(jù)著重要的地方,首先介紹一下單片機的相關(guān)知識。單片機AT89S51具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要。MCS-51單片機部結(jié)構(gòu):8051是MCS-51系列單片機

16、的典型產(chǎn)品,我們以這一代表性的機型進行系統(tǒng)的講解。8051單片機包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元與數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說明:中央處理器(CPU)是整個單片機的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成運算和控制輸入輸出功能等操作。數(shù)據(jù)存儲器(RAM):8051部有128個8位用戶數(shù)據(jù)存儲單元和128個專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),

17、所以,用戶能使用的RAM只有128個,可存放讀寫的數(shù)據(jù),運算的中間結(jié)果或用戶定義的字型表。圖1.1 8051 部結(jié)構(gòu)程序存儲器(ROM):8051共有4096個8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。定時/計數(shù)器(ROM):8051有兩個16位的可編程定時/計數(shù)器,以實現(xiàn)定時或計數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。并行輸入輸出(I/O)口:8051共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數(shù)據(jù)的傳輸。全雙工串行口:8051置一個全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。中斷系統(tǒng):8051具備較完善的中斷功能,

18、有兩個外中斷、兩個定時/計數(shù)器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優(yōu)先級別選擇。時鐘電路:8051置最高頻率達(dá)12MHz的時鐘電路,用于產(chǎn)生整個單片機運行的脈沖時序,但8051單片機需外置振蕩電容。單片機的結(jié)構(gòu)有兩種類型,一種是程序存儲器和數(shù)據(jù)存儲器分開的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計算機廣泛使用的程序存儲器與數(shù)據(jù)存儲器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。INTEL的MCS-51系列單片機采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品16位的MCS-96系列單片機則采用普林斯頓結(jié)構(gòu)。下圖是MCS-51系列單片機的部結(jié)構(gòu)示意圖圖1.2 MCS-51

19、結(jié)構(gòu)框圖MCS-51的引腳說明:MCS-51系列單片機中的8031、8051與8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對這些引腳的功能加以說明.MCS-51的引腳說明:MCS-51系列單片機中的8031、8051與8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復(fù)用。圖1.3 51單片機引腳圖Pin9:RESET/Vpd

20、復(fù)位信號復(fù)用腳,當(dāng)8051通電,時鐘電路開始工作,在RESET引腳上出現(xiàn)24個時鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),8051的初始態(tài)。8051的復(fù)位方式可以是自動復(fù)位,也可以是手動復(fù)位,見下圖。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機部RAM的數(shù)據(jù)不丟失。圖1.4 復(fù)位電路圖Pin30:ALE/當(dāng)訪問外部

21、程序器時,ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問部程序存儲器時,ALE端將有一個1/6時鐘頻率的正脈沖信號,這個信號可以用于識別單片機是否工作,也可以當(dāng)作一個時鐘向外輸出。更有一個特點,當(dāng)訪問外部程序存儲器,ALE會跳過一個脈沖。如果單片機是EPROM,在編程其間,將用于輸入編程脈沖。Pin29:當(dāng)訪問外部程序存儲器時,此腳輸出負(fù)脈沖選通信號,PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。Pin31:EA/Vpp程序存儲器的外部選通線,8051和8751單片機,置有4kB的程序存儲器,當(dāng)EA為高電平并且程序地址小于4kB

22、時,讀取部程序存儲器指令數(shù)據(jù),而超過4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲器指令。顯然,對部無程序存儲器的8031,EA端必須接地。輸入/輸出(I/O)引腳,P0口、P1口、P2口與P3口,P0口(39腳22腳)P0.0P0.7統(tǒng)稱為P0口。當(dāng)不接外部存儲器與不擴展I/O接口時,它可作為準(zhǔn)雙向8位輸入/輸出接口。當(dāng)接有外部程序存儲器或擴展I/O口時,P0口為地址/數(shù)據(jù)分時復(fù)用口。它分時提供8位雙向數(shù)據(jù)總線。對于片含有EPROM的單片機,當(dāng)EPROM編程時,從P0口輸入指令字節(jié),而當(dāng)檢驗程序時,則輸出指令字節(jié)。P1口(1腳8腳):P1.0P1.7統(tǒng)稱為

23、P1口,可作為準(zhǔn)雙向I/O接口使用。對于MCS52子系列單片機,P1.0和P1.1還有第2功能:P1.0口用作定時器/計數(shù)器2的計數(shù)脈沖輸入端T2;P1.1用作定時器/計數(shù)器2的外部控制端T2EX。對于EPROM編程和進行程序校驗時,P0口接收輸入的低8位地址。P2口(21腳28腳):P2.0P2.7統(tǒng)稱為P2口,一般可作為準(zhǔn)雙向I/O接口。當(dāng)接有外部程序存儲器或擴展I/O接口且尋址圍超過256個字節(jié)時,P2口用于高8位地址總線送出高8位地址。對于EPROM編程和進行程序校驗時,P2口接收輸入的8位地址。P3口(10腳17腳):P3.0P3.7統(tǒng)稱為P3口。它為雙功能口,可以作為一般的準(zhǔn)雙向I

24、/O接口,也可以將每1位用于第2功能,而且P3口的每一條引腳均可獨立定義為第1功能的輸入輸出或第2功能。P3口的第2功能見下表表1.1 單片機P3.0管腳含義引腳第2功能P3.0RXD(串行口輸入端0)P3.1TXD(串行口輸出端)P3.2INT0(部中斷0請求輸入端,低電平有效)P3.3INT1(中斷1請求輸入端,低電平有效)P3.4T0(時器/計數(shù)器0計數(shù)脈沖端)P3.5T1(時器/計數(shù)器1數(shù)脈沖端)P3.6WR(部數(shù)據(jù)存儲器寫選通信號輸出端,低電平有效)P3.7RD(部數(shù)據(jù)存儲器讀選通信號輸出端,低電平有效)綜上所述,MCS51系列單片機的引腳作用可歸納為以下兩點:單片機功能多,引腳數(shù)少

25、,因而許多引腳具有第2功能;單片機對外呈3總線形式,由P2、P0口組成16位地址總線;由P0口分時復(fù)用作為數(shù)據(jù)總線。溫度傳感器電路,采用一線制數(shù)字溫度傳感器DS18B20來作為本課題的溫度傳感器。傳感器輸出信號進4.7K的上拉電阻直接接到單片機的P1.0引腳上。DS18B20溫度傳感器是美國達(dá)拉斯(DALLAS)半導(dǎo)體公司推出的應(yīng)用單總線技術(shù)的數(shù)字溫度傳感器。該器件將半導(dǎo)體溫敏器件、A/D轉(zhuǎn)換器、存儲器等做在一個很小的集成電路芯片上。本設(shè)計中溫度傳感器之所以選擇單線數(shù)字器件DS18B20,是在經(jīng)過多方面比較和考慮后決定的,主要有以下幾方面的原因:系統(tǒng)的特性:測溫圍為-55+125 ,測溫精度為

26、士0.5;溫度轉(zhuǎn)換精度912位可變,能夠直接將溫度轉(zhuǎn)換值以16位二進制數(shù)碼的方式串行輸出;12位精度轉(zhuǎn)換的最大時間為750ms;可以通過數(shù)據(jù)線供電,具有超低功耗工作方式。系統(tǒng)成本:由于計算機技術(shù)和微電子技術(shù)的發(fā)展,新型大規(guī)模集成電路功能越來越強大,體積越來越小,而價格也越來越低。一支DS18B20的體積與普通三極管相差無幾,價格只有十元人民幣左右。系統(tǒng)復(fù)雜度:由于DS18B20是單總線器件,微處理器與其接口時僅需占用1個I/O端口且一條總線上可以掛接幾十個DS18B20,測溫時無需任何外部元件,因此,與模擬傳感器相比,可以大大減少接線的數(shù)量,降低系統(tǒng)的復(fù)雜度,減少工程的施工量。系統(tǒng)的調(diào)試和維護

27、:由于引線的減少,使得系統(tǒng)接口大為簡化,給系統(tǒng)的調(diào)試帶來方便。同時因為DS18B20是全數(shù)字元器件,故障率很低,抗干擾性強,因此,減少了系統(tǒng)的日常維護工作。DS18B20溫度傳感器只有三根外引線:單線數(shù)據(jù)傳輸總線端口DQ ,外供電源線VDD,共用地線GND。DS18B20有兩種供電方式:一種為數(shù)據(jù)線供電方式,此時VDD接地,它是通過部電容在空閑時從數(shù)據(jù)線獲取能量,來完成溫度轉(zhuǎn)換,相應(yīng)的完成溫度轉(zhuǎn)換的時間較長。這種情況下,用單片機的一個I/O口來完成對DS18B20總線的上拉。另一種是外部供電方式(VDD接+5V),相應(yīng)的完成溫度測量的時間較短。在本設(shè)計中采用外部供電方式實現(xiàn)DS18B20傳感器

28、與單片機的連接,其接口電路如圖1.5所示。圖1.5溫度傳感器接口1.2 Proteus 軟件介紹Proteus是目前最好的模擬單片機外圍器件的工具,真的很不錯。可以仿真51系列、AVR,PIC等常用的MCU與其外圍電路(如LCD,RAM,ROM,鍵盤,馬達(dá),LED,AD/DA,部分SPI器件,部分IIC器件,.)其實proteus與multisim比較類似,只不過它可以仿真MCU!當(dāng)然,軟件仿真精度有限,而且不可能所有的器件都找得到相應(yīng)的仿真模型,用開發(fā)板和仿真器當(dāng)然是最好選擇,可是估計初學(xué)者有的可能性比較小吧?如果你在學(xué)51單片機,如果你想自己動手做做LCD,LED,AD/DA,直流馬達(dá),S

29、PI,IIC,鍵盤,.的小實驗的話,試一下吧,不會讓你失望的!用51不管你是用匯編或是C編程當(dāng)然要用keil啦,uvisoin3有不少新特性呢!使用keilc51v7.50+proteus6.7可以像使用仿真器一樣調(diào)試程序,一般而言,微機實驗中用萬利仿真器+電工系自己做的實驗板的實驗都可以做得到吧!當(dāng)然,硬件實踐還是必不可少的!本方案只是在沒有硬件的情況下讓你能像pspice仿真模擬/數(shù)字電路那樣仿真MCU與外圍電路。另外,即使有硬件,在程序編寫早期用軟件仿真一下也不錯的!Proteus與其它單片機仿真軟件不同的是,它不僅能仿真單片機CPU的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其

30、它電路的工作情況。因此在仿真和程序調(diào)試時,關(guān)心的不再是某些語句執(zhí)行時單片機寄存器和存儲器容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結(jié)果。對于這樣的仿真實驗,從某種意義上講,是彌補了實驗和工程應(yīng)用間脫節(jié)的矛盾和現(xiàn)象。proteus的工作過程運行proteus的ISIS程序后,進入該仿真軟件的主界面。在工作前,要設(shè)置view菜單下的捕捉對齊和system下的顏色、圖形界面大小等項目。通過工具欄中的p(從庫中選擇元件命令)命令,在pickdevices窗口中選擇電路所需的元件,放置元件并調(diào)整其相對位置,元件參數(shù)設(shè)置,元器件間連線,編寫程序;在source菜單的Definecodege

31、nerationtools菜單命令下,選擇程序編譯的工具、路徑、擴展名等項目;在source菜單的Add/removesourcefiles命令下,加入單片機硬件電路的對應(yīng)程序;通過debug菜單的相應(yīng)命令仿真程序和電路的運行情況。Proteus軟件所提供的元件資源Proteus軟件所提供了30多個元件庫,數(shù)千種元件。元件涉與到數(shù)字和模擬、交流和直流等。軟件所提供的儀表資源,對于一個仿真軟件或?qū)嶒炇遥瑴y試的儀器儀表的數(shù)量、類型和質(zhì)量,是衡量實驗室是否合格的一個關(guān)鍵因素。在Proteus軟件包中,不存在同類儀表使用數(shù)量的問題。Proteus還提供了一個圖形顯示功能,可以將線路上變化的信號,以圖形

32、的方式實時地顯示出來,其作用與示波器相似但功能更多。軟件所提供的調(diào)試手段Proteus提供了比較豐富的測試信號用于電路的測試。這些測試信號包括模擬信號和數(shù)字信號。對于單片機硬件電路和軟件的調(diào)試,Proteus提供了兩種方法:一種是系統(tǒng)總體執(zhí)行效果,一種是對軟件的分步調(diào)試以看具體的執(zhí)行情況。對于總體執(zhí)行效果的調(diào)試方法,只需要執(zhí)行debug菜單下的execute菜單項或F12快捷鍵啟動執(zhí)行,用debug菜單下的pause animation菜單項或pause鍵暫停系統(tǒng)的運行;或用debug菜單下的stopanimation菜單項或shift-break組合鍵停止系統(tǒng)的運行。其運行方式也可以選擇工具

33、欄中的相應(yīng)工具進行。對于軟件的分步調(diào)試,應(yīng)先執(zhí)行debug菜單下的start/restartdebugging菜單項命令,此時可以選擇stepover、stepinto和stepout命令執(zhí)行程序(可以用快捷鍵F10、F11和ctrl+F11),執(zhí)行的效果是單句執(zhí)行、進入子程序執(zhí)行和跳出子程序執(zhí)行。在執(zhí)行了start/restartdebuging命令后,在debug菜單的下面要出現(xiàn)仿真中所涉與到的軟件列表和單片機的系統(tǒng)資源等,可供調(diào)試時分析和查看。Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為風(fēng)標(biāo)電子技術(shù))。它不僅具有其它EDA

34、工具軟件的仿真功能,還能仿真單片機與外圍器件。它是目前最好的仿真單片機與外圍器件的工具。雖然目前國推廣剛起步,但已受到單片機愛好者、從事單片機教學(xué)的教師、致力于單片機開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。是目前世界上唯一將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex

35、和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。1.3單片機編譯軟件Keil介紹編寫完程序后即可使用匯編軟件對程序進行編譯了,本設(shè)計所使用的編譯軟件是Keil51,其步驟如下:源文件的建立:使用菜單“File-New”或者點擊工具欄的新建文件按鈕,即可在項目窗口的右側(cè)打開一個新的文本編輯窗口,在該窗口中輸入要調(diào)試的匯編語言源程序,保存該文件,注意必須加上擴展名.c。建立工程文件:點擊“Project-New Project”菜單,在出現(xiàn)一個對話框中,輸入一個工程文件名,不需要擴展名。點擊“保存”按鈕。工程的詳細(xì)設(shè)置:工程建立好以后

36、,還要對工程進行進一步的設(shè)置,以滿足要求。首先點擊左邊Project 窗口的Target 1,然后使用菜單“Project-Option for target target1”即出現(xiàn)對工程設(shè)置的對話框,對部分容進行必要的設(shè)置改即可,不過大部份設(shè)置項都是取默認(rèn)值。編譯、連接:在設(shè)置好工程后,即可進行編譯、連接。選擇菜單Project-Build target,對當(dāng)前工程進行連接,如果當(dāng)前文件已修改,軟件會先對該文件進行編譯,然后再連接以產(chǎn)生目標(biāo)代碼;如果選擇Rebuild All target files 將會對當(dāng)前工程中的所有文件重新進行編譯然后再連接,確保最終生產(chǎn)的目標(biāo)代碼是最新的,而Tra

37、nslate .項則僅對該文件進行編譯,不進行連接。2 方案設(shè)計2.1功能介紹2.1.1 AT89C51主要性能與MCS-51 單片機產(chǎn)品兼容 ;8K 字節(jié)在系統(tǒng)可編程Flash 存儲器;1000 次擦寫周期;全靜態(tài)操作:0Hz33Hz ;三級加密程序存儲器;32 個可編程I/O 口線;三個16 位定時器/計數(shù)器;八個中斷源;全雙工UART 串行通道;低功耗空閑和掉電模式;掉電后中斷可喚醒;看門狗定時器;雙數(shù)據(jù)指針;掉電標(biāo)識符。2.1.2數(shù)字溫度傳感器DS18B20數(shù)字溫度傳感器概述;DS18B20數(shù)字溫度計是DALLAS公司生產(chǎn)的1Wire,即單總線器件,具有線路簡單,體積小的特點。因此用它

38、來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度計,十分方便。DS18B20產(chǎn)品的特點如下所示:只要求一個端口即可實現(xiàn)通信。在DS18B20中的每個器件上都有獨一無二的序列號。實際應(yīng)用中不需要外部任何元器件即可實現(xiàn)測溫。測量溫度圍在55.C到125.C之間。數(shù)字溫度計的分辨率用戶可以從9位到12位選擇。部有溫度上、下限告警設(shè)置。TO92封裝的DS18B20的引腳排列見圖2.4,其引腳功能描述見表2.1。表2.1DS18B20詳細(xì)引腳功能描述序號名稱引腳功能描述1GND地信號2DQ數(shù)字輸入輸出引腳,開漏單總線接口引腳,當(dāng)使用寄生電源時,可向電源提供電源3VDD可選擇的VD

39、D引腳,當(dāng)工作于寄生電源時,該引腳必須接地DS18B20的部結(jié)構(gòu):DS18B20的部框圖如圖2.2所示。64位ROM存儲器件獨一無二的序列號。暫存器包含兩字節(jié)(0和1字節(jié))的溫度寄存器,用于存儲溫度傳感器的數(shù)字輸出。暫存器還提供一字節(jié)的上線警報觸發(fā)(TH)和下線警報觸發(fā)(TL)寄存器(2和3字節(jié)),和一字節(jié)的配置寄存器(4字節(jié)),使用者可以通過配置寄存器來設(shè)置溫度轉(zhuǎn)換的精度。暫存器的5、6和7字節(jié)器件部保留使用。第八字節(jié)含有循環(huán)冗余碼(CRC )。圖2.1DS18B20的部框圖DS18B20加電后,處在空閑狀態(tài)。要啟動溫度測量和模擬到數(shù)字的轉(zhuǎn)換,處理器須向其發(fā)出Convert T 44h 命令

40、;轉(zhuǎn)換完后,DS18B20回到空閑狀態(tài)。溫度數(shù)據(jù)是以帶符號位的16-bit補碼存儲在溫度寄存器中的,如圖2.2所示:圖2.2溫度寄存器格式符號位說明溫度是正值還是負(fù)值,正值時S=0,負(fù)值時S=1。表2.8給出了一些數(shù)字輸出數(shù)據(jù)與對應(yīng)的溫度值的例子。溫度輸出(2進制)輸出(16進制)+1250000 0111 1101 0000 07D0H+850000 0101 0101 00000550H+20.0620000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 00

41、00 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-251110 1110 0110 1111EE6FH-551111 1110 1001 0000FE90H表2.2溫度/數(shù)據(jù)的關(guān)系訪問DS18B20必須嚴(yán)格遵守這一命令序列,如果丟失任何一步或序列混亂,DS18B20都不會響應(yīng)主機(除了Search ROM 和Alarm Search這兩個命令,在這兩個命令后,主機都必須返回到第一步)。初始化:DS18B20所有的數(shù)據(jù)交換都由一個初始化序列開始。由主機發(fā)出的復(fù)位脈沖和跟在其后的由DS18B20發(fā)出的應(yīng)答

42、脈沖構(gòu)成。當(dāng)DS18B20發(fā)出響應(yīng)主機的應(yīng)答脈沖時,即向主機表明它已處在總線上并且準(zhǔn)備工作。ROM命令:ROM命令通過每個器件64-bit的ROM碼,使主機指定某一特定器件(如果有多個器件掛在總線上)與之進行通信。DS18B20的ROM如表2.9所示,每個ROM命令都是8 bit長。表2.3 DS18B20的ROM指令協(xié)議功能讀ROM33H讀DS18B20中的編碼(即64位地址)符合ROM55H發(fā)出此命令后,接著發(fā)出64位ROM編碼,訪問單總線上與該編碼相對應(yīng)的DS18B20,使之作出響應(yīng),為下一步對該DS18B20的讀寫作準(zhǔn)備搜索ROM0F0H用于確定掛接在同一總線上DS18B20的個數(shù)和識

43、別64位ROM地址,為操作各器件作好準(zhǔn)備跳過ROM0CCH忽略64位ROM地址,直接向DS18B20V 溫度轉(zhuǎn)換命令,適用于單個DS18B20工作告警搜索命令0ECH執(zhí)行后,只有溫度超過廟宇值上限或下限的片子才做出響應(yīng)溫度轉(zhuǎn)換44H啟動DS18B20進行溫度轉(zhuǎn)換,轉(zhuǎn)換時間最長為500ms(典型為200ms),結(jié)果豐入部9字節(jié)RAM中讀暫存器BEH讀部RAM中9字節(jié)的容寫暫存器4EH發(fā)出向部RAM的第3、4字節(jié)寫上、下溫度數(shù)據(jù)命令,緊該溫度命令之后,傳達(dá)兩字節(jié)的數(shù)據(jù)復(fù)制暫存器48H將RAM中第3、4字容復(fù)制到E2PROM中重調(diào)E2PROM0B8H將E2PROM中容恢復(fù)到RAM中的第3、4字節(jié)讀供

44、電方式0B4H讀DS18B20的供電模式,寄生供電時DS18B20發(fā)送“0”,外部供電時DS18B20發(fā)送“1”功能命令:主機通過功能命令對DS18B20進行讀/寫Scratchpad存儲器,或者啟動溫度轉(zhuǎn)換。數(shù)碼管工作原理:LED的發(fā)光原理,稍有電子技術(shù)基礎(chǔ)的人士都很清楚,我們不想作過多的介紹,7段LED數(shù)碼管,則在一定形狀的絕緣材料上,利用單只LED組合排列成“8”字型的數(shù)碼管,分別引出它們的電極,點亮相應(yīng)的點劃來顯示出0-9的數(shù)字。圖2.3 數(shù)碼管引腳LED數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因為不同類型的數(shù)碼管,除了它們的硬件電路有差異

45、外,編程方法也是不同的。上圖是共陰和共陽極數(shù)碼管的部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。將多只LED的陰極連在一起即為共陰式,而將多只LED的陽極連在一起即為共陽式。以共陰式為例,如把陰極接地,在相應(yīng)段的陽極接上正電源,該段即會發(fā)光。當(dāng)然,LED的電流通常較小,一般均需在回路中接上限流電阻。假如我們將b和c段接上正電源,其它端接地或懸空,那么b和c段發(fā)光,此時,數(shù)碼管顯示將顯示數(shù)字“1”。而將a、b、d、e和g段都接上正電源,其它引腳懸空,此時數(shù)碼管將顯示“2”。其它字符的顯示原理類同。2.2系統(tǒng)方案論證2.2.1方案一由于本設(shè)計的溫度測溫電路,可以使用熱敏電阻Pt100

46、其感溫效應(yīng),Pt100溫度傳感器為正溫度系數(shù)熱敏電阻傳感器,主要技術(shù)參數(shù)如下:測量圍:-200+850;允許偏差值:A級(0.150.002t), B級(0.300.005t);熱響應(yīng)時間 0;i-); void modify(void) EA=0; if(thour=0) if(flag=0) dat16+;delay(180); if(dat169) dat16=0;dat17+;if(dat172) dat17=0; if(flag=1) alarms6+;delay(200); if(alarms69) alarms6=0;alarms7+; if(alarms72) alarms7=

47、0; dat6=alarms6; dat7=alarms7; if(tminute=0) if(flag=0) dat13+;delay(180); if(dat3=10) dat14+;dat13=0;if(dat145) dat14=0; if(flag=1) alarms3+;delay(200); if(alarms39) alarms4+;alarms3=0; if(alarms45) alarms4=0; dat3=alarms3; dat4=alarms4; if(miaobiao1=0) TR0=0;ET0=0;TR1=1;ET1=1; if(miaobiao2=0) TR0=

48、1;ET0=1;TR1=0;ET1=0; dat20=0; dat21=0; dat23=0; dat24=0; dat26=0; dat27=0; ms=0; sec=0; minit=0; if(P1_5=0) TR0=0;ET0=0;TR1=0;ET1=0; if(alarm=0) TR0=0;ET0=0;TR1=0;ET1=0;flag=1; dat0=0; dat1=0;dat2=10; dat3=0;dat4=0;dat5=10;dat6=0;dat7=0; EA=1; void init(void)TMOD = 0 x11; TH0 = 0 xDB;TL0 =0 xFF;TH1=

49、0 xDB;TL1=0 xFF; ET0 = 1; /10msET1=1;TR1=1; TR0=1; tcount=0;ms=0;sec=0;minit=0;EA = 1; void test(void) for(k=0;k23) time1.hour=0; dat5=10; dat2=10; dat0=dat10; dat1=dat11; dat3=dat13; dat4=dat14; dat6=dat16; dat7=dat17; flag=0; P0=0 x00; if(alarms7=dat17)&(alarms6=dat16)&(alarms4=dat14)&(alarms3=dat

50、13) P0=0 x01; ET0=1;void time_2(void)interrupt 3 EA=0; TR0=0; TH1=0 xDB; TL1=0 xFF; TR1=1; ms+; dat20=ms%10; dat21=ms/10; if(ms=100) ms=0; sec+; dat23=sec%10; dat24=sec/10; if(sec=60) sec=0; minit+; dat26=minit%10; dat27=minit/10; dat5=10; dat2=10; dat0=dat20; dat1=dat21; dat3=dat23; dat4=dat24; dat

51、6=dat26; dat7=dat27;return;顯示程序:/*模塊名:LED數(shù)據(jù)顯示、設(shè)定描述:4位LED顯示,-9999到+9999,有單獨負(fù)號位(利用LED0的小數(shù)點位)LED4(單位顯示),LED3-LED0(千,百,十,個)KEY_RIGHT鍵移動位選,KEY_UP鍵修改數(shù)值KEY_SET鍵取消修改, KEY_ENT確認(rèn)修改修改記錄:增加了DispString()函數(shù),SetValueStr()函數(shù).*/#include includes.h*函數(shù)名:DisplayInt參數(shù):ucNum = 數(shù)值ucPoint = 0-3,大于3或等于0時不顯示小數(shù)點ucWidth = 1-4,

52、當(dāng)顯示數(shù)值大于設(shè)定位數(shù)時,以顯示數(shù)值為準(zhǔn)返回值:描述:LED數(shù)值顯示,4位,-9999到+9999*/void DisplayInt(int ucNum, unsigned char ucPoint, unsigned char ucWidth)unsigned char data ucLedBuffer4;/顯示緩沖unsigned char data ucNegative;/負(fù)數(shù)標(biāo)志/入口參數(shù)檢查if (ucNum 9999)ucNum = 9999;if (ucNum 3)ucPoint = 0;if (ucWidth 4)ucWidth = 4;/取正負(fù)號if (ucNum 0)/-u

53、cNegative = 1;ucNum *= (-1);else/+ucNegative = 0;ucLedBuffer3 = GetLedMold(0 + (ucNum / 1000);/千位ucNum %= 1000;ucLedBuffer2 = GetLedMold(0 + (ucNum / 100);/百位ucNum %= 100;ucLedBuffer1 = GetLedMold(0 + (ucNum / 10);/十位ucNum %= 10;ucLedBuffer0 = GetLedMold(0 + (ucNum);/個位/隱藏不顯示位,當(dāng)要顯示的數(shù)據(jù)超過寬度時,應(yīng)顯示9999。i

54、f (ucWidth 4)if(ucLedBuffer3!= GetLedMold(0)ucLedBuffer2 = GetLedMold(9);ucLedBuffer1 = GetLedMold(9);ucLedBuffer0 = GetLedMold(9);ucLedBuffer3 = 0 x00;if (ucWidth 3)if(ucLedBuffer2 != GetLedMold(0)ucLedBuffer1 = GetLedMold(9);ucLedBuffer0 = GetLedMold(9);ucLedBuffer2 = 0 x00;if (ucWidth 2)if(ucLedBuffer1 != GetLedMold(0)ucLedBuffer0 = GetLedMold(9);ucLedBuffer1 = 0 x00;if (ucPoint != 0)ucLedBufferucPoint |= 0 x01;/小數(shù)點位if (ucNegative != 0)ucLedBuffer0 |= 0 x01;/負(fù)號位/LED數(shù)據(jù)更新SetLed(3, ucLedBuffer3);SetLed(2, ucLedBuffer2);SetLed(1, ucLedBuffer1);SetLed(0, ucLedBuffer0);return;/*函數(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論