單片機(jī)at89c51電子時(shí)鐘論文.doc_第1頁
單片機(jī)at89c51電子時(shí)鐘論文.doc_第2頁
單片機(jī)at89c51電子時(shí)鐘論文.doc_第3頁
單片機(jī)at89c51電子時(shí)鐘論文.doc_第4頁
單片機(jī)at89c51電子時(shí)鐘論文.doc_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)電子時(shí)鐘 摘要:?jiǎn)纹瑱C(jī) 即單片微型計(jì)算機(jī)。(Single-Chip Microcomputer ),是 集 CPU ,RAM ,ROM ,定時(shí),計(jì)數(shù)和多種接口于一體的微控制器。他體積小,成本低,功能強(qiáng),廣泛應(yīng)用于工業(yè)自動(dòng)化上和智能產(chǎn)品。時(shí)鐘,自從它被發(fā)明的那天起,就成為了人類的好朋友,但隨著時(shí)間的推移,科學(xué)技術(shù)的不斷發(fā)展,時(shí)鐘的應(yīng)用越來越廣范,人們對(duì)時(shí)間計(jì)量的精度要求也越來越高。怎樣讓時(shí)鐘更好的為人民服務(wù),怎樣讓我們的老朋友再次煥發(fā)青春呢?這就要求我們不斷設(shè)計(jì)出新型的時(shí)鐘,來不斷滿足人們的日常生活需要。然而市場(chǎng)上的時(shí)鐘便宜的比較笨重,簡(jiǎn)單實(shí)用的又比較昂貴。那么,有沒有一款既簡(jiǎn)單實(shí)用價(jià)格又便宜的時(shí)鐘呢?我們課程設(shè)計(jì)小組設(shè)想:可不可以利用單片機(jī)功能集成化高,價(jià)格又便宜的特點(diǎn)設(shè)計(jì)一款結(jié)構(gòu)既簡(jiǎn)單,價(jià)格又便宜的單片機(jī)電子時(shí)鐘呢? 基于這種情況,我們課程設(shè)計(jì)小組成員多方查閱資料,反復(fù)論證設(shè)計(jì)出了這款既簡(jiǎn)單實(shí)用,又價(jià)格便宜的單片機(jī)電子時(shí)鐘。關(guān)鍵詞:?jiǎn)纹瑱C(jī) 時(shí)鐘 計(jì)時(shí)第一章 系統(tǒng)設(shè)計(jì)要求1.1 基本功能(1)能夠顯示時(shí)分秒(2)能夠調(diào)整時(shí)分秒1.2 擴(kuò)展功能(1)能夠任意設(shè)置定時(shí)時(shí)間(2)定時(shí)時(shí)間到鬧鈴能夠報(bào)警(3)實(shí)現(xiàn)了秒表功能第二章 硬件總體設(shè)計(jì)方案本次設(shè)計(jì)時(shí)鐘電路,使用了AT89C51單片機(jī)芯片控制電路,單片機(jī)控制電路簡(jiǎn)單且省去了很多復(fù)雜的線路,使得電路簡(jiǎn)明易懂,使用鍵盤鍵上的按鍵來調(diào)整時(shí)鐘的時(shí)、分、秒,用一揚(yáng)聲器來進(jìn)行定時(shí)提醒,同時(shí)使用C語言程序來控制整個(gè)時(shí)鐘顯示,使得編程變得更容易,這樣通過四個(gè)模塊:鍵盤、芯片、揚(yáng)聲器、顯示屏即可滿足設(shè)計(jì)要求。2.1系統(tǒng)功能實(shí)現(xiàn)總體設(shè)計(jì)思路此設(shè)計(jì)原理框圖如圖2-1所示,此電路包括以下四個(gè)部分:?jiǎn)纹瑱C(jī),鍵盤,鬧鈴電路及顯示電路。鬧鈴電路51單片機(jī)獨(dú)立鍵盤數(shù)碼管顯示 圖2-1 設(shè)計(jì)原理框圖 經(jīng)多方論證硬件我們小組采用AT89C51單片機(jī)和7SED八位共陽極數(shù)碼管等來實(shí)現(xiàn)單片機(jī)電子時(shí)鐘的功能。詳細(xì)元器件列表如表2.1所示:表2.1 詳細(xì)元器件列表AT89c511片7SED八位共陽極數(shù)碼管1片NPN三極管1個(gè)104p電容6個(gè)30p電容2個(gè)10K電阻6個(gè)560歐姆電阻8個(gè)200歐姆電阻1個(gè)100歐姆電阻6個(gè)2.2各部分功能實(shí)現(xiàn)(1) 單片機(jī)發(fā)送的信號(hào)通過程序控制最終在數(shù)碼管上顯示出來。(2) 單片機(jī)通過輸出各種電脈沖信號(hào)來驅(qū)動(dòng)控制各部分正常工作。(3) 為使時(shí)鐘走時(shí)與標(biāo)準(zhǔn)時(shí)間一致,校時(shí)電路是必不可少的,鍵盤用來校正數(shù)碼管上顯示的時(shí)間。(4) 單片機(jī)通過控制鬧鈴電路來完成 定時(shí)鬧鐘的功能。2.3系統(tǒng)工作原理設(shè)計(jì)的電路主要由四模塊構(gòu)成:?jiǎn)纹瑱C(jī)控制電路,顯示電路、鬧鈴電路以及校正電路。詳細(xì)電路功能圖如圖2-2: 圖2-2 詳細(xì)電路功能圖本設(shè)計(jì)采用C語言程序設(shè)計(jì),使單片機(jī)控制數(shù)碼管顯示時(shí)、分、秒,當(dāng)秒計(jì)數(shù)計(jì)滿60時(shí)就向分進(jìn)位,分計(jì)數(shù)器計(jì)滿60后向時(shí)計(jì)數(shù)器進(jìn)位,小時(shí)計(jì)數(shù)器按“23翻0”規(guī)律計(jì)數(shù)。時(shí)、分、秒的計(jì)數(shù)結(jié)果經(jīng)過數(shù)據(jù)處理可直接送顯示器顯示。當(dāng)計(jì)時(shí)發(fā)生誤差的時(shí)候可以用校時(shí)電路進(jìn)行校正。設(shè)計(jì)采用的是時(shí)、分、秒顯示,單片機(jī)對(duì)數(shù)據(jù)進(jìn)行處理同時(shí)在數(shù)碼管上顯示。2.4時(shí)鐘各功能分析及圖解2.4.1電路各功能圖解分析 (1) 時(shí)鐘運(yùn)行圖仿真開始運(yùn)行時(shí),或按下key4鍵時(shí),時(shí)鐘從12:00:00開始運(yùn)行,其中key2鍵對(duì)分進(jìn)行調(diào)整,key3對(duì)小時(shí)進(jìn)行調(diào)整,key6可以讓時(shí)鐘暫停。時(shí)鐘運(yùn)行圖如圖 2-3 所示: 圖2-3 時(shí)鐘運(yùn)行圖(2)秒表計(jì)時(shí)圖當(dāng)按下key1鍵進(jìn)入秒表計(jì)時(shí)狀態(tài),key6是秒表暫停鍵,可按key4鍵跳出秒表計(jì)時(shí)狀態(tài)。如圖2-4: 圖2-4 秒表計(jì)時(shí)圖(3)鬧鈴設(shè)置圖及運(yùn)行圖當(dāng)按下key5,開始定時(shí),分別按key2調(diào)分,key3調(diào)時(shí)設(shè)置鬧鈴時(shí)間,然后按下key4鍵恢復(fù)時(shí)鐘運(yùn)行狀態(tài)(圖2-5)當(dāng)鬧鈴設(shè)置時(shí)間到時(shí),蜂鳴器將發(fā)出10秒中蜂鳴聲(圖2-6)。 圖2-5 鬧鈴時(shí)間設(shè)置圖 圖2-6 鬧鈴運(yùn)行圖 該數(shù)字鐘是用一片AT89C51單片機(jī)通過編程去驅(qū)動(dòng)8個(gè)數(shù)碼管實(shí)現(xiàn)的。通過6個(gè)開關(guān)控制,從上到下6個(gè)開關(guān)KEY1-KEY6的功能分別為:KEY1,切換至秒表;KEY2,調(diào)節(jié)時(shí)間,每調(diào)一次時(shí)加1;KEY3, 調(diào)節(jié)時(shí)間,每調(diào)一次分加1;KEY4,從其它狀態(tài)切換至?xí)r鐘狀態(tài);KEY5,切換至鬧鐘設(shè)置狀態(tài),也可以對(duì)秒表清零;KEY6,秒表暫停.控制鍵分別與P1.0P1.5口連接其中:A通過P2口和P3口去控制數(shù)碼管的顯示如圖所示P2口接數(shù)碼管的ag端,是控制輸出編碼,P3口接數(shù)碼管的18端,是控制動(dòng)態(tài)掃描輸出B從P0.0輸出一個(gè)信號(hào)使二極管發(fā)光,二極管在設(shè)置的鬧鐘時(shí)間到了時(shí)候發(fā)光,若有樂曲可以去驅(qū)動(dòng)揚(yáng)聲器實(shí)現(xiàn)。2.4.2電路功能使用說明(1) 各個(gè)控制鍵的功能:可對(duì)時(shí)間進(jìn)行校準(zhǔn)調(diào)節(jié)(只能加);按下設(shè)置鍵數(shù)字時(shí)鐘進(jìn)入鬧鐘設(shè)置狀態(tài),設(shè)置鬧鐘的時(shí)間;時(shí)加、分加鍵是在校準(zhǔn)時(shí)間時(shí)或設(shè)置鬧鐘時(shí)間對(duì)小時(shí)數(shù)或分鐘數(shù)調(diào)節(jié)而設(shè)置的;按下秒切換鍵就可以進(jìn)入秒表模式,同時(shí)秒表也開始計(jì)時(shí),按下秒表暫停、復(fù)位鍵就暫停、歸零,如果要重新對(duì)秒計(jì)時(shí)則可以按秒表開始、復(fù)位;清零鍵可以對(duì)鬧鐘清零。(2) AT89C51單片機(jī),通過編寫程序?qū)?shù)碼顯示進(jìn)行控制。(3) 八個(gè)7段數(shù)碼管顯示時(shí)鐘和秒表信號(hào)。第三章軟件總體設(shè)計(jì)方案3.1 主程序流程圖:開始定時(shí)器及中斷定時(shí)器初始化執(zhí)行時(shí)鐘秒表鬧鈴設(shè)定程序是否設(shè)定參數(shù)執(zhí)行顯示程序NY軟件程序從開始執(zhí)行,先通過初始化各個(gè)寄存器,經(jīng)過掃描按鍵來決定是否設(shè)定參數(shù)來執(zhí)行相應(yīng)功能的程序,進(jìn)而在數(shù)碼管上顯示。如圖3-1: 圖3-1 主程序流程圖分?jǐn)?shù)值time.minute加1time.second歸零Tcount加1返回主程序?qū)崝?shù)值time1.boun加1time1.mintet歸零Time1.bour23時(shí)數(shù)值time1.hour歸零Tount1=100?秒數(shù)值time1.second加1second歸零執(zhí)行鬧鐘程序p0.0=1判斷時(shí)間與鬧鐘時(shí)間是否一致鬧鐘程序是否行完全Time1.second=60?Time.minute=60?恢復(fù)初值保護(hù)3.2 總中斷程序流程 圖3-2 中斷流程圖時(shí)間的顯示通過此中斷程序來控制,并且通過與設(shè)定的時(shí)間進(jìn)行比較來判斷是否讓鬧鈴工作。程序中包含時(shí)間的設(shè)定,如設(shè)定tcount來使秒等工作,進(jìn)而來控制分和時(shí)。如上圖圖3-2。A. 秒表中斷程序流程 秒表功能通過另一個(gè)程序來實(shí)現(xiàn)。通過保護(hù)主程序的數(shù)據(jù)來進(jìn)行秒表功能。程序中需要設(shè)置秒表的具體顯示方法。如圖3-3: 恢復(fù)初值保護(hù)10ms計(jì)數(shù)器加1恢復(fù)初值保護(hù)秒計(jì)數(shù)器加1,10ms計(jì)數(shù)器歸零,即sec+,ms=0Sec60?Ms100?輸出字碼,中斷結(jié)束,返回上級(jí)主程序分計(jì)數(shù)器加1,秒計(jì)數(shù)器歸零,即minit+,sec=0 N Y N Y圖3-3秒表中斷程序流程圖B.按鍵程序流程圖3-4為時(shí)鐘和鬧鐘的調(diào)節(jié),程序中通過掃描來判斷按鍵是否按下進(jìn)行時(shí)間和鬧鐘的調(diào)節(jié)。程序初始化時(shí)十位歸零alarms【7】=0分時(shí)位歸零alarms4=0分十位歸零輸出時(shí)鐘時(shí)十位加一輸出鬧鐘時(shí)個(gè)位加一,延時(shí)輸出時(shí)鐘十位加一輸出時(shí)鐘十個(gè)位加一輸出時(shí)鐘分個(gè)位加一,延時(shí)輸出鬧鐘時(shí)分位加一輸出鬧鐘時(shí)十位加一輸出鬧鐘分個(gè)位加一,延時(shí)時(shí)十位歸零判斷標(biāo)志位是否為零Alarms42Alarms72Alarms【3】0Dat169Dat17Alarms69Dat139Dat142判斷標(biāo)志是否為零判斷時(shí)i加鍵是否按下判斷分加鍵是否按下圖3-4按鍵程序流程圖圖3-5為進(jìn)入中斷和清零圖,程序中通過掃描來判斷按鍵是否按下進(jìn)行執(zhí)行相應(yīng)的中斷來事實(shí)現(xiàn)相應(yīng)的功能。判斷分加鍵tminute是否按下,P1.1=0判斷秒表miaobiao1是否按下按下,P1.0=0,tgsdhPP1.0=0判斷清零鍵miaobiao2是否按下,P1.3=0進(jìn)入秒表中斷,執(zhí)行秒表中斷程序返回上級(jí)主程序清零所有的計(jì)數(shù)器,各個(gè)顯示的字碼。圖3-5 中斷和清零程序流程圖3.3控制電路的C語言源程序根據(jù)流程圖,經(jīng)過認(rèn)真分析得出控制電路的源程序如下:26#include#define uchar unsigned char#define uint unsigned int#define delay_time 3/*宏定義*/uchar k,dat=0,0,0,0,0,0,0,0;uint tcount,t,u;uchar dat1=0,0,0,0,0,0,2,1;uchar dat2=0,0,0,0,0,0,0,0;uchar alarms=0,0,0,0,0,0,0,0;uchar dis_bit=0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01;unsigned char code SEG711=0xC0,/*0*/ 0xF9,/*1*/ 0xA4,/*2*/ 0xB0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xF8,/*7*/ 0x80,/*8*/ 0x90,/*9*/ 0xBF,/*-*/ ;/*數(shù)字顯示數(shù)組*/sbit miaobiao1=P10;sbit tminute=P11;sbit thour=P12;sbit miaobiao2=P13;sbit alarm=P14;sbit P0_0=P00;sbit P1_5=P15;sbit P1_6=P16;sbit P1_7=P17;/*端口定義*/uchar ms=0;uchar flag=0;uchar sec=0;uchar minit=0;struct timeuchar second;uchar minute;uchar hour;time1; uchar n,i;void delay(n) while(n-)for(i=120;i0;i-); /*延時(shí)子程序*/ void modify(void) EA=0; if(thour=0) if(flag=0) dat16+;delay(280); if(dat169) dat16=0;dat17+;else if(dat171)&(dat163) dat17=0; dat16=0; if(flag=1) alarms6+;delay(300); if(alarms69) alarms6=0;alarms7+; if(alarms72) alarms7=0; dat6=alarms6; dat7=alarms7; if(tminute=0) if(flag=0) dat13+;delay(280); if(dat3=9) dat14+;dat13=0;if(dat145) dat14=0; if(flag=1) alarms3+;delay(300); if(alarms39) alarms4+;alarms3=0; if(alarms45) alarms4=0; dat3=alarms3;dat4=alarms4; if(miaobiao1=0)TR0=0;ET0=0;TR1=1;ET1=1; if(miaobiao2=0) TR0=1;ET0=1;TR1=0;ET1=0; dat20=0; dat21=0; dat23=0; dat24=0; dat26=0; dat27=0; ms=0; sec=0; minit=0; if(P1_5=0) TR0=0;ET0=0;TR1=0;ET1=0; if(alarm=0)TR0=0;ET0=0;TR1=0;ET1=0;flag=1; dat0=0; dat1=0;dat2=10; dat3=0;dat4=0;dat5=10;dat6=0;dat7=0; EA=1;/*按鍵掃描*/void init(void)TMOD = 0x11; TH0 = 0xDB;TL0 =0xFF;TH1=0xDB;TL1=0xFF; ET0 = 1; /10msET1=1;/TR1=1; TR0=1; tcount=0;ms=0;sec=0;minit=0;EA = 1;/*初始化*/void test(void)for(k=0;k23) time1.hour=0; dat5=10; dat2=10; dat0=dat10; dat1=dat11; dat3=dat13; dat4=dat14; dat6=dat16; dat7=dat17; flag=0; P0=0x01;if(alarms7=dat17)&(alarms6=dat16)&(alarms4=dat14)&(alarms3=dat13)&(dat11=100) ms=0; sec+; dat23=sec%10; dat24=sec/10; if(sec=60) sec=0; minit+; dat26=minit%10; dat27=minit/10; dat5=10; dat2=10; dat0=dat20; dat1=dat21; dat3=dat23; dat4=dat24; dat6=dat26; dat7=dat27; EA=1; 第四章 課程設(shè)計(jì)結(jié)果分析此時(shí)鐘設(shè)計(jì)是利用protues仿真軟件進(jìn)行仿真,基本上實(shí)現(xiàn)了課程設(shè)計(jì)要求實(shí)現(xiàn)的功能。硬件部分設(shè)置了的六個(gè)按鍵。當(dāng)按鍵一按下時(shí),進(jìn)入秒表顯示狀態(tài),秒表開始計(jì)時(shí),當(dāng)按鍵六按下時(shí),秒表暫停;當(dāng)按鍵四按下時(shí)恢復(fù)到時(shí)間顯示功能;當(dāng)按鍵二按下時(shí),進(jìn)入調(diào)分狀態(tài),按一次,分加一,60一循環(huán);按鍵三按下時(shí),進(jìn)入調(diào)時(shí)狀態(tài),按一次,時(shí)加一,60一循環(huán);按鍵五按下時(shí),進(jìn)入鬧鈴設(shè)置功能,緊接著按下按鍵二和按鍵三進(jìn)行時(shí)和分的設(shè)置,再按下按鍵4恢復(fù)顯示時(shí)間,當(dāng)顯示的時(shí)間和定時(shí)設(shè)置的時(shí)間一致時(shí),蜂鳴器發(fā)出蜂鳴聲,蜂鳴時(shí)間我們?cè)O(shè)置為10秒。另外,鬧鈴電路有音樂鬧鐘的擴(kuò)展的功能(可以將蜂鳴器換成揚(yáng)聲器再加一段音樂程序即可實(shí)現(xiàn))。調(diào)試階段,出現(xiàn)一些問題。比如,實(shí)際小時(shí)顯示到29才歸零,分鐘顯示到60才進(jìn)一經(jīng)過軟件調(diào)試,以上問題均一一排除,結(jié)果達(dá)到預(yù)期目標(biāo)。但時(shí)間有限,部分?jǐn)U展功能不能及時(shí)實(shí)現(xiàn),比如音樂鬧鈴。 第五章 總結(jié) 經(jīng)過一周的單片機(jī)課程設(shè)計(jì),我組成員已基本完成課題要求。功能上基本達(dá)標(biāo):時(shí)鐘的顯示,秒表顯示,定時(shí)功能,調(diào)時(shí)功能。時(shí)鐘顯示功能,精確度完全可以滿足日常生活顯示時(shí)間的需要;秒表功能,可以滿足比賽計(jì)時(shí)的需要;調(diào)時(shí)功能,方便快捷;定時(shí)功能準(zhǔn)確可靠,還有擴(kuò)展成音樂鬧鐘的余地。硬件設(shè)施合乎要求,軟件設(shè)計(jì)可以配合硬件實(shí)現(xiàn)要求功能。但是由于時(shí)間比較短,出現(xiàn)部分不足:使用定時(shí)和秒表功能時(shí)時(shí)間顯示功能停止運(yùn)行。經(jīng)討論只是軟件部分還不完善。不過,我們相信,如果時(shí)間充足,將軟件改進(jìn),我們完全可以很好實(shí)現(xiàn)所有功能。 另外,在本次設(shè)計(jì)的過程中,我們發(fā)現(xiàn)很多的問題,雖然以前沒有做過這樣的設(shè)計(jì)但通過這次設(shè)計(jì)我學(xué)會(huì)了很多東西,單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我們覺的寫好一個(gè)程序并不是一件簡(jiǎn)單的事,比如寫一個(gè)程序看其功能很少認(rèn)為編寫程序簡(jiǎn)單,但到編的時(shí)候才發(fā)現(xiàn)一些細(xì)微的知識(shí)或低級(jí)錯(cuò)誤經(jīng)常犯做不到最后常常失敗,所以有些東西只有學(xué)精弄懂并且要細(xì)心才行,只學(xué)習(xí)理論有些東西是很

溫馨提示

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

評(píng)論

0/150

提交評(píng)論