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

下載本文檔

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

文檔簡介

1、基于單片機控制的電鈴控制器 設(shè)計要求一)基本功能1. 顯示: 可以顯示 星期、時、分和秒2. 打鈴:每天可設(shè)置 20次,打鈴持續(xù)時間每次 1-90 秒可調(diào),每次打鈴的間隔 時間 1-99 分鐘可調(diào) .3. 鈴聲: 內(nèi)置蜂鳴器可以發(fā)出監(jiān)控聲音二)性能 : 時間日誤差 1.5 秒三)擴展功能 :1可設(shè)定單 / 雙休息日不打鈴2隨季節(jié)變化 , 每天自動調(diào)整開與關(guān)的時間目錄1 引言12 總體設(shè)計方案12.1 設(shè)計思路12.2 總體設(shè)計框圖12.3 設(shè)計方案13 設(shè)計原理分析23.1 按鍵功能23.2 狀態(tài)指示23.3 打鈴控制23.4 電路原理圖24 程序流程框圖34.1 總體程序流程圖34.2 主程

2、序流程圖34.3 校時程序流程圖44.4 時鐘打鈴程序流程圖45 心得與體會5參考文獻 5 附錄 6基于單片機控制的電鈴控制器摘要: 該設(shè)計介紹了一種以 AT89c51單片機為核心,以七段數(shù)碼管顯示星期、時、 分和秒,發(fā)光二極管作為指示燈標(biāo)志及按鍵較時、定時的自動打鈴器。關(guān)鍵詞: 單片機 電鈴 自動 數(shù)碼管1 引言基于目前傳統(tǒng)電鈴噪音大,聲音刺耳,不符合人們追求綠色環(huán)保的要求,我們 采用 89c51 單片機設(shè)計了一套自動打鈴系統(tǒng)。 單片機( Single Chip Microcomputer SCM)技術(shù)的應(yīng)用,不但降低了生產(chǎn)成本,同時也方便了消費者,使操作簡潔、安 全。單片機的應(yīng)用使許多復(fù)雜

3、的事情,都能夠簡單、方便的實現(xiàn)了。用單片機控制 的自動打鈴器,充分發(fā)揮單片機體積小,價格便宜,功耗低,可靠性好等特點,充 分發(fā)揮了單片機的控制優(yōu)勢。本打鈴器可用于作息時間控制,方便了廣大師生。2 總體設(shè)計方案 :2.1 設(shè)計思路利用單片機及其定時器設(shè)計的一個時鐘,在每次毫秒加 1 的計時過程中,都與 設(shè)定的打鈴時間作比較,如果相等就輸出打鈴信號,不等則返回。如此反復(fù)運行。2.2 總體設(shè)計框圖數(shù)碼管顯示鍵盤電路AT89S51狀態(tài)指示復(fù)位電路打鈴信號圖 1 總體設(shè)計框圖2.3 設(shè)計方案根據(jù)設(shè)計任務(wù)的基本要求,設(shè)計了由單片機( AT89S51)作為主控器件,七段 數(shù)碼管作為顯示電路,七個按鍵組成的按

4、鍵操作電路,七個發(fā)光二極管組成的狀態(tài) 指示電路,以及三極管、蜂鳴器組成的報警提示電路和繼電器組成的打鈴信號輸出 電路構(gòu)成的自動打鈴器。除了以上的硬件電路外,還充分利用軟件、硬件相結(jié)合,充分發(fā)揮單片機設(shè)計 的優(yōu)勢。使設(shè)計更具特色。系統(tǒng)可分成三部分,即時鐘電路、時間顯示電路、控制電路,而時鐘電路起控 制主導(dǎo)作用。時鐘電路的構(gòu)成由單片機及其定時器完成,時間顯示電路則由單片機串口輸 出,送到外部集成芯片 74LS164,最后由七段數(shù)碼管顯示出來。控制電路主要控制 著復(fù)位電路、校時以及設(shè)置打鈴點等操作,并配以狀態(tài)指示電路輔助操作。3 設(shè)計原理分析 :3.1 按鍵功能初步設(shè)計了由六個按鍵來完成所有的操作,

5、它們的功能分別是:復(fù)位鍵、設(shè)置 鍵、存儲鍵、加一鍵、減一鍵、確認鍵,具體操作方法由軟件設(shè)計為菜單式操作, 使所有的操作更加的簡潔,方便。3.2 狀態(tài)指示狀態(tài)指示電路由硬件部分(六個發(fā)光二極管) ,結(jié)合軟件使操作狀態(tài)一目了然。 第一個發(fā)光二極管亮?xí)r候,表明當(dāng)前狀態(tài)為時間顯示;第二個發(fā)光二極管亮?xí)r候, 表明此狀態(tài)為時間調(diào)整狀態(tài);第三個發(fā)光二極管亮?xí)r候,表明此狀態(tài)為時間加一狀 態(tài);第四個發(fā)光二極管亮?xí)r候,表明此狀態(tài)為時間減一狀態(tài);第五個發(fā)光二極管亮 時候,表明此狀態(tài)為定時時間設(shè)定存儲狀態(tài)。3.3 打鈴控制比較所存儲的打零時間點,到打鈴時間時進行打鈴。3.4 電路原理圖LED18LED28LED38L

6、ED48LED588a b c d e f pdgab cd ef pdgab c d e f pdga b c d e f pgda b c d e f pgdLED6a bc d e f pgd711 01 F QQ643611 01345211316FBC111 0134521316FBCQ Q Q QQ QLED7 008 I4N1I7011 01 F34B52131004 IN6CC DNVGU211 0174LS1Q Q QQ Q Q U37 4LS1 64 7LR4LLKS1 64CC ND A BC C V GFQGQ CQ BQFQDKLCRL6DNGLSCCVRLCBA16

7、DNGLSCCVRLCBA6DNGLSCCVRLCBA6DNGLS1CCVRLCBA6DNGLSCCVVCCVCCR1 20K0K0KS2S3S561011VCC1517F89R61KS4R1 5CRY12MHz1920C1C23 3PF33PF18P1. 0VCCP1. 1P0. 0P1. 2P0. 1P1. 3P0. 2P1. 4P0. 3P1. 5/MOSIP0. 4P1. 6/MISOP0. 5P1. 7/SCKP0. 6RESTP0. 7P3. 0/RXDEA/VPPP3. 1/TXDALE/PROGP3. 2/INT0P3. 3/INT1P2. 7P3. 4/T0P2. 6P3.

8、5/T1P2. 5P3. 6/WRP2. 4P3. 7/RDP2. 3XTAL2P2. 2XTAL1P2. 1GNDP2. 0U1AT89 S5130282624233534373633322221VCCR51KR41K1R3KR2R11K1KVCC4039VCC2JDK1JDGJDB2JDB1JDGJDKVCCJDGKM1Q28550R171KD8N4 0073SPEAKVCCQ18550DK JDB圖 2 總體電路圖圖 2 中,S1為確認鍵, S2為設(shè)置鍵, S3為加一鍵, S4為減一鍵, S5為存儲鍵, S7為復(fù)位鍵。當(dāng) S2按下時 L2亮,S3按下時 L3亮,S4按下時 L4亮,S5按

9、下時 L5 亮。L1 為正常運行指示。 S5,L6暫無使用。蜂鳴器在每個操作時給予報警提示。 繼電器電路作為打鈴信號輸出電路,對外提供打鈴信號。4 程序流程框圖4.1 總體程序流程圖根據(jù)硬件設(shè)計結(jié)果,為滿足要求,程序應(yīng)有主程序、按鍵處理程序、中斷服務(wù) 程序和顯示程序等部分構(gòu)成。主程序中主要是程序各部分的初始化;按鍵處理程序 處理五個按鍵的操作,包括各個按鍵的響應(yīng)程序以及按鍵指示、閃爍指示、報警輸 出等;顯示程序顯示星期、時、分、秒,主要是時鐘顯示。初始化主程序按鍵 處理 程序中斷 服務(wù) 程序顯示程序圖3 總體程序流程圖4.2 主程序流程圖該部分程序主要是對程序中所用到的數(shù)據(jù)單元進行初始化, 以

10、及定時器的賦初 值。圖 4 主程序流程圖4.3 校時程序流程圖該部分的鍵盤掃描為程序掃描方式, CPU不停的對 P1口進行掃描,當(dāng)任何一個 鍵按下時,與之相連的輸入數(shù)據(jù)線即被清 0(低電平),而平時該線為 1(高電平) 這種鍵盤掃描方式的優(yōu)點是電路簡單: 缺點是當(dāng)鍵數(shù)較多時, 要占用較多的 I/O 線 由于按鍵的機械特性,在閉合及斷開的瞬間均伴隨有一連串的抖動,鍵抖動會引起 一次按鍵被誤讀多次。為了確保 CPU對鍵的一次閉合僅作一次處理,必須去除鍵抖 動。該程序使用 10ms延時程序作為去抖動程序去除鍵抖動。校時程序設(shè)置鍵星期調(diào)整小時調(diào)整 分鐘調(diào)整秒調(diào)整調(diào)用閃爍子程序調(diào)用顯示子程序保存設(shè)置圖5

11、 校時程序流程圖4.4 時鐘打鈴程序流程圖時鐘打鈴程序使用單片機 T0、T1 兩個定時器中斷,兩個定時器均為方式一,初值為 10ms,當(dāng)定時器 T0 溢出時響應(yīng)中斷,使毫秒單元加 1,當(dāng)毫秒單元滿 100 時 分單元加 1,依此類推。當(dāng)定時器 T1 溢出時響應(yīng)中斷,依次比較存儲的打鈴點,條 件符合就輸出打鈴信號。中斷均需保護現(xiàn)場,返回時恢復(fù)現(xiàn)場。T1中斷打鈴圖 6 時鐘打鈴中斷程序流程圖5 心得與體會 : 周一老師布置了課程設(shè)計的任務(wù),老師沒有像其他小組一樣好幾個人做一個 題目,而是讓我們小組每人做一個題目,這給了我們足夠的 空間,我們可以按照 自己的想法去做,做自己感興趣的東西。我?guī)捉?jīng)周折最

12、終選擇做一個單片機控制的 電鈴,電鈴可以按照我在程序中設(shè)定的時間自動打鈴。開始就是上網(wǎng)查資料,去圖 書館找有關(guān)方面的書籍,東拼西湊。周三才把程序和電路圖做好。在上機調(diào)試的時 候遇到了很大的麻煩,程序運行沒有錯誤,就是連接電路時發(fā)現(xiàn)我用到的芯片實驗 臺上都沒有,我又找其他芯片代替,可沒有找到合適,以至于調(diào)試不成功??傊谶@一周的課程設(shè)計中,我學(xué)到了很多課堂上學(xué)不到的東西,也深刻的 體驗到了實踐的重要性。只學(xué)習(xí)理論而不實踐,那理論就是一具空殼。只有實踐才 能檢驗自己所學(xué)的理論知識。實踐的好處就在于能幫助你去更好地理解理論知識, 平時課堂上不理解的東西,在實踐的過程中就能很好的理解。雖然這次課程設(shè)計

13、上 機調(diào)試沒有成功,但是我自己畢竟努力做了。參考文獻 :1 周航慈 . 單片機應(yīng)用程序設(shè)計基礎(chǔ) M. 北京 : 電子工業(yè)出版社 ,1997 年 7 月2 朱承高 . 電工及電子技術(shù)手冊 M. 北京 : 高等教育出版社 ,19903 閻石.數(shù)字電子技術(shù)基礎(chǔ)(第三版) M.北京:高等教育出版社 ,19894 廖常初. 現(xiàn)場總線概述 J. 電工技術(shù) ,1999.65 李朝青. 單片機原理及接口技術(shù)(第三版) M .北京;北京航空航天大學(xué)出版 社,2005 年 10 月附錄1 程序分為五部分 :1. 初始化程序, 2. 鍵值處理程序, 3. 中斷程序, 4. 顯示程序, 5. 延時程序2 程序清單 :

14、ORG 0000HLJMP MAINORG 000BHLJMP TOINTORG 001BHLJMP DLBJ主程序ORG 30HMAIN: MOV IE,#8AH;開 T0,T1 中斷MOV TMOD,#11H ;定時器方式 1MOV TH0,#0D8HMOV TL0,#0F0H ;初值MOV A,#0MOV 59H,AMOV 60H,AMOV 61H,AMOV 62H,AMOV 63H,AMOV 64H,AMOV 65H,AMOV 66H,A; 清零m_secEQU20H;毫秒單元secEQU21H;秒單元minEQU22H;分單元hourEQU23H;時單元weekEQU24H;星期單元

15、SETB TR0SETB TR1CLR P1.0CLR AMOV R0,AMOV R1,AMOV R2,AMOV R3,AMOV R5,AMOV R6,AMOV R7,AMOVms,#00;毫秒單元清零MOVsec,#00;秒單元清零MOVmin,#00;分單元清零MOVhour,#00;時單元清零MOVweek,#00; 星期單元清零MOV 70H,AMOV 71H,AMOV 72H,AMOV 73H,AMOV 74H,ALCALL XS;調(diào)用顯示程序數(shù)字鐘按鍵程序調(diào)時鐘按鍵 *NET1: JB P0.0,NET2LCALL YS10MSJB P0.0,NET2CLR p2.2JNB P0.

16、0,$SETB p2.2CLR P1.1;開中斷;正常運行SETB P1.0SETB TR0SETB TR1CLR P1.0SETB P1.1SETB P1.2SETB P1.3MOV 59H,#00MOV R7,#00調(diào)整時間部分切換鍵 *NET2: MOV CJNE JB LCALL JB CLRA,59HA,#00 ,NET3P0.1,NET9 ;數(shù)字鐘調(diào)整時間部分切換鍵YS10MsP0.1 ,NET9p2.2INC59HJNBP0.1 ,$SETBp2.2INCR7CLRTR0CLRTR1SJMPNET4NET3:JBP0.1 ,NET4LCALLYS10msJBP0.1 ,NET4C

17、LRp2.2INC59HJNBP0.1 ,$SETBp2.2INCR7NET4:CJNER7 ,#1,NET5LCALLSSH;秒閃爍SJMPNET9NET5:CJNER7 ,#2,NET6LCALLMSH;分閃爍SJMPNET9NET6:CJNER7 ,#3,NET7LCALLHSH;時閃爍SJMPNET9NET7:MOVR7 ,#0LCALLWSH;星期閃爍SJMPNET9NET8:LCALLXS調(diào)整時間加 1 鍵 *NET9:JBP0.2 ,NET115; 數(shù)字鐘調(diào)整時間鍵LCALLYS10msJBP0.2 ,NET13CLRp2.2CLRP1.2CJNER7 ,#1,NET10SETB

18、p2.2SETBP1.3LCALLYS200msINCsec ;秒單元加 1MOVA ,secCJNEA ,#60,NET8 ;不等 60 時跳轉(zhuǎn)顯示60 時將秒單元清零MOVsec ,#00LCALLXSJBP0.2,NET13LJMPNET9LJMPNET15CJNER7,#2 ,NET11SETBp2.2SETBP1.3LCALLYS200msINCmin;分單元加 1MOVA,minCJNEA,#60 ,NET8 ;不等MOVmin,#00LCALLXSJBP0.2,NET13LJMPNET9CJNER7,#3 ,NET12SETBp2.2SETBP1.3LCALLYS200msINC

19、hour;時單元加 1MOVA,hourCJNEA,#24 ,NET8 ;不等MOVhour,#00LCALLXSJBP0.2,NET13LJMPNET9SETBp2.2SETBP1.3LCALLYS200msINCweek;星期單元加 1MOVA,weekCJNEA,#08,NET8 ; 不等 7MOVweek,#01LCALLXSJNBP0.2,NET13LJMPNET9SJMPNET15LCALLXSNET115:NET10:單元清零NET11:單元清零NET12:元清零NET13:NET14:調(diào)整時間減 1 鍵 *60 時跳轉(zhuǎn)顯示,等 60 時將分24 時跳轉(zhuǎn)顯示,等 24 時將時時跳

20、轉(zhuǎn)顯示,等 7時將星期單NET15: JB LCALL JB CLR CLRCJNESETBSETB LCALLDEC MOV CJNE 秒單元清零MOV LCALL JB LJMPNET16: CJNESETBSETB LCALL DEC MOVCJNE 分單元清零MOV LCALL JB LJMPNET17: CJNESETBSETB LCALLDEC MOV CJNE 時單元清零MOV LCALL JB LJMPNET18: SETBSETB;數(shù)字鐘調(diào)整時間鍵hour; 時單元減 1A,hourA,#0FFH,NET14 ;不等 24時跳轉(zhuǎn)顯示,等 24時將hour,#23NET14P0

21、.3,NET19NET15P2.2P1.2P0.3 ,NET19YS10msP0.3 ,NET19P2.2P1.3R7 ,#1 ,NET16P2.2P1.2 YS200ms sec;秒單元減 1A,secA,#0FFH,NET14 ;不等 60時跳轉(zhuǎn)顯示,等 60時將sec ,#59NET14P0.3 ,NET19NET15R7 ,#2 ,NET17P2.2P1.2YS200msmin;分單元減 1A,minA,#0FFH ,NET14 ;不等 60 時跳轉(zhuǎn)顯示,等 60時將min ,#59NET14P0.3 ,NET19NET15R7 ,#3 ,NET18P2.2P1.2YS200msLCA

22、LLYS200msDECweek;星期單元減 1MOVA,week單元清 1CJNEA,#00 ,NET14 ;不等 7 時跳轉(zhuǎn)顯示,等 7 時將星期MOVweek,#07LCALLNET14JBP0.3,NET19LJMPNET15NET19:LJMPDSHDSH:MOV R2,#00JB P0.4 ,NT11LCALL YS10msJB P0.4 ,NT11CLR P2.2CLR P1.4JNB P0.4,$SETB P2.2INC R2CJNE R2,#01,NTAMOV R1,#30HLCALL CUN; 第 1 個打鈴點NT11:LJMP NT1NTA:CJNE R2,#02,NTB

23、LCALL CUN; 第 2 個打鈴點NTB:CJNE R2,#03,NTCLCALL CUN;第 3 個打鈴點NTC:CJNE R2,#04,NTDLCALL CUN;第 4 個打鈴點NTD:CJNE R2,#05,NTELCALL CUN;第 5 個打鈴點NTE:CJNE R2,#06,NTFLCALL CUN;第 6 個打鈴點NTF:CJNE R2,#07,NTGLCALL CUN;第7 個打鈴點NTG:CJNE R2,#08,NTHLCALL CUN;第 8 個打鈴點NTH:CJNE R2,#09,NTILCALL CUN;第 9 個打鈴點NTI:CJNE R2,#10,NTJLCAL

24、L CUN;第 10 個打鈴點NTJ:CJNE R2,#11,NTK;第 11 個打鈴點定時程序LCALL CUNNTK:CJNE R2,#12,NTLLCALL CUN;第 12 個打鈴點NTL:CJNE R2,#13,NTMLCALL CUN;第 13 個打鈴點NTM:CJNE R2,#14,NTNLCALL CUN;第 14 個打鈴點NTN:CJNE R2,#15,NTOLCALL CUN;第 15 個打鈴點NTO:CJNE R2,#16,NTPLCALL CUN;第 16 個打鈴點NTP:CJNE R2,#17,NTQLCALL CUN;第 17 個打鈴點NTQ:CJNE R2,#18

25、,NTRLCALL CUN;第 18 個打鈴點NTR:CJNE R2,#19,NTSLCALL CUN;第 19 個打鈴點NTS:CJNE R2,#20,NT1LCALL CUN;第 20 個打鈴點NT1:LJMP NET1打鈴點存儲子程序 *CUN:MOV R1,hourINC R1MOV R1,minINC R1時鐘中斷程序TOINT:PUSHPSWPUSHACC;保護現(xiàn)場MOVTH0,#0D8HMOVTL0,#0F0H;重新賦計數(shù)初值INCms;毫秒單元加 1MOVA,msCJNEA,#100,NEXT1MOVms,#00INCsec;秒單元加 1MOVA,secCJNEA,#60,NE

26、XT1MOVsec,#00INCminSETB P1.4CLR AMOV 7FH ,AAJMP LOP2LOP1:INC R0LOP2:INC R0CJNE R0,#58H,FHLOP3:LCALL XS POP PSW POP ACC RETI;鈴聲響;延時 1 分鐘;鈴聲停MOVA,minCJNEA,#60,NEXT1MOVmin,#00INChourMOVA,hourCJNEA,#24,NEXT1MOVhour,#00INCweekMOVA,weekCJNEA,#08,NEXT1MOVweek,#01NEXT1: LCALLXSPOPACCPOPPSW;恢復(fù)現(xiàn)場RETI;中斷返回打鈴中斷

27、程序DLBJ:PUSH PSWPUSH ACCMOV TH0,#0D8HMOV TL0,#0F0HMOV R0,#30HFH: MOV A,R0CJNE A,hour,LOP1INC R0MOV A,R0CJNE A,min,LOP2 CLR P2.2CLR P1.4LCALL YS1min SETB P2.2數(shù)字鐘顯示程序 *XS:MOVA,sec ;將秒送 AMOVB,#10DIVABMOV60H,B;秒的個位MOV61H,A;秒的十位MOVA,min ;將分送 AMOVB,#10DIVABMOV62H,B;分的個位MOV63H,A; 分的十位MOVA,hour ; 將時送 AMOVB,#10DIVABMOV64H,B;時的

溫馨提示

  • 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

提交評論