基于單片機(jī)控制的電鈴控制器_第1頁(yè)
基于單片機(jī)控制的電鈴控制器_第2頁(yè)
基于單片機(jī)控制的電鈴控制器_第3頁(yè)
基于單片機(jī)控制的電鈴控制器_第4頁(yè)
基于單片機(jī)控制的電鈴控制器_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于單片機(jī)控制的電鈴控制器班級(jí):應(yīng)教042班 姓名:李瑞奇摘要 該設(shè)計(jì)介紹了一種以at89s51單片機(jī)為核心,并帶有片外擴(kuò)展at24c02為存儲(chǔ)器。以七段數(shù)碼管顯示星期、時(shí)、分和秒。發(fā)光二極管作為指示燈標(biāo)志和按鍵較時(shí)、定時(shí)自動(dòng)打鈴器。關(guān)鍵詞 單片機(jī) 存儲(chǔ)器 數(shù)碼管 1引言隨著科學(xué)技術(shù)的發(fā)展,自動(dòng)控制在人們的生活中可以說(shuō)是“無(wú)孔不入”小到遙控兒童玩具,大到冰箱空調(diào)的智能化,這都?xì)w結(jié)于科學(xué)技術(shù)的進(jìn)步。特別是單片機(jī)(singlechip microcomputer scm)技術(shù)的應(yīng)用,不但降低了生產(chǎn)成本,而且更為重要的是方便了消費(fèi)者,使操作簡(jiǎn)潔、安全。單片機(jī)的應(yīng)用讓許多很復(fù)雜的事情,都輕而易舉的實(shí)現(xiàn)

2、了。用單片機(jī)控制的自動(dòng)打鈴器,充分發(fā)揮單片機(jī)體積小,價(jià)格便宜,功耗低,可靠性好等特點(diǎn)??捎糜趯W(xué)校作息,方便了廣大師生。2總體設(shè)計(jì)方案2.1設(shè)計(jì)思路 利用單片機(jī)及定時(shí)器設(shè)計(jì)的一個(gè)時(shí)鐘,在每次秒加1的計(jì)時(shí)過(guò)程中,都與規(guī)定的時(shí)間作比較,如果相等就進(jìn)行開關(guān)電鈴,不等則返回。2.2總體設(shè)計(jì)框圖at89s51打鈴器鍵盤電路復(fù)位電路數(shù)碼管顯示狀態(tài)指示片外存儲(chǔ)器圖1 總體設(shè)計(jì)框圖2.3設(shè)計(jì)方案 根據(jù)設(shè)計(jì)任務(wù)和其基本要求,針對(duì)當(dāng)前一般打鈴儀的操作繁瑣,復(fù)雜,使用起來(lái)不太方便,設(shè)計(jì)了由單片機(jī)(at89s51)作為主控器件,七位數(shù)碼管作為顯示電路,七個(gè)按鍵組成的按鍵操作電路,七個(gè)發(fā)光二極管組成的狀態(tài)指示電路,掉電存

3、儲(chǔ)電路和5v電源電路構(gòu)成的自動(dòng)打鈴器。除了以上的硬件電路外,還充分利用軟件、硬件相結(jié)合,充分發(fā)揮單片機(jī)設(shè)計(jì)的優(yōu)勢(shì)。使設(shè)計(jì)更具特色。系統(tǒng)可分成三部分,即時(shí)鐘電路、時(shí)間顯示電路、控制電路,而時(shí)鐘電路起控制主導(dǎo)作用。時(shí)鐘電路的構(gòu)成由單片機(jī)及其定時(shí)器完成,時(shí)間顯示電路則由單片機(jī)串口輸出,送到外部集成芯片74ls164進(jìn)行譯碼,最后由數(shù)碼管顯示出來(lái)??刂齐娐罚哼@部分電路非常重要,它控制著ram的復(fù)位操作、定時(shí)設(shè)置、時(shí)序控制、校時(shí)電路控制;由啟動(dòng)電路、延時(shí)控制等單元電路組成。其它輔助電路:因?yàn)閞am掉電后數(shù)據(jù)將會(huì)全部丟失,所以可加入掉電保護(hù)電路,來(lái)保存以設(shè)置好的定時(shí)信號(hào),這樣可以增加系統(tǒng)的可靠性。由at2

4、4c02來(lái)完成。3設(shè)計(jì)原理分析3.1按鍵功能初步設(shè)計(jì)了由六個(gè)按鍵來(lái)完成所有的操作,它們的功能分別是:復(fù)位鍵、功能鍵、校時(shí)定時(shí)鍵、加一鍵、減一鍵、確定鍵,具體操作方法由軟件設(shè)計(jì)為菜單式操作,使所有的操作更加的簡(jiǎn)潔,方便。使本打鈴控制器更具有現(xiàn)代化。3.2狀態(tài)指示狀態(tài)指示電路由硬件部分(六個(gè)發(fā)光二極管),結(jié)合軟件使操作狀態(tài)一目了然。第一個(gè)發(fā)光二極管亮?xí)r候,表明當(dāng)前狀態(tài)為時(shí)間顯示;第二個(gè)發(fā)光二極管亮?xí)r候,表明此狀態(tài)為時(shí)間調(diào)整狀態(tài);第三個(gè)發(fā)光二極管亮?xí)r候,表明此狀態(tài)為時(shí)間加一狀態(tài);第四個(gè)發(fā)光二極管亮?xí)r候,表明此狀態(tài)為時(shí)間減一狀態(tài);第五個(gè)發(fā)光二極管亮?xí)r候,表明此狀態(tài)為定時(shí)時(shí)間設(shè)定存儲(chǔ)狀態(tài)。3.3打鈴控制

5、比較所存儲(chǔ)的打零時(shí)間點(diǎn),到打鈴時(shí)間時(shí)進(jìn)行打鈴。3.4存儲(chǔ)器介紹at24c02是美國(guó)atmel公司的低功耗cmos串行eeprom,它是內(nèi)含256 x 8存儲(chǔ)空間,具有工作電壓寬(2.5v-5.5v),擦寫次數(shù)多(大于10000次),讀寫速度快(小于10ms)等特點(diǎn)。 at24c02的1、2、3腳是三條地址線,用于確定芯片的硬件地址。在at89c51試驗(yàn)開發(fā)板上它們都接地,第8腳和第4分別為正、負(fù)電源。第5腳sda為串行輸入輸出,數(shù)據(jù)通過(guò)這條雙向i2c總線串行傳送。第6腳scl為串行時(shí)鐘輸入線。sda和scl都需要和正電源間各接一個(gè)5.1k的上拉電阻。第7腳需要接地。 24c02中帶有片內(nèi)地址寄

6、存器。每寫入或讀出一個(gè)數(shù)據(jù)字節(jié)后,該地址寄存器自動(dòng)加一,以實(shí)現(xiàn)對(duì)下一個(gè)存儲(chǔ)單元的讀寫。所有的字節(jié)均以單一的方式進(jìn)行讀取。為降低總的寫入時(shí)間,一次可寫入多大8個(gè)字節(jié)的數(shù)據(jù)。3.5電路原理圖(1)電源和繼電器圖2 電源電路圖 圖3 繼電器電路圖(2)主電路圖4 主電路圖4程序流程框圖4.1總體程序流程圖初始化主程序按鍵程處序理中斷程服序務(wù)顯示程序圖5 總體程序流程圖4.2主程序流程圖比較打鈴程序計(jì)時(shí)程序中斷返回定時(shí)器溢出中斷顯 示校 時(shí)圖6 主程序流程圖4.3校時(shí)程序流程圖yn減一?加一?nyn定時(shí)校時(shí)部分功能鍵星期調(diào)整小時(shí)調(diào)整分鐘調(diào)整秒調(diào)整調(diào)用閃爍子程序調(diào)用顯示子程序退出?.yn確定?y保存設(shè)置

7、圖7 校時(shí)程序流程圖秒單元清0,分加14.4時(shí)鐘打鈴程序n分鐘相等?ynyynt0中斷保護(hù)現(xiàn)場(chǎng)1s到?=60s?秒單元加1n中斷保護(hù)現(xiàn)場(chǎng)比較小時(shí)小時(shí)相等?比較分鐘秒單元清0,分加1 =7day?圖9 打鈴中斷程序流程圖yyyn=60min?分單元清0,時(shí)加1=24h?時(shí)單元清0,星期單元加1nn打鈴y恢復(fù)現(xiàn)場(chǎng),中斷返回星期單元清1圖8 時(shí)鐘中斷程序流程圖5心得與體會(huì)經(jīng)過(guò)將近三周的單片機(jī)實(shí)習(xí),在指導(dǎo)老師和同學(xué)的幫助下,我確實(shí)學(xué)到了不少平時(shí)在課堂上所學(xué)不到的知識(shí)。這樣的實(shí)習(xí)不論是對(duì)我們的理論知識(shí)還是實(shí)踐能力都有很大的幫助,經(jīng)過(guò)這些實(shí)習(xí)可以使我們能更快更準(zhǔn)確的掌握專業(yè)方面的理論知識(shí)。我們這次的設(shè)計(jì)是

8、基于單片機(jī)控制的自動(dòng)打鈴器,雖然說(shuō)我們已經(jīng)學(xué)習(xí)過(guò)單片機(jī)課程,但是對(duì)于單片機(jī)這個(gè)詞還是有些陌生。并不是太清楚單片機(jī)的功能和性能方面的知識(shí),為了使自己設(shè)計(jì)的題目更加合理,我可以說(shuō)是在圖書館查閱了很多有關(guān)單片機(jī)和自動(dòng)打鈴器方面的知識(shí),也對(duì)別人設(shè)計(jì)的相關(guān)題目進(jìn)行了參考和分析。剛開始的時(shí)候看到這些電路覺(jué)得這些電路都不錯(cuò),都挺符合自己所設(shè)計(jì)的要求,經(jīng)過(guò)自己仔細(xì)分析和同學(xué)探討,得到的結(jié)論是,雖然說(shuō)資料上的驅(qū)動(dòng)電路在理論分析上是行的通的,如果把它拿到實(shí)際的電路中,可以看到它并不一定能起到我們所要達(dá)到的目的。我感覺(jué)這次實(shí)習(xí)我們得到更多的是,對(duì)辦任何事情我們都要先經(jīng)過(guò)認(rèn)真細(xì)致的觀察和分析,才能確定我們到底該如何去

9、做它,要不然,只會(huì)是事倍功半,耽誤我們的辦事效率。我覺(jué)得這個(gè)方面的經(jīng)驗(yàn)是最寶貴的,也是我們?cè)诋厴I(yè)后,進(jìn)入社會(huì)所必須的能力。我們也只有具備了這個(gè)基本的能力后,才不至于在以后的生活,學(xué)習(xí)和工作中誤入歧途,對(duì)自己和對(duì)他人造成不必要的損失??傊ㄟ^(guò)這次實(shí)習(xí),我真正學(xué)到了很多東西,真正體會(huì)到了理論聯(lián)系實(shí)際的重要性。我想如果在平時(shí)多搞幾次這樣的實(shí)習(xí),那我們的知識(shí)會(huì)掌握的更多,更牢固。最后,衷心感謝輔導(dǎo)老師的指導(dǎo)和同學(xué)的幫助!參考文獻(xiàn)1周航慈著.單片機(jī)應(yīng)用程序設(shè)計(jì)基礎(chǔ).北京:電子工業(yè)出版社,1997年7月2朱承高.電工及電子技術(shù)手冊(cè)m.北京:高等教育出版社,19903閻石.數(shù)字電子技術(shù)基礎(chǔ)(第三版). 北

10、京:高等教育出版社,19894廖常初.現(xiàn)場(chǎng)總線概述j.電工技術(shù),1999.65 李廣弟編著.單片機(jī)應(yīng)用程序設(shè)計(jì)基礎(chǔ).北京:北京航空航天大學(xué)出版社,1994年6月附錄1程序分為五部分1.初始化程序,2.鍵值處理程序,3.中斷程序,4.顯示程序,5.延時(shí)程序2程序清單 org 0000h ljmp main org 000bh ljmp toint org 001bh ljmp dlbj;*主程序* org 30hmain:mov ie,#8ah ;開t0,t1中斷 mov tmod,#11h ;定時(shí)器方式1 mov th0,#0d8h mov tl0,#0f0h ;初值 mov a,#0 mov

11、 59h,a mov 60h,a mov 61h,a mov 62h,a mov 63h,a mov 64h,a mov 65h,a mov 66h,a;清零 m_sec equ 20h ;毫秒單元 sec equ 21h ;秒單元 min equ 22h ;分單元 hour equ 23h ;時(shí)單元 week equ 24h ;星期單元 setb tr0 setb tr1 clr p1.0 clr a mov r0,a mov r1,a mov r2,a mov r3,a mov r5,a mov r6,a mov r7,a mov m_sec ,#00 ;毫秒單元清零 mov sec ,#

12、00 ;秒單元清零 mov min ,#00 ;分單元清零 mov hour ,#00 ;時(shí)單元清零 mov week ,#00 ;星期單元清零 mov 70h,a mov 71h,a mov 72h,a mov 73h,a mov 74h,a lcall xs ;調(diào)用顯示程序;*;*數(shù)字鐘按鍵程序*;*;*調(diào)時(shí)鐘按鍵*net1:jb p0.0,net2 lcall ys10ms jb p0.0,net2 clr p2.2 jnb p0.0,$ setb p2.2 clr p1.1 setb p1.0 setb tr0 ;開中斷 setb tr1 clr p1.0 ;正常運(yùn)行 setb p1.

13、1 setb p1.2 setb p1.3 mov 59h,#00 mov r7,#00;*調(diào)整時(shí)間部分切換鍵*net2:mov a ,59h cjne a ,#00 ,net3 jb p0.1 ,net9 ;數(shù)字鐘調(diào)整時(shí)間部分切換鍵 lcall ys10ms jb p0.1 ,net9 clr p2.2 inc 59h jnb p0.1 ,$ setb p2.2 inc r7 clr tr0 clr tr1 sjmp net4net3: jb p0.1 ,net4 lcall ys10ms jb p0.1 ,net4 clr p2.2 inc 59h jnb p0.1 ,$ setb p2.

14、2 inc r7net4: cjne r7 ,#1 ,net5 lcall ssh ;秒閃爍 sjmp net9net5: cjne r7 ,#2 ,net6 lcall msh ;分閃爍 sjmp net9net6: cjne r7 ,#3 ,net7 lcall hsh ;時(shí)閃爍 sjmp net9net7: mov r7 ,#0 lcall wsh ;星期閃爍 sjmp net9net8: lcall xs ;*調(diào)整時(shí)間加1鍵*net9: jb p0.2 ,net115 ;數(shù)字鐘調(diào)整時(shí)間鍵 lcall ys10ms jb p0.2 ,net13 clr p2.2 clr p1.2 cjn

15、e r7 ,#1 ,net10 setb p2.2 setb p1.3 lcall ys200ms inc sec ;秒單元加1 mov a ,sec cjne a ,#60 ,net8 ;不等60時(shí)跳轉(zhuǎn)顯示,等60時(shí)將秒單元清零 mov sec ,#00 lcall xs jb p0.2 ,net13 ljmp net9net115: ljmp net15net10: cjne r7 ,#2 ,net11 setb p2.2 setb p1.3 lcall ys200ms inc min ;分單元加1 mov a ,min cjne a ,#60 ,net8 ;不等60時(shí)跳轉(zhuǎn)顯示,等60時(shí)將

16、分單元清零 mov min ,#00 lcall xs jb p0.2 ,net13 ljmp net9net11: cjne r7 ,#3 ,net12 setb p2.2 setb p1.3 lcall ys200ms inc hour ;時(shí)單元加1 mov a ,hour cjne a ,#24 ,net8 ;不等24時(shí)跳轉(zhuǎn)顯示,等24時(shí)將時(shí)單元清零 mov hour ,#00 lcall xs jb p0.2 ,net13 ljmp net9net12: setb p2.2 setb p1.3 lcall ys200ms inc week ;星期單元加1 mov a ,week cjn

17、e a ,#08 ,net8 ;不等7時(shí)跳轉(zhuǎn)顯示,等7時(shí)將星期單元清零 mov week ,#01 lcall xs jnb p0.2 ,net13 ljmp net9net13: sjmp net15 net14: lcall xs;*調(diào)整時(shí)間減1鍵*net15: jb p0.3 ,net19 ;數(shù)字鐘調(diào)整時(shí)間鍵 lcall ys10ms jb p0.3 ,net19 clr p2.2 clr p1.3 cjne r7 ,#1 ,net16 setb p2.2 setb p1.2 lcall ys200ms dec sec ;秒單元減1 mov a ,sec cjne a ,#0ffh ,n

18、et14 ;不等60時(shí)跳轉(zhuǎn)顯示,等60時(shí)將秒單元清零 mov sec ,#59 lcall net14 jb p0.3 ,net19 ljmp net15net16: cjne r7 ,#2 ,net17 setb p2.2 setb p1.2 lcall ys200ms dec min ;分單元減1 mov a ,min cjne a ,#0ffh ,net14 ;不等60時(shí)跳轉(zhuǎn)顯示,等60時(shí)將分單元清零 mov min ,#59 lcall net14 jb p0.3 ,net19 ljmp net15net17: cjne r7 ,#3 ,net18 setb p2.2 setb p1.

19、2 lcall ys200ms dec hour ;時(shí)單元減1 mov a ,hour cjne a ,#0ffh ,net14 ;不等24時(shí)跳轉(zhuǎn)顯示,等24時(shí)將時(shí)單元清零 mov hour ,#23 lcall net14 jb p0.3 ,net19 ljmp net15net18: setb p2.2 setb p1.2 lcall ys200ms dec week ;星期單元減1 mov a ,week cjne a ,#00 ,net14 ;不等7時(shí)跳轉(zhuǎn)顯示,等7時(shí)將星期單元清1 mov week ,#07 lcall net14 jb p0.3 ,net19 ljmp net15n

20、et19: ljmp dsh;*定時(shí)程序*dsh: mov r2,#00 jb p0.4 ,nt11 lcall ys10ms jb p0.4 ,nt11 clr p2.2 clr p1.4 jnb p0.4,$ setb p2.2 inc r2 cjne r2,#01,nta ;第1個(gè)打鈴點(diǎn) mov r1,#30h lcall cunnt11: ljmp nt1nta: cjne r2,#02,ntb ;第2個(gè)打鈴點(diǎn) lcall cunntb: cjne r2,#03,ntc ;第3個(gè)打鈴點(diǎn) lcall cunntc: cjne r2,#04,ntd ;第4個(gè)打鈴點(diǎn) lcall cunntd

21、: cjne r2,#05,nte ;第5個(gè)打鈴點(diǎn) lcall cunnte: cjne r2,#06,ntf ;第6個(gè)打鈴點(diǎn) lcall cunntf: cjne r2,#07,ntg ;第7個(gè)打鈴點(diǎn) lcall cunntg: cjne r2,#08,nth ;第8個(gè)打鈴點(diǎn) lcall cunnth: cjne r2,#09,nti ;第9個(gè)打鈴點(diǎn) lcall cunnti: cjne r2,#10,ntj ;第10個(gè)打鈴點(diǎn) lcall cunntj: cjne r2,#11,ntk ;第11個(gè)打鈴點(diǎn) lcall cunntk: cjne r2,#12,ntl ;第12個(gè)打鈴點(diǎn) lcall

22、 cunntl: cjne r2,#13,ntm ;第13個(gè)打鈴點(diǎn) lcall cunntm: cjne r2,#14,ntn ;第14個(gè)打鈴點(diǎn) lcall cunntn: cjne r2,#15,nto ;第15個(gè)打鈴點(diǎn) lcall cunnto: cjne r2,#16,ntp ;第16個(gè)打鈴點(diǎn) lcall cunntp: cjne r2,#17,ntq ;第17個(gè)打鈴點(diǎn) lcall cunntq: cjne r2,#18,ntr ;第18個(gè)打鈴點(diǎn) lcall cunntr: cjne r2,#19,nts ;第19個(gè)打鈴點(diǎn) lcall cunnts: cjne r2,#20,nt1 ;第

23、20個(gè)打鈴點(diǎn) lcall cunnt1: ljmp net1;*打鈴點(diǎn)存儲(chǔ)子程序*cun: mov r1,hour inc r1 mov r1,min inc r1;*時(shí)鐘中斷程序*toint: push psw push acc ;保護(hù)現(xiàn)場(chǎng) mov th0 ,#0d8h mov tl0 ,#0f0h ;重新賦計(jì)數(shù)初值 inc m_sec ;毫秒單元加1 mov a ,m_sec cjne a ,#100 ,next1 mov m_sec ,#00 inc sec ;秒單元加1 mov a ,sec cjne a ,#60 ,next1 mov sec ,#00 inc min ; mov a

24、 ,min cjne a ,#60 ,next1 mov min ,#00 inc hour ; mov a ,hour cjne a ,#24 ,next1 mov hour ,#00 inc week mov a ,week cjne a ,#08 ,next1 mov week ,#01next1: lcall xs pop acc pop psw ;恢復(fù)現(xiàn)場(chǎng) reti ;中斷返回;*打鈴中斷程序*dlbj:push psw push acc mov th0,#0d8h mov tl0,#0f0h mov r0,#30hfh: mov a,r0 cjne a,hour,lop1 inc

25、r0 mov a,r0 cjne a,min,lop2 clr p2.2 clr p1.4 ;鈴聲響 lcall ys1min ;延時(shí)1分鐘 setb p2.2 setb p1.4 ;鈴聲停 clr a mov 7fh,a ajmp lop2lop1: inc r0lop2: inc r0 cjne r0,#58h,fhlop3: lcall xs pop psw pop acc reti;*數(shù)字鐘顯示程序*xs: mov a ,sec ;將秒送a mov b ,#10 div ab mov 60h ,b ;秒的個(gè)位 mov 61h ,a ;秒的十位 mov a ,min ;將分送a mov

26、b ,#10 div ab mov 62h ,b ;分的個(gè)位 mov 63h ,a ;分的十位 mov a ,hour ;將時(shí)送a mov b ,#10 div ab mov 64h ,b ;時(shí)的個(gè)位 mov 65h ,a ;時(shí)的十位 mov a ,week ;星期的送a mov b ,#10 div ab mov 66h ,b ;星期的個(gè)位lcp: mov r1 ,#60h mov r5 ,#7 mov dptr ,#tabbk: mov a ,r1 movc a ,a+dptr mov sbuf ,a jnb ti ,$ clr ti inc r1 djnz r5 ,bk rettab: db 11h,0d7h,

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論