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

下載本文檔

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

文檔簡介

單片機(jī)原理與應(yīng)用技術(shù)題目:鑒于單片機(jī)控制的電鈴控制器鑒于單片機(jī)控制的電鈴控制器一.設(shè)計要求(一)基本功能顯示:能夠顯示禮拜、時、分和秒2.打鈴:每日可設(shè)置20次,打鈴連續(xù)時間每次1-90秒可調(diào),每次打鈴的間隔時間1-99分鐘可調(diào)。3.鈴聲:內(nèi)置蜂鳴器能夠發(fā)出監(jiān)控聲音(二)性能時間日偏差<1.5秒(三)擴(kuò)展功能1.可設(shè)定單/雙歇息日不打鈴2.隨季節(jié)變化,每日自動調(diào)整開與關(guān)的時間二.計劃達(dá)成時間三周1.第一周達(dá)成軟件和硬件的整體設(shè)計,同時按要求上交設(shè)計報告一份。2.第二周達(dá)成軟件的詳細(xì)設(shè)計和硬件的制作。3.第三周達(dá)成軟件和硬件的聯(lián)合調(diào)試。三.編寫設(shè)計報告寫出設(shè)計的全過程,附上相關(guān)資料和圖紙,居心得領(lǐng)會。四.辯論在規(guī)準(zhǔn)時間內(nèi),達(dá)成表達(dá)并回答下列問題。目錄1前言????????????????????????????????12體方案????????????????????????????12.1思路????????????????????????????12.2體框??????????????????????????12.3方案????????????????????????????13原理剖析????????????????????????????23.1按功能????????????????????????????23.2狀指示????????????????????????????23.3打控制????????????????????????????23.4路原理???????????????????????????24程序流程框????????????????????????????34.1體程序流程?????????????????????????34.2主程序流程??????????????????????????34.3校程序流程?????????????????????????44.4打程序流程???????????????????????45心得與領(lǐng)會?????????????????????????????5參照文件???????????????????????????????5附?????????????????????????????????6鑒于單片機(jī)控制的電鈴控制器綱要:該設(shè)計介紹了一種以AT89c51單片機(jī)為核心,以七段數(shù)碼管顯示禮拜、時、分和秒,發(fā)光二極管作為指示燈標(biāo)記及按鍵較時、準(zhǔn)時的自動打鈴器。重點詞:單片機(jī)電鈴自動數(shù)碼管前言鑒于目前傳統(tǒng)電鈴噪音大,聲音難聽,不切合人們追求綠色環(huán)保的要求,我們采納89c51單片機(jī)設(shè)計了一套自動打鈴系統(tǒng)。單片機(jī)(Single-ChipMicrocomputerSCM)技術(shù)的應(yīng)用,不只降低了生產(chǎn)成本,同時也方便了花費者,使操作簡短、安全。單片機(jī)的應(yīng)用使很多復(fù)雜的事情,都能夠簡單、方便的實現(xiàn)了。用單片機(jī)控制的自動打鈴器,充散發(fā)揮單片機(jī)體積小,價格廉價,功耗低,靠譜性好等特點,充散發(fā)揮了單片機(jī)的控制優(yōu)勢。本打鈴器可用于作息時間控制,方便了廣大師生。整體設(shè)計方案2.1設(shè)計思路利用單片機(jī)及其準(zhǔn)時器設(shè)計的一個時鐘,在每次毫秒加1的計時過程中,都與設(shè)定的打鈴時間作比較,假如相等就輸出打鈴信號,不等則返回。這樣頻頻運轉(zhuǎn)。2.2整體設(shè)計框圖數(shù)碼管顯示鍵盤電路AT89S51狀態(tài)指示復(fù)位電路打鈴信號圖1整體設(shè)計框圖2.3設(shè)計方案依據(jù)設(shè)計任務(wù)的基本要求,設(shè)計了由單片機(jī)(AT89S51)作為主控器件,七段數(shù)碼管作為顯示電路,七個按鍵構(gòu)成的按鍵操作電路,七個發(fā)光二極管構(gòu)成的狀態(tài)指示電路,以及三極管、蜂鳴器構(gòu)成的報警提示電路和繼電器構(gòu)成的打鈴信號輸出電路構(gòu)成的自動打鈴器。除了以上的硬件電路外,還充分利用軟件、硬件相聯(lián)合,充散發(fā)揮單片機(jī)設(shè)計的優(yōu)勢。使設(shè)計更具特點。系統(tǒng)可分紅三部分,即時鐘電路、時間顯示電路、控制電路,而時鐘電路起控制主導(dǎo)作用。時鐘電路的構(gòu)成由單片機(jī)及其準(zhǔn)時器達(dá)成,時間顯示電路則由單片機(jī)串口輸出,送到外面集成芯片74LS164,最后由七段數(shù)碼管顯示出來??刂齐娐分饕刂浦鴱?fù)位電路、校時以及設(shè)置打鈴點等操作,并配以狀態(tài)指示電路協(xié)助操作。第1頁3設(shè)計原理剖析3.1按鍵功能初步設(shè)計了由六個按鍵來達(dá)成全部的操作,它們的功能分別是:復(fù)位鍵、設(shè)置鍵、儲存鍵、加一鍵、減一鍵、確認(rèn)鍵,詳細(xì)操作方法由軟件設(shè)計為菜單式操作,使全部的操作更為的簡短,方便。3.2狀態(tài)指示狀態(tài)指示電路由硬件部分(六個發(fā)光二極管),聯(lián)合軟件使操作狀態(tài)了如指掌。第一個發(fā)光二極管亮?xí)r候,表示目前狀態(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ā)光二極管亮?xí)r候,表示此狀態(tài)為準(zhǔn)不時間設(shè)定儲存狀態(tài)。3.3打鈴控制比較所儲存的打零時間點,到打鈴時間時進(jìn)行打鈴。3.4電路原理圖LED18pabcdef76124051103423611511FECGHDQQQQQQQQ

LED28pabcdefdg76124051103423611511FEABCGHDQQQQQQQQ

LED38pabcdef76124051103423611511EQQQQQQQ

LED48abcdefpdg76124051103423611511FEABCGHDQQQQQQQQ

LED58pabcdef76124051103423611511EQQQQQQQ

LED68pabcdef76124051103423611511FEABCGHDQQQQQQQQ

LED77804NI77D0abcdef076124N591I67D010230411345116IFEABCGHDQQQQQQQQU2U3U4U5U6U7U8574LS164CD74LS164DRK74LS164RK74LS164RK74LS164RK74LS164RK74LS164DRKRKCCDCDCDCDCDLLCNLLCNLLCNLLCNLLCNLLCNLLCNABCCVGABCCVGABCCVGABCCVGABCCVGABCCVGABCCVG129847129847129847129847129847129847129847VCC1111111VCCVCCVCCR7R8R9R10R11R12R6R5R4R3R2R110K10K10K10K10K10K1K1K1K1K1K1KS1JDKJDK2L6L5L4L3L2L1JDG1S2JDB2JDBS3JDGU1AT89S51VCC11P1.0VCC40VCCS42393P1.1P0.0384P1.2P0.137S55P1.3P0.236R17JDP1.4P0.31KD86P1.5/MOSIP0.435GIN40077P1.6/MISOP0.5341S68P1.7/SCKP0.6333KM19RESTP0.73210P3.0/RXDEA/VPP31VCC4521130L712P3.1/TXDALE/PROG2913P3.2/INT0PSEN28Q2JDJD14P3.3/INT1P2.727KBP3.4/T0P2.68550S7VCC15P3.5/T1P2.52616P3.6/WRP2.425C317P3.7/RDP2.324SPEAK1823VCCR1522uFCRY19XTAL2P2.22212MHz20XTAL1P2.121GNDP2.0200R16Q110KC1C2855033PF33PF圖2整體電路圖第2頁圖2中,S1為確認(rèn)鍵,S2為設(shè)置鍵,S3為加一鍵,S4為減一鍵,S5為儲存鍵,S7為復(fù)位鍵。當(dāng)S2按下時L2亮,S3按下時L3亮,S4按下時L4亮,S5按下時L5亮。L1為正常運轉(zhuǎn)指示。S5,L6暫無使用。蜂鳴器在每個操作時賜予報警提示。繼電器電路作為打鈴信號輸出電路,對外供給打鈴信號。程序流程框圖4.1整體程序流程圖依據(jù)硬件設(shè)計結(jié)果,為知足要求,程序應(yīng)有主程序、按鍵辦理程序、中止服務(wù)程序和顯示程序等部分構(gòu)成。主程序中主假如程序各部分的初始化;按鍵辦理程序辦理五個按鍵的操作,包含各個按鍵的響應(yīng)程序以及按鍵指示、閃耀指示、報警輸出等;顯示程序顯示禮拜、時、分、秒,主假如時鐘顯示。初始化主程序按鍵中止顯辦理服務(wù)示程程序程序序圖3整體程序流程圖4.2主程序流程圖該部分程序主假如對程序中所用到的數(shù)據(jù)單元進(jìn)行初始化,以及準(zhǔn)時器的賦初值。準(zhǔn)時器初始化各單元初始化響應(yīng)中止校時計時中止打鈴中止顯示圖4主程序流程圖4.3校時程序流程圖該部分的鍵盤掃描為程序掃描方式,CPU不斷的對P1口進(jìn)行掃描,當(dāng)任何一個鍵按下時,與之相連的輸入數(shù)據(jù)線即被清0(低電平),而平常該線為1(高電平)。這類鍵盤掃描方式的優(yōu)點是電路簡單:弊端是當(dāng)鍵數(shù)許多時,要占用許多的I/O線。因為按鍵的機(jī)械特征,在閉合及斷開的瞬時均陪伴有一連串的顫動,鍵顫動會惹起一次按鍵被誤讀多次。為了保證CPU對鍵的一次閉合僅作一次辦理,一定去除鍵顫動。該程序使用10ms延時程序作為去顫動程序去除鍵顫動。第3頁校時程序設(shè)置鍵禮拜調(diào)整小時調(diào)整分鐘調(diào)整秒調(diào)整調(diào)用閃耀子程序調(diào)用顯示子程序Y退出?Y

N加一?Y

N減一?N

N確立?Y保留設(shè)置圖5校時程序流程圖4.4時鐘打鈴程序流程圖時鐘打鈴程序使用單片機(jī)T0、T1兩個準(zhǔn)時器中止,兩個準(zhǔn)時器均為方式一,初值為10ms,當(dāng)準(zhǔn)時器T0溢出時響應(yīng)中止,使毫秒單元加1,當(dāng)毫秒單元滿100時分單元加1,依此類推。當(dāng)準(zhǔn)時器T1溢出時響應(yīng)中止,挨次比較儲存的打鈴點,條件切合就輸出打鈴信號。中止均需保護(hù)現(xiàn)場,返回時恢復(fù)現(xiàn)場。T0中止T1中止保護(hù)現(xiàn)場保護(hù)現(xiàn)場N比較小時1秒到?YN秒單元加1小時相等?NY=60秒?比較分鐘YN秒單元清0,分單元加1分鐘相等?NY=60分?打鈴Y分單元清0,小時單元加1NN打鈴點?20=24時?比較YY調(diào)用顯示程序小時單元清0,禮拜單元加1N=7天?恢復(fù)現(xiàn)場,中止返回Y禮拜單元清1調(diào)用顯示程序恢復(fù)現(xiàn)場,中止返回圖6時鐘打鈴中止程序流程圖第4頁心得與領(lǐng)會在此次快要三周的單片機(jī)實習(xí),在指導(dǎo)老師和同學(xué)的幫助下,我的確學(xué)到了許多平常在課堂上所學(xué)不到的知識。這樣的實習(xí)無論是對我們的理論知識仍是實踐能力都有很大的幫助,經(jīng)過這些實習(xí)能夠使我們能更快更正確的掌握專業(yè)方面的理論知識??傊?,經(jīng)過此次實習(xí),我真實學(xué)到了好多東西,領(lǐng)會到了理論聯(lián)系實質(zhì)的重要性。充分認(rèn)識到實踐的重要性,只有在實踐中才能更好的考證理論知識。固然也碰到一些問題,但在老師及同學(xué)的幫助下,各樣問題水到渠成。最后,由衷感謝指導(dǎo)老師的指導(dǎo)和同學(xué)的幫助!參照文件周航慈.單片機(jī)應(yīng)用程序設(shè)計基礎(chǔ)[M].北京:電子工業(yè)第一版社,1997年7月朱承高.電工及電子技術(shù)手冊[M].北京:高等教育第一版社,1990[3]閻石.數(shù)字電子技術(shù)基礎(chǔ)(第三版)[M].北京:高等教育第一版社,1989廖常初.現(xiàn)場總線概括[J].電工技術(shù),1999.6[5]李朝青.單片機(jī)原理及接口技術(shù)(第三版)[M].北京;北京航空航天大學(xué)第一版社,2005年10月附錄程序分為五部分1.初始化程序,2.鍵值辦理程序,3.中止程序,4.顯示程序,5.延時程序程序清單ORG0000HLJMPMAINORG000BHLJMPTOINTORG001BHLJMPDLBJ;**********主程序**********ORG30HMAIN:MOVIE,#8AH;開T0,T1中止MOVTMOD,#11H;準(zhǔn)時器方式1MOVTH0,#0D8HMOVTL0,#0F0H;初值MOVA,#0MOV59H,AMOV60H,AMOV61H,AMOV62H,AMOV63H,AMOV64H,AMOV65H,A第5頁MOV66H,A;清零m_secEQU20H;毫秒單元secEQU21H;秒單元minEQU22H;分單元hourEQU23H;時單元weekEQU24H;禮拜單元SETBTR0SETBTR1CLRP1.0CLRAMOVR0,AMOVR1,AMOVR2,AMOVR3,AMOVR5,AMOVR6,AMOVR7,AMOVm_sec,#00;毫秒單元清零MOVsec,#00;秒單元清零MOVmin,#00;分單元清零MOVhour,#00;時單元清零MOVweek,#00;禮拜單元清零MOV70H,AMOV71H,AMOV72H,AMOV73H,AMOV74H,ALCALLxs;調(diào)用顯示程序;************************************************;*****************數(shù)字鐘按鍵程序*****************;************************************************;**********調(diào)時鐘按鍵**********NET1:JBP0.0,NET2LCALLYS10MSJBP0.0,NET2CLRp2.2JNBP0.0,$SETBp2.2CLRP1.1SETBP1.0SETBTR0;開中止第6頁SETBTR1CLRP1.0;正常運轉(zhuǎn)SETBP1.1SETBP1.2SETBP1.3MOV59H,#00MOVR7,#00;****************調(diào)整時間部分切換鍵********************NET2:MOVA,59HCJNEA,#00,NET3JBP0.1,NET9;數(shù)字鐘調(diào)整時間部分切換鍵LCALLYS10MsJBP0.1,NET9CLRp2.2INC59HJNBP0.1,$SETBp2.2INCR7CLRTR0CLRTR1SJMPNET4NET3:JBP0.1,NET4LCALLYS10msJBP0.1,NET4CLRp2.2INC59HJNBP0.1,$SETBp2.2INCR7NET4:CJNER7,#1,NET5LCALLSSH;秒閃耀SJMPNET9NET5:CJNER7,#2,NET6LCALLMSH;分閃耀SJMPNET9NET6:CJNER7,#3,NET7LCALLHSH;時閃耀SJMPNET9NET7:MOVR7,#0LCALLWSH;禮拜閃耀SJMPNET9NET8:LCALLXS第7頁;******************調(diào)整時間加1鍵*****************NET9:JBP0.2,NET115;數(shù)字鐘調(diào)整時間鍵LCALLYS10msJBP0.2,NET13CLRp2.2CLRP1.2CJNER7,#1,NET10SETBp2.2SETBP1.3LCALLYS200msINCsec;秒單元加1MOVA,secCJNEA,#60,NET8;不等60時跳轉(zhuǎn)顯示,等60時將秒單元清零MOVsec,#00LCALLXSJBP0.2,NET13LJMPNET9NET115:LJMPNET15NET10:CJNER7,#2,NET11SETBp2.2SETBP1.3LCALLYS200msINCmin;分單元加1MOVA,minCJNEA,#60,NET8;不等60時跳轉(zhuǎn)顯示,等60時將分單元清零MOVmin,#00LCALLXSJBP0.2,NET13LJMPNET9NET11:CJNER7,#3,NET12SETBp2.2SETBP1.3LCALLYS200msINChour;時單元加1MOVA,hourCJNEA,#24,NET8;不等24時跳轉(zhuǎn)顯示,等24時將時單元清零MOVhour,#00LCALLXSJBP0.2,NET13LJMPNET9NET12:SETBp2.2SETBP1.3第8頁LCALLYS200msINCweek;禮拜單元加1MOVA,weekCJNEA,#08,NET8;不等7時跳轉(zhuǎn)顯示,等7時將禮拜單元清零MOVweek,#01LCALLXSJNBP0.2,NET13LJMPNET9NET13:SJMPNET15NET14:LCALLXS;****************調(diào)整時間減1鍵**********************NET15:JBP0.3,NET19;數(shù)字鐘調(diào)整時間鍵LCALLYS10msJBP0.3,NET19CLRP2.2CLRP1.3CJNER7,#1,NET16SETBP2.2SETBP1.2LCALLYS200msDECsec;秒單元減1MOVA,secCJNEA,#0FFH,NET14;不等60時跳轉(zhuǎn)顯示,等60時將秒單元清零MOVsec,#59LCALLNET14JBP0.3,NET19LJMPNET15NET16:CJNER7,#2,NET17SETBP2.2SETBP1.2LCALLYS200msDECmin;分單元減1MOVA,minCJNEA,#0FFH,NET14;不等60時跳轉(zhuǎn)顯示,等60時將分單元清零MOVmin,#59LCALLNET14JBP0.3,NET19LJMPNET15NET17:CJNER7,#3,NET18SETBP2.2SETBP1.2LCALLYS200msDEChour;時單元減1第9頁MOVA,hourCJNEA,#0FFH,NET14;不等24時跳轉(zhuǎn)顯示,等24時將時單元清零MOVhour,#23LCALLNET14JBP0.3,NET19LJMPNET15NET18:SETBP2.2SETBP1.2LCALLYS200msDECweek;禮拜單元減1MOVA,weekCJNEA,#00,NET14;不等7時跳轉(zhuǎn)顯示,等7時將禮拜單元清1MOVweek,#07LCALLNET14JBP0.3,NET19LJMPNET15NET19:LJMPDSH;********************準(zhǔn)時程序*********************DSH:MOVR2,#00JBP0.4,NT11LCALLYS10msJBP0.4,NT11CLRP2.2CLRP1.4JNBP0.4,$SETBP2.2INCR2CJNER2,#01,NTA;第1個打鈴點MOVR1,#30HLCALLCUNNT11:LJMPNT1NTA:CJNER2,#02,NTB;第2個打鈴點LCALLCUNNTB:CJNER2,#03,NTC;第3個打鈴點LCALLCUNNTC:CJNER2,#04,NTD;第4個打鈴點LCALLCUNNTD:CJNER2,#05,NTE;第5個打鈴點LCALLCUNNTE:CJNER2,#06,NTF;第6個打鈴點LCALLCUNNTF:CJNER2,#07,NTG;第7個打鈴點LCALLCUN第10頁NTG:CJNER2,#08,NTH;第8個打鈴點LCALLCUNNTH:CJNER2,#09,NTI;第9個打鈴點LCALLCUNNTI:CJNER2,#10,NTJ;第10個打鈴點LCALLCUNNTJ:CJNER2,#11,NTK;第11個打鈴點LCALLCUNNTK:CJNER2,#12,NTL;第12個打鈴點LCALLCUNNTL:CJNER2,#13,NTM;第13個打鈴點LCALLCUNNTM:CJNER2,#14,NTN;第14個打鈴點LCALLCUNNTN:CJNER2,#15,NTO;第15個打鈴點LCALLCUNNTO:CJNER2,#16,NTP;第16個打鈴點LCALLCUNNTP:CJNER2,#17,NTQ;第17個打鈴點LCALLCUNNTQ:CJNER2,#18,NTR;第18個打鈴點LCALLCUNNTR:CJNER2,#19,NTS;第19個打鈴點LCALLCUNNTS:CJNER2,#20,NT1;第20個打鈴點LCALLCUNNT1:LJMPNET1;****************打鈴點儲存子程序********************CUN:MOV@R1,hourINCR1MOV@R1,minINCR1;********************時鐘中止程序*********************TOINT:PUSHPSWPUSHACC;保護(hù)現(xiàn)場MOVTH0,#0D8HMOVTL0,#0F0H;從頭賦計數(shù)初值INCm_sec;毫秒單元加1MOVA,m_sec第11頁CJNEA,#100,NEXT1MOVm_sec,#00INCsec;秒單元加1MOVA,secCJNEA,#60,NEXT1MOVsec,#00INCmin;MOVA,minCJNEA,#60,NEXT1MOVmin,#00INChour;MOVA,hourCJNEA,#24,NEXT1MOVhour,#00INCweekMOVA,weekCJNEA,#08,NEXT1MOVweek,#01NEXT1:LCALLXSPOPACCPOPPSW;恢復(fù)現(xiàn)場RETI;中止返回;********************打鈴中止程序*********************DLBJ:PUSHPSWPUSHACCMOVTH0,#0D8HMOVTL0,#0F0HMOVR0,#30HFH:MOVA,@R0CJNEA,hour,LOP1INCR0MOVA,@R0CJNEA,min,LOP2CLRP2.2CLRP1.4;鈴聲響LCALLYS1min;延時1分鐘SETBP2.2SETBP1.4;鈴聲停CLRAMOV7FH,AAJMPLOP2LOP1:INCR0LOP2:INCR0第12頁CJNER0,#58H,FHLOP3:LCALLXSPOPPSWPOPACCRETI;********************數(shù)字鐘顯示程序******************XS:MOVA,sec;將秒送AMOVB,#10DIVABMOV60H,B;秒的個位MOV61H,A;秒的十位MOVA,min;將分送AMOVB,#10DIVABMOV62H,B;分的個位MOV63H,A;分的十位MOVA,hour;將時送AMOVB,#10DIVABMOV64H,B;時的個位MOV65H,A;時的十位MOVA,week;禮拜的送AMOVB,#10DIVABMOV66H,B;禮拜的個位LCP:MOVR1,#60HMOVR5,#7MOVDPTR,#TABBK:MOVA,@R1MOVCA,@A+DPTRMOVSBUF,AJNBTI,$CLRTIINCR1DJNZR5,BKRETTAB:DB1

溫馨提示

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

評論

0/150

提交評論