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

下載本文檔

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

文檔簡介

./單片機課程設(shè)計姓名:劉韶輝學(xué)號:1402250232班級:自動化11402成績:指導(dǎo)老師:吳玉蓉設(shè)計時間:2016年12月26日~2017年1月5日目錄TOC\o"1-3"\h\u1.設(shè)計要求12.系統(tǒng)總體方案23.硬件電路設(shè)計34.系統(tǒng)軟件設(shè)計.45.課程設(shè)計體會156.參考文獻157.系統(tǒng)實物圖16附錄1電路原理圖17附錄2原件清單18一、設(shè)計要求利用51單片機開發(fā)電子時鐘,實現(xiàn)時間顯示、調(diào)整功能。具體要求如下:按以上要求制定設(shè)計方案,并繪制出系統(tǒng)工作框圖;按要求設(shè)計部分外圍電路,并與單片機仿真器、單片機實驗箱、電源等正確可靠的連接,給出電路原理圖;用仿真器及單片機實驗箱進行程序設(shè)計與調(diào)試;利用鍵盤輸入調(diào)整秒、分和小時時刻,數(shù)碼管顯示時間;二、系統(tǒng)總體方案1.時鐘計數(shù):形成秒、分、小時,系統(tǒng)時間采用24小時制。利用單片機內(nèi)部的定時器/計數(shù)器來實現(xiàn),它的處理過程如下:首先設(shè)定單片機內(nèi)部的一個定時器/計數(shù)器工作于定時方式,對機器周期計數(shù)形成基準時間〔如10ms,然后用另一個定時器/計數(shù)器或軟件計數(shù)的方法對基準時間計數(shù)形成秒〔對10ms計數(shù)100次,秒計60次形成分,分計60次形成小時,小時計24次則計滿一天。2.顯示:采用8個LED顯示系統(tǒng)當前時間,顯示格式為"時-分-秒"〔如12-25-09。3.設(shè)置功能:用戶可以對系統(tǒng)的時間進行設(shè)置。沒有按鍵時,則時鐘正常走時。當按下K0鍵,進入調(diào)分狀態(tài),時鐘停止走動,此時,按K1或K2鍵可進行加1或減1操作;繼續(xù)按K0鍵可分別進行分和時的調(diào)整,此時,按K1或K2鍵可進行加1或減1操作;最后按K0鍵將退出調(diào)整狀態(tài),時鐘開始計時運行。4.系統(tǒng)框圖STC89C51STC89C51復(fù)位復(fù)位電路電源電路電源電路按鍵按鍵電路顯示電路顯示電路晶振晶振電路三、硬件電路設(shè)計1.時鐘電路〔晶振電路單片機利用外部12MHZ晶振構(gòu)成振蕩電路作為時鐘源,單片機內(nèi)部具有一個高增益反向放大器,用于構(gòu)成振蕩器。通常在引腳XTAL1和XTAL2跨接石英晶體和兩個補償電容構(gòu)成自激振蕩器,結(jié)構(gòu)如圖所示:圖2時鐘電路圖2.按鍵電路按鍵處理設(shè)置為:當有沒鍵按下時,時鐘正常運行;當按一次K1,時鐘停止走動,按K2對秒進行調(diào)整;當K1按2次時,按K2對分進行調(diào)整;當K1按下3次時,按K2對小時進行調(diào)整,當按下4次K1時,校時完畢,時鐘按設(shè)定的時間進行正常走時。當按1次K3進入鬧鐘設(shè)置界面,時鐘繼續(xù)進行走時,按K2對秒進行設(shè)置;當按2次K3,按K2對分進行設(shè)置;當按3次K3,按K2對秒進行設(shè)置;當按下4次K3時,鬧鐘設(shè)置完畢進入時鐘顯示界面。電路如下圖:圖3獨立按鍵電路3.復(fù)位電路單片機小系統(tǒng)常采用上電自動復(fù)位和手動按鍵復(fù)位兩種方式實現(xiàn)系統(tǒng)的復(fù)位操作,上電復(fù)位要求接通電源后,自動實現(xiàn)復(fù)位操作,手動復(fù)位要求在電源接通的條件下,在單片機運行期間,用按鈕開關(guān)操作使單片機復(fù)位,其結(jié)構(gòu)圖如下圖,上電自動復(fù)位通過電容C充電來實現(xiàn),手動按鍵復(fù)位是通過按鍵將電阻R與Vcc接通來實現(xiàn)。 圖4復(fù)位電路4.單片機系統(tǒng)STC89C51是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有4K在系統(tǒng)可編程Flash存儲器。STC89C51使用經(jīng)典的MCS-51內(nèi)核,但做了很多的改進使得芯片具有傳統(tǒng)51單片機不具備的功能。在單芯片上,擁有靈巧的8位CPU

和在系統(tǒng)可編程Flash,使得STC89C51為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被圖5單片機系統(tǒng)凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。最高運作頻率35MHz,6T/12T可選。5.數(shù)碼管顯示電路將所有數(shù)碼管的8個顯示段碼"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的COM端,就使各個數(shù)碼管輪流受控顯示,電路如下圖:圖6數(shù)碼管顯示電路四、軟件設(shè)計本系統(tǒng)的軟件系統(tǒng)主要可分為主程序、定時計數(shù)中斷程序、按鍵程序、延時程序四大模塊。設(shè)計思路:本系統(tǒng)主要可分為主程序、定時計數(shù)中斷程序、按鍵程序、延時程序和共陰極數(shù)碼管顯示程序。定時中斷程序是利用單片機內(nèi)部定時器0實現(xiàn)1秒的定時,然后利用軟件延時實現(xiàn)分小時,時間調(diào)整程序是利用單片機的內(nèi)部存貯器,把調(diào)整好的時間寫到顯示時間的存貯單元,然后啟動定時器開始計時并顯示,延時程序是利用軟件實現(xiàn)延時達到去抖的目的和數(shù)碼管動態(tài)顯示的延時。主程序就是利用這些子程序中斷程序?qū)崿F(xiàn)顯示、定時等功能。1.軟件流程圖〔1主程序開始開始初始化初始化鍵盤掃描鍵盤掃描顯示顯示〔2鍵盤掃描程序開始開始計時滿1s計時滿1s秒加1秒加1滿60s滿60s開始時間顯示時清零時滿24分清零,時加1分滿60秒清零,分加1開始時間顯示時清零時滿24分清零,時加1分滿60秒清零,分加1〔3顯示程序開始開始時間數(shù)據(jù)個十位分離時間數(shù)據(jù)個十位分離i=0i=0i>8?i>8?送位選碼送位選碼結(jié)束消隱送段選碼結(jié)束消隱送段選碼2、程序清單#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};sbitk0=P1^0;sbitk1=P1^1;sbitk2=P1^2;ints0,s1,min0,min1,h0,h1,shi,fen,miao,count,slnum,a0,a1,b0,b1,c0,c1;voiddelay<uintz>//延時函數(shù)1ms{uintx,y;for<x=z;x>0;x-->for<y=90;y>0;y-->;}voidinit<>//初始化函數(shù){P0=table[0];P2=0xff;shi=23;fen=59; //上電時間23-59-50miao=50;s1=miao/10;s0=miao%10;min1=fen/10;min0=fen%10;h1=shi/10;h0=shi%10; //分離出個位十位TMOD=0x01;TH0=<65536-50000>/256;TL0=<65536-50000>%256; //基準時間為20msEA=1;ET0=1;TR0=1; //打開中斷定時器}voiddisplay0<>//{P2=0x80;P0=table[h1];delay<1>;P0=0x00; //消隱P2=0x40;P0=table[h0];delay<1>;P0=0x00;P2=0x20;P0=0x40;delay<1>;P0=0x00;P2=0x10;P0=table[min1];delay<1>;P0=0x00;P2=0x08;P0=table[min0];delay<1>;P0=0x00;P2=0x04;P0=0x40; //讓時分秒中間顯示"—"delay<1>;P0=0x00;P2=0x02;P0=table[s1];delay<1>;P0=0x00;P2=0x01;P0=table[s0];delay<1>;P0=0x00;}voiddisplay2<> 該顯示函數(shù)是讓閃爍顯示函數(shù)的子函數(shù){P2=0x80;P0=table[a1];delay<1>;P0=0x00;P2=0x40;P0=table[a0];delay<1>;P0=0x00;P2=0x20;P0=0x40;delay<1>;P0=0x00;P2=0x10;P0=table[b1];delay<1>;P0=0x00;P2=0x08;P0=table[b0];delay<1>;P0=0x00;P2=0x04;P0=0x40;delay<1>;P0=0x00;P2=0x02;P0=table[c1];delay<1>;P0=0x00;P2=0x01;P0=table[c0];delay<1>;P0=0x00;}voiddisplay3<> 閃爍顯示函數(shù),用于未松手閃爍{intn;for<n=0;n<40;n++>{display0<>;}for<n=0;n<35;n++>{display2<>;}}voidkryscan<>//鍵盤掃描函數(shù){if<k0==0>{delay<3>; //延時去抖if<k0==0> //確認K0已按下{slnum++;while<!k0> //判斷是否松手display0<>; //未松手閃爍顯示if<slnum==1>{TR0=0; //關(guān)閉定時器,時鐘停止走動c1=10;c0=10;a1=h1;a0=h0;b0=min0;b1=min1; //讓秒鐘閃,時鐘分鐘顯示}if<slnum==2>{c1=s1;c0=s0;a1=h1;a0=h0;b0=10;b1=10; //讓分鐘閃,秒鐘時鐘顯示}if<slnum==3>{c1=s1;c0=s0;a1=10;a0=10;b0=min0;b1=min1; //讓時鐘閃,秒鐘分鐘顯示}if<slnum==4>{c1=s1;c0=s0;a1=h1;a0=h0;b0=min0;b1=min1;slnum=0; //全部顯示,不閃爍TR0=1; //打開定時器,時鐘繼續(xù)}}}if<slnum!=0>{if<k1==0>{delay<3>;if<k1==0> //K1是否按下{while<!k1> //判斷是否松手display3<>; //閃爍顯示if<slnum==1>{miao++;if<miao==60>miao=0;s1=miao/10;s0=miao%10; //秒鐘加一}if<slnum==2>{fen++;if<fen==60>fen=0;min1=fen/10;min0=fen%10; //分鐘加一}if<slnum==3>{shi++;if<shi==24>shi=0;h1=shi/10;h0=shi%10; //時鐘加一}}}if<k2==0>{delay<3>;if<k2==0>{while<!k2>display3<>;if<slnum==1>{miao--;if<miao==-1>miao=59;s1=miao/10;s0=miao%10; //秒鐘減一}if<slnum==2>{fen--;if<fen==-1>fen=59;min1=fen/10;min0=fen%10; //分鐘減一}if<slnum==3>{shi--;if<shi==-1>shi=23;h1=shi/10;h0=shi%10; //時鐘減一}}}}}voiddisplay1<> //按鍵檢查閃爍顯示函數(shù){intn;for<n=0;n<40;n++>{display0<>;kryscan<>;}for<n=0;n<35;n++>{display2<>;kryscan<>;}}voidmain<>//主函數(shù){init<>;while<1>{display0<>;kryscan<>;if<!slnum==0>display1<>;}}voidtimer0<>interrupt1//中斷函數(shù){TH0=<65536-50000>/256;TL0=<65536-50000>%256;count++;if<count==20>{count=0;miao++;if<miao==60>{miao=0;fen++;if<fen==60>{fen=0;shi++;if<shi==24>shi=0;h1=shi/10;h0=shi%10;}min1=fen/10;min0=fen%10;}s1=miao/10;s0=miao%10;}}五

溫馨提示

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

最新文檔

評論

0/150

提交評論