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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

//minite調整定義sbitP1_2=P1^2;

//hour調整定義sbitP1_3=P1^3;

//鬧鈴功能,調整時間sbitL1=P1^6;

//調整半秒閃爍燈L1sbitL2=P1^7;

//調整半秒閃爍燈L2sbitP1_4=P1^4;

//關閉鬧鈴sbitL3=P2^0;//調整上午指示燈L3sbitL4=P2^1;//調整下午指示燈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為低電平,點亮LED燈delay30s();L1=1;//P1^7為高電平,滅LED燈delay30s();L2=0;//P1^6為低電平,點亮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)//秒位的調整

{

delay(30);

if(P1_0==0)

{

seconde++;

if(seconde==60)

{

seconde=0;

}

}

delay(250);

}

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

{

delay(30);

if(P1_1==0)

{

minite++;

if(minite==60)

{

minite=0;

}

}

delay(250);

}

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

{

delay(30);

if(P1_2==0)

{

hour++;

if(hour==24)

{

hour=0;

}

}

delay(250);

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

if(P1_3==0)

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

{

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)//設定時

{

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論