基于單片機(jī)的智能電子鐘設(shè)計_第1頁
基于單片機(jī)的智能電子鐘設(shè)計_第2頁
基于單片機(jī)的智能電子鐘設(shè)計_第3頁
基于單片機(jī)的智能電子鐘設(shè)計_第4頁
基于單片機(jī)的智能電子鐘設(shè)計_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于單片機(jī)的智能電子鐘系統(tǒng)設(shè)計摘要隨著電子技術(shù)的快速開展,智能電子鐘已經(jīng)越來越受歡送。我們通過以MSC-51單片機(jī)為核心控制芯片,結(jié)合DS12887時鐘芯片、DS18B20溫度傳感器,利用74LS138譯碼器及7段數(shù)碼管進(jìn)行動態(tài)顯示時間和溫度,在調(diào)時模塊中利用按鍵進(jìn)行控制調(diào)時調(diào)分〔先調(diào)時再調(diào)分〕、在設(shè)置鬧鐘模塊中利用按鍵進(jìn)行設(shè)置鬧鐘,當(dāng)時間到點(diǎn)利用蜂鳴器發(fā)聲,同時可通過按鍵取消響聲,根據(jù)數(shù)碼管顯示的時間,利用兩個LED燈指示上下午,同時利用兩個LED燈每隔半秒閃爍進(jìn)行半秒提示。關(guān)鍵詞MSC-51DS12887DS18B2074LS138前言智能電子時鐘是采用數(shù)字電路實(shí)現(xiàn)對時,分,秒及溫度數(shù)字顯示的裝置,廣泛用于個人家庭,車站,碼頭辦公室等公共場所,成為人們?nèi)粘I钪胁豢苫蛉钡谋匦杵?,由于?shù)字集成電路的開展和石英晶體振蕩器的廣泛應(yīng)用,智能時鐘的精度遠(yuǎn)遠(yuǎn)超過老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴(kuò)展了鐘表原先的報時功能。例如定時自動報警、按時自動打鈴、時間程序自動控制、定時播送、自動啟閉路燈、定時開關(guān)烘箱、通斷動力設(shè)備、甚至各種定時電器的自動啟用等,所有這些,都是以鐘表數(shù)字化為根底的。因此,研究智能時鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義電子時鐘的設(shè)計方法有多種,可用中小規(guī)模集成電路組成電子鐘,也可以利用專用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電子鐘,還可以利用對單片機(jī)編程來實(shí)現(xiàn)電子鐘。其中,利用單片機(jī)實(shí)現(xiàn)的電子時鐘具有硬件結(jié)構(gòu)簡單、編程靈活、便于功能擴(kuò)展等特點(diǎn)。由單片機(jī)作為數(shù)字鐘的核心控制器,可以通過它的時鐘信號實(shí)現(xiàn)計時功能,將其時間數(shù)據(jù)經(jīng)單片機(jī)輸出,利用顯示器顯示出來。通過鍵盤可以進(jìn)行定時、校時功能。輸出設(shè)備顯示器可以用液晶顯示技術(shù)或者數(shù)碼管顯示技術(shù)。1.系統(tǒng)總體設(shè)計思路本次設(shè)計完成電子時鐘時、分、秒的顯示及環(huán)境溫度測量等功能的根底上完成定時鬧鐘的功能,并利用LED燈指示上下午和半秒指示,硬件電路包括單片機(jī)最小系統(tǒng)電路、DS12887實(shí)時時鐘芯片電路模塊、74LS138和七段數(shù)碼管顯示模塊、按鍵模塊、DS18B20溫度傳感器模塊、蜂鳴器報警電路模塊,并利用keil2軟件和proteus軟件進(jìn)行仿真。圖1系統(tǒng)根本結(jié)構(gòu)框圖單片機(jī)控制模塊本工程是基于MSC-51單片機(jī)為核心的智能電子鐘系統(tǒng)的設(shè)計,通過MSC-51單片機(jī)控制各個模塊,P0口一局部用來接獨(dú)立式按鍵,當(dāng)按鍵按下時系統(tǒng)產(chǎn)生中斷,從而調(diào)用中斷子程序控制實(shí)現(xiàn)各個功能,P0的一局部用來接74LS138譯碼器,用于控制點(diǎn)亮哪一位數(shù)碼管,P3口用于接數(shù)碼管的段碼端,從而實(shí)現(xiàn)動態(tài)顯示,P2口接了時鐘芯片DS12887芯片作為定時作用,同時用P1口一局部接溫度傳感器DS18B20芯片作為溫度測量,用P1口一局部接蜂鳴器,當(dāng)鬧鐘到時發(fā)出聲響。在MSC-51單片機(jī)外部還需加上晶振電路,復(fù)位電路和電源等一些根本電路。圖2單片機(jī)組成結(jié)構(gòu)及引腳圖圖3MSC—51單片機(jī)接線圖定時模塊3.1實(shí)時時鐘芯片DS128873.1.1DS12887芯片的功能內(nèi)含一個鋰電池,斷電可以運(yùn)行十年,并且不會喪失數(shù)據(jù),時間功能正常運(yùn)行??捎嫊r至2100年前的秒、分、時、星期、日、月、年等日歷信息并帶有閏年補(bǔ)償功能??赏ㄟ^編程選擇BCD碼或者二進(jìn)制數(shù)表示日歷和定時鬧鐘??赏ㄟ^編程選擇12小時或24小時制,12小時時鐘模式帶有PM和AM提示,此外還有有夏令時功能??蛇x擇MOTOROLA和INTEL總線時序。內(nèi)部共有128個RAM單元,這在常用的實(shí)時時鐘中屬于較大的。其中14個字節(jié)作為時鐘和控制存放器,114字節(jié)為通用RAM,所有ARAM單元數(shù)據(jù)都具有掉電保護(hù)功能。可編程并選擇的方波信號輸出。中斷信號輸出(IRQ)和總線兼容,定時鬧鐘中斷、周期性中斷、時鐘更新周期結(jié)束中斷可分別由軟件屏蔽,也可分別進(jìn)行測試。(9)三種可供選擇的中斷方式-時間性中斷-周期性中斷-時鐘更新結(jié)束中斷。3.1.2DS12887芯片的結(jié)構(gòu)及原理圖6DS12887引腳圖MOT(模式選擇):接VCC〔+5V〕時,芯片在MOTOROLA時序下工作,接GND〔地〕時,芯片在INTEL時序下工作。SQW(方波信號):通過15個分頻器抽頭中的13個提供方波輸出。AD0~AD7(雙向地址/數(shù)據(jù)復(fù)用線):數(shù)據(jù)和控制指令都通過此8個引腳來于單片機(jī)等控制器傳輸。AS(地址選通輸入):地址鎖存引腳。DS(數(shù)據(jù)選通或讀輸入):該引腳有兩種操作模式,視該芯片是出于MOTOROLA模式或者INTEL模式,當(dāng)使用MOTOROLA時序時,DS是一正脈沖,出現(xiàn)在總線周期的后段,稱為數(shù)據(jù)選通;假設(shè)為INTEL時序,DS稱作(RD),RD與典型存貯器的允許信號(OE)的定義相同。R/W(讀/寫輸入):R/W管腳同樣也有兩種操作模式。此引腳的兩種模式與DS相似。CS(片選輸入):在訪問DS12887的總線周期內(nèi),片選信號必須保持為低。IRQ(中斷申請輸入):低電平有效,可作微處理的中斷輸入。沒有中斷條件滿足時,IRQ處于高阻態(tài)。IRQ線是漏極開路輸入,要求外接上拉電阻。RESET(復(fù)位輸出):假設(shè)要保證DS12887有效復(fù)位,必須讓該腳保持低電平時間大于200ms。3.1.3DS12887芯片的存放器存放器AUIP:更新位。假設(shè)UIP為1,實(shí)時時鐘的更新轉(zhuǎn)換發(fā)生的很快,而當(dāng)UIP為0,更新轉(zhuǎn)換至少在244μs內(nèi)不會發(fā)生。DV0,DV1,DV2:用于晶振和復(fù)位分頻鏈的開啟。RS3,RS2,RS1,RS0:頻率選擇位,通過這四個位用戶可以:a用PIE位允許中斷;b用SQWE位允許SQAW輸出;c二者同時允許并用相同的頻率;d二者都不允許。存放器BSET:此位為0,時間更新正常進(jìn)行,每秒計數(shù)走時一次,當(dāng)此位為1,時間更新被禁止,程序可對芯片進(jìn)行初始化的操作和編程。PIE:周期中斷允許位,PIE為1,那么允許以選定的頻率拉低IRQ管腳,PIE為0,那么禁止中斷。AIE:定時鬧鐘中斷允許位,AIE為1,允許中斷,否那么禁止中斷。UIE:更新結(jié)束中斷允許位,AIE為1,允許中斷,否那么禁止中斷。SQWE:方波允許位,置1選定頻率方波從SQW腳輸出;為0-時,SQW腳為低。DM:數(shù)據(jù)模式位,DM為1說明為十進(jìn)制數(shù)據(jù),而0說明是BCD碼的數(shù)據(jù)。24/12:小時格式位,1說明24小時制,而0說明12小時制。DSE:夏令時允許位,當(dāng)DSE置1時允許兩個特殊的更新,在四月份的第一星期日,時間從1:59:59AM時改變?yōu)?:00:00AM;在十月的最后一個星期日的1:59:59AM時改變?yōu)?:00:00AM。當(dāng)DSE位為0,這種特殊修正不發(fā)生。3.2時鐘模塊本設(shè)計中的DS12887芯片AD0-AD7引腳與STC89C52芯片的P2口相連接。MOT引腳接地,為INTEL總線時序方式。因此R/W和DS引腳也為對應(yīng)INTEL的操作模式。按鍵模塊獨(dú)立按鍵K1-K4調(diào)節(jié)不同功能,K4鍵切換時分秒和鬧鈴時間的顯示;K1鍵按一下調(diào)節(jié)時,再按一下調(diào)節(jié)分,再按一下結(jié)束,時間走動,K2鍵加一,K3鍵減一。5-1鍵盤子程序流程功能是掃描按鍵,判斷按下的是哪個鍵,然后具體調(diào)用該鍵的程序。如下圖4-3〔其中50H里存儲的是所需修改的時鐘項(xiàng)〕K4鍵程序主要完成定時模塊和鬧鐘模塊的切換,通過中斷程序控制。K1鍵程序主要完成選位功能,通過判斷〔50H〕單元中的內(nèi)容取值,經(jīng)過操作,具體判斷出選中了那位。K1鍵對應(yīng)的位選地址如表4-1所示,程序流程圖如圖4-4所示。〔3〕K2鍵和K3鍵:我們在K2鍵和K3鍵功能程序里設(shè)一個標(biāo)志允許位,將該標(biāo)志位置1表示K2鍵有效,完成加一功能,而將該標(biāo)志位清零表示K3鍵有效,完成減一功能〔如圖4-5所示〕,跳到修改程序入口地址〔如圖4-6所示〕,再將該位信號賦給累加器A,然后對該位時鐘信號進(jìn)行修改操作。4.1修改時分位的流程此處的退出指的是退出該修改程序,每按一次K2和K3鍵修改一次就退出判斷有無鍵按下,當(dāng)?shù)诙伟聪翶2或K3鍵后在第一次修改程序后的結(jié)果上進(jìn)行累加或累減“時〞修改程序選中時位說明(51H)+03H是00H,然后判斷是K2鍵有效還是K3鍵有效,如果是K2鍵有效,那么對取出的十位內(nèi)容進(jìn)行加一操作,在將結(jié)果存入00H單元去顯示〔00-24〕,按下一次加一次,退出后等待第二次按下K2鍵進(jìn)行累加〔加到24重新賦0再加,依次循環(huán)〕;如果是K3鍵有效,那么對取出的十位內(nèi)容進(jìn)行減一操作,再將結(jié)果存入00H單元去顯示〔00-24〕,按下一次減一次,退出后等待第二次按下K2鍵進(jìn)行累減〔減到0重新賦24再減,依次循環(huán)〕如圖4-7〔2〕“分〞修改程序選中時位說明(51H)+03H是01H,然后判斷是K2鍵有效還是K3鍵有效,如果是K2鍵有效,那么對取出的十位內(nèi)容進(jìn)行加一操作,在將結(jié)果存入01H單元去顯示〔00-60〕,按下一次加一次,退出后等待第二次按下K2鍵進(jìn)行累加〔加到60重新賦0再加,依次循環(huán)〕;如果是K3鍵有效,那么對取出的十位內(nèi)容進(jìn)行減一操作,再將結(jié)果存入01H單元去顯示〔00-60〕,按下一次減一次,退出后等待第二次按下K2鍵進(jìn)行累減〔減到0重新賦60再減,依次循環(huán)〕如圖4-84.2鬧鐘報警系統(tǒng)由于蜂鳴器的工作電流較大,所以利用一個三極管放大電流,蜂鳴器驅(qū)動原理圖如圖5-1所示,當(dāng)單片機(jī)的P3.6引腳為高電平時,三極管截止,無電流通過蜂鳴器;反之導(dǎo)通,蜂鳴器響。在定時過程中,使P3.6輸出高電平,蜂鳴器不響;當(dāng)定時結(jié)束時,使P3.6輸出低電平,蜂鳴器響,按下K4鍵,給一個脈沖,送到中斷程序中,使P3.6輸出高電平。5.溫度顯示模塊DS18B20結(jié)構(gòu)及原理DS18B20內(nèi)部結(jié)構(gòu)主要由四局部組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置存放器DS18B20結(jié)構(gòu)框圖DS1820用一個高溫度系數(shù)的振蕩器確定一個門周期,內(nèi)部計數(shù)器在這個門周期內(nèi)對一個低溫度系數(shù)的振蕩器的脈沖進(jìn)行計數(shù)來得到溫度值。計數(shù)器被預(yù)置到對應(yīng)于-55℃的一個值。如果計數(shù)器在門周期結(jié)束前到達(dá)0,那么溫度存放器〔同樣被預(yù)置到-55℃〕的值增加,說明所測溫度大于-55℃。同時,計數(shù)器被復(fù)位到一個值,這個值由斜坡式累加器電路確定,斜坡式累加器電路用來補(bǔ)償感溫振蕩器的拋物線特性。然后計數(shù)器又開始計數(shù)直到0,如果門周期仍未結(jié)束,將重復(fù)這一過程,DS1820測溫范圍-55℃~+125℃,以0.5℃遞增。DS18B20工作原理圖DS18B20外接電源圖溫度顯示工作方式溫度傳感器DS18B20的接法很簡單,它的DQ引腳與MSC-51芯片的P1.7引腳相連接。這里只用到一個溫度傳感器,假設(shè)要使用多個那么只需將所有的DS18B20的I/O口接在一起即可,在具體操作時,通過讀取每個芯片的內(nèi)部序列號來識別溫度傳感器模塊工程總結(jié)本次三片機(jī)三級工程,本小組對MSC-51單片機(jī)為核心的控制芯片,DS12887時鐘芯片、DS18B20溫度傳感器,74LS138譯碼器及7段數(shù)碼管進(jìn)行了大量的資料查閱和研究工作,熟悉并掌握了上述芯片的根本功能和使用方法,將課本學(xué)習(xí)到的理論知識用于實(shí)踐操作,熟悉了各種芯片之間的協(xié)同工作,和各種工作模塊的組合思路。讓我們對系統(tǒng)的應(yīng)用單片機(jī)進(jìn)行功能設(shè)計有了更深的體會。設(shè)計人員分工明確,培養(yǎng)了小組成員的團(tuán)隊協(xié)作意識和能力,期間也遇到了一些困難,例如我們在定時模塊關(guān)于累加后如何實(shí)現(xiàn)單位的循環(huán)上遇到困難而最后我們運(yùn)用計數(shù)重置成功解決了這一問題。普通的仿真軟件的安裝和學(xué)習(xí)也讓我們消耗了大量的時間。本次三級工程讓我們檢驗(yàn)了課堂學(xué)習(xí)的成果,是一次很好的鍛煉。7.程序附錄#include<reg51.h>#include<absacc.h>#defineucharunsignedchar#defineuintunsignedint/*七段共陰管顯示定義*///此表為LED的字模,共陰數(shù)碼管0-9

-ucharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};

//段碼控制/*定義并初始化變量*/ucharseconde=0;//秒ucharminite=0;//分ucharhour=12;//時ucharmstcnt=0;//定時器計數(shù),定時100ms,mstcnt滿10,秒加1ucharshi=0;//鬧鈴功能ucharfen=0;ucharbjcs;//報警次數(shù)sbitP1_0=P1^0;

//second調(diào)整定義sbitP1_1=P1^1;

//minite調(diào)整定義sbitP1_2=P1^2;

//hour調(diào)整定義sbitP1_3=P1^3;

//鬧鈴功能,調(diào)整時間sbitL1=P1^6;

//調(diào)整半秒閃爍燈L1sbitL2=P1^7;

//調(diào)整半秒閃爍燈L2sbitP1_4=P1^4;

//關(guān)閉鬧鈴sbitL3=P2^0;//調(diào)整上午指示燈L3sbitL4=P2^1;//調(diào)整下午指示燈L4/*函數(shù)聲明*/voiddelay(uintk);

//延時子程序voidtime_pro();

//時間處理子程序voiddisplay();

//顯示子程序voidkeyscan();

//鍵盤掃描子程序/*延時子程序*/voiddelay(uintk){ucharj;//k=1,t=0.125mswhile((k--)!=0)

{

for(j=0;j<125;j++)

{;}

}}

/*時間處理子程序*/voidtime_pro(void){

if(seconde==60)

{

seconde=0;

minite++;

if(minite==60)

{

minite=0;

hour++;

if(hour==24)

{

hour=0;

}

}

}}/*半秒延遲子程序*/voiddelay30s(void){unsighedchari,j,k;for(i=50,i>0,i--)//1us*50*100*100=0.5sfor(j=100,i>0,i--)for(k=100,i>0,i--);}/*半秒閃爍子程序*/voidshanshuo30s(void){L1=0;//P1^6為低電平,點(diǎn)亮LED燈delay30s();L1=1;//P1^7為高電平,滅LED燈delay30s();L2=0;//P1^6為低電平,點(diǎn)亮LED燈delay30s();L2=1;//P1^7為高電平,滅LED燈delay30s();}/*顯示子程序*/voiddisplay(void){

if(P1_3==1)

{

P2=0XFE;

P0=dispcode[seconde%10];//秒個位

delay(1);

P2=0XFD;

P0=dispcode[seconde/10];//秒十位

delay(1);

P2=0XFB;

P0=dispcode[10];//間隔符-

delay(1);

P2=0XF7;

P0=dispcode[minite%10];//分個位

delay(1);

P2=0XEF;

P0=dispcode[minite/10];//分十位

delay(1);

P2=0XDF;

P0=dispcode[10];//間隔符-

delay(1);

P2=0XBF;

P0=dispcode[hour%10];//時個位

delay(1);

P2=0X7F;

P0=dispcode[hour/10];//時十位

delay(1);

}}/*鍵盤掃描子程序*/voidkeyscan(void){

if(P1_0==0)//秒位的調(diào)整

{

delay(30);

if(P1_0==0)

{

seconde++;

if(seconde==60)

{

seconde=0;

}

}

delay(250);

}

if(P1_1==0)//分位的調(diào)整

{

delay(30);

if(P1_1==0)

{

minite++;

if(minite==60)

{

minite=0;

}

}

delay(250);

}

if(P1_2==0)//時位的調(diào)整

{

delay(30);

if(P1_2==0)

{

hour++;

if(hour==24)

{

hour=0;

}

}

delay(250);

}}/*上下午指示子程序*/voidshangxia12h(void){If(shi<12)L3=0;//P2^0為低電平,點(diǎn)亮LED燈L4=1;//P2^1為高電平,滅LED燈elseL3=1;//P2^0為低電平,點(diǎn)亮LED燈L4=0;//P2^1為高電平,滅LED燈/*定時鬧鐘*/voiddingshi(void){

if(P1_3==0)

//按住P1_3BU不松,顯示鬧鈴設(shè)置界面,分別按P1_2、P1_1設(shè)置鬧鈴時間。

{

P2=0XFE;//FE=11111110

P0=dispcode[0];//秒個位

delay(1);

P2=0XFD;//FD=11111101

P0=dispcode[0];//秒十位

delay(1);

P2=0XFB;//FB=11111011

P0=dispcode[10];//間隔符-

delay(1);

P2=0XF7;//F7=11110111

P0=dispcode[fen%10];//分個位

delay(1);

P2=0XEF;//EF=11101111

P0=dispcode[fen/10];//分十位

delay(1);

P2=0XDF;//DF=11011111

P0=dispcode[10];//間隔符-

delay(1);

P2=0XBF;//BF=10111111

P0=dispcode[shi%10];//時個位

delay(1);

P2=0X7F;//7F=01111111

P0=dispcode[shi/10];//時十位

delay(1);

}

if(P1_2==0)//設(shè)定時

{

溫馨提示

  • 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

提交評論