四路定時控制器_第1頁
四路定時控制器_第2頁
四路定時控制器_第3頁
四路定時控制器_第4頁
四路定時控制器_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、河南理工大學本科課程設(shè)計報告摘要本設(shè)計是實現(xiàn)四路定時計數(shù)器,即用來控制四條由繼電器控制的回路的開斷。四路定時控制器是由單片機核心板,定時電路,顯示電路,繼電器控制電路組成,通過程序及單片機對其余電路進行控制,使得定時電路能準確對每一路進行定時,并使繼電器控制電路在定時時間段內(nèi)導通,其余時間段內(nèi)關(guān)閉。按鍵一用來選擇回路,按鍵二三四五是通過對時分進行加一減一設(shè)置相應時間。對于整個電路,當按鍵一按第一次對當前時鐘時間進行調(diào)整校對。對于第一條回路,我們在回路上安裝了繼電器,當按鍵一按第二次設(shè)置第一條回路繼電器的吸合時間,當按鍵一按第三次設(shè)置第一條回路繼電器的斷開時間。對于第二,三,四條回路,我們使用發(fā)

2、光二極管代替繼電器,當按鍵一按第四次設(shè)置第二條回路二極管點亮時間,當按鍵一按第五次設(shè)置第二條回路二極管熄滅時間,依次類推,實現(xiàn)對四條回路定時時間段的設(shè)置。此外,為了防止在顯示時出現(xiàn)錯誤,我們將按鍵六設(shè)置為返回現(xiàn)在狀態(tài)的按鍵。我們將按鍵程序和數(shù)碼管顯示程序?qū)懗深^文件的形式,在主函數(shù)中調(diào)用,使主函數(shù)更加方便整潔。最終我們實現(xiàn)的功能為:對當前時鐘時間進行校對,設(shè)置好每條回路的開啟和關(guān)斷時間后。開啟時間到,繼電器吸合或二極管點亮;關(guān)斷時間到,繼電器斷開吸合或二極管熄滅,以此來實現(xiàn)對四條回路的控制。 關(guān)鍵字:按鍵 數(shù)碼管 四路 繼電器目錄摘要11 概述31.1課題背景以及課題研究的意義31.2課題的研究

3、工作41.3課題研究中存在的困難52 系統(tǒng)總體方案及硬件設(shè)計52.1 系統(tǒng)總體設(shè)計方案52.3 核心板原理圖73.軟件設(shè)計83.1定時設(shè)計83.2按鍵設(shè)計83.3數(shù)碼管顯示94.protues仿真105.課程設(shè)計體會11參考文獻11附1 源程序代碼12附2系統(tǒng)原理圖221 概述1.1課題背景以及課題研究的意義四路定時控制器應用于開關(guān)中,在定時時間到后自動打開,定時時間到后自動閉合,避免了人員自己去閉合斷開開關(guān)而產(chǎn)生人身安全的危險。安全開關(guān)/插座獨創(chuàng)線路終端一對一保護功能,將電流過載保護技術(shù)融入普通開關(guān)、插座中,具備溫升感應、自動斷電、報警、復位、轉(zhuǎn)接、連接等功能。既延長了供電線路使用壽命,杜絕

4、了電氣火災的發(fā)生,同時,當用電發(fā)生異常時,只切斷故障位置的電源,而不會影響其它電器的正常用電。產(chǎn)品的性價比得到了極大的提高。既保障了人們的生命財產(chǎn)安全,又給用戶帶來方便可靠的用電環(huán)境。 近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月異更新. 在實時檢測和自動控制的單片機應用系統(tǒng)中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據(jù)具體硬件結(jié)構(gòu),以及針對具體應用對象特點的軟件結(jié)合,加以玩善。四路定時控制器,可以更簡單、方便的使用。本系統(tǒng)采用單片機AT89C51為中心器件來設(shè)計四路定時控制器,系統(tǒng)實用性強、操作簡單、擴展性強。1.2課題的研

5、究工作智能開關(guān)是在電子墻壁開關(guān)的基礎(chǔ)上演變而來的,是對原有翹板式機械開關(guān)顛覆性革命,從愛迪生1879年發(fā)明電燈泡開始,就有了簡單的機械開關(guān),一百多年過去了,當代的墻壁開關(guān)無根本性改變,沒有任何突破性發(fā)展,仍沿用機械式的開關(guān)方式,直到1992年,電子技術(shù)才開始進入墻壁開關(guān)領(lǐng)域,起初僅只是用于公共走廊中的聲控延時開關(guān),觸摸延時開關(guān)。到了2000年人體熱釋傳感器的廣泛應用,延時開關(guān)有了重大的發(fā)展,人體感應開關(guān)逐漸代替聲控延時開關(guān)和觸摸延時開關(guān),與此同時用可控硅相位控制的調(diào)光調(diào)速開關(guān)也孕育而生,旋鈕式調(diào)光開關(guān),主要適用于白熾燈,旋鈕式調(diào)速開關(guān),主要適用于風扇電機。以上這幾種開關(guān)雖說從傳統(tǒng)的機械模式進入

6、到了電子模式,但其功能相對簡單,僅只是在特定場合下使用,對傳統(tǒng)的機械開關(guān)無法形成沖擊和取代,另外由于現(xiàn)有的墻壁開關(guān)的布線格局中絕大多數(shù)只是單火線接入方式,零線直接引到負載,在開關(guān)中只有火線沒有零線,不能形成回路,無法正常供電,這樣限制了許多電子技術(shù)的引進和應用,十幾年電子技術(shù)在墻壁開關(guān)中的發(fā)展一直在初期簡單功能階段徘徊,始終只有五種類型:觸摸延時開關(guān),聲控延時開關(guān),人體感應延時開關(guān)(PIR),旋鈕調(diào)光開關(guān),旋鈕調(diào)速開關(guān)。近年來,隨著科學技術(shù)的發(fā)展,墻壁開關(guān)單火線接入的供電技術(shù)有了重大的突破,同時將微電腦處理芯片引入到電子墻壁開關(guān)中,使得具有各種不同功能的電子墻壁開關(guān)變得切實可行,借此技術(shù)一些公

7、司開始推出了系列的電子墻壁開關(guān)新產(chǎn)品,這時電子墻壁開關(guān)的種類有了極大的豐富和發(fā)展,因而有必要將之歸納分類,電子墻壁開關(guān)按功能分類如下:1)人體感應開關(guān)2)電子調(diào)光開關(guān)3)電子調(diào)速開關(guān)4)電子定時開關(guān)5)其它智能開關(guān)然而近二十年來居家生活已發(fā)生了重大的變化,許多家用電器已進入到了家庭,極大豐富了人們的生活,如冰箱、空調(diào)、LED燈,裝飾吊扇、排風扇、浴霸等,控制它的還是一個簡單機械開關(guān),所能做到的也只是簡單的一開一關(guān),無法按照不同電器特點來作相應功能的運行,例如:排風扇裝在洗手間,人離開時,需要延時一段時間關(guān)閉以排除異味,有些公共場合還要人來自動開,人走后延時一段時間再關(guān)閉。吊扇裝在客廳不僅需要開

8、關(guān),還需要3檔或5檔調(diào)速,裝在臥室中要求有定時功能,但有別于排風扇的延時關(guān)功能,最好能配上遙控器,指尖輕動,風度自由掌控;然而對于LED燈來說,需要開關(guān)功能的同時,更為重要的是還需要調(diào)光/調(diào)色功能,諸如此類,對不同的家用電器,需要更加智能化的開關(guān)與之相匹配,這勢必將導致百年墻壁開關(guān)的一次徹底革命,其中iPuray愛普瑞率先提出家電智能開關(guān)的全概念,同時推出家電智能開關(guān)下的系列產(chǎn)品: LED燈開關(guān)、風扇類開關(guān)、排風扇開關(guān)、吊扇遙控器、空調(diào)類開關(guān)、加熱器開關(guān)、電飯煲開關(guān)、油煙機開關(guān)。1.3課題研究中存在的困難每一個課題在研究過程中都需要考慮很多因素,不僅要考慮研究課題的實用價值,還要求系統(tǒng)開銷經(jīng)濟

9、節(jié)省,符合人民的消費能力要求,因此在系統(tǒng)設(shè)計時為了統(tǒng)籌兼顧各個因素,所以在課題研究中存在以下幾個困難:統(tǒng)的高性能要求與系統(tǒng)經(jīng)濟性要求相矛盾。因為單片機控制四路定時計數(shù)器系統(tǒng)屬于弱電控制領(lǐng)域,因此在控制過程中就為了防止外部干擾就要引進一些其他輔助設(shè)備,這在無形中就增加了系統(tǒng)開發(fā)成本,致使系統(tǒng)經(jīng)濟性不高。同時由于要控制繼電器,一般的繼電器吸合都存在聲音,而從增加人民生活的舒適程度出發(fā),這些聲音是不允許的,但消除聲音就需要引入外在設(shè)備或采用高性能電機,經(jīng)濟性不好;單片機系統(tǒng)需要5V低壓供電,增加了系統(tǒng)成本,同時也增加了系統(tǒng)故障的幾率。如何實現(xiàn)四路定時計數(shù)器能定時時間超過24小時還需解決。2 系統(tǒng)總體

10、方案及硬件設(shè)計2.1 系統(tǒng)總體設(shè)計方案四路定時控制器是由單片機,定時電路,顯示電路,繼電器控制電路組成,通過程序及單片機對其余電路進行控制,使得定時電路能準確對每一路進行定時,并使繼電器控制電路在定時時間段內(nèi)導通,其余時間段內(nèi)關(guān)閉。流程圖如下:開始設(shè)置時間和路線開始計時到達時間繼電器吸合或二極管點亮到達時間繼電器斷開或二極管熄滅2.2 硬件原理圖根據(jù)單片機核心板畫出如下流程圖 單片機顯示電路鍵盤接口復位電路時鐘電路2.3 核心板原理圖3.軟件設(shè)計3.1定時設(shè)計通過設(shè)計兩個變量分別實現(xiàn)對開啟時間和關(guān)斷時間的設(shè)定,通過按鍵更改設(shè)置的時間。流程圖如下系統(tǒng)上電系統(tǒng)初始化是否有中斷 是中斷服務程序 否數(shù)

11、碼管動態(tài)顯示 否是否有中斷3.2按鍵設(shè)計對于整個電路,當按鍵一按第一次對當前時鐘時間進行調(diào)整校對。對于第一條回路,我們在回路上安裝了繼電器,當按鍵一按第二次設(shè)置第一條回路繼電器的吸合時間,當按鍵一按第三次設(shè)置第一條回路繼電器的斷開時間。對于第二條回路,我們使用發(fā)光二極管代替繼電器,當按鍵一按第四次設(shè)置第二條回路二極管點亮時間,當按鍵一按第五次設(shè)置第二條回路二極管熄滅時間。第三四條回路與第二條回路相同。當按鍵一按第十次返回到當前顯示時間。按鍵二三對時鐘的小時進行加減,按鍵四五對時鐘的分鐘進行加減。此外,為了防止在顯示時出現(xiàn)錯誤,我們將按鍵六設(shè)置為返回現(xiàn)在狀態(tài)的按鍵。開始初始化開中斷讀時鐘芯片送顯

12、示是否掃描鍵盤 N Y是否設(shè)置當前時間送時鐘芯片 N送入單片機3.3數(shù)碼管顯示 數(shù)碼管的前兩位顯示時鐘的小時,后兩位顯示時鐘的分鐘流程圖如下:程序復位 初始化數(shù)碼管顯示設(shè)置多路定時時間中斷?中斷處理顯示時間按鍵掃描初始化時間,鍵盤掃描4.protues仿真5.課程設(shè)計體會一開始思路就很清晰,就是用程序通過單片機對四條由繼電器控制的的電路進行定時實現(xiàn)對四個回路通段控制,但理解有偏差,以為只是簡單地定時,后來仔細看了要求,知道是定一個時間段。難度有所加大,但是有了前面四個單片機實驗的基礎(chǔ),對定時已經(jīng)很熟悉了,在此基礎(chǔ)上更改了對按鍵及主函數(shù)的編程,寫出了能定時間段的程序。剛開始對繼電器的工作原理和接

13、線方法也不是很了解,通過向老師請教,清楚地知道了繼電器的工作原理和接線方法,成功的接好了外圍電路,即有繼電器控制的的四條回路。這次的課程設(shè)計收獲很多,更加熟練地掌握了編程和單片機,也了解繼電器及其相關(guān)知識。這次單片機課程設(shè)計不僅鞏固了以前所學過的知識,而且學到了很多在書本上沒有學到過的知識,掌握了一種系統(tǒng)的研究方法,可以進行一些簡單的編程。通過這次課程設(shè)計使我們懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,從而提高自己的實際動手能力和獨立思考的能力。同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,例如對以前所學過的知識理解得不夠深刻

14、,掌握得不夠牢固,學習了單片機C語言。經(jīng)過一周的努力,順利的完成了單片機課設(shè)。這是一個磨練意志的過程。從課題的選擇開始,計算器的設(shè)計、硬件和軟件系統(tǒng)的設(shè)計、到最后的Proteus軟件仿真完成,這其中經(jīng)歷了很多困難,但是更重要的是在這個過程中我們得到了很大的鍛煉。一方面通過C51單片機等一些器件的設(shè)計讓我們學習和掌握了單片機技術(shù)的基礎(chǔ)知識和技術(shù)要點,也使以前學的很多知識都得到了運用;另一方面在用Proteus軟件畫電路圖時,然后再轉(zhuǎn)換成一維的WORD中進行編輯,這個過程中讓我掌握了計算機輔助的設(shè)計技術(shù)。當然,這是一個需要不斷的嘗試,不斷的校核,不斷的修改,最后完成一個合理的設(shè)計的過程。需要的是細

15、心和耐心。在很大程度上培養(yǎng)了我們拼搏的工作精神。更重要的是,也許我們做的不是做好的,但這幾天的辛苦投入以及最后的功能實現(xiàn)讓我們體會到了努力認真的快樂,以及付出就有回報的真理。 通過本次課設(shè),我們不僅學到了關(guān)于單片機技術(shù)方面的許多專業(yè)知識,同時也讓我感覺到團隊合作的重要性。真心感謝這次課程設(shè)計以及老師的熱情指導,這會對我們以后的學習和生活產(chǎn)生深遠地影響。參考文獻 1 郭天祥. 51單片機C語言教程. 北京:電子工業(yè)出版社2肖金立. 微型計算機原理及應用. 北京:電子工業(yè)出版社3楊立. 微型計算機原理與接口技術(shù). 北京:北京交通大學出版社4劉新瑞. C語言程序設(shè)計教程. 北京:機械工業(yè)出版社5周志

16、德. C+程序設(shè)計. 北京:電子工業(yè)出版社附1 源程序代碼- 21 -#includekey_6.h /包含按鍵程序的頭文件#includesmgxianshi.h/包含數(shù)碼管顯示程序的頭文件#define uint unsigned int#define uchar unsigned charuchar ADD_Function(uchar aa,uchar bb);/設(shè)置數(shù)碼管加一功能uchar SUB_Function(uchar aa,uchar bb); /設(shè)置數(shù)碼管減一功能sbit l1=P32;/回路一sbit l2=P33; /回路二sbit l3=P34; /回路三sbit

17、l4=P35; /回路四sfr P1M1=0x91;sfr P1M0=0x92;int num,shi,fen;uchar shi1o,fen1o,shi2o,fen2o,shi3o,fen3o,shi4o,fen4o;/回路一至四的開始時間設(shè)置uchar shi1x,fen1x,shi2x,fen2x,shi3x,fen3x,shi4x,fen4x; /回路一至四的關(guān)斷時間設(shè)置uchar s1;/按鍵一被按下的次數(shù)void init(void)P1M0=0xff;P1M1=0;TMOD=0x11;TH0=(65535-46083)/256;TL0=(65535-46083)%256;EA=1

18、; /總中斷ET0=1; /定時器中斷TR0=1; /開啟定時器 void main(void)/主函數(shù)uchar k;init();while(1) if(s1=0)/按鍵一沒被按下,正常顯示時間 xianshi_2(shi,fen); k=key(); if(k=1) s1+; if(s1!=0) if(s1=1)/按鍵一被按下一次 if(k=2)/按鍵二小時時間加一shi=ADD_Function(shi,2);if(k=3)/按鍵三小時時間減一shi=SUB_Function(shi,2);if(k=4) /按鍵四小分鐘間加一fen=ADD_Function(fen,1);if(k=5

19、) 按鍵五小分鐘間減一fen=SUB_Function(fen,1);P2=0xfe;xianshi_2(shi,fen); if(s1=2) /按鍵一被按下兩次設(shè)定第一條回路的起始時間 if(k=2) shi1o=ADD_Function(shi1o,2);if(k=3) shi1o=SUB_Function(shi1o,2);if(k=4) fen1o=ADD_Function(fen1o,1);if(k=5) fen1o=SUB_Function(fen1o,1);P2=0xfd;xianshi_2(shi1o,fen1o); if(s1=3) 按鍵一被按下三次設(shè)定第一條回路的終止時間

20、if(k=2) shi1x=ADD_Function(shi1x,2);if(k=3) shi1x=SUB_Function(shi1x,2);if(k=4) fen1x=ADD_Function(fen1x,1);if(k=5) fen1x=SUB_Function(fen1x,1);P2=0xff;xianshi_2(shi1x,fen1x); if(s1=4) 按鍵一被按下四次設(shè)定第二條回路的起始時間 if(k=2) shi2o=ADD_Function(shi2o,2);if(k=3) shi2o=SUB_Function(shi2o,2);if(k=4) fen2o=ADD_Func

21、tion(fen2o,1);if(k=5) fen2o=SUB_Function(fen2o,1);P2=0xfb;xianshi_2(shi2o,fen2o); if(s1=5) 按鍵一被按下五次設(shè)定第二條回路的終止時間 if(k=2) shi2x=ADD_Function(shi2x,2);if(k=3) shi2x=SUB_Function(shi2x,2);if(k=4) fen2x=ADD_Function(fen2x,1);if(k=5) fen2x=SUB_Function(fen2x,1);P2=0xff;xianshi_2(shi2x,fen2x); if(s1=6) 按鍵一

22、被按下六次設(shè)定第三條回路的起始時間 if(k=2) shi3o=ADD_Function(shi3o,2);if(k=3) shi3o=SUB_Function(shi3o,2);if(k=4) fen3o=ADD_Function(fen3o,1);if(k=5) fen3o=SUB_Function(fen3o,1);P2=0xf7;xianshi_2(shi3o,fen3o); if(s1=7) 按鍵一被按下七次設(shè)定第三條回路的終止時間 if(k=2) shi3x=ADD_Function(shi3x,2);if(k=3) shi3x=SUB_Function(shi3x,2);if(k

23、=4) fen3x=ADD_Function(fen3x,1);if(k=5) fen3x=SUB_Function(fen3x,1);P2=0xff;xianshi_2(shi3x,fen3x); if(s1=8) 按鍵一被按下八次設(shè)定第四條回路的起始時間 if(k=2) shi4o=ADD_Function(shi4o,2);if(k=3) shi4o=SUB_Function(shi4o,2);if(k=4) fen4o=ADD_Function(fen4o,1);if(k=5) fen4o=SUB_Function(fen4o,1);P2=0xef;xianshi_2(shi4o,fe

24、n4o); if(s1=9) 按鍵一被按下九次設(shè)定第四條回路的終止時間 if(k=2) shi4x=ADD_Function(shi4x,2);if(k=3) shi4x=SUB_Function(shi4x,2);if(k=4) fen4x=ADD_Function(fen4x,1);if(k=5) fen4x=SUB_Function(fen4x,1);P2=0xff;xianshi_2(shi4x,fen4x); if(s1=10) 按鍵一被按下十次回到顯示狀態(tài) s1=0;TR0=1; if(s1=0) if(shi=shi1o&fen=fen1o) l1=0;/回路一開if(shi=s

25、hi1x&fen=fen1x) l1=1; /回路一關(guān)if(shi=shi2o&fen=fen2o) l2=0; /回路二開if(shi=shi2x&fen=fen2x) l2=1; /回路二關(guān)if(shi=shi3o&fen=fen3o) l3=0; /回路三開if(shi=shi3x&fen=fen3x) l3=1; /回路三關(guān)if(shi=shi4o&fen=fen4o) l1=0; /回路四開if(shi=shi4x&fen=fen4x) l1=1; /回路四關(guān) if(k=6)/按鍵六返回顯示 s1=0;TR0=1; uchar ADD_Function(uchar aa,uchar

26、bb)if(bb=1)if(aa=59)return 0;elseaa=aa+1;return aa;else if(bb=2)if(aa=23)return 0;elseaa=aa+1;return aa;uchar SUB_Function(uchar aa,uchar bb)if(bb=1)if(aa=0)return 59;elseaa=aa-1;return aa;else if(bb=2)if(aa=0)return 23;elseaa=aa-1;return aa;void t0_time(void) interrupt 1/中斷TH0=(65535-46083)/256;TL0

27、=(65535-46083)%256;num+;if(num=1200)num=0;fen+;if(fen=60)fen=0;shi+;if(shi=24)shi=0;按鍵頭文件:#ifndef _KEY_H_ / #includekey_6.h#define _KEY_H_#include #includevoid Delay5ms()/11.0592MHz 3msunsigned char i, j;_nop_();_nop_();i = 33;j = 66;dowhile (-j); while (-i);unsigned char key() unsigned char k=0; P0

28、|=0xe0; P3&=0x3f; if(P0&0xe0)!=0xe0) Delay5ms(); /P2&=0xfb; Delay5ms(); P0|=0xe0; if(P0&0xe0)!=0xe0) P3|=0xc0; P3&=0x7f; switch(P0&0xe0) case 0xe0: break;case 0x60:k=6;break;case 0xa0:k=5;break; case 0xc0:k=4;break; while(P0&0xe0)!=0xe0); P3|=0xc0; P3&=0xbf; switch(P0&0xe0) case 0xe0: break;case 0x60:k=3;break;case 0xa0:k=2;break; case 0xc0:k=1;break; while(P0&0xe0)!=0xe0); return k; #endif數(shù)碼管顯示頭文件:#ifndef _SMGXIANSHI_H_ / #includesmgxianshi.h#define _SMGXIANS

溫馨提示

  • 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

提交評論