版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、北北 京京 電電 子子 科科 技技 職職 業(yè)業(yè) 學(xué)學(xué) 院院 beijingbeijing electronicelectronic sciencescience andand technologytechnology vocationalvocational collegecollege 畢 業(yè) 設(shè) 計(jì) 設(shè)計(jì)題目智能溫度系統(tǒng)的設(shè)計(jì)與制作 系 部 電子工程系 專 業(yè) 應(yīng)用電子技術(shù) 班 級(jí) 08 應(yīng)用電子技術(shù) 姓 名 指導(dǎo)教師 2011 年 4 月 基于單片機(jī)溫度控制電路的設(shè)計(jì)與制作基于單片機(jī)溫度控制電路的設(shè)計(jì)與制作 摘 要:?jiǎn)纹瑱C(jī)在檢測(cè)和控制系統(tǒng)中得到廣泛的應(yīng)用, 溫度則是系統(tǒng)常需要測(cè) 量、控制
2、和保持的一個(gè)量。本設(shè)計(jì)以 at89s52 單片機(jī)為控制核心,由實(shí)時(shí)時(shí)鐘 芯片 ds1302 和數(shù)字溫度傳感器 ds18b20 構(gòu)成了一個(gè)高溫和低溫時(shí),分別對(duì)相應(yīng) 的器件進(jìn)行控制的系統(tǒng)。詳細(xì)地介紹了整個(gè)系統(tǒng)的硬件組成結(jié)構(gòu)、工作原理和 系統(tǒng)的軟件程序設(shè)計(jì),重點(diǎn)闡述了時(shí)鐘模塊、顯示模塊、溫度檢測(cè)模塊及相關(guān) 控制模塊等的模塊化設(shè)計(jì)思路與制作。系統(tǒng)采用液晶 lcd1602 作為顯示器,具 有實(shí)時(shí)時(shí)間顯示、環(huán)境溫度顯示,顯示系統(tǒng)連續(xù)工作前 24 小時(shí)整點(diǎn)的溫度值。 關(guān)鍵詞:at89s52 單片機(jī);ds1302;ds18b20;lcd1602;ad;智能溫控; abstract:microcomputer
3、in the detection and control system has been widely used in the temperature is system, usually need to be measurement, control and maintain a quantity. this design with at89s52 microcontroller as control core, by real time clock chip ds1302 and digital temperature sensor ds18b20 constitute a high te
4、mperature and low temperature respectively on the corresponding device to control system. introduced the whole systems hardware structure, working principle and system software program design in detail, expounds the clock module, display module, temperature detecting module and related control modul
5、e of modularization design and production. system adopts lcd monitor, lcd1602 as with real-time time display, environmental temperature display, display the system worked 24 hours before the temperature on the hour value. key words: at89s52single-chip; ds1302;ds18b20; lcd1602;ad;intelligent temperat
6、ure controller ; 目錄目錄 第一章 單片機(jī)介紹 . 1.1 單片機(jī). 1.2 單片機(jī)的特點(diǎn). 1.3 單片機(jī)的分類(lèi). 1.4 單片機(jī)的發(fā)展. 第二章 設(shè)計(jì)方案 . 2.1 硬件設(shè)計(jì)方案. 2.2 軟件設(shè)計(jì)方案 . 第三章 系統(tǒng)硬件設(shè)計(jì) . 3.1 總體電路框圖. 3.2 單元電路設(shè)計(jì). 3.2.1 單片機(jī)模塊. 3.2.2 時(shí)鐘模塊. 3.2.3 溫度采集模塊. 3.2.4 液晶顯示模塊. 3.2.5 電源電路 . 第四章 系統(tǒng)軟件設(shè)計(jì) . 4.1 總體軟件設(shè)計(jì)圖. 4.2 時(shí)鐘驅(qū)動(dòng)程序:. 4.3 溫度數(shù)據(jù)采集:. 4.4 液晶驅(qū)動(dòng)程序:. 第五章 綜合調(diào)試 . 第六章 總結(jié)
7、 . 附錄 . 第一章單片機(jī)介紹第一章單片機(jī)介紹 1.1 單片機(jī) 單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理 能力的中央處理器 cpu 隨機(jī)存儲(chǔ)器 ram、只讀存儲(chǔ)器 rom、多種 i/o 口和中斷系 統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多 路轉(zhuǎn)換器、a/d 轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算 機(jī)系統(tǒng)。 1.2 單片機(jī)的特點(diǎn) 1、芯片雖小,五臟俱全,是單片機(jī)主要特點(diǎn)之一。其內(nèi)部設(shè)有程序存儲(chǔ)器、數(shù) 據(jù)存儲(chǔ)器、各種接口電路。而大型的處理器運(yùn)算速度較高,運(yùn)算器位數(shù)較 多,處理能力較強(qiáng),但需要在外部配置接口電路。 2、單片機(jī)
8、主頻一般在100mhz 以下,適合用于獨(dú)立工作的小型產(chǎn)品之中,引腳 數(shù)量從幾個(gè)到百余個(gè)。 3、應(yīng)用簡(jiǎn)單、靈活,可用匯編語(yǔ)言及 c 語(yǔ)言開(kāi)發(fā)單片機(jī)產(chǎn)品。 1.3 單片機(jī)的分類(lèi) 1. 按應(yīng)用領(lǐng)域可分為:家電類(lèi),工控類(lèi),通信類(lèi),個(gè)人信息終端類(lèi)等等; 2. 按通用性可分為:通用型和專用型。 通用型單片機(jī)的主要特點(diǎn)是:內(nèi)部資源比較豐富,性能全面,而且通用 性強(qiáng),可履蓋多種應(yīng)用要求。所謂資源豐富就是指功能強(qiáng)。性能全面通用 性強(qiáng)就是指可以應(yīng)用在非常廣泛的領(lǐng)域。通用型單片機(jī)的用途很廣泛,使 用不同的接口電路及編制不同的應(yīng)用程序就可完成不同的功能。小到家用 電器儀器儀表,大到機(jī)器設(shè)備和整套生產(chǎn)線都可用單片機(jī)來(lái)實(shí)
9、現(xiàn)自動(dòng)化控 制。 專用型單片機(jī)的主要特點(diǎn)是:針對(duì)某一種產(chǎn)品或某一種控制應(yīng)用而專門(mén) 設(shè)計(jì)的,設(shè)計(jì)時(shí)已使結(jié)構(gòu)最簡(jiǎn),軟硬件應(yīng)用最優(yōu),可靠性及應(yīng)用成本最佳。 專用型單片機(jī)用途比較專一,出廠時(shí)程序已經(jīng)一次性固化好,不能再修該 的單片機(jī)。例如電子表里的單片機(jī)就是其中的一種。其生產(chǎn)成本很低。 3.按總線結(jié)構(gòu)可分為總線型和非總線型。如我們常常見(jiàn)到的89c51單片機(jī)就 是總線結(jié)構(gòu)。89c51單片機(jī)內(nèi)部有數(shù)據(jù)總線,地址總線,還有控制總線 (wr,rd,ea,ale 等)。 1.4 單片機(jī)的發(fā)展與前景 現(xiàn)在可以說(shuō)單片機(jī)是百花齊放,百家爭(zhēng)鳴的時(shí)期,世界上各大芯片制 造公司都推出了自己的單片機(jī),從 8 位、16 位到
10、32 位,數(shù)不勝數(shù),應(yīng)有 盡有,有與主流 c51 系列兼容的,也有不兼容的,但它們各具特色,互成 互補(bǔ),為單片機(jī)的應(yīng)用提供廣闊的天地。 縱觀單片機(jī)的發(fā)展過(guò)程,可以預(yù)示單片機(jī)的發(fā)展趨勢(shì),大致有: 1.低功耗 cmos 化 mcs-51 系列的 8031 推出時(shí)的功耗達(dá) 630mw,而現(xiàn)在的單片機(jī)普遍都在 100mw 左右,隨著對(duì)單片機(jī)功耗要求越來(lái)越低,現(xiàn)在的各個(gè)單片機(jī)制造商基本 都采用了 cmos(互補(bǔ)金屬氧化物半導(dǎo)體工藝)。象 80c51 就采用了 hmos(即高密 度金屬氧化物半導(dǎo)體工藝)和 chmos(互補(bǔ)高密度金屬氧化物半導(dǎo)體工藝)。cmos 雖然功耗較低,但由于其物理特征決定其工作速度
11、不夠高,而 chmos 則具備了 高速和低功耗的特點(diǎn),這些特征,更適合于在要求低功耗象電池供電的應(yīng)用場(chǎng) 合。所以這種工藝將是今后一段時(shí)期單片機(jī)發(fā)展的主要途徑 2.微型單片化 現(xiàn)在常規(guī)的單片機(jī)普遍都是將中央處理器(cpu)、隨機(jī)存取數(shù)據(jù)存儲(chǔ) (ram)、只讀程序存儲(chǔ)器(rom)、并行和串行通信接口,中斷系統(tǒng)、定時(shí)電路、 時(shí)鐘電路集成在一塊單一的芯片上,增強(qiáng)型的單片機(jī)集成了如 a/d 轉(zhuǎn)換器、 pmw(脈寬調(diào)制電路)、wdt(看門(mén)狗)、有些單片機(jī)將 lcd(液晶)驅(qū)動(dòng)電路都集成 在單一的芯片上,這樣單片機(jī)包含的單元電路就更多,功能就越強(qiáng)大。甚至單 片機(jī)廠商還可以根據(jù)用戶的要求量身定做,制造出具有自
12、己特色的單片機(jī)芯片。 此外,現(xiàn)在的產(chǎn)品普遍要求體積小、重量輕,這就要求單片機(jī)除了功能強(qiáng)和功 耗低外,還要求其體積要小。現(xiàn)在的許多單片機(jī)都具有多種封裝形式,其中 smd(表面封裝)越來(lái)越受歡迎,使得由單片機(jī)構(gòu)成的系統(tǒng)正朝微型化方向發(fā)展。 3.主流與多品種共存 現(xiàn)在雖然單片機(jī)的品種繁多,各具特色,但仍以 80c51 為核心的單片 機(jī)占主流,兼容其結(jié)構(gòu)和指令系統(tǒng)的有 philips 公司的產(chǎn)品,atmel 公司的產(chǎn) 品和中國(guó)臺(tái)灣的 winbond 系列單片機(jī)。所以 c8051 為核心的單片機(jī)占據(jù)了半壁 江山。而 microchip 公司的 pic 精簡(jiǎn)指令集(risc)也有著強(qiáng)勁的發(fā)展勢(shì)頭,中 國(guó)臺(tái)
13、灣的 holtek 公司近年的單片機(jī)產(chǎn)量與日俱增,與其低價(jià)質(zhì)優(yōu)的優(yōu)勢(shì),占據(jù) 一定的市場(chǎng)分額。此外還有 motorola 公司的產(chǎn)品,日本幾大公司的專用單片機(jī)。 在一定的時(shí)期內(nèi),這種情形將得以延續(xù),將不存在某個(gè)單片機(jī)一統(tǒng)天下的壟斷 局面,走的是依存互補(bǔ),相輔相成、共同發(fā)展的道路。 單片機(jī)的發(fā)展趨勢(shì) 目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢(shì)將是進(jìn)一步向著 cmos 化、 低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。 下面是單片機(jī)的主要發(fā)展趨勢(shì)。 cmos 化 近年,由于 chmos 技術(shù)的進(jìn)小,大大地促進(jìn)了單片機(jī)的 cmos 化。cmos 芯片除了低功耗特性之外,還具
14、有功耗的可控性,使單片機(jī)可以工作在功耗精 細(xì)管理狀態(tài)。這也是今后以 80c51 取代 8051 為標(biāo)準(zhǔn) mcu 芯片的原因。因?yàn)閱纹?機(jī)芯片多數(shù)是采用 cmos(金屬柵氧化物)半導(dǎo)體工藝生產(chǎn)。cmos 電路的特點(diǎn)是 低功耗、高密度、低速度、低價(jià)格。采用雙極型半導(dǎo)體工藝的 ttl 電路速度快, 但功耗和芯片面積較大。隨著技術(shù)和工藝水平的提高,又出現(xiàn)了 hmos(高密度、 高速度 mos)和 chmos 工藝。chmos 和 hmos 工藝的結(jié)合。目前生產(chǎn)的 chmos 電 路已達(dá)到 lsttl 的速度,傳輸延遲時(shí)間小于 2ns,它的綜合優(yōu)勢(shì)已在于 ttl 電 路。因而,在單片機(jī)領(lǐng)域 cmos 正
15、在逐漸取代 ttl 電路。 低功耗化 單片機(jī)的功耗已從 ma 級(jí),甚至 1ua 以下;使用電壓在 36v 之間,完 全適應(yīng)電池工作。低功耗化的效應(yīng)不僅是功耗低,而且?guī)?lái)了產(chǎn)品的高可靠性、 高抗干擾能力以及產(chǎn)品的便攜化。 低電壓化 幾乎所有的單片機(jī)都有 wait、stop 等省電運(yùn)行方式。允許使用的電 壓范圍越來(lái)越寬,一般在 36v 范圍內(nèi)工作。低電壓供電的單片機(jī)電源下限已可 達(dá) 12v。目前 0.8v 供電的單片機(jī)已經(jīng)問(wèn)世。 低噪聲與高可靠性 為提高單片機(jī)的抗電磁干擾能力,使產(chǎn)品能適應(yīng)惡劣的工作 環(huán)境,滿足電磁兼容性方面更高標(biāo)準(zhǔn)的要求,各單片廠家在單片機(jī)內(nèi)部電路中 都采用了新的技術(shù)措施。 大容
16、量化 以往單片機(jī)內(nèi)的 rom 為 1kb4kb,ram 為 64128b。但在需要復(fù)雜控 制的場(chǎng)合,該存儲(chǔ)容量是不夠的,必須進(jìn)行外接擴(kuò)充。為了適應(yīng)這種領(lǐng)域的要 求,須運(yùn)用新的工藝,使片內(nèi)存儲(chǔ)器大容量化。目前,單片機(jī)內(nèi) rom 最大可達(dá) 64kb,ram 最大為 2kb。 高性能化 主要是指進(jìn)一步改進(jìn) cpu 的性能,加快指令運(yùn)算的速度和提高系統(tǒng)控 制的可靠性。采用精簡(jiǎn)指令集(risc)結(jié)構(gòu)和流水線技術(shù),可以大幅度提高運(yùn) 行速度?,F(xiàn)指令速度最高者已達(dá) 100mips(million instruction per seconds,即兆指令每秒) ,并加強(qiáng)了位處理功能、中斷和定時(shí)控制功能。這類(lèi) 單
17、片機(jī)的運(yùn)算速度比標(biāo)準(zhǔn)的單片機(jī)高出 10 倍以上。由于這類(lèi)單片機(jī)有極高的指 令速度,就可以用軟件模擬其 i/o 功能,由此引入了虛擬外設(shè)的新概念。 小容量、低價(jià)格化 與上述相反,以 4 位、8 位機(jī)為中心的小容量、低價(jià)格化也 是發(fā)展動(dòng)向之一。這類(lèi)單片機(jī)的用途是把以往用數(shù)字邏輯集成電路組成的控制 電路單片化,可廣泛用于家電產(chǎn)品。 外圍電路內(nèi)裝化 這也是單片機(jī)發(fā)展的主要方向。隨著集成度的不斷提高,有可 能把眾多的各種處圍功能器件集成在片內(nèi)。除了一般必須具有的 cpu、rom、ram、定時(shí)器/計(jì)數(shù)器等以外,片內(nèi)集成的部件還有模/數(shù)轉(zhuǎn)換器、 dma 控制器、聲音發(fā)生器、監(jiān)視定時(shí)器、液晶顯示驅(qū)動(dòng)器、彩色電
18、視機(jī)和錄像 機(jī)用的鎖相電路等。 串行擴(kuò)展技術(shù) 在很長(zhǎng)一段時(shí)間里,通用型單片機(jī)通過(guò)三總線結(jié)構(gòu)擴(kuò)展外圍器件 成為單片機(jī)應(yīng)用的主流結(jié)構(gòu)。隨著低價(jià)位 otp(one time programble)及各種 類(lèi)型片內(nèi)程序存儲(chǔ)器的發(fā)展,加之處圍接口不斷進(jìn)入片內(nèi),推動(dòng)了單片機(jī)“單 片”應(yīng)用結(jié)構(gòu)的發(fā)展。特別是 i c、spi 等串行總線的引入,可以使單片機(jī)的引腳設(shè)計(jì)得更少,單片機(jī)系統(tǒng)結(jié) 構(gòu)更加簡(jiǎn)化及規(guī)范化。 第第 2 2 章章. .設(shè)計(jì)方案設(shè)計(jì)方案 系統(tǒng)硬件設(shè)計(jì) 單片機(jī)應(yīng)用系統(tǒng)的硬件電路設(shè)計(jì)就是為本單片機(jī)溫控系統(tǒng)選擇合適的、最優(yōu)的 系統(tǒng)配置,即按照系統(tǒng)功能要求配置外圍設(shè)備,如鍵盤(pán)、顯示器、打印機(jī)、a/d 轉(zhuǎn)換
19、器、設(shè)計(jì)合適的接口電路等。系統(tǒng)設(shè)計(jì)應(yīng)本著以下原則: (1) 盡可能選擇典型電路,并符合單片機(jī)常規(guī)用法。本設(shè)計(jì)采用了典型的顯示 電路、a/d 轉(zhuǎn)化電路,為硬件系統(tǒng)的標(biāo)準(zhǔn)化、模塊化打下良好的基礎(chǔ)。 (2) 硬件結(jié)構(gòu)應(yīng)結(jié)合應(yīng)用軟件方案一并考慮。軟件能實(shí)現(xiàn)的功能盡可能由軟件 實(shí)現(xiàn),以簡(jiǎn)化硬件結(jié)構(gòu)。由軟件實(shí)現(xiàn)的硬件功能,一般響應(yīng)時(shí)間比硬件實(shí)現(xiàn)長(zhǎng), 且占用 cpu 時(shí)間。由于本設(shè)計(jì)的響應(yīng)時(shí)間要求不高,所以有一些功能可以用軟 件編程實(shí)現(xiàn),如鍵盤(pán)的去抖動(dòng)問(wèn)題。 (3) 系統(tǒng)中的相關(guān)器件要盡可能做到性能匹配。系統(tǒng)中所有芯片都應(yīng)盡可能選 擇低功耗產(chǎn)品。 系統(tǒng)軟件設(shè)計(jì) 軟件設(shè)計(jì)采用模塊化設(shè)計(jì),采用模塊化設(shè)計(jì)可以簡(jiǎn)化
20、系統(tǒng)軟件的編寫(xiě),使軟件 編寫(xiě)思路更加簡(jiǎn)單明了。系統(tǒng)軟件主要由三大模塊組成:主程序模塊、功能實(shí) 現(xiàn)模塊和運(yùn)算控制模塊。主程序模塊用于實(shí)現(xiàn)各個(gè)子程序間的跳轉(zhuǎn)。功能實(shí)現(xiàn) 模塊主要由 a/d 轉(zhuǎn)換子程序、鍵盤(pán)處理子程序、顯示子程序、繼電器控制程序 等部分組成。運(yùn)算控制模塊涉及標(biāo)度轉(zhuǎn)換子程序等。 第三章第三章. .系統(tǒng)的硬件設(shè)計(jì)系統(tǒng)的硬件設(shè)計(jì) 3.1 總體電路圖 本設(shè)計(jì)以 at89s52 單片機(jī)為主控核心設(shè)計(jì)的一個(gè)溫度控制系統(tǒng),低溫 時(shí)可控制加熱設(shè)備,高溫時(shí)控制風(fēng)扇,超出設(shè)定最高溫度值時(shí)蜂鳴器發(fā)出聲響 報(bào)警。硬件方框圖如圖 3 所示: ds18b20 溫度檢測(cè)模 塊 ds1302 時(shí)鐘模塊 鍵盤(pán) at8
21、9s52 單片機(jī) lcd 顯示模塊 蜂鳴器 繼電器 光耦可控硅 加熱設(shè)備 風(fēng)扇 總體硬件方框圖 3.2 單元電路設(shè)計(jì) 3.21 單片機(jī)模塊 at89s52 單片機(jī)資源簡(jiǎn)介 at89s52 是一種低功耗、高性能 cmos8 位微控制器,具有 8k 在系統(tǒng)可編程 flash 存儲(chǔ)器。使用 atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè) 8031、80c51 產(chǎn)品指令和引腳完全兼容。片上 flash 允許程序存儲(chǔ)器在系統(tǒng)可 編程(isp 下載) ,亦適于常規(guī)編程器。 其引 dip 封裝的腳圖如下: 在單芯片上,擁有靈巧的 8 位 cpu 和在系統(tǒng) 可編程 flash,使得 at89s52 為眾
22、多嵌入式 控制應(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ì)數(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ù)位為止。8 位微控制器 8k 字節(jié) 在系統(tǒng)可編
23、程。 at89s52 單片機(jī)時(shí)鐘和復(fù)位電路 時(shí)鐘電路 單片機(jī)內(nèi)部有一個(gè)高增益反向放大器,輸入端為芯片引腳,輸出端 1 xtal 為引腳。而在芯片外部和 之間跨接晶體振蕩器和微調(diào)電容, 2 xtal 1 xtal 2 xtal 從而構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。晶體震蕩頻率高,則系統(tǒng)的時(shí)鐘頻率也高, 單片機(jī)運(yùn)行速度也就快,但反過(guò)來(lái)運(yùn)行速度快對(duì)存儲(chǔ)器的速度要求就高,對(duì)印 制電路板的工藝要求也高,所以,這里使用震蕩頻率為 6mhz 的石英晶體。震蕩 電路產(chǎn)生的震蕩脈沖并不直接是使用,而是經(jīng)分頻后再為系統(tǒng)所用,震蕩脈沖 經(jīng)過(guò)二分頻后才作為系統(tǒng)的時(shí)鐘信號(hào)。在設(shè)計(jì)電路板 時(shí),振蕩器和 電容應(yīng)盡量靠近單片機(jī),以
24、避免干擾。需要注意的是: 電路板時(shí),振蕩器和電容應(yīng)盡量安裝得與單片機(jī)靠近, 以減小寄生電容的存在更好的保障振蕩器穩(wěn)定、可靠 的工作電路圖如圖 2.2 所示 復(fù)位電路 單片機(jī)的復(fù)位電路分上電復(fù)位和按鍵復(fù)位兩種 方式。 (a)上電復(fù)位: 在加電之后通過(guò)外部復(fù)位電路的電容充電 來(lái)實(shí)現(xiàn)的。當(dāng)?shù)纳仙龝r(shí)間不超過(guò) 1ms,就可以 cc v 實(shí)現(xiàn)自動(dòng)上電復(fù)位,即接通電源就完成了系統(tǒng)的初 始化電路原理圖。rst 上的電壓必須保證在斯密特觸發(fā)器的閥值電壓以上足夠 長(zhǎng)時(shí)間,滿足復(fù)位操作的要求。 (b) 按鍵復(fù)位: 程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為了擺脫困境,也需按 復(fù)位鍵以重新啟動(dòng)。rst 引腳是復(fù)位
25、信號(hào)的輸入端,復(fù) 位信號(hào)是高電平有效。按鍵復(fù)位又分按鍵脈沖復(fù)位(圖 2.3)和按鍵電平復(fù)位。電平復(fù)位將復(fù)位端通過(guò)電阻與 相連,按鍵脈沖復(fù)位是利用 rc 分電路產(chǎn)生正脈沖 cc v 來(lái)達(dá)到復(fù)位的。 (c) 注意: 因?yàn)榘存I脈沖復(fù)位是利用 rc 微分電路產(chǎn)生正脈沖 來(lái)達(dá)到復(fù)位的。所以電平復(fù)位要將復(fù)位端通過(guò)電阻與 相連.如復(fù)位電路中 r、c 的值選擇不當(dāng),使復(fù)位時(shí) cc v 間過(guò)長(zhǎng),單片機(jī)將處于循環(huán)復(fù)位狀態(tài)。故本設(shè)計(jì)采用按 鍵復(fù)位。 3.22 時(shí)鐘模塊 ds1302 的引腳排列,其中 vcc1 為后備電源,vcc2 為主電源。在主電源關(guān) 閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。ds1302 由 vcc1
26、 或 vcc2 兩者中的較大 者供電。當(dāng) vcc2 大于 vcc10.2v 時(shí),vcc2 給 ds1302 供電。當(dāng) vcc2 小于 vcc1 時(shí),ds1302 由 vcc1 供電。x1 和 x2 是振蕩源,外接 32.768khz 晶振。rst 是復(fù) 位/片選線,通過(guò)把 rst 輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。rst 輸入有 兩種功能:首先,rst 接通控制邏輯,允許地址/命令序列送入移位寄存器;其 次,rst 提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng) rst 為高電平時(shí),所有 的數(shù)據(jù)傳送被初始化,允許對(duì) ds1302 進(jìn)行操作。如果在傳送過(guò)程中 rst 置為低 電平,則會(huì)終止此次數(shù)據(jù)
27、傳送,i/o 引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在 vcc2.0v 之前,rst 必須保持低電平。只有在 sclk 為低電平時(shí),才能將 rst 置 為高電平。i/o 為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說(shuō)明。sclk 為時(shí)鐘 輸入端。 3.23溫度采集模塊 獨(dú)特的一線接口,只需要一條口線通信 多點(diǎn)能力,簡(jiǎn)化了分布式溫度傳 感應(yīng)用 無(wú)需外部元件 可用數(shù)據(jù)總線供電,電壓范圍為 3.0 v 至 5.5 v 無(wú)需備 用電源 測(cè)量溫度范圍為-55 c 至+125 。華氏相當(dāng)于是-67 f 到 257 華氏度 -10 c 至+85 c 范圍內(nèi)精度為0.5 c 溫度傳感器可編程的分辨率為 912 位 溫度轉(zhuǎn)換
28、為 12 位數(shù)字格式最大值為 750 毫秒 用戶可定義的非易失性溫度報(bào)警設(shè)置 應(yīng)用范圍包括恒溫控制,工業(yè)系統(tǒng), 消費(fèi)電子產(chǎn)品溫度計(jì),或任何熱敏感系統(tǒng) 描述該 ds18b20 的數(shù)字溫度計(jì)提供 9 至 12 位(可編程設(shè)備溫度讀數(shù)。信息被發(fā) 送到/從 ds18b20 通過(guò) 1 線接口,所以中央微處理器與 ds18b20 只有一個(gè)一條 口線連接。為讀寫(xiě)以及溫度轉(zhuǎn)換可以從數(shù)據(jù)線本身獲得能量,不需要外接電源。 因?yàn)槊恳粋€(gè) ds18b20 的包含一個(gè)獨(dú)特的序號(hào),多個(gè) ds18b20s 可以同時(shí)存在于 一條總線。這使得溫度傳感器放置在許多不同的地方。它的用途很多,包括空 調(diào)環(huán)境控制,感測(cè)建筑物內(nèi)溫設(shè)備或機(jī)
29、器,并進(jìn)行過(guò)程監(jiān)測(cè)和控制。 ds18b20 的主要特點(diǎn): 適應(yīng)電壓范圍更寬,電壓范圍:3.05.5v,在寄生電源方式下可由數(shù)據(jù)線 供電; 獨(dú)特的單線接口方式,ds18b20 在與微處理器連接時(shí)僅需要一條口線即可實(shí) 現(xiàn)微處理器與 ds18b20 的雙向通訊; ds18b20 支持多點(diǎn)組網(wǎng)功能,多個(gè) ds18b20 可以并聯(lián)在唯一的三線上,實(shí)現(xiàn) 組網(wǎng)多點(diǎn)測(cè)溫; ds18b20 在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形 如一只三極管的集成電路內(nèi); 溫范圍55125,在-10+85時(shí)精度為0.5; 可編程的分辨率為 912 位,對(duì)應(yīng)的可分辨溫度分別為 0.5、0.25、 0.125和
30、 0.0625,可實(shí)現(xiàn)高精度測(cè)溫; 在 9 位分辨率時(shí)最多在 93.75ms 內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12 位分辨率時(shí)最多 在 750ms 內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快; 測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以一線總線串行傳送給 cpu,同時(shí)可傳 送 crc 校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力; 負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作249-256。 對(duì) ds18b20 的設(shè)計(jì)外部供電方式單點(diǎn)測(cè)溫。在這種外部電源供電方式下, ds18b20 工作電源由 vdd 引腳接入,因?yàn)橛?vdd 接入電源不存在電源電流不足 的問(wèn)題,可以保證轉(zhuǎn)換精度。不過(guò)要注意。在這種外部供電的方式下,ds
31、18b20 的 gnd 腳不能懸空,否則不能轉(zhuǎn)換溫度,讀取的溫度總是 80 oc。ds18b20 的硬 件電路連接如下圖 6 所示: ds18b20 原理圖 3.24led 顯示模塊 字符型液晶顯示模塊是一種專門(mén)用于顯示字母、數(shù)字、版本號(hào)等的點(diǎn)陣 式液晶顯示模塊。它是由若干個(gè) 57 或 511 等點(diǎn)陣符位組成的,第一個(gè)點(diǎn)陣 字符位都可以顯示一個(gè)字符。點(diǎn)陣字符位之間有一定點(diǎn)距的間隔,這樣就起到 了字符間距和行距的作用。本系統(tǒng)采用字符型液晶顯示模塊 1602,我設(shè)置單片 機(jī)驅(qū)動(dòng) lcd1602 采用并行方式,rs,rw,en 分別接主控單片機(jī)的 p25,p26,p27 腳, db0db7 接到主控
32、單片機(jī)的 p0 數(shù)據(jù)接口。bla 接口通過(guò)一個(gè)+5v 電源,blk 接地。 lcd1602 的硬件連接原理圖如圖 7 所示: 3.25 電源電路 電源變壓器 變壓部分其實(shí)就是一個(gè)變壓器,變壓器作用是將 220v 的交流電壓變換成我 們所需的電壓 5v。然后再送去整流和濾波。 整流濾波電路 變壓部分其實(shí)就是一個(gè)變壓器,變壓器作用是將 220v 的交流電壓變換成我 們所需的電壓 5v。然后再送去整流和濾波。 穩(wěn)壓電路 整流電路將交流電壓變成單向脈動(dòng)的直流電壓;濾波電路用來(lái)濾除整流后 單向脈動(dòng)電壓中的交流成份,合之成為平滑的直流電壓。濾波電路常見(jiàn)的有電 容濾波電路、電感濾波電路。一般的整流有全波整流
33、、單相半流整流、橋式整 流、及變壓整流。 第四章第四章. . 系統(tǒng)軟件設(shè)計(jì)系統(tǒng)軟件設(shè)計(jì) 4.1 總體軟件設(shè)計(jì)圖 4.2 時(shí)鐘驅(qū)動(dòng) ds1302 是 spi 總線驅(qū)動(dòng)方式。它不僅要向寄存器寫(xiě)入控制字,還需要 讀取相應(yīng)寄存器的數(shù)據(jù)。下圖圖 10 是 ds1302 的控制字。 控制字的最高有效位(位 7)必須是邏輯 1,如果它為 0,則不能把數(shù) 據(jù)寫(xiě)入到 ds1302 中。 位 6:如果為 0,則表示存取日歷時(shí)鐘數(shù)據(jù),為 1 表示存取 ram 數(shù)據(jù); 位 5 至位 1(a4a0):指示操作單元的地址;位 0(最低有效位):如為 0,表示要進(jìn)行寫(xiě)操作,為 1 表示進(jìn)行讀操作??刂谱挚偸菑淖畹臀婚_(kāi)始輸
34、出。在控制字指令輸入后的下一個(gè) sclk 時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫(xiě)入 ds1302,數(shù)據(jù)輸入從最低位(0 位)開(kāi)始。同樣,在緊跟 8 位的控制字指 令后的下一個(gè) sclk 脈沖的下降沿,讀出 ds1302 的數(shù)據(jù),讀出的數(shù)據(jù)也是 從最低位到最高位。數(shù)據(jù)讀寫(xiě)時(shí)序如下圖 11 所示: 圖 11 ds1302 讀寫(xiě)時(shí)序圖 4.3 溫度數(shù)據(jù)采集: 根據(jù) ds18b20 的通訊協(xié)議,單片機(jī)控制 ds18b20 完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè) 步驟:每一次讀寫(xiě)之前都要對(duì) ds18b20 進(jìn)行復(fù)位操作,復(fù)位成功后發(fā)送一條 rom 指令,最后發(fā)送 ram 指令,這樣才能對(duì) ds18b20 進(jìn)行預(yù)定的操作,復(fù)位要 求
35、單片機(jī)將數(shù)據(jù)線下拉 50 微秒,然后釋放,當(dāng) ds18b20 受到信號(hào)后等待 1660 微秒左右,然后發(fā)出 60240 微秒的存在低脈沖,主 cpu 收到此信號(hào)表 示復(fù)位成功。 圖 10 控制字(即地址和命令字節(jié)) 指令約定代碼功能 讀 rom 33h 讀 ds1820 溫度傳感器 rom 中的編碼(即 64 位地址) 符合 rom 55h 發(fā)出此命令之后,接著發(fā)出 64 位 rom 編碼,訪問(wèn)單總 線上與該編碼相對(duì)應(yīng)的 bs1820 使之作出響應(yīng),為下一 步對(duì)該 ds1820 的讀寫(xiě)作準(zhǔn)備。 搜索 rom ofoh 用于確定掛接在同一總線上 ds1820 的個(gè)數(shù)和識(shí)別 64 位 rom 地址
36、。為操作各器件作好準(zhǔn)備。 跳過(guò) rom occh 忽略 64 位 rom 地址,直接向 ds1820 發(fā)溫度變換命令。 適用與單片工作。 告警搜索命 令 oech 執(zhí)行后只有溫度超過(guò)設(shè)定值上限或下限的片子才做出 響應(yīng)。 指令約定代碼功能 溫度變換 44h 啟動(dòng) ds1820 進(jìn)行溫度轉(zhuǎn)換 12 位轉(zhuǎn)換時(shí)最廠為 750ms(9 位為 93.75ms) 。結(jié)果存入內(nèi)部 9 字節(jié) ram 中。 讀暫存器 obeh 讀內(nèi)部 ram 中 9 字節(jié)的內(nèi)容。 寫(xiě)暫存器 4eh 發(fā)出向內(nèi)部 ram 的 3、4 字節(jié)寫(xiě)上、下限溫度數(shù)據(jù)命令, 緊跟該命令之后,是傳送兩字節(jié)的數(shù)據(jù)。 復(fù)制暫存器 48h 將 ram
37、中第 3、4 字節(jié)的內(nèi)容復(fù)制到 eeprom 中 重調(diào) eeprom ob8h 將 eeprom 中內(nèi)容恢復(fù)到 ram 中的第 3、4 字節(jié)。 讀供電方式 ob4h 讀 ds1820 的供電模式。寄生東佃時(shí) ds1820 發(fā)送“0” , 外界電源供電 ds1820 發(fā)送“1” 。 4.4 液晶驅(qū)動(dòng)程序 lcd 使用之前須對(duì)它進(jìn)行初始初始化可通過(guò)復(fù)位完成,也可在復(fù)位后完成, 初始化過(guò)程如下: (1)清屏。將顯示緩沖區(qū) ddram 的內(nèi)容全部寫(xiě)入空格(ascii20h)。 (2)功能設(shè)置。 (3)開(kāi)/關(guān)顯示設(shè)置??刂骑@示的開(kāi)關(guān),當(dāng) d=1 時(shí)顯示,d=0 時(shí)不顯示???制光標(biāo)開(kāi)關(guān),當(dāng) c=1 時(shí)光
38、標(biāo)顯示,c=0 時(shí)光標(biāo)不顯示??刂谱址欠耖W 爍,當(dāng) b=0 時(shí)字符閃爍,b=0 時(shí)字符不閃爍。 (4)輸入方式設(shè)置。 初始化過(guò)程:(1)延時(shí) 15ms;(2)寫(xiě)指令 38h(不檢測(cè)忙信號(hào)) ; (3)延時(shí) 5 ms;(4)寫(xiě)指令 38h(不檢測(cè)忙信號(hào)) ;(5)延時(shí) 5ms;(6)寫(xiě)指令 38h(不檢測(cè)忙信號(hào)) ;(7)以后每次寫(xiě)指令、讀/寫(xiě) 數(shù)據(jù)操作之前均需檢測(cè)忙信號(hào);(8)寫(xiě)指令 38h:顯 示模式設(shè) 置;(9)寫(xiě)指令 08h:顯示關(guān)閉;(10)寫(xiě)指令 01h:顯示清屏; (11)寫(xiě)指令 06h:顯示光標(biāo)移動(dòng)設(shè)置;(12)寫(xiě)指令 0ch:顯示開(kāi)及光 標(biāo)設(shè)置。 第第 5 5 章章. .綜合
39、調(diào)試綜合調(diào)試 硬件調(diào)試 在本溫度控制電路的設(shè)計(jì)調(diào)試中遇到了很多的問(wèn)題。回想這些問(wèn)題只要 認(rèn)真多思考都是可以避免的,以下為主要的問(wèn)題: (1) 開(kāi)始調(diào)試時(shí)發(fā)現(xiàn)時(shí)鐘芯片 ds1302 發(fā)熱很厲害,后來(lái)發(fā)現(xiàn)電路沒(méi)有給它加 上拉電阻,加上上拉電阻后問(wèn)題就解決了。 (2) 雙向可控硅 bta12-600b 高壓部分電路, 加 104 電容時(shí),發(fā)生擊穿現(xiàn)象,導(dǎo)致光 耦控制部分電路癱瘓,原因是耐壓值不 夠。解決的方法有兩種,第一種是更換 耐壓值更高的電容;由于該電容的作用 是吸收可控硅元件的殘余電量,使得可 控硅能夠正常導(dǎo)通截止,而根據(jù)使用的 負(fù)載(交流電機(jī)) ,去掉該電容后,該 電路能夠正常的工作,所以第
40、二種是在電路可以運(yùn)行的狀況下去掉該 104 電容相連的電路。我采取的是第二種方法。 軟件調(diào)試 在軟件調(diào)試時(shí)也出現(xiàn)了一些問(wèn)題,其中主要的問(wèn)題有以下兩個(gè)方面: (1) 程序讀取溫度值時(shí),出現(xiàn)的現(xiàn)象,造成風(fēng)扇溫度在判斷時(shí)出現(xiàn)錯(cuò)誤,使 風(fēng)扇經(jīng)常性突快突慢變化,蜂鳴器也不斷的蜂鳴報(bào)警。解決的方法是在 讀取溫度判斷時(shí)加延時(shí),并且多次判斷,防止跳變。 (2) 調(diào)節(jié)系統(tǒng)參數(shù)時(shí),液晶光標(biāo)太快以致調(diào)節(jié)的時(shí)候觀察困難,原因是刷新 液晶太快。解決的方法是在相應(yīng)數(shù)據(jù)更該時(shí),才開(kāi)始刷新液晶內(nèi)容。 第六章第六章. .總結(jié)總結(jié) 我的畢業(yè)設(shè)計(jì)課題即將將告一段落。設(shè)計(jì)實(shí)物也基本達(dá)到預(yù)期的效果,但 由于能力和時(shí)間的關(guān)系,總是覺(jué)得有
41、很多不盡人意的地方,譬如功能不全、外 觀粗糙數(shù)不勝數(shù)。但我可以自豪的說(shuō),這里面的每一段代碼,都有我的勞 動(dòng)。當(dāng)看著自己的程序,自己成天相伴的系統(tǒng)能夠健康的運(yùn)行,真是莫大的幸 福和欣慰。我相信其中的酸甜苦辣最終都會(huì)化為甜美的甘泉。 畢業(yè)設(shè)計(jì),也許是我大學(xué)生涯交上的最后一個(gè)作業(yè)了。想借此機(jī)會(huì)感謝一 直以來(lái)給我?guī)椭乃欣蠋?、同學(xué),你們的友誼是我人生的財(cái)富,是我生命中 不可或缺的一部分。我的畢業(yè)指導(dǎo)老師王琳娜老師,她一直都以一位長(zhǎng)輩的風(fēng) 范來(lái)容諒我的無(wú)知和沖動(dòng),給我不厭其煩的指導(dǎo)。在此,特向她道聲謝謝。 這次做論文的經(jīng)歷也會(huì)使我終身受益,我感受到做論文是要真真正正用心去做 的一件事情,是真正的自己學(xué)
42、習(xí)的過(guò)程和研究的過(guò)程,沒(méi)有學(xué)習(xí)就不可能有研 究的能力,沒(méi)有自己的研究,就不會(huì)有所突破,那也就不叫論文了。希望這次 的經(jīng)歷能讓我在以后學(xué)習(xí)中激勵(lì)我繼續(xù)進(jìn)步。 附錄 電路圖 程序 #include #include #include #define uchar unsigned char #define uint unsigned int #define lcd_dat p0 /定義 lcd 數(shù)據(jù)口 sbit lcd_e=p27; /定義 lcd 控制口 sbit lcd_rw=p26; /定義 lcd 控制口 sbit lcd_rs=p25; /定義 lcd 控制口 sbit ds18b20_d
43、q =p15; /定義 ds18b20 通信端口 sbit led1=p12; sbit led2=p13; sbit speaker=p11; /蜂鳴器接口 sbit fan=p21;/風(fēng)扇 pwm 輸出控制口 bit fan_flag=0; sbit key_model=p31;/模式鍵 sbit key_set=p32;/設(shè)置鍵 sbit key_add=p35;/加鍵 sbit key_sub=p34;/減鍵 sbit key_left=p30;/左移鍵 sbit key_right=p33;/右移鍵 sbit e_sw=p10;/繼電器控制 uchar sw_flag=0;/繼電器自
44、動(dòng)手動(dòng)切換標(biāo)志 uchar switch_flag=0;/繼電器液晶設(shè)置切換標(biāo)志 int sw_open_temperature=100;/繼電器開(kāi)啟的溫度值設(shè)置 uchar restrict_hour=0;/設(shè)定時(shí)間風(fēng)扇不能轉(zhuǎn) uint temp=0; /溫度緩存 uint fan_count=0;/風(fēng)扇計(jì)數(shù) bit fan_auto=0;/自動(dòng)風(fēng)扇自動(dòng)或手動(dòng)控制標(biāo)志 uchar model_flag=0;/總的模式標(biāo)志 uchar code num_to_char = 0123456789abcdef; /*定義數(shù)字跟 ascii 碼的關(guān)系*/ uchar data lcd1602_lin
45、e1= 2010/00/00 tue ; /時(shí)間顯示緩存數(shù) 組 uchar data lcd1602_line2= 00:00:00 00.0c ; /時(shí)間顯示緩存數(shù) 組 uchar data lcd1602_line3= 00:00:00set time; /時(shí)間設(shè)置緩存數(shù) 組 uchar idata temp_record_line1=temperature note;/溫度記錄顯示緩 存數(shù)組 uchar idata temp_record_line2=time 00 t:00.0c ;/溫度記錄顯示緩 存數(shù)組 uchar xdata temp_highter_line1=sw t on/
46、off ;/繼電器手動(dòng)自動(dòng) 切換和自動(dòng)時(shí)開(kāi)啟電壓 uchar xdata temp_highter_line2=auto t=00.0c ;/繼電器手動(dòng)自動(dòng) 切換和自動(dòng)時(shí)開(kāi)啟電壓 uchar xdata temp_time_unable_line1=fan time unable; /顯示風(fēng)扇 禁止打開(kāi)的時(shí)間段 uchar xdata temp_time_unable_line2=f:4 t:7 oclock; /顯示風(fēng)扇 禁止打開(kāi)的時(shí)間段 uchar code temp_auto_switch6=auto ,manuel; /自動(dòng),手 動(dòng)切換值 uchar idata temp_record
47、=01000000000000000000000000000000000000000000000000000 0000000000000000000;/保存每天對(duì)應(yīng)鐘點(diǎn)的溫度值 uchar code weeks4=sun ,mon ,tue ,wed ,thu ,fri ,sat ,sun ; /星期數(shù)組 /時(shí)鐘標(biāo)志 uint data year=0; /時(shí)間設(shè)置標(biāo)志,數(shù)據(jù) uchar data set_time=0,time_flag=0,day_flag=0,hour=0,minute=0,second=0,day=0,mont h=0,week=0;/時(shí)間設(shè)置標(biāo)志,數(shù)據(jù) uint spe
48、aker_count=0; /喇叭蜂鳴計(jì)數(shù) uchar record_hour,record_minute,record_second,record_hour_count=0; / 溫度記錄的時(shí)間設(shè)置 /小延時(shí)程序 void delay(uint x) while(x-); /*1ms 為單位的延時(shí)程序*/ void delay_1ms(uint x) uchar j; while(x-) for(j=0;j0;i-) ds18b20_dq = 0; / 給脈沖信號(hào) dat=1; ds18b20_dq = 1; / 給脈沖信號(hào) if(ds18b20_dq) dat|=0 x80; delay(
49、4); return(dat); /寫(xiě)一個(gè)字節(jié) void writeonechar(uchar dat) uchar i=0; for (i=8; i0; i-) ds18b20_dq = 0; ds18b20_dq= dat delay(5); ds18b20_dq = 1; dat=1; /讀取溫度 readtemperature(void) uchar a=0; uchar b=0; uint t=0; float tt=0; init_ds18b20(); writeonechar(0 xcc); / 跳過(guò)讀序號(hào)列號(hào)的操作 writeonechar(0 x44); / 啟動(dòng)溫度轉(zhuǎn)換 i
50、nit_ds18b20(); writeonechar(0 xcc); /跳過(guò)讀序號(hào)列號(hào)的操作 writeonechar(0 xbe); /讀取溫度寄存器等(共可讀 9 個(gè)寄存器) 前兩個(gè) 就是溫度 a=readonechar(); b=readonechar(); t=b; t=8; t=t|a; tt=t*0.0625; /將溫度的高位與低位合并 t= tt*10+0.5; /對(duì)結(jié)果進(jìn)行 4 舍 5 入 return(t); /以上是 ds18b20 驅(qū)動(dòng)程序/ /以下是溫度高時(shí)處理程序 void temp_hight(void) if(fan_auto=0) /自動(dòng) led1=1; /亮
51、燈說(shuō)明是自動(dòng)控制 if(temp230 temp=readtemperature(); /防止跳變干擾,再讀一次溫 度 delay_1ms(5000); /防止跳變干擾,再讀一次溫度 if(temp400)tr1=1; /防止跳變干擾,再讀一次溫度 if(fan_flag=1) /這部分作為 pwm 控制程序 /這部分作為 pwm 控制程序 fan=1; /這部分作為 pwm 控制程序 delay_1ms(fan_count);/控制風(fēng)扇關(guān)閉的時(shí)間,以達(dá)到控制風(fēng)扇轉(zhuǎn)速的 目的 fan=0; /這部分作為 pwm 控制程序 if(fan_auto=1)/手動(dòng) led1=0; /滅燈說(shuō)明是手動(dòng)控制
52、 fan=0; /表示風(fēng)扇一直開(kāi)著 /以上是溫度高時(shí)處理程序 /以下是溫度低時(shí)處理程序 void temp_low(void) if(sw_flag=0)/自動(dòng)的時(shí)候繼電器根據(jù)溫度值判斷開(kāi)啟 led2=1; /亮燈說(shuō)明是自動(dòng)控制 if(temp=4/允許標(biāo)志,0 表示不允許 else fan_flag=1;fan=1; /t1 用于蜂鳴警報(bào) void t1_set(void) tmod=0x11; th1=(65536-1000)/256; tl1=(65536-1000)%256; ea=1; et1=1; / tr1=0; return; /t1 中斷,用于蜂鳴警報(bào) void t1_()i
53、nterrupt 3 uchar i; th1=(65536-1000)/256; tl1=(65536-1000)%256; i+; if(i=150) speaker=speaker; i=0; speaker_count+; if(speaker_count=1000) speaker=1; speaker_count=0; tr1=0; /主函數(shù) void main() uchar i; bit dis_flag=0; t1_set();/初始化定時(shí)器,用于高溫警報(bào) fan=1; init_lcd();/初始化 lcd /set1302(time_data_buff); /設(shè)置時(shí)間 f
54、an=1; while(1) /模式設(shè)置 if(key_model=0) delay_1ms(20); while(key_model=0); model_flag+; time_flag=0; if(model_flag=5)model_flag=0;write_instruction(0 x0c);cls(); if(model_flag=1) write_string(0 xc8,set time); write_instruction(0 x0c); if(model_flag=3)write_instruction(0 x0e);/這部分是用 于設(shè)置繼電器的開(kāi)啟狀態(tài) for(i=0;
55、i6;i+)temp_highter_line2i=temp_auto_switchsw_flagi;/ 讀取緩存值 temp_highter_line29=num_to_charsw_open_temperature/100; temp_highter_line210=num_to_charsw_open_temperature%100/10; temp_highter_line212=num_to_charsw_open_temperature%10; write_string(0 x80,temp_highter_line1); write_string(0 xc0,temp_hight
56、er_line2); write_instruction(0 xc0); /顯示時(shí)間 if(model_flag=0) time_restrict(); temp_hight(); temp_low(); if(key_set=0) /風(fēng)扇自動(dòng)手動(dòng)切換 delay_1ms(20); while(key_set=0); fan_auto=fan_auto; get1302(time_data_buff); /讀取當(dāng)前時(shí)間 temp=readtemperature(); record(); lcd1602_line13 = num_to_chartime_data_buff6/0 x10; lcd
57、1602_line14 = num_to_chartime_data_buff6%0 x10; /*年*/ lcd1602_line16 = num_to_chartime_data_buff4/0 x10; lcd1602_line17 = num_to_chartime_data_buff4%0 x10; /*月*/ lcd1602_line19 = num_to_chartime_data_buff3/0 x10; lcd1602_line110 = num_to_chartime_data_buff3%0 x10; /*日*/ for(i=0;i4;i+) lcd1602_line1i
58、+12=weekstime_data_buff5 /*星期*/ lcd1602_line20 = num_to_chartime_data_buff2/0 x10; lcd1602_line21 = num_to_chartime_data_buff2%0 x10; /*時(shí)*/ lcd1602_line23 = num_to_chartime_data_buff1/0 x10; lcd1602_line24 = num_to_chartime_data_buff1%0 x10; /*分*/ lcd1602_line26 = num_to_chartime_data_buff0/16; lcd1
59、602_line27 = num_to_chartime_data_buff0%16; /*秒*/ lcd1602_line29 = num_to_char(temp)/100; /*溫度*/ lcd1602_line210 = num_to_char(temp)%100/10; /*溫度 */ lcd1602_line212 = num_to_char(temp)%10; /*溫度*/ delay_1ms(100); write_string(0 x80,lcd1602_line1); write_string(0 xc0,lcd1602_line2); /以上顯示正常運(yùn)行的時(shí)間 /以下設(shè)置
60、時(shí)間 if(model_flag=1) if(key_set=0) delay_1ms(20); while(key_set=0); set_time+; if(set_time=3)set_time=0; if(set_time=1)write_instruction(0 xc6); write_instruction(0 x0e);/顯示光 標(biāo) if(set_time=0) write_instruction(0 x0c);/關(guān)掉光標(biāo) write_string(0 xc8,set time); if(set_time=1) if(key_left=0) /設(shè)置時(shí)分秒星期日月年的標(biāo)志 del
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版能源互聯(lián)網(wǎng)財(cái)務(wù)擔(dān)保合同賬務(wù)管理與市場(chǎng)拓展3篇
- 二零二五年度管道工程專用管子配件采購(gòu)合同3篇
- 2025年中國(guó)關(guān)節(jié)止痛膏行業(yè)市場(chǎng)全景分析及投資規(guī)劃建議報(bào)告
- 2025年通勤車(chē)租賃合同通勤交通綠色出行合作協(xié)議6篇
- 二零二五年度安全風(fēng)險(xiǎn)評(píng)估與安全文化建設(shè)合同2篇
- 二零二五版綠化工程施工圖預(yù)算編制合同3篇
- 2025年商超貨架項(xiàng)目提案報(bào)告范文
- 2025年六角雙頂涼棚行業(yè)深度研究分析報(bào)告
- 二零二五版股權(quán)激勵(lì)與員工持股計(jì)劃合同3篇
- 二零二五年度藝術(shù)品投資代購(gòu)與市場(chǎng)分析協(xié)議3篇
- 2024年6月高考地理真題完全解讀(安徽省)
- 吸入療法在呼吸康復(fù)應(yīng)用中的中國(guó)專家共識(shí)2022版
- 1-35kV電纜技術(shù)參數(shù)表
- 信息科技課程標(biāo)準(zhǔn)測(cè)(2022版)考試題庫(kù)及答案
- 施工組織設(shè)計(jì)方案針對(duì)性、完整性
- 2002版干部履歷表(貴州省)
- DL∕T 1909-2018 -48V電力通信直流電源系統(tǒng)技術(shù)規(guī)范
- 2024年服裝制版師(高級(jí))職業(yè)鑒定考試復(fù)習(xí)題庫(kù)(含答案)
- 門(mén)診部縮短就診等候時(shí)間PDCA案例-課件
- 第21課《鄒忌諷齊王納諫》對(duì)比閱讀 部編版語(yǔ)文九年級(jí)下冊(cè)
- NB-T32042-2018光伏發(fā)電工程建設(shè)監(jiān)理規(guī)范
評(píng)論
0/150
提交評(píng)論