畢業(yè)論文:基于DS1302時鐘芯片數(shù)字鐘報告(終稿)_第1頁
畢業(yè)論文:基于DS1302時鐘芯片數(shù)字鐘報告(終稿)_第2頁
畢業(yè)論文:基于DS1302時鐘芯片數(shù)字鐘報告(終稿)_第3頁
畢業(yè)論文:基于DS1302時鐘芯片數(shù)字鐘報告(終稿)_第4頁
畢業(yè)論文:基于DS1302時鐘芯片數(shù)字鐘報告(終稿)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 課程設(shè)計報告 題目:基于 ds1302 的數(shù)字鐘報告 學學 院:院: 專專 業(yè):業(yè): 電子信息工程電子信息工程 班班 級:級: 學學 號:號: 指導(dǎo)教師:指導(dǎo)教師: 2010 年 7 月 7 日 2 摘要摘要.3 abstractabstract.4 前言前言.4 第一章第一章 數(shù)字鐘設(shè)計的意義及任務(wù)數(shù)字鐘設(shè)計的意義及任務(wù).5 1.1 數(shù)字鐘設(shè)計的意義.5 1.2 設(shè)計任務(wù) .5 第二章第二章 系統(tǒng)的硬件設(shè)計和方案對比選擇系統(tǒng)的硬件設(shè)計和方案對比選擇.6 2.1 系統(tǒng)設(shè)計結(jié)構(gòu)圖 .6 2.2 系統(tǒng)設(shè)計方案對比選擇.7 2.2.1 mcu 微處理控制器的方案對比選擇 .7 2.2.2 lcd

2、 液晶顯示模塊的方案對比選擇 .8 2.2.3 實時時鐘電路的方案對比選擇.8 第三章第三章 系統(tǒng)的硬件設(shè)計電路及元件說明系統(tǒng)的硬件設(shè)計電路及元件說明.9 3.1 mcu 微控制器電路 .9 3.2 lcd 液晶顯示電路 .11 3.3 實時時鐘電路 .16 3.4 復(fù)位電路.17 3.5 晶振電路.17 第四章第四章 系統(tǒng)的軟件設(shè)計系統(tǒng)的軟件設(shè)計。.18 4.1 主程序.18 第五章第五章 程序的調(diào)試程序的調(diào)試.19 5.1proteus仿真 .19 5.2 利用學習板進行調(diào)試.20 3 5.3 調(diào)試過程中出現(xiàn)的問題.21 設(shè)計總結(jié)設(shè)計總結(jié).21 參考文獻參考文獻.22 附錄一附錄一 系統(tǒng)程

3、序:系統(tǒng)程序:.23 附錄二附錄二 基于基于 ds1302ds1302 數(shù)字鐘設(shè)計的原理圖數(shù)字鐘設(shè)計的原理圖 .32 附錄三附錄三 基于基于 ds1302ds1302 數(shù)字鐘設(shè)計的數(shù)字鐘設(shè)計的 pcbpcb 圖圖 .33 附錄四附錄四 基于基于 ds1302ds1302 數(shù)字鐘設(shè)計的元件清單數(shù)字鐘設(shè)計的元件清單 .34 4 基于基于 ds1302ds1302 的數(shù)字鐘設(shè)計報告的數(shù)字鐘設(shè)計報告 摘要摘要 根據(jù) at89c52 的特點和數(shù)字鐘的特點,本文提出一種用單片控制 ds1302 利 用 lcd1602 顯示的數(shù)字鐘的設(shè)計方法,同時給出軟硬件電路的設(shè)計方法。設(shè)計 報告硬件電路設(shè)計和軟件編程兩

4、個方面。本系統(tǒng)通過 at89c52 做為 cpu 進行總 控制,利用 at89c52 對 ds1302 進行控制,ds1302 可以對年、月、日、周、日、 時、分、秒進行計時 ,最后利用 lcd1602 液晶顯示進行顯示。 該設(shè)計實用 簡便能夠?qū)δ?、月、日、周、日、時、分、秒 進行有效準確的計時及顯示。 關(guān)關(guān)鍵鍵詞詞:單片機 ds1302 lcd1602 數(shù)字鐘 based on the design of the digital clock ds1302 report abstractabstract according to the characteristics and the digi

5、tal clock at89c52 characteristics, this paper presents a ds1302 control by using single chip lcd1602 digital clock shows the design method and design method of software and hardware circuit is given. design report hardware and software programming. the system through the at89c52 as cpu for total con

6、trol and utilization of ds1302 at89c52 control, ds1302 to year, month, day, week, day, when, minutes and seconds on the clock lcd1602 lcd display show. keywords: scm ds1302 lcd1602 digital clock 5 前言前言 自古就有:“一寸光陰,一寸金”的說法。而隨著人類的進步科學技術(shù)的發(fā) 展時間觀也越來越被人們重視,而能夠準確的知道時間能夠提高人們的工作效 率,能更好的在規(guī)定的時間內(nèi)完成所規(guī)定的工作 。因此能有隨時

7、隨地的知道當 前時間是非常重要的。隨著科學技術(shù)的發(fā)展,單片機技術(shù)的不斷完善,使得數(shù) 字鐘的設(shè)計變得更加的靈便、更加簡單、功能更加的完善、計時也更加的準確。 本設(shè)計實用簡單,設(shè)計方便,計時準確, 能夠?qū)δ?、月、日、周、日、時、 分、秒進行準確的計時,可以讓人們隨時知道時間。 本設(shè)計利用 at89c52 的特點及 ds1302 的特點,提出一種基 ds1302 單 片機控制,再利用 lcd1602 顯示的數(shù)字鐘。本設(shè)計包括硬件電路和軟件程序 兩個方面,將在后面進行詳細敘述。在附錄里,分別本設(shè)計相關(guān)的資料,包 括設(shè)計系統(tǒng)主程序,系統(tǒng)原理圖,系統(tǒng) pcb 圖,系統(tǒng)元件清單,系統(tǒng)實物圖及 系統(tǒng)使用說明。

8、 6 第一章第一章 數(shù)字鐘設(shè)計的意義及任務(wù)數(shù)字鐘設(shè)計的意義及任務(wù) 1.11.1 數(shù)字鐘設(shè)計的意義數(shù)字鐘設(shè)計的意義 自古就有:“一寸光陰,一寸金”的說法。而隨著人類的進步科學技術(shù)的 發(fā)展時間觀也越來越被人們重視,而能夠準確的知道時間能夠提高人們的工作 效率,能更好的在規(guī)定的時間內(nèi)完成所規(guī)定的工作 。因此能有隨時隨地的知道 當前時間是非常重要的。隨著科學技術(shù)的發(fā)展,單片機技術(shù)的不斷完善,使得 數(shù)字鐘的設(shè)計變得更加的靈便、更加簡單、功能更加的完善、計時也更加的準 確。本設(shè)計實用簡單,設(shè)計方便,計時準確, 能夠?qū)δ?、月、日、周、日?時、分、秒進行準確的計時,可以讓人們隨時知道時間 1.21.2 設(shè)計

9、任務(wù)設(shè)計任務(wù) 本設(shè)計利用 at89c52 的特點及 ds1302 的特點,提出一種基 ds1302 單 片機控制,再利用 lcd1602 顯示的數(shù)字鐘。 本系統(tǒng)硬件利用 at89s52 作為 cpu 進行總體控制,通過 ds1302 時鐘芯片獲取準確詳細的時間(年、月、日、 周、日、時、分、秒 準確時間),對時鐘信號進行控制,同時利用液晶顯示 芯片 lcd1602 對時間進行準確顯示年、月、日、周、日、時、分、秒 。該數(shù) 字鐘硬件電路簡單,使用靈活,功能穩(wěn)定,顯示準確且無論對于社會或者科研 也有一定的研究價值。 7 第二章第二章 系統(tǒng)的硬件設(shè)計和方案對比選擇系統(tǒng)的硬件設(shè)計和方案對比選擇 本章重

10、點主要是從系統(tǒng)結(jié)構(gòu)圖來闡述了硬件的設(shè)計以及從方案上對比選擇 各個電路部分的元件,目的是使系統(tǒng)達到一個低成本、高質(zhì)量、穩(wěn)定可靠的設(shè) 計。 2.12.1 系統(tǒng)設(shè)計結(jié)構(gòu)圖系統(tǒng)設(shè)計結(jié)構(gòu)圖 根據(jù)系統(tǒng)設(shè)計的要求和設(shè)計思路,確定該系統(tǒng)的系統(tǒng)設(shè)計結(jié)構(gòu)圖。如圖 2.1 所示。硬件電路主要由 mcu 微處理控制器單元、ds1302 時鐘電路、儲存器、 復(fù)位電路、晶振電路、lcd1602 液晶顯示模塊構(gòu)成。 圖 2.1 系統(tǒng)結(jié)構(gòu)圖設(shè)計 2.22.2 系統(tǒng)設(shè)計方案對比選擇系統(tǒng)設(shè)計方案對比選擇 根據(jù)設(shè)計要求,結(jié)合實際情況和設(shè)計成本要求,對系統(tǒng)主要部分的電路方 案敘述如下。 2.2.12.2.1 mcumcu 微處理控制

11、器的方案對比選擇微處理控制器的方案對比選擇 方案一:mcu 微處理控制器的種類很多,有 atmel 公司生產(chǎn)的 at89sxx 系 列單片機,其中有 8 位的單片機,也有 16 位的單片機。at89s52 為 8 位的單片 8 機,它是一種低損耗、高性能的 cmos 微處理器,片內(nèi)有 8k 字節(jié)的存儲空間, 128 字節(jié) ram、4 個 8 位并口、1 個全雙工串行口、2 個 16 位定時/計數(shù)器,尋 址范圍 64k。并且可以在線進行重復(fù)編程、快速擦除、快速寫入程序,能重復(fù) 擦除 / 寫入 1000 次左右,數(shù)據(jù)保存時間為十年。 方案二:微處理控制器也有凌陽公司生產(chǎn)的,同樣有 8 位的 cpu

12、 和 16 位的 cpu。它也有很多特點,比如:體積小 、集成度高、可靠性好、易于擴展;具 有較強的中斷處理能力;功能強、效率高的指令系統(tǒng)及低功耗、低電壓。但是 其應(yīng)用領(lǐng)域主要是為控制處理數(shù)據(jù)處理以及數(shù)字信號處理等領(lǐng)域,其中凌陽的 16 位單片機就是為適應(yīng)這種發(fā)展而設(shè)計的。 綜上所述,在本設(shè)計中,考慮到本人對單片機的運用熟練度和單片機的功 能領(lǐng)域,選擇 atmel 公司生產(chǎn)的 at89s52 單片機作為本設(shè)計的微控制器。 2.2.22.2.2 lcdlcd 液晶顯示模塊的方案對比選擇液晶顯示模塊的方案對比選擇 方案一:顯示的方法有很多種,其中 led 數(shù)碼管是常用的一種顯示方法。 在這個設(shè)計中

13、,可以用 led 數(shù)碼管來顯示相應(yīng)站臺的站號,提醒司機知道是去 向或者是回向的第幾站,讓司機心里有數(shù),同時增加顯示數(shù)字的可讀性。該設(shè) 計中,顯示站號至少要 2 個 led 數(shù)碼管,顯示時間信息要 12 個,顯示星期信息 要 1 個,總共需要 15 個 led 數(shù)碼管。單價是 1.2 元,那 15 個共需要 151.2=18(元)。另外在 pcb 布線過程中很困難,給設(shè)計帶來很不方便的使 用。 方案二:lcd1602 液晶顯示器是一塊價廉物美的器件,其體積小,控制簡 單,使用方便。它能顯示 2 行 16 列的數(shù)字或英文信息,另外連接它的線很少, 只要 8 根數(shù)據(jù)線和 3 根控制線,這樣給使用帶來

14、很大的方便,節(jié)約單片機 i/o 口。市場上一塊 lcd1602 的價格也只在 15 元左右,比數(shù)碼管便宜。 方案三:功能強大、可以顯示中文文字的 lcd12864 液晶顯示器,其價格貴, 體積大,控制比 lcd1602 稍微復(fù)雜點,但是使用也是很方便的。在控制使用上, 需要 8 根數(shù)據(jù)線和 3 根控制線,其余的 psb、rst和 bla 直接與 vcc 相連接。 但是在本設(shè)計中使用它的性價比不高,體積大,占用覆銅板面積大,而且笨拙。 9 綜上所述,在 lcd 液晶顯示模塊上,選擇方案二中的 lcd1602 液晶顯示器 作為本設(shè)計的顯示模塊。顯示時間年、月、日、周、日、時、分、秒 2.2.32.

15、2.3 實時時鐘電路的方案對比選擇實時時鐘電路的方案對比選擇 方案一:ds1302 是美國 dallas 公司推出的一種高性能、低功耗、帶 ram 的實時時鐘電路芯片,它可以對年、月、日、星期、時、分、秒進行計時,具 有閏年補償功能,工作電壓為 2.5v5.5v。采用三線接口與 cpu 進行同步通信, 并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或 ram 數(shù)據(jù)。ds1302 內(nèi)部有一 個 318 的用于臨時性存放數(shù)據(jù)的 ram 寄存器。ds1302 是有主電源/后背電源 雙電源引腳,可以同時對后背電源進行涓細電流充電。 方案二:ds12887 也是是美國 dallas 半導(dǎo)體公司最新推出的串行

16、接口實時 時鐘芯片,采用 cmos 技術(shù)制成,內(nèi)部具有晶振和時鐘芯片備份鋰電池。采用 ds12887 芯片設(shè)計的時鐘電路無需任何外圍電路和器件,并具有良好的微機接 口。ds12887 芯片具有微功耗、外圍接口簡單、精度高、工作穩(wěn)定可靠等優(yōu)點, 可廣泛用于各種需要較高精度的實時時鐘系統(tǒng)中。但是由于它是串行接口的, 外接單片機需要接很多引腳,才能對它達到一個很好的控制。 綜上所述,結(jié)合本設(shè)計的實際問題及單片機的 i/o 口線,選擇方案一中的 ds1302 作為本設(shè)計的實時時鐘電路的芯片。其控制方便、占單片機 i/o 口線少、 體積小、價格便宜,方便本設(shè)計的使用。 10 第三章第三章 系統(tǒng)的硬件設(shè)計

17、電路及元件說明系統(tǒng)的硬件設(shè)計電路及元件說明 本章根據(jù)系統(tǒng)設(shè)計結(jié)構(gòu)圖來對每個部分的電路進行分析和說明,重點講述 微控制器 at89s52、液晶顯示模塊 lcd1602、實時時鐘芯片 ds1302。該系統(tǒng)中 at89s52 是核心器件,系統(tǒng)的設(shè)計原理圖如附錄二所示。 3.13.1 mcumcu 微控制器電路微控制器電路 at89s52 的塑封圖如圖 3.1 所示,它為 dip40 雙列直插塑料封裝。at89s52 作為系統(tǒng)的核心控制元件,只有它能正常工作后才能使其它的元件進入正常工 作狀態(tài)。因此,下面對 at89s52 進行必要的說明,at89s52 的管腳如圖 3.2 所 示。 圖 3.1 at

18、89c52 封裝圖 圖 3.2 at89c52 引腳圖 1)vcc:40 腳,供電電壓,一般接+5v 電壓。 2)gnd:20 腳,接工作地。 11 3)p0 口:18 腳,p0 口是一個 8 位漏極開路的雙向 i/o 口。作為輸出口, 每位能驅(qū)動 8 個 ttl 邏輯電平。對 p0 端口寫“1”時,引腳用作高阻抗輸入。 當訪問外部程序和數(shù)據(jù)存儲器時,p0 口也被作為低 8 位地址/數(shù)據(jù)復(fù)用。 在這種模式下,p0 具有內(nèi)部上電阻。但是 p0 口在程序校驗作為輸出指令字節(jié) 時,需要外部加上拉電阻,一般上拉電阻選 4.7k10k 為宜。本設(shè)計中用 5.1k 的排阻對 p0 口進行上拉電平。 4)p

19、1 口:3239 腳,p1 口是一個內(nèi)部具有上拉電阻的 8 位雙向 i/o 口, p1 口緩沖器能接收輸出 4 個 ttl 門電流。p1 端口寫入“1”后,被內(nèi)部上拉電 阻把端口拉高,此時可以作為作輸入口使用。作為輸入使用時,被外部拉低的 引腳由于內(nèi)部電阻的原因,將輸出電流。 5)p2 口:2027 腳,p2 口是一個具有內(nèi)部上拉電阻的 8 位雙向 i/o 口, p2 輸出緩沖器能驅(qū)動 4 個 ttl 邏輯電平。對 p2 端口寫“1”時,內(nèi)部上拉電 阻把端口拉高,此時可以作為輸入口使用。6)p3 口:1017 腳,p3 口是一個 具有內(nèi)部上拉電阻的 8 位雙向 i/o 口,p3 輸出緩沖器能驅(qū)

20、動 4 個 ttl 邏輯電 平。對 p3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使 用。 7)reset:9 腳,復(fù)位輸入端。當振蕩器復(fù)位器件時,要保持 rst 腳兩個 機器周期的高電平時間。 8)pale /:30 腳,當訪問外部存儲器時,地址鎖存允許的輸出電平用于 鎖存地址的地位字節(jié)。在 flash 編程期間,此引腳用于輸入編程脈沖。在平時, ale 端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的 1/6。因此它 可用作對外部輸出的脈沖或用于系統(tǒng)校驗。 9)psen:29 腳,外部程序存儲器的選通信號。 10)vprst /:31 腳,訪問外部程序存儲器控制信號

21、。當ea為低電平時, 讀取外部程序存儲器;當ea端為高電平時,則讀取內(nèi)部程序存儲器,設(shè)計中一 般接高電平。 11)xtal1:19 腳,振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。如 采用外部時鐘源時,xtal1 為輸入端。 12 12)xtal2:18 腳,振蕩器反相放大器的輸出端。如采用外部時鐘源時, xtal2 應(yīng)懸空不接。 3.23.2 lcdlcd 液晶顯示液晶顯示電路電路 液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸 多優(yōu)點,在各種小系統(tǒng)中得到了更廣泛的應(yīng)用。本設(shè)計中使用的液晶顯示模塊 是 lcd1602。圖 3.3 所示為本設(shè)計 lcd1602 的連接圖。 圖 3.3

22、 lcd1602 連接圖 lcd1602 是一種用 5x7 點陣圖形來顯示字符的液晶顯示器模塊,它顯示的容量 為 2 行 16 個字。其實物如圖 3.4 和圖 3.5 所示,它的顯示內(nèi)容豐富、體積小、 13 美觀和易于控制都是本設(shè)計選擇作為顯示模塊的原因。其引腳結(jié)構(gòu)圖如圖 3.6 所示。 圖 3.4 lcd1602 正面圖 圖 3.5 lcd1602 反面圖 圖 3.6 lcd1602 引腳結(jié)構(gòu)圖 關(guān)于 lcd1602 的引腳說明如下: 1)第 1 腳:gnd 為地電源。 2)第 2 腳:vcc 接+5v 電源。 14 3)第 3 腳:vee 為液晶顯示器對比度調(diào)整端。接+5v 電源時對比度最

23、弱, 接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個 10k 的精密電位器調(diào)整對比度,一般對比電壓為 0.7v 左右。 4)第 4 腳:rs 為寄存器選擇。高電平時選擇數(shù)據(jù)寄存器,否則選擇指令寄 存器。 5)第 5 腳:rw為讀寫信號線。高電平時進行讀操作,低電平時進行寫操 作。當 rs 和rw共同為低電平時可以寫入指令或者顯示地址,當 rs 為低電平 rw為高電平時可以讀出忙信號,當 rs 為高電平rw為低電平時可以寫入數(shù)據(jù)。 6)第 6 腳:e 端為使能端。當 e 端由高電平跳變成低電平時,液晶模塊執(zhí) 行命令。 7)第 714 腳:d0d7 為 8 位雙向數(shù)據(jù)線。 8

24、)第 15 腳:背光燈 vcc,一般直接和+5v 電源相連接。 9)第 16 腳:背光燈 gnd。 lcd1602 液晶模塊內(nèi)部的字符發(fā)生存儲器已經(jīng)存儲了 160 個不同的點陣 字符圖形,這些字符圖有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和 日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“a”的代 碼是 01000001b(41h),顯示時模塊把地址 41h 中的點陣字符圖形顯示出來, 我們就能看到字母“a”。 lcd1602 液晶模塊內(nèi)部的控制器共有 11 條控制指令, 如表 3.1 所示。 指令 rsr/wd7d6d5d4d3d2d1d0 清顯示 0000000001

25、光標返回 000000001* 置輸入模式 00000001i/ d s 顯示開/關(guān)控制 0000001dcb 光標或字符移位 000001s/cr/l* 置功能 00001dlnf* 15 置字符發(fā)生存貯器地址 0001 字符發(fā)生存貯器地址 置數(shù)據(jù)存貯器地址 001 顯示數(shù)據(jù)存貯器地址(add) 讀忙標志或地址 01bf 計數(shù)器地址(ac) 寫數(shù)到 cgramd 或 dram 10 要寫的數(shù) 從 cgramd 或 dram 讀數(shù) 11 讀出的數(shù)據(jù) 它的讀寫操作、屏幕和光標的操作都是通過指令編程來實現(xiàn)的(說明:1 為高電平,0 為低電平)。 指令 1:清顯示,指令碼 01h,光標復(fù)位到地址 0

26、0h 位置。 指令 2:光標復(fù)位,光標返回到地址 00h 。 指令 3:光標和顯示模式設(shè)置 i/d:光標移動方向,高電平右移,低電平 左移 。s:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無 效 。 指令 4:顯示開關(guān)控制。 d:控制整體顯示的開與關(guān),高電平表示開顯示, 低電平表示關(guān)顯示。 c:控制光標的開與關(guān),高電平表示有光標,低電平表示 無光標。 b:控制光標是否閃爍,高電平閃爍,低電平不閃爍 。 指令 5:光標或顯示移位 s/c:高電平時移動顯示的文字,低電平時移動 光標 。 指令 6:功能設(shè)置命令 dl:高電平時為 4 位總線,低電平時為 8 位總線。 n:低電平時為單行

27、顯示,高電平時雙行顯示。 f:低電平時顯示 5x7 的點陣字 符,高電平時顯示 5x10 的點陣字符 (有些模塊是 dl:高電平時為 8 位總線, 低電平時為 4 位總線)。 指令 7:字符發(fā)生器 ram 地址設(shè)置 。 指令 8:ddram 地址設(shè)置 。 指令 9:讀出忙信號和光標地址。 bf 為忙標志位,高電平表示忙,此時模 塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙,模塊就能接收相應(yīng)的命令 或者數(shù)據(jù)。 指令 10:寫數(shù)據(jù) 。 指令 11:讀數(shù)據(jù) 。 16 液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模 塊的忙標志位是不是為低電平,是低電平則表示不忙,否則此指令失效。要顯

28、 示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符。表 3.2 為 lcd1602 的內(nèi)部顯示地址。 表 3.2 lcd1602 的內(nèi)部顯示地址 3.33.3 實時時鐘電路實時時鐘電路 本設(shè)計使用的實時時鐘電路芯片是美國 dallas 公司生產(chǎn)的一種高性能、低 功耗、帶 ram 的實時時鐘電路芯片 ds1302,其引腳如圖 3.14 所示。vcc1為后備電源,vcc2為主電源。在主電源 關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。ds1302 由 vcc1或 vcc2兩者中的較大 者供電;當 vcc2大于 vcc10.2v 時,vcc2給 ds1302 供電;當 vcc2小于 vcc1時,

29、 ds1302 由 vcc1供電。x1 和 x2 是振蕩源,外接 32.768khz 晶振。rst是復(fù)位/片選線,通過把rst輸 入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。 圖 3.14 ds1302 引腳圖 rst輸入有兩種功能。首先,rst接通控制邏輯,允許地址/命令序列送 入移位寄存器;其次,rst提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當 rst為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對 ds1302 進行操作。如果在 17 傳送過程中rst置為低電平,則會終止此次數(shù)據(jù)傳送,i/o 引腳變?yōu)楦咦钁B(tài)。 上電運行時在 vcc2.5v 之前,rst必須保持低電平。只有在 sclk 為低電平時, 才能

30、將rst置為高電平。i/o 為串行數(shù)據(jù)輸入輸出端(雙向),sclk 始終是輸入 端。本設(shè)計入端。本設(shè)計連接圖如圖 3.15 所示,其中 c1 和 c2 起微調(diào)晶振的作 用。 ds1302 接線圖 3.43.4 復(fù)位電路復(fù)位電路 在 at89s52 單片機中的振蕩器運行時,rst引腳上保持到少 2 個機器周期 的高電平輸入信號,復(fù)位過程即可完成。根據(jù)此原理,本設(shè)計采用上電復(fù)位和 按鍵復(fù)位嵌套在系統(tǒng)中,增強了系統(tǒng)的實用性。本設(shè)計的具體復(fù)位圖如下。 3.53.5 晶振電路晶振電路 at89s52 在工作時需要外部提供時鐘信號,因此,本設(shè)計選擇在其 18 腳 19 腳之間接上 12mhz 的晶振,為單

31、片機提供 1s 的機器振蕩周期。其電路連接圖 如圖所示。在圖中,電容器 c3.c4 起穩(wěn)定振蕩頻率、快速起振的作用,其電容 值一般在 2050pf 18 第四章第四章 系統(tǒng)的軟件設(shè)計系統(tǒng)的軟件設(shè)計。 4.14.1 主程序主程序 系統(tǒng)的主程序設(shè)計是用來控制整個系統(tǒng)運行時的時序工作狀態(tài),因此,完 善的程序設(shè)計是本設(shè)計的重點內(nèi)容。下圖是是本設(shè)計使用的主程序設(shè)計流程圖。 以下是程序主程序的一下部分: 19 org 00h ajmp start ;= org 0050h start: mov sp,#70h lcall initialze ;調(diào)用初始化液晶屏幕 lcall init_p ;調(diào)用初始畫面

32、mov a, #00000001b ;清液晶屏,寫成空白 lcall write_com ;=主程序= main: lcall rd_ds1302 lcall data_buf lcall display ajmp main 第五章第五章 程序的調(diào)試程序的調(diào)試 本章主要介紹程序的調(diào)試。主要利用仿真軟件 proteus 及學習板來確認程序 是否能顯現(xiàn)功能。 5.1proteus5.1proteus 仿真仿真 proteus 軟件是英國 labcenter electronics 公司出版的 eda 工具軟 件(該軟件中國總代理為廣州風標電子技術(shù)有限公司)。它不僅具有其它 eda 工具軟件的仿真功

33、能,還能仿真單片機及外圍器件。它是目前最好的仿 真單片機及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機愛 好者、從事單片機教學的教師、致力于單片機開發(fā)應(yīng)用的科技工作者的青睞。 proteus 是世界上著名的 eda 工具(仿真軟件),從原理圖布圖、代碼調(diào)試到 20 單片機與外圍電路協(xié)同仿真,一鍵切換到pcb 設(shè)計,真正實現(xiàn)了從概念到 產(chǎn)品的完整設(shè)計。是目前世界上唯一將電路仿真軟件、pcb 設(shè)計軟件和虛 擬模型仿真軟件三合一的設(shè)計平臺 。 利用 proteus 畫好相應(yīng)的硬件電路圖,并把程序燒入軟件仿真,看是否 能顯示功能。下圖為本設(shè)計在 proteus 的仿真電路圖。 5.25.2

34、利用學習板進行調(diào)試利用學習板進行調(diào)試 經(jīng)過 proteus 仿真后,再把程序燒入單片機學習板看是否能顯示功能。 下圖為學習板上的運行圖: 21 5.35.3 調(diào)試過程中出現(xiàn)的問題調(diào)試過程中出現(xiàn)的問題 利用 proteus 繪制出相應(yīng)硬件電路后進行仿真,出現(xiàn)液晶顯示無法正常顯 示的問題。經(jīng)過思考和查閱的資料發(fā)現(xiàn) at89c52 的 p0 在進高電平時沒有接上拉 電阻導(dǎo)致 lcd1602 無法正常顯示時間。修改電路后(p0 口接上拉電阻)燒入程 序后,程序正常運行,lcd1602 準確的顯示。 用 proteus 仿真能夠正確的現(xiàn)實時間,但燒入學習板出現(xiàn)亂碼現(xiàn)實不能正 常工作。經(jīng)過反復(fù)檢查及思考發(fā)

35、現(xiàn)仿真軟件上的硬件電路與學習板上的硬件電 路不一致無法對應(yīng)起來。最后根據(jù)學習板的硬件電路修改相應(yīng)程序及仿真軟件 上的硬 件電路,最終現(xiàn)實了功能。 設(shè)計總結(jié)設(shè)計總結(jié) 通過這次對基于 ds1302 的數(shù)字鐘設(shè)計的設(shè)計與制作過程,加強了我們 動手、思考和解決問題的能力。 在設(shè)計過程中我們先后利用 keil 軟件進行編程、proteus 進行仿真、 protel 進行原理圖及 pcb 圖的繪制,最后再利用學習板進行檢查看程序是否能 顯示其功能。在過程中讓我進一步深刻的學習各種軟件的利用以及各種軟件給 我們帶來的便利。特別是 proteus 在沒有實物的情況下進行仿真進行程序的檢 查看是否能現(xiàn)實功能。

36、該數(shù)字鐘通過單片機 at89c52 做 cpu 進行總的控制,基于時鐘芯片 ds1302 產(chǎn)生時間,利用 lcd1602 進行液晶顯示的一個簡易的數(shù)字鐘。lcd1602 能夠?qū)?22 年、月、日、周、日、時、分、秒 進行計時及顯示。通過設(shè)計后能夠熟練的 掌握時鐘芯片 ds1302、lcd1620、at89c52 的的各個引腳及功能,并能夠掌 握和運用這幾個芯片。 通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知 識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié) 論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。 在設(shè)計的過程中遇到問題,可以

37、說得是困難重重,難免會遇到過各種各樣的問 題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得 不夠深刻,掌握得不夠牢固。 這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多專業(yè)知識問題,最后 在老師的辛勤指導(dǎo)下,終于游逆而解。同時,在老師的身上我們學也到很多實 用的知識,在次我們表示感謝!同時,對給過我?guī)椭乃型瑢W和各位指導(dǎo)老 師再次表示忠心的感謝! 參考文獻參考文獻 1 張迎新 等編著 單片機初級教程單片機基礎(chǔ)(第二版) 北京航空航 天大學出版社 2006.8 2 閻石編著 數(shù)字電子技術(shù)基礎(chǔ) (第五版) 北京高等教育出版社 2006.1550 3 蔡明文 馮先成主編 單片機課

38、程設(shè)計 華中科技大學出版社 2007.3 4 陳明螢 編著 8051 單片機課程設(shè)計實訓教材 清華大學出版社 2004 5 康華光 編著 模擬電子技術(shù)基礎(chǔ)(第五版) 高等教育出版社 2006 6 黃智偉 編著 全國大學生電子設(shè)計競賽電路(第一版)航空航天大學出版 社 2006.36 23 附錄一附錄一 系統(tǒng)程序:系統(tǒng)程序: 由于本程序過長,只取一部分以供參考,以下為部分程序: ;=液晶屏通信引腳定義= rs bit p2.0 rw bit p2.1 e bit p2.2 db0_db7 equ p0 ;=ds1302 通信引腳定義= rst bit p2.5 sclk bit p2.3 io

39、bit p2.4 ;=定義數(shù)據(jù)存儲地址= ds1302_addr data 30h ;地址寄存器 ds1302_data data 31h ;數(shù)據(jù)寄存器 time_year data 32h ;年寄存器 time_mont data 33h ;月寄存器 time_day data 34h ;天寄存器 week_data data 35h ;星期寄存器 24 hour data 36h ;小時寄存器 mintue data 37h ;分鐘寄存器 second data 38h ;秒鐘寄存器 ;=顯示數(shù)據(jù)緩沖地址= year_hbuf data 40h year_lbuf data 41h mon

40、t_hbuf data 42h mont_lbuf data 43h day_hbuf data 44h day_lbuf data 45h week_hbuf data 46h week_lbuf data 47h hour_hbuf data 48h hour_lbuf data 49h mintue_hbuf data 4ah mintue_lbuf data 4bh second_hbuf data 4ch second_lbuf data 4dh ;=程序開始= org 00h ajmp start ;= org 0050h start: mov sp,#70h lcall init

41、ialze ;調(diào)用初始化液晶屏幕 lcall init_p ;調(diào)用初始畫面 25 mov a, #00000001b ;清液晶屏,寫成空白 lcall write_com ;=主程序= main: lcall rd_ds1302 lcall data_buf lcall display ajmp main ;=讀 1302 子程序= rd_ds1302: mov ds1302_addr,#8dh ;讀 ds1302 中的年 lcall read ;調(diào)用讀 ds1302 子程序 mov time_year, ds1302_data ;把讀出的年數(shù)據(jù)存入年寄存器中 mov ds1302_addr,

42、#8bh ;讀 ds1302 中的星期 lcall read mov week_data, ds1302_data ;把讀出的星期數(shù)據(jù)存入星期寄存 器中 mov ds1302_addr,#89h ;讀 ds1302 中的月 lcall read mov time_mont, ds1302_data ;把讀出的月數(shù)據(jù)存入月寄存器中 mov ds1302_addr,#87h ;讀 ds1302 中的天 lcall read mov time_day, ds1302_data ;把讀出的天數(shù)據(jù)存入天寄存器中 26 mov ds1302_addr,#85h ;讀 ds1302 中的小時 lcall r

43、ead mov hour, ds1302_data ;把讀出的天數(shù)據(jù)存入小時寄存器中 mov ds1302_addr,#83h ;讀 ds1302 中的分鐘 lcall read mov mintue, ds1302_data ;把讀出的天數(shù)據(jù)存入分鐘寄存器中 mov ds1302_addr,#81h ;讀 ds1302 中的秒鐘 lcall read mov second, ds1302_data ;把讀出的天數(shù)據(jù)存入秒鐘寄存器中 ret ;=數(shù)據(jù)分離后送顯示緩存= data_buf: mov r0,time_year ;年數(shù)據(jù)分離,送顯示緩存 lcall divide mov year_h

44、buf,r1 mov year_lbuf,r2 mov r0,time_mont ;月數(shù)據(jù)分離,送顯示緩存 lcall divide mov mont_hbuf,r1 mov mont_lbuf,r2 mov r0,time_day ;日數(shù)據(jù)分離,送顯示緩存 lcall divide 27 mov day_hbuf,r1 mov day_lbuf,r2 mov r0,week_data ;星期數(shù)據(jù)分離,送顯示緩存 lcall divide mov week_hbuf,r1 mov week_lbuf,r2 mov r0,hour ;小時數(shù)據(jù)分離,送顯示緩存 lcall divide mov h

45、our_hbuf,r1 mov hour_lbuf,r2 mov r0,mintue ;分鐘數(shù)據(jù)分離,送顯示緩存 lcall divide mov mintue_hbuf,r1 mov mintue_lbuf,r2 mov r0,second ;秒鐘數(shù)據(jù)分離,送顯示緩存 lcall divide mov second_hbuf,r1 mov second_lbuf,r2 ret ;=日歷顯示子程序= display: mov a,#10000001b ;設(shè)定年第 1 位的顯示地址為第 1 行,第 1 列 lcall write_com mov a, #32h ;數(shù)字 2 的 ascii 碼 2

46、8 lcall write_data mov a,#10000010b ;設(shè)定年第 2 位的顯示地址為第 1 行,第 2 列 lcall write_com mov a, #30h ;數(shù)字 0 的 ascii 碼 lcall write_data mov a,#10000011b ;設(shè)定年第 3 位的顯示地址為第 1 行,第 3 列 lcall write_com mov a, year_lbuf ;年的底位緩存數(shù)據(jù) add a,#30h ;加 30h 修正取 ascii 碼 lcall write_data mov a,#10000100b ;設(shè)定年第 4 位的顯示地址為第 1 行,第 4

47、列 lcall write_com mov a, year_hbuf ;年的高位緩存數(shù)據(jù) add a,#30h ;加 30h 修正取 ascii 碼 lcall write_data mov a,#10000101b ;設(shè)定斜線的顯示地址為第 1 行,第 5 列 lcall write_com mov a,#2fh ;斜線的 ascii 碼 lcall write_data mov a,#10000110b ;設(shè)定月第 1 位的顯示地址為第 1 行,第 6 列 lcall write_com mov a, mont_lbuf ;月的低位緩存數(shù)據(jù) add a,#30h ;加 30h 修正取 as

48、cii 碼 lcall write_data 29 mov a,#10000111b ;設(shè)定月第 2 位的顯示地址為第 1 行,第 7 列 lcall write_com mov a, mont_hbuf ;月的高位緩存數(shù)據(jù) add a,#30h ;加 30h 修正取 ascii 碼 lcall write_data mov a,#10001000b ;設(shè)定斜線的顯示地址為第 1 行,第 8 列 lcall write_com mov a,#2fh ;斜線的 ascii 碼 lcall write_data mov a,#10001001b ;設(shè)定天第 1 位的顯示地址為第 1 行,第 9 列

49、 lcall write_com mov a, day_lbuf ;天的低位緩存數(shù)據(jù) add a,#30h ;加 30h 修正取 ascii 碼 lcall write_data mov a,#10001010b ;設(shè)定天第 2 位的顯示地址為第 1 行,第 10 列 lcall write_com mov a, day_hbuf ;天的高位緩存數(shù)據(jù) add a,#30h ;加 30h 修正取 ascii 碼 lcall write_data mov a,#10001101b ;設(shè)定星期第 2 位的顯示地址為第 1 行,第 13 列 lcall write_com mov a, week_data ;星期的高位緩存數(shù)據(jù) subb a,#1 30 add a,#30h ;加 30h 修正取 ascii 碼 lcall write_data mov a,#11000000b ;

溫馨提示

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

評論

0/150

提交評論