單片機課程-日歷時鐘設(shè)計_第1頁
單片機課程-日歷時鐘設(shè)計_第2頁
單片機課程-日歷時鐘設(shè)計_第3頁
單片機課程-日歷時鐘設(shè)計_第4頁
單片機課程-日歷時鐘設(shè)計_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、題目一題目一 日歷時鐘設(shè)計日歷時鐘設(shè)計 一、設(shè)計內(nèi)容: 采用 MCS-51 系列單片機進行日歷時鐘設(shè)計并通過實驗儀驗證通過。 二、設(shè)計要求: 1 設(shè)計單片機最小系統(tǒng)電路(包括復(fù)位、晶振電路、外擴 3 個 2764 共 24KROM、3 個 6264 共 24KRAM 等) 2 設(shè)計鍵盤/顯示器接口電路。 3 通過軟件編程實現(xiàn)日歷時鐘的顯示(顯示年、月、日和時:分:秒) 4 通過鍵盤可預(yù)置日歷時鐘。 5 實現(xiàn)作息時間控制輸出。 一、單片機最小系統(tǒng) 189C52 單片最小系統(tǒng) EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 1

2、4 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE /P 30 TXD 11 RXD 10 U1 89C52 VCC VCC R1 1K RESET X TAL1 12.0 MHz C2 30P C3 30P C1 22uF P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.

3、6 P0.7 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 P3.2 P3.0 P3.1 P1.7 P1.5 P1.6 P3.3 P3.5 P3.4 RST P3.7 P3.6 P1.0 P1.1 P1.2 P1.3 P1.4 28032 總線型最小系統(tǒng)(3 片組成) VCC D0 3 Q0 2 D1 4 Q1 5 D2 7 Q2 6 D3 8 Q3 9 D4 13 Q4 12 D5 14 Q5 15 D6 17 Q6 16 D7 18 Q7 19 OE 1 LE 11 U2 74LS373 EA/VP 31 X1 19 X2 18 RESET 9 RD 17

4、 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE /P 30 TXD 11 RXD 10 U1 8032 VCC R1 1K RESET X TAL1 12.0 MHz C2 30P C3 30P C1 22uF A0 10 A1 9

5、A2 8 A3 7 A4 6 A5 5 A6 4 A7 3 A8 25 A9 24 A10 21 A11 23 A12 2 A13 26 CE 20 OE 22 PGM 27 VPP 1 D0 11 D1 12 D2 13 D3 15 D4 16 D5 17 D6 18 D7 19 U4 27128 BUSADDRESS BUSDATA D7 D6 D5 D4 D3 D2 D1 D0D7 D6 D5 D4 D3 D2 D1 D0 A12 A11 A10 A9 A8 A0 A1 A2 A3 A4 A5 A6 A7 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 D3 D4 D5

6、 D6 D7 A8 A9 A10 A11 A12 A13 A14 A15 INT0 RXD TXD P1.7 P1.5 P1.6 INT1 T1 T0 RST RD WR ALE P1.0 P1.1 P1.2 P1.3 P1.4 A13 目錄目錄 摘要摘要.7 前言前言.8 1 1 概論概論.8 1.1 概述 .8 1.2 時鐘日歷的特性 .8 2 2 系統(tǒng)原理與硬件設(shè)計系統(tǒng)原理與硬件設(shè)計.9 2.1 硬件選擇 .10 2.2 AT89C51 單片機簡介 .10 2.3 時鐘芯片介紹 .15 2.4 LED 簡介 .20 3 3 程序設(shè)計程序設(shè)計.22 4 4 調(diào)試過程及數(shù)據(jù)分析調(diào)試過程及數(shù)據(jù)

7、分析.29 4.1 KEIL 調(diào)試.29 4.2 實驗臺調(diào)試 .29 5 5 結(jié)果分析結(jié)果分析.30 6 6 心得體會心得體會.30 7 7 致謝致謝.30 8 8 參考文獻參考文獻.31 摘要摘要 本次單片機課程設(shè)計利用 PCF8563 日歷實時時鐘實現(xiàn)年月日時分秒的顯示。本次課程設(shè) 計需要用到 CPU 模塊 、ZLG7290 鍵盤與顯示模塊 、時鐘模塊(PCF8563) 。 PCF8563 這種時鐘芯片具備年、月、日、時、分、秒計時功能和多點定時功能,計時數(shù)據(jù)的更新 在計算機匯編語言的驅(qū)動下每秒自動進行一次,但不需程序干預(yù)其輸出狀態(tài)。此外,這 種時鐘芯片帶有鋰電池做后備電源,具備永不停止的

8、計時功能和可編程方波輸出功能, 可用作實時測控系統(tǒng)的采樣信號等。這種時鐘芯片內(nèi)部還帶有非易失性 RAM,可用來存 放需長期保存但有時也需變更的數(shù)據(jù)。本次設(shè)計中的 LED 數(shù)碼管電子時鐘電路采用 24 小時制記時方式,日期和時間用 16 位數(shù)碼管顯示。設(shè)計采用 AT98C51 單片機,使用 5V 電源供電。 本次設(shè)計采用AT89C51單片機的擴展芯片和ZLG7290鍵盤與顯示模塊做驅(qū)動,由多塊 LED數(shù)碼管構(gòu)成的顯示系統(tǒng),與傳統(tǒng)的基于8/16位普通單片機的LED顯示系統(tǒng)相比較,本 系統(tǒng)在不顯著地增加系統(tǒng)成本的情況下,可支持更多的LED數(shù)碼管穩(wěn)定顯示。 關(guān)鍵詞:關(guān)鍵詞:PCF8563PCF8563

9、、AT89C51AT89C51、時鐘日歷、時鐘日歷 前言前言 一塊單片機芯片就是一臺計算機,由于單片機以其集成度高、體積小、可靠性高、 控制功能強、低電壓、低功耗等特點使它應(yīng)用于智能儀器儀表、機電一體化、實時程控、 人類生活中。除此之外還廣泛應(yīng)用辦公自動化領(lǐng)域、商業(yè)營銷領(lǐng)域、汽車及通信系統(tǒng)、 計算機外部設(shè)備等各領(lǐng)域中,并且單片機已成為計算機發(fā)展和應(yīng)用的一個重要方面。由 此可見掌握單片機的使用方法和利用單片機解決實際問題具有重要的意義。 本次設(shè)計根據(jù) AT89C51 單片機系統(tǒng)擴展的基本原理和方法、常用總線標準和典型接口電 路的應(yīng)用,結(jié)合本次設(shè)計的題目要求進行系統(tǒng)擴展,通過單片機驅(qū)動時鐘芯片進行

10、年、 月、日、時、分、秒顯示,最后通過 74LS154 譯碼和動態(tài)顯示的方式完成設(shè)計任務(wù),設(shè) 計論文中附有電路圖、程序清單、各數(shù)據(jù)存儲單元的所在地址和輸入輸出口對應(yīng)表。因 水平有限,難免有疏落不足之處,懇請老師和同學(xué)能給予批評指正 1 1 概論概論 1.11.1 概述概述 隨著電子技術(shù)的迅速發(fā)展,特別是隨著大規(guī)模集成電路產(chǎn)生而出現(xiàn)的微型計算 機,給人類生活帶來了極大的方便。走入家庭,從洗衣機、微波爐到音響、汽 車,到處都可以見到單片機應(yīng)用的蹤影。如果說微型計算機技術(shù)的出現(xiàn)使現(xiàn)代 科學(xué)研究得到了質(zhì)的飛躍,那么也可以毫不夸張的說:“單片機技術(shù)的出現(xiàn)則 是給現(xiàn)代工業(yè)測控領(lǐng)域帶來了一次新的工業(yè)革命”

11、。目前,單片機以其可靠性高 和智能性等特點被廣泛應(yīng)用到工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、智能化儀器儀表、 辦公自動化等領(lǐng)域中,并已經(jīng)進入家庭,因此,單片機技術(shù)的開發(fā)和應(yīng)用水平 已經(jīng)逐步成為一個國家自動化發(fā)展水平的標志之一。 1.21.2 時鐘日歷的時鐘日歷的特性特性 PCF8563 1PCF8563 是 PHILIPS 公司推出的一款工業(yè)級內(nèi)含 I C 總線接口功 能的具有極低功耗的多功能時鐘/日歷芯片 PCF8563 的多種報警功能 定時器功能 時鐘輸出功能以及中斷輸出功能能完成各種復(fù)雜的定時服 務(wù) 甚至可為單片機提供看門狗功能 內(nèi)部時鐘電路 內(nèi)部振蕩電路 內(nèi)部 低電壓檢測電路 1.0V 以及兩線

12、制 I2C 總線通訊方式 不但使外圍電路 及其簡潔 而且也增加了芯片的可靠性 同時每次讀寫數(shù)據(jù)后 內(nèi)嵌的字 地址寄存器會自動產(chǎn)生增量 當然作為時鐘芯片 PCF8563 亦解決了 2000 年問題 因而 PCF8563 是一款性價比極高的時鐘芯片 它已被廣泛 用于電表 水表 氣表 電話 傳真機 便攜式儀器以及電池供電的儀器儀 表等產(chǎn)品領(lǐng)域 2 2 系統(tǒng)原理系統(tǒng)原理與硬件設(shè)計與硬件設(shè)計 1本次的設(shè)計題目是日歷時鐘設(shè)計日歷時鐘設(shè)計,要求實現(xiàn)年、月、日、時、分、秒 的正常顯示,需要硬件和軟件的結(jié)合來實現(xiàn)。本次設(shè)計利用時鐘日歷芯 片 PCF8563 的特性和 AT89C51 單片機的功能利用實現(xiàn)的。時鐘

13、芯片在電 源的作用下向通過 P1 口向 AT89C51 單片機輸入時間信號,AT89C51 單片 機在接受到時間信號后通過 P0 將信號送到單片機另一擴展芯片 ZLG7290,驅(qū)動 LED 數(shù)碼管顯示。同時,系統(tǒng)通過 p0 口接收鍵盤輸入信 號。系統(tǒng)框圖如下: 畫出系統(tǒng)框圖 2.12.1 硬件硬件選擇選擇清單清單 (1)時鐘芯片選擇 選用時鐘日歷芯片 PCF8563 (2)單片機的選擇 選用 AT89C51 單片機,并配備 11.0592MHz 晶振。 (3)鍵盤及顯示電路選擇 采用擴展芯片 ZLG7290 作為接口鍵盤及 led 驅(qū) 動器,共(待定)極數(shù)碼管顯示。 (4)電源選擇 采用直流

14、5V 電源供電。 (6) ROM 和 RAM 2.22.2 AT89C51AT89C51 單片機單片機簡介簡介 AT89C51 單片機是一種低功耗,高性能的片內(nèi)含有 4KB 可編程/擦除只讀存 儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的 8 位 COMS 微控制器,使用高密度,非易失存儲技術(shù)制造,并且與 AT89C51 引腳和 指令系統(tǒng)完全兼容。芯片上的 FPEROM 允許在線編程或采用通用的非易失存儲編 程器對存儲器重復(fù)編程。 2.2.1 引腳說明 AT89C51 單片機采用 40 條引腳雙列直插式器件,引腳除 5V

15、( 40 腳)和電源地( 20 腳)外,其功能分為時鐘電路、控制信號、輸入 /輸出三大部分,邏輯框圖及引腳圖分別如圖 2.3(a)(b)所示 (a) (b) 圖 2.3 AT89C51 單片機邏輯圖與引腳圖 AT89C51 單片機的內(nèi)部硬件結(jié)構(gòu)中除了程序存儲器由 FPEROM 取代了 87C51 單片機的 EPROM 外,其余部分完全相同,其管腳說明如下: (1)VCC:供電電壓 (2)GND:接地 (3)時鐘電路 XTAL1(19 腳)芯片內(nèi)部振蕩電路(單級反相放大器)輸入端。 XTAL2(18 腳)芯片內(nèi)部振蕩電路(單級反相放大器)輸出端。 (4)控制信號 RST(9 腳)復(fù)位信號: AL

16、E(30 腳)地址鎖存信號 (29 腳)片外程序存儲器讀選通: PSEN /Vpp(30 腳)EA (5)I/O 接口 2.32.3 時鐘芯片介紹時鐘芯片介紹 2 PCF8563 簡介 PCF8563 是PHILIPS 公司推出的一款帶I2C 總線,具有極低功耗的多功能時鐘/日歷芯片 PCF8563 的多種報警功能。定時器功能時鐘輸出功能以及中斷輸出功能能完成各種復(fù)雜的定時 服務(wù)甚至可為單片機提供看門狗功能內(nèi)部時鐘。電路內(nèi)部振蕩電路內(nèi)部低電壓檢測電路1.0V 以 及兩線制I2C 總線通訊方式不但使外圍電路及其簡潔而且也增加了芯片的可靠性當然作為時鐘 芯片PCF8563 亦解決了2000 年問題

17、因而PCF8563 是一種性價比極高的時鐘芯片。它廣泛應(yīng)用于 電話傳便攜式儀器以及電池供電的儀器儀表等產(chǎn)品領(lǐng)域。 指標如下: 1. 寬電壓范圍1.0 5.5V 復(fù)位電壓Vlow=1.0V; 2. 超低功耗典型值為0.25 A; 3. 四種報警功能和定時器功能; 4. 內(nèi)部復(fù)位電路內(nèi)部振蕩器電路和內(nèi)部低壓檢測電路; 5. 中斷輸出和可編程時鐘輸出功能; 6. 400kHzI2C 總線 圖 1 為 PCF8563 內(nèi)部結(jié)構(gòu)。PCF8563 內(nèi)部包括 16 個 8 位寄存器,可自動增量的地址 寄存器,內(nèi)置 32768Hz 的振蕩器(帶有一個內(nèi)部集成的電容),分頻器(用于給實時時鐘 RTC 提供源時鐘

18、),可編程時鐘輸出,定時器,報警器,掉電檢測器和 400 kHz 的 I2C 總 線接口。 所有 16 個寄存器設(shè)計成可尋址的 8 位并行寄存器,但不是所有位都有用。前 2 個 寄存器(內(nèi)存地址 00H,01H)用于控制寄存器和狀態(tài)寄存器,其中內(nèi)存地址 02H08H 用 于時鐘計數(shù)器(秒年計數(shù)器),地址 09H0CH 用于報警寄存器(定義報警條件),地址 ODH 控制 CLKOUT 引腳的輸出頻率,地址 OEH 和 OFH 分別用于定時器控制寄存器和定 時器寄存器。秒、分鐘、小時、日、月、年、分鐘報警、小時報警、日報警寄存器,編碼 格式為 BCD,星期和星期報警寄存器不以 BCD 格式編碼。

19、PCF8563 的管腳排列及描述如下圖及表所示: 3 系統(tǒng)硬件設(shè)計 硬件電路設(shè)計包括 PCF8563 時鐘與 mega16 單片機的接口電路、數(shù)碼顯示電路以及鍵 盤電路 3 個部分。PCF8563 采用 32768 kHz 可編程時鐘輸出頻率,I2C 總線是由數(shù)據(jù)線 SDA 和時鐘 SCL 構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。單片機與 PCF8563 之間雙向傳送 數(shù)據(jù),最高傳送速率為 100 Kbs。FC 總線的優(yōu)點是簡單和有效。由于接口直接在組件之 上,因此,I2C 總線占用的空間非常小,減少了電路板的空間和器件引腳的數(shù)量,降低了 成本。圖 2 為 PCF8563 與 mega16 單片機的

20、接口電路,PCF8563 的 SCL 與單片機的引腳 PC0 連接;SDA 與單片機的引腳 PC1 連接,實現(xiàn)時間、日期等數(shù)據(jù)的讀取。 ZLG7290 I C 接口鍵盤及 LED 驅(qū)動器 一 特點 I2C 串行接口 提供鍵盤中斷信號 方便與處理器接口 可驅(qū)動 8 位共陰數(shù)碼管或 64 只獨立 LED 和 64 個按鍵 可控掃描位數(shù) 可控任一數(shù)碼管閃爍 提供數(shù)據(jù)譯碼和循環(huán) 移位 段尋址等控制 8 個功能鍵 可檢測任一鍵的連擊次數(shù) 無需外接元件即直接驅(qū) LED 可擴展驅(qū)動電流和驅(qū)動電壓 提供工業(yè)級器件 多種封裝形式 PDIP24 SO24 顯示部分 鍵盤部分 2.42.4 LEDLED 簡介簡介

21、LED 數(shù)碼管根據(jù) LED 的接法不同分為共陰和共陽兩類,將多只 LED 的陰極 連在一起即為共陰式,而將多只 LED 的陽極連在一起即為共陽式。以共陰式為 例,如把陰極接地,在相應(yīng)段的陽極接上正電源,該段即會發(fā)光。當然,LED 的電流通常較小,一般均需在回路中接上限流電阻。假如我們將b和c段接 上正電源,其它端接地或懸空,那么b和c段發(fā)光,此時,數(shù)碼管顯示將顯 示數(shù)字“1”。而將a、b、d、e和g段都接上正電源,其它引腳懸空, 此時數(shù)碼管將顯示“2”。其它數(shù)字的顯示原理與此類同。 LED 的 7 段數(shù)碼管利用單只 LED 組合排列成“8”字型的數(shù)碼管,分別引出 它們的電極,點亮相應(yīng)的點劃來顯

22、示出 0-9 的數(shù)字。在這次的設(shè)計中采用的均 是共陰極的 LED 顯示,當 I/O 口輸出為高電平的時候,對應(yīng)段就被點亮。LED 數(shù)碼管的結(jié)構(gòu)圖如圖 2.6(b)所示。 (a) (b) 圖 2.6 LED 分類結(jié)構(gòu)圖和結(jié)構(gòu)圖 圖 2.7 LED 分類結(jié)構(gòu)圖和結(jié)構(gòu)圖 圖 2.7 LED 分類結(jié)構(gòu)圖和結(jié)構(gòu)圖 (2) 動態(tài)顯示電路 將所有位的段選線的同名端聯(lián)在一起,由一個 8 位 I/O 口控制,形成段選 線的多位復(fù)用。而各位的公共陽極或公共陰極則分別由相應(yīng)的 I/O 口線控制, 實現(xiàn)各位的分時選通,即同一時刻只有被選通位是能顯示相應(yīng)的字符,而其他 所有位都是熄滅的。由于人眼有視覺暫留現(xiàn)象,只要每位

23、顯示間隔足夠短,則 會造成多位同時點亮的假象。這就需要單片機不斷地對顯示進行控制,CPU 需 要不斷地進行顯示刷新,動態(tài)顯示電路參見圖 2.7,圖 2.7 中是擴展了五位的 LED 數(shù)碼管顯示,用一個 74LS154 作為五個 LED 的段選輸入,采用動態(tài)顯示的 方式連接。類似地,16 位的 LED 數(shù)碼管顯示也可以用這種方法來實現(xiàn)。 圖 2.7 五位 LED 數(shù)碼管的動態(tài)顯示 3.3.程序設(shè)計程序設(shè)計 本次設(shè)計采用匯編語言編程,主程序主要實現(xiàn)顯示的初始化和調(diào)用各子程 序工作的功能,讀取時間的子程序主要實現(xiàn)初始化,時間信息的采集和顯示段 碼的碼的存取。在顯示刷新子程序中采用動態(tài)顯示方式,每次從

24、顯示緩沖區(qū)中 取出一個段碼由譯碼器送出,相應(yīng)位碼由 ZLG7290 送出,輪流顯示。 3.13.1 主程序主程序 程序清單如下: ;- ; 定義 PCF8563 的地址 ;- SECOND EQU 6F00H ; 秒寄存器 MINUTE EQU 6F02H ; 分寄存器 MINUTE_ALARM EQU 6F03H ; 分鬧鐘寄存器 HOUR EQU 6F04H ; 時寄存器 HOUR_ALARM EQU 6F05H ; 時鬧鐘寄存器 DATE EQU 6F07H ; 日寄存器 MONTH EQU 6F08H ; 月寄存器 YEAR EQU 6F09H ; 年寄存器 REG_A EQU 6F0

25、AH ; 寄存器 A REG_B EQU 6F0BH ; 寄存器 B REG_C EQU 6F0CH ; 寄存器 C REG_D EQU 6F0DH ; 寄存器 D ;- SECOND_BUFFER EQU 51H ;秒緩沖區(qū) MINUTE_BUFFER EQU 52H ;分緩沖區(qū) HOUR_BUFFER EQU 53H ;時緩沖區(qū) DATE_BUFFER EQU 54H ;日緩沖區(qū) MONTH_BUFFER EQU 55H ;月緩沖區(qū) YEAR_BUFFER EQU 56H ;年緩沖區(qū) ;- ZZLG7290 EQU 0af01H ;ZLG7290 狀態(tài)/命令口地址 DZLG7290 EQU

26、 0af00H ;ZLG7290 數(shù)據(jù)口地址 LEDMOD EQU 00H ;左邊輸入 八位字符顯示 ;外部譯碼鍵掃描方式,雙鍵互鎖 LEDFEQ EQU 2FH ;掃描速率 LEDCLS EQU 0C1H ;清除顯示 RAM LEDWR0 EQU 80H ;設(shè)定的將要寫入的顯示 RAM 地址 ;- ; 主程序 ;- ORG 0000H LJMP MAIN ORG 0030H MAIN: ;MOV 51H,#00H ;秒 ;MOV 52H,#30H ;分 ;MOV 53H,#13H ;時 ;MOV 54H,#25H ;日 ;MOV 55H,#11H ;月 ;MOV 56H,#10H ;年 ;M

27、OV SP,#60H JNB P2.1, YYY ;按鍵按下讀年月日,按鍵沒有按下讀時分秒 LCALL INITZLG7290 LCALL WRITETIME JJJ: LCALL READTIME LCALL DISPLAY JNB P2.1,III AJMP JJJ 3.23.2 年月日的讀取和顯示的子程序年月日的讀取和顯示的子程序 YYY: LCALL INITZLG7290 III: LCALL WRITETIME RRR: LCALL READTIME LCALL DISPLAY1 JNB P2.1,RRR ;按鍵未釋放繼續(xù)讀年月日 AJMP JJJ ;按鍵釋放跳轉(zhuǎn)讀時分 3.33.

28、3 ZLG7290ZLG7290 初始化子程序初始化子程序 INITZLG7290: PUSH DPH ;保存現(xiàn)場 PUSH DPL PUSH ACC MOV DPTR ,#ZZLG7290 MOV A,#LEDMOD ;置 ZLG7290 工作方式 MOVX DPTR,A MOV A,#LEDFEQ ;置鍵盤掃描速率 MOVX DPTR,A MOV A,#LEDCLS ;清除 LED 顯示 MOVX DPTR,A POP ACC ;恢復(fù)現(xiàn)場 POP DPL POP DPH RET 3.43.4 時分秒顯示子程序程序時分秒顯示子程序程序 DISPLAY: MOV A,SECOND_BUFFER

29、 ANL A,#0FH MOV R5,A MOV R4,#0 LCALL DISLED ;顯示秒低位 MOV A,SECOND_BUFFER SWAP A ANL A,#0FH MOV R5,A MOV R4,#1 LCALL DISLED ;顯示秒高位 MOV R5,#16 MOV R4,#2 LCALL DISLED ;顯示- MOV A,MINUTE_BUFFER ANL A,#0FH MOV R5,A MOV R4,#3 LCALL DISLED ;顯示分鐘低位 MOV A,MINUTE_BUFFER SWAP A ANL A,#0FH MOV R5,A MOV R4,#4 LCALL

30、 DISLED ;顯示分鐘高位 MOV R5,#16 MOV R4,#5 LCALL DISLED ;顯示- MOV A,HOUR_BUFFER ANL A,#0FH MOV R5,A MOV R4,#6 LCALL DISLED ;顯示小時低位 MOV A,HOUR_BUFFER SWAP A ANL A,#0FH MOV R5,A MOV R4,#7 LCALL DISLED ;顯示小時高位 RET 3.53.5 年月日顯示子程序年月日顯示子程序 DISPLAY1:MOV A,DATE_BUFFER ANL A,#0FH MOV R5,A MOV R4,#0 LCALL DISLED ;顯

31、示日的低位 MOV A,DATE_BUFFER SWAP A ANL A,#0FH MOV R5,A MOV R4,#1 LCALL DISLED ;顯示日高位 MOV R5,#16 MOV R4,#2 LCALL DISLED ;顯示- MOV A,MONTH_BUFFER ANL A,#0FH MOV R5,A MOV R4,#3 LCALL DISLED ;顯示月低位 MOV A,MONTH_BUFFER SWAP A ANL A,#0FH MOV R5,A MOV R4,#4 LCALL DISLED ;顯示月高位 MOV R5,#16 MOV R4,#5 LCALL DISLED ;

32、顯示- MOV A,YEAR_BUFFER ANL A,#0FH MOV R5,A MOV R4,#6 LCALL DISLED ;顯示年低位 MOV A,YEAR_BUFFER SWAP A ANL A,#0FH MOV R5,A MOV R4,#7 LCALL DISLED ;顯示年高位 RET 3.63.6 寫時間子程序?qū)憰r間子程序 WRITETIME: PUSH DPH ;寫時間 PUSH DPL PUSH ACC MOV DPTR,#REG_A ;開啟振蕩器和允許計時 MOV A,#B MOVX DPTR,A MOV DPTR,#REG_B ;設(shè)定 SET=1,禁止更新資料 MOV

33、A,#B MOVX DPTR,A MOV DPTR,#SECOND ;設(shè)定秒 MOV A,SECOND_BUFFER MOVX DPTR,A MOV DPTR,#MINUTE ;設(shè)定分 MOV A,MINUTE_BUFFER MOVX DPTR,A MOV DPTR,#HOUR ;設(shè)定時 MOV A,HOUR_BUFFER MOVX DPTR,A MOV DPTR,#DATE ;設(shè)定日 MOV A,DATE_BUFFER MOVX DPTR,A MOV DPTR,#MONTH ;設(shè)定月 MOV A,MONTH_BUFFER MOVX DPTR,A MOV DPTR,#YEAR ;設(shè)定年 MOV

34、 A,YEAR_BUFFER MOVX DPTR,A MOV DPTR,#REG_B ;設(shè)定 SET=0,BCD 模式,24 小時制 MOV A,#B MOVX DPTR,A POP ACC POP DPL POP DPH RET 3.73.7 讀時間子程序讀時間子程序 READTIME: ;讀時間 PUSH DPL PUSH DPH PUSH ACC MOV DPTR,#REG_A ;讀取寄存器 A RTCBUSY: MOVX A,DPTR JB ACC.7,RTCBUSY ;測試 UIP 位,如果 UIP=0;則執(zhí)行以下程序 MOV DPTR,#SECOND ;讀取秒資料 MOVX A,D

35、PTR MOV SECOND_BUFFER,A MOV DPTR,#MINUTE ;讀取分數(shù)據(jù) MOVX A,DPTR MOV MINUTE_BUFFER,A MOV DPTR,#HOUR ;讀取時資料 MOVX A,DPTR MOV HOUR_BUFFER,A MOV DPTR,#DATE ;讀取日資料 MOVX A,DPTR MOV DATE_BUFFER,A MOV DPTR,#MONTH ;讀取月資料 MOVX A,DPTR MOV MONTH_BUFFER,A MOV DPTR,#YEAR ;讀取年資料 MOVX A,DPTR MOV YEAR_BUFFER,A POP ACC PO

36、P DPH POP DPL RET 3.83.8 數(shù)碼管顯示子程序數(shù)碼管顯示子程序 DISLED: PUSH DPH ;保存現(xiàn)場 PUSH DPL PUSH ACC MOV A,#LEDWR0 ;置顯示起始地址 ADD A,R4 ;加位置偏移量 MOV DPTR,#ZZLG7290 MOVX DPTR,A ;設(shè)定顯示位置 MOV DPTR,#TAB ;置顯示常數(shù)表起始位置 MOV A,R5 MOVC A,A+DPTR ;查表 MOV DPTR,#DZLG7290 MOVX DPTR,A ;顯示數(shù)據(jù) POP ACC ;恢復(fù)現(xiàn)場 POP DPL POP DPH RET TAB: DB 3FH,06

37、H,5BH,4FH,66H,6DH,7DH,07H ;0,1,2,3,4,5,6,7 DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;8,9,A,B,C,D,E,F DB 40H,00H END 4 4 調(diào)試過程及數(shù)據(jù)分析調(diào)試過程及數(shù)據(jù)分析 4.14.1 KeiLKeiL 調(diào)試調(diào)試 啟動 KEIL 軟件,對每個寫好的主程序和子程序進行單步調(diào)試,直到程序 沒有錯誤為止。 4.24.2 實驗臺調(diào)試實驗臺調(diào)試 根據(jù)程序的設(shè)計在試驗箱上分別連接好各個端口的連接線,用串口線把計 算機和試驗箱的仿真頭連接好,打開試驗箱,根據(jù)要求完成接線。如下所示: (1)系統(tǒng)各跳線器處在初始設(shè)置狀態(tài),8P 數(shù)據(jù)線將 CPU 模塊的 P11F3 和 P1F3 連接,P12F3 和 P0F3 連接用導(dǎo)線對應(yīng)連接時鐘

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論