電子時(shí)鐘計(jì)時(shí)器的設(shè)計(jì)c語言版調(diào)試完美通過可直接使用附原理圖源程序以及完整的文檔_第1頁
電子時(shí)鐘計(jì)時(shí)器的設(shè)計(jì)c語言版調(diào)試完美通過可直接使用附原理圖源程序以及完整的文檔_第2頁
電子時(shí)鐘計(jì)時(shí)器的設(shè)計(jì)c語言版調(diào)試完美通過可直接使用附原理圖源程序以及完整的文檔_第3頁
電子時(shí)鐘計(jì)時(shí)器的設(shè)計(jì)c語言版調(diào)試完美通過可直接使用附原理圖源程序以及完整的文檔_第4頁
電子時(shí)鐘計(jì)時(shí)器的設(shè)計(jì)c語言版調(diào)試完美通過可直接使用附原理圖源程序以及完整的文檔_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、湖南人文科技學(xué)院課程設(shè)計(jì)報(bào)告課程名稱:單片機(jī)原理及應(yīng)用課程設(shè)計(jì)設(shè)計(jì)題目: 電子時(shí)鐘的設(shè)計(jì) 系 別: 通信與控制工程系 專 業(yè): 通信工程 班 級: 09級通信二班 學(xué)生姓名: 袁 琦 黃文付 學(xué) 號: 09416230 09416227 起止日期: 2011年12月20日2011年12月30日指導(dǎo)教師: 王善偉 姚毅 謝四蓮 教研室主任: 劉建閩 指導(dǎo)教師評語: 指導(dǎo)教師簽名: 年 月 日成績評定項(xiàng) 目權(quán)重成績袁琦黃文付1、設(shè)計(jì)過程中出勤、學(xué)習(xí)態(tài)度等方面0.22、課程設(shè)計(jì)質(zhì)量與答辯0.53、設(shè)計(jì)報(bào)告書寫及圖紙規(guī)范程度0.3總 成 績 教研室審核意見:教研室主任簽字: 年 月 日教學(xué)系審核意見:

2、 主任簽字: 年 月 日摘 要時(shí)鐘是人類日常生活必不可少的工具,本設(shè)計(jì)從日常生活中常見的事物入手,通過對電子時(shí)鐘的設(shè)計(jì),讓我們認(rèn)識到單片機(jī)已經(jīng)深入到我們生活的每個(gè)領(lǐng)域,該設(shè)計(jì)不僅可以鍛煉我們的動手能力,而且可以加深我們對單片機(jī)的認(rèn)識和激發(fā)我們對未知科學(xué)領(lǐng)域的探索。本文利用單片機(jī)實(shí)現(xiàn)數(shù)字時(shí)鐘計(jì)時(shí)功能的主要內(nèi)容。它體積小,成本低、功能強(qiáng)、使用方便、可靠性高等一系列優(yōu)點(diǎn),廣泛應(yīng)用于智能產(chǎn)業(yè)和工業(yè)自動化上。本次設(shè)計(jì)采用獨(dú)立式按鍵進(jìn)行時(shí)間調(diào)整,其中STC89C52是核心元件,同時(shí)采用數(shù)碼管LED動態(tài)顯示“時(shí)”,“分”,“秒”的現(xiàn)代計(jì)時(shí)裝置。與傳統(tǒng)機(jī)械表相比,它具有走時(shí)精確,顯示直觀等特點(diǎn)。它的計(jì)時(shí)周期為

3、24小時(shí),顯滿刻度為“23時(shí)59分59秒”,另外利用DS1302具有校時(shí)功能,斷電后有記憶功能,恢復(fù)供電時(shí)可實(shí)現(xiàn)計(jì)時(shí)同步等特點(diǎn)。該系統(tǒng)同時(shí)具有硬件設(shè)計(jì)簡單、工作穩(wěn)定性高、價(jià)格低廉等優(yōu)點(diǎn)。關(guān)鍵詞:STC89C52 ; LED數(shù)碼管;8255芯片;DS1302芯片;目錄設(shè)計(jì)要求11方案論證與對比11.1方案一11.2方案二21.3方案對比22系統(tǒng)硬件電路的設(shè)計(jì)32.1單片機(jī)的選擇及引腳功能介紹32.2 8255A芯片的結(jié)構(gòu)及引腳功能介紹42.3 DS1302芯片的結(jié)構(gòu)及引腳功能介紹62.4顯示電路設(shè)計(jì)72.5電源電路設(shè)計(jì)82.6鍵盤動態(tài)掃描電路設(shè)計(jì)83控制系統(tǒng)的軟件設(shè)計(jì)103.1主程序流程圖103

4、.2顯示子程序113.3鬧鐘時(shí)間設(shè)定功能程序113.4鍵盤掃描程序124系統(tǒng)功能調(diào)試與整體指標(biāo)134.1硬件調(diào)試與分析134.2軟件調(diào)試與分析144.3性能分析145詳細(xì)儀器清單146總結(jié)與思考及致謝15參考文獻(xiàn)16附錄一:程序(方案一)17附錄二:程序(方案二)25電子時(shí)鐘的設(shè)計(jì)設(shè)計(jì)要求利用單片機(jī)作為控制核心,完成一個(gè)時(shí)鐘計(jì)時(shí)器。具體要求如下:(1)采用6位LED數(shù)碼顯示時(shí)、分、秒。(2)時(shí)制式為24小時(shí)制。(3)使用按鍵開關(guān)可實(shí)現(xiàn)時(shí)、分調(diào)整。(4)秒表/時(shí)鐘功能轉(zhuǎn)換。(5)定時(shí)設(shè)定提醒的功能。(6)整點(diǎn)提醒(蜂鳴)。(7)DS1302設(shè)時(shí),對時(shí),掉電記憶時(shí)間的功能。1方案論證與對比1.1方

5、案一此方案采用單片機(jī)內(nèi)部定時(shí)器T0進(jìn)行計(jì)時(shí),STC89S52實(shí)時(shí)控制。如圖1所示:圖 1 方案一系統(tǒng)方框圖1.2方案二此方案采用專用時(shí)鐘芯片DS1302精確計(jì)時(shí),單片機(jī)STC89C52實(shí)時(shí)讀取時(shí)鐘顯示至6位數(shù)碼管。如圖2所示:圖 2 方案二系統(tǒng)方框圖1.3方案對比以上方案中,方案一設(shè)計(jì)簡潔,編程比較簡單,計(jì)時(shí)精度不高,準(zhǔn)確性不能完全保證。雖硬件簡潔、成本更低廉、便于實(shí)現(xiàn),綠色環(huán)保,編程簡單易寫,不能達(dá)到提高同學(xué)們編程的能力和對單片機(jī)及其擴(kuò)展芯片的學(xué)習(xí)和深程度的去了解單片機(jī)及其更廣泛的應(yīng)用,故在此我們選擇挑戰(zhàn),放棄對其選擇。雖然我們對其進(jìn)行了放棄,但我們也把此方法的程序?qū)懞靡员氵M(jìn)行對比。方案二與

6、方案一相比,編程比較復(fù)雜,計(jì)時(shí)精度較高,而且可以靈活運(yùn)用,可擴(kuò)展性好,并能充分的利用單片機(jī)的有效資源。還可讓我們培養(yǎng)我們的自學(xué)能力,自己去發(fā)掘單片機(jī)內(nèi)部結(jié)構(gòu)及其擴(kuò)展功能,自己去學(xué)會怎樣對其他芯片控制的學(xué)習(xí)方法,使得課程設(shè)計(jì)具有一定的挑戰(zhàn)性,正因如此,故我們選擇方案二。2系統(tǒng)硬件電路的設(shè)計(jì)2.1單片機(jī)的選擇及引腳功能介紹STC89C52具有如下特點(diǎn):40個(gè)引腳(引腳圖如圖四所示),4k Bytes Flash片內(nèi)程序存儲器,128 bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門

7、狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。此外,STC89C52RC設(shè)計(jì)和配置了振蕩頻率可為0Hz并可通過軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。圖4 STC89C52芯片引腳圖引腳功能介紹:VCC(40):5V; GND(20):接地; P0口(3932):P0口為8位漏極開路雙向I/O口,每引腳可吸收8個(gè)TTL門電流; P1口(18):P1口是從內(nèi)部提供上拉電阻器的8位雙向I/O口,

8、P1口緩沖器能接收和輸出4個(gè)TTL門電流; P2口(2128):P2口為內(nèi)部上拉電阻器的8位雙向I/O口,P2口緩沖器可接收和輸出4個(gè)TTL門電流; P3口(1017):P3口是8個(gè)帶內(nèi)部上拉電阻器的雙向I/O口,可接收和輸出4個(gè)TTL門電流,P3口也可作為AT89C51的特殊功能口; RST(9):復(fù)位輸入。當(dāng)振蕩器復(fù)位時(shí),要保持RST引腳2個(gè)機(jī)器周期的高電平時(shí)間; ALE/PROG(30):當(dāng)訪問外部存儲器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié),在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6,它可用作對外部

9、輸出的脈沖或用于定時(shí)目的,要注意的是,每當(dāng)訪問外部數(shù)據(jù)存儲器時(shí),將跳過1個(gè)ALE脈沖; PSEN(29):外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個(gè)機(jī)器周期2次PSEN有效,但在訪問外部數(shù)據(jù)存儲器時(shí),這2次有效的PSEN信號將不出現(xiàn); EA/VPP(31):當(dāng)EA保持低電平時(shí),外部程序存儲器地址為(0000HFFFFH)不管是否有內(nèi)部程序存儲器。FLASH編程期間,此引腳也用于施加12V編程電源(VPP); XTAL1(19):反向振蕩器放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入;XTAL2(18):來自反向振蕩器的輸出。2.2 8255A芯片的結(jié)構(gòu)及引腳功能介紹8255A芯片是In

10、tel公司生產(chǎn)的通用可編程并行接口電路,廣泛應(yīng)用于單片機(jī)擴(kuò)展并行I/O口。它具有8個(gè)位并行口PA、PB和PC。8255A芯片的內(nèi)部結(jié)構(gòu)及引腳如圖5所示。(1)8255A的內(nèi)部結(jié)構(gòu)8255A的內(nèi)部結(jié)構(gòu)有以下幾部分組成:a.并行I/O端口A、B、C 8255A的內(nèi)部有3個(gè)8位并行I/O口:A口、B口、C口。3個(gè)I/O口都可以通過編程選擇為輸入口或輸出口,但在結(jié)構(gòu)和功能上有所不同。A口:含有一個(gè)8位數(shù)據(jù)輸出鎖存/緩沖器和一個(gè)8位輸入鎖存器。B口:含有一個(gè)8位數(shù)據(jù)輸出鎖存/緩沖器和一個(gè)8位輸入鎖存器(不鎖存)。C口:含有一個(gè)8位數(shù)據(jù)輸出鎖存/緩沖器和一個(gè)8位輸入鎖存器(不鎖存)。當(dāng)數(shù)據(jù)傳送不需要聯(lián)絡(luò)信

11、號時(shí),這3個(gè)端口都可以用作輸入口或輸出口。當(dāng)A口B口需要有聯(lián)絡(luò)信號時(shí),C口可以作為A口和B口的聯(lián)絡(luò)信號線。b.工作方式控制電路:8255A的三個(gè)端口在使用使可分為A、B兩組。A組包括A口8位和C口高4位:B組包括B口8位和C口低4位。兩組的控制電路中分別有控制寄存器,根據(jù)寫入的控制字決定兩組的工作方式,也可對C口每一位置“1” 或清“0”。c.數(shù)據(jù)總線緩沖器:數(shù)據(jù)總線緩沖器是三態(tài)雙向的8位緩沖器,是8255A與單片機(jī)數(shù)據(jù)總線的接口,8255A的D0D7可以和AT89C51單片機(jī)的P0.0P0.7直接相連。數(shù)據(jù)的輸入輸出、控制字和狀態(tài)信息的傳遞,均可通過數(shù)據(jù)總線緩沖器進(jìn)行。d.讀/寫控制邏輯:8

12、255A讀/寫控制邏輯的作用是從CPU的地址和控制總線上接受有關(guān)信號,轉(zhuǎn)變成各種控制命令送到數(shù)據(jù)緩沖器及A組和B組的控制電路,控制A、B、C3個(gè)端口的操作。其引腳圖如圖5所示:圖5 8255引腳圖引腳功能介紹:8255A共有40個(gè)引腳,一般為雙列直插DIP封裝,40個(gè)引腳可分為與CPU連接的數(shù)據(jù)線、地址和控制信號以及與外圍設(shè)備連接的三個(gè)端口線。D0D7:雙向三態(tài)數(shù)據(jù)總線。RESET:復(fù)位信號,輸入,高電平有效。復(fù)位后,控制寄存器清0,A口、B口、C口被置為輸入方式。CS:片選信號,輸入,低電平有效。RD.:讀信號,輸入,低電平有效。有效時(shí),允許CPU通過8255A D0D7讀取數(shù)據(jù)或狀態(tài)信息。

13、WR.:寫信號,輸入,低電平有效。有效時(shí),允許A1A0:端口控制信號,輸入。2位可構(gòu)成四種狀態(tài),分別尋址A口、B口、C口和控制寄存器PA0PA7:A口數(shù)據(jù)線,雙向。PB0PB7:B口數(shù)據(jù)線,雙向。PC0PC7:C口數(shù)據(jù)/信號線,雙向。當(dāng)8255A工作于方式0時(shí),PC0PC7分為兩組(每組4位)并行I/O數(shù)據(jù)線;當(dāng)8255A工作于方式1或方式2時(shí),PC0PC7為A口、B口提供聯(lián)絡(luò)信號。2.3 DS1302芯片的結(jié)構(gòu)及引腳功能介紹 DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V

14、5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)318的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對后背電源進(jìn)行涓細(xì)電流充電的能力。(1)DS1302的引腳功能及結(jié)構(gòu) DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc10.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS130

15、2由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc2.5V之前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說明。SCLK始終是輸入端。

16、 DS1302的引腳功能以及單片機(jī)的連接圖如圖6圖6 DS1302引腳及其與單片機(jī)連接的原理圖2.4顯示電路設(shè)計(jì)單片機(jī)中通常用七段LED構(gòu)成字型“8”,另外,還有一個(gè)小數(shù)點(diǎn)發(fā)光二極管以顯示小數(shù)位!這種顯示器有共陰和共陽兩種!發(fā)光二極管的陽極連在一起的(公共端)稱為共陽極顯示器,陰極連在一起的稱為共陰極顯示器。一位顯示器由8個(gè)發(fā)光二極管組成,其中,7個(gè)發(fā)光二極管構(gòu)成字型“8”的各個(gè)筆劃(段),a_g,另一個(gè)小數(shù)點(diǎn)為dp發(fā)光二極管。當(dāng)在某段發(fā)光二極管上施加一定的正向電壓時(shí),該段筆畫即亮;不加電壓則暗。為了保護(hù)各段LED不被損壞,需外加限流電阻。由于共陰極連接需加驅(qū)動,故在這里我采用的是共陽陽極連接

17、。以共陽極LED為例,各LED公共陽極K0接高電平,若向各控制端a,b,,g,dp順次送入00011110信號,則該顯示器顯示“”字型。共陰極7段LED顯示數(shù)字0 F、文字、符號及小數(shù)點(diǎn)的編碼(a段為最地位,dp點(diǎn)為最高位),如圖7。圖7 數(shù)碼管的驅(qū)動顯示電路設(shè)計(jì)2.5電源電路設(shè)計(jì)在各種電子設(shè)備中,直流穩(wěn)壓電源是必不可少的組成部分,它是電子設(shè)備唯一能量來源,它的設(shè)計(jì)思路是根據(jù)我們以前學(xué)過的模電電子技術(shù),要想得到我們所要的+6V輸出電壓,就需將交流220V的電壓經(jīng)過變壓器、整流電路、濾波電路和穩(wěn)壓電路四個(gè)部分。2.6鍵盤動態(tài)掃描電路設(shè)計(jì)在單片機(jī)系統(tǒng)中按鍵數(shù)量較多時(shí),為了減少I/O口的占用,常常將

18、按鈕排列成矩陣式鍵盤中,每條水平線和直線在交叉處不直接連通,而是通過一個(gè)按鈕加以連接。這樣,一個(gè)端口(如P1口)就能組成4*4=16個(gè)按鈕,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條就能組成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時(shí),采用矩陣法來做鍵盤是最合理的。矩陣式鍵盤的按鈕識別辦法確定矩陣式鍵盤上何鍵被按下簡紹一種“行掃描法”。行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的,按鈕識別辦法,如下圖示鍵盤,介紹過程如下。判斷鍵盤中有無鍵盤按下將全部行線置低電平,然后檢測列的電平為低,則表示鍵盤中有鍵被按下,而且閉

19、合的鍵位位于低電平線與4根行線相交叉的4個(gè)按鈕之中。若所有列線均為高電平,則鍵盤中無鍵按下。判斷閉合鍵所在的位置:在確認(rèn)有鍵按下后,即可置某根行線為低電平時(shí),其他線為高電平。在確定某根位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列與置為低電平的行線交叉處的按鈕就是閉合的按鈕。將程序通過串口下載到單片機(jī)中,在鍵盤上按任意鍵時(shí),將會在數(shù)碼管上顯示對應(yīng)的字符。為了驅(qū)動鍵盤,同上以8255_PC第四位作為輸入,8255PC高四位作為列掃描輸出,以此來實(shí)現(xiàn)動態(tài)掃描顯示法。如圖8所示:圖8 鍵盤動態(tài)掃描電路設(shè)計(jì)3控制系統(tǒng)的軟件設(shè)計(jì)3.1主程序流程圖本設(shè)計(jì)中主程序主要實(shí)現(xiàn)顯示的初始化和調(diào)用各

20、子程序工作的功能,讀取時(shí)間的子程序主要實(shí)現(xiàn)初始化,時(shí)間信息的采集和顯示段碼的碼的存取。分別對各個(gè)器件的功能進(jìn)行編程設(shè)計(jì),根據(jù)主程序流程圖(如下)進(jìn)行全面的分析。設(shè)計(jì)中計(jì)時(shí)主要以定時(shí)器T0中斷完成,定點(diǎn)鬧鈴使用峰鳴器來完成。當(dāng)端口有開關(guān)按下時(shí),轉(zhuǎn)入相應(yīng)的功能程序。其主程序執(zhí)行流程圖如下圖9:圖9 主程序流程圖3.2顯示子程序時(shí)間顯示子程序顯示時(shí)鐘芯片3個(gè)內(nèi)存單元(小時(shí)、分鐘、秒鐘)的BCD碼數(shù)據(jù),8255的PA口送數(shù)碼管的位選編碼。8255的PB口送段選編碼,位選段選編碼存放在ROM表中。顯示時(shí),先取出位選編碼數(shù)據(jù),然后送至PA口輸出,接著取出段選編碼數(shù)據(jù)送至PB口輸出,剩下的數(shù)碼管以同樣地方法

21、送數(shù)據(jù)直到將3個(gè)內(nèi)存單元的數(shù)據(jù)分成6個(gè)位全部送去數(shù)碼管顯示。數(shù)碼管顯示子程序流程圖如圖9所示:圖 10 數(shù)碼管顯示子程序流程圖3.3鬧鐘時(shí)間設(shè)定功能程序在時(shí)鐘狀態(tài)下,觸發(fā)外中斷1時(shí),進(jìn)入鬧鐘時(shí)間設(shè)定模式,且不影響T0計(jì)時(shí)器的功能狀態(tài),在鍵盤上輸入對應(yīng)的數(shù)字進(jìn)行時(shí)間設(shè)定。當(dāng)分別按下調(diào)節(jié)時(shí)鐘、分鐘和秒鐘的個(gè)位時(shí),時(shí)間自動確定,鬧鐘時(shí)間只精確到分鐘。鬧鐘時(shí)間設(shè)定流程圖如圖11所示:圖11 鬧鐘時(shí)間設(shè)定流程圖3.4鍵盤掃描程序本設(shè)計(jì)采用動態(tài)掃描法,動態(tài)掃描法不僅掃描鍵陣,也可以實(shí)現(xiàn)顯示,是目前應(yīng)用十分廣泛的一種方法。動態(tài)掃描法是采用輸出“移動”信號,輪流對各行按鍵進(jìn)行檢測來實(shí)現(xiàn)的。設(shè)置行線為輸出,列線

22、為輸入,當(dāng)無按鍵按下時(shí),列輸入全為“1”.設(shè)計(jì)時(shí),將某一行輸出為“0”,讀取列線值,若其中某一位為“0”,則表明行、列交叉處的按鍵按下,否則,無按鍵按下;繼續(xù)掃描下一行(將下一行輸出為“0”),直至全掃描完為止。鍵盤掃描程序流程圖如12圖所示:圖12 鍵盤掃描程序流程圖4系統(tǒng)功能調(diào)試與整體指標(biāo)4.1硬件調(diào)試與分析(1)時(shí)間準(zhǔn)確性調(diào)試硬件調(diào)試時(shí)可先檢查印制版及焊接的質(zhì)量情況,將電子時(shí)鐘通電后,顯示00:00:00。觸發(fā)INT0中斷開始計(jì)時(shí),每過一秒時(shí)間就顯示變化一次。計(jì)時(shí)準(zhǔn)確,顯示穩(wěn)定。(2)鬧鈴功能調(diào)試將時(shí)鐘調(diào)到11點(diǎn)59分58秒,2秒后,時(shí)鐘開始定點(diǎn)鬧鈴,鈴聲為“嘀-嘀-嘀-嘀”聲,持續(xù)1分

23、鐘報(bào)時(shí)聲自動停止也可以觸發(fā)功能鍵來中止鬧鈴。設(shè)計(jì)的電子時(shí)鐘計(jì)時(shí)精確度較高,并可應(yīng)用于日常生活中。 能夠通過鍵盤對電子時(shí)鐘進(jìn)行調(diào)整,且調(diào)整過程簡單方便,易于操作,有較強(qiáng)的人性化設(shè)計(jì)。 并且可通過鍵盤實(shí)現(xiàn)鬧鈴與時(shí)間模式的切換,使電子時(shí)鐘的功能更加強(qiáng)大。 能夠進(jìn)行定時(shí)鬧鈴,計(jì)時(shí)較準(zhǔn)確,基本能實(shí)現(xiàn)測試目標(biāo)。4.2軟件調(diào)試與分析軟件調(diào)時(shí)在KEIL C51編譯器下進(jìn)行,源程序編譯及仿真調(diào)試應(yīng)分段或以子程序?yàn)閱挝恢饌€(gè)進(jìn)行,最后可結(jié)合硬件實(shí)時(shí)調(diào)試。4.3性能分析按照設(shè)計(jì)程序分析,LED顯示器動態(tài)掃描的頻率為167HZ,實(shí)際使用觀察時(shí)完全沒有閃爍。由于計(jì)時(shí)中斷程序中加了中斷延時(shí)誤差處理,所以實(shí)際計(jì)時(shí)精度非常高,

24、可滿足多種場合的應(yīng)用需要。5詳細(xì)儀器清單表格 1 儀器清單儀器名稱儀器名稱STC89C52STC89C528255A8255A3位數(shù)碼管3位數(shù)碼管2個(gè)DS1302DS130211.0592k晶振11.0592k晶振32.768k晶振32.768k晶振矩陣鍵盤44矩陣30PF電容30PF電容100PF電容100PF電容1K電阻1K電阻蜂鳴器蜂鳴器6總結(jié)與思考及致謝在老師的指導(dǎo)和同學(xué)的幫助之下,我完成了此次單片機(jī)課程設(shè)計(jì)。從開始接到課題要求到時(shí)鐘的實(shí)現(xiàn),再到論文的完成,每走一步對我來說都是新的嘗試與挑戰(zhàn)。在這次的課程設(shè)計(jì)中不僅檢驗(yàn)了我所學(xué)習(xí)的知識,也培養(yǎng)了我如何去把握一件事情,如何去做一件事情,又

25、如何完成一件事情。在設(shè)計(jì)過程中,與同學(xué)分工設(shè)計(jì),和同學(xué)們相互探討,相互學(xué)習(xí),相互監(jiān)督。課程設(shè)計(jì)是我們專業(yè)課程知識綜合應(yīng)用的實(shí)踐訓(xùn)練,著是我們邁向社會,從事職業(yè)工作前一個(gè)必不少的過程。這次時(shí)鐘計(jì)時(shí)器設(shè)計(jì)的經(jīng)歷也會使我終身受益,我感受到做設(shè)計(jì)是要用心去做的一件事情,是真正的自己學(xué)習(xí)的過程和研究的過程,沒有學(xué)習(xí)就不可能有研究的能力,沒有自己的研究,就不會有所突破。通過設(shè)計(jì),我在老師的精心指導(dǎo)和嚴(yán)格要求下,獲得了豐富的理論知識,極大地提高了實(shí)踐能力。最后,再一次感謝我的老師.,老師嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我學(xué)習(xí)的榜樣;老師循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪;這次時(shí)鐘計(jì)時(shí)器設(shè)計(jì)的每個(gè)環(huán)

26、節(jié),都離不開老師您的細(xì)心指導(dǎo)。我懂得了學(xué)習(xí)的重要性,了解到理論知識與實(shí)踐相結(jié)合的重要意義,學(xué)會了堅(jiān)持、耐心和努力,這將為自己今后的學(xué)習(xí)和工作做出了最好的榜樣。參考文獻(xiàn)1 余錫存.單片機(jī)原理及接口技術(shù) M.西安:西安電子科技大學(xué)出版社,2000 2 賈好來.MCS-51單片機(jī)原理及應(yīng)用 M.北京:機(jī)械工業(yè)出版社,20063 樓然苗,李光飛.單片機(jī)課程設(shè)計(jì)指導(dǎo)M.北京:北京航空航天大學(xué)出版社,20074 夏路易,石宗義.電路原理圖與電路板設(shè)計(jì)教程北京希望電子工業(yè)出版20025 朱定華,戴汝平.單片微機(jī)原理與應(yīng)用.(M) 北京:清華大學(xué)出版社,2003附錄一:程序(方案一)#include#incl

27、ude#define uint unsigned int#define uchar unsigned char#define PA XBYTE0xD1FF#define PB XBYTE0xD2FF#define PC XBYTE0xD5FF #define PCON XBYTE0xD7FFsbit buzzer=P33;/蜂鳴器端口/數(shù)碼管0-9的段選編碼uchar code tabledu=0xA0,0xBB,0x62,0x2A,0x39,0x2C,0x24,0xBA,0x20,0x28;/數(shù)碼管各位選編碼uchar code tablewe=0xfe,0xfd,0xfb,0xf7,0xe

28、f,0xdf;/全局變量定義unsigned long num1,num2;uchar shi0,shi1,fen0,fen1,m0,m1,num,num3,aa,bb,cc,count,temp,count,S,flag,flag1;char hour,min,second,h0,h1,mi0,mi1,s0,s1;void init();/初始化函數(shù)聲明void display(uchar,uchar,uchar,uchar,uchar,uchar );/顯示函數(shù)聲明void delay(uint);/帶參數(shù)延時(shí)函數(shù)聲明 1毫秒void keyscan();/鍵盤掃描函數(shù)void main(

29、)PCON=0x80;init();while(1)/主體循環(huán)keyscan();/時(shí)鐘分離部分m1=aa%10;m0=aa/10;fen1=bb%10;fen0=bb/10;shi1=cc%10;shi0=cc/10;/clock分離部分s1=second%10;s0=second/10;mi1=min%10;mi0=min/10;h1=hour%10;h0=hour/10;/時(shí)鐘顯示和clock顯示部分if(num3=1&num30;x-)for(y=124;y0;y-);/*鍵盤函數(shù)函數(shù)*/void keyscan()PC=0xfe;temp=PC;temp=temp&0xf0;if(t

30、emp!=0xf0)delay(5);temp=PC;temp=temp&0xf0;if(temp!=0xf0)temp=PC;switch(temp)case 0xee:num3=1;/秒鐘加一按鍵break;case 0xde:num3=2;/分鐘加一按鍵break;case 0xbe:num3=3;/時(shí)鐘加一按鍵break;case 0x7e:num3=4;/清零按鍵break;while(temp!=0xf0)/松手檢測temp=PC;temp=temp&0xf0;display(shi0,shi1,fen0,fen1,m0,m1);switch(num3)case 1: aa+;if

31、(aa59)aa=0; break;case 2: bb+;if(bb59)bb=0; break;case 3: cc+;if(cc23)cc=0; break;case 4: aa=0,bb=0,cc=0;break; PC=0xfd;temp=PC;temp=temp&0xf0;if(temp!=0xf0)delay(5);temp=PC;temp=temp&0xf0;if(temp!=0xfe)temp=PC;switch(temp)case 0xed:num3=5;/定時(shí)器暫停,并進(jìn)入設(shè)置clock狀態(tài)按鍵break;case 0xdd:num3=6;/設(shè)置clock的秒,分,時(shí)加時(shí)

32、按鍵break;case 0xbd:num3=7;/設(shè)置clock的秒,分,時(shí)減時(shí)按鍵break;case 0x7d:num3=8;/定時(shí)器暫停,開啟按鍵break;while(temp!=0xf0)temp=PC;temp=temp&0xf0;display(h0,h1,mi0,mi1,s0,s1);switch(num3)case 5:TR0=0;count+;if(count=4)count=0;TR0=1;break;case 6:if(count=1)second+;if(second=60)second=0;else if(count=2)min+;if(min=60)min=0;

33、else if(count=3)hour+;if(hour=24)hour=0;break;case 7:if(count=1)second-;if(second=-1)second=59;else if(count=2)min-;if(min=-1)min=59;else if(count=3)hour-;if(hour=-1)hour=23;break;case 8:S+;if(S%2=1)TR0=0;elseTR0=1;if(S=2)S=0;break;附錄二:程序(方案二)#include#include#define uchar unsigned char#define uint u

34、nsigned int#define uchar unsigned char#define PA XBYTE0xD1FF#define PB XBYTE0xD2FF#define PC XBYTE0xD5FF#define PCON XBYTE0xD7FFuchar num,temp,hour,minute,second,hour1,hour2,minute1,minute2,second1,second2;uchar aa,aa1,aa2,bb,bb1,bb2,cc,cc1,cc2;sbit buzzer=P33;/蜂鳴器sbit D0=P10;/用來指示鬧鐘開啟關(guān)閉的LEDbit flag

35、;/鬧鐘開啟關(guān)閉的標(biāo)志位uint a0;uchar code tabledu=0xA0,0xBB,0x62,0x2A,0x39,0x2C,0x24,0xBA,0x20,0x28;/數(shù)碼管0123456789的段選編碼uchar code tablewe=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;/數(shù)碼管的位選編碼sbit SCLK=P32;sbit RST=P26;sbit IO=P35;/*毫秒延時(shí)程序*/void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/*微秒延時(shí)程序*/void delay_us(uch

36、ar n)uchar i; for(i=0;in;i+) ;/*1302做好準(zhǔn)備*/void ready_init1302()RST=0;SCLK=0;RST=1;/*1302單字節(jié)數(shù)據(jù)寫入*/void write1302(uchar dat)uchar i;SCLK=0;delay_us(2);for(i=0;i=1; /*1302雙字節(jié)數(shù)據(jù)寫入(寄存器地址和數(shù)據(jù))*/void write_set1302(uchar cmd,uchar dat)ready_init1302();delay_us(2);write1302(cmd);write1302(dat);SCLK=1;RST=0;/*

37、1302單字節(jié)數(shù)據(jù)讀出*/uchar read1302()uchar i,dat;dat=0;delay_us(2);for(i=0;i=1;if(1=IO)dat=dat|0x80;SCLK=1;delay_us(2);SCLK=0;delay_us(2);return dat;/*1302單字節(jié)數(shù)據(jù)讀出(讀指定寄存器值)*/uchar read_set1302(uchar cmd)uchar dat;ready_init1302();write1302(cmd);dat=read1302();SCLK=1;RST=0;return dat;/*1302初始化(設(shè)置初始時(shí)間)*/void init1302()write_set1302(0x8e,0x00);write_set1302(0x80,(0/10)4|(0%10);write_set1302(0x82,(27/10)4|(27%10);write_set1302(0x84,(10/10)4)*10+(temp

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論