版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 智能化儀器儀表課程設(shè)計(jì)題 目 基于51單片機(jī)的倉庫溫度控制系統(tǒng) 學(xué) 院 機(jī)械工程學(xué)院 專 業(yè) 測控技術(shù)與儀器 學(xué)生姓名 學(xué) 號 201 年級2012級 指導(dǎo)教師 2015年 6月 20日摘要:本設(shè)計(jì)為基于c52單片機(jī)的4路ds18b20、lcd1602顯示、開關(guān)量控制系統(tǒng),采用模塊化、層次化設(shè)計(jì)。如今運(yùn)用ds18b20數(shù)字式溫度傳感器測溫度,省略模電轉(zhuǎn)換,將數(shù)字信號直接送給單片機(jī)調(diào)用。采用lc1602液晶顯示方式,使顯示更加方便簡介,接著使用單片機(jī)at89c51i/o口交流電機(jī)開和關(guān),構(gòu)建了一個(gè)集顯示、檢測與控制于一體的單片機(jī)應(yīng)用系統(tǒng)。此外,該系統(tǒng)自行設(shè)計(jì)了一個(gè)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è)計(jì)及論證22.1總體方案設(shè)計(jì)22.2方案比較與論證22.2.1采集電路22.2.2處理器選擇32.2.3 顯示部分3第三章 系統(tǒng)的電路設(shè)計(jì)與元器件介紹43.1 系統(tǒng)的電路設(shè)計(jì)43.1.1 最小系統(tǒng)電路43.1.2 溫度采集電路53.1.3 控制系統(tǒng)電路53.1.4 顯示系統(tǒng)電路63.1.5 報(bào)警電路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è)計(jì)154.1 程序流程圖154.2 程序設(shè)計(jì)164.2.1ds18b20的程序設(shè)計(jì)164.2.2lcd1602液晶的程序設(shè)計(jì)164.2.3主程序設(shè)計(jì)17總 結(jié)18附錄一 原理圖19附錄二 仿真圖20附錄三 程序代碼2130第一章 緒論1.1 課題的研究背景通過課程設(shè)計(jì),使學(xué)生進(jìn)一步加深理
4、解單片機(jī)的工作原理,通過實(shí)習(xí)制作掌握引入外部中斷的方法及其中斷服務(wù)程序的編程方法;掌握定時(shí)器的使用及其中斷服務(wù)程序的編寫方法;從而了解如何構(gòu)成系統(tǒng)的主程序;通過實(shí)習(xí)制作掌握單片機(jī)應(yīng)用系統(tǒng)的制作工藝及調(diào)試方法,進(jìn)一步理解單片機(jī)系統(tǒng)設(shè)計(jì)及開發(fā)方法,從而使學(xué)生具備設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)的能力。1.2 課題的研究內(nèi)容及目標(biāo)基于單片機(jī)的4路溫度采集控制系統(tǒng),系統(tǒng)運(yùn)行時(shí),循環(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)安排如下:第一章緒論,扼要闡明本課題的研究背景、研究目的、研究意義,以及要實(shí)現(xiàn)的目標(biāo)。第二章系統(tǒng)設(shè)計(jì)方案及論證,通過分析論證,選出最合適的設(shè)計(jì)方案,介紹總體方案。第三章主要講述整個(gè)體系硬件電路的設(shè)計(jì)及元器件的介紹,包括單片機(jī)的選擇、各個(gè)器件的選擇以及顯示電路的設(shè)計(jì)。第四章是軟件設(shè)計(jì),基于前面的硬件系統(tǒng),設(shè)計(jì)程序。第二章 系統(tǒng)方案設(shè)計(jì)及論證2.1總體方案設(shè)計(jì)at89c52根據(jù)課題要求實(shí)現(xiàn),該系統(tǒng)主要由采集系統(tǒng)、顯示系統(tǒng)和控制系統(tǒng)組成,以at89c52單片機(jī)為核心,設(shè)計(jì)。圖2-1圖:顯示系統(tǒng)最小
6、系統(tǒng)報(bào)警系統(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)行處理。對于這類傳感器,使用起來較麻煩,但價(jià)格較便宜。方案二:使用數(shù)字式溫度傳感器。數(shù)字溫度傳感器使用集成芯片,采用單總線技術(shù),其能夠有效的減小外界的干擾,提高測量的精度,同時(shí),它可以直接將被測溫度轉(zhuǎn)化成串行數(shù)字信號供微機(jī)處理,接口簡單,使數(shù)據(jù)傳輸和處理簡單化。部分功能電路的集成
7、,使總體硬件設(shè)計(jì)更簡潔,能 有效地降低成本,搭建電路和焊接電路時(shí)更快,調(diào)試也更方便簡單化,這也就縮短了開發(fā)的周期使用起來方便,但價(jià)格昂貴。經(jīng)過比較,從系統(tǒng)技術(shù)參數(shù)要求和功能仿真方面考慮,數(shù)字式溫度傳感器比傳統(tǒng)溫度器功能更全面,使用時(shí)更方便,仿真時(shí)也更簡便,故選用方案二。本次設(shè)計(jì)采用市面上運(yùn)用較為廣泛的數(shù)字式溫度傳感器ds18b20。2.2.2處理器選擇方案一:采用at89c52單片機(jī)作為處理器,能達(dá)到要求,但其內(nèi)存過小,處理精度較低,不是最好的選擇;方案二:采用ti公司的各種單片機(jī),雖然能很好的達(dá)到設(shè)計(jì)的要求,但其成本過高,且程序較復(fù)雜,不適宜與本次設(shè)計(jì)。通過對比,方案一的at89c52的功能
8、完全能夠符合題目的各個(gè)部分和發(fā)揮部分的設(shè)計(jì),故選用方案一2.2.3 顯示部分方案一:采用led數(shù)碼管,其操作簡單,顯示直觀。不僅程序的設(shè)計(jì)簡易,而且對周圍的環(huán)境要求很低,方便維護(hù)方案二:使用lcd液晶,它具有體積小、低功耗、顯示豐富等優(yōu)點(diǎn)。電路連接簡單,價(jià)格比較高??偟膩碚f,lcd液晶顯示電路連接簡單且能滿足設(shè)計(jì)需求,又lcd1602上課時(shí)學(xué)過,不需再單獨(dú)學(xué)習(xí)其他lcd顯示程序編寫要求,所以本設(shè)計(jì)選用lcd液晶顯示。第三章 系統(tǒng)的電路設(shè)計(jì)與元器件介紹3.1 系統(tǒng)的電路設(shè)計(jì)整個(gè)設(shè)計(jì)的電路主要包括了最小系統(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 報(bào)警電路圖3-5 報(bào)警電路3.2 元器件介紹3.2.1 單片機(jī)介紹3.2.1.1 單片機(jī)主要性能at89c52是由atmel公司生產(chǎn)的52單片機(jī)的一個(gè)型號。它具有高性能cmos8位、低電壓的優(yōu)點(diǎn),使用了該公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),完美兼容mcs-52指令系統(tǒng),包括8位中央處理器和flash存儲(chǔ)單元,at89c51功能強(qiáng)大、試用范圍非常廣。主要功能特性:引腳完全兼容m
10、cs-52產(chǎn)品具有4k字節(jié)的可重擦寫flash閃存1000次擦寫周期 2個(gè)讀寫中斷口線全靜態(tài)操作:0hz-24mhz三級加密程序存儲(chǔ)器128*4字節(jié)內(nèi)部ram 32可編程雙向i/o線3個(gè)16位定時(shí)器/計(jì)數(shù)器2個(gè)外部中斷源,共6個(gè)中斷源可編程串行uart通道低功耗的空間和掉電模式軟件設(shè)置睡眠和喚醒功能3.2.1.2 單片機(jī)各引腳功能介紹at89c52由40 腳雙列直插包裝的8 位通用微處理器組成,使用常用的c52內(nèi)核,它主要用于會(huì)聚調(diào)整功能的控制。功能主要有對會(huì)聚主ic 內(nèi)部寄存器、數(shù)據(jù)ram及外部接口等部件的初始化,會(huì)聚調(diào)整控制,會(huì)聚測試圖控制,紅外遙控信號ir的接收解碼及與主板cpu通信等。
11、·p0 口:p0 口是8 位的漏極開路型雙向的i/o 口,即為地址/數(shù)據(jù)總線復(fù)用口。如果被當(dāng)作輸出口,每位可以吸收電流的形式驅(qū)動(dòng)8 個(gè)ttl邏輯門電路,對端口p0 寫“1”時(shí),起作用變?yōu)楦咦杩馆斎搿.?dāng)需要訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復(fù)用,期間可以激活內(nèi)部上拉電阻。在flash 編程時(shí),p0 口負(fù)責(zé)接受指令字節(jié),但是在程序校驗(yàn)的時(shí)候,需要輸出指令字節(jié),校驗(yàn)時(shí)需要外接上拉電阻。·p1 口:p1 是一個(gè)帶在內(nèi)部上拉電阻的8 位的雙向i/o 口, p1 的輸出緩沖級可驅(qū)動(dòng)(吸取或輸出電流)4 個(gè)ttl 邏輯門電路。對端口寫“1”,經(jīng)過
12、里面 的上拉電阻把端口拉至高電平,就可作輸入口使用。作輸入口用時(shí),因?yàn)槔锩娲嬖谏侠娮瑁骋_被外部的信號拉低時(shí)會(huì)輸出一個(gè)電流(iil)。與at89c51 不同之處是,p1.0 和p1.1 還有作為定時(shí)/計(jì)數(shù)器2 的外部計(jì)數(shù)輸入(p1.0/t2)和輸入(p1.1/t2ex)的功能,flash 編程和程序校驗(yàn)的時(shí)候,p1 接收低8 位地址。·p2 口:p2 是一個(gè)帶有上拉電阻的8 位雙向的i/o 口,p2 的輸出緩沖級能夠驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)ttl 邏輯門電路。將端口p2寫“1”,通過內(nèi)部的上拉電阻來港的高水平,此時(shí),可作為輸入,作為輸入使用時(shí),因?yàn)閮?nèi)部上拉電阻,如果某個(gè)引腳被
13、外部信號拉低的時(shí)候就會(huì)輸出一個(gè)電流(iil)。當(dāng)訪問外部程序存儲(chǔ)器或16 位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),p2 口送出高8 位的地址數(shù)據(jù)。當(dāng)訪問8 位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),p2 口輸出p2 鎖存器的內(nèi)容。編程或檢查,p2也獲得了很高的地址和控制信號。·p3 口:p3 口是一組帶有內(nèi)部上拉電阻的8 位雙向i/o 口。p3 口輸出緩沖級可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)ttl 邏輯門電路。對p3 口寫入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的p3 口將用上拉電阻輸出電流(iil)。p3 口除了作為一般的i/o 口線外,此外,它的第二功能p3 口還接收一些可以用于fla
14、sh 閃速存儲(chǔ)器編程與程序校驗(yàn)的控制信號才是最重要的。3.2.1.3 單片機(jī)特殊功能寄存器介紹·數(shù)據(jù)存儲(chǔ)器:at89c52 有256 個(gè)字節(jié)內(nèi)部ram,80h-ffh 高128 個(gè)字節(jié)與特殊功能寄存器(sfr)地址是重復(fù)的,雖然物理上分開,但是高128字節(jié)的ram 與特殊功能寄存器的地址相同。當(dāng)一條指令訪問7fh 以上地址單元的時(shí)候,指令中使用不同的尋址方式,即為究竟是訪問高128 字節(jié)ram 還是訪問特殊功能寄存器是由尋址方式?jīng)Q定的。直接尋址方式對應(yīng)的是訪問特殊功能寄存器。·定時(shí)器0和定時(shí)器1:at89c52的定時(shí)器0和定時(shí)器1 的工作方式與at89c51 相同。
15、3;2定時(shí)器:定時(shí)器2是一個(gè)16位定時(shí)器/計(jì)數(shù)器。不僅僅可以當(dāng)定時(shí)器用,而且可用作外部事件計(jì)數(shù)器,特殊功能的寄存器t2con的c/t2 位負(fù)責(zé)選擇它的工作方式。定時(shí)器2一共有三種工作方式:捕獲方式,向上或向下計(jì)數(shù)方式以及波特率發(fā)生器方式,t2con 的控制位來決定其工作方式。3.2.2 ds18b20簡介ds18b20溫度傳感器是美國達(dá)拉斯(dallas)半導(dǎo)體公司推出的應(yīng)用單總線技術(shù)的數(shù)字溫度傳感器5。該器件將半導(dǎo)體溫敏器件、a/d轉(zhuǎn)換器、存儲(chǔ)器等做在一個(gè)很小的集成電路芯片上。本設(shè)計(jì)中溫度傳感器之所以選擇單線數(shù)字器件ds18b20,是在經(jīng)過多方面比較和考慮后決定的,主要有以下幾方面的原因:(
16、1)系統(tǒng)的特性:測溫范圍為-55+125 ,測溫精度為士0.5;溫度轉(zhuǎn)換精度912位可變,能夠直接將溫度轉(zhuǎn)換值以16位二進(jìn)制數(shù)碼的方式串行輸出;12位精度轉(zhuǎn)換的最大時(shí)間為750ms;可以通過數(shù)據(jù)線供電,具有超低功耗工作方式。(2)系統(tǒng)成本:由于計(jì)算機(jī)技術(shù)和微電子技術(shù)的發(fā)展,新型大規(guī)模集成電路功能越來越強(qiáng)大,體積越來越小,而價(jià)格也越來越低。一支ds18b20的體積與普通三極管相差無幾,價(jià)格只有十元人民幣左右。(3)系統(tǒng)復(fù)雜度:由于ds18b20是單總線器件,微處理器與其接口時(shí)僅需占用1個(gè)i/o端口且一條總線上可以掛接幾十個(gè)ds18b20,測溫時(shí)無需任何外部元件,因此,與模擬傳感器相比,可以大大減
17、少接線的數(shù)量,降低系統(tǒng)的復(fù)雜度,減少工程的施工量。(4)系統(tǒng)的調(diào)試和維護(hù):由于引線的減少,使得系統(tǒng)接口大為簡化,給系統(tǒng)的調(diào)試帶來方便。同時(shí)因?yàn)閐s18b20是全數(shù)字元器件,故障率很低,抗干擾性強(qiáng),因此,減少了系統(tǒng)的日常維護(hù)工作。ds18b20溫度傳感器只有三根外引線:單線數(shù)據(jù)傳輸總線端口dq ,外供電源線vdd,共用地線gnd。ds18b20有兩種供電方式:一種為數(shù)據(jù)線供電方式,此時(shí)vdd接地,它是通過內(nèi)部電容在空閑時(shí)從數(shù)據(jù)線獲取能量,來完成溫度轉(zhuǎn)換,相應(yīng)的完成溫度轉(zhuǎn)換的時(shí)間較長6。這種情況下,用單片機(jī)的一個(gè)i/o口來完成對ds18b20總線的上拉。另一種是外部供電方式(vdd接+5v),相應(yīng)
18、的完成溫度測量的時(shí)間較短。3.2.2.1 ds18b20主要特性 ds18b20的引腳圖如圖3-6所示。獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;多個(gè)ds18b20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;無須外部器件;可通過數(shù)據(jù)線供電,電壓范圍為3.05.5;零待機(jī)功耗;溫度以9或12位數(shù)字;用戶可定義報(bào)警設(shè)置;報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件;負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。ds18b20的引腳功能描述如表3-1所示。圖3-6 ds18b20的引腳排列表3-1 ds18b20引腳功能描述序號名稱引腳功能描述1gnd地信號2dq
19、數(shù)字輸入輸出引腳,開漏單總線接口引腳,當(dāng)使用寄生電源時(shí),可向電源提供電源3vdd可選擇的vdd引腳,當(dāng)工作于寄生電源時(shí),該引腳必須接地3.2.2.2 ds18b20內(nèi)部結(jié)構(gòu) ds18b20的內(nèi)部框圖如圖3-7所示。64位rom存儲(chǔ)器件獨(dú)一無二的序列號。暫存器包含兩字節(jié)(0和1字節(jié))的溫度寄存器,用于存儲(chǔ)溫度傳感器的數(shù)字輸出。暫存器還提供一字節(jié)的上線警報(bào)觸發(fā)(th)和下線警報(bào)觸發(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í)鐘,也能傳輸數(shù)據(jù),而且是雙向傳輸。適用于單主機(jī)系統(tǒng),主機(jī)能夠控制一個(gè)或多個(gè)從機(jī)設(shè)備,通過一個(gè)漏極開路或三態(tài)端口連至該數(shù)據(jù)線,以允許設(shè)備在不發(fā)送數(shù)據(jù)時(shí)能釋放該線,而讓其他設(shè)備使用。單線通常要求外接一個(gè)5k的上拉電阻,這樣當(dāng)該線空閑時(shí),其狀態(tài)為高電平。主機(jī)和從機(jī)之間的通訊分成三個(gè)步驟:初始化單線器件、識(shí)別單線器件和單線數(shù)據(jù)傳輸7。單線1wire協(xié)議由復(fù)位脈沖、應(yīng)答脈沖、寫0、寫1、讀0、讀1,這幾種信號類型實(shí)現(xiàn),這些信號中除了應(yīng)答脈沖其他都由主機(jī)發(fā)起,并且所有指令和數(shù)據(jù)字節(jié)都是低位在前。ds18b20直接將測量溫度值轉(zhuǎn)化為數(shù)字量提交給單片機(jī),工作時(shí)必須嚴(yán)格遵守單總線器
21、件的工作時(shí)序。表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ù)字、符號等的點(diǎn)陣型液晶模塊。它由若干個(gè)5x7或者5x11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖形(用自定義cgram,顯示效果也不好)。1602lcd是指顯示的內(nèi)容為16x2,即可以顯示兩行,每行16個(gè)字符液晶模塊(顯示字符和數(shù)字)。3.2.3.1
23、lcd1602主要技術(shù)參數(shù)管腳:1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:gnd為電源地第2腳:vcc接5v電源正極第3腳:v0為液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接地電源時(shí)對比度最高(對比度過高時(shí)會(huì) 產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10k的電位器調(diào)整對比度)。第4腳:rs為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。第5腳:rw為讀寫信號線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。第6腳:e(或en)端為使能(enable)端,高電平(1)時(shí)讀取信息,負(fù)跳變時(shí)執(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ù)存儲(chǔ)器ddram內(nèi)建有192個(gè)5x7點(diǎn)陣的字型的字符發(fā)生器cgrom8個(gè)可由用戶自定義的5x7的字符發(fā)生器cgram特征應(yīng)用:微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧,常用在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中。操作控制注:關(guān)于e=h脈沖開始時(shí)初始化e為0,然后置e為1。字符代碼0x000x0f為用戶自定義的字符圖形ram(對于5x8點(diǎn)陣的字符,可以存放8組,5x10點(diǎn)陣的字符,存放4組),就是cgram了。0x200x7f為標(biāo)準(zhǔn)的ascii碼,0
25、xa00xff為日文字符和希臘文字符,其余字符碼(0x100x1f及0x800x9f)沒有定義。以下是1602的16進(jìn)制ascii碼表地址:讀的時(shí)候,先讀上面那行,再讀左邊那列,如:感嘆號!的ascii為0x21,字母b的ascii為0x42(前面加0x表示十六進(jìn)制)。指令碼:功能令:rsr/wd7d6d5d4d3d2d1d0說明清顯示0000000001將ddram填滿"20h",并且設(shè)定ddram的地址計(jì)數(shù)器(ac)到"00h"歸位000000001*設(shè)定ddram的地址計(jì)數(shù)器(ac)到"00h",并且將游標(biāo)移到開頭原點(diǎn)位置;這個(gè)
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)或閃爍向右移動(dòng),ac增加1。i/d=0,光標(biāo)或閃爍向左移動(dòng),ac減少1,s整個(gè)顯示移動(dòng)光標(biāo)或顯示移位指令000001s/cr/l*光標(biāo)或顯示移位指令可使光標(biāo)或顯示在沒有讀寫數(shù)據(jù)的情況下,向左或向右移動(dòng),指令不改變ddram 的內(nèi)容功能設(shè)定00001dlnf*dl=0/1:4/8位數(shù)據(jù),n=0/1,單行/雙行顯示,f=0/1,5*8/5*10點(diǎn)陣顯示模式設(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í)模塊不接受任何外部指令和數(shù)據(jù)。bf=0,模塊可以接受外部的指令和數(shù)據(jù);同時(shí)可以讀出地址計(jì)數(shù)器(ac)的值。寫ram指令10d7d6d5d4d3d2d1d0將數(shù)據(jù)d7-d0寫入到內(nèi)部的ram (d
28、dram/cgram/iram/gram),將用戶自定義的字符寫入cgram中,d7d5為000,d4d0為5點(diǎn)的字模數(shù)據(jù)讀ram指令11d7d6d5d4d3d2d1d0從內(nèi)部ram讀取數(shù)據(jù)d7d0(ddram/cgram/iram/gram)3.2.4 繼電器簡介繼電器(英文名稱:relay)是一種電控制器件,是當(dāng)輸入量(激勵(lì)量)的變化達(dá)到規(guī)定要求時(shí),在電氣輸出電路中使被控量發(fā)生預(yù)定的階躍變化的一種電器。它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路)之間的互動(dòng)關(guān)系。通常應(yīng)用于自動(dòng)化的控制電路中,它實(shí)際上是用小電流去控制大電流運(yùn)作的一種“自動(dòng)開關(guān)”。故在電路中起著自動(dòng)調(diào)節(jié)、安全保護(hù)
29、、轉(zhuǎn)換電路等作用。電磁繼電器一般由鐵芯、線圈、銜鐵、觸點(diǎn)簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會(huì)流過一定的電流,從而產(chǎn)生電磁效應(yīng),銜鐵就會(huì)在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動(dòng)銜鐵的動(dòng)觸點(diǎn)與靜觸點(diǎn)(常開觸點(diǎn))吸合。當(dāng)線圈斷電后,電磁的吸力也隨之消失,銜鐵就會(huì)在彈簧的反作用力返回原來的位置,使動(dòng)觸點(diǎn)與原來的靜觸點(diǎn)(常閉觸點(diǎn))釋放。這樣吸合、釋放,從而達(dá)到了在電路中的導(dǎo)通、切斷的目的。對于繼電器的“常開、常閉”觸點(diǎn),可以這樣來區(qū)分:繼電器線圈未通電時(shí)處于斷開狀態(tài)的靜觸點(diǎn),稱為“常開觸點(diǎn)”;處于接通狀態(tài)的靜觸點(diǎn)稱為“常閉觸點(diǎn)”。繼電器一般有兩股電路,為低壓控制電路和高
30、壓工作電路。其結(jié)構(gòu)圖如圖3-8所示。圖3-8 電磁繼電器結(jié)構(gòu)圖第四章 系統(tǒng)軟件設(shè)計(jì)4.1 程序流程圖在程序進(jìn)行初始化后,開始反復(fù)執(zhí)行如圖4-1所示流程的程序。圖4-1 程序流程圖4.2 程序設(shè)計(jì)4.2.1 ds18b20的程序設(shè)計(jì)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è)計(jì)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è)計(jì)在主程序中,實(shí)現(xiàn)了對溫度的巡檢,并把實(shí)時(shí)
33、測到的溫度顯示在液晶顯示屏上,在很多領(lǐng)域還是比較實(shí)用的。每一片ds18b20都有各自的固定的序列號,在仿真中,事先設(shè)定好各個(gè)ds18b20的序列號,將其寫進(jìn)程序中,依次進(jìn)行匹配,從而實(shí)現(xiàn)巡檢。主程序具體內(nèi)容見附錄三中???結(jié)通過不懈的努力,終于完成了我的課程設(shè)計(jì)。在我開始做課程設(shè)計(jì)之前,我一直片面的覺得課程設(shè)計(jì)只是對大學(xué)這幾年來所學(xué)的專業(yè)知識(shí)的簡單的總結(jié),但是在實(shí)踐的過程中我發(fā)現(xiàn)我錯(cuò)了,因?yàn)檎n程設(shè)計(jì)不僅是對前面所學(xué)知識(shí)的一種檢驗(yàn),而且也是對自己能力的以一種提高。通過課程設(shè)計(jì)使我明白了我學(xué)到的知識(shí)只是知識(shí)寶庫中的冰山一角,還有許多要學(xué)習(xí)的地方。原來我總是感覺到已經(jīng)把所有的東西都學(xué)到手了,什么都明
34、白了,有些眼高手低。通過我在課程設(shè)計(jì)的實(shí)踐過程,我懂得了活到老學(xué)到老這句名言的真正意義,學(xué)習(xí)是一個(gè)循序漸進(jìn)的過程,不可能一蹴而就,不管是在以后的工作中、或者生活中都不能停止學(xué)習(xí),不斷的用知識(shí)武裝自己,讓自己全面發(fā)展,更能適應(yīng)這個(gè)科技文化高速發(fā)展的世界。課程設(shè)計(jì)的過程,讓我養(yǎng)成了獨(dú)立思考的習(xí)慣,培養(yǎng)了我實(shí)在實(shí)際操作中動(dòng)手的能力,我領(lǐng)悟到了在實(shí)踐過程中摸索的困難與最終成功時(shí)的喜悅,這些對于我的信心或者是工作能力來說都是極大的鼓勵(lì)與肯定,相信這些會(huì)對未來的工作和生活中有非常重要的影響。雖然我的課程設(shè)計(jì)是有些缺陷的,但我覺得在此過程中我收獲了很多,最大的收獲就是在生產(chǎn)實(shí)習(xí)的設(shè)計(jì)過程中所學(xué)到的財(cái)富,他會(huì)
35、是我終身受益。在課程設(shè)計(jì)的過程中,我還深深體會(huì)到交流和相互討論的重要性。向老師請教,就能夠時(shí)刻確保在大的方向上我是朝對的方向走;與同學(xué)討論,可以集思廣益、可以迸發(fā)靈感,收獲新方法。思想和信息的傳遞,確保了我的生產(chǎn)實(shí)習(xí)得以順利完成。另外,我還總結(jié)出一個(gè)結(jié)論:知識(shí)要想實(shí)現(xiàn)其價(jià)值,必須由實(shí)踐來完成!再次感謝老師和同學(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;/打開計(jì)數(shù)器開始計(jì)數(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í)函數(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)移動(dòng)位置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);/第二行l(wèi)cd顯示起始地址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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度滑雪場設(shè)施裝修安全防護(hù)合同3篇
- 2025年度早餐店加盟連鎖承包合同范本4篇
- 2025年度智能車間承包環(huán)保技術(shù)改造協(xié)議4篇
- 2024-2028年中國無線電接收機(jī)行業(yè)發(fā)展前景預(yù)測及投資戰(zhàn)略規(guī)劃研究報(bào)告
- 中國太陽能空調(diào)項(xiàng)目可行性研究報(bào)告建議書
- 2025年度個(gè)人二手房定金買賣合同書標(biāo)準(zhǔn)化版2篇
- 2025年度個(gè)人借款聯(lián)保合同(附財(cái)產(chǎn)抵押)4篇
- 2025年山東國新抱犢食品有限公司招聘筆試參考題庫含答案解析
- 二零二五版苗木種植基地水資源利用與節(jié)水技術(shù)合同4篇
- 2025年寧夏昊陽資產(chǎn)管理有限公司招聘筆試參考題庫含答案解析
- 公司組織架構(gòu)圖(可編輯模版)
- 1汽輪機(jī)跳閘事故演練
- 陜西省銅川市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 禮品(禮金)上交登記臺(tái)賬
- 普通高中英語課程標(biāo)準(zhǔn)詞匯表
- 北師大版七年級數(shù)學(xué)上冊教案(全冊完整版)教學(xué)設(shè)計(jì)含教學(xué)反思
- 2023高中物理步步高大一輪 第五章 第1講 萬有引力定律及應(yīng)用
- 青少年軟件編程(Scratch)練習(xí)題及答案
- 浙江省公務(wù)員考試面試真題答案及解析精選
- 系統(tǒng)性紅斑狼瘡-第九版內(nèi)科學(xué)
- 全統(tǒng)定額工程量計(jì)算規(guī)則1994
評論
0/150
提交評論