




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選文檔Proteus 仿真大賽電子時鐘仿真 第一章 電子時鐘總體設(shè)計1.1電子時鐘簡介 電子鐘是一種利用數(shù)字電路來顯示秒、分、時的計時裝置,與傳統(tǒng)的機(jī)械鐘相比,它具有走時精確、顯示直觀、無機(jī)械傳動裝置等優(yōu)點(diǎn),因而得到廣泛應(yīng)用。隨著人們生活環(huán)境的不斷改善和美化,在很多場合都用到電子時鐘。很多單片機(jī)產(chǎn)品具有實(shí)時時鐘的功能,例如智能化儀器儀表、工業(yè)過程系統(tǒng)及家用電器等。這里要求實(shí)現(xiàn)一個具有實(shí)時時鐘顯示和鬧鐘把握功能的數(shù)字鐘。通過數(shù)字鐘的設(shè)計與制作,將前面所學(xué)的單片機(jī)內(nèi)部定時資源、I/O端口、鍵盤和顯示接口等學(xué)問融會貫穿,熬煉獨(dú)立設(shè)計、制作和調(diào)試應(yīng)用系統(tǒng)的力量,深化領(lǐng)悟單片機(jī)應(yīng)用系統(tǒng)的硬件設(shè)計、模塊
2、化程序設(shè)計及軟硬件調(diào)試方法等,并把握單片機(jī)應(yīng)用系統(tǒng)的開發(fā)過程。1.2電子鐘設(shè)計要求設(shè)計并制作具有如下功能的數(shù)字鐘:(1) 自動計時,由6位LED先四起顯示時、分、秒。(2) 具備校準(zhǔn)功能,可以設(shè)置當(dāng)前時間。(3) 具備定時啟動功能,可以設(shè)置鬧鐘時間,啟鬧10s后自動關(guān)閉鬧鈴。1.3電子鐘計時方案(1)接受實(shí)時時鐘芯片。針對應(yīng)用系統(tǒng)對實(shí)時功能的普遍需求,各大芯片生產(chǎn)廠家間續(xù)推出了一系列實(shí)時時鐘集成電路,如DS1287、DS12887、DS1302、PCF8563、S35190等。這些實(shí)時時鐘芯片具備年、月、日、時、分、秒、計時功能和多點(diǎn)定時功能,計時數(shù)據(jù)每秒自動更新一次,不需程序干預(yù)。單片機(jī)可通
3、過中斷或查詢方式讀取計時數(shù)據(jù)。實(shí)時時鐘芯片的計時功能無須占用CPU時間,功能完善,精度高,軟件程序設(shè)計相對簡潔,在實(shí)時工業(yè)測控系統(tǒng)中多接受這一類專用芯片來實(shí)現(xiàn)。(2)軟件把握。利用AT89S51內(nèi)部定時/計數(shù)器進(jìn)行中斷定時,協(xié)作軟件延時、分、秒的計時。該方案節(jié)省硬件成本,且能夠使讀者對前面所學(xué)學(xué)問進(jìn)行綜合運(yùn)用,因此,本系統(tǒng)設(shè)計接受這一方案。1.4電子鐘顯示方案(1)利用串行口擴(kuò)展LED,實(shí)現(xiàn)LED靜態(tài)顯示。該方案占用單片機(jī)資源少,且靜態(tài)顯示亮度高,但硬件開銷大,電路簡單,信息刷新速度慢,比適用于單片機(jī)并行口資源較少的場合。(2)利用單片機(jī)并行I/O端口,實(shí)現(xiàn)LED動態(tài)顯示。該方案直接使用單片機(jī)
4、并行口作為顯示接口,無須外擴(kuò)接口芯片,但占用資源較多,且動態(tài)掃描顯示方式需占用CPU時間。在非實(shí)時測控或單片機(jī)具有足夠并行口資源的狀況下可以接受。這里接受動態(tài)顯示方案。其次章 硬件描述及系統(tǒng)設(shè)計構(gòu)思2.1電子時鐘功能模塊主程序函數(shù)LED顯示函數(shù)鍵盤檢測函數(shù)查值函數(shù)加1修改功能函數(shù)鬧鐘設(shè)置函數(shù)時鐘設(shè)置函數(shù)定時器中 斷函數(shù)鬧鐘推斷啟動函數(shù)2.2系統(tǒng)硬件描述1 把握器用AT89S51 , 12M晶振2 數(shù)碼管動態(tài)掃描驅(qū)動P2口3 數(shù)碼管段碼驅(qū)動P1口4 鬧鈴驅(qū)動P1.05 調(diào)整鍵K1P3.2(外部中斷0, 正常、調(diào)時、調(diào)分、調(diào)秒)6 定時/正常切換鍵K2P3.37 時間參數(shù)低位加1鍵K3P3.48
5、時間參數(shù)高位加1鍵K4P3.52.3系統(tǒng)設(shè)計構(gòu)思1主流程是取時間參數(shù),顯示時間參數(shù)。2利用T0中斷來完成計時、比較定時時間、驅(qū)動鬧鈴。3利用T1中斷完成動態(tài)顯示中,調(diào)整時間閃爍效果的定時。4利用外部中斷0來完成調(diào)整選擇功能。5利用外部中斷1完成定時顯示,當(dāng)前時間顯示的切換6K3、K4鍵完成時間參數(shù)的循環(huán)加1操作2.4電子時鐘電路原理圖 如圖為電子時鐘電路原理圖第三章 電子鐘硬件介紹3.1 單片機(jī)的介紹單片機(jī)也被稱為微把握器(Microcontroller Unit),常用英文字母的縮寫MCU表示單片機(jī),它最早是被用在工業(yè)把握領(lǐng)域。它不是完成某一個規(guī)律功能的芯片,而是把一個計算機(jī)系統(tǒng)集成到一個芯
6、片上。相當(dāng)于一個微型的計算機(jī),和計算機(jī)相比,單片機(jī)只缺少了I/O設(shè)備。概括的講:一塊芯片就成了一臺計算機(jī)。它的體積小、質(zhì)量輕、價格廉價、為學(xué)習(xí)、應(yīng)用和開發(fā)供應(yīng)了便利條件。同時,學(xué)習(xí)使用單片機(jī)是了解計算機(jī)原理與結(jié)構(gòu)的最佳選擇。 單片機(jī)芯片單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很簡單的功能要是用美國50年月開發(fā)的74系列,或者60年月的CD4000系列這些純硬件來搞定的話,電路肯定是一塊大PCB板!但是假如要是用美國70年月成功投放市場的系列單片機(jī),結(jié)果就會有天壤之別
7、!只由于單片機(jī)的通過你編寫的程序可以實(shí)現(xiàn)高智能,高效率,以及高牢靠性! 3.2 數(shù)碼管的工作原理a.七段數(shù)碼管分共陽管和共陰管,使用時要留意區(qū)分,本項目使用共陽數(shù)碼管。即公共端接正極。數(shù)碼管引腳示意圖如下:b.該電路使用芯片74LS244來驅(qū)動發(fā)光兩極管,74LS244芯片說明書如下,使用時留意推斷芯片的引腳號,引腳示意圖如下:c.人眼的視覺暫停時間大約是0.02秒,當(dāng)畫面每秒變化超過24幀時,人眼會將這些快速變動的畫面視作連續(xù)畫面。數(shù)碼管動態(tài)顯示正是利用了人的這一特性。第四章 把握系統(tǒng)的軟件設(shè)計4.1 程序設(shè)計本系統(tǒng)的軟件系統(tǒng)主要可分為主程序、定時計數(shù)中斷程序、時間調(diào)整程序、鬧鐘設(shè)置程序四大
8、模塊。在程序設(shè)計過程中,加強(qiáng)了部分軟件抗干擾措施,下面對部分模塊作介紹。/*數(shù)字鐘程序*/#include <reg51.h>#define uchar unsigned charsbit buzzer=P27; /定義蜂鳴器把握端口/*函數(shù)聲明*/void display(uchar *p);uchar keyscan(); /掃描鍵盤有無鍵按下uchar search(); /按鍵識別void alarm(); /鬧鐘推斷啟動void ftion0(); /時鐘修改void ftion1(); /鬧鐘修改void cum(); /加1修改/*全局變量定義*/uchar cloc
9、kbuf3=0,0,0;/存放時鐘時分秒的十進(jìn)制數(shù)uchar bellbuf3=0,0,0;/存放鬧鐘時分秒的十進(jìn)制數(shù)uchar msec1; /10ms中斷次數(shù)uchar msec2; /1s循環(huán)次數(shù)uchar timdata,rtimdata;/時鐘和鬧鐘修改位置標(biāo)志uchar count;/鬧鐘啟動后10s計時單元uchar *dis_p;/顯示緩沖區(qū)指針bit armbit;/鬧鐘標(biāo)志,為0鬧鐘未設(shè)定,為1已設(shè)定bit rtimbit;/鬧鐘是否啟動標(biāo)志,為1已啟動bit rhourbit;/鬧鐘小時修改標(biāo)志,為1正在修改鬧鐘小時bit rminbit;/鬧鐘分修改標(biāo)志,為1正在修改鬧
10、鐘分bit hourbit;/時鐘小時修改標(biāo)志,為1正在修改時鐘小時bit minbit;/時鐘分修改標(biāo)志,為1正在修改時鐘分bit secbit;/時鐘秒修改標(biāo)志,為1正在修改時鐘秒/*主函數(shù)*/void main()uchar a;armbit=0; /清零鬧鐘標(biāo)志位msec1=0; /設(shè)置10ms中斷次數(shù)初值msec2=0; /設(shè)置1s中斷次數(shù)初值timdata=0; /時鐘內(nèi)容修改位置記憶單元清零rtimdata=0;/鬧鐘內(nèi)容修改位置記憶單元清零count=0; /鬧鐘啟動后保持10s計時單元清零TMOD=0x02; /定時器T0為工作方式2TL0=0x06; /定時初始值為250u
11、sTH0=0x06;EA=1; /中斷總允許位開啟ET0=1; /定時器1開中斷TR0=1; /啟動定時器T0dis_p=clockbuf;/將時鐘值所在地址送入顯示指針P1=0x00;buzzer=0;while(1)a=keyscan(); /調(diào)用鍵盤掃描子程序if(a=0x07)display(dis_p);/無鍵輸入調(diào)用顯示程序if(armbit=1)alarm();/推斷鬧鐘設(shè)定否,若設(shè)定則調(diào)用鬧鐘啟動函數(shù)elsedisplay(dis_p);/調(diào)用顯示子函數(shù)作為延時去抖動a=keyscan();if(a!=0x07) /沒有抖動,表示有鍵按下a=search();/調(diào)用查鍵值子函數(shù)
12、switch(a)case 0x00:ftion0();break;/是時鐘參數(shù)修改功能鍵,調(diào)用時鐘設(shè)置子函數(shù)case 0x01:ftion1();break;/是鬧鐘參數(shù)修改功能鍵,調(diào)用鬧鐘設(shè)置子函數(shù)case 0x02:cum();break;/是加1功能鍵,調(diào)用加1修改功能子函數(shù)default:break;/*6位LED顯示函數(shù)*/void display(uchar *p) uchar buffer6=0,0,0,0,0,0;uchar k,i,j,m,temp;uchar led=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;buf
13、fer0=p0/10;buffer1=p0%10;buffer2=p1/10;buffer3=p1%10;buffer4=p2/10;buffer5=p2%10;for(k=0;k<2;k+)temp=0x01;for(i=0;i<6;i+)j=bufferi;P0=temp;P1=ledj; /P1送斷碼temp<<=1;for(m=0;m<100;m+);/每一位顯示延時P1=0x00; /關(guān)顯示/*鍵盤掃描函數(shù)*/uchar keyscan()uchar c;P0=0xf0;c=P2;c=c&0x07;/按鍵行輸入為P2.0-P2.2,屏蔽無關(guān)位re
14、turn(c);/*查鍵值函數(shù)*/uchar search()uchar a,b,c,d,e;/P2=0xfe;c=0xfe; /首列掃描字送變量ca=0; /首列號送awhile(1)P0=c; /列掃描字送P0口d=P2; /讀入P2口的行狀態(tài)if(d&0x01)=0)b=0;break;/第0行有鍵按下,第0行行首號送belse if(d&0x02)=0)b=4;break;/第1行有鍵按下,第1行行首號送belse if(d&0x04)=0)b=8;break;/第2行有鍵按下,第2行行首號送ba+; /掃描列號加1c<<=1; /修改列掃描字,掃描
15、下一列e=a+b; /將行首號與列號相加,求鍵號dodisplay(dis_p);while(d=keyscan()!=0x07);/等待釋放按鍵return(e);/*鬧鐘推斷啟動函數(shù)*/void alarm()if(clockbuf0=bellbuf0)&&(clockbuf1=bellbuf1)buzzer=1;rtimbit=1;/設(shè)置鬧鐘計時標(biāo)志,時鐘將進(jìn)行10s計時標(biāo)志if(count=10)/推斷鬧鐘保持10s時間到否 count=0;/清除鬧鐘保持10s計時 buzzer=0;/清除鬧鐘 armbit=0;/清鬧鐘標(biāo)志,否則鬧鐘設(shè)置將連續(xù)有效 rtimbit=0
16、;/*時鐘設(shè)置函數(shù)*/void ftion0()if(rhourbit=1|rtimbit=1|rtimdata=1)secbit=0;minbit=0;hourbit=0;timdata=0;else TR0=0; /關(guān)定時器dis_p=clockbuf;/將時鐘緩沖區(qū)首地址送顯示指針timdata+; /將時鐘修改記錄值加1switch(timdata)case 0x01:secbit=1;break;/記錄值為1,則將時鐘秒修改標(biāo)志置1case 0x02:secbit=0;minbit=1;break;/記錄值為2,則將時鐘分修改標(biāo)志置1case 0x03:minbit=0;hourbi
17、t=1;break;/記錄值3,則將時鐘時修改標(biāo)志置1case 0x04:timdata=0;hourbit=0;TR0=1;break;/按4次則清時鐘單元修改位置 /記錄,定時器重新開啟default:break; /*鬧鐘設(shè)置函數(shù)*/void ftion1()if(secbit=1|minbit=1|hourbit=1|timdata=1)rhourbit=0;rtimbit=0;rtimdata=0;elsedis_p=bellbuf;/設(shè)置鬧鐘顯示標(biāo)志rtimdata+;/將鬧鐘修改記錄值加1switch(rtimdata)case 0x01:rminbit=1;break;/記錄值
18、為1,將鬧鐘分修改標(biāo)志置1case 0x02:rminbit=0;rhourbit=1;break; /記錄值為2,將時鐘分修改標(biāo)志置1case 0x03:rtimdata=0;rhourbit=0;/按3次則清鬧鐘單元修改位置記錄armbit=1; /設(shè)置鬧鐘已設(shè)置標(biāo)志位dis_p=clockbuf;/恢復(fù)時鐘顯示標(biāo)志break;default:break;/*加1修改功能函數(shù)*/void cum() if(secbit=1) /時鐘秒修改標(biāo)志為1,秒單元內(nèi)容加1if(clockbuf2=59) clockbuf2=0;else clockbuf2+;else if(minbit=1)/時鐘分修改標(biāo)志為1,分單元內(nèi)容加1if(clockbuf1=59) clockbuf1=0;else clockbuf1+;else if(hourbit=1) /時鐘小時修改標(biāo)志為1,小時單元內(nèi)容加1if(clockbuf0=2
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文化用品行業(yè)市場趨勢預(yù)測考核試卷
- 疫情防控與社區(qū)治理考核試卷
- 期貨市場套保實(shí)務(wù)考核試卷
- 航空公司航班運(yùn)行中的機(jī)組人員協(xié)作考核試卷
- 糧食儲備的社區(qū)參與考核試卷
- 箱包制作技能培訓(xùn)與認(rèn)證考核試卷
- 影視作品音樂版權(quán)翻唱授權(quán)與分成比例調(diào)整補(bǔ)充合同
- 智能社區(qū)物業(yè)公司綠化員派遣與智能綠化服務(wù)協(xié)議
- 高端醫(yī)院神經(jīng)外科科室委托運(yùn)營管理服務(wù)協(xié)議
- 金融科技優(yōu)先股股東權(quán)益合作協(xié)議
- 當(dāng)代中國外交(外交學(xué)院)知到智慧樹章節(jié)測試課后答案2024年秋外交學(xué)院
- 小學(xué)科學(xué)湘科版六年級下冊全冊同步練習(xí)含答案
- 分包合法合規(guī)宣貫(2017年6月)
- GB 18613-2020電動機(jī)能效限定值及能效等級
- 《行政組織學(xué)結(jié)課論文綜述3000字》
- 小學(xué)勞動 包餃子課件
- 核電工程質(zhì)量保證知識培訓(xùn)教材課件
- 區(qū)級綜合醫(yī)院關(guān)于落實(shí)區(qū)領(lǐng)導(dǎo)干部醫(yī)療保健工作實(shí)施方案
- 顏色標(biāo)準(zhǔn)LAB值對照表
- 后廚主管月度績效考核表(KPI)
- 功能飲料項目投資計劃書(模板范文)
評論
0/150
提交評論