版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 智能化儀器儀表課程設(shè)計題 目 基于51單片機(jī)的倉庫溫度控制系統(tǒng) 學(xué) 院 機(jī)械工程學(xué)院 專 業(yè) 測控技術(shù)與儀器 學(xué)生姓名 學(xué) 號 201 年級2012級 指導(dǎo)教師 2015年 6月 20日摘要:本設(shè)計為基于C52單片機(jī)的4路DS18B20、LCD1602顯示、開關(guān)量控制系統(tǒng),采用模塊化、層次化設(shè)計。如今運(yùn)用DS18B20數(shù)字式溫度傳感器測溫度,省略模電轉(zhuǎn)換,將數(shù)字信號直接送給單片機(jī)調(diào)用。采用LC1602液晶顯示方式,使顯示更加方便簡介,接著使用單片機(jī)AT89C51I/O口交流電機(jī)開和關(guān),構(gòu)建了一個集顯示、檢測與控制于一體的單片機(jī)應(yīng)用系統(tǒng)。此外,該系統(tǒng)自行設(shè)計了一個5V穩(wěn)壓電源,不僅可在220V
2、交流中供電,而且能夠接受5V電壓直接供電。關(guān)鍵詞:單片機(jī);液晶顯示;數(shù)字式溫度傳感器;開關(guān)量控制電路目錄目錄3第一章緒論11.1 課題的研究背景11.2 課題的研究內(nèi)容及目標(biāo)11.3 本文的結(jié)構(gòu)組織1第二章 系統(tǒng)方案設(shè)計及論證22.1總體方案設(shè)計22.2方案比較與論證22.2.1采集電路22.2.2處理器選擇32.2.3 顯示部分3第三章 系統(tǒng)的電路設(shè)計與元器件介紹43.1 系統(tǒng)的電路設(shè)計43.1.1 最小系統(tǒng)電路43.1.2 溫度采集電路53.1.3 控制系統(tǒng)電路53.1.4 顯示系統(tǒng)電路63.1.5 報警電路63.2 元器件介紹73.2.1 單片機(jī)介紹73.2.1.1 單片機(jī)主要性能73.
3、2.1.2 單片機(jī)各引腳功能介紹73.2.1.3 單片機(jī)特殊功能寄存器介紹83.2.2 DS18B20簡介93.2.2.1 DS18B20主要特性93.2.2.2 DS18B20內(nèi)部結(jié)構(gòu)103.2.3 LCD1602簡介113.2.3.1LCD1602主要技術(shù)參數(shù)113.2.4 繼電器簡介14第四章 系統(tǒng)軟件設(shè)計154.1 程序流程圖154.2 程序設(shè)計164.2.1DS18B20的程序設(shè)計164.2.2LCD1602液晶的程序設(shè)計164.2.3主程序設(shè)計17總 結(jié)18附錄一 原理圖19附錄二 仿真圖20附錄三 程序代碼2130第一章 緒論1.1 課題的研究背景通過課程設(shè)計,使學(xué)生進(jìn)一步加深理
4、解單片機(jī)的工作原理,通過實習(xí)制作掌握引入外部中斷的方法及其中斷服務(wù)程序的編程方法;掌握定時器的使用及其中斷服務(wù)程序的編寫方法;從而了解如何構(gòu)成系統(tǒng)的主程序;通過實習(xí)制作掌握單片機(jī)應(yīng)用系統(tǒng)的制作工藝及調(diào)試方法,進(jìn)一步理解單片機(jī)系統(tǒng)設(shè)計及開發(fā)方法,從而使學(xué)生具備設(shè)計單片機(jī)應(yīng)用系統(tǒng)的能力。1.2 課題的研究內(nèi)容及目標(biāo)基于單片機(jī)的4路溫度采集控制系統(tǒng),系統(tǒng)運(yùn)行時,循環(huán)掃描顯示對應(yīng)的DS18B20溫度傳感器的溫度,為了顯示清晰,要求循環(huán)逐次顯示溫度;每隔10ms,采集一次溫度;當(dāng)溫度高于20攝氏度后,單片機(jī)控制交流電機(jī)(電風(fēng)扇)開始工作,當(dāng)溫度降到20度以下,控制交流電機(jī)停止工作。交流電機(jī)的開關(guān),采用繼
5、電器代替,所以單片機(jī)只需控制繼電器的開斷即可控制交流電機(jī)的工作與否。1.3 本文的結(jié)構(gòu)組織本文的組織結(jié)構(gòu)安排如下:第一章緒論,扼要闡明本課題的研究背景、研究目的、研究意義,以及要實現(xiàn)的目標(biāo)。第二章系統(tǒng)設(shè)計方案及論證,通過分析論證,選出最合適的設(shè)計方案,介紹總體方案。第三章主要講述整個體系硬件電路的設(shè)計及元器件的介紹,包括單片機(jī)的選擇、各個器件的選擇以及顯示電路的設(shè)計。第四章是軟件設(shè)計,基于前面的硬件系統(tǒng),設(shè)計程序。第二章 系統(tǒng)方案設(shè)計及論證2.1總體方案設(shè)計AT89C52根據(jù)課題要求實現(xiàn),該系統(tǒng)主要由采集系統(tǒng)、顯示系統(tǒng)和控制系統(tǒng)組成,以AT89C52單片機(jī)為核心,設(shè)計。圖2-1圖:顯示系統(tǒng)最小
6、系統(tǒng)報警系統(tǒng)采集系統(tǒng)控制系統(tǒng)圖 2-1系統(tǒng)圖2.2方案比較與論證2.2.1采集電路方案一:使用傳統(tǒng)溫度傳感器。傳統(tǒng)的溫度檢測大多以熱敏電阻為傳感器,采用熱敏電阻,可滿足40攝氏度至90攝氏度測量范圍,但熱敏電阻可靠性差,測量溫度準(zhǔn)確率低,對于1攝氏度的信號是不適用的,還得經(jīng)過專門的接口電路轉(zhuǎn)換成數(shù)字信號才能由微處理器進(jìn)行處理。對于這類傳感器,使用起來較麻煩,但價格較便宜。方案二:使用數(shù)字式溫度傳感器。數(shù)字溫度傳感器使用集成芯片,采用單總線技術(shù),其能夠有效的減小外界的干擾,提高測量的精度,同時,它可以直接將被測溫度轉(zhuǎn)化成串行數(shù)字信號供微機(jī)處理,接口簡單,使數(shù)據(jù)傳輸和處理簡單化。部分功能電路的集成
7、,使總體硬件設(shè)計更簡潔,能 有效地降低成本,搭建電路和焊接電路時更快,調(diào)試也更方便簡單化,這也就縮短了開發(fā)的周期使用起來方便,但價格昂貴。經(jīng)過比較,從系統(tǒng)技術(shù)參數(shù)要求和功能仿真方面考慮,數(shù)字式溫度傳感器比傳統(tǒng)溫度器功能更全面,使用時更方便,仿真時也更簡便,故選用方案二。本次設(shè)計采用市面上運(yùn)用較為廣泛的數(shù)字式溫度傳感器DS18B20。2.2.2處理器選擇方案一:采用AT89C52單片機(jī)作為處理器,能達(dá)到要求,但其內(nèi)存過小,處理精度較低,不是最好的選擇;方案二:采用TI公司的各種單片機(jī),雖然能很好的達(dá)到設(shè)計的要求,但其成本過高,且程序較復(fù)雜,不適宜與本次設(shè)計。通過對比,方案一的AT89C52的功能
8、完全能夠符合題目的各個部分和發(fā)揮部分的設(shè)計,故選用方案一2.2.3 顯示部分方案一:采用LED數(shù)碼管,其操作簡單,顯示直觀。不僅程序的設(shè)計簡易,而且對周圍的環(huán)境要求很低,方便維護(hù)方案二:使用LCD液晶,它具有體積小、低功耗、顯示豐富等優(yōu)點。電路連接簡單,價格比較高。總的來說,LCD液晶顯示電路連接簡單且能滿足設(shè)計需求,又LCD1602上課時學(xué)過,不需再單獨學(xué)習(xí)其他LCD顯示程序編寫要求,所以本設(shè)計選用LCD液晶顯示。第三章 系統(tǒng)的電路設(shè)計與元器件介紹3.1 系統(tǒng)的電路設(shè)計整個設(shè)計的電路主要包括了最小系統(tǒng)電路、溫度采集系統(tǒng)電路、控制系統(tǒng)電路及顯示系統(tǒng)電路等幾部分電路組成。3.1.1 最小系統(tǒng)電路
9、晶振電路和復(fù)位電路與單片機(jī)連接構(gòu)成最小系統(tǒng)電路,如圖3-1圖3-1最小系統(tǒng)電路3.1.2 溫度采集電路圖3-2溫度采集電路3.1.3 控制系統(tǒng)電路圖3-3控制系統(tǒng)電路3.1.4 顯示系統(tǒng)電路圖3-4顯示系統(tǒng)電路3.1.5 報警電路圖3-5 報警電路3.2 元器件介紹3.2.1 單片機(jī)介紹3.2.1.1 單片機(jī)主要性能AT89C52是由ATMEL公司生產(chǎn)的52單片機(jī)的一個型號。它具有高性能CMOS8位、低電壓的優(yōu)點,使用了該公司的高密度、非易失性存儲技術(shù)生產(chǎn),完美兼容MCS-52指令系統(tǒng),包括8位中央處理器和Flash存儲單元,AT89C51功能強(qiáng)大、試用范圍非常廣。主要功能特性:引腳完全兼容M
10、CS-52產(chǎn)品具有4K字節(jié)的可重擦寫Flash閃存1000次擦寫周期 2個讀寫中斷口線全靜態(tài)操作:0Hz-24MHz三級加密程序存儲器128*4字節(jié)內(nèi)部RAM 32可編程雙向I/O線3個16位定時器/計數(shù)器2個外部中斷源,共6個中斷源可編程串行UART通道低功耗的空間和掉電模式軟件設(shè)置睡眠和喚醒功能3.2.1.2 單片機(jī)各引腳功能介紹AT89C52由40 腳雙列直插包裝的8 位通用微處理器組成,使用常用的C52內(nèi)核,它主要用于會聚調(diào)整功能的控制。功能主要有對會聚主IC 內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等部件的初始化,會聚調(diào)整控制,會聚測試圖控制,紅外遙控信號IR的接收解碼及與主板CPU通信等。
11、·P0 口:P0 口是8 位的漏極開路型雙向的I/O 口,即為地址/數(shù)據(jù)總線復(fù)用口。如果被當(dāng)作輸出口,每位可以吸收電流的形式驅(qū)動8 個TTL邏輯門電路,對端口P0 寫“1”時,起作用變?yōu)楦咦杩馆斎?。?dāng)需要訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復(fù)用,期間可以激活內(nèi)部上拉電阻。在Flash 編程時,P0 口負(fù)責(zé)接受指令字節(jié),但是在程序校驗的時候,需要輸出指令字節(jié),校驗時需要外接上拉電阻。·P1 口:P1 是一個帶在內(nèi)部上拉電阻的8 位的雙向I/O 口, P1 的輸出緩沖級可驅(qū)動(吸取或輸出電流)4 個TTL 邏輯門電路。對端口寫“1”,經(jīng)過
12、里面 的上拉電阻把端口拉至高電平,就可作輸入口使用。作輸入口用時,因為里面存在上拉電阻,某引腳被外部的信號拉低時會輸出一個電流(IIL)。與AT89C51 不同之處是,P1.0 和P1.1 還有作為定時/計數(shù)器2 的外部計數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX)的功能,F(xiàn)lash 編程和程序校驗的時候,P1 接收低8 位地址。·P2 口:P2 是一個帶有上拉電阻的8 位雙向的I/O 口,P2 的輸出緩沖級能夠驅(qū)動(吸收或輸出電流)4 個TTL 邏輯門電路。將端口P2寫“1”,通過內(nèi)部的上拉電阻來港的高水平,此時,可作為輸入,作為輸入使用時,因為內(nèi)部上拉電阻,如果某個引腳被
13、外部信號拉低的時候就會輸出一個電流(IIL)。當(dāng)訪問外部程序存儲器或16 位地址的外部數(shù)據(jù)存儲器時,P2 口送出高8 位的地址數(shù)據(jù)。當(dāng)訪問8 位地址的外部數(shù)據(jù)存儲器時,P2 口輸出P2 鎖存器的內(nèi)容。編程或檢查,P2也獲得了很高的地址和控制信號。·P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL 邏輯門電路。對P3 口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。P3 口除了作為一般的I/O 口線外,此外,它的第二功能P3 口還接收一些可以用于Fla
14、sh 閃速存儲器編程與程序校驗的控制信號才是最重要的。3.2.1.3 單片機(jī)特殊功能寄存器介紹·數(shù)據(jù)存儲器:AT89C52 有256 個字節(jié)內(nèi)部RAM,80H-FFH 高128 個字節(jié)與特殊功能寄存器(SFR)地址是重復(fù)的,雖然物理上分開,但是高128字節(jié)的RAM 與特殊功能寄存器的地址相同。當(dāng)一條指令訪問7FH 以上地址單元的時候,指令中使用不同的尋址方式,即為究竟是訪問高128 字節(jié)RAM 還是訪問特殊功能寄存器是由尋址方式?jīng)Q定的。直接尋址方式對應(yīng)的是訪問特殊功能寄存器。·定時器0和定時器1:AT89C52的定時器0和定時器1 的工作方式與AT89C51 相同。
15、3;2定時器:定時器2是一個16位定時器/計數(shù)器。不僅僅可以當(dāng)定時器用,而且可用作外部事件計數(shù)器,特殊功能的寄存器T2CON的C/T2 位負(fù)責(zé)選擇它的工作方式。定時器2一共有三種工作方式:捕獲方式,向上或向下計數(shù)方式以及波特率發(fā)生器方式,T2CON 的控制位來決定其工作方式。3.2.2 DS18B20簡介DS18B20溫度傳感器是美國達(dá)拉斯(DALLAS)半導(dǎo)體公司推出的應(yīng)用單總線技術(shù)的數(shù)字溫度傳感器5。該器件將半導(dǎo)體溫敏器件、A/D轉(zhuǎn)換器、存儲器等做在一個很小的集成電路芯片上。本設(shè)計中溫度傳感器之所以選擇單線數(shù)字器件DS18B20,是在經(jīng)過多方面比較和考慮后決定的,主要有以下幾方面的原因:(
16、1)系統(tǒng)的特性:測溫范圍為-55+125 ,測溫精度為士0.5;溫度轉(zhuǎn)換精度912位可變,能夠直接將溫度轉(zhuǎn)換值以16位二進(jìn)制數(shù)碼的方式串行輸出;12位精度轉(zhuǎn)換的最大時間為750ms;可以通過數(shù)據(jù)線供電,具有超低功耗工作方式。(2)系統(tǒng)成本:由于計算機(jī)技術(shù)和微電子技術(shù)的發(fā)展,新型大規(guī)模集成電路功能越來越強(qiáng)大,體積越來越小,而價格也越來越低。一支DS18B20的體積與普通三極管相差無幾,價格只有十元人民幣左右。(3)系統(tǒng)復(fù)雜度:由于DS18B20是單總線器件,微處理器與其接口時僅需占用1個I/O端口且一條總線上可以掛接幾十個DS18B20,測溫時無需任何外部元件,因此,與模擬傳感器相比,可以大大減
17、少接線的數(shù)量,降低系統(tǒng)的復(fù)雜度,減少工程的施工量。(4)系統(tǒng)的調(diào)試和維護(hù):由于引線的減少,使得系統(tǒng)接口大為簡化,給系統(tǒng)的調(diào)試帶來方便。同時因為DS18B20是全數(shù)字元器件,故障率很低,抗干擾性強(qiáng),因此,減少了系統(tǒng)的日常維護(hù)工作。DS18B20溫度傳感器只有三根外引線:單線數(shù)據(jù)傳輸總線端口DQ ,外供電源線VDD,共用地線GND。DS18B20有兩種供電方式:一種為數(shù)據(jù)線供電方式,此時VDD接地,它是通過內(nèi)部電容在空閑時從數(shù)據(jù)線獲取能量,來完成溫度轉(zhuǎn)換,相應(yīng)的完成溫度轉(zhuǎn)換的時間較長6。這種情況下,用單片機(jī)的一個I/O口來完成對DS18B20總線的上拉。另一種是外部供電方式(VDD接+5V),相應(yīng)
18、的完成溫度測量的時間較短。3.2.2.1 DS18B20主要特性 DS18B20的引腳圖如圖3-6所示。獨特的單線接口僅需要一個端口引腳進(jìn)行通信;多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能;無須外部器件;可通過數(shù)據(jù)線供電,電壓范圍為3.05.5;零待機(jī)功耗;溫度以9或12位數(shù)字;用戶可定義報警設(shè)置;報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件;負(fù)電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。DS18B20的引腳功能描述如表3-1所示。圖3-6 DS18B20的引腳排列表3-1 DS18B20引腳功能描述序號名稱引腳功能描述1GND地信號2DQ
19、數(shù)字輸入輸出引腳,開漏單總線接口引腳,當(dāng)使用寄生電源時,可向電源提供電源3VDD可選擇的VDD引腳,當(dāng)工作于寄生電源時,該引腳必須接地3.2.2.2 DS18B20內(nèi)部結(jié)構(gòu) DS18B20的內(nèi)部框圖如圖3-7所示。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é)器件內(nèi)部保留使用。第八字節(jié)含有循環(huán)冗余碼(CRC )。圖3-7 DS18B20的內(nèi)部框圖該
20、技術(shù)采用單根信號線,既可傳輸時鐘,也能傳輸數(shù)據(jù),而且是雙向傳輸。適用于單主機(jī)系統(tǒng),主機(jī)能夠控制一個或多個從機(jī)設(shè)備,通過一個漏極開路或三態(tài)端口連至該數(shù)據(jù)線,以允許設(shè)備在不發(fā)送數(shù)據(jù)時能釋放該線,而讓其他設(shè)備使用。單線通常要求外接一個5K的上拉電阻,這樣當(dāng)該線空閑時,其狀態(tài)為高電平。主機(jī)和從機(jī)之間的通訊分成三個步驟:初始化單線器件、識別單線器件和單線數(shù)據(jù)傳輸7。單線1wire協(xié)議由復(fù)位脈沖、應(yīng)答脈沖、寫0、寫1、讀0、讀1,這幾種信號類型實現(xiàn),這些信號中除了應(yīng)答脈沖其他都由主機(jī)發(fā)起,并且所有指令和數(shù)據(jù)字節(jié)都是低位在前。DS18B20直接將測量溫度值轉(zhuǎn)化為數(shù)字量提交給單片機(jī),工作時必須嚴(yán)格遵守單總線器
21、件的工作時序。表3-2 部分溫度值與DS18B20輸出的數(shù)字量對照表溫度值/ 數(shù)字輸出(二進(jìn)制) 數(shù)字輸出(十六進(jìn)制) +125 0000 0111 1101 0000 07D0H+85 0000 0101 0101 0000 0550H+25.625 0000 0001 1001 0001 0191H+10.125 0000 0000 1010 0010 00A2H+0.5 0000 0000 0000 1000 0008H0 0000 0000 0000 0000 0000H-0.5 1111 1111 1111 1000 FFF8H-10.125 1111 1111 0110 1110
22、FF5EH-25.625 1111 1111 0110 1111 FF6FH-55 1111 1100 1001 0000 FC90H 3.2.3 LCD1602簡介1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。3.2.3.1
23、LCD1602主要技術(shù)參數(shù)管腳:1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:GND為電源地第2腳:VCC接5V電源正極第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會 產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度)。第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平(1)時進(jìn)行讀操作,低電平(0)時進(jìn)行寫操作。第6腳:E(或EN)端為使能(enable)端,高電平(1)時讀取信息,負(fù)跳變時執(zhí)行指令。第714腳:D0D7為8位雙向數(shù)據(jù)端。第1516腳:空腳或背燈電源。15腳背光
24、正極,16腳背光負(fù)極。特性:3.3V或5V工作電壓,對比度可調(diào)內(nèi)含復(fù)位電路提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM內(nèi)建有192個5X7點陣的字型的字符發(fā)生器CGROM8個可由用戶自定義的5X7的字符發(fā)生器CGRAM特征應(yīng)用:微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧,常用在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中。操作控制注:關(guān)于E=H脈沖開始時初始化E為0,然后置E為1。字符代碼0x000x0F為用戶自定義的字符圖形RAM(對于5X8點陣的字符,可以存放8組,5X10點陣的字符,存放4組),就是CGRAM了。0x200x7F為標(biāo)準(zhǔn)的ASCII碼,0
25、xA00xFF為日文字符和希臘文字符,其余字符碼(0x100x1F及0x800x9F)沒有定義。以下是1602的16進(jìn)制ASCII碼表地址:讀的時候,先讀上面那行,再讀左邊那列,如:感嘆號!的ASCII為0x21,字母B的ASCII為0x42(前面加0x表示十六進(jìn)制)。指令碼:功能令:RSR/WD7D6D5D4D3D2D1D0說明清顯示0000000001將DDRAM填滿"20H",并且設(shè)定DDRAM的地址計數(shù)器(AC)到"00H"歸位000000001*設(shè)定DDRAM的地址計數(shù)器(AC)到"00H",并且將游標(biāo)移到開頭原點位置;這個
26、指令不改變DDRAM 的內(nèi)容顯示開關(guān)控制指令0000001DCBD=1: 整體顯示 ON,C=1: 游標(biāo)ON,B=1:游標(biāo)位置反白允許進(jìn)入模式設(shè)置指令00000001I/DSI/D=1,光標(biāo)或閃爍向右移動,AC增加1。I/D=0,光標(biāo)或閃爍向左移動,AC減少1,S整個顯示移動光標(biāo)或顯示移位指令000001S/CR/L*光標(biāo)或顯示移位指令可使光標(biāo)或顯示在沒有讀寫數(shù)據(jù)的情況下,向左或向右移動,指令不改變DDRAM 的內(nèi)容功能設(shè)定00001DLNF*DL=0/1:4/8位數(shù)據(jù),N=0/1,單行/雙行顯示,F=0/1,5*8/5*10點陣顯示模式設(shè)置CGRAM地址0001AC5AC4AC3AC2AC1
27、AC0CGRAM地址設(shè)置指令設(shè)置CGRAM地址指針,設(shè)定DDRAM地址0010AC5AC4AC3AC2AC1AC0DDRAM地址設(shè)置指令設(shè)置DDRAM地址。一行地址范圍00H4FH,兩行DDRAM地址第一行00H27H,第二行40H67H,加上高2位,一行:80HA7H,二行:C0HE7H讀忙標(biāo)志和地址01BFAC6AC5AC4AC3AC2AC1AC0BF:忙標(biāo)志位,BF=1,模塊正在進(jìn)行內(nèi)部操作,此時模塊不接受任何外部指令和數(shù)據(jù)。BF=0,模塊可以接受外部的指令和數(shù)據(jù);同時可以讀出地址計數(shù)器(AC)的值。寫RAM指令10D7D6D5D4D3D2D1D0將數(shù)據(jù)D7-D0寫入到內(nèi)部的RAM (D
28、DRAM/CGRAM/IRAM/GRAM),將用戶自定義的字符寫入CGRAM中,D7D5為000,D4D0為5點的字模數(shù)據(jù)讀RAM指令11D7D6D5D4D3D2D1D0從內(nèi)部RAM讀取數(shù)據(jù)D7D0(DDRAM/CGRAM/IRAM/GRAM)3.2.4 繼電器簡介繼電器(英文名稱:relay)是一種電控制器件,是當(dāng)輸入量(激勵量)的變化達(dá)到規(guī)定要求時,在電氣輸出電路中使被控量發(fā)生預(yù)定的階躍變化的一種電器。它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路)之間的互動關(guān)系。通常應(yīng)用于自動化的控制電路中,它實際上是用小電流去控制大電流運(yùn)作的一種“自動開關(guān)”。故在電路中起著自動調(diào)節(jié)、安全保護(hù)
29、、轉(zhuǎn)換電路等作用。電磁繼電器一般由鐵芯、線圈、銜鐵、觸點簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會流過一定的電流,從而產(chǎn)生電磁效應(yīng),銜鐵就會在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動銜鐵的動觸點與靜觸點(常開觸點)吸合。當(dāng)線圈斷電后,電磁的吸力也隨之消失,銜鐵就會在彈簧的反作用力返回原來的位置,使動觸點與原來的靜觸點(常閉觸點)釋放。這樣吸合、釋放,從而達(dá)到了在電路中的導(dǎo)通、切斷的目的。對于繼電器的“常開、常閉”觸點,可以這樣來區(qū)分:繼電器線圈未通電時處于斷開狀態(tài)的靜觸點,稱為“常開觸點”;處于接通狀態(tài)的靜觸點稱為“常閉觸點”。繼電器一般有兩股電路,為低壓控制電路和高
30、壓工作電路。其結(jié)構(gòu)圖如圖3-8所示。圖3-8 電磁繼電器結(jié)構(gòu)圖第四章 系統(tǒng)軟件設(shè)計4.1 程序流程圖在程序進(jìn)行初始化后,開始反復(fù)執(zhí)行如圖4-1所示流程的程序。圖4-1 程序流程圖4.2 程序設(shè)計4.2.1 DS18B20的程序設(shè)計DS18B20的程序中主要包含以下函數(shù):extern void ds18b20_init(void); /初始化extern unsigned char ds18b20_readdata(void); /讀DS18b20的溫度數(shù)據(jù)extern void ds18b20_writecommand(unsigned char command);/向DS18B20寫命令字e
31、xtern void temperature_process(unsigned char,unsigned char); /數(shù)值處理,把讀回的溫度分解成整數(shù)和小數(shù)部分,并轉(zhuǎn)換成ASIC碼xiaoshu_temp5,zhen_temp4; extern unsigned char *read_rom(void); /讀DS18b20中ROMextern bit match_rom(unsigned char *rom); /匹配ROM具體程序內(nèi)容見附錄三中。4.2.2 LCD1602液晶的程序設(shè)計LCD1602的程序中主要包含以下函數(shù):/*功能:寫LCD函數(shù) */void Lcd_Write(b
32、it style,unsigned char input);/*功能:LCD初始化 */void Lcd_Init(void);/*功能:顯示位置設(shè)置 *參數(shù):x-行;y-列 */void GotoXY(unsigned char x,unsigned char y);/*功能:LCD顯示函數(shù) *參數(shù):str-要顯示的字符串指針 */void Print(unsigned char *str);void print_char(uchar );/*功能:LCD清屏函數(shù) void ClrScreen(void);具體程序內(nèi)容見附錄三中。4.2.3 主程序設(shè)計在主程序中,實現(xiàn)了對溫度的巡檢,并把實時
33、測到的溫度顯示在液晶顯示屏上,在很多領(lǐng)域還是比較實用的。每一片DS18B20都有各自的固定的序列號,在仿真中,事先設(shè)定好各個DS18B20的序列號,將其寫進(jìn)程序中,依次進(jìn)行匹配,從而實現(xiàn)巡檢。主程序具體內(nèi)容見附錄三中???結(jié)通過不懈的努力,終于完成了我的課程設(shè)計。在我開始做課程設(shè)計之前,我一直片面的覺得課程設(shè)計只是對大學(xué)這幾年來所學(xué)的專業(yè)知識的簡單的總結(jié),但是在實踐的過程中我發(fā)現(xiàn)我錯了,因為課程設(shè)計不僅是對前面所學(xué)知識的一種檢驗,而且也是對自己能力的以一種提高。通過課程設(shè)計使我明白了我學(xué)到的知識只是知識寶庫中的冰山一角,還有許多要學(xué)習(xí)的地方。原來我總是感覺到已經(jīng)把所有的東西都學(xué)到手了,什么都明
34、白了,有些眼高手低。通過我在課程設(shè)計的實踐過程,我懂得了活到老學(xué)到老這句名言的真正意義,學(xué)習(xí)是一個循序漸進(jìn)的過程,不可能一蹴而就,不管是在以后的工作中、或者生活中都不能停止學(xué)習(xí),不斷的用知識武裝自己,讓自己全面發(fā)展,更能適應(yīng)這個科技文化高速發(fā)展的世界。課程設(shè)計的過程,讓我養(yǎng)成了獨立思考的習(xí)慣,培養(yǎng)了我實在實際操作中動手的能力,我領(lǐng)悟到了在實踐過程中摸索的困難與最終成功時的喜悅,這些對于我的信心或者是工作能力來說都是極大的鼓勵與肯定,相信這些會對未來的工作和生活中有非常重要的影響。雖然我的課程設(shè)計是有些缺陷的,但我覺得在此過程中我收獲了很多,最大的收獲就是在生產(chǎn)實習(xí)的設(shè)計過程中所學(xué)到的財富,他會
35、是我終身受益。在課程設(shè)計的過程中,我還深深體會到交流和相互討論的重要性。向老師請教,就能夠時刻確保在大的方向上我是朝對的方向走;與同學(xué)討論,可以集思廣益、可以迸發(fā)靈感,收獲新方法。思想和信息的傳遞,確保了我的生產(chǎn)實習(xí)得以順利完成。另外,我還總結(jié)出一個結(jié)論:知識要想實現(xiàn)其價值,必須由實踐來完成!再次感謝老師和同學(xué)的指導(dǎo)。附錄一 原理圖附錄二 仿真圖附錄三 程序代碼主程序#include <main.h>#include <18b20.h>#include <LCD.h>/#include <485.h>sbit warning=P35;sbit g
36、reenled=P36;/485 收發(fā)控制/uchar flag1; / sign of the result positive or negativeuchar j;int temper4;uchar code str4_sht11=" max: min: "sbit k1=P30;/setsbit k2=P31;/+sbit k3=P32;/-sbit sound=P17;char max=40;char min=10;uchar change_flag;uchar flag;void delay(uint count) /delay uint i; while(cou
37、nt) i=200; while(i>0) i-; count-; void serial_int() TMOD=0X01;/t1工作在方式2 TH0=0xF0;/2400BIT/S TL0=0x0F; TR0=1;/打開計數(shù)器開始計數(shù) ET0=0;void timer_isr() interrupt 1 TH0=0xF0; TL0=0x0F;sound=sound;void key1()if(k1=0) change_flag+; if(change_flag>2) change_flag=0; while(k1=0);void key2()if(k2=0) if(change_
38、flag=1) max+;if(change_flag=2) min+; while(k2=0);void key3()if(k3=0) if(change_flag=1) max-; if(change_flag=2) min-; while(k3=0);void key()/按鈕 key2();key1();key3();void main() uchar i,a=1,b=1; warning=0; serial_int(); greenled=1; lcd_init(); for(i=0;i<4;i+) tmpchange(i); temperi=tmp(i); display_1
39、602(); while(1) if(change_flag=0)if(a=1) b=1; a=0; write_lcdcom(0x01); /顯示清屏 display_1602(); tmpchange(j); for(i=0;i<100;i+) key(); temperj=tmp(j); lcd_printf(j,temperj,0xcd);/顯示 j+; if(j>3) j=0; if(temperj>max)|(temperj<min)&&(temperj<850) warning=1;greenled=0;/nn=0;EA=1; els
40、e EA=0;warning=0; greenled=1; else key(); if(b=1) a=1; b=0; write_lcdcom(0x01); /顯示清屏 write_lcdcom(0x80);/第一行l(wèi)cd顯示地址 for(i=0;i<32;i+) write_lcddate(str4_sht11i);/顯示table1中的字符 else lcd_set(max,min); LCD顯示程序#include <main.h>#include <LCD.h>sbit lcdrs=P20;sbit lcdwr=P21;sbit lcden=P22;uc
41、har code str1= 0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00;/溫度圖標(biāo)uchar code str6_sht11=" The present temp is" /uchar code str4_sht11="max: min: "/uchar code str2_sht11="temp="uchar code str7_sht11="NO. "/清除沒不要的顯示void delay_1602(uint delay_time)/延時函數(shù)for(;delay_time&
42、gt;0;delay_time-);void write_lcdcom(uchar date)/寫lcd1602命令lcdwr=0;lcdrs=0;delay_1602(5);P0=date;lcden=1;delay_1602(5);lcden=0;void write_lcddate(uchar lcddate)/寫1602數(shù)據(jù)lcdwr=0;lcdrs=1;delay_1602(5);P0=lcddate;lcden=1;delay_1602(5);lcden=0;void lcd_init()/1602初始化write_lcdcom(0x38); /display mode/write
43、_lcdcom(0x38); /display mode/write_lcdcom(0x38); /display modewrite_lcdcom(0x06); /顯示光標(biāo)移動位置write_lcdcom(0x0c); /顯示開及光標(biāo)設(shè)置write_lcdcom(0x01); /顯示清屏/void display_1602()/顯示字符子函數(shù)uchar i;lcdwr=0;lcdrs=0;lcden=0; delay_1602(10);write_lcdcom(0x80);/第一行l(wèi)cd顯示地址/*/for(i=0;i<32;i+) write_lcddate(str6_sht11i)
44、;/顯示table1中的字符 delay_1602(10); write_lcdcom(0xc0);/第二行LCD顯示起始地址for(i=0;i<32;i+) write_lcddate(str7_sht11i);/顯示table2中的字符 lcdwr=1;lcdrs=1;lcden=1;void lcd_printf(uchar number,uint x,uchar add)/LCD數(shù)據(jù)顯示函數(shù)uchar x1,x2,x3,x4; x1=x/1000;x2=x%1000/100;x3=x%100/10; x4=x%10; write_lcdcom(0xc4); write_lcdda
45、te(number+0x30); write_lcdcom(0xca); if(flag=1) write_lcddate('-'); else write_lcddate(' '); write_lcdcom(add); write_lcddate(x1+0x30);/write_lcddate(x1+0x30);/0x30是0的ascii碼 write_lcddate(x2+0x30);write_lcddate(x3+0x30);/0x30是0的ascii碼 write_lcddate('.');write_lcddate(x4+0x30)
46、;write_lcddate(' '); write_lcddate('C');void lcd_set(char max,char min)uchar x1,x2,x3,x4; uchar flag_max,flag_min; if(max<0) flag_max=1; max=-max; else flag_max=0; if(min<0) flag_min=1; min=-min; else flag_min=0; x1=max/10;x2=max%10;x3=min/10; x4=min%10; write_lcdcom(0xc4); if(flag_max=1) write_lcddate('-'); write_lcddate(x1+0x30); write_lcddate(x2+0x30); write_lcdcom(0xD0); if(flag_min=1) write_lcddate('-'); write
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生電腦出售合同模板
- 綠化工程-隱蔽工程驗收記錄
- 影視設(shè)備出租合同模板
- 廈門代建合同模板
- 小區(qū)大米售賣合同范例
- 2024年西安客運(yùn)資格證考試新規(guī)
- it設(shè)備采購合同范例
- 2024年福州c1道路客運(yùn)輸從業(yè)資格證怎么考
- 2024年交通職業(yè)考試網(wǎng)和客運(yùn)駕駛員從業(yè)資格證考試題目
- 2024年嘉興c1道路客運(yùn)輸從業(yè)資格證怎么考
- 水系統(tǒng)規(guī)劃方案及非傳統(tǒng)水源利用率計算書
- (完整word)A4作文格子紙打印版-word文檔
- 介紹班級優(yōu)化大師
- 煙花爆竹經(jīng)營單位主要負(fù)責(zé)人與安全管理人員培訓(xùn)課件
- 鋼包烘烤制度
- 煤氣柜設(shè)計安全要求
- 采購管理流程和采購工作流程
- 數(shù)學(xué)專業(yè)參考書整理推薦
- 《化鎳金之腐蝕》
- 繼承和發(fā)揚(yáng)中國革命道德
- 《品人錄》讀書筆記思維導(dǎo)圖PPT模板下載
評論
0/150
提交評論