基于單片機(jī)的電子鐘設(shè)計(jì) (完整版_第1頁
基于單片機(jī)的電子鐘設(shè)計(jì) (完整版_第2頁
基于單片機(jī)的電子鐘設(shè)計(jì) (完整版_第3頁
基于單片機(jī)的電子鐘設(shè)計(jì) (完整版_第4頁
基于單片機(jī)的電子鐘設(shè)計(jì) (完整版_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于單片機(jī)的電子時鐘設(shè)計(jì)摘 要20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。現(xiàn)代生活的人們越來越重視起了時間觀念,可以說是時間和金錢劃上了等號。對于那些對時間把握非常嚴(yán)格和準(zhǔn)確的人或事來說,時間的不準(zhǔn)確會帶來非常大的麻煩,所以以數(shù)碼管為顯示器的時鐘比指針式的時鐘表現(xiàn)出了很大的優(yōu)勢。數(shù)碼管顯示的時間簡單明了而且讀數(shù)快、時間準(zhǔn)確顯示到秒。而機(jī)械式的依賴于晶體震蕩器,可能會導(dǎo)致誤差。數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對“時”、“分”、“秒”數(shù)字顯示的計(jì)

2、時裝置。數(shù)字鐘的精度、穩(wěn)定度遠(yuǎn)遠(yuǎn)超過老式機(jī)械鐘。在這次設(shè)計(jì)中,我們采用LED數(shù)碼管顯示時、分、秒,以24小時計(jì)時方式,根據(jù)數(shù)碼管動態(tài)顯示原理來進(jìn)行顯示,用12MHz的晶振產(chǎn)生振蕩脈沖,定時器計(jì)數(shù)。在此次設(shè)計(jì)中,電路具有顯示時間的其本功能,還可以實(shí)現(xiàn)對時間的調(diào)整。數(shù)字鐘是其小巧,價格低廉,走時精度高,使用方便,功能多,便于集成化而受廣大消費(fèi)的喜愛,因此得到了廣泛的使用。關(guān)鍵字:數(shù)字電子鐘 單片機(jī)目 錄第一章 緒論 1.1 數(shù)字電子鐘的背景 41.2 數(shù)字電子鐘的意義 41.3 數(shù)字電子鐘的應(yīng)用 4第二章 整體設(shè)計(jì)方案2.1 單片機(jī)的選擇 62.2 單片機(jī)的基本結(jié)構(gòu) 8第三章 數(shù)字鐘的硬件設(shè)計(jì)3.

3、1 最小系統(tǒng)設(shè)計(jì) 123.2 LED顯示電路 15第四章 數(shù)字鐘的軟件設(shè)計(jì)4.1 系統(tǒng)軟件設(shè)計(jì)流程圖 184.2 數(shù)字電子鐘的原理圖 214.3 主程序 224.4 時鐘設(shè)置子程序 214.5 定時器中斷子程序 214.6 LED顯示子程序 224.7 按鍵控制子程序 24第五章 系統(tǒng)仿真5.1 PROTUES軟件介紹 315.2 電子鐘系統(tǒng)PROTUES仿真 31第六章 調(diào)試與功能說明6.2 系統(tǒng)性能測試與功能說明 326.3 系統(tǒng)時鐘誤差分析 326.1 硬盤調(diào)試 326.4 軟件調(diào)試問題及解決 32結(jié)束語.34參考文獻(xiàn)35致謝.36第一章 緒論1.1數(shù)字電子鐘的背景 20世紀(jì)末,電子技術(shù)

4、獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。 時間對人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時間。忘記了要做的事情,當(dāng)事情不是很重要的時候,這種遺忘無傷大雅。但是,一旦重要事情,一時的耽誤可能釀成大禍。目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價格和外圍電路內(nèi)裝化等幾個方面發(fā)展。下面是單片機(jī)的主要發(fā)展趨勢。單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和

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

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

7、各個領(lǐng)域。 第二章 整體設(shè)計(jì)方案2.1 單片機(jī)的選擇 單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。 通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個單片機(jī)控制系統(tǒng)。 單片機(jī)經(jīng)過1、2、3、3代的發(fā)展,正朝著多功能、高性能、低電壓、低功耗、低價格、大存儲容量、強(qiáng)I/O功能及較好的結(jié)構(gòu)兼容性方向發(fā)展。其發(fā)展趨勢不外乎以下幾個方面:1、多功能 單片機(jī)中盡可能地把所需要的存儲器和I/O口都集成在一塊

8、芯片上,使得單片機(jī)可以實(shí)現(xiàn)更多的功能。比如A/D、PWM、PCA(可編程計(jì)數(shù)器陣列)、WDT(監(jiān)視定時器-看家狗)、高速I/O口及計(jì)數(shù)器的捕獲/比較邏輯等。 有的單片機(jī)針對某一個應(yīng)用領(lǐng)域,集成了相關(guān)的控制設(shè)備,以減少應(yīng)用系統(tǒng)的芯片數(shù)量。例如,有的芯片以51內(nèi)核為核心,集成了USB控制器、SMART CARD接口、MP3解碼器、CAN或者I*I*C總線控制器等,LED、LCD或VFD顯示驅(qū)動器也開始集成在8位單片機(jī)中。2、高效率和高性能 為了提高執(zhí)行速度和執(zhí)行效率,單片機(jī)開始使用RISC、流水線和DSP的設(shè)計(jì)技術(shù),使單片機(jī)的性能有了明顯的提高,表現(xiàn)為:單片機(jī)的時鐘頻率得到提高;同樣頻率的單片機(jī)運(yùn)

9、行效率也有了很大的提升;由于集成度的提高,單片機(jī)的尋址能力、片內(nèi)ROM(FLASH)和RAM的容量都突破了以往的數(shù)量和限制。 由于系統(tǒng)資源和系統(tǒng)復(fù)雜程度的增加,開始使用高級語言(如C語言)來開發(fā)單片機(jī)的程序。使用高級語言可以降低開發(fā) 難度,縮短開發(fā)周期,增強(qiáng)軟件的可讀性和可移植性,便于改進(jìn)和擴(kuò)充功能。3、低電壓和低功耗 單片機(jī)的嵌入式應(yīng)用決定了低電壓和低功耗的特性十分重要。由于CMOS等工藝的大量采用,很多單片機(jī)可以在更低的電壓下工作(1.2V或0.9V),功耗已經(jīng)降低到uA級。這些特性使得單片機(jī)系統(tǒng)可以在更小電源的支持下工作更長的時間。4、低價格 單片機(jī)應(yīng)用面廣,使用數(shù)量大,帶來的直接好處就

10、是成本的降低。目前世界各大公司為了提高競爭力,在提高單片機(jī)性能的同時,十分注意降低其產(chǎn)品的價格。下面大致介紹一下單片機(jī)的主要應(yīng)用領(lǐng)域和特點(diǎn)。(1)家用電器領(lǐng)域 用單片機(jī)控制系統(tǒng)取代傳統(tǒng)的模擬和數(shù)字控制電路,使家用電器(如洗衣機(jī)、空調(diào)、冰箱、微波爐、和電視機(jī)等)功能更完善,更加智能化和易于使用。(2)辦公自動化領(lǐng)域 單片機(jī)作為嵌入式系統(tǒng)廣泛應(yīng)用于現(xiàn)代辦公設(shè)備,如計(jì)算機(jī)的鍵盤、磁盤驅(qū)動、打印機(jī)、復(fù)印機(jī)、電話機(jī)和傳真機(jī)等。(3)商業(yè)應(yīng)用領(lǐng)域 商業(yè)應(yīng)用系統(tǒng)部分與家用和辦公應(yīng)用系統(tǒng)相似,但更加注重設(shè)備的穩(wěn)定性、可靠性和安全性。商用系統(tǒng)中廣泛使用的電子計(jì)量儀器、收款機(jī)、條形碼閱讀器、安全監(jiān)測系統(tǒng)、空氣調(diào)節(jié)

11、系統(tǒng)和冷凍保鮮系統(tǒng)等,都采用了單片機(jī)構(gòu)成的專用系統(tǒng)。與通用計(jì)算機(jī)相比,這些系統(tǒng)由于比較封閉,可以更有效地防止病毒和電磁干擾等,可靠性更高。(4)工業(yè)自動化 在工業(yè)控制和機(jī)電一體化控制系統(tǒng)中,除了采用工控計(jì)算機(jī)外,很多都是以單片機(jī)為核心的單片機(jī)和多機(jī)系統(tǒng)。(5)智能儀表與集成智能傳感器 目前在各種電氣測量儀表中普遍采用了單片機(jī)應(yīng)用系統(tǒng)來代替?zhèn)鹘y(tǒng)的測量系統(tǒng),使得測量系統(tǒng)具有存儲、數(shù)據(jù)處理、查詢及聯(lián)網(wǎng)等智能功能。將單片機(jī)和傳感器相結(jié)合,可以構(gòu)成新一代的智能傳感器。它將傳感器變換后的物理量作進(jìn)一步的變化和處理,使其成為數(shù)字信號,可以遠(yuǎn)距離傳輸并與計(jì)算機(jī)接口。(6)現(xiàn)代交通與航空航天領(lǐng)域 通常應(yīng)用于電子

12、綜合顯示系統(tǒng)、動力監(jiān)控系統(tǒng)、自動駕駛系統(tǒng)、通信系統(tǒng)以及運(yùn)行監(jiān)視系統(tǒng)等。這些領(lǐng)域?qū)w積、功耗、穩(wěn)定性和實(shí)時性的要求往往比商用系統(tǒng)還要高,因此采用單片機(jī)系統(tǒng)更加重要。AT89C205189C2051是由ATMEL公司推出的一種小型單片機(jī)。95年出現(xiàn)在中國市場。其主要特點(diǎn)為采用Flash存貯器技術(shù),降低了制造成本,其軟件、硬件與MCS-51完全兼容,可以很快被中國廣大用戶接受,其程序的電可擦寫特性,使得開發(fā)與試驗(yàn)比較容易。89C2051共有20條引腳,詳見圖1.從圖中可見,2051繼承了8031最重要引腳:P1口共8腳,準(zhǔn)雙向端口。P3.0P3.6共7腳,準(zhǔn)雙向端口,并且保留了全部的P3的第二功能,

13、如P3.0、P3.1的串行通訊功能,P3.2、P3.3的中斷輸入功能,P3.4、P3.5的定時器輸入功能。在引腳的驅(qū)動能力上面,89C2051具有很強(qiáng)的下拉能力,P1,P3口的下拉能力均可達(dá)到20mA.相比之下,89C51/87C51的端口下拉能力每腳最大為15mA。但是限定9腳電流之和小于71mA.這樣,引腳的平均電流只9mA。89C2051驅(qū)動能力的增強(qiáng),使得它可以直接驅(qū)動LED數(shù)碼管。為了增加對模擬量的輸入功能,2051在內(nèi)部構(gòu)造了一個模擬信號比較器,其輸入端連到P1.0和P1.1口,比較結(jié)果存入P3.6對應(yīng)寄存器,(P3.6在2051外部無引腳),原理見圖2。對于一些不大復(fù)雜的控制電路

14、我們就可以增加少量元件來實(shí)現(xiàn),例如,對溫度的控制,過壓的控制等。圖3為測量示意圖。其中,R用于測量門限的調(diào)節(jié),IN端接輸入模擬信號。2 電源89C2051有很寬的工作電源電壓,可為2.76V,當(dāng)工作在3V時,電流相當(dāng)于6V工作時的1/4。89C2051工作于12Hz時,動態(tài)電流為5.5mA,空閑態(tài)為1mA,掉電態(tài)僅為20nA。這樣小的功耗很適合于電池供電的小型控制系統(tǒng)。3 存儲器89C2051片內(nèi)含有2k字節(jié)的Flash程序存儲器,128字節(jié)的片內(nèi)RAM,與80C31內(nèi)部完全類似。由于2051內(nèi)部設(shè)計(jì)全靜態(tài)工作,所以允許工作的時鐘為020MHz,也就是說,允許在低速工作時,不破壞RAM內(nèi)容。相

15、比之下,一般8031對最低工作時鐘限制為3.5MHz,因?yàn)槠鋬?nèi)部的RAM是動態(tài)刷新的。89C2051不允許構(gòu)造外部總線來擴(kuò)充程序/數(shù)據(jù)存儲器,所以它也不需要ALEPSEN、RD、WR一類的引腳。4內(nèi)部I/O控制89C2051在內(nèi)部I/O控制上繼承了MCS51的特性:5路2級優(yōu)待中斷,串等口,2路定時器/計(jì)數(shù)器,內(nèi)部組成參見圖4。MCS-52系列單片機(jī)中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對這些引腳的功能加以說明: 圖2-

16、3 單片機(jī)的引腳圖Pin9:RESET/Vpd復(fù)位信號復(fù)用腳,當(dāng)8052通電,時鐘電路開始工作,在RESET引腳上出現(xiàn)24個時鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),8052的初始態(tài)。8051的復(fù)位方式可以是自動復(fù)位,也可以是手動復(fù)位,見下圖4。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部RAM的數(shù)據(jù)不丟失。

17、圖2-4 上電自動和手動復(fù)位電路圖圖2-5 內(nèi)部和外部時鐘方式圖 Pin30:ALE/當(dāng)訪問外部程序器時,ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問內(nèi)部程序存儲器時,ALE端將有一個1/6時鐘頻率的正脈沖信號,這個信號可以用于識別單片機(jī)是否工作,也可以當(dāng)作一個時鐘向外輸出。更有一個特點(diǎn),當(dāng)訪問外部程序存儲器,ALE會跳過一個脈沖。 如果單片機(jī)是EPROM,在編程其間,將用于輸入編程脈沖。Pin29:當(dāng)訪問外部程序存儲器時,此腳輸出負(fù)脈沖選通信號,PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。Pin31:EA/Vpp程序存儲器

18、的內(nèi)外部選通線,8051和8751單片機(jī),內(nèi)置有4kB的程序存儲器,當(dāng)EA為高電平并且程序地址小于4kB時,讀取內(nèi)部程序存儲器指令數(shù)據(jù),而超過4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲器指令。顯然,對內(nèi)部無程序存儲器的8031,EA端必須接地。第三章 數(shù)字鐘的硬件設(shè)計(jì)3.1 最小系統(tǒng)設(shè)計(jì)圖3-1 單片機(jī)最小系統(tǒng)的結(jié)構(gòu)圖 單片機(jī)的最小系統(tǒng)是由電源、復(fù)位、晶振、/EA=1組成,下面介紹一下每一個組成部分。1.電源引腳 Vcc40電源端GND20接地端工作電壓為5V,另有AT89LV51工作電壓則是2.7-6V, 引腳功能一樣。 2.外接晶體引腳圖3-2 晶振

19、連接的內(nèi)部、外部方式圖XTAL119XTAL218 XTAL1是片內(nèi)振蕩器的反相放大器輸入端,XTAL2則是輸出端,使用外部振蕩器時,外部振蕩信號應(yīng)直接加到XTAL1,而XTAL2懸空。內(nèi)部方式時,時鐘發(fā)生器對振蕩脈沖二分頻,如晶振為12MHz,時鐘頻率就為6MHz。晶振的頻率可以在1MHz-24MHz內(nèi)選擇。電容取30PF左右。系統(tǒng)的時鐘電路設(shè)計(jì)是采用的內(nèi)部方式,即利用芯片內(nèi)部的振蕩電路。AT89單片機(jī)內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器。引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外晶體諧振器一起構(gòu)成一個自激振蕩器。外接晶體諧振器以及電容C1

20、和C2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。對外接電容的值雖然沒有嚴(yán)格的要求,但電容的大小會影響震蕩器頻率的高低、震蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。因此,此系統(tǒng)電路的晶體振蕩器的值為12MHz,電容應(yīng)盡可能的選擇陶瓷電容,電容值約為22F。在焊接刷電路板時,晶體振蕩器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近,以減少寄生電容,更好地保證震蕩器穩(wěn)定和可靠地工作。3. 復(fù)位RST9在振蕩器運(yùn)行時,有兩個機(jī)器周期(24個振蕩周期)以上的高電平出現(xiàn)在此引腿時,將使單片機(jī)復(fù)位,只要這個腳保持高電平,51芯片便循環(huán)復(fù)位。復(fù)位后P0P3口均置1引腳表現(xiàn)為高電平,程序計(jì)數(shù)器和特殊功能寄存器SFR全部清

21、零。當(dāng)復(fù)位腳由高電平變?yōu)榈碗娖綍r,芯片為ROM的00H處開始運(yùn)行程序。復(fù)位是由外部的復(fù)位電路來實(shí)現(xiàn)的。片內(nèi)復(fù)位電路是復(fù)位引腳RST通過一個斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,它的輸出在每個機(jī)器周期的S5P2,由復(fù)位電路采樣一次。復(fù)位電路通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式,此電路系統(tǒng)采用的是上電與按鈕復(fù)位電路。當(dāng)時鐘頻率選用6MHz時,C取22F,Rs約為200,Rk約為1K。復(fù)位操作不會對內(nèi)部RAM有所影響。常用的復(fù)位電路如下圖所示:圖3-3 常用復(fù)位電路圖4.輸入輸出引腳(1) P0端口P0.0-P0.7 P0是一個8位漏極開路型雙向I/O端口,端口置1(對端口寫1)時

22、作高阻抗輸入端。作為輸出口時能驅(qū)動8個TTL。對內(nèi)部Flash程序存儲器編程時,接收指令字節(jié);校驗(yàn)程序時輸出指令字節(jié),要求外接上拉電阻。在訪問外部程序和外部數(shù)據(jù)存儲器時,P0口是分時轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線,訪問期間內(nèi)部的上拉電阻起作用。(2) P1端口P1.0P1.7 P1是一個帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時可驅(qū)動4個TTL。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部Flash程序存儲器編程時,接收低8位地址信息。(3) P2端口P2.0P2.7 P2是一個帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時可驅(qū)動4個TTL。端口置1時,內(nèi)部上拉電阻將端口拉到高電

23、平,作輸入用。對內(nèi)部Flash程序存儲器編程時,接收高8位地址和控制信息。在訪問外部程序和16位外部數(shù)據(jù)存儲器時,P2口送出高8位地址。而在訪問8位地址的外部數(shù)據(jù)存儲器時其引腳上的內(nèi)容在此期間不會改變。(4) P3端口P3.0P3.7 P2是一個帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時可驅(qū)動4個TTL。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部Flash程序存儲器編程時,接控制信息。除此之外P3端口還用于一些專門功能,具體請看下表。P3引腳兼用功能P3.0串行通訊輸入(RXD)P3.1串行通訊輸出(TXD)P3.2外部中斷0( INT0)P3.3外部中斷1(INT1)P3.

24、4定時器0輸入(T0)P3.5定時器1輸入(T1)P3.6外部數(shù)據(jù)存儲器寫選通WRP3.7外部數(shù)據(jù)存儲器寫選通RD表3-1P3端口引腳兼用功能表3.2 LED顯示電路顯示器普遍地用于直觀地顯示數(shù)字系統(tǒng)的運(yùn)行狀態(tài)和工作數(shù)據(jù),按照材料及產(chǎn)品工藝,單片機(jī)應(yīng)用系統(tǒng)中常用的顯示器有: 發(fā)光二極管LED顯示器、液晶LCD顯示器、CRT顯示器等。LED顯示器是現(xiàn)在最常用的顯示器之一,如下圖所示。圖3-4 LED顯示器的符號圖發(fā)光二極管(LED)由特殊的半導(dǎo)體材料砷化鎵、磷砷化鎵等制成,可以單獨(dú)使用,也可以組裝成分段式或點(diǎn)陣式LED顯示器件(半導(dǎo)體顯示器)。分段式顯示器(LED數(shù)碼管)由7條線段圍成8字型,每

25、一段包含一個發(fā)光二極管。外加正向電壓時二極管導(dǎo)通,發(fā)出清晰的光。只要按規(guī)律控制各發(fā)光段亮、滅,就可以顯示各種字形或符號。LED數(shù)碼管有共陽、共陰之分。圖是共陽式、共陰式LED數(shù)碼管的原理圖和符號.圖3-5 共陽式、共陰式LED數(shù)碼管的原理圖和數(shù)碼管的符號圖顯示電路顯示模塊需要實(shí)時顯示當(dāng)前的時間,即時、分、秒,因此需要6個數(shù)碼管,另需兩個數(shù)碼管來顯示橫。采用動態(tài)顯示方式顯示時間,硬件連接如下圖所示,時的十位和個位分別顯示在第一個和第二個數(shù)碼管,分的十位和個位分別顯示在第四個和第五個數(shù)碼管,秒的十位和個位分別顯示在第七個和第八個數(shù)碼管,其余數(shù)碼管顯示橫線。LED顯示器的顯示控制方式按驅(qū)動方式可分成

26、靜態(tài)顯示方式和動態(tài)顯示方式兩種。對于多位LED顯示器,通常都是采用動態(tài)掃描的方法進(jìn)行顯示,其硬件連接方式如下圖所示。圖3-6 數(shù)碼管的硬件連接示意圖數(shù)碼管使用條件:a、段及小數(shù)點(diǎn)上加限流電阻 b、使用電壓:段:根據(jù)發(fā)光顏色決定; 小數(shù)點(diǎn):根據(jù)發(fā)光顏色決定c、使用電流:靜態(tài):總電流 80mA(每段 10mA);動態(tài):平均電流 4-5mA 峰值電流 100mA數(shù)碼管使用注意事項(xiàng)說明:()數(shù)碼管表面不要用手觸摸,不要用手去弄引角;()焊接溫度:度;焊接時間:()表面有保護(hù)膜的產(chǎn)品,可以在使用前撕下來。第四章 數(shù)字鐘的軟件設(shè)計(jì)系統(tǒng)的軟件設(shè)計(jì)也是工具系統(tǒng)功能的設(shè)計(jì)。單片機(jī)軟件的設(shè)計(jì)主要包括執(zhí)行軟件(完成

27、各種實(shí)質(zhì)性功能)的設(shè)計(jì)和監(jiān)控軟件的設(shè)計(jì)。單片機(jī)的軟件設(shè)計(jì)通常要考慮以下幾個方面的問題:(1)根據(jù)軟件功能要求,將系統(tǒng)軟件劃分為若干個相對獨(dú)立的部分,設(shè)計(jì)出合理的總體結(jié)構(gòu),使軟件開發(fā)清晰、簡潔和流程合理;(2)培養(yǎng)良好的編程風(fēng)格,如考慮結(jié)構(gòu)化程序設(shè)計(jì)、實(shí)行模塊化、子程序化。既便于調(diào)試、鏈接,又便于移植和修改;(3)建立正確的數(shù)學(xué)模型,通過仿真提高系統(tǒng)的性能,并選取合適的參數(shù);(4)繪制程序流程圖;(5)合理分配系統(tǒng)資源;(6)為程序加入注釋,提高可讀性,實(shí)施軟件工程;(7)注意軟件的抗干擾設(shè)計(jì),提高系統(tǒng)的可靠性。4.1 系統(tǒng)軟件設(shè)計(jì)流程圖 這次的數(shù)字電子鐘設(shè)計(jì)用到很多子程序,它們的流程圖如下所示

28、。開始啟動定時器按鍵檢測時間顯示 主程序是先開始,然后啟動定時器,定時器啟動后在進(jìn)行按鍵檢測,檢測完后,就可以顯示時間。圖4-1 主程序流程圖按鍵處理是先檢測秒按鍵是否按下,秒按鍵如果按下,秒就加1;如果沒有按下,就檢測分按鍵是否按下,分按鍵如果按下,分就加1;如果沒有按下,就檢測時按鍵是否按下,時按鍵如果按下,時就加1;如果沒有按下,就把時間顯示出來。 NYNYNY時加1顯示時間結(jié)束開始秒按鍵按下?秒加1分按鍵按下?分加1時按鍵按下? 圖4-2 按鍵處理流程圖定時器中斷時是先檢測1秒是否到,1秒如果到,秒單元就加1;如果沒到,就檢測1分鐘是否到,1分鐘如果到,分單元就加1;如果沒到,就檢測1

29、小時是否到,1小時如果到,時單元就加1,如果沒到,就顯示時間。N24小時到?分單元清零,時單元加1NNNYY時單元清零時間顯示中斷返回開始一秒時間到?60秒時間到?60分鐘到?秒單元加1秒單元清零,分單元加1YY 圖4-3 定時器中斷流程圖時間顯示是先秒個位計(jì)算顯示,然后是秒十位計(jì)算顯示,再是分個位計(jì)算顯示,再然后是分十位顯示,再就是時個位計(jì)算顯示,最后是時十位顯示。時十位計(jì)算顯示結(jié)束開始秒個位計(jì)算顯示秒十位計(jì)算顯示分個位計(jì)算顯示分十位計(jì)算顯示時個位計(jì)算顯示 圖4-4 時間顯示流程圖4.2 數(shù)字鐘的原理圖用PROTUES軟件,根據(jù)要求畫出數(shù)字電子鐘的原理圖如下所示。圖4-5 數(shù)字鐘的原理圖 在

30、此有必要介紹一下數(shù)字電子鐘的工作原理。工作原理 : 數(shù)字電子鐘是一個將“ 時”,“分”,“秒”顯示于人的視覺器官的計(jì)時裝置。它的計(jì)時周期為24小時,顯示滿刻度為23時59分59秒,另外還有校時功能。因此,一個基本的數(shù)字鐘電路主要由顯示器“時”,“分”,“秒”和單片機(jī),還有校時電路組成。8個數(shù)碼管的段選接到單片機(jī)的P0口,位選接到單片機(jī)的P2口。數(shù)碼管按照數(shù)碼管動態(tài)顯示的工作原理工作,將標(biāo)準(zhǔn)秒信號送入“秒單元”,“秒單元”采用60進(jìn)制計(jì)數(shù)器,每累計(jì)60秒發(fā)出一個“分脈沖”信號,該信號將作為“分單元”的時鐘脈沖。“分單元”也采用60進(jìn)制計(jì)數(shù)器,每累計(jì)60分鐘,發(fā)出一個“時脈沖”信號,該信號將被送到

31、“時單元”?!皶r單元”采用24進(jìn)制計(jì)時器,可實(shí)現(xiàn)對一天24小時的累計(jì)。顯示電路將“時”、“分”、“秒”通過七段顯示器顯示出來。4.3 設(shè)計(jì)主程序。(本次設(shè)計(jì)我們采用匯編語言編寫程序簡單明了); P0.0-7口 為數(shù)碼管段選,采用共陽顯示管。; P2.1-6為數(shù)碼管位選。; 7071H 秒計(jì)時和顯示單元 ; 7273H 分顯示單元 注意:72H放個位數(shù) 73H放十位數(shù); 7475H 小時顯示單元; 7677H 分計(jì)時單元; 7879H 小時計(jì)時單元; 中斷入口程序 ; ORG 0000H ;程序執(zhí)行開始地址 LJMP START ;跳到標(biāo)號START執(zhí)行 ORG 0003H ;外中斷0中斷程序入

32、口 RETI ;外中斷0中斷返回 ORG 000BH ;定時器T0中斷程序入口 LJMP INTT0 ;跳至INTTO執(zhí)行 ORG 0013H ;外中斷1中斷程序入口 RETI ;外中斷1中斷返回 ORG 001BH ;定時器T1中斷程序入口 LJMP INTT1 ;跳至INTT1執(zhí)行 ORG 0023H ;串行中斷程序入口地址 RETI ;串行中斷程序返回; ; ; 主 程 序 ; ; START: MOV R0,#70H ;清70H-7AH共11個內(nèi)存單元 MOV R7,#0BH ; CLEARDISP: MOV R0,#00H ; INC R0 ; DJNZ R7,CLEARDISP ;

33、 MOV 20H,#00H ;清20H(標(biāo)志用) MOV 7AH,#0AH ;放入熄滅符數(shù)據(jù) MOV TMOD,#11H ;設(shè)T0、T1為16位定時器;用11.0592M初值是4C00H;用12M初值是3CB0H MOV TL0,#00H ;50MS定時初值(T0計(jì)時用) MOV TH0,#4cH ;50MS定時初值 MOV TL1,#00H ;50MS定時初值(T1閃爍定時用) MOV TH1,#4cH ;50MS定時初值 SETB EA ;總中斷開放 SETB ET0 ;允許T0中斷 SETB TR0 ;開啟T0定時器 MOV R4,#14H ;1秒定時用初值(50MS20) START1

34、: LCALL DISPLAY ;調(diào)用顯示子程序 jnb P1.1,set_h ;此按鍵是小時加1 jnb P1.2,set_M ;此按鍵是分鐘加1 SJMP START1 ;P1.0口為1時跳回START1 set_h: ljmp set_hh set_m: ljmp set_mm; 1秒計(jì)時程序 ;T0中斷服務(wù)程序 INTT0: PUSH ACC ;累加器入棧保護(hù) PUSH PSW ;狀態(tài)字入棧保護(hù) CLR ET0 ;關(guān)T0中斷允許 CLR TR0 ;關(guān)閉定時器T0;用11.0592M初值是4C00H;用12M初值是3CB0H MOV A,#00H ;中斷響應(yīng)時間同步修正,要精確調(diào)整在這里

35、! ADD A,TL0 ;低8位初值修正 MOV TL0,A ;重裝初值(低8位修正值) MOV A,#4CH ;高8位初值修正 ADDC A,TH0 ; MOV TH0,A ;重裝初值(高8位修正值) SETB TR0 ;開啟定時器T0 DJNZ R4, OUTT0 ;20次中斷未到中斷退出 ADDSS: MOV R4,#014H ;20次中斷到(1秒)重賦初值 14h MOV R0,#71H ;指向秒計(jì)時單元(70H-71H) ACALL ADD1 ;調(diào)用加1程序(加1秒操作) MOV A,R3 ;秒數(shù)據(jù)放入A(R3為2位十進(jìn)制數(shù)組合) CLR C ;清進(jìn)位標(biāo)志 CJNE A,#60H,A

36、DDMM ; ADDMM: JC OUTT0 ;小于60秒時中斷退出 ACALL CLR0 ;大于或等于60秒時對秒計(jì)時單元清0 MOV R0,#77H ;指向分計(jì)時單元(76H-77H) ACALL ADD1 ;分計(jì)時單元加1分鐘 MOV A,R3 ;分?jǐn)?shù)據(jù)放入A CLR C ;清進(jìn)位標(biāo)志 CJNE A,#60H,ADDHH ; ADDHH: JC OUTT0 ;小于60分時中斷退出 ACALL CLR0 ;大于或等于60分時分計(jì)時單元清0 MOV R0,#79H ;指向小時計(jì)時單元(78H-79H) ACALL ADD1 ;小時計(jì)時單元加1小時 MOV A,R3 ;時數(shù)據(jù)放入A CLR C

37、 ;清進(jìn)位標(biāo)志 CJNE A,#24H,HOUR ; HOUR: JC OUTT0 ;小于24小時中斷退出 ACALL CLR0 ;大于或等于24小時小時計(jì)時單元清0 OUTT0: MOV 72H,76H ;中斷退出時將分、時計(jì)時單元數(shù)據(jù)移 MOV 73H,77H ;入對應(yīng)顯示單元 MOV 74H,78H ; MOV 75H,79H ; POP PSW ;恢復(fù)狀態(tài)字(出棧) POP ACC ;恢復(fù)累加器 SETB ET0 ;開放T0中斷 RETI ;中斷返回; 加1子 程 序 ; ADD1: MOV A,R0 ;取當(dāng)前計(jì)時單元數(shù)據(jù)到A DEC R0 ;指向前一地址 SWAP A ;A中數(shù)據(jù)高四

38、位與低四位交換 ORL A,R0 ;前一地址中數(shù)據(jù)放入A中低四位 ADD A,#01H ;A加1操作 DA A ;十進(jìn)制調(diào)整 MOV R3,A ;移入R3寄存器 ANL A,#0FH ;高四位變0 MOV R0,A ;放回前一地址單元 MOV A,R3 ;取回R3中暫存數(shù)據(jù) INC R0 ;指向當(dāng)前地址單元 SWAP A ;A中數(shù)據(jù)高四位與低四位交換 ANL A,#0FH ;高四位變0 MOV R0,A ;數(shù)據(jù)放入當(dāng)削地址單元中 RET ;子程序返回; 清零程序 ;對計(jì)時單元復(fù)零用 CLR0: CLR A ;清累加器 MOV R0,A ;清當(dāng)前地址單元 DEC R0 ;指向前一地址 MOV R

39、0,A ;前一地址單元清0 RET ;子程序返回; 顯示程序 ; 顯示數(shù)據(jù)在70H-75H單元內(nèi),用六位LED共陽數(shù)碼管顯示,P1口輸出段碼數(shù)據(jù),P2口作; 掃描控制,每個LED數(shù)碼管亮1MS時間再逐位循環(huán)。 DISPLAY: MOV R1,#70H ;指向顯示數(shù)據(jù)首址 MOV R5,#B ;掃描控制字初值 PLAY: MOV a,r5 MOV P2,A ;從P2口輸出 MOV A,R1 ;取顯示數(shù)據(jù)到A MOV DPTR,#TAB ;取段碼表地址 MOVC A,A+DPTR ;查顯示數(shù)據(jù)對應(yīng)段碼 CJNE R5,#0FEH,PLAY_1 ;不是秒低位則轉(zhuǎn)移PLAY_1 ANL A,#7FH ;是,則點(diǎn)亮 AJMP PLAY_3 PLAY_1: CJNE R5,#0FB

溫馨提示

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

評論

0/150

提交評論