基于單片機控制的定時插座_第1頁
基于單片機控制的定時插座_第2頁
基于單片機控制的定時插座_第3頁
基于單片機控制的定時插座_第4頁
基于單片機控制的定時插座_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于單片機控制的定時插座摘要裝訂線本文設計了一款基于STC89C52RC單片機控制的光敏定時插座,它可以通過人為設定時間和光照強度的強弱,實現(xiàn)自動通電和斷電功能,從而達到節(jié)能的目的。硬件電路設計包括:單片機最小系統(tǒng)電路、電源穩(wěn)壓電路、1602液晶顯示電路、獨立式按鍵電路、溫度控制電路、光敏電阻電路、繼電器電路以及報警電路,設計原理主要利用DS1302時鐘芯片和PCF8591芯片經(jīng)A/D轉(zhuǎn)換后在1602液晶上顯示定時時間和光強大小,利用按鍵來選擇工作模式和設定定時時間以及設定光照的閾值,當定時時間結(jié)束或光照強度小于設定光照閾值時,通過繼電器的吸合作用來驅(qū)動插座的切斷,紅色發(fā)光二極管和蜂鳴器的狀態(tài)

2、來表示插座的工作狀態(tài)。軟件程序的設計包括:1602液晶顯示程序、DS1302定時程序、AD轉(zhuǎn)換程序,按鍵處理程序、蜂鳴器報警程序,在本文的最后對設計了硬件和軟件部分,并進行了調(diào)試和制作,基于單片機控制的定時插座系統(tǒng)具有電路簡單,可靠性高,定時準確等特點,基本滿足設計要求。關(guān)鍵詞:STC89C52;光敏;定時;插座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.定時插座發(fā)展趨勢12定時插座系統(tǒng)設計2.設計方案的選擇2.定時插座的工作過程23定時插座的硬件電路設計3.主控制器STC89C52RC4.定時插座的電源電路4.DS1302時鐘電路5.DS18B20測溫電路6.光強檢測電路6.LCD1602顯示電路7.報警電路8.繼電器電路8.總體硬件電路及其工作原理94軟件設計11.DS1302計時程序的編寫12.A/D轉(zhuǎn)換程序13.DS18B20程序初始化14.1602液晶顯示程

8、序165系統(tǒng)制作及調(diào)試18.硬件制作18.系統(tǒng)調(diào)試18.設計結(jié)果19.設計中存在的不足及其改進19參考文獻20致謝21附錄122附錄2261緒論.課題來源及意義隨著現(xiàn)代科學技術(shù)飛速發(fā)展,給電子產(chǎn)品市場帶來了巨大市場機會和挑戰(zhàn),同時人們對電子產(chǎn)品的需求也越來越高。目前市場上出售的插座功能還比較單一,并不完全具備定時開啟和關(guān)閉以及斷電保護功能,長期通電會使家用電器電路老化,降低了電器的使用壽命,還容易漏電引發(fā)火災,不能從根本上解決人們的需求。比如說長時間開著飲水機,這樣不僅浪費了能源,而且長時間飲用多次燒過的熱水會給身體帶來非常嚴重疾病,通過使用定時插座,當家里沒人時,可以關(guān)斷飲水機,家里有人時,

9、則讓飲水機工作,這樣不僅節(jié)約了能源,還可以保護飲水機的使用期限,也能讓人們喝上更健康的水。其次,我們現(xiàn)在使用的手機,照相機等電子產(chǎn)品,如果長時間的給電池充電,這不僅縮短了電池的使用壽命,還有可能引起火災,面對這樣的難題,利用定時插座,將插頭插在定時插座上,設定好定時時間,等電池充滿電后,定時插座會自動停止工作,從而保護了電池。鑒于上述問題,研究定時插座,有著非?,F(xiàn)實的意義,在無人監(jiān)視的情況下,可以自動切斷電源,這樣不僅節(jié)約了電能,還消除了火災隱患,使我們的生活更加智能化,因此,由單片機控制的定時插座控制系統(tǒng),可以用于家用電器設備中。高精度、多功能、小體積、低功耗、智能化,是現(xiàn)代定時插座發(fā)展的趨

10、勢。本文簡述了定時開關(guān)插座的硬件電路設計和軟件設計的方法,設計出了定時插座的制定方案,它可以自動對家中一些需要在特定時間對電器進行自動斷、通電控制,而不需要拔掉插頭,減少電器的待機損耗,解決生活中的煩惱。.定時插座發(fā)展趨勢單片機具有優(yōu)異的性能性價比,集成度高、體積小、可靠性高,控制功能強,低電壓、低功耗等特點,利用單片機技術(shù)來完善現(xiàn)有插座的功能,從根本上解決了傳統(tǒng)電器啟動的額定電流高,使傳統(tǒng)電器易造成過熱引起高溫而加速絕緣老化、電壓降過大而影響正常運轉(zhuǎn)以及大的沖擊力縮短設備的使用壽命等各種弊端。定時插座給生活帶來許多的方便,減少因家中沒人,用電設備長時間工作帶來的隱患,定時插座可以通過人為設置

11、好定時時間,定時時間一到,定時插座會自動切斷電源,從根本上保護了用電電器,更節(jié)約了能源。定時插座是更加貼近實用、易用和人性化的智能家居概念,真正體現(xiàn)智能家居的價值,這也是現(xiàn)代科技價值的核心所在。定時插座在國內(nèi)外已經(jīng)成為生活中的一部分,智能插座還處于剛剛發(fā)展的階段,然而現(xiàn)在市場上銷售的定時插座絕大多數(shù)只具備簡單的定時功能,不具備檢測白天和黑夜以及溫度過高自動保護等功能,本設計本著這一思想,在定時插座具有單一定時功能的基礎上,又利用光敏電阻和溫度控制,能夠自動檢測白天和黑夜,采用光敏電阻,對于道路上的路燈控制起到了非常重要的作用,其次當溫度過高時,定時插座會自動斷電,安全系數(shù)更高,從而使用電設備更

12、加合理的得到充分的保護,更加節(jié)能。2定時插座系統(tǒng)設計本文設計一個基于STC89C52單片機控制的定時插座,設計要求:實現(xiàn)24小時之內(nèi)任意時間段的定時,完成定時時間后,能自動切斷電源,發(fā)出“嘀”的報警聲,利用了光敏電阻器件和溫度控制,可以用來檢測白天和黑夜,隨意選擇兩種模式之間的控制,溫度過高自動保護等,從而更加方便和節(jié)能。.設計方案的選擇對定時插座的研究與設計,具有很多的優(yōu)越性?;趩纹瑱C控制的定時插座,再加上光敏和溫度器件,電路設計簡單,功能更加強大,時間控制精確度更高。采用STC89C52單片機,選擇LCD1602液晶顯示時間、溫度及光照強度以及插座的工作狀態(tài),選擇獨立按鍵,方便的實現(xiàn)對定

13、時時間和光照設定的調(diào)節(jié),選擇SONGLSRD-05VDC-SL-C繼電器,在電路中起著自動調(diào)節(jié)、安全保護、轉(zhuǎn)換電路等作用,實現(xiàn)小電壓控制大電壓的目的,使用光敏電阻,可以檢測白天和黑夜,光敏電阻檢測到當前環(huán)境的狀態(tài),反饋到單片機來控制繼電器的閉合與斷開。使用DS18B20溫度計,可以提高定時插座的安全指標,防止出現(xiàn)溫度過高或者火災等危險,采用DS1302時鐘芯片,更能準確的實現(xiàn)對時間的定時,采用5v蜂鳴器實現(xiàn)插座工作狀態(tài)的提醒。系統(tǒng)的設計框圖如圖2-1所示。獨立按鍵設置STC89C52RC 單片機DS1302定時電路模塊1602液晶顯示報警電路光敏控制電路繼電器模塊DS18B20溫度控制電路模塊

14、電源插座12V直流電源三端穩(wěn)壓5V電源220V交流電源圖2-1系統(tǒng)設計框圖.定時插座的工作過程本設計是利用STC89C52RC單片機來實現(xiàn),通過按鍵key1來選擇控制模式,系統(tǒng)默認為時間模式,當key1按下時,系統(tǒng)選擇光強度模式。當選擇時間模式時,當按下key2時,可進行時間定時的時間段設置,再按下key3時,可進行時間調(diào)整的小時設計,再按下key3時,可進行時間調(diào)整的分鐘設計,key4、key5是用來對時間的加減設定,把時間設定好之后,再按下key2鍵則恢復正常的時間和設定定時時間。當選擇光強度模式時,系統(tǒng)可隨光強度的強度進行變化,系統(tǒng)設置的光強度閾值為30,當光強度低于30時,則用電設備不

15、工作。此系統(tǒng)也可以重新設定光強度閾值,按下key1鍵,按下key2鍵,再按key3鍵,用key4、key5對光強度重新設定閾值,把閾值設定好之后,再按下key2鍵則恢復正常的時間和光強度閾值。1602液晶顯示定時時間和閾值,定時時間到,驅(qū)動繼電器斷開插座,達到切斷的目的,同時液晶顯示OFF,指示燈熄滅,蜂鳴器發(fā)出“嘀”的短暫報警聲。3定時插座的硬件電路設計定時插座的核心器件是STC89C52單片機,硬件電路包括單片機最小系統(tǒng)電路、電源穩(wěn)壓電路、1602液晶顯示電路、獨立式按鍵電路、溫度控制電路、光敏電阻電路、繼電器電路以及報警電路,選擇各部分電路來搭建一個完整的電路。.主控制器STC89C52

16、RCSTC89C52RC具有8k字節(jié)的程序存儲器,通過向其寫入語言執(zhí)行相應的功能。單片機的18和19引腳外接12M的晶振,構(gòu)成時鐘電路,機器周期為1us,C1和C2兩個瓷片電容對振蕩頻率起微調(diào)的作用,EA端為高電平(Vcc端),CPU則執(zhí)行內(nèi)部程序儲存器中的指令。單片機的9腳接復位電路,通過硬件復位,防止程序運行出錯或者操作失誤使系統(tǒng)處于死鎖狀態(tài),由電源電路、時鐘電路和復位電路構(gòu)成了單片機的最小系統(tǒng)。單片機最小系統(tǒng)原理圖如圖3-1所示。圖3-1單片機最小系統(tǒng)原理圖.定時插座的電源電路電源是一個系統(tǒng)正常工作的基礎,為系統(tǒng)的正常運行提供可靠的能源保證,因此電源模塊的設計至關(guān)重要。本設計采用LM29

17、401穩(wěn)壓芯片,LM2940是一款三端低壓型穩(wěn)壓器,最大輸出電流為1A,最大輸入電壓26V,能夠輸出5V電壓以驅(qū)動單片機及系統(tǒng)的正常工作,其電路原理圖如圖3-2所示。圖3-2電源電路.DS1302時鐘電路本設計采用DS1302時鐘芯片2實現(xiàn)計時。DS1302芯片是一款高性能時鐘芯片,可自動對時間進行計數(shù),而且精度高,工作電壓在2.5V5.5V,采用這種專用時鐘芯片可以更精確地實現(xiàn)定時插座的定時目的,定時準確又不占用太多系統(tǒng)資源。系統(tǒng)采取DS1302作為計時器,從而實現(xiàn)定時插座能在24小時內(nèi)實現(xiàn)任意時間的可變定時。這樣可以使得定時準確,方便,節(jié)約系統(tǒng)資源。X1和X2是振蕩源,外接32.768KH

18、z晶振,VCC1接干電池,作為后備電源。單片機P2口的高3位分別接時鐘芯片的SCK(時鐘輸入端),IO(數(shù)據(jù)輸入輸出信號)和RST(復位/片選信號)通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送,其電路原理圖如圖3-3所示。圖3-3DS1302時鐘電路.DS18B20測溫電路DS18B204是一款先進的單總線數(shù)據(jù)通信的數(shù)字測溫器件,工作電壓范圍在3.0V5.5V,可實現(xiàn)檢測溫度在-55°C+125°C范圍內(nèi),具有線路簡單,體積小的特點。單片機的P1.6口送入DS18B20的DQ(單數(shù)據(jù)總線),其電路原理圖如圖3-4所示。圖3-4DS18B20測溫電路.光強檢測電路光敏電阻

19、5又稱光導管,通常制成薄片結(jié)構(gòu),以便吸收更多的光能,主要特性與參數(shù)包括光電流、亮電阻,暗電流、暗電阻,靈敏度,光譜響應,光照特性,伏安特性曲線,溫度系數(shù),額定功率。本設計采用的是光敏電阻,不同的光強對應著不同的電壓,把它的電壓接到AD芯片(PCF8591)【5】上,再配合計算程序,就可以測出光強。當外界光照低于設定的光照時,則插座停止工作。PCF8591是一款逐次逼近A/D轉(zhuǎn)換器,具有4個模擬輸入、1個模擬輸出和1個串行I²C總線接口,采樣頻率取決于I2C總線傳輸速率,本設計選取AIN0和AIN1通道,單片機P2.4和P2.3分別接芯片的SCL(I2C時鐘線)和SDA(I2C數(shù)據(jù)線)

20、,模擬量AIN0和AIN1經(jīng)采樣保持器,經(jīng)過逐次逼近A/D轉(zhuǎn)換,輸出數(shù)字信號,其電路原理圖如圖3-5所示。圖3-5光強檢測電路.LCD1602顯示電路本設計采用的是LCD16026字符型液晶顯示器。LCD液晶顯示器是一種低功耗的顯示器件,它不僅省電,而且能夠顯示大量的信息,LCD1602液晶可同時顯示32個字符,內(nèi)部含有的字符發(fā)生存儲器里面存儲160個不同的點陣字符圖形,單片機P2.0接1602的第4腳RS(寄存器選擇)高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。P2.1接第5腳:RW(讀寫信號線)高電平1時進行讀操作,低電平0時進行寫操作。P2.2接第6腳:EN(使能端)。P0口控制

21、1602液晶D0-D7的數(shù)據(jù)端,1602液晶的第3腳接1K的滑動變阻器,可以調(diào)節(jié)亮度,電路原理圖如圖3-6所示。 圖3-6LCD1602顯示電路.報警電路蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,本設計采用5V蜂鳴器作為報警設備,由單片機的P1.5口經(jīng)三極管放大電流后控制蜂鳴器發(fā)出聲音,當定時時間到或者光照小于閾值時,蜂鳴器發(fā)出短暫警報,告知插座已停止工作,其電路原理圖如圖3-7所示。圖3-7報警電路.繼電器電路繼電器是一種電子控制器件,它是用較小的電流去控制較大電流的一種“自動開關(guān)”。故在電路中起著自動調(diào)節(jié)、安全保護、轉(zhuǎn)換電路等作用,實現(xiàn)小電壓控制大電壓的目的。本設計采用的是SONGLE SRD-

22、05VDC-SL-C7繼電器,主要是用于控制插座的開關(guān)狀態(tài),通過單片機P1.7輸出信號控制繼電器的工作已否從而達到控制插座開關(guān)的目的。為了防止倒流,電路中加入了光電耦合器4N258,4N25光耦是一種發(fā)光二極管與光電晶體管面對面得封裝的單回路、內(nèi)光路光電耦合器,開關(guān)的通斷狀態(tài)用一個紅色LED燈顯示插座的開關(guān)狀態(tài),當紅燈亮時,插座處于工作狀態(tài),液晶上顯示ON,反之則不工作。其電路原理圖如圖3-8所示。圖3-8繼電器電路.總體硬件電路及其工作原理整個定時插座系統(tǒng)由9V電源通過LM2940穩(wěn)壓模塊輸出5V電源供電,把插座的火線切斷,將其兩端接在線柱上,外接一個5V直流電機來表示插座的工作狀態(tài)。系統(tǒng)可

23、通過選擇key1鍵選擇工作模式,系統(tǒng)默認是時間模式,通過key2、key3、key4、key5四個獨立式按鍵設置24小時內(nèi)的任意時間內(nèi)的定時,任意時間定時可以讓定時插座在未設置的時間內(nèi)停止,而設定的定時時間內(nèi)正常工作,當定時時間到達之后,電機停止運行,紅色指示燈熄滅,與此同時蜂鳴器發(fā)出報警聲,液晶屏上顯示OFF,則插座停止工作。當系統(tǒng)選擇光模式時,通過key2、key3、key4、key5四個獨立式按鍵設置0100之內(nèi)光照強度的閾值,當光照低于所定閾值時,電機停止運行,紅色指示燈熄滅,蜂鳴器發(fā)出報警聲,液晶屏上顯示OFF,則插座停止工作。電動機的運行速度會隨著光照強度的變化而變化,光照越強,運

24、行速度越快,反之。系統(tǒng)的整體電路如附錄2的電路原理圖所示,單片機由5V電源輸入,開機時各模塊分別初始化,開始工作,插座的工作與否由繼電器控制。單片機從DS13029模塊中讀取計時參數(shù),在LCD1602液晶上顯示,開始時繼電器電路不工作,紅色指示燈不亮,蜂鳴器也不響。當單片機檢測到獨立按鍵設定定時時間后,單片機發(fā)出開啟信號讓繼電器電路開始工作,同時紅色指示燈亮,電動機開始運行,等定時時間到達后,單片機發(fā)出一個關(guān)閉信號讓繼電器停止工作,紅色指示燈熄滅,同時蜂鳴器發(fā)出短暫“嘀”的一聲,電動機停止運行。當獨立按鍵選擇光模式控制時,單片機立刻發(fā)出開啟信號給繼電器電路,讓繼電器工作,指示燈亮,電動機開始運

25、行,當光照小于設定的光照閾值時,單片機發(fā)出關(guān)閉信號給繼電器,關(guān)閉繼電器,從而達到關(guān)閉插座的目的。整體電路的實物如圖3-9所示。圖3-9整體電路實物 4軟件設計本系統(tǒng)采用C語言進行編程,采用模塊化結(jié)構(gòu)設計,用Keil10軟件進行編譯,STCISP軟件進行下載。軟件設計部分包括1602液晶顯示程序、DS1302定時程序、A/D轉(zhuǎn)換程序,按鍵處理程序、蜂鳴器報警程序。圖4-1為主程序的流程圖。開始系統(tǒng)初始化模式選擇定時模式光模式執(zhí)行定時程序YN是否小于光照閾值是否到達定時時間NYY報警停止圖4-1主程序的流程圖 主程序#include<reg52.h> unsigned int patt

26、ern=1; /模式指針unsigned char mode=1;void main(void)Lcd_Init(); /初始化液晶 ds18b20_init(); /初始化ds18b20read_rtc(); /讀取時間while(1) /進入大循環(huán)switch(pattern) /判斷處于那種模式 case 1: /時間控制插座模式read_rtc(); /讀取時間 time_display(); /在液晶上顯示當前時間temperature_display(); /溫度測量及顯示time_control(); /根據(jù)設定時間來控制插座的開關(guān) 并顯示到液晶上設定的時間段 和當前插座的狀態(tài)

27、if(key_scan(1) /檢測第一個按鍵是否按下pattern=2; /若第一個按鍵按下則切換到光強控制模式 Write_Com(0x01); /液晶清屏.DS1302計時程序的編寫DS130211串行時鐘芯片的主要組成部分:移位寄存器控制邏輯、振蕩器、實時時鐘以及RAM。為了初始化任何的數(shù)據(jù)傳送,把RST置為高電平,在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。DS1302的讀寫時序如圖4-2所示。圖4-2DS1302的讀

28、寫時序圖讀寫程序如下:/*對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)換之后輸入到單片機內(nèi)部,進行數(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é)議的幾個子函數(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;/必須設置 for(i=0; i<8; i+) SCL_CLR;/拉低允許數(shù)據(jù)改變 delay(1); SCL_SET;/拉高保持數(shù)據(jù),等待讀走 delay(2); if(SDA) temp|=0x01; else temp&=0xfe; if(i<7) temp<<=1;/最低位發(fā)送完成不能移位,否則出錯 SCL_CLR; return temp;.DS18B20程序

31、初始化由于采用單總線數(shù)據(jù)傳輸方式,DS18B2013的數(shù)據(jù)I/O均由同一條線完成,因此,對讀寫的操作時序要求嚴格。初始化如圖4-3所示。圖4-3初始化時序圖寫時序包括寫0時序和寫1時序。所有寫時序都至少需要60微秒的時間,且在兩次寫時序之間至少需要1微秒的恢復時間,兩種寫時序都起始于主機拉低總線時。寫“0”時序:主機輸出低電平,然后延時60微秒,釋放總線;寫“1”時序:主機輸出低電平,延時至少1微秒,然后釋放總線。讀時序同樣包括讀“0”時序和讀“1”時序。溫度傳感器在主機發(fā)出讀時序時,才能向主機傳輸數(shù)據(jù),故在主機發(fā)出讀指令后,必須立即產(chǎn)生讀時序,以便能傳輸數(shù)據(jù)。所有讀時序都至少需要60微秒的時

32、間,且在兩次讀時序之間至少需要1微秒的恢復時間,兩種讀時序也都起始于主機拉低總線時。圖4-4DS18B20讀/寫時序圖程序如下: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) /讀取當前溫度值unsigned int a,b;ds18b20_init(); /初始化write_byte(0xcc); /跳過ROMwrite_byte(0x44); /啟動溫度測量delay(

33、300); /等待檢測完成ds18b20_init(); /初始化write_byte(0xcc); /跳過ROMwrite_byte(0xbe); /讀取溫度a=read_byte(); /讀第0個寄存器寫讀取溫度指令后可以連續(xù)(自動按照順序)讀取0-8九個寄存器 18B20共九個寄存器 第0個和第1個是溫度的高位和低位 所以可以讀兩個就是其溫度值b=read_byte(); /讀第1個寄存器b<<=4; /忽略小數(shù)位b+=(a&0xf0)>>4; /兩個寄存器的整合return b; /返回溫度值.1602液晶顯示程序1602液晶主要是顯示從DS130214

34、讀取的時鐘數(shù)值和經(jīng)A/D轉(zhuǎn)換后的光照值,同時當檢測到按鍵有鍵按下時,顯示相應的設置等。基本操作時序:讀狀態(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的具體讀寫時序。 讀操作時序?qū)懖僮鲿r序圖4-4LCD1602的具體讀寫時序 程序初始化如下: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)光標Write_Com(0x06); /讀,寫操作后AC自動加1Write_Com(0x01); /清屏5系統(tǒng)制作及調(diào)試.硬件制作本設計利用Protell9915軟件將各

36、個模塊電路原理圖畫好,利用相同的網(wǎng)絡編號將單片機最小系統(tǒng)、液晶電路、繼電器外圍電路、溫度傳感器電路,A/D轉(zhuǎn)換電路,時鐘電路及鍵盤電路與單片機連接起來,然后對原理圖進行仿真,仿真無誤后生成網(wǎng)絡表后裝載到PCB環(huán)境中生成需要的PCB,然后手動布線,完成最終的PCB設計。PCB圖如圖5-1所示。圖5-1PCB 為了確保電路圖的正確性,首先在萬用板上焊接好各部分電路,并接上插座后對其進行驗證,將各部分電路測試無誤后,證明本電路能正常工作,然后打印已繪制好的PCB、轉(zhuǎn)印到銅板上、用雙氧水稀釋濃鹽酸腐蝕、鉆孔,按照元器件的形狀焊接到板子上,既完成了定時插座硬件電路板的設計。.系統(tǒng)調(diào)試用數(shù)字萬用表檢測焊好

37、的電路板,檢查電路板、元器件之間是否有短路的地方,電路板檢查完后,即可進入軟件編程的調(diào)試。利用C語言進行編程,Keil軟件編譯,STCISP軟件進行下載。由于設計用到的模塊較多,采取程序模塊化的方法來編寫程序,將分模塊的程序?qū)懞弥笙仍诎迳暇幾g仿真,將各模塊測試好之后,在編寫主程序,在主程序中分別調(diào)用各個模塊,從而實現(xiàn)所要的功能。.設計結(jié)果 本文所設計的定時插座已經(jīng)可以實現(xiàn)定時模式控制和光照模式控制兩種模式的切換。該定時插座可以控制一路220V/10A的插座,可以設置任意一種模式的控制,當定時插座處于工作狀態(tài)時,紅色指示燈亮,定時插座不工作時指示燈熄滅。當定時時間結(jié)束或光照低于光強閾值時,蜂鳴

38、器發(fā)出短暫的“嘀”的一聲,指示燈熄滅,用來提示插座停止工作。.設計中存在的不足及其改進本次設計的定時插座雖然可以實現(xiàn)定時控制一路插座的功能,現(xiàn)實生活中,隨著人們的生活水平不斷的提高,家電等用電器具越來越多,單一的一路控制明顯不能滿足要求。因而,如果在設計時多加入幾路的插座控制,而且各路控制互不干擾,用戶只需要將要定時控制的用電器具都插在定時插座上,通過各自的定時設置,就可以使各電器按照人們的習慣有規(guī)律地工作,很大程度上方便人們的日常生活。如果再加上紅外裝置,甚至是自動語音提示功能,使人們能在其他地方對插座進行控制,會讓定時插座變得更加人性化,實用性也更高。參考文獻1胡偉,季曉衡單片機C語言設計

39、及應用實例.北京:人民郵電出版社,20032李華,MCS-51系列單片機使用接口技術(shù). 北京:北京航空航天大學出版社,20013李正軍.計算機測控系統(tǒng)設計及應用.北京:機械工業(yè)出版社,2004 4何立民. MCS-51系列單片機應用系統(tǒng)設計系統(tǒng)配置與接口技術(shù).北京:北京航空航天大學 出版社,19905張洪潤.單片機應用技術(shù)教程.北京:清華大學出版社,19976夏繼強. 單片機實驗與實踐教程. 北京:北京航空航天大學出版社,20017徐惠民,安德寧單片微型計算機原理接口與應用北京:北京郵電大學出版社,20008李葉紫. MCS-51單片機應用教程.北京:清華大學出版社,20049曹建樹,夏云生,

40、曾林春.51單片機實用教程.中國石化出版,2008 10 江思敏,姚鵬翼,胡榮.Protell電路設計教程.清華大學出版社,200211 張偉Protell99se基礎教程.北京:人民郵電出版社,201012 童詩白模擬電子技術(shù)基礎(第四版).高等教育出版社,200613 譚浩強C程序設計(第三版).清華大學出版社,200514 郭天祥51單片機C語言教程.電子工業(yè)出版社,200915 邊海龍,孫永奎. 單片機開發(fā)與典型工程項目實例詳解.電子工業(yè)出版社,2008致謝本畢業(yè)設計是在孫老師悉心的關(guān)懷與指導下,使我的畢業(yè)設計能夠順利完成,導師淵博的學識、嚴謹?shù)闹螌W態(tài)度、豐富的實踐經(jīng)驗和高尚的人格都深

41、深的影響著我,并將永遠激勵我在以后的工作學習中不斷奮斗。在此,向?qū)O老師致以我最真摯的感謝!在設計過程中,感覺到了自己知識的匱乏,通過自己的學習和探索,以及老師的細心指導,將困難一點點的克服,完成了最終的畢業(yè)設計,我相信這次設計的經(jīng)驗將是我步入社會的最寶貴經(jīng)驗。通過這次設計,不僅是對我們所學知識的一個匯總,同時也是考驗我們學習能力和動手能力的一個平臺,更培養(yǎng)了我們一種遇到困難不放棄的態(tài)度,堅持不懈的拼搏精神,這些在我以后的工作和生活中都是一筆寶貴的財富。最后感謝四年來教導過我的老師及一起學習生活的同學們,謝謝你們四年來的關(guān)照與幫助,非常高興能與你們一起走過大學的繽紛時代,這將會是我一生中最珍貴、

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(); /設定時間 read_rtc(); /讀取時間while(1) /進入大循環(huán)switch(pattern) /判斷處于那種模式 case 1: /時間控制插座模式read_rtc(); /讀取時間 time_display(); /在液晶上顯示當前時間temperature_display(); /溫度測量及顯示time_control(); /根據(jù)設定時間來控制插座的開關(guān) 并顯示到液晶上設定的時間段 和當前插座的狀態(tài) if(key_scan(1) /檢測第一個按鍵是否按下pattern=2; /若第一個按鍵按下則切換到光強控制模式 Write_Com(0x01); /液晶清屏i

44、f(key_scan(2) /檢測第二個鍵是否按下 pattern=3; /若按下則切換到設置插座工作時間段的模式 Write_Com(0x01); /清屏break;case 2: /光照強度控制插座的模式 light_display(); /測量光照強度并顯示(0-100)temperature_display(); /溫度測量并顯示relays_control(); /根據(jù)設定的閾值來控制 顯示當前的閾值和當前插座工作狀態(tài)if(key_scan(1) /檢測第一個按鍵是否按下pattern=1; /第一個按鍵按下則切換到時間控制插座的模式 Write_Com(0x01); /清屏if(k

45、ey_scan(2) /檢測第二個按鍵是否按下 pattern=4; /若第二個按鍵按下 則切換到調(diào)整光照閾值的模式Write_Com(0x01); /清屏break;case 3: /調(diào)整控制時間段的模式time_uth_adjust(); /調(diào)整控制的時間段并顯示在屏幕上if(key_scan(2) /檢測第二個按鍵是否按下pattern=1; /若按下則保存當前調(diào)整好的時間段并切換到時間控制插座工作狀態(tài)的模式mode=0; /一個變量 用于標記當前正在調(diào)整的是哪個時間元素 跳出該模式時清零以保證下次調(diào)整時從第一個元素開始 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)光標Write_Com(0x06); /讀,寫操

47、作后AC自動加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測試光照強度并歸一化到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');時鐘程序DS1302.h

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論