版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于單片機(jī)控制的定時(shí)插座摘要裝訂線本文設(shè)計(jì)了一款基于STC89C52RC單片機(jī)控制的光敏定時(shí)插座,它可以通過人為設(shè)定時(shí)間和光照強(qiáng)度的強(qiáng)弱,實(shí)現(xiàn)自動(dòng)通電和斷電功能,從而達(dá)到節(jié)能的目的。硬件電路設(shè)計(jì)包括:單片機(jī)最小系統(tǒng)電路、電源穩(wěn)壓電路、1602液晶顯示電路、獨(dú)立式按鍵電路、溫度控制電路、光敏電阻電路、繼電器電路以及報(bào)警電路,設(shè)計(jì)原理主要利用DS1302時(shí)鐘芯片和PCF8591芯片經(jīng)A/D轉(zhuǎn)換后在1602液晶上顯示定時(shí)時(shí)間和光強(qiáng)大小,利用按鍵來選擇工作模式和設(shè)定定時(shí)時(shí)間以及設(shè)定光照的閾值,當(dāng)定時(shí)時(shí)間結(jié)束或光照強(qiáng)度小于設(shè)定光照閾值時(shí),通過繼電器的吸合作用來驅(qū)動(dòng)插座的切斷,紅色發(fā)光二極管和蜂鳴器的狀態(tài)
2、來表示插座的工作狀態(tài)。軟件程序的設(shè)計(jì)包括:1602液晶顯示程序、DS1302定時(shí)程序、AD轉(zhuǎn)換程序,按鍵處理程序、蜂鳴器報(bào)警程序,在本文的最后對設(shè)計(jì)了硬件和軟件部分,并進(jìn)行了調(diào)試和制作,基于單片機(jī)控制的定時(shí)插座系統(tǒng)具有電路簡單,可靠性高,定時(shí)準(zhǔn)確等特點(diǎn),基本滿足設(shè)計(jì)要求。關(guān)鍵詞:STC89C52;光敏;定時(shí);插座ITHE TIMING SOCKET BASED ON SINGLE-CHIP MICROCOMPUTER ABSTRACTDesign a based on SCM STC89C52RC photosensitive regular outlet, by artificially s
3、etting time and the strength of the light intensity, it can achieve automatic power-on and power-off function, so as to achieve the purpose of energy saving. Hardware circuit design includes: the smallest single-chip system circuit, power regulator circuit, 1602 LCD circuit, an independent key circu
4、it, temperature control circuit, the photoresistor circuit, the relay circuit and alarm circuit design principles mainly use the DS1302 clock chip and PCF8591 chip by A / D conversion timing in 1602 and two light levels, use keys to select the operating mode and set the timing and setting a threshol
5、d of light, when the time runs out or when the light intensity is less than the set light threshold,the state of the red light emitting diode and a buzzer to indicate the working status of the socket. Software design include: 1602 LCD procedures, DS1302 timer program, the AD conversion process, the
6、key handler, the buzzer alarm program, at the end of this article on the final design of the hardware and software components in the design and commissioning and production , based on single-chip timing control socket system has a simple circuit, high reliability, and timing accuracy, basically meet
7、 the design requirements.Key words:STC89C52;photosensitive; Timing; Socket目錄1緒論1.課題來源及意義1.定時(shí)插座發(fā)展趨勢12定時(shí)插座系統(tǒng)設(shè)計(jì)2.設(shè)計(jì)方案的選擇2.定時(shí)插座的工作過程23定時(shí)插座的硬件電路設(shè)計(jì)3.主控制器STC89C52RC4.定時(shí)插座的電源電路4.DS1302時(shí)鐘電路5.DS18B20測溫電路6.光強(qiáng)檢測電路6.LCD1602顯示電路7.報(bào)警電路8.繼電器電路8.總體硬件電路及其工作原理94軟件設(shè)計(jì)11.DS1302計(jì)時(shí)程序的編寫12.A/D轉(zhuǎn)換程序13.DS18B20程序初始化14.1602液晶顯示程
8、序165系統(tǒng)制作及調(diào)試18.硬件制作18.系統(tǒng)調(diào)試18.設(shè)計(jì)結(jié)果19.設(shè)計(jì)中存在的不足及其改進(jìn)19參考文獻(xiàn)20致謝21附錄122附錄2261緒論.課題來源及意義隨著現(xiàn)代科學(xué)技術(shù)飛速發(fā)展,給電子產(chǎn)品市場帶來了巨大市場機(jī)會和挑戰(zhàn),同時(shí)人們對電子產(chǎn)品的需求也越來越高。目前市場上出售的插座功能還比較單一,并不完全具備定時(shí)開啟和關(guān)閉以及斷電保護(hù)功能,長期通電會使家用電器電路老化,降低了電器的使用壽命,還容易漏電引發(fā)火災(zāi),不能從根本上解決人們的需求。比如說長時(shí)間開著飲水機(jī),這樣不僅浪費(fèi)了能源,而且長時(shí)間飲用多次燒過的熱水會給身體帶來非常嚴(yán)重疾病,通過使用定時(shí)插座,當(dāng)家里沒人時(shí),可以關(guān)斷飲水機(jī),家里有人時(shí),
9、則讓飲水機(jī)工作,這樣不僅節(jié)約了能源,還可以保護(hù)飲水機(jī)的使用期限,也能讓人們喝上更健康的水。其次,我們現(xiàn)在使用的手機(jī),照相機(jī)等電子產(chǎn)品,如果長時(shí)間的給電池充電,這不僅縮短了電池的使用壽命,還有可能引起火災(zāi),面對這樣的難題,利用定時(shí)插座,將插頭插在定時(shí)插座上,設(shè)定好定時(shí)時(shí)間,等電池充滿電后,定時(shí)插座會自動(dòng)停止工作,從而保護(hù)了電池。鑒于上述問題,研究定時(shí)插座,有著非?,F(xiàn)實(shí)的意義,在無人監(jiān)視的情況下,可以自動(dòng)切斷電源,這樣不僅節(jié)約了電能,還消除了火災(zāi)隱患,使我們的生活更加智能化,因此,由單片機(jī)控制的定時(shí)插座控制系統(tǒng),可以用于家用電器設(shè)備中。高精度、多功能、小體積、低功耗、智能化,是現(xiàn)代定時(shí)插座發(fā)展的趨
10、勢。本文簡述了定時(shí)開關(guān)插座的硬件電路設(shè)計(jì)和軟件設(shè)計(jì)的方法,設(shè)計(jì)出了定時(shí)插座的制定方案,它可以自動(dòng)對家中一些需要在特定時(shí)間對電器進(jìn)行自動(dòng)斷、通電控制,而不需要拔掉插頭,減少電器的待機(jī)損耗,解決生活中的煩惱。.定時(shí)插座發(fā)展趨勢單片機(jī)具有優(yōu)異的性能性價(jià)比,集成度高、體積小、可靠性高,控制功能強(qiáng),低電壓、低功耗等特點(diǎn),利用單片機(jī)技術(shù)來完善現(xiàn)有插座的功能,從根本上解決了傳統(tǒng)電器啟動(dòng)的額定電流高,使傳統(tǒng)電器易造成過熱引起高溫而加速絕緣老化、電壓降過大而影響正常運(yùn)轉(zhuǎn)以及大的沖擊力縮短設(shè)備的使用壽命等各種弊端。定時(shí)插座給生活帶來許多的方便,減少因家中沒人,用電設(shè)備長時(shí)間工作帶來的隱患,定時(shí)插座可以通過人為設(shè)置
11、好定時(shí)時(shí)間,定時(shí)時(shí)間一到,定時(shí)插座會自動(dòng)切斷電源,從根本上保護(hù)了用電電器,更節(jié)約了能源。定時(shí)插座是更加貼近實(shí)用、易用和人性化的智能家居概念,真正體現(xiàn)智能家居的價(jià)值,這也是現(xiàn)代科技價(jià)值的核心所在。定時(shí)插座在國內(nèi)外已經(jīng)成為生活中的一部分,智能插座還處于剛剛發(fā)展的階段,然而現(xiàn)在市場上銷售的定時(shí)插座絕大多數(shù)只具備簡單的定時(shí)功能,不具備檢測白天和黑夜以及溫度過高自動(dòng)保護(hù)等功能,本設(shè)計(jì)本著這一思想,在定時(shí)插座具有單一定時(shí)功能的基礎(chǔ)上,又利用光敏電阻和溫度控制,能夠自動(dòng)檢測白天和黑夜,采用光敏電阻,對于道路上的路燈控制起到了非常重要的作用,其次當(dāng)溫度過高時(shí),定時(shí)插座會自動(dòng)斷電,安全系數(shù)更高,從而使用電設(shè)備更
12、加合理的得到充分的保護(hù),更加節(jié)能。2定時(shí)插座系統(tǒng)設(shè)計(jì)本文設(shè)計(jì)一個(gè)基于STC89C52單片機(jī)控制的定時(shí)插座,設(shè)計(jì)要求:實(shí)現(xiàn)24小時(shí)之內(nèi)任意時(shí)間段的定時(shí),完成定時(shí)時(shí)間后,能自動(dòng)切斷電源,發(fā)出“嘀”的報(bào)警聲,利用了光敏電阻器件和溫度控制,可以用來檢測白天和黑夜,隨意選擇兩種模式之間的控制,溫度過高自動(dòng)保護(hù)等,從而更加方便和節(jié)能。.設(shè)計(jì)方案的選擇對定時(shí)插座的研究與設(shè)計(jì),具有很多的優(yōu)越性?;趩纹瑱C(jī)控制的定時(shí)插座,再加上光敏和溫度器件,電路設(shè)計(jì)簡單,功能更加強(qiáng)大,時(shí)間控制精確度更高。采用STC89C52單片機(jī),選擇LCD1602液晶顯示時(shí)間、溫度及光照強(qiáng)度以及插座的工作狀態(tài),選擇獨(dú)立按鍵,方便的實(shí)現(xiàn)對定
13、時(shí)時(shí)間和光照設(shè)定的調(diào)節(jié),選擇SONGLSRD-05VDC-SL-C繼電器,在電路中起著自動(dòng)調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等作用,實(shí)現(xiàn)小電壓控制大電壓的目的,使用光敏電阻,可以檢測白天和黑夜,光敏電阻檢測到當(dāng)前環(huán)境的狀態(tài),反饋到單片機(jī)來控制繼電器的閉合與斷開。使用DS18B20溫度計(jì),可以提高定時(shí)插座的安全指標(biāo),防止出現(xiàn)溫度過高或者火災(zāi)等危險(xiǎn),采用DS1302時(shí)鐘芯片,更能準(zhǔn)確的實(shí)現(xiàn)對時(shí)間的定時(shí),采用5v蜂鳴器實(shí)現(xiàn)插座工作狀態(tài)的提醒。系統(tǒng)的設(shè)計(jì)框圖如圖2-1所示。獨(dú)立按鍵設(shè)置STC89C52RC 單片機(jī)DS1302定時(shí)電路模塊1602液晶顯示報(bào)警電路光敏控制電路繼電器模塊DS18B20溫度控制電路模塊
14、電源插座12V直流電源三端穩(wěn)壓5V電源220V交流電源圖2-1系統(tǒng)設(shè)計(jì)框圖.定時(shí)插座的工作過程本設(shè)計(jì)是利用STC89C52RC單片機(jī)來實(shí)現(xiàn),通過按鍵key1來選擇控制模式,系統(tǒng)默認(rèn)為時(shí)間模式,當(dāng)key1按下時(shí),系統(tǒng)選擇光強(qiáng)度模式。當(dāng)選擇時(shí)間模式時(shí),當(dāng)按下key2時(shí),可進(jìn)行時(shí)間定時(shí)的時(shí)間段設(shè)置,再按下key3時(shí),可進(jìn)行時(shí)間調(diào)整的小時(shí)設(shè)計(jì),再按下key3時(shí),可進(jìn)行時(shí)間調(diào)整的分鐘設(shè)計(jì),key4、key5是用來對時(shí)間的加減設(shè)定,把時(shí)間設(shè)定好之后,再按下key2鍵則恢復(fù)正常的時(shí)間和設(shè)定定時(shí)時(shí)間。當(dāng)選擇光強(qiáng)度模式時(shí),系統(tǒng)可隨光強(qiáng)度的強(qiáng)度進(jìn)行變化,系統(tǒng)設(shè)置的光強(qiáng)度閾值為30,當(dāng)光強(qiáng)度低于30時(shí),則用電設(shè)備不
15、工作。此系統(tǒng)也可以重新設(shè)定光強(qiáng)度閾值,按下key1鍵,按下key2鍵,再按key3鍵,用key4、key5對光強(qiáng)度重新設(shè)定閾值,把閾值設(shè)定好之后,再按下key2鍵則恢復(fù)正常的時(shí)間和光強(qiáng)度閾值。1602液晶顯示定時(shí)時(shí)間和閾值,定時(shí)時(shí)間到,驅(qū)動(dòng)繼電器斷開插座,達(dá)到切斷的目的,同時(shí)液晶顯示OFF,指示燈熄滅,蜂鳴器發(fā)出“嘀”的短暫報(bào)警聲。3定時(shí)插座的硬件電路設(shè)計(jì)定時(shí)插座的核心器件是STC89C52單片機(jī),硬件電路包括單片機(jī)最小系統(tǒng)電路、電源穩(wěn)壓電路、1602液晶顯示電路、獨(dú)立式按鍵電路、溫度控制電路、光敏電阻電路、繼電器電路以及報(bào)警電路,選擇各部分電路來搭建一個(gè)完整的電路。.主控制器STC89C52
16、RCSTC89C52RC具有8k字節(jié)的程序存儲器,通過向其寫入語言執(zhí)行相應(yīng)的功能。單片機(jī)的18和19引腳外接12M的晶振,構(gòu)成時(shí)鐘電路,機(jī)器周期為1us,C1和C2兩個(gè)瓷片電容對振蕩頻率起微調(diào)的作用,EA端為高電平(Vcc端),CPU則執(zhí)行內(nèi)部程序儲存器中的指令。單片機(jī)的9腳接復(fù)位電路,通過硬件復(fù)位,防止程序運(yùn)行出錯(cuò)或者操作失誤使系統(tǒng)處于死鎖狀態(tài),由電源電路、時(shí)鐘電路和復(fù)位電路構(gòu)成了單片機(jī)的最小系統(tǒng)。單片機(jī)最小系統(tǒng)原理圖如圖3-1所示。圖3-1單片機(jī)最小系統(tǒng)原理圖.定時(shí)插座的電源電路電源是一個(gè)系統(tǒng)正常工作的基礎(chǔ),為系統(tǒng)的正常運(yùn)行提供可靠的能源保證,因此電源模塊的設(shè)計(jì)至關(guān)重要。本設(shè)計(jì)采用LM29
17、401穩(wěn)壓芯片,LM2940是一款三端低壓型穩(wěn)壓器,最大輸出電流為1A,最大輸入電壓26V,能夠輸出5V電壓以驅(qū)動(dòng)單片機(jī)及系統(tǒng)的正常工作,其電路原理圖如圖3-2所示。圖3-2電源電路.DS1302時(shí)鐘電路本設(shè)計(jì)采用DS1302時(shí)鐘芯片2實(shí)現(xiàn)計(jì)時(shí)。DS1302芯片是一款高性能時(shí)鐘芯片,可自動(dòng)對時(shí)間進(jìn)行計(jì)數(shù),而且精度高,工作電壓在2.5V5.5V,采用這種專用時(shí)鐘芯片可以更精確地實(shí)現(xiàn)定時(shí)插座的定時(shí)目的,定時(shí)準(zhǔn)確又不占用太多系統(tǒng)資源。系統(tǒng)采取DS1302作為計(jì)時(shí)器,從而實(shí)現(xiàn)定時(shí)插座能在24小時(shí)內(nèi)實(shí)現(xiàn)任意時(shí)間的可變定時(shí)。這樣可以使得定時(shí)準(zhǔn)確,方便,節(jié)約系統(tǒng)資源。X1和X2是振蕩源,外接32.768KH
18、z晶振,VCC1接干電池,作為后備電源。單片機(jī)P2口的高3位分別接時(shí)鐘芯片的SCK(時(shí)鐘輸入端),IO(數(shù)據(jù)輸入輸出信號)和RST(復(fù)位/片選信號)通過把RST輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送,其電路原理圖如圖3-3所示。圖3-3DS1302時(shí)鐘電路.DS18B20測溫電路DS18B204是一款先進(jìn)的單總線數(shù)據(jù)通信的數(shù)字測溫器件,工作電壓范圍在3.0V5.5V,可實(shí)現(xiàn)檢測溫度在-55°C+125°C范圍內(nèi),具有線路簡單,體積小的特點(diǎn)。單片機(jī)的P1.6口送入DS18B20的DQ(單數(shù)據(jù)總線),其電路原理圖如圖3-4所示。圖3-4DS18B20測溫電路.光強(qiáng)檢測電路光敏電阻
19、5又稱光導(dǎo)管,通常制成薄片結(jié)構(gòu),以便吸收更多的光能,主要特性與參數(shù)包括光電流、亮電阻,暗電流、暗電阻,靈敏度,光譜響應(yīng),光照特性,伏安特性曲線,溫度系數(shù),額定功率。本設(shè)計(jì)采用的是光敏電阻,不同的光強(qiáng)對應(yīng)著不同的電壓,把它的電壓接到AD芯片(PCF8591)【5】上,再配合計(jì)算程序,就可以測出光強(qiáng)。當(dāng)外界光照低于設(shè)定的光照時(shí),則插座停止工作。PCF8591是一款逐次逼近A/D轉(zhuǎn)換器,具有4個(gè)模擬輸入、1個(gè)模擬輸出和1個(gè)串行I²C總線接口,采樣頻率取決于I2C總線傳輸速率,本設(shè)計(jì)選取AIN0和AIN1通道,單片機(jī)P2.4和P2.3分別接芯片的SCL(I2C時(shí)鐘線)和SDA(I2C數(shù)據(jù)線)
20、,模擬量AIN0和AIN1經(jīng)采樣保持器,經(jīng)過逐次逼近A/D轉(zhuǎn)換,輸出數(shù)字信號,其電路原理圖如圖3-5所示。圖3-5光強(qiáng)檢測電路.LCD1602顯示電路本設(shè)計(jì)采用的是LCD16026字符型液晶顯示器。LCD液晶顯示器是一種低功耗的顯示器件,它不僅省電,而且能夠顯示大量的信息,LCD1602液晶可同時(shí)顯示32個(gè)字符,內(nèi)部含有的字符發(fā)生存儲器里面存儲160個(gè)不同的點(diǎn)陣字符圖形,單片機(jī)P2.0接1602的第4腳RS(寄存器選擇)高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。P2.1接第5腳:RW(讀寫信號線)高電平1時(shí)進(jìn)行讀操作,低電平0時(shí)進(jìn)行寫操作。P2.2接第6腳:EN(使能端)。P0口控制
21、1602液晶D0-D7的數(shù)據(jù)端,1602液晶的第3腳接1K的滑動(dòng)變阻器,可以調(diào)節(jié)亮度,電路原理圖如圖3-6所示。 圖3-6LCD1602顯示電路.報(bào)警電路蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,本設(shè)計(jì)采用5V蜂鳴器作為報(bào)警設(shè)備,由單片機(jī)的P1.5口經(jīng)三極管放大電流后控制蜂鳴器發(fā)出聲音,當(dāng)定時(shí)時(shí)間到或者光照小于閾值時(shí),蜂鳴器發(fā)出短暫警報(bào),告知插座已停止工作,其電路原理圖如圖3-7所示。圖3-7報(bào)警電路.繼電器電路繼電器是一種電子控制器件,它是用較小的電流去控制較大電流的一種“自動(dòng)開關(guān)”。故在電路中起著自動(dòng)調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等作用,實(shí)現(xiàn)小電壓控制大電壓的目的。本設(shè)計(jì)采用的是SONGLE SRD-
22、05VDC-SL-C7繼電器,主要是用于控制插座的開關(guān)狀態(tài),通過單片機(jī)P1.7輸出信號控制繼電器的工作已否從而達(dá)到控制插座開關(guān)的目的。為了防止倒流,電路中加入了光電耦合器4N258,4N25光耦是一種發(fā)光二極管與光電晶體管面對面得封裝的單回路、內(nèi)光路光電耦合器,開關(guān)的通斷狀態(tài)用一個(gè)紅色LED燈顯示插座的開關(guān)狀態(tài),當(dāng)紅燈亮?xí)r,插座處于工作狀態(tài),液晶上顯示ON,反之則不工作。其電路原理圖如圖3-8所示。圖3-8繼電器電路.總體硬件電路及其工作原理整個(gè)定時(shí)插座系統(tǒng)由9V電源通過LM2940穩(wěn)壓模塊輸出5V電源供電,把插座的火線切斷,將其兩端接在線柱上,外接一個(gè)5V直流電機(jī)來表示插座的工作狀態(tài)。系統(tǒng)可
23、通過選擇key1鍵選擇工作模式,系統(tǒng)默認(rèn)是時(shí)間模式,通過key2、key3、key4、key5四個(gè)獨(dú)立式按鍵設(shè)置24小時(shí)內(nèi)的任意時(shí)間內(nèi)的定時(shí),任意時(shí)間定時(shí)可以讓定時(shí)插座在未設(shè)置的時(shí)間內(nèi)停止,而設(shè)定的定時(shí)時(shí)間內(nèi)正常工作,當(dāng)定時(shí)時(shí)間到達(dá)之后,電機(jī)停止運(yùn)行,紅色指示燈熄滅,與此同時(shí)蜂鳴器發(fā)出報(bào)警聲,液晶屏上顯示OFF,則插座停止工作。當(dāng)系統(tǒng)選擇光模式時(shí),通過key2、key3、key4、key5四個(gè)獨(dú)立式按鍵設(shè)置0100之內(nèi)光照強(qiáng)度的閾值,當(dāng)光照低于所定閾值時(shí),電機(jī)停止運(yùn)行,紅色指示燈熄滅,蜂鳴器發(fā)出報(bào)警聲,液晶屏上顯示OFF,則插座停止工作。電動(dòng)機(jī)的運(yùn)行速度會隨著光照強(qiáng)度的變化而變化,光照越強(qiáng),運(yùn)
24、行速度越快,反之。系統(tǒng)的整體電路如附錄2的電路原理圖所示,單片機(jī)由5V電源輸入,開機(jī)時(shí)各模塊分別初始化,開始工作,插座的工作與否由繼電器控制。單片機(jī)從DS13029模塊中讀取計(jì)時(shí)參數(shù),在LCD1602液晶上顯示,開始時(shí)繼電器電路不工作,紅色指示燈不亮,蜂鳴器也不響。當(dāng)單片機(jī)檢測到獨(dú)立按鍵設(shè)定定時(shí)時(shí)間后,單片機(jī)發(fā)出開啟信號讓繼電器電路開始工作,同時(shí)紅色指示燈亮,電動(dòng)機(jī)開始運(yùn)行,等定時(shí)時(shí)間到達(dá)后,單片機(jī)發(fā)出一個(gè)關(guān)閉信號讓繼電器停止工作,紅色指示燈熄滅,同時(shí)蜂鳴器發(fā)出短暫“嘀”的一聲,電動(dòng)機(jī)停止運(yùn)行。當(dāng)獨(dú)立按鍵選擇光模式控制時(shí),單片機(jī)立刻發(fā)出開啟信號給繼電器電路,讓繼電器工作,指示燈亮,電動(dòng)機(jī)開始運(yùn)
25、行,當(dāng)光照小于設(shè)定的光照閾值時(shí),單片機(jī)發(fā)出關(guān)閉信號給繼電器,關(guān)閉繼電器,從而達(dá)到關(guān)閉插座的目的。整體電路的實(shí)物如圖3-9所示。圖3-9整體電路實(shí)物 4軟件設(shè)計(jì)本系統(tǒng)采用C語言進(jìn)行編程,采用模塊化結(jié)構(gòu)設(shè)計(jì),用Keil10軟件進(jìn)行編譯,STCISP軟件進(jìn)行下載。軟件設(shè)計(jì)部分包括1602液晶顯示程序、DS1302定時(shí)程序、A/D轉(zhuǎn)換程序,按鍵處理程序、蜂鳴器報(bào)警程序。圖4-1為主程序的流程圖。開始系統(tǒng)初始化模式選擇定時(shí)模式光模式執(zhí)行定時(shí)程序YN是否小于光照閾值是否到達(dá)定時(shí)時(shí)間NYY報(bào)警停止圖4-1主程序的流程圖 主程序#include<reg52.h> unsigned int patt
26、ern=1; /模式指針unsigned char mode=1;void main(void)Lcd_Init(); /初始化液晶 ds18b20_init(); /初始化ds18b20read_rtc(); /讀取時(shí)間while(1) /進(jìn)入大循環(huán)switch(pattern) /判斷處于那種模式 case 1: /時(shí)間控制插座模式read_rtc(); /讀取時(shí)間 time_display(); /在液晶上顯示當(dāng)前時(shí)間temperature_display(); /溫度測量及顯示time_control(); /根據(jù)設(shè)定時(shí)間來控制插座的開關(guān) 并顯示到液晶上設(shè)定的時(shí)間段 和當(dāng)前插座的狀態(tài)
27、if(key_scan(1) /檢測第一個(gè)按鍵是否按下pattern=2; /若第一個(gè)按鍵按下則切換到光強(qiáng)控制模式 Write_Com(0x01); /液晶清屏.DS1302計(jì)時(shí)程序的編寫DS130211串行時(shí)鐘芯片的主要組成部分:移位寄存器控制邏輯、振蕩器、實(shí)時(shí)時(shí)鐘以及RAM。為了初始化任何的數(shù)據(jù)傳送,把RST置為高電平,在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。DS1302的讀寫時(shí)序如圖4-2所示。圖4-2DS1302的讀
28、寫時(shí)序圖讀寫程序如下:/*對1302某一確定地址的寫操作*/static void write_ds1302(unsigned char add,unsigned char dat)rst=0;_nop_();sck=0;_nop_();rst=1;_nop_();write_ds1302_byte(add);write_ds1302_byte(dat);rst=0;_nop_();io=1;sck=1;/*對1302某一固定地址的讀操作*/static unsigned char read_ds1302(unsigned char add)unsigned char i,value;rst=
29、0;_nop_();sck=0;_nop_();rst=1;_nop_();write_ds1302_byte(add);.A/D轉(zhuǎn)換程序光敏電阻采來的模擬量經(jīng)PCF859112逐次逼近A/D轉(zhuǎn)換之后輸入到單片機(jī)內(nèi)部,進(jìn)行數(shù)字量輸出,程序如下:sbit SCL=P24; sbit SDA=P23; #define AddWr 0x90 /寫數(shù)據(jù)地址#define AddRd 0x91 /讀數(shù)據(jù)地址#define adCon 0x40 /AD控制字節(jié)unsigned char light_uth=30;/*IIC通信協(xié)議的幾個(gè)子函數(shù)*/static void delay(unsigned int
30、 cnt)while(-cnt);static unsigned char recive(void)unsigned char i=0; unsigned char temp=0;SDA_SET;/必須設(shè)置 for(i=0; i<8; i+) SCL_CLR;/拉低允許數(shù)據(jù)改變 delay(1); SCL_SET;/拉高保持?jǐn)?shù)據(jù),等待讀走 delay(2); if(SDA) temp|=0x01; else temp&=0xfe; if(i<7) temp<<=1;/最低位發(fā)送完成不能移位,否則出錯(cuò) SCL_CLR; return temp;.DS18B20程序
31、初始化由于采用單總線數(shù)據(jù)傳輸方式,DS18B2013的數(shù)據(jù)I/O均由同一條線完成,因此,對讀寫的操作時(shí)序要求嚴(yán)格。初始化如圖4-3所示。圖4-3初始化時(shí)序圖寫時(shí)序包括寫0時(shí)序和寫1時(shí)序。所有寫時(shí)序都至少需要60微秒的時(shí)間,且在兩次寫時(shí)序之間至少需要1微秒的恢復(fù)時(shí)間,兩種寫時(shí)序都起始于主機(jī)拉低總線時(shí)。寫“0”時(shí)序:主機(jī)輸出低電平,然后延時(shí)60微秒,釋放總線;寫“1”時(shí)序:主機(jī)輸出低電平,延時(shí)至少1微秒,然后釋放總線。讀時(shí)序同樣包括讀“0”時(shí)序和讀“1”時(shí)序。溫度傳感器在主機(jī)發(fā)出讀時(shí)序時(shí),才能向主機(jī)傳輸數(shù)據(jù),故在主機(jī)發(fā)出讀指令后,必須立即產(chǎn)生讀時(shí)序,以便能傳輸數(shù)據(jù)。所有讀時(shí)序都至少需要60微秒的時(shí)
32、間,且在兩次讀時(shí)序之間至少需要1微秒的恢復(fù)時(shí)間,兩種讀時(shí)序也都起始于主機(jī)拉低總線時(shí)。圖4-4DS18B20讀/寫時(shí)序圖程序如下:void ds18b20_init(void)/初始化unsigned char n;DQ=1;delay(8);DQ=0;delay(60);DQ=1;delay(8);n=DQ; delay(4);unsigned char readtemprature(void) /讀取當(dāng)前溫度值unsigned int a,b;ds18b20_init(); /初始化write_byte(0xcc); /跳過ROMwrite_byte(0x44); /啟動(dòng)溫度測量delay(
33、300); /等待檢測完成ds18b20_init(); /初始化write_byte(0xcc); /跳過ROMwrite_byte(0xbe); /讀取溫度a=read_byte(); /讀第0個(gè)寄存器寫讀取溫度指令后可以連續(xù)(自動(dòng)按照順序)讀取0-8九個(gè)寄存器 18B20共九個(gè)寄存器 第0個(gè)和第1個(gè)是溫度的高位和低位 所以可以讀兩個(gè)就是其溫度值b=read_byte(); /讀第1個(gè)寄存器b<<=4; /忽略小數(shù)位b+=(a&0xf0)>>4; /兩個(gè)寄存器的整合return b; /返回溫度值.1602液晶顯示程序1602液晶主要是顯示從DS130214
34、讀取的時(shí)鐘數(shù)值和經(jīng)A/D轉(zhuǎn)換后的光照值,同時(shí)當(dāng)檢測到按鍵有鍵按下時(shí),顯示相應(yīng)的設(shè)置等?;静僮鲿r(shí)序:讀狀態(tài):輸入:RS=L,RW=H,E=H 輸出:DOD7=狀態(tài)字寫狀態(tài):輸入:RS=L,RW=L,D0D7=指令碼,E=高脈沖 輸出:無讀數(shù)據(jù):輸入:RS=H,RW=H,E=H 輸出:DOD7=數(shù)據(jù)寫數(shù)據(jù):輸入:RS=H,RW=L,D0D7=數(shù)據(jù),E=高脈沖 輸出:無圖4-4為LCD1602的具體讀寫時(shí)序。 讀操作時(shí)序?qū)懖僮鲿r(shí)序圖4-4LCD1602的具體讀寫時(shí)序 程序初始化如下:include "lcd_1602.h"sbit lcden=P22;sbit lcdrs=P2
35、0;sbit lcdrw=P21;void Write_Date(unsigned char date) /液晶寫數(shù)據(jù) lcdrs=1; P0=date; Delay_ms(5); lcden=1; Delay_ms(5); lcden=0;void Lcd_Init(void) /液晶初始化lcden=0;lcdrw=0;Write_Com(0x38); /8位數(shù)據(jù)接口 兩行顯示W(wǎng)rite_Com(0x0c); /開顯示,關(guān)光標(biāo)Write_Com(0x06); /讀,寫操作后AC自動(dòng)加1Write_Com(0x01); /清屏5系統(tǒng)制作及調(diào)試.硬件制作本設(shè)計(jì)利用Protell9915軟件將各
36、個(gè)模塊電路原理圖畫好,利用相同的網(wǎng)絡(luò)編號將單片機(jī)最小系統(tǒng)、液晶電路、繼電器外圍電路、溫度傳感器電路,A/D轉(zhuǎn)換電路,時(shí)鐘電路及鍵盤電路與單片機(jī)連接起來,然后對原理圖進(jìn)行仿真,仿真無誤后生成網(wǎng)絡(luò)表后裝載到PCB環(huán)境中生成需要的PCB,然后手動(dòng)布線,完成最終的PCB設(shè)計(jì)。PCB圖如圖5-1所示。圖5-1PCB 為了確保電路圖的正確性,首先在萬用板上焊接好各部分電路,并接上插座后對其進(jìn)行驗(yàn)證,將各部分電路測試無誤后,證明本電路能正常工作,然后打印已繪制好的PCB、轉(zhuǎn)印到銅板上、用雙氧水稀釋濃鹽酸腐蝕、鉆孔,按照元器件的形狀焊接到板子上,既完成了定時(shí)插座硬件電路板的設(shè)計(jì)。.系統(tǒng)調(diào)試用數(shù)字萬用表檢測焊好
37、的電路板,檢查電路板、元器件之間是否有短路的地方,電路板檢查完后,即可進(jìn)入軟件編程的調(diào)試。利用C語言進(jìn)行編程,Keil軟件編譯,STCISP軟件進(jìn)行下載。由于設(shè)計(jì)用到的模塊較多,采取程序模塊化的方法來編寫程序,將分模塊的程序?qū)懞弥笙仍诎迳暇幾g仿真,將各模塊測試好之后,在編寫主程序,在主程序中分別調(diào)用各個(gè)模塊,從而實(shí)現(xiàn)所要的功能。.設(shè)計(jì)結(jié)果 本文所設(shè)計(jì)的定時(shí)插座已經(jīng)可以實(shí)現(xiàn)定時(shí)模式控制和光照模式控制兩種模式的切換。該定時(shí)插座可以控制一路220V/10A的插座,可以設(shè)置任意一種模式的控制,當(dāng)定時(shí)插座處于工作狀態(tài)時(shí),紅色指示燈亮,定時(shí)插座不工作時(shí)指示燈熄滅。當(dāng)定時(shí)時(shí)間結(jié)束或光照低于光強(qiáng)閾值時(shí),蜂鳴
38、器發(fā)出短暫的“嘀”的一聲,指示燈熄滅,用來提示插座停止工作。.設(shè)計(jì)中存在的不足及其改進(jìn)本次設(shè)計(jì)的定時(shí)插座雖然可以實(shí)現(xiàn)定時(shí)控制一路插座的功能,現(xiàn)實(shí)生活中,隨著人們的生活水平不斷的提高,家電等用電器具越來越多,單一的一路控制明顯不能滿足要求。因而,如果在設(shè)計(jì)時(shí)多加入幾路的插座控制,而且各路控制互不干擾,用戶只需要將要定時(shí)控制的用電器具都插在定時(shí)插座上,通過各自的定時(shí)設(shè)置,就可以使各電器按照人們的習(xí)慣有規(guī)律地工作,很大程度上方便人們的日常生活。如果再加上紅外裝置,甚至是自動(dòng)語音提示功能,使人們能在其他地方對插座進(jìn)行控制,會讓定時(shí)插座變得更加人性化,實(shí)用性也更高。參考文獻(xiàn)1胡偉,季曉衡單片機(jī)C語言設(shè)計(jì)
39、及應(yīng)用實(shí)例.北京:人民郵電出版社,20032李華,MCS-51系列單片機(jī)使用接口技術(shù). 北京:北京航空航天大學(xué)出版社,20013李正軍.計(jì)算機(jī)測控系統(tǒng)設(shè)計(jì)及應(yīng)用.北京:機(jī)械工業(yè)出版社,2004 4何立民. MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)系統(tǒng)配置與接口技術(shù).北京:北京航空航天大學(xué) 出版社,19905張洪潤.單片機(jī)應(yīng)用技術(shù)教程.北京:清華大學(xué)出版社,19976夏繼強(qiáng). 單片機(jī)實(shí)驗(yàn)與實(shí)踐教程. 北京:北京航空航天大學(xué)出版社,20017徐惠民,安德寧單片微型計(jì)算機(jī)原理接口與應(yīng)用北京:北京郵電大學(xué)出版社,20008李葉紫. MCS-51單片機(jī)應(yīng)用教程.北京:清華大學(xué)出版社,20049曹建樹,夏云生,
40、曾林春.51單片機(jī)實(shí)用教程.中國石化出版,2008 10 江思敏,姚鵬翼,胡榮.Protell電路設(shè)計(jì)教程.清華大學(xué)出版社,200211 張偉Protell99se基礎(chǔ)教程.北京:人民郵電出版社,201012 童詩白模擬電子技術(shù)基礎(chǔ)(第四版).高等教育出版社,200613 譚浩強(qiáng)C程序設(shè)計(jì)(第三版).清華大學(xué)出版社,200514 郭天祥51單片機(jī)C語言教程.電子工業(yè)出版社,200915 邊海龍,孫永奎. 單片機(jī)開發(fā)與典型工程項(xiàng)目實(shí)例詳解.電子工業(yè)出版社,2008致謝本畢業(yè)設(shè)計(jì)是在孫老師悉心的關(guān)懷與指導(dǎo)下,使我的畢業(yè)設(shè)計(jì)能夠順利完成,導(dǎo)師淵博的學(xué)識、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、豐富的實(shí)踐經(jīng)驗(yàn)和高尚的人格都深
41、深的影響著我,并將永遠(yuǎn)激勵(lì)我在以后的工作學(xué)習(xí)中不斷奮斗。在此,向?qū)O老師致以我最真摯的感謝!在設(shè)計(jì)過程中,感覺到了自己知識的匱乏,通過自己的學(xué)習(xí)和探索,以及老師的細(xì)心指導(dǎo),將困難一點(diǎn)點(diǎn)的克服,完成了最終的畢業(yè)設(shè)計(jì),我相信這次設(shè)計(jì)的經(jīng)驗(yàn)將是我步入社會的最寶貴經(jīng)驗(yàn)。通過這次設(shè)計(jì),不僅是對我們所學(xué)知識的一個(gè)匯總,同時(shí)也是考驗(yàn)我們學(xué)習(xí)能力和動(dòng)手能力的一個(gè)平臺,更培養(yǎng)了我們一種遇到困難不放棄的態(tài)度,堅(jiān)持不懈的拼搏精神,這些在我以后的工作和生活中都是一筆寶貴的財(cái)富。最后感謝四年來教導(dǎo)過我的老師及一起學(xué)習(xí)生活的同學(xué)們,謝謝你們四年來的關(guān)照與幫助,非常高興能與你們一起走過大學(xué)的繽紛時(shí)代,這將會是我一生中最珍貴、
42、最美好的回憶!附錄1主程序#include <REG52.H>#include "lcd_1602.h"#include "PCF8591.h"#include "DS1302.h" #include "ds18b20.h"#include "key.h"unsigned int pattern=1; /模式指針unsigned char mode=1;void main(void)Lcd_Init(); /初始化液晶 ds18b20_init(); /初始化ds18b20/set_
43、rtc(); /設(shè)定時(shí)間 read_rtc(); /讀取時(shí)間while(1) /進(jìn)入大循環(huán)switch(pattern) /判斷處于那種模式 case 1: /時(shí)間控制插座模式read_rtc(); /讀取時(shí)間 time_display(); /在液晶上顯示當(dāng)前時(shí)間temperature_display(); /溫度測量及顯示time_control(); /根據(jù)設(shè)定時(shí)間來控制插座的開關(guān) 并顯示到液晶上設(shè)定的時(shí)間段 和當(dāng)前插座的狀態(tài) if(key_scan(1) /檢測第一個(gè)按鍵是否按下pattern=2; /若第一個(gè)按鍵按下則切換到光強(qiáng)控制模式 Write_Com(0x01); /液晶清屏i
44、f(key_scan(2) /檢測第二個(gè)鍵是否按下 pattern=3; /若按下則切換到設(shè)置插座工作時(shí)間段的模式 Write_Com(0x01); /清屏break;case 2: /光照強(qiáng)度控制插座的模式 light_display(); /測量光照強(qiáng)度并顯示(0-100)temperature_display(); /溫度測量并顯示relays_control(); /根據(jù)設(shè)定的閾值來控制 顯示當(dāng)前的閾值和當(dāng)前插座工作狀態(tài)if(key_scan(1) /檢測第一個(gè)按鍵是否按下pattern=1; /第一個(gè)按鍵按下則切換到時(shí)間控制插座的模式 Write_Com(0x01); /清屏if(k
45、ey_scan(2) /檢測第二個(gè)按鍵是否按下 pattern=4; /若第二個(gè)按鍵按下 則切換到調(diào)整光照閾值的模式Write_Com(0x01); /清屏break;case 3: /調(diào)整控制時(shí)間段的模式time_uth_adjust(); /調(diào)整控制的時(shí)間段并顯示在屏幕上if(key_scan(2) /檢測第二個(gè)按鍵是否按下pattern=1; /若按下則保存當(dāng)前調(diào)整好的時(shí)間段并切換到時(shí)間控制插座工作狀態(tài)的模式mode=0; /一個(gè)變量 用于標(biāo)記當(dāng)前正在調(diào)整的是哪個(gè)時(shí)間元素 跳出該模式時(shí)清零以保證下次調(diào)整時(shí)從第一個(gè)元素開始 Write_Com(0x01); /清屏break;液晶"
46、;lcd_1602.h#include "lcd_1602.h"sbit lcden=P22;sbit lcdrs=P20;sbit lcdrw=P21;static void Delay_ms(unsigned int z) unsigned int x,y; for(x=z;x>0;x-) for(y=110;y>0;y-);void Lcd_Init(void) /液晶初始化lcden=0;lcdrw=0;Write_Com(0x38); /8位數(shù)據(jù)接口 兩行顯示W(wǎng)rite_Com(0x0c); /開顯示,關(guān)光標(biāo)Write_Com(0x06); /讀,寫操
47、作后AC自動(dòng)加1Write_Com(0x01); /清屏A/D轉(zhuǎn)換程序 #include "PCF8591.h"sbit SCL=P24; sbit SDA=P23; sbit beep=P15; #define SCL_SET SCL=1#define SCL_CLR SCL=0#define SDA_SET SDA=1#define SDA_CLR SDA=0#define AddWr 0x90 /寫數(shù)據(jù)地址#define AddRd 0x91 /讀數(shù)據(jù)地址#define adCon 0x40 /AD控制字節(jié)unsigned char light_uth=30;unsi
48、gned char light_flag_old,light_flag_new; unsigned char i=0; unsigned char temp=0;temp=Data;/*AD測試光照強(qiáng)度并歸一化到0-100 顯示在液晶上*/void light_display(void)unsigned char light;light=256-read(4);light/=2.56;Write_Com(0x80);Write_Date('L');Write_Date('i');Write_Date('g');Write_Date('h');Write_Date('t');Write_Date(':');Write_Date(light/100+'0');Write_Date(light%100)/10+'0');Write_Date(light%10+'0');時(shí)鐘程序DS1302.h
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 雙方聘用合同三篇
- 培養(yǎng)業(yè)務(wù)敏銳度的策略計(jì)劃
- 特種車輛運(yùn)輸合同三篇
- 新年職場新風(fēng)格與工匠精神計(jì)劃
- 快樂團(tuán)隊(duì)幼兒園小班班級工作計(jì)劃
- 農(nóng)用地土壤環(huán)境質(zhì)量類別劃分技術(shù)指南(試行)(環(huán)辦土壤2017第97號)
- 自動(dòng)化設(shè)備技術(shù)合作協(xié)議書范文
- 家屬房改造出租協(xié)議書范文范本
- 新員工入職協(xié)議書范文最簡單三個(gè)步驟
- 質(zhì)量和密度單元說課
- 年會禮品選擇的調(diào)研分析
- BUNN 咖啡機(jī) 培訓(xùn)指南(Axiom-3 )
- 朝鮮戰(zhàn)爭完整版本
- 我國的宗教政策(共37張)
- 降低kV配電線路故障停運(yùn)率的有效措施
- 中藥材項(xiàng)目商業(yè)計(jì)劃書
- 醫(yī)療核心制度執(zhí)行情況自查表
- 藥學(xué)職業(yè)生涯人物訪談報(bào)告(6篇)
- 砌筑腳手架施工方案(有計(jì)算)
- 2023-2024學(xué)年浙江省山海聯(lián)盟協(xié)作學(xué)校八年級(上)期中數(shù)學(xué)試卷
- 《10以內(nèi)數(shù)的加減混合運(yùn)算》說課稿子
評論
0/150
提交評論