1034329010單片機(jī)課程設(shè)計(jì)(論文)多功能數(shù)字鐘的設(shè)計(jì)_第1頁(yè)
1034329010單片機(jī)課程設(shè)計(jì)(論文)多功能數(shù)字鐘的設(shè)計(jì)_第2頁(yè)
1034329010單片機(jī)課程設(shè)計(jì)(論文)多功能數(shù)字鐘的設(shè)計(jì)_第3頁(yè)
1034329010單片機(jī)課程設(shè)計(jì)(論文)多功能數(shù)字鐘的設(shè)計(jì)_第4頁(yè)
1034329010單片機(jī)課程設(shè)計(jì)(論文)多功能數(shù)字鐘的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、摘要電子鐘在日常生活中最常見(jiàn),應(yīng)用也最廣泛。作為一種定時(shí)工具被廣泛的使用在生產(chǎn)生活的各方面。人類(lèi)最初依靠太陽(yáng)的角度來(lái)進(jìn)行定時(shí),所以受天氣的影響比較大,為了克服依靠自然現(xiàn)象定時(shí)的缺點(diǎn)人們發(fā)明的機(jī)器鐘表,電子鐘表一系列的定時(shí)工具。而電子鐘表具有價(jià)格便宜,質(zhì)量輕,定時(shí)誤差小等優(yōu)點(diǎn),被廣泛的應(yīng)用在生產(chǎn),生活的各個(gè)方面。由于電子鐘的能提供精確定時(shí)又被廣泛的運(yùn)用在測(cè)量之中。此電子鐘采用單片機(jī)進(jìn)行設(shè)計(jì),8段數(shù)碼通過(guò)單片機(jī)進(jìn)行刷新顯示。其設(shè)計(jì)的產(chǎn)品除了單片機(jī)之外沒(méi)有用到其他集成塊,使其成本可以大大降低,而其便于維修。成品可以被廣泛的用于公共場(chǎng)所,匾額裝飾,以及教學(xué)等方面。本文主要就是設(shè)計(jì)一款數(shù)字鐘,以at89

2、c51單片機(jī)為核心,配備led顯示模塊、鍵盤(pán)輸入模塊、等功能模塊。數(shù)字鐘采用24小時(shí)制方式顯示時(shí)間,定時(shí)信息以及年月日顯示等功能。文章的核心主要從硬件設(shè)計(jì)和軟件編程兩個(gè)大的方面。目錄摘要11 設(shè)計(jì)要求及方案確定31.1 設(shè)計(jì)要求31.2方案確定32 硬件電路設(shè)計(jì)及描述321 確定元器件的型號(hào)及參數(shù)32.1.1 單片機(jī)的選擇32.1.2 at89c51單片機(jī)的介紹52.1.3 led數(shù)碼管顯示模塊72.1.4 鍵盤(pán)輸入模塊82.1.5 鬧鈴模塊.82.1.6 電源電路82.1.7 蜂鳴器的介紹92.2 硬件電路圖103 軟件設(shè)計(jì)103.1 程序結(jié)構(gòu)設(shè)計(jì)103.1.1 程序結(jié)構(gòu)103.1.2 主要

3、程序模塊清單113.2 程序144 參考文獻(xiàn)17結(jié)束語(yǔ)181 設(shè)計(jì)要求及方案確定1.1 設(shè)計(jì)要求利用單片機(jī)設(shè)計(jì)制作具有下列功能的數(shù)字鐘: 自動(dòng)計(jì)時(shí),由6位led顯示器顯示時(shí)、分和秒 具備調(diào)整功能,可以直接由09數(shù)字鍵設(shè)置當(dāng)前時(shí)間; 具備定時(shí)鬧鐘功能。1.2方案確定數(shù)字鐘電路由單片機(jī)、鍵盤(pán)輸入、時(shí)鐘顯示模塊及鬧鈴模塊組成。 單片機(jī)選用at89c51即可滿(mǎn)足要求。 鍵盤(pán)及顯示模塊采用8155芯片擴(kuò)展如原理圖,鍵盤(pán)輸入電路采用43鍵盤(pán), 包括09共10個(gè)數(shù)字鍵(鍵號(hào)為00h09h)、c/r鍵(時(shí)間設(shè)定/啟動(dòng)計(jì)時(shí)鍵,鍵號(hào)為0ah)和alm鍵(鬧鐘設(shè)置/啟鬧/停鬧,鍵號(hào)為0bh)。led數(shù)碼管顯示電路:

4、采用共陰極數(shù)碼管實(shí)現(xiàn)時(shí)鐘顯示,6位led從左到右依次顯示時(shí)、分和秒,采用24小時(shí)計(jì)時(shí)。2 硬件電路設(shè)計(jì)及描述21 確定元器件的型號(hào)及參數(shù)2.1.1 單片機(jī)的選擇 單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡(jiǎn)稱(chēng)單片機(jī),特別適用于控制領(lǐng)域,故又稱(chēng)為微控制器。 通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲(chǔ)器和i/o接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。 單片機(jī)經(jīng)過(guò)1、2、3、3代的發(fā)展,正朝著多功能、高性能、低電壓、低功耗、低價(jià)格、大存儲(chǔ)容量、強(qiáng)i/o功能及較好的結(jié)構(gòu)兼容

5、性方向發(fā)展。其發(fā)展趨勢(shì)不外乎以下幾個(gè)方面:1、多功能 單片機(jī)中盡可能地把所需要的存儲(chǔ)器和i/o口都集成在一塊芯片上,使得單片機(jī)可以實(shí)現(xiàn)更多的功能。比如a/d、pwm、pca(可編程計(jì)數(shù)器陣列)、wdt(監(jiān)視定時(shí)器-看家狗)、高速i/o口及計(jì)數(shù)器的捕獲/比較邏輯等。 有的單片機(jī)針對(duì)某一個(gè)應(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ū)動(dòng)器也開(kāi)始集成在8位單片機(jī)中。2、高效率和高性能 為了提高執(zhí)行速度和執(zhí)行效率,單片機(jī)開(kāi)始使用risc、

6、流水線和dsp的設(shè)計(jì)技術(shù),使單片機(jī)的性能有了明顯的提高,表現(xiàn)為:?jiǎn)纹瑱C(jī)的時(shí)鐘頻率得到提高;同樣頻率的單片機(jī)運(yùn)行效率也有了很大的提升;由于集成度的提高,單片機(jī)的尋址能力、片內(nèi)rom(flash)和ram的容量都突破了以往的數(shù)量和限制。 由于系統(tǒng)資源和系統(tǒng)復(fù)雜程度的增加,開(kāi)始使用高級(jí)語(yǔ)言(如c語(yǔ)言)來(lái)開(kāi)發(fā)單片機(jī)的程序。使用高級(jí)語(yǔ)言可以降低開(kāi)發(fā) 難度,縮短開(kāi)發(fā)周期,增強(qiáng)軟件的可讀性和可移植性,便于改進(jìn)和擴(kuò)充功能。3、低電壓和低功耗 單片機(jī)的嵌入式應(yīng)用決定了低電壓和低功耗的特性十分重要。由于cmos等工藝的大量采用,很多單片機(jī)可以在更低的電壓下工作(1.2v或0.9v),功耗已經(jīng)降低到ua級(jí)。這些特性

7、使得單片機(jī)系統(tǒng)可以在更小電源的支持下工作更長(zhǎng)的時(shí)間。4、低價(jià)格 單片機(jī)應(yīng)用面廣,使用數(shù)量大,帶來(lái)的直接好處就是成本的降低。目前世界各大公司為了提高競(jìng)爭(zhēng)力,在提高單片機(jī)性能的同時(shí),十分注意降低其產(chǎn)品的價(jià)格。下面大致介紹一下單片機(jī)的主要應(yīng)用領(lǐng)域和特點(diǎn)。(1)家用電器領(lǐng)域 用單片機(jī)控制系統(tǒng)取代傳統(tǒng)的模擬和數(shù)字控制電路,使家用電器(如洗衣機(jī)、空調(diào)、冰箱、微波爐、和電視機(jī)等)功能更完善,更加智能化和易于使用。(2)辦公自動(dòng)化領(lǐng)域 單片機(jī)作為嵌入式系統(tǒng)廣泛應(yīng)用于現(xiàn)代辦公設(shè)備,如計(jì)算機(jī)的鍵盤(pán)、磁盤(pán)驅(qū)動(dòng)、打印機(jī)、復(fù)印機(jī)、電話機(jī)和傳真機(jī)等。(3)商業(yè)應(yīng)用領(lǐng)域 商業(yè)應(yīng)用系統(tǒng)部分與家用和辦公應(yīng)用系統(tǒng)相似,但更加注重

8、設(shè)備的穩(wěn)定性、可靠性和安全性。商用系統(tǒng)中廣泛使用的電子計(jì)量?jī)x器、收款機(jī)、條形碼閱讀器、安全監(jiān)測(cè)系統(tǒng)、空氣調(diào)節(jié)系統(tǒng)和冷凍保鮮系統(tǒng)等,都采用了單片機(jī)構(gòu)成的專(zhuān)用系統(tǒng)。與通用計(jì)算機(jī)相比,這些系統(tǒng)由于比較封閉,可以更有效地防止病毒和電磁干擾等,可靠性更高。(4)工業(yè)自動(dòng)化在工業(yè)控制和機(jī)電一體化控制系統(tǒng)中,除了采用工控計(jì)算機(jī)外,很多都是以單片機(jī)為核心的單片機(jī)和多機(jī)系統(tǒng)。(5)智能儀表與集成智能傳感器 目前在各種電氣測(cè)量?jī)x表中普遍采用了單片機(jī)應(yīng)用系統(tǒng)來(lái)代替?zhèn)鹘y(tǒng)的測(cè)量系統(tǒng),使得測(cè)量系統(tǒng)具有存儲(chǔ)、數(shù)據(jù)處理、查詢(xún)及聯(lián)網(wǎng)等智能功能。將單片機(jī)和傳感器相結(jié)合,可以構(gòu)成新一代的智能傳感器。它將傳感器變換后的物理量作進(jìn)一步

9、的變化和處理,使其成為數(shù)字信號(hào),可以遠(yuǎn)距離傳輸并與計(jì)算機(jī)接口。(6)現(xiàn)代交通與航空航天領(lǐng)域通常應(yīng)用于電子綜合顯示系統(tǒng)、動(dòng)力監(jiān)控系統(tǒng)、自動(dòng)駕駛系統(tǒng)、通信系統(tǒng)以及運(yùn)行監(jiān)視系統(tǒng)等。這些領(lǐng)域?qū)w積、功耗、穩(wěn)定性和實(shí)時(shí)性的要求往往比商用系統(tǒng)還要高,因此采用單片機(jī)系統(tǒng)更加重要。 目前,我國(guó)生產(chǎn)很多型號(hào)的單片機(jī),在此,我們采用型號(hào)為at89c51的單片機(jī)at89c52是一個(gè)低功耗高性能單片機(jī),40個(gè)引腳,32個(gè)外部雙向輸入/輸出(i/o)端口,同時(shí)內(nèi)含2個(gè)外中斷口,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,at89c52可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和flash存儲(chǔ)器結(jié)

10、合在一起,特別是可反復(fù)擦寫(xiě)的flash存儲(chǔ)器可有效地降低開(kāi)發(fā)成本。2.1.2 at89c51單片機(jī)的介紹at89c51是mcs-51系列單片機(jī)的典型產(chǎn)品之一。其內(nèi)部具有的硬件資源如圖所示。at89c51單片機(jī)的p口特點(diǎn):p0口:是一個(gè)8位漏極開(kāi)路輸出型雙向i/o端口。作為輸出端口時(shí),每位能以吸收電流的方式驅(qū)動(dòng)8 個(gè)ttl輸入,對(duì)端口寫(xiě)1時(shí),又可作高阻抗輸入端用。在訪問(wèn)外部程序或數(shù)據(jù)存儲(chǔ)器時(shí),它是時(shí)分多路轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線,在訪問(wèn)期間將激活內(nèi)部的上拉電阻。 p1口:p1口是一個(gè)帶有內(nèi)部上拉電阻的8位雙向i/o端口。p1口的輸出緩沖器可驅(qū)動(dòng)(吸收或輸出電流方式)4個(gè)ttl輸入。對(duì)端口寫(xiě)

11、1時(shí),通過(guò)內(nèi)部的上拉電阻把端口拉到高電位,這時(shí)可作輸入口。p2口作輸入口使用時(shí),因?yàn)閮?nèi)部有上拉電阻,那些被外部信號(hào)拉低的引腳會(huì)輸出一個(gè)電流(iil)。p2口:p2口是一個(gè)帶有內(nèi)部上拉電阻的8位雙向i/o端口。p2口的輸出緩沖器可驅(qū)動(dòng)(吸收或輸出電流方式)4個(gè)ttl輸入。對(duì)端口寫(xiě)1時(shí),通過(guò)內(nèi)部的上拉電阻把端口拉到高電位,這時(shí)可作輸入口。p2口作輸入口使用時(shí),因?yàn)閮?nèi)部有上拉電阻,那些被外部信號(hào)拉低的引腳會(huì)輸出一個(gè)電流(iil)。在訪問(wèn)外部程序存儲(chǔ)器時(shí)和16位外部地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行 movx dptr)時(shí),p2口送出高8位地址。在訪問(wèn)8位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行 movx ri)時(shí),p

12、2口引腳上的內(nèi)容(就是專(zhuān)用寄存器(sfr)區(qū)中的p2寄存器的內(nèi)容),在整個(gè)訪問(wèn)期間不會(huì)改變。 p3口:p3口是一個(gè)帶有內(nèi)部上拉電阻的8位雙向i/o端口。p3口的輸出緩沖器可驅(qū)動(dòng)(吸收或輸出電流方式)4個(gè)ttl輸入。對(duì)端口寫(xiě)1時(shí),通過(guò)內(nèi)部的上拉電阻把端口拉到高電位,這時(shí)可作輸入口。p3口作輸入口使用時(shí),因?yàn)閮?nèi)部有上拉電阻,那些被外部信號(hào)拉低的引腳會(huì)輸出一個(gè)電流(iil)。 內(nèi)部單元: 1、算術(shù)邏輯部件alu:用以完成+、-、*、/ 的算術(shù)運(yùn)算及布爾代數(shù)的邏輯運(yùn)算,并通過(guò)運(yùn)算結(jié)果影響程序狀態(tài)寄存器psw的某些位,從而為判斷、轉(zhuǎn)移、十進(jìn)制修正和出錯(cuò)等提供依據(jù)。 2、累加器a:在算術(shù)邏輯運(yùn)算中存放一個(gè)

13、操作數(shù)或結(jié)果,在與外部存儲(chǔ)器和i/o接口打交道時(shí),進(jìn)行數(shù)據(jù)傳送都要經(jīng)過(guò)a來(lái)完成。 3、寄存器b:在 *、/ 運(yùn)算中要使用寄存器b 。乘法時(shí),b用來(lái)存放乘數(shù)以及積的高字節(jié);除法時(shí),b用來(lái)存放除數(shù)及余數(shù)。不作乘除時(shí),b可作通用寄存器使用。 4、程序狀態(tài)標(biāo)志寄存器psw:用來(lái)存放當(dāng)前指令執(zhí)行后操作結(jié)果的某些特征,以便為下一條指令的執(zhí)行提供依據(jù)。cy:進(jìn)位標(biāo)志。有進(jìn)位或借位,則cy1,否則cy0 ;在布爾運(yùn)算時(shí),cy(簡(jiǎn)稱(chēng)c)作為布爾處理器。ac:輔助進(jìn)位標(biāo)志位。f0:用戶(hù)標(biāo)志位:用戶(hù)可用軟件對(duì)f0置位“1”或清“0”,以決定程序的流向。ov:溢出標(biāo)志位:當(dāng)運(yùn)算結(jié)果溢出時(shí),ov為“1”,否則為“0”。

14、d.1:未定義。p: 奇偶校驗(yàn)位:當(dāng)累加器a中的“1”的個(gè)數(shù)為奇數(shù)時(shí),p置“1”,否則p置“0”。rs1、rs0:工作寄存區(qū)選擇位:指令的執(zhí)行提供依據(jù)。at89c2051單片機(jī)的p口特點(diǎn) p1口:p1口是一個(gè)8位雙向i/o端口,其中p1.2p1.7引腳帶有內(nèi)部上拉電阻,p1.0和p1.1要求外部上拉電阻。p1.0和p1.1還分別作為片內(nèi)精密模擬比較器的同相輸入(ain0)和反相輸入(ain1)。p1口輸出緩沖器可吸收20ma電流,并能直接驅(qū)動(dòng)led顯示。對(duì)端口寫(xiě)1時(shí),通過(guò)內(nèi)部的上拉電阻把端口拉到高電位,這時(shí)可作輸入口。p2口作輸入口使用時(shí),因?yàn)閮?nèi)部有上拉電阻,那些被外部信號(hào)拉低的引腳會(huì)輸出一個(gè)

15、電流(iil)。 p3口:p3.0p3.5、p3.7是帶有內(nèi)部上拉電阻的7個(gè)雙向i/o端口。p3.6用于固定輸入片內(nèi)比較器的輸出信號(hào)并且它作為一通用i/o口引腳而只讀。p3口輸出緩沖器可吸收20ma電流。對(duì)端口寫(xiě)1時(shí),通過(guò)內(nèi)部的上拉電阻把端口拉到高電位,這時(shí)可作輸入口。p3口作輸入口使用時(shí),因?yàn)閮?nèi)部有上拉電阻,那些被外部信號(hào)拉低的引腳會(huì)輸出一個(gè)電流(iil)。 at89c51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,cpu停止工作。但ram,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存ram的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能

16、,直到下一個(gè)硬件復(fù)位為止。2.1.3 led數(shù)碼管顯示模塊led數(shù)碼管顯示電路:主芯片使用at89c51或stc89c52單片機(jī),晶振使用12mhz或11.0592mhz,使用3個(gè)2位一體共陰數(shù)碼管組成6位顯示時(shí)、分、秒,或者使用4位一體時(shí)鐘專(zhuān)用數(shù)碼管。 通過(guò)s1、s2、s3、和s4這4個(gè)按鍵進(jìn)行調(diào)節(jié),s1調(diào)時(shí),s2調(diào)分,s3切換時(shí)鐘與鬧鐘,s4是復(fù)位。 顯示“時(shí)間”的時(shí)候通過(guò)s1調(diào)“時(shí)”,s2調(diào)“分”,通過(guò)s3切換到“鬧鐘”的時(shí)候,同樣可以通過(guò)s1調(diào)節(jié)鬧鐘的“時(shí)”,s2調(diào)節(jié)鬧鐘的“分”,從而實(shí)現(xiàn)“時(shí)鐘”與“鬧鐘”兩個(gè)時(shí)間任意調(diào)節(jié)。 鬧鐘時(shí)間到蜂鳴器會(huì)響鈴一分鐘,響鈴的時(shí)候若要停止響鈴,只要按

17、下s3切換到鬧鐘顯示既可,要再恢復(fù)響鈴就再按一下s3切換回時(shí)鐘顯示(一分鐘響鈴時(shí)間內(nèi))。 設(shè)置完鬧鐘忘記返回到時(shí)間顯示,秒鐘走到一分鐘的時(shí)候會(huì)自動(dòng)切換回時(shí)間顯示。 “時(shí)”與“分”之間的兩個(gè)led長(zhǎng)亮(也可設(shè)置成閃爍),“分”與“秒”之間的兩個(gè)led每秒閃爍一次,為了方便區(qū)分時(shí)鐘與鬧鐘的顯示,當(dāng)切換到鬧鐘設(shè)置的時(shí)候“分”與“秒”之間的led停止閃爍并熄滅,而且“秒”也不顯示。2.1.4 鍵盤(pán)輸入模塊鍵盤(pán)控制電路:鍵盤(pán)部分采用普通的按鍵進(jìn)行設(shè)計(jì),使用軟件延時(shí)消除開(kāi)關(guān)抖動(dòng)2.1.5 鬧鈴模塊.鬧鈴電路:鬧鈴電路通過(guò)p1.7口輸出1hz脈沖使蜂鳴器發(fā)出間隔為一秒的蜂鳴聲.2.1.6 電源電路2.1.7

18、 蜂鳴器的介紹 1、蜂鳴器的認(rèn)識(shí)蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車(chē)電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。 1蜂鳴器的作用蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車(chē)電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。2蜂鳴器的分類(lèi) 蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類(lèi)型。3蜂鳴器的電路圖形符號(hào) 蜂鳴器在電路中用字母“h”或“ha”(舊標(biāo)準(zhǔn)用“fm”、“l(fā)b”、“jd”等)表示。2、蜂鳴器的結(jié)構(gòu)原理1.壓電式蜂鳴器 壓電式蜂鳴器主要由多諧振

19、蕩器、壓電蜂鳴片、阻抗匹配器及共鳴箱、外殼等組成。有的壓電式蜂鳴器外殼上還裝有發(fā)光二極管。多諧振蕩器由晶體管或集成電路構(gòu)成。當(dāng)接通電源后(1.515v直流工作電壓),多諧振蕩器起振,輸出1.52.5khz的音頻信號(hào),阻抗匹配器推動(dòng)壓電蜂鳴片發(fā)聲。壓電蜂鳴片由鋯鈦酸鉛或鈮鎂酸鉛壓電陶瓷材料制成。在陶瓷片的兩面鍍上銀電極,經(jīng)極化和老化處理后,再與黃銅片或不銹鋼片粘在一起。2電磁式蜂鳴器 電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動(dòng)膜片及外殼等組成。接通電源后,振蕩器產(chǎn)生的音頻信號(hào)電流通過(guò)電磁線圈,使電磁線圈產(chǎn)生磁場(chǎng)。振動(dòng)膜片在電磁線圈和磁鐵的相互作用下,周期性地振動(dòng)發(fā)聲。有源蜂鳴器直接接上額定電源(

20、新的蜂鳴器在標(biāo)簽上都有注明)就可連續(xù)發(fā)聲2.2 硬件電路圖數(shù)字鐘硬件電路圖3 軟件設(shè)計(jì)3.1 程序結(jié)構(gòu)設(shè)計(jì)3.1.1 程序結(jié)構(gòu)(1)主程序。實(shí)現(xiàn)初始化與鍵盤(pán)監(jiān)控,如圖1所示。(2)定時(shí)器t0中斷服務(wù)程序。時(shí)鐘電路的設(shè)計(jì)功能是利用單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器進(jìn)行中斷定時(shí),配合軟件延時(shí)實(shí)現(xiàn)時(shí)、分、秒的計(jì)時(shí)。利用定時(shí)器t0中斷服務(wù)程序?qū)崿F(xiàn)計(jì)時(shí)功能,同時(shí)刷新計(jì)時(shí)緩沖區(qū)。定時(shí)器t0每隔100ms益處中斷一次(設(shè)系統(tǒng)使用6mhz晶振,定時(shí)t0工作方式1)的定時(shí)初值為3cboh(即tho=3ch,tl0=0b0h),每循環(huán)中斷10次則延時(shí)時(shí)間為1s,重復(fù)60次為1min,分計(jì)時(shí)60次為1小時(shí),小時(shí)計(jì)時(shí)24次則時(shí)

21、間重新回到00:00:00。(3)時(shí)間設(shè)置與鬧鐘設(shè)置子程序。實(shí)現(xiàn)當(dāng)前時(shí)間及定時(shí)啟鬧鐘時(shí)間的鍵盤(pán)輸入設(shè)置。流程圖如圖2所示。其功能是用鍵盤(pán)設(shè)置子程序?qū)㈡I入的6位時(shí)間值送入鍵盤(pán)設(shè)置緩沖區(qū),用合字子程序?qū)㈡I盤(pán)設(shè)置緩沖區(qū)中的6位bcd碼合并為3位壓縮bcd碼,送入計(jì)時(shí)緩沖區(qū)或鬧鐘值寄存區(qū)。若鍵盤(pán)輸入的小時(shí)值大于23或分和秒值大于59,則不合法,將取消本次設(shè)置,清0重新開(kāi)始計(jì)時(shí)。(4)鍵盤(pán)掃描子程序。判斷是否有鍵按下,無(wú)鍵按下則循環(huán)等待,有鍵按下則求取返回。流程圖如圖3 。(5)顯示子程序。實(shí)現(xiàn)顯示緩沖區(qū)的6位bcd碼的動(dòng)態(tài)掃描方式顯示。首先將3字節(jié)計(jì)時(shí)緩沖區(qū)中時(shí)、分、和秒壓縮bcd碼拆分為6字節(jié)bcd

22、碼,由拆字子程序?qū)崿F(xiàn)。當(dāng)按下時(shí)間或鬧鐘設(shè)置鍵后,在6位設(shè)置完成之前,應(yīng)顯示鍵入的數(shù)據(jù)而不顯示當(dāng)前時(shí)間,為此系統(tǒng)設(shè)置一個(gè)計(jì)時(shí)顯示允許標(biāo)志位f0,在時(shí)間/鬧鐘設(shè)置期間f0=1,不調(diào)用拆字子程序。(6)定時(shí)比較子程序。 實(shí)現(xiàn)當(dāng)前時(shí)間與預(yù)設(shè)的啟鬧鐘時(shí)間的比較,若二者完全相同時(shí),啟動(dòng)蜂鳴器名叫并置位鬧鐘標(biāo)志位。當(dāng)重新按下alm鍵時(shí),停鬧并清0鬧鐘標(biāo)志。(7)其他輔助功能子程序。鍵盤(pán)設(shè)置子程序:將鍵入的6位時(shí)間值送入鍵盤(pán)設(shè)置緩沖區(qū)。拆字程序:將3字節(jié)計(jì)時(shí)緩沖區(qū)中時(shí)、分和秒壓縮bcd碼拆分為6字節(jié)bcd碼并刷新顯示緩沖區(qū)。 合字子程序:將鍵盤(pán)設(shè)置緩沖區(qū)中6位bcd碼合并為3位壓縮bcd碼,送入 計(jì)時(shí)緩沖區(qū)或

23、鬧鐘值寄存區(qū),同時(shí)檢測(cè)時(shí)間值的合法性。3.1.2 主要程序模塊清單資源分配:8155的a口作為6位led顯示的位選口,b口作為段選口,c口的低3位為鍵盤(pán)輸入口,對(duì)應(yīng)02行,a口同時(shí)用做鍵盤(pán)的列掃描口。8155的地址分配如下控制寄存器:8000h,定義為porta口:8001h,定義為portab口:8002h,定義為portbc口:8003h,定義為portc片內(nèi)ram及標(biāo)志位的分配與定義如圖4。地址功能名稱(chēng)初始化值30h35h顯示緩沖區(qū),時(shí)、分、秒dispdisp500h2ch3fh計(jì)時(shí)緩沖區(qū),時(shí)、分、秒、100mshour,min,sec,msec00h40h42h鬧鐘值寄存區(qū),時(shí)、分、秒

24、ahour,amin,asecffh50h7fh堆棧區(qū)psw.5計(jì)時(shí)顯示允許位(1禁止,0允許)f00psw.1鬧鐘標(biāo)志位(1正在鬧鈴,0未鬧鈴)f10開(kāi)始保持堆棧區(qū)8115、定時(shí)器t0數(shù)據(jù)緩沖區(qū)鬧鐘標(biāo)志位初始化調(diào)用延時(shí)子程序調(diào)用鍵掃描子程序是c/r鍵嗎?是alm鍵嗎?鬧鐘標(biāo)志位=1嗎?停鬧清0鬧鐘標(biāo)志地址指針指向計(jì)時(shí)緩沖區(qū)調(diào)用時(shí)間設(shè)置/鬧鐘定時(shí)程序地址指針指向鬧鐘值寄存區(qū)圖1 主程序流程圖保護(hù)現(xiàn)場(chǎng)調(diào)用鍵盤(pán)設(shè)置子程序調(diào)用合字子程序恢復(fù)現(xiàn)場(chǎng)返回圖2 時(shí)間設(shè)置/鬧鐘定時(shí)流程圖掃描鍵盤(pán)有鍵按下嗎?調(diào)用顯示子程序有鍵按下嗎?求取鍵號(hào)返回調(diào)用顯示程序調(diào)用定時(shí)比較程序調(diào)用顯示程序調(diào)用定時(shí)比較程序nn圖3鍵

25、盤(pán)掃描程序圖3.2 程序主程序: org 000h ajmp main org 000bh ajmp clock org 0030hmain: mov sp, #50h ;設(shè)置堆棧區(qū) movx dptr,#port ;8155初始化 mov a, #03h movx dptr, a clr f1 ;清0鬧鐘標(biāo)志位 clr f0 ;允許計(jì)時(shí)顯示mov ahour, #0ffh ;鬧鐘值寄存區(qū)置初值mov amin, #0ffhmov asec, #0ffhmov r7, #10h ;顯示緩沖區(qū)、計(jì)時(shí)緩沖區(qū)清0mov r0,#disp0clr aloop: mov r0, a inc r0 djn

26、z r7, loop mov tmod, #01h ;定時(shí)器t0初始化mov tl0, #0b0hmov th0, #3chsetb tr0 ;啟動(dòng)定時(shí)器setb ea ;開(kāi)中斷setb et0begin: acall alarm ;調(diào)用定時(shí)比較 acall keyscan ;調(diào)用鍵盤(pán)掃描 cjne a, #0ah, next1 ;是c/r鍵否? clr tr0 ;暫時(shí)停止計(jì)時(shí) mov r1, #hour ;地址指針指向計(jì)時(shí)緩沖區(qū)首地址 ajmp modnext: cjne a, #0bh, begin ;是alm鍵否?jb f1, next2 ;鬧鐘正在鬧鈴否?mov r1, #ahour

27、;地址指針指向鬧鐘值寄存區(qū)首地址mod: setb f0 ;禁止顯示計(jì)時(shí)時(shí)間 acall modify ;調(diào)用時(shí)間設(shè)置/鬧鐘定時(shí)程序setb tr0 ;重新開(kāi)始計(jì)時(shí)clr f0 ;恢復(fù)顯示計(jì)時(shí)時(shí)間ajmp beginnext2: setb p1.0 ;鬧鐘正在鬧鳴,停鬧clr f1ajmp begin ;清0鬧鈴標(biāo)志定時(shí)器t0中斷服務(wù)子程序:clock: push psw push acc ;保護(hù)現(xiàn)場(chǎng)mov tl0, #0b7hmov th0, #3ch ;重裝初值,時(shí)間校正inc msecmov a, mseccjne a, #0ah, donemov msec, #00hmov a, se

28、cadd a, #01hda a ;二十進(jìn)制轉(zhuǎn)換mov sec,a cjne a, #60h, donemov sec, #00hmov a, minadd a,#01hda amov min acjne a, #60h, donemov min, #00hmov a, houradd a, #01hda amov hour, acjne a, #24h, donemov hour, #00hdone: poop accpop pswret鍵盤(pán)設(shè)置子程序:keyin: push psw ;保護(hù)現(xiàn)場(chǎng) push accsetb rs1mov ro, #disp0 ;r0指向顯示緩沖區(qū)首地址mov r7, #06h ;設(shè)置鍵盤(pán)輸入次數(shù)l1: clr rs1acall keyscan ;調(diào)用鍵盤(pán)掃描程序取下鍵號(hào)setb rs1cjne a, #0ah, 12 ;鍵入數(shù)合法性檢測(cè)(是否大于9)l2: jnc l1 ;大于9,重新鍵入 mov r0, a ;鍵號(hào)送顯示緩沖區(qū)inc

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論