版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、河北科技學(xué)院畢業(yè)設(shè)計(jì)(論文) 目 錄摘要.1關(guān)鍵詞.2前言.51設(shè)計(jì)要求與方案論證.61.1設(shè)計(jì)要求.61.2 方案論證61.2.1 方案一 用PCF8563實(shí)現(xiàn)戶外倒計(jì)時(shí)系統(tǒng)61.2.2方案二 基GPS的高精度倒計(jì)時(shí)系統(tǒng)的實(shí)現(xiàn)71.2.3 方案三 AT89C51和時(shí)鐘芯片DS12C887實(shí)現(xiàn)倒計(jì)時(shí)系統(tǒng)813本章小結(jié)82 時(shí)鐘芯片DS12C887.92.1. DS12C887的概述和功能特點(diǎn).92.2. DS12C887的內(nèi)部功能102.3 硬件接口電路112.4 本章小結(jié)123整體方案設(shè)計(jì)及工作原理.133.1典型硬件電路原理圖.133.2 各模塊功能介紹143.2.1 時(shí)鐘信號(hào)產(chǎn)生單元14
2、3.2.2 控制模塊153.2.3 顯示模塊163.3 倒計(jì)時(shí)轉(zhuǎn)換計(jì)算173.4 本章小結(jié)174本設(shè)計(jì)相應(yīng)部分的軟件介紹.184.1總體功能程序?qū)崿F(xiàn)的流程圖. .184.2時(shí)鐘芯片DS12C887的初始化程序194.3實(shí)時(shí)時(shí)間的讀取程序214.4倒計(jì)時(shí)部分的軟件實(shí)現(xiàn)原理.224.5 本章小結(jié)23 總結(jié).24 參考文獻(xiàn).25 致謝.26.II 摘 要 在實(shí)際應(yīng)用當(dāng)中,倒數(shù)計(jì)時(shí)器隨處可見,比如在香港回歸和澳門回歸時(shí),大陸同胞以設(shè)立倒計(jì)時(shí)器的方式表示其迫切的心情。在單片機(jī)應(yīng)用系統(tǒng)中,常常需要一個(gè)實(shí)時(shí)時(shí)鐘供定時(shí),測控之用。單片機(jī)中都集成有定時(shí)器,配合軟件可以作為系統(tǒng)的時(shí)間基準(zhǔn),構(gòu)成一個(gè)實(shí)時(shí)時(shí)鐘。通常定
3、時(shí)器工作在中斷方式,因此它將頻繁地中斷CPU的工作。倒計(jì)時(shí)系統(tǒng)中采用DS12C887時(shí)鐘芯片實(shí)現(xiàn)其功能。倒計(jì)時(shí)系統(tǒng)中采用8個(gè)LED顯示日時(shí)分秒。關(guān)鍵詞:單片機(jī);時(shí)鐘芯片;DS12C887;倒計(jì)時(shí)I前言在實(shí)際應(yīng)用當(dāng)中,倒計(jì)時(shí)器隨處可見,2008年的 奧運(yùn)會(huì),即將舉行的高考都用到倒計(jì)時(shí)系統(tǒng),方便大家準(zhǔn)確的知道需要準(zhǔn)備的時(shí)間,DS12C887是美國達(dá)拉斯半導(dǎo)體公司最新推出的時(shí)鐘芯片,采用CMOS技術(shù)制成,把時(shí)鐘芯片所需的晶振和外部鋰電池相關(guān)電路集于芯片內(nèi)部,同時(shí)它與目前 IBM AT計(jì)算機(jī)常用的時(shí)鐘芯片MC146818B和DS1287管腳兼容,可直接替換。采用DS12C887芯片設(shè)計(jì)的時(shí)鐘電路勿需任
4、何外圍電路并具有良好的微機(jī)接口。用作計(jì)時(shí)器的方法有幾種,但是隨著單片機(jī)應(yīng)用越來越廣泛,倒計(jì)時(shí)系統(tǒng)采用單片機(jī)和時(shí)鐘芯片制作比較簡單且價(jià)格合理,工作穩(wěn)定可靠、響應(yīng)速度快、實(shí)時(shí)性強(qiáng),具有數(shù)字顯示和工作狀態(tài)顯示功能,是大部分工作人員的首選。電路中采用了AT89C51,4511 DS12C887等,采用共陰型數(shù)碼管,本設(shè)計(jì)原理簡單,易懂,操作方便,實(shí)用性能比較好。倒計(jì)時(shí)系統(tǒng)是單片機(jī)系統(tǒng)的簡單應(yīng)用。它是由硬件和軟件相配合使用的,這樣可以彌補(bǔ)硬件成本高,結(jié)構(gòu)復(fù)雜的特點(diǎn),提高響應(yīng)速度。該倒計(jì)時(shí)系統(tǒng)經(jīng)濟(jì)實(shí)惠,適用于家庭以及學(xué)校。1設(shè)計(jì)要求與方案論證 實(shí)現(xiàn)倒計(jì)時(shí)系統(tǒng)可以有多種方案,不同的方案要求與實(shí)現(xiàn)的功能不一樣
5、,本章主要是對(duì)幾種方案進(jìn)行論證與比較,選擇比較合適的方案來實(shí)現(xiàn)基本要求和功能。1.1 設(shè)計(jì)要求本設(shè)計(jì)要求用單片機(jī)和日歷時(shí)鐘芯片實(shí)現(xiàn)一個(gè)倒計(jì)時(shí)系統(tǒng),能夠準(zhǔn)確顯示出設(shè)定時(shí)間和當(dāng)前時(shí)間之間的倒計(jì)時(shí)間值,分別用8個(gè)LED數(shù)碼管顯示天數(shù)、時(shí)、分、秒的數(shù)值。1.2 方案論證1.2.1 方案一 用PCF8563實(shí)現(xiàn)戶外倒計(jì)時(shí)系統(tǒng)該系統(tǒng)的總體設(shè)計(jì)方案:整個(gè)系統(tǒng)由時(shí)鐘芯片、中央處理單元、譯碼、驅(qū)動(dòng)、顯示、鍵盤幾部分構(gòu)成。系統(tǒng)框圖如圖1.1所示戶外倒計(jì)時(shí)顯示LED點(diǎn)陣驅(qū)動(dòng)ULN2003時(shí)鐘芯片PCF8563時(shí)間顯示數(shù)碼管譯碼MC14513移位LED中央處理器CPU選擇74LS145鍵 盤圖12 1方案一的系統(tǒng)設(shè)計(jì)
6、框圖這個(gè)方案的實(shí)用性較強(qiáng)的倒計(jì)時(shí)系統(tǒng),可用于大型節(jié)日或活動(dòng)的倒計(jì)時(shí)間實(shí)現(xiàn)。硬件電路和軟件實(shí)現(xiàn)都比較完整。但它硬件結(jié)構(gòu)較為復(fù)雜,簡單的設(shè)計(jì)制作難以完成該電路,因此不適合選用這個(gè)方案來實(shí)現(xiàn)。1.2.2方案二 基于GPS的高精度倒計(jì)時(shí)系統(tǒng)的實(shí)現(xiàn)基于GPS的高精度,倒計(jì)時(shí)牌是衛(wèi)星測時(shí)技術(shù),計(jì)算機(jī)技術(shù)及通信技術(shù)三者的有機(jī)結(jié)合。從功能模塊上看,整個(gè)系統(tǒng)分為GPS測時(shí)接收系統(tǒng)和時(shí)鐘顯示系統(tǒng),它主要完成以下功能:(1) 定時(shí)接收GPS衛(wèi)星發(fā)送的數(shù)據(jù)并進(jìn)行識(shí)別和緩存;(2)對(duì)GPS測時(shí)數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,以使編碼格式適于接收; (3)在給定時(shí)間內(nèi)刷新DS12C887型時(shí)鐘的時(shí)間; (4)讀DS12C887時(shí)間,進(jìn)
7、行倒計(jì)時(shí)換算并顯示。基于GPS的高精度倒計(jì)時(shí)牌的硬件結(jié)構(gòu)較為簡單,它包括控制模塊和顯示模塊兩部分。本方案系統(tǒng)的精度高,硬件電路和軟件實(shí)現(xiàn)都比較簡單,能準(zhǔn)確顯示出倒計(jì)時(shí)的天數(shù)、時(shí)、分、秒,具有很強(qiáng)的實(shí)用功能。但其硬件電路的實(shí)現(xiàn)價(jià)格比較高。不適合簡單的實(shí)驗(yàn)性制作使用,因此不采用這個(gè)方案來實(shí)現(xiàn)。1.2.3方案三 用 AT89C51和 時(shí)鐘芯片DS12C887來實(shí)現(xiàn)倒計(jì)時(shí)系統(tǒng)這個(gè)方案是用實(shí)時(shí)時(shí)鐘芯片DS12C887來產(chǎn)生實(shí)時(shí)的時(shí)間,單片機(jī)讀取時(shí)鐘芯片DS12C887的時(shí)間后,將其轉(zhuǎn)化為與預(yù)設(shè)時(shí)間的倒計(jì)時(shí)間。再通過顯示部分顯示出來,顯示部分由8個(gè)LED數(shù)碼管構(gòu)成,能夠顯示出倒計(jì)時(shí)的天數(shù)、時(shí)、分、秒的數(shù)值
8、。其原理框圖如圖12 3所示數(shù)碼管顯示部分單片機(jī)處理單元時(shí)鐘信號(hào)產(chǎn)生單 元圖12 3方案三原理框圖這個(gè)方案的硬件結(jié)構(gòu)和軟件實(shí)現(xiàn)都較簡單,所用硬件價(jià)格合理。很適合用較簡單的設(shè)計(jì)制作來實(shí)現(xiàn)倒計(jì)時(shí)系統(tǒng)的功能。所以本設(shè)計(jì)選用這個(gè)方案來 實(shí)現(xiàn)目的,本設(shè)計(jì)將詳細(xì)論述這一方案的實(shí)現(xiàn)過程及原理。1.3 本章小結(jié) 該章明確了設(shè)計(jì)要求與任務(wù),詳細(xì)闡述了用PCF8563實(shí)現(xiàn)戶外倒計(jì)時(shí)系統(tǒng)、基GPS的高精度倒計(jì)時(shí)系統(tǒng)的實(shí)現(xiàn)、用 AT89C51和時(shí)鐘芯片DS12C887來實(shí)現(xiàn)倒計(jì)時(shí)系統(tǒng)這三種方案的優(yōu)缺點(diǎn),對(duì)每個(gè)方案都進(jìn)行了說明并比較最終確定了選用AT89C51和時(shí)鐘芯片DS12C887來實(shí)現(xiàn)倒計(jì)時(shí)系統(tǒng),這個(gè)方案比較適合
9、實(shí)驗(yàn)制作軟件硬件都比較完整,硬件價(jià)格合理,以下章節(jié)都對(duì)選定的這個(gè)方案進(jìn)行詳細(xì)的解釋和原理說明。2時(shí)鐘芯片DS12C887 實(shí)時(shí)時(shí)鐘芯DS12C887是這個(gè)設(shè)計(jì)方案選用的核心部件之一,本章對(duì)DS12C887的芯片做一下簡單介紹以及其內(nèi)部功能有一個(gè)簡單了解,對(duì)它如何與單片機(jī)聯(lián)合工作以及硬件接口電路。2.1 DS12C887的概述和功能:DS12C887是美國達(dá)拉斯半導(dǎo)體公司最新推出的時(shí)鐘芯片,。采用DS12C887芯片設(shè)計(jì)的時(shí)鐘電路勿需任何外圍電路并具有良好的微機(jī)接口。,可廣泛用于各種需要較高精度的實(shí)時(shí)時(shí)鐘場合中。其主要功能如下: (1)內(nèi)含一個(gè)鋰電池,斷電情況運(yùn)行十年以上
10、不丟失數(shù)據(jù)。 (2)計(jì)秒、分、時(shí)、天、星期、日、月、年,并有閏年補(bǔ)償功能。 (3)二進(jìn)制碼或BCD碼表示時(shí)間、日歷和定鬧。 (4)12小時(shí)或24小時(shí)制,12小時(shí)時(shí)鐘模式帶有PM和AM指導(dǎo),有夏令時(shí)功能。 (5)MOTOROLA和INTEL總線時(shí)序選擇 (6)SQW方波輸出信號(hào)(7)有128個(gè)RAM單元與軟件音響器,其中14個(gè)作為字節(jié)時(shí)鐘和控制寄存器,114字節(jié)為通用RAM,所有RAM單元數(shù)據(jù)都具有掉電保護(hù)功能。2.2 DS12C887的內(nèi)部功能2.2.1 時(shí)間
11、、日歷和定鬧單元時(shí)間和日歷信息通過讀相應(yīng)的內(nèi)存字節(jié)來獲取,時(shí)間、日歷和定鬧通過寫相應(yīng)的內(nèi)存字節(jié)設(shè)置或初始化,其字節(jié)內(nèi)容可以是十進(jìn)制或BCD形式。時(shí)間可選擇12小時(shí)制或24小時(shí)制,當(dāng)選擇12小時(shí)制時(shí),小時(shí)字節(jié)搞位為邏輯“1”代表PM。時(shí)間、日歷和定鬧字節(jié)是雙緩沖的,總是可訪問的。每秒鐘這10個(gè)字節(jié)走時(shí)1 秒,檢查一次定鬧條件,如在更新時(shí),讀時(shí)間和日歷可能引起錯(cuò)誤。三個(gè)字節(jié)的定鬧字節(jié)有兩種使用方法。第一種,當(dāng)定鬧時(shí)間寫入相應(yīng)時(shí)、分、秒定鬧單元,在定允許鬧位置高的條件下,定鬧中斷每天準(zhǔn)時(shí)起動(dòng)一次。第二種,在三個(gè)定鬧字節(jié)中插入一個(gè)或多個(gè)不關(guān)心碼。不關(guān)心碼是任意從C到FF的16進(jìn)制數(shù)。當(dāng)小時(shí)字節(jié)的不關(guān)心
12、碼位置位時(shí),定鬧為小時(shí)發(fā)生一次由于相線小時(shí)和分鐘定鬧字節(jié)置不關(guān)心位時(shí),每分鐘定鬧一次;當(dāng)三個(gè)字節(jié)都置不關(guān)心位時(shí),每秒中斷一次。2.2.2 更新周期DS12C887每秒執(zhí)行一次更新周期還比較每一定鬧字節(jié)與相應(yīng)的時(shí)間字節(jié),如果匹配號(hào)三個(gè)字節(jié)都是不關(guān)心碼,則產(chǎn)生一次定鬧中斷。(如表222所示) 表222 周期中斷速率和輸出方波頻率RS3RS2RS1RS0周期性中斷頻率SQW方波頻率0000不允許無輸出000130.517us32.768khz001061.035us16.384khz0011122.070us8.192khz0100244.141us4.096khz0101488.281us2.04
13、8khz0110976.5625us1.024khz01111.953125ms512hz10003.90625ms256hz10017.8125ms128hz101015.625ms64hz101131.25ms32hz110062.5ms16hz1101125ms8hz1110250ms4hz1111500ms2hz2.3硬件接口電路DS12C887時(shí)鐘芯片和89C51單微機(jī)的接口電路如圖231所示。模式選擇腳MOT拉地,不選擇INTEL時(shí)序,選擇DS12C887時(shí)鐘芯片的地址總線及AS端口和89C51單片微機(jī)的P0及ALE端直接相聯(lián),DS、R/W讀寫控制線與單片機(jī)的RD、WR控制線相連;
14、DS12C887的高位地址由 89C51單片機(jī)的P2.7端口來片選,則DS12C887的高8位地址定為7FH,而其低8位地址則由芯片內(nèi)部各單元的地址來決定(00H3FH); DS12C887的中斷輸出端IRQ和89C51的外部INT0端相聯(lián),給單片機(jī)提供中斷信號(hào);DS12C887的SQW端口產(chǎn)生方波輸出信號(hào)。 P0 INT0 ALE RD WR P2.789C51AD0-AD7 SQWIRQASDSR/WCS RESETMOTDS12C887 方波輸出 VCC 1K 0.005uf 圖231 DS12C887與單片機(jī)的硬件連接圖2.4本章小結(jié)前一章論證并選定了設(shè)計(jì)方案,在選定的方案中使用了DS
15、12C887這個(gè)核心的時(shí)鐘芯片。該章主要對(duì)用到的時(shí)鐘芯片DS12C887進(jìn)行了詳細(xì)闡述,首先從整體上闡述了DS12C887的功能與作用。它是一種高精度、實(shí)用性很強(qiáng)的實(shí)時(shí)時(shí)鐘芯片;它具有掉電存儲(chǔ)功能,并內(nèi)置充電電路可以掉電后保持運(yùn)行以及外圍設(shè)計(jì)電路簡單等特點(diǎn)接下來介紹了DS12C887內(nèi)部地址單元的分配情況,以及內(nèi)部各個(gè)單元的作用,主要講到了該設(shè)計(jì)方案中使用到的秒、時(shí)、分、日、月、年等地址,其中00H-09H單元存放了秒到年的時(shí)間值,還介紹了對(duì)DS12C887的讀寫方式和內(nèi)部四個(gè)寄存器A、B、C、D,以及簡要介紹了DS12C887的周期中斷速率和輸出方波頻率。最后,以本方案中采用的硬件電路圖為例
16、,介紹了DS12C887與單片機(jī)的典型硬件連接電路。其中包括了數(shù)據(jù)讀寫部分的連接、DS12C887工作方式的選擇以及讀寫方式的設(shè)定,還簡要介紹了該設(shè)計(jì)中用到的DS1C2887的幾個(gè)主要引腳。 3整體方案設(shè)計(jì)及工作原理前面兩章論證了本倒計(jì)時(shí)系統(tǒng)的設(shè)計(jì)方案并介紹了所選方案中用到的核心芯片DS12C887的功能和使用。本章將在前面的基礎(chǔ)之上,從整體設(shè)計(jì)思路到各個(gè)功能模塊的作用和原理進(jìn)行詳細(xì)的闡述。3.1典型硬件原理圖圖311典型硬件原理圖DS12C887輸出時(shí)間信息,經(jīng)CPU處理后,轉(zhuǎn)換為倒計(jì)時(shí)時(shí)間,并顯示出來,所以本設(shè)計(jì)共可分為三個(gè)主要部分:時(shí)鐘信號(hào)產(chǎn)生模塊、控制模塊、顯示模塊三個(gè)單元。3.2 各
17、模塊功能介紹3.2.1 時(shí)鐘信號(hào)產(chǎn)生單元該部分以實(shí)時(shí)時(shí)鐘芯片DS12C887為核心,單片機(jī)對(duì)時(shí)鐘芯片DS12C887初始化后,這部分將產(chǎn)生高精度的年、月、日、時(shí)、分、秒等實(shí)時(shí)時(shí)間信息,如圖3.2所示。圖321時(shí)鐘產(chǎn)生模塊3.2.2 控制模塊圖322控制模塊這一部分是整個(gè)電路的核心模塊,包含兩個(gè)主要的控制部分,如圖3.3所示。第一部分主要由AT89C51單片機(jī)控制,首先對(duì)時(shí)鐘芯片進(jìn)行初始化,使之按照預(yù)定的時(shí)間接著往下計(jì)時(shí),輸出實(shí)時(shí)時(shí)鐘信號(hào)。并通過P0端口讀取當(dāng)前時(shí)間值,然后將讀取的時(shí)間信息轉(zhuǎn)化為與設(shè)定時(shí)間之間的倒計(jì)時(shí)間值。再通過P1端口的控制,將倒計(jì)時(shí)間信息送顯示模塊進(jìn)行顯示。第二部分是由按鍵控
18、制的時(shí)間調(diào)整部分;首先可以在控制模塊加入一個(gè)按鍵開關(guān),使當(dāng)前時(shí)間和倒計(jì)時(shí)時(shí)間進(jìn)行相互轉(zhuǎn)換顯示,按一下開關(guān)顯示當(dāng)前時(shí)間,再按一下開關(guān)則轉(zhuǎn)換成倒計(jì)時(shí)時(shí)間顯示。這樣用一個(gè)按鍵控制了倒計(jì)時(shí)間和當(dāng)前時(shí)間之間的相互轉(zhuǎn)換顯示。其次是通過按鍵實(shí)現(xiàn)時(shí)間的設(shè)定與調(diào)整,可以分為對(duì)當(dāng)前時(shí)間的設(shè)定與調(diào)整以及對(duì)預(yù)設(shè)時(shí)間的調(diào)整。具體的實(shí)現(xiàn)方法是:先使用單片機(jī)的一個(gè)外部中斷INT0接一個(gè)按鍵K1,按下K1后進(jìn)入中斷服務(wù)子程序,進(jìn)入中斷服務(wù)程序后,先對(duì)DS12C887的秒、分、小時(shí)、日期、月份、年所在的地址單元作清零的操作,在用K3鍵進(jìn)行加1操作,調(diào)整和設(shè)定時(shí)間值,秒調(diào)整后按下K2鍵確認(rèn)調(diào)整并將地址指針指向分單元地址,對(duì)分進(jìn)行
19、設(shè)定,依次類似可進(jìn)行其他時(shí)間值的調(diào)整。3.2.3 顯示模塊圖323顯示模塊該模塊是整個(gè)電路的倒計(jì)時(shí)間顯示部分。由8個(gè)LED數(shù)碼管和相應(yīng)顯示驅(qū)動(dòng)芯片4511和74LS138構(gòu)成,如圖3.4所示。要顯示8位數(shù)值,所以選擇用動(dòng)態(tài)按位掃描的方式進(jìn)行顯示.動(dòng)態(tài)顯示方式中,LED數(shù)碼顯示器輪流工作,為了防止閃爍現(xiàn)象,每個(gè)LED數(shù)碼管刷新頻率必須大于25HZ,即相鄰兩次點(diǎn)亮?xí)r間間隔要小于40ms。4511芯片和74LS138同時(shí)工作,4511芯片送入數(shù)據(jù)給LED然后74LS138通過選通確定哪個(gè)數(shù)碼管顯示。位掃描碼由P1.4,P1.5,P1.6譯碼產(chǎn)生。所以選擇用動(dòng)態(tài)按位掃描的方式進(jìn)行顯示.8個(gè)數(shù)碼管顯示出
20、倒計(jì)時(shí)時(shí)間的天數(shù)、時(shí)、分、秒的數(shù)值。3.3倒計(jì)時(shí)轉(zhuǎn)換計(jì)算具體實(shí)現(xiàn)如下,以從現(xiàn)在到2007年07月01日為例來說明其設(shè)計(jì),首先由單片機(jī)讀DS12887的時(shí)間單元,并將其存放在以30H為起始的單元中,先讀取月份,利用查表的方法計(jì)算其下月份到預(yù)定時(shí)間的天數(shù)。然后再利用查表方式判斷其月份是31天、30天、28天或29天,然后將查表得到的天數(shù)減去讀取日期,這樣將二個(gè)天數(shù)相加就會(huì)得到實(shí)際天數(shù)。進(jìn)行時(shí)、分、秒的計(jì)算時(shí),首先要把2007年07月01日0點(diǎn)0時(shí)0秒轉(zhuǎn)化為2007年06月29日23點(diǎn)59時(shí)59秒,這樣,直接利用時(shí)、分、秒相減就能得到相差的時(shí)、分、秒。3.4 本章小結(jié) 本章是整個(gè)設(shè)計(jì)方案的整體實(shí)現(xiàn)章
21、節(jié),對(duì)本方案的具體實(shí)現(xiàn)方法從總體再到各個(gè)功能模塊都作了詳細(xì)的論述。在本章的首節(jié)首先給出了根據(jù)系統(tǒng)的設(shè)計(jì)要求及選用的方案所設(shè)計(jì)的整體硬件電路原理圖。由時(shí)間單元、控制單元和顯示部分三個(gè)模塊構(gòu)成。以實(shí)時(shí)時(shí)鐘芯片DS12C887為核心的時(shí)間產(chǎn)生模塊講述了該方案中用于計(jì)算倒計(jì)時(shí)的實(shí)時(shí)時(shí)間值的產(chǎn)生來源??刂颇K(本系統(tǒng)的核心模塊)闡述了該模塊如何實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)的控制,分為對(duì)時(shí)鐘芯片DS12C887的初始化;時(shí)間值的讀取,倒計(jì)時(shí)的計(jì)算與轉(zhuǎn)換;對(duì)顯示部分的控制等。顯示模塊講述了本系統(tǒng)中顯示部分的工作原理,介紹了這個(gè)倒計(jì)時(shí)系統(tǒng)的動(dòng)態(tài)掃描顯示等內(nèi)容。本章的最后就如何將讀取的當(dāng)前時(shí)間轉(zhuǎn)化為與預(yù)設(shè)時(shí)間之間的倒計(jì)時(shí)時(shí)間
22、作了詳細(xì)介紹并給出了轉(zhuǎn)化的具體方法。4本設(shè)計(jì)相應(yīng)部分的軟件介紹到第三章為止,已經(jīng)將這個(gè)倒計(jì)時(shí)系統(tǒng)從理論論證再到系統(tǒng)整體硬件電路進(jìn)行了詳細(xì)論述,本章將根據(jù)該方案的設(shè)計(jì)思路以及硬件電路圖,介紹該倒計(jì)時(shí)系統(tǒng)的軟件實(shí)現(xiàn)原理和思路。4.1 總體功能程序?qū)崿F(xiàn)的流程圖主程序流程如圖411所示開 始計(jì)算倒計(jì)時(shí)時(shí)間顯 示 當(dāng) 前時(shí) 間 F0=1INT0 讀DS12C887的內(nèi)容初 始 化顯 示Y N 返 回圖411主程序流程圖4.2主流程圖的簡要解釋說明: 首先對(duì)時(shí)鐘芯片DS12C887進(jìn)行初始化,設(shè)定當(dāng)前時(shí)間值,初始化后時(shí)鐘芯片將以設(shè)定時(shí)間為基準(zhǔn)開始運(yùn)行,然后通過89C51的P0口讀取DS12C887的當(dāng)前時(shí)
23、間值,然后通過判斷是否是中斷如果是中斷則顯示當(dāng)前時(shí)間,如果不是中斷則計(jì)算倒計(jì)時(shí)時(shí)間并顯示出來。4.2.1時(shí)鐘芯片DS12C887的初始化程序假定采用每天24小時(shí)制的非夏令時(shí),時(shí)間數(shù)據(jù)格式為BCD碼,初始化時(shí)間為2007年05月20 日00時(shí)00分00秒,1k方波輸出。時(shí)鐘芯片每一秒種向單片機(jī)申請(qǐng)中斷一次,一方面讓單片機(jī)修改一次時(shí)鐘顯示,另一方面也給單片微機(jī)系統(tǒng)提供時(shí)間基準(zhǔn)。 DS12C887時(shí)鐘芯片的初始化寫入程序 MOV DPTR,#7F0AH;寄存器A地址 MOV A,#70H:DV2DV0=11
24、1,分頻復(fù)位 MOVX DPTR,AA INC DPTR:到寄存器B地址 MOV A,#8AH:停止更新,允許更新中斷,選BCD碼,24小時(shí)制 MOVX DPRT,A MOV DPL,#00H,秒單元地址 CLR
25、A:00秒 MOVX DPTR,A MOV DPL,#02H;分單元地址 CLR A:00分 MOVX DPTR,A MOV DPL,#04H;時(shí)單元地址MOV A,#09H;9時(shí) MOVX DPTR,A MOV DPL#07H;日單元地址 MOV A,01H:1日
26、60; MOVXDPTR,AINCDPTR:到月單元地址MOVA,01H;1月 MOVX DPTR,A INC DPTR:到年單元地址 MOV A,#96H;1996年 MOVX DPTR,A INC DPTR;到寄存器A地址 MOV A,#26H;DV2DV0=010 RS3RS0=0110
27、60; MOVX DPTR,A:周期中斷率為976.5625µs,允許方波輸出,頻率1kHz INC DPTR:到寄存器B MOV A,#1AH;每秒更新一次,允許方波輸出,24小時(shí)制 MOVX DPTR,A:時(shí)鐘開始運(yùn)行4.3 實(shí)時(shí)時(shí)間的讀取程序DS12C887的日歷時(shí)鐘通常有中斷和查詢兩種方法讀出。但在讀數(shù)據(jù)時(shí),首先要判斷數(shù)據(jù)是否更新結(jié)束,只有在數(shù)據(jù)更新結(jié)束時(shí)數(shù)據(jù)讀出才有效。 本設(shè)計(jì)方案采用查
28、詢法讀取數(shù)據(jù): 查詢寄存器A的UIP位,當(dāng)UIP=0時(shí),數(shù)據(jù)更新結(jié)束,可以讀出。以下是采用查詢方法,從秒至年單元的數(shù)據(jù)讀出后存入89C51內(nèi)部RAM的3035H單元中,該部分程序流程圖和讀取程序如圖4.2所示。 轉(zhuǎn)到DS12C887的時(shí)間單元UIP=0 N計(jì)算倒計(jì)時(shí)記時(shí)讀取時(shí)間數(shù)據(jù) Y 顯 示圖431 讀取時(shí)間的流程圖對(duì)DS12C887的時(shí)間讀取程序(查詢法) MOV DPTR,#7F0AH;寄存器A地址 MOVX A,DPTR WAIT:JB ACC
29、,7,WAIT;UIP=1則等待更新完畢 MOV DPL,00H;秒地址 MOV R0,#30H;取目標(biāo)首地址 MOVX A,DPTR;取秒數(shù)據(jù) MOV R0,A:送入80C51的內(nèi)部RAM緩沖區(qū) INC DPTR:移指針 INC R04.4 倒計(jì)時(shí)部分的軟件實(shí)現(xiàn)原理倒計(jì)時(shí)流程如圖4.3所示。讀DS
30、12C887的內(nèi)容取月加一查表一得天數(shù)取月值查表二得每月天數(shù)減讀取日數(shù)天數(shù)相加保存取時(shí)分秒預(yù)定時(shí)間減時(shí)分秒保存返回圖4.3 倒計(jì)時(shí)轉(zhuǎn)化流程圖以從現(xiàn)在到2007年07月01日為例來說明其設(shè)計(jì),首先由單片機(jī)讀DS12C887的時(shí)間單元,并將其存放在以30H為起始的單元中,先讀取月份,利用查表的方法計(jì)算其下月份到預(yù)定時(shí)間的天數(shù)。然后再利用查表方式判斷其月份是31天、30天、28天或29天,然后將查表得到的天數(shù)減去讀取日期,這樣將二個(gè)天數(shù)相加就會(huì)得到實(shí)際天數(shù)。進(jìn)行時(shí)、分、秒的計(jì)算時(shí),首先要把2007年07月01日0點(diǎn)0時(shí)0秒轉(zhuǎn)化為2007年06月29日23點(diǎn)59時(shí)60秒,這樣,直接利用時(shí)、分、秒相減就
31、能得到相差的時(shí)、分、秒。這只是一個(gè)簡單的固定時(shí)間設(shè)置,有待于實(shí)現(xiàn)的功能是調(diào)解預(yù)定時(shí)間,可以在中斷INT1加一個(gè)開關(guān),這個(gè)開關(guān)就可以調(diào)解預(yù)定時(shí)間。按下中斷INT1進(jìn)入中斷程序,然后按開關(guān)K2后開始進(jìn)入時(shí)間調(diào)整,先調(diào)整天然后按下K3確認(rèn),指針自動(dòng)指向小時(shí),在按下K2進(jìn)行調(diào)整,重復(fù)操作調(diào)整好時(shí)間后自動(dòng)跳出中斷程序,就修改了預(yù)設(shè)時(shí)間。4.5 本章小結(jié) 本章是該倒計(jì)時(shí)系統(tǒng)設(shè)計(jì)的軟件實(shí)現(xiàn)部分。從整體的軟件設(shè)計(jì)流程圖到各個(gè)主要的子程序部分分別進(jìn)行講述。 首先介紹了本系統(tǒng)整體功能實(shí)現(xiàn)的流程圖,先對(duì)時(shí)鐘芯片DS12C887進(jìn)行初始化,然后通過89C51的P0口讀取DS12C887的當(dāng)前時(shí)間值,再計(jì)算出讀取時(shí)間與
32、預(yù)設(shè)定時(shí)間之間的倒計(jì)時(shí)時(shí)間值并送顯示模塊顯示出來。在時(shí)間讀取子程序的介紹中,解釋對(duì)DS12C887讀取時(shí)間的方法。DS12C887的日歷時(shí)鐘通常有中斷和查詢兩種方法讀出,這里以查詢法為例作了介紹。最后是本倒計(jì)時(shí)系統(tǒng)在軟件設(shè)計(jì)中最為關(guān)鍵的部分倒計(jì)時(shí)時(shí)間轉(zhuǎn)化方法。通過實(shí)例和程序流程圖詳細(xì)介紹了在軟件實(shí)現(xiàn)過程中是如何將得到的當(dāng)前時(shí)間轉(zhuǎn)化為與預(yù)設(shè)時(shí)間之間的倒計(jì)時(shí)的。 總結(jié)這個(gè)設(shè)計(jì)主要是單片機(jī)的一個(gè)應(yīng)用系統(tǒng),利用單片機(jī)和實(shí)時(shí)時(shí)鐘芯片構(gòu)成了一個(gè)簡單實(shí)用的倒計(jì)時(shí)系統(tǒng)。通過數(shù)碼管的顯示可以清晰的看出設(shè)定時(shí)間與現(xiàn)在實(shí)時(shí)時(shí)間之間的倒計(jì)時(shí)間值。通過這個(gè)必要設(shè)計(jì)的學(xué)習(xí)和寫作過程,使我比較系統(tǒng)的了解和掌握了51系列單片機(jī)的基本原理及其應(yīng)用。在這個(gè)系統(tǒng)的制作與測試過程中,遇到的第一個(gè)問題是對(duì)時(shí)鐘芯片的初始化問題,因?yàn)镈S12C887并不需要每次復(fù)位后進(jìn)行初始化,如果每次運(yùn)行都初始化的話就會(huì)不斷的重復(fù)修改它的基準(zhǔn)時(shí)間,也就讀不出準(zhǔn)確的當(dāng)前時(shí)間。因?yàn)镈S12C887具有掉電存儲(chǔ)功能,系統(tǒng)掉電后它可以繼續(xù)維持時(shí)鐘的運(yùn)行狀態(tài)。所以只對(duì)DS12C887進(jìn)行一次的初始化后再換用不帶初始化的程序,只需要讀取時(shí)間和轉(zhuǎn)換顯示就避免了這個(gè)問題。遇到的第二個(gè)問題是倒計(jì)時(shí)時(shí)間的顯示模塊,因?yàn)橐M(jìn)行單個(gè)的顯示,顯示時(shí)一分鐘倒計(jì)時(shí)完后前一位不能自
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 照片濾鏡調(diào)色課程設(shè)計(jì)
- 二手車交易平臺(tái)營業(yè)員銷售總結(jié)
- 春游課程設(shè)計(jì)
- 家具設(shè)計(jì)師工作總結(jié)
- 風(fēng)險(xiǎn)防控方案計(jì)劃
- 法律服務(wù)行業(yè)風(fēng)險(xiǎn)防范方案
- 化工行業(yè)衛(wèi)生防護(hù)要點(diǎn)
- 物流運(yùn)輸行業(yè)咨詢服務(wù)經(jīng)驗(yàn)總結(jié)
- 藥店衛(wèi)生管理措施
- 金融領(lǐng)域的投資顧問職責(zé)
- 數(shù)字孿生技術(shù)與MES系統(tǒng)的融合
- 人才梯隊(duì)(人才庫、人才盤點(diǎn))建設(shè)方案
- 廣西柳州市2023-2024學(xué)年四年級(jí)上學(xué)期期末考試語文試卷
- 《芯片制造工藝》課件
- 中山大學(xué)研究生中特考試大題
- 手術(shù)室護(hù)理實(shí)踐指南術(shù)中低體溫預(yù)防
- 鋼管混凝土柱計(jì)算
- 四川省成都市2022-2023學(xué)年六年級(jí)上學(xué)期語文期末考試試卷(含答案)5
- 違規(guī)建筑綜合整頓行動(dòng)方案(二篇)
- 酒店明住宿清單(水單)
- 《中華民族大團(tuán)結(jié)》(初中) 全冊(cè)教案(共12課)
評(píng)論
0/150
提交評(píng)論