基于51單片機的24小時定時控制系統(tǒng)_第1頁
基于51單片機的24小時定時控制系統(tǒng)_第2頁
基于51單片機的24小時定時控制系統(tǒng)_第3頁
基于51單片機的24小時定時控制系統(tǒng)_第4頁
基于51單片機的24小時定時控制系統(tǒng)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 姓名: 余 明 永學(xué)號:E專業(yè): 網(wǎng)絡(luò)工程 完成時間: 2014/12/31基于51單片機的24小時定時控制系統(tǒng)E 余明永安徽大學(xué) 計算機科學(xué)與技術(shù)學(xué)院, 安徽 合肥 摘 要:定時開關(guān)控制器在工業(yè)方面的自動控制,辦公場所的電器控制等有著極為廣泛的用途;本文利用89C51單片機的定時器計數(shù)器時鐘電路設(shè)計一套24小時范圍內(nèi)的定時控制系統(tǒng);可方便的實現(xiàn)對家庭電器和工業(yè)方面的自動控制;該定時開關(guān)控制器具有簡單易制、價格低廉、控制時間可精確到秒等優(yōu)點,還可以實時顯示時間,具有較高的應(yīng)用價值。關(guān)鍵字:單片機 時鐘 定時 控制 開關(guān)Timing Control System of 24h Designin

2、g Based on 51MCUE YU Ming-yongDepartment ofComputerScienceandTechnology,AnhuiUniversity, Hefei, ChinaAbstract:Automatic control timing controller has a very wide range of uses in the industry and office applicant control. In this paper, we designed the timing control system including a set of 24 hou

3、rs within the scope of using the timer counter clock circuit based on mcs-51; It can realize the automatic control of household appliances and industrial aspects very conveniently; the timing switch controller has the very simple and easy preparation, and it is also very cheap, It can control the ti

4、me very accurately to seconds. Also show the time on time. This application is of great value. Keywords: MCU; Clock; Timing; Control; Switch0 引言電子定時器在家用電器中經(jīng)常用于延時自動關(guān)機、定時。延時自動關(guān)機可用于:收音機、電視機、錄音機、催眠器、門燈、路燈、汽車頭燈、轉(zhuǎn)彎燈以及其他電器的延時斷電及延時自停電源等。定時可用于:照相定時曝光、定時閃光、定時放大、定時調(diào)速、定時烘箱、冰箱門開定時報警、水位定時報警、延時催眠器、延時電鈴、延時電子鎖、觸摸定時開

5、關(guān)等。例如:空調(diào)中的定時器,在工作一段時間之后便能自動切斷電源停止工作。夏季夜間使用,入睡前先頂好時間,等睡熟后到了預(yù)定時間,空調(diào)自動關(guān)機。方便節(jié)能。定時器除了應(yīng)用于家用電器外,還廣泛地用于工業(yè)農(nóng)業(yè)生產(chǎn)和服務(wù)設(shè)施,甚至軍事等。單片機的定時器是單片機里最“活躍”的部件之一,很多程序、應(yīng)用系統(tǒng)都離不開定時器。由于定時器的應(yīng)用與單片機的其他硬件相關(guān),存在著一定的復(fù)雜性。而定時器也是單片機應(yīng)用中解決某類復(fù)雜問題的最為有效的方法,應(yīng)用非常廣泛。本文設(shè)計了基于單片機系統(tǒng)的一個簡單的定時開關(guān)控制系統(tǒng)??梢造`活的承載多方面有定時控制需求的設(shè)備的控制。1 整體方案設(shè)計整個系統(tǒng)由51單片機,時鐘電路,復(fù)位電路,獨

6、立按鍵,顯示電路,報警器以及繼電器等部分組成1(結(jié)構(gòu)圖如圖一)。定時開關(guān)控制系統(tǒng)設(shè)計主要以STC89C51單片機為核心2, 通過DS1302進行精準(zhǔn)的時間控制3,獨立按鍵控制設(shè)置實時時間以及定時開、關(guān)時間,由8個8段LED數(shù)碼管顯示實時的系統(tǒng)時間,并實現(xiàn)交互的設(shè)置開關(guān)定時時間。報警器用蜂鳴器當(dāng)?shù)蕉〞r時間時蜂鳴器發(fā)出十秒左右報警聲以提示用戶。繼電器、 受控電器插座及受控電器組成一個執(zhí)行機構(gòu), 當(dāng)定時時間到時, 單片機向繼電器輸出一個高電平使繼電器工作,繼電器常開觸點閉合接通受控電器插座, 使受控電器通電加以工作, 從而完成定時開關(guān)電器的功能。4圖一 定時開關(guān)系統(tǒng)構(gòu)成圖2 硬件系統(tǒng)設(shè)計硬件系統(tǒng)設(shè)計

7、采用所學(xué)習(xí)單片機開發(fā)板的設(shè)計電路做些簡要的修改,并添加繼電器電路,電路原理圖見圖二。獨立按鍵與單片機K1,K2,K3,K4分別與51單片機的P30,P31,P32,P33口相接。K3采用中斷方式按下切換實時時間的設(shè)置狀態(tài)和運行狀態(tài);K4切換選擇顯示實時時間,定時開時間點,定時關(guān)時間點,在定時時間點圖二 定時開關(guān)系統(tǒng)硬件結(jié)構(gòu)圖可進行設(shè)置改變定時時間;K1在設(shè)置狀態(tài)下起作用,進行選擇設(shè)置時分秒;K2在設(shè)置狀態(tài)下起作用對設(shè)置項的值進行加一。顯示時間的八個LED八段數(shù)碼管通過一個74138譯碼器進行選擇,數(shù)碼管輸入口通過74573與單片機P0口相連;138譯碼器的輸入口為P22,P23,P24。本系統(tǒng)

8、采用了兩個LED燈區(qū)分設(shè)置選項,兩燈都不亮數(shù)碼管顯示為實時時間,兩燈亮一燈為開關(guān)關(guān)閉定時時間,兩燈全亮為開關(guān)開啟定時時間,占用P20,P21兩個接口。蜂鳴器報警裝置接單片機P15口,通過P15口的高低電平不斷變化產(chǎn)生交流信號使蜂鳴器發(fā)聲。繼電器與單片機的P10口相接,輸出1時繼電器使電源接通控制電器正常工作,輸出0時繼電器使電源斷開控制電器停止工作。3 軟件系統(tǒng)設(shè)計定時開關(guān)控制軟件實現(xiàn)較為簡單,主程序主要是在單片機的控制下,對鍵盤的輸入信息進行存儲分析,驅(qū)動LED數(shù)碼管顯示出相關(guān)信息,并通過對比分析定時時間與時鐘,控制繼電器的通、斷,從而達到控制電器通斷電。在這個過程中,單片機首先進行初始化,

9、顯示值初始化、繼電器斷開、以及單片機振蕩頻率的校準(zhǔn)等。單片機每執(zhí)行一次循環(huán)對定時時間和時鐘進行一次比較。5為了實現(xiàn)時鐘走時與所在地時間一致和滿足要求,設(shè)定了時鐘設(shè)置和定時設(shè)置的功能。時鐘設(shè)置和定時設(shè)置都在主函數(shù)里的while循環(huán)中實現(xiàn),對于設(shè)置的按鍵采用掃面檢測的方法,而進入設(shè)置狀態(tài)是用中斷方法進入設(shè)置狀態(tài)。程序設(shè)計的流程圖如圖三。圖三定時開關(guān)系統(tǒng)設(shè)計流程圖程序初始化后,設(shè)置定時器T0工作在方式1用于計時,同時設(shè)置開關(guān)定時時間,執(zhí)行顯示程序。當(dāng)定時時間設(shè)置好后,系統(tǒng)不斷的查詢定時時間到否,定時開關(guān)開時間到時P10=1,繼電器閉合,受控電器工作,同時是控制蜂鳴器報警變量設(shè)置時間值,使蜂鳴器控制P

10、15電平高低不斷交替變化產(chǎn)生交流信號使蜂鳴器報警。在程序執(zhí)行過程中中斷0控制著定時器的啟動和暫停,當(dāng)暫停時可修改實時時鐘的時間,程序查詢檢查K1和K2按鍵是否按下,K1選擇設(shè)定位“時、分、秒”,K2設(shè)置當(dāng)前選擇的設(shè)定位數(shù)值加一。K4切換顯示模式:實時時鐘,定時關(guān)時間,定時開時間。在模式切換時對應(yīng)LED1,LED0顯示燈改變,實時時鐘兩燈都滅,定時關(guān)時間顯示一個燈,定時開時間顯示兩個燈。在定時開關(guān)狀態(tài)下即可由K1,K2鍵設(shè)置定時的時間值,K1,K2的功能與實時時鐘設(shè)置相同。具體軟件實現(xiàn)代碼如下:#includesbit K1=P30;sbit K2=P31;sbit K3=P32;sbit K4

11、=P33;unsigned char Time=0;/用來計時間的值#define DIGP0sbit LSA=P22;sbit LSB=P23;sbit LSC=P24;sbit LED0=P20;sbit LED1=P21;sbit Beep=P15;sbit Switch=P10;unsigned char code DIG_CODE10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/unsigned char Num=0;unsigned int disp8=0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0

12、x3f;unsigned char hour=0,minit=0,second=0;unsigned char Thour2=0,0,Tminit2=0,0,Tsecond2=0,0;unsigned char Count=0;/設(shè)定選擇設(shè)置項unsigned char SetPlace;/設(shè)置位選擇unsigned int CT=0;/設(shè)定值閃爍控制void Delay1ms(unsigned int c);void TimerConfiguration();void Int0Configuration();void Int1Configuration();unsigned char ReS

13、et=1; /* 函 數(shù) 名 : main* 函數(shù)功能 : 主函數(shù)* 輸 入 : 無* 輸 出 : 無*/void main(void)unsigned char i=0;unsigned char m;unsigned BCT=0;/報警時長設(shè)定Switch=0;TimerConfiguration();Int0Configuration();Int1Configuration();while(1)if(Count=0)if(TR0=0)CT+;if(CT2000)CT=0;if(K1=0)/檢測按鍵K2是否按下Delay1ms(10);/消除抖動if(K1=0)SetPlace+;if(S

14、etPlace=3)SetPlace=0;while(i=60)second=0;else if(SetPlace=1)minit+;if(minit=60)minit=0;elsehour+;if(hour=24)hour=0; while(i1000)disp7 = 0;disp6 = 0;elsedisp7 = DIG_CODEsecond%10;disp6 = DIG_CODEsecond/10;disp5 = 0X40;if(SetPlace=1&CT1000)disp4 = 0;disp3 = 0;elsedisp4 = DIG_CODEminit%10;disp3 = DIG_C

15、ODEminit/10;disp2 = 0X40;if(SetPlace=2&CT1000)disp1 = 0;disp0 = 0;elsedisp1 = DIG_CODEhour%10;disp0 = DIG_CODEhour/10;else/設(shè)定定時時間 /設(shè)置定時點m=Count-1;CT+;if(CT2000)CT=0;if(K1=0)/檢測按鍵K2是否按下Delay1ms(10);/消除抖動if(K1=0)SetPlace+;if(SetPlace=3)SetPlace=0;while(i=60)Tsecondm=0;else if(SetPlace=1)Tminitm=Tminit

16、m+1;if(Tminitm=60)Tminitm=0;elseThourm=Thourm+1;if(Thourm=24)Thourm=0; while(i1000)disp7 = 0;disp6 = 0;elsedisp7 = DIG_CODETsecondm%10;disp6 = DIG_CODETsecondm/10;disp5 = 0X40;if(SetPlace=1&CT1000)disp4 = 0;disp3 = 0;elsedisp4 = DIG_CODETminitm%10;disp3 = DIG_CODETminitm/10;disp2 = 0X40;if(SetPlace=

17、2&CT1000)disp1 = 0;disp0 = 0;elsedisp1 = DIG_CODEThourm%10;disp0 = DIG_CODEThourm/10;/檢測是否到設(shè)定的時間if(TR0=1)if(hour=Thour1)if(minit=Tminit1)if(second=Tsecond1)Switch=1;BCT=4000; /值為4000報警時長十秒鐘左右if(hour=Thour0)if(minit=Tminit0)if(second=Tsecond0)Switch=0;BCT=2000;if(BCT0)BCT-;Beep= 1;Delay1ms(1);Beep= 0

18、;Delay1ms(1); /-顯示時鐘-/DIG=0; /消隱switch(Num) /位選,選擇點亮的數(shù)碼管,case(7):LSA=0;LSB=0;LSC=0; break;case(6):LSA=1;LSB=0;LSC=0; break;case(5):LSA=0;LSB=1;LSC=0; break;case(4):LSA=1;LSB=1;LSC=0; break;case(3):LSA=0;LSB=0;LSC=1; break;case(2):LSA=1;LSB=0;LSC=1; break;case(1):LSA=0;LSB=1;LSC=1; break;case(0):LSA=

19、1;LSB=1;LSC=1; break;DIG=dispNum; /段選,選擇顯示的數(shù)字。Num+;if(Num7)Num=0;/* 函 數(shù) 名 : Delay1ms()* 函數(shù)功能 : 延時1ms* 輸 入 : c* 輸 出 : 無*/void Delay1ms(unsigned int c) /誤差 0us unsigned char a,b;for (; c0; c-)for(b=199;b0;b-)for(a=1;a0;a-); /* 函 數(shù) 名 : TimerConfiguration()* 函數(shù)功能 : 配置定時器值* 輸 入 : 無* 輸 出 : 無*/void TimerCo

20、nfiguration() TMOD = 0x01; /選擇工作方式1 TH0 = 0x3c; /設(shè)置初始值 TL0 = 0x0b0; EA = 1; /打開總中斷 ET0 = 1; /打開定時器0中斷 TR0 = 0; /啟動定時器0/* 函 數(shù) 名 : Timer0()* 函數(shù)功能 : 定時器0中斷函數(shù)* 輸 入 : 無* 輸 出 : 無*/ void Timer0() interrupt 1TH0 = 0x3c; /設(shè)置初始值 TL0 = 0xb0;Time+;if(Time=20&TR0=1) /一秒鐘來到改變數(shù)值Time=0;second+;if(second=60)second=0

21、;minit+;if(minit=60)minit=0;hour+;if(hour=24)hour=0;/* 函 數(shù) 名 : Int0Configuration()* 函數(shù)功能 : 配置外部中斷0* 輸 入 : 無* 輸 出 : 無*/void Int0Configuration()/設(shè)置INT0IT0=1;/跳變沿出發(fā)方式(下降沿)EX0=1;/打開INT0的中斷允許。EA=1;/打開總中斷/* 函 數(shù) 名 : Int0() interrupt 0* 函數(shù)功能 : 外部中斷0的中斷函數(shù)* 輸 入 : 無* 輸 出 : 無*/ void Int0() interrupt 0 Delay1ms(10);if(K3=0)TR0=TR0;Time=0;CT=0;/* 函 數(shù) 名 : Int1Configuration()* 函數(shù)功能 : 配置外部中斷1* 輸 入 : 無* 輸 出 : 無*/void Int1Configuration()/設(shè)置INT0IT1=1;/跳變沿出發(fā)方式(下降沿)EX1=1;/打開INT0的中

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論