基于STC89C52的電子時鐘設計說明_第1頁
基于STC89C52的電子時鐘設計說明_第2頁
基于STC89C52的電子時鐘設計說明_第3頁
基于STC89C52的電子時鐘設計說明_第4頁
基于STC89C52的電子時鐘設計說明_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目目 錄錄1.1.前言前言1 12.2.整體設計整體設計方方案案2 23.3.硬件設硬件設計計方案方案2 23.13.1 復位電路復位電路23.23.2 晶振電路晶振電路33.33.3 LEDLED 顯示電路顯示電路43.43.4 按鍵輸入電路按鍵輸入電路43.53.5 蜂鳴器電路蜂鳴器電路54.4.軟件設計方案軟件設計方案6 64.14.1 軟件設計方法軟件設計方法64.24.2 系統(tǒng)軟件設計思想系統(tǒng)軟件設計思想64.34.3 系統(tǒng)主程序系統(tǒng)主程序74.44.4 中斷子程序中斷子程序74.4.14.4.1 定時定時器器 T0T0 的中斷程序設計的中斷程序設計84.4.24.4.2 定時器定時

2、器 T1T1 的中斷程序設計的中斷程序設計84.54.5 按鍵掃描子程序按鍵掃描子程序104.64.6 調(diào)時、分、秒子程序調(diào)時、分、秒子程序104.74.7 調(diào)節(jié)鬧鐘子程序調(diào)節(jié)鬧鐘子程序115.5.調(diào)試與功能說明調(diào)試與功能說明12125.15.1 硬盤調(diào)試硬盤調(diào)試135.25.2 系統(tǒng)性能測試與功能說明系統(tǒng)性能測試與功能說明135.35.3 系統(tǒng)時鐘誤差分析系統(tǒng)時鐘誤差分析135.45.4 軟件調(diào)試問題與解決軟件調(diào)試問題與解決136.6.設計總結(jié)設計總結(jié)1313參考文獻參考文獻1414附錄附錄 1 1:多功能電子時鐘原理圖:多功能電子時鐘原理圖1515附錄附錄 2 2:C C 語言源程序語言源

3、程序16161.1.前言前言20 世紀末,電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。 時間對人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當前的時間。忘記了要做的事情,當事情不是很重要的時候,這種遺忘無傷大雅。但是,一旦重要事情,一時的耽誤可能釀成大禍。目前,單片機正朝著高性能和多品種方向發(fā)展趨勢將是進一步向著 CMOS 化、低功耗、小體積、大容量、高性能、低價格和外圍電路裝化等幾個方面發(fā)展。下面是單片機的主要發(fā)展趨勢。單片機應用的重要

4、意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設計思想和設計方法。從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在已能用單片機通過軟件方法來實現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。單片機模塊中最常見的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實現(xiàn)時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。數(shù)字鐘是采用數(shù)字電路實現(xiàn)對.時,分,秒.數(shù)字顯示的計時裝置,廣泛用于個人家庭,車站, 碼頭辦公室等公共場所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應用,使得數(shù)字鐘

5、的精度,遠遠超過老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大擴展了鐘表原先的報時功能。諸如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動起閉路燈、定時開關烘箱、通斷動力設備、甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎的。因此,研究數(shù)字鐘與擴大其應用,有著非?,F(xiàn)實的意義。數(shù)字鐘已成為人們?nèi)粘I钪校罕夭豢缮俚谋匦杵?,廣泛用于個人家庭以與車站、碼頭、劇場、辦公室等公共場所,給人們的生活、學習、工作、娛樂帶來極大的方便。由于數(shù)字集成電路技術(shù)的發(fā)展和采用了先進的石英技術(shù),使數(shù)字鐘具有走時準確、性能穩(wěn)定、攜帶方便等優(yōu)點,它還用于計時、自動報時與自動控制

6、等各個領域。2.2.整體設計方案整體設計方案2 / 22多功能電子時鐘的功能的電路具有實現(xiàn)顯示時、分、秒,以(24 小時)計時方式的功能;具有快速校準時、分、秒的其本功能;秒表/時鐘功能的轉(zhuǎn)換;具有整點報時的功能;還可以實現(xiàn)對時間的調(diào)整。由單片機、復位、時鐘電路、晶振、LED 數(shù)碼管、按鍵、蜂鳴器組成。復位電路時鐘電路電源電路AT89C51LED 數(shù)碼管顯示電路按鍵輸入電路蜂鳴器電路圖 1 時鐘電路框圖3.3.硬件設計方案硬件設計方案3.1 復位電路單片機復位電路就好比電腦的重啟部分,當電腦在使用中出現(xiàn)死機,按下重啟按鈕電腦部的程序從頭開始執(zhí)行。單片機也一樣,當單片機系統(tǒng)在運行中,受到環(huán)境干擾

7、出現(xiàn)程序跑飛的時候,按下復位按鈕部的程序自動從頭開始執(zhí)行。 單片機在啟動時都需要復位,以使 CPU 與系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。89 系列單片機的復位信號是從 RST 引腳輸入到芯片的施密特觸發(fā)器中的。當系統(tǒng)處于正常工作狀態(tài)時,且振蕩器穩(wěn)定后,如果 RST 引腳上有一個高電平并維持 2 個機器周期(24 個振蕩周期)以上,則 CPU 就可以響應并將系統(tǒng)復位。單片機系統(tǒng)的復位方式有:手動按鈕復位和上電復位。本課程設計采用手動按鍵復位。手動按鈕復位需要人為在復位輸入端 RST 上加入高電平(圖(3)) 。一般采用的辦法是在 RST 端和正電源 Vcc 之間接一個按鈕。當人為按

8、下按鈕時,則 Vcc 的+5V 電平就會直接加到 RST 端。手動按鈕復位的電路如圖所示。由于人的動作再快也會使按鈕保持接通達數(shù)十毫秒,所以,完全能夠滿足復位的時間要求。3 / 22圖 2 復位電路3.2 晶振電路51 單片機最小系統(tǒng)晶振 Y1 也可以采用 6MHz 或者 11.0592MHz,在正常工作的情況下可以采用更高頻率的晶振,51 單片機最小系統(tǒng)晶振的振蕩頻率直接影響單片機的處理速度,頻率越大處理速度越快。單片機系統(tǒng)里都有晶振,在單片機系統(tǒng)里晶振作用非常大,全程叫晶體振蕩器,他結(jié)合單片機部電路產(chǎn)生單片機所需的時鐘頻率,單片機晶振提供的時鐘頻率越高,那么單片機運行速度就越快,單片接的一

9、切指令的執(zhí)行都是建立在單片機晶振提供的時鐘頻率。 單片機晶振的作用是為系統(tǒng)提供基本的時鐘信號。通常一個系統(tǒng)共用一個晶振,便于各部分保持同步。有些通訊系統(tǒng)的基頻和射頻使用不同的晶振,而通過電子調(diào)整頻率的方法保持同步。圖 3 晶振電路3.3 LED 顯示電路LED 顯示器工作方式有兩種:靜態(tài)顯示方式和動態(tài)顯示方式。靜態(tài)顯示的特點是每4 / 22個數(shù)碼管的段選必須接一個 8 位數(shù)據(jù)線來保持顯示的字形碼。當送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優(yōu)點是占用 CPU 時間少,顯示便于監(jiān)測和控制。缺點是硬件電路比較復雜,成本較高。動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一

10、起,由位選線控制是哪一位數(shù)碼管有效。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時應略小于靜態(tài)顯示電路中的。一個八段數(shù)碼管稱為一位,多個數(shù)碼管并列在一起可構(gòu)成多位數(shù)碼管,它們的段選線連在一起,而各自的公共端稱為位選線。顯示時,都從段選線送入字符編碼,而選中哪個位選線,那個數(shù)碼管便會被點亮。圖 4 LED 顯示電路3.4 按鍵輸入電路獨立式按鍵采用每個按鍵單獨占有一個 I/O 口的結(jié)構(gòu),這是最簡單的鍵盤輸入設計。當按下和釋放按鍵時

11、,輸入到 I/O 口端的電平是不一樣的,單片機程序根據(jù)不同端口的電平變化判斷是否有鍵按下以與是哪一個鍵被按下。獨立式鍵盤的原理簡單,5 / 22每個按鍵的電路是獨立的,占用一條數(shù)據(jù)線。這種接法占用硬盤資源大,適合該課程設計的電子時鐘電路。圖 5 獨立按鍵3.5 蜂鳴器電路蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、機、定時器等電子產(chǎn)品中作發(fā)聲器件。蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。壓電式蜂鳴器 壓電式蜂鳴器主要由多諧振蕩器、壓電蜂鳴片、阻抗匹配器與共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有發(fā)光二極

12、管。多諧振蕩器由晶體管或集成電路構(gòu)成。當接通電源后(1.515V 直流工作電壓),多諧振蕩器起振,輸出1.52.5kHZ 的音頻信號,阻抗匹配器推動壓電蜂鳴片發(fā)聲。壓電蜂鳴片由鋯鈦酸鉛或鈮鎂酸鉛壓電瓷材料制成。在瓷片的兩面鍍上銀電極,經(jīng)極化和老化處理后,再與黃銅片或不銹鋼片粘在一起。電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片與外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號電流通過電磁線圈,使電磁線圈產(chǎn)生磁場。振動膜片在電磁線圈和磁鐵的相互作用下,周期性地振動發(fā)聲。6 / 22圖 6 蜂鳴器電路4.4.軟件設計方案軟件設計方案4.1 軟件設計方法系統(tǒng)的軟件設計也是工具系統(tǒng)功能的設計。單片機軟件

13、的設計主要包括執(zhí)行軟件的設計和監(jiān)控軟件的設計。單片機的軟件設計通常要考慮以下幾個方面的問題:根據(jù)軟件功能要求,將系統(tǒng)軟件劃分為若干個相對獨立的部分,設計出合理的總體結(jié)構(gòu),使軟件開發(fā)清晰、簡潔和流程合理;培養(yǎng)良好的編程風格,如考慮結(jié)構(gòu)化程序設計、實行模塊化、子程序化。既便于調(diào)試、 ,又便于移植和修改;建立正確的數(shù)學模型,通過仿真提高系統(tǒng)的性能,并選取合適的參數(shù);繪制程序流程圖;合理分配系統(tǒng)資源;為程序加入注釋,提高可讀性,實施軟件工程;注意軟件的抗干擾設計,提高系統(tǒng)的可靠性。4.2 系統(tǒng)軟件設計思想本系軟件設計中,利用單片機定時器設計時間計時處理,采用單片機部的 T0 定時器溢出中斷來實現(xiàn),工作

14、在 T0 方式下,定時 250 微妙,則連續(xù)中斷 4000 次即為一秒,得到了我們所需時間的最小單位該設計用 C51 編寫程序,由于匯編語言的移植性比較差,而 C 語言則比較靈活。許多子函數(shù)都可以直接移植過去。在程序中除了有主函數(shù)外還包含許多子函數(shù),如延時函數(shù)、按鍵掃描函數(shù)、初始化函數(shù)、時間顯示函數(shù)、設定鬧鐘顯示函數(shù)、調(diào)時、分、秒函數(shù)、功能切換函數(shù)、秒表功能函數(shù)。4.3 系統(tǒng)主程序7 / 22在主控程序循環(huán)中主要工作為掃描是否有按鍵,若有按健則做相應的功能處理,同時也掃描顯示器顯示時間數(shù)據(jù),并檢查所設置的時間是否到了。時間計時處理程序是等過了 1s 后,則更新時間數(shù)據(jù),將最新的時、分、秒的數(shù)據(jù)

15、轉(zhuǎn)換為數(shù)字數(shù)據(jù)并顯示在八段數(shù)碼管上。開始蜂鳴器初始化數(shù)碼管顯示初始化按鍵輸入初始化定時器 T0、T1 初始化開中斷開關,允許 T0、T1 中斷調(diào)用時鐘顯示程序調(diào)用按鍵掃描程序等待中斷啟動 T0、T1定義計數(shù)變量和狀態(tài)變量圖 7 系統(tǒng)主程序流程圖4.4 中斷子程序中斷子程序的主要功能:提供時間基準和快速按鍵調(diào)時功能。4.4.1 定時器 T0 的中斷程序設計定時器 T0 中斷提供時間基準。當 T0 連續(xù)中斷 4000 次時,即為一秒,此時秒加一;8 / 22當秒值為 60 時,分鐘加一,同時秒清零;當分鐘值為 60 時,小時加一,同時分鐘值清零;當小時為 24 時,小時清零。計數(shù)變量清零秒加 1分

16、加 1秒清零小時加 1 且分清零小時清零計數(shù)到 4000 否?秒 =60 否?分 =60 否?小時=24 否?開始YNYYYNNN返回計數(shù)變量加 1圖 8 T0 中斷程序流程圖4.4.2 定時器 T1 的中斷程序設計當 T1 中斷 500 次時,檢測一次選擇按鍵 S3,如果按鍵按下,檢測時間加減按鍵,對應按鍵按下則執(zhí)行對應的操作,選擇按鍵可選擇調(diào)時、調(diào)分、調(diào)秒以與讓時間加減按鍵失效這四種功能,這樣可以達到迅速校準時間的作用。9 / 22計數(shù)變量 1 加 1延時去抖動狀態(tài)變量 m 加 1m=1m=2m=3m=4調(diào)秒程序調(diào)分程序調(diào)時程序變量清零計數(shù)變量 1 清零按鍵 S3 按下否?按鍵 S3 按下

17、否?計數(shù)到 500 否?NNNYYY計數(shù)變量 2 加 1秒表低位加 1,計數(shù)變量 2 清零秒表高位加 1低位清零秒表高位清零計數(shù)到 400 否?低位=9999 否?高位=9999 否?NNNYYY開始Yflag = 1 否?中斷返回N圖 9 T1 中斷程序流程圖4.5 按鍵掃描子程序按鍵掃描子程序是程序計中相當重要的一部分。按鍵掃描子程序的功能是:掃描10 / 22S4 鍵是否按下,若 S4 鍵按下,則執(zhí)行相應功能。標志變量 flag 的初值設為 1,當按下 S4 鍵時,標志變量 flag 值加 1,對應切換至所設置的功能。具體切換任務:flag值為 1 時可以顯示時鐘并對時間進行校準,當 f

18、lag 值為 2 時,切換至秒表功能;當flag 值為 3 時,切換至鬧鐘設置功能;當 flag 值為 4 時,flag 值返回 1,回到時鐘顯示并可以調(diào)時。開始NS4 鍵是否按下?Y返回延時去抖動S4 鍵是否按下?YN狀態(tài)變量 flag 加 1圖 10 按鍵掃描程序流程圖4.6 調(diào)時、分、秒子程序當選擇按鍵狀態(tài)選擇到調(diào)秒時,相應的按下 S2 即對秒進行加 1 運算,當秒到加到60 時,秒清零;按下 S1 即對秒進行減 1 運算,當減到零時,秒等于 59。選擇按鍵切換時,對應的鍵可以調(diào)分和小時。調(diào)分和調(diào)時子程序和調(diào)秒子程序類似。11 / 22開始Y延時去抖動S2 按鍵按下否?S2 按鍵按下否?

19、延時去抖動YNN秒加 1Y秒減 1Y秒 =60?秒清零Y秒 0 時表示電子鐘秒單元數(shù)值刷新滯后,即走時誤差為“慢” ;反之,S0 表示秒單元數(shù)值的刷新超前,即走時誤差為“快” 。本次設計的單片機電子鐘系統(tǒng)中,其誤差主要來源包括晶體頻率誤差,定時器溢出誤差,延遲誤差。晶體頻率產(chǎn)生震蕩,容易產(chǎn)生走時誤差;定時器溢出的時間誤差,本應這一秒溢出,但卻在下一秒溢出,造成走時誤差;延遲時間過長或過短,都會造成與基準時間產(chǎn)生偏差,造成走時誤差。5.4 軟件調(diào)試問題與解決軟件程序的調(diào)試一般可以將重點放在分模塊調(diào)試上,統(tǒng)調(diào)是最后一環(huán)。軟件調(diào)試可以采取離線調(diào)試和在線調(diào)試兩種方式。本次課題,Keil 軟件來調(diào)試程序

20、,通過各個模塊程序的單步或跟蹤調(diào)試,使程序逐漸趨于正確,最后統(tǒng)調(diào)程序。6.6.設計總結(jié)設計總結(jié)我在這一次單片機最小系統(tǒng)的設計過程中,很是受益匪淺。通過對自己在大學二14 / 22年時間里所學的知識的回顧,并充分發(fā)揮對所學知識的理解和對課程設計的思考與書面表達能力。這為自己今后進一步深化學習,積累了一定寶貴的經(jīng)驗。撰寫報告的過程也是專業(yè)知識的學習過程,它使我運用已有的專業(yè)基礎知識,對其進行設計,分析和解決一個理論問題或?qū)嶋H問題,把知識轉(zhuǎn)化為能力的實際訓練。培養(yǎng)了我運用所學知識解決實際問題的能力。通過這次課程設計我發(fā)現(xiàn),只有理論水平提高了;才能夠?qū)⒄n本知識與實踐相整合,理論知識服務于教學實踐,以增

21、強自己的動手能力。這個實驗十分有意義 我獲得很深刻的經(jīng)驗。通過這次課程設計,我們知道了理論和實際的距離,也知道了理論和實際想結(jié)合的重要性, ,也從中得知了很多書本上無法得知的知識。我們的學習不但要立足于書本,以解決理論和實際教學中的實際問題為目的,還要以實踐相結(jié)合,理論問題即實踐課題,解決問題即課程研究,學生自己就是一個專家,通過自己的手來解決問題比用腦子解決問題更加深刻。學習就應該采取理論與實踐結(jié)合的方式,理論的問題,也就是實踐性的課題。這種做法既有助于完成理論知識的鞏固,又有助于帶動實踐,解決實際問題,加強我們的動手能力和解決問題的能力。參考文獻參考文獻1 群芳,肖看,士軍單片機微型計算機

22、與技術(shù)接口電子工業(yè),1997.12.125-1332 為,黃科,雷道仲單片機典型系統(tǒng)設計實例講解電子工業(yè),2002.125-1333 何立民MCS-51 單片機應用系統(tǒng)設計航空航天大學,1995.99-1124 剛,周群電子系統(tǒng)設計與實踐電子工業(yè),1998.79-102 5 毅剛單片機原理與應用高等教育,1999.125-1436 毅剛MCS-51 單片機應用設計工業(yè)大學,1994.125-1337 富C 與 C+程序設計(第 3 版)人民郵電,1998.79-1128 華MCS-51 系列單片機使用接口技術(shù)航空航天大學,2005.7.115-1239 廣弟單片機基礎航空航天大學,1998.9

23、5-12315 / 22附錄附錄 1 1:多功能電子時鐘原理圖:多功能電子時鐘原理圖16 / 22附錄附錄 2 2:C C 語言源程序語言源程序#include #define uchar unsigned char#define uint unsigned int#define key P3uchar code wei=0 x7f,0 xbf,0 xdf,0 xef,0 xf7,0 xfb,0 xfd,0 xfe;uchar code duan=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 xbf;uchar nu

24、m1 = 0,0,10,0,0,10,0,0;uchar num2 = 0,0,0,0,0,0,0,0;uchar sec=55,min=59,hou=23;uchar sec_1 = 0,min_1 = 1,hou_1 = 0;uint sec1 = 0,sec2 = 0;int count1 = 0,count2=0,cnt = 0,cnt2 = 0;uchar flag = 1,flag2 = 0;uchar m;void delay(uint x)uint a,b;for(a=0;ax;a+)for(b=0;b= 60) sec = 0; if(key = 0 xfe) if(sec

25、= 0)sec = 60;sec-;if(m = 2) if(key = 0 xfd) min+; if(min = 60) min = 0;hou+; if(hou=24) hou = 0; if(key = 0 xfe) if(min = 0 )18 / 22 min = 60;min-; if(m = 3) if(key = 0 xfd) hou+; if(hou = 24) hou = 0; if(key = 0 xfe) if(hou = 0)hou = 24;hou-; if(m = 4) m=0;void key_scan2() uchar x;if(P3_3 = 0)delay(10);if(P3_3 = 0)flag+;TR1 = 0;sec1=0;sec2=0;while(P3_3 = 0)for(x = 0;x = 60)sec_1 = 0; while(key = 0 xfd); if(key = 0 xfe) if(sec_1 = 0) sec_1 = 60;sec_1-; while(key = 0 xfe);if(flag2 = 2) if(key = 0 xfd) min_1+; if(m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論