




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
.z---..--總結資料單片機原理與應用綜合實驗報告基于單片機控制的電鈴控制器專業(yè)班級:電子信息工程姓名:胡俊_學號:時間:指導教師:左敬龍2014年10月30日電鈴控制器設計任務書1.設計目的與要求設計出一個用于電鈴控制器。準確地理解有關要求,獨立完成系統(tǒng)設計,要求所設計的電路具有以下功能:〔1〕根本功能1〕顯示:可以顯示星期、時、分和秒。2〕打鈴:每天可設置20次,打鈴持續(xù)時間每次1-90秒可調,每次打鈴的間隔時間1-99分鐘可調。3〕鈴聲:內置蜂鳴器可以發(fā)出監(jiān)控聲音。〔2〕性能:時間日誤差<1.5秒。〔3〕擴展功能1〕可設定單/雙休息日不打鈴。2〕隨季節(jié)變化,每天自動調整開與關的時間。2.設計內容寫出實現(xiàn)該功能的C語言編程,并在KILE軟件上仿真,并產生he*文件,通過軟件把該程序寫入單片機開發(fā)板,驗證是否實現(xiàn)該功能3.編寫設計報告寫出設計的全過程,附上有關資料和圖紙,有心得體會。4.辯論在規(guī)定時間內,完成表達并答復下列問題。目錄1引言………………….…12總體設計方案……………………….…12.1設計思路………….…12.2設計方案……………………….…23程序流程圖框……………………….…23.1總體程序流程圖框…………….……23.2時鐘打鈴程序流程圖框…………………….……34設計原理分析…………………….……44.1時鐘電路的設計……………….……44.2控制電路的原理………………….……44.3顯示電路的原理……………5總結與體會………….…………….….5參考文獻…………….……6附錄1效果圖……………………….……7附錄2C語言程序…………8-.z電鈴控制器摘要:該設計介紹了一種以AT89S51單片機為核心,以七段數碼管顯示星期;時;分鐘和秒,發(fā)光二極管作為指示燈標志及按鍵校時定時的自動打鈴控制器。關鍵詞:單片機;數碼管;電鈴;定時;74LS2451引言當今時代是一個新技術層出不窮的時代,在電子領域有尤其是自動化自動控制了領域,傳統(tǒng)的分立元件或數學邏輯電路構成的控制系統(tǒng),正以前所未有的速度被單片機智能控制系統(tǒng)所取代。單片機具有體積小,功能強,本錢低,應用面廣等優(yōu)點,可以說,智能控制與自動控制的核心就是單片機。目前,一個學習與應用單片機的高潮正在工廠,學校及企業(yè)單位大規(guī)模的興起。學習單片機的最有效的方法就是理論與實踐并重。打鈴器由AT89S51及其它器件組成,采用按鍵控制調時和定時等功能,用7個數碼管來分別顯示星期、時、分和秒.用5V直流電源,可以設定20多個打鈴時間點。以AT89S51為核心的單片機控制.主要作用:解除作息管理麻煩、改變人工打鈴、人工控制電器落后現(xiàn)象,實行電鈴周期性工作的自動化控制.同時設有數字顯示器及控制系統(tǒng)體積小,重量輕等優(yōu)點。充分發(fā)揮單片機體積小,價格廉價,功耗低,可靠性好等特點,充分發(fā)揮了單片機的控制優(yōu)勢。單片機控制電路信號輸入電路單片機控制電路信號輸入電路輔助功能電路驅動顯示電路2.1設計思路圖1設計思路框圖電鈴控制器設計要求具有顯示星期、時、分和秒以及設定時間和調整時間等功能,這些根本要求都可以通過軟件編程實現(xiàn)。要實現(xiàn)打鈴提示,就需要設置打鈴提示電路,信號輸入電路采用按鈕開關。設計思路框圖如圖1所示。2.2方案論證根據設計任務的根本要求,設計了由單片機〔AT89S51〕作為主控器件,七段數碼管作為顯示路,七個按鍵組成的按鍵操作電路,以及三極管、蜂鳴器組成的報警提示電路構成的自動打鈴器。時鐘電路的構成由單片機及其定時器完成,時間顯示電路則由單片機串口輸出,最后由七段數碼管顯示出來。控制電路主要控制著復位電路、校時以及設置打鈴點等操作。顯示電路采用串行靜態(tài)顯示,這種軟件編程比擬簡單。采用單片機內部時鐘,這種方法產生的時鐘還可以,但是本錢低,而且編寫時鐘程序簡單。打鈴電路電路可以采用蜂鳴器代替電鈴,當時間到達打鈴時間點時,使單片機發(fā)出控制信號,可以直接驅動三極管組成的根本放大電路,使蜂鳴器發(fā)出聲音。設計方框圖如圖2所示顯示驅動電路AT89S51單片機按鍵開關信號輸入電路顯示驅動電路AT89S51單片機按鍵開關信號輸入電路打鈴電路復位電路打鈴電路復位電路圖2設計方框圖3程序流程圖框3.1總體程序流程圖根據硬件設計結果,為滿足要求,程序應有主程序、按鍵處理程序、中斷效勞程序和顯示程序等局部構成。主程序中主要是程序各局部的初始化;按鍵處理程序處理六個按鍵的操作,包括各個按鍵的響應程序以及按鍵指示、報警輸出等;顯示程序顯示星期、時、分、秒,主要是時鐘顯示。總程序流程圖如圖3所示初始化初始化主程序主程序顯示程序按鍵處理程序中斷效勞程序顯示程序按鍵處理程序中斷效勞程序圖3總程序流程圖3.2時鐘打鈴程序流程圖時鐘打鈴程序使用單片機T0、T1兩個定時器中斷,兩個定時器均為方式一,當定時器T0溢出時響應中斷,使毫秒單元加1,當毫秒單元滿20時分單元加1,依此類推。當定時器T1溢出時響應中斷,依次比擬存儲的打鈴點,條件符合就輸出打鈴信號。中斷均需保護現(xiàn)場,返回時恢復現(xiàn)場。時鐘打鈴程序流程圖如圖4所示T0中斷T0中斷保護現(xiàn)場保護現(xiàn)場1秒到.1秒到.N20毫秒加1秒Y20毫秒加1秒=60s.=60s.NY秒清0,分加1秒清0,分加1=60m?=60m?N分清0,小時加1Y分清0,小時加1=24h?=24h?NY小時清0,天加1小時清0,天加1=7d?=7d?NY天清0天清0調用顯示程序調用顯示程序恢復現(xiàn)場,中斷返回恢復現(xiàn)場,中斷返回圖4時鐘打鈴程序流程圖4設計原理分析4.1時鐘電路的原理采用定時器/計數器T0的方式1,由于晶振是11.0592,令TH0=(65536-46080)/256;TL0=(65536-46080)%256,故所記次數應為46080,計時器每隔50000微秒發(fā)起一次中斷。為了方便設計每20毫秒使得時鐘加一秒,每60秒加一分鐘,每60分加一個小時,每24個小時加一天。4.2控制電路的原理控制電路采用矩陣式鍵盤,當無按鍵動作時,行線處于高電平而列線處于低電平,當有按鍵按下時,則對應的行線和列線短接,行線電平變?yōu)榈碗娖剑源酥烙心莻€按鍵被按下了。為了能夠通過按鍵控制電路的運行,通過C語言編程使得S0-S9為數據輸入鍵,S12為定時鍵〔當按下是可以通過S0-S9設定響鈴時間〕,S13為確定鍵,S11為返回鍵,通過上述的按鍵設定響鈴時間,設定的數據暫時保存在鎖存器中,當設定的時間與時鐘電路的時間一致時,蜂鳴器響。矩陣式電路如下列圖4.3顯示電路的原理為了能顯示星期、時、分、秒,需要7個數碼顯示管,其中6個顯示管可以通過按鍵改變顯示以顯示定時時間。5完畢語在這課程設計中,我學到了很多課堂上學不到的東西,也深刻的體驗到了實踐的重要性。只學習理論而不實踐,那理論就是一具空殼。只有實踐才能檢驗自己所學的理論知識。實踐的好處就在于能幫助你去更好地理解理論知識,平時課堂上不理解的東西,在實踐的過程中就能很好的理解。雖然這次課程設計上機調試沒有成功,但是我自己畢竟努力做了。參考文獻[1]閻石.數字電子技術根底〔第三版〕[M].:高等教育,1989[2]蔡振江.單片機原理及應用.:電子工業(yè),2007年2月,第1版[3]童詩白,華成英.模擬電子技術根底.:高等教育,2001年,第3版[4]李朝青.單片機原理及接口技術[M].:航空大學,2005年,第3版[5]萬光毅.單片機實驗與實踐教程.:航空航天大學,2006年,第2版[6]周航慈.單片機應用程序設計根底[M].:電子工業(yè),1997年7月[7]朱承高.電工及電子技術手冊[M].:高等教育,1990[8]廖常初.現(xiàn)場總線概述[J].電工技術,1999.6附錄效果圖C語言程序*include<reg51.h>*defineucharunsignedcharsbitdula=P2^6;sbitwela=P2^7;sbitbeep=P2^3;unsignedcharj,k,a1,a0,b1,b0,c1,c0,ho=1,s,f,m,key=10,temp,qq;ucharshi20,shi10,fen20,fen10,miao20,miao10,miao30,ok=1,wei,dingshi,change,yidingshi;ucharbaoshi,baoshijieshu;unsignedintpp;unsignedcharcodetable[]={0*3f,0*06,0*5b,0*4f,0*66,0*6d,0*7d,0*07,0*7f,0*6f,0*77,0*7c,0*39,0*5e,0*79,0*71};voiddelay(unsignedchari){for(j=i;j>0;j--)for(k=125;k>0;k--);}voiddisplay(ucharshi2,ucharshi1,ucharfen2,ucharfen1,ucharmiao2,ucharmiao1,ucharmiao3){dula=0;P0=table[miao3];dula=1;dula=0;wela=0;P0=0*7f;wela=1;wela=0;delay(5);dula=0;P0=table[shi2];dula=1;dula=0;wela=0;P0=0*fe;wela=1;wela=0;delay(5);P0=table[shi1]|0*80;dula=1;dula=0;P0=0*fd;wela=1;wela=0;delay(5);P0=table[fen2];dula=1;dula=0;P0=0*fb;wela=1;wela=0;delay(5);P0=table[fen1]|0*80;dula=1;dula=0;P0=0*f7;wela=1;wela=0;delay(5);P0=table[miao2];dula=1;dula=0;P0=0*ef;wela=1;wela=0;delay(5);P0=table[miao1];dula=1;dula=0;P0=0*df;wela=1;wela=0;delay(5);}voidkeyscan0(){P3=0*fb;temp=P3;temp=temp&0*f0;if(temp!=0*f0){delay(10);if(temp!=0*f0){temp=P3;switch(temp){case0*bb:ok=0; change=1;break;case0*7b:ok=1; change=0; dingshi=0;break;} }} P3=0*f7;temp=P3;temp=temp&0*f0;if(temp!=0*f0){delay(10);if(temp!=0*f0){temp=P3;switch(temp){case0*e7:ok=0; dingshi=1;break; case0*d7:yidingshi=0; //取消定時break;} } } }voidkeyscan(){{ P3=0*fe;temp=P3;temp=temp&0*f0;if(temp!=0*f0){delay(10);if(temp!=0*f0){ temp=P3;switch(temp){case0*ee:key=0; wei++;break;case0*de:key=1; wei++;break;case0*be:key=2; wei++;break;case0*7e:key=3; wei++;break;}while(temp!=0*f0){temp=P3;temp=temp&0*f0;beep=0;}beep=1;}}P3=0*fd;temp=P3;temp=temp&0*f0;if(temp!=0*f0){delay(10);if(temp!=0*f0){temp=P3;switch(temp){case0*ed:key=4; wei++;break;case0*dd:key=5; wei++;break;case0*bd:key=6; wei++;break;case0*7d:key=7; wei++;break;}while(temp!=0*f0){temp=P3;temp=temp&0*f0;beep=0;}beep=1;}}P3=0*fb;temp=P3;temp=temp&0*f0;if(temp!=0*f0){delay(10);if(temp!=0*f0){temp=P3;switch(temp){case0*eb:key=8; wei++;break;case0*db:key=9; wei++;break;}while(temp!=0*f0){temp=P3;temp=temp&0*f0;beep=0;}beep=1;}}}}voidmain(){ TMOD=0*01; TH0=(65536-46080)/256;//由于晶振為11.0592,故所記次數應為46080,計時器每隔50000微秒發(fā)起一次中斷。 TL0=(65536-46080)%256;//46080的來歷,為50000*11.0592/12 ET0=1; EA=1; while(1) { keyscan0(); if(ok==1) { TR0=1; wei=0; if(pp==20) { pp=0; m++; if(m==60) { m=0; f++; if(f==60) { f=0; s++; if(s==24)//為24h一個循環(huán),假設要12h,只需在此改為12即可。 { s=0; ho++; if(ho==7)//為7天一個循環(huán) { ho=1; } } } } } a0=s%10; a1=s/10; b0=f%10; b1=f/10; c0=m%10; c1=m/10; display(a1,a0,b1,b0,c1,c0,ho); } else { if(change==1) { TR0=0; keyscan(); if(key!=10) { switch(wei) { case1:if(key<3) //小時最高位為2 a1=key; else wei--; break; case2:if(a1==1|a1==0) a0=key; else if(key<5) a0=key; //當小時最高位為2時,低位最高為4 break; case3:if(key<6) //分鐘最高位為5 b1=key; else wei--; break; case4:b0=key;break; case5:if(key<6) //秒最高位為5 c1=key; else wei--; break; case6:c0=key;break; } key=10; } m=c1*10+c0; f=b1*10+b0; s=a1*10+a0; display(a1,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 購銷合同(十二)
- 轉讓建筑資質范本合同范本
- 期貨干貨知識培訓課件
- 海南農村建房合同范本
- 工程材料轉賣合同范本
- 小區(qū)機械車位合同范本
- 食品采購補充合同范本
- 價格保密合同范例
- 臨時路面工程合同范例
- 化工居間協(xié)議合同范本
- 汽車檢測技術課件 任務六 檢測汽車平順和通過性能
- 2024年云南省初中學業(yè)水平考試地理試卷含答案
- ASTM-A269-A269M無縫和焊接奧氏體不銹鋼管
- 工程施工趕工措施方案
- 生豬屠宰獸醫(yī)衛(wèi)生檢驗人員理論考試題及答案
- 杭州市衛(wèi)生健康委員會所屬事業(yè)單位招聘考試真題
- 九年級分流工作實施方案
- 樓盤、園區(qū)開荒保潔服務方案(投標方案)
- 《Python編程基礎》課程標準
- 中職教育一年級下學期數學《兩點間的距離公式和中點坐標公式》微課教學設計
- 捷信達酒店前臺管理系統(tǒng)V8
評論
0/150
提交評論