電子萬年歷電路系統(tǒng)_第1頁
電子萬年歷電路系統(tǒng)_第2頁
電子萬年歷電路系統(tǒng)_第3頁
電子萬年歷電路系統(tǒng)_第4頁
電子萬年歷電路系統(tǒng)_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、中文摘要隨著社會、科技的發(fā)展,人類得知時間,從觀太陽、擺鐘到現(xiàn)在電子鐘,不斷研究、創(chuàng)新。為了在觀測時間的同時,能夠了解其它與人類密切相關的信息,比如溫度、星期、日期等,電子萬年歷誕生了,它集時間、日期、星期和溫度功能于一身,具有讀取方便、顯示直觀、功能多樣、電路簡潔等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。該電子萬年歷主要采用at89c51單片機作為主控核心,由ds1302時鐘芯片提供時鐘、led動態(tài)掃描顯示屏顯示。at89c51單片機是由atmel公司推出的,功耗小,電壓可選用46v電壓供電;ds1302時鐘芯片是美國dallas公司推出的具有涓細電流充電功能的低功耗實時時

2、鐘芯片,它可以對年、月、日、星期、時、分、秒進行計時,還具有閏年補償等多種功能,而且ds1302的使用壽命長,誤差小;數字顯示是采用的led液晶顯示屏來顯示,可以同時顯示年、月、日、星期、時、分、秒和溫度等信息。此外,該電子萬年歷還具有時間校準等功能。關鍵詞:時鐘電路,時鐘芯片ds1302,led動態(tài)掃描,單片機at89c51abstractwith the society, science and technology, mankind learned that time, from the view of the sun, to the present electronic clock p

3、endulum clock, continuous research and innovation. observation time in the same time, be able to understand other human beings is closely related to information, such as temperature, week, date and so on, the birth of the electronic calendar, and it set the time, date, week and temperature-in-one, w

4、ith easy to read, intuitive display functional diversity, and many other advantages of simple circuit with the electronic instrumentation of the development trend of the market prospects are broad.the main use of the electronic calendar at89c51 single-chip microcomputer as the main core, provided by

5、 the ds1302 clock chip clock, ds18b20 the temperature chip acquisition transition temperature, led display shows the dynamic scan. at89c51 single-chip microcomputer is introduced by atmel corporation, a small power consumption, voltage can be selected 4 6v power supply voltage; ds1302 clock chip is

6、introduced dallas fine with trickle charge function of current low-power real-time clock chip, which can of the year, month, day, week, hour, minute, second for time, also has multiple functions, such as a leap year compensation, and long life of the ds1302, a small error; ds18b20 temperature chip i

7、s a digital temperature sensor with a measurement accuracy high, a simple circuit to connect the characteristics of such sensors only need a data cable for data transmission; digital led display is used to display lcd screen, can display year, month, day, week, hour, minute, second and temperature,

8、etc. information. in addition, the electronic calendar is also a time-calibration functions. keywords: clock circuit, clock chip ds1302, led dynamic scanning, single-chipat89c51目錄第1章 緒論1第2章 設計要求與方案論證22.1引言22.2功能要求22.3方案論證22.3.1 技術可行性22.3.2 單片機的選擇32.3.3 顯示模塊的選擇32.3.4 鍵盤模塊的選擇32.3.5總體方案論證與選擇4第3章 系統(tǒng)硬件電路

9、的設計53.1電路設計53.2系統(tǒng)硬件概述53.2.1主控制器at89c5153.2.2時鐘電路ds130263.2.3顯示驅動74ls16473.3主要單元電路的設計83.3.1顯示電路83.3.2查詢式按鍵及其接口93.3.3時鐘電路9第4章 系統(tǒng)的軟件設計114.1陽歷程序設計114.2時間調整程序設計114.3陰歷程序設計12第5章 調試及性能分析165.1調試步驟165.2性能分析16結束語17致謝18參考文獻19附錄: 程序清單20第1章 緒論隨著人們生活水平的提高和生活節(jié)奏的加快,對時間的要求越來越高,精準數字計時的消費需求也是越來越多。二十一世紀的今天,最具代表性的計時產品就是

10、電子萬年歷,它是近代世界鐘表業(yè)界的第三次革命。第一次是擺和擺輪游絲的發(fā)明,相對穩(wěn)定的機械振蕩頻率源使鐘表的走時差從分級縮小到秒級,代表性的產品就是帶有擺或擺輪游絲的機械鐘或表。第二次革命是石英晶體振蕩器的應用,發(fā)明了走時精度更高的石英電子鐘表,使鐘表的走時月差從分級縮小到秒級。第三次革命就是單片機數碼計時技術的應用(電子萬年歷),使計時產品的走時日差從分級縮小到1/600萬秒,從原有傳統(tǒng)指針計時的方式發(fā)展為人們日常更為熟悉的夜光數字顯示方式,直觀明了,并增加了全自動日期、星期、溫度以及其他日常附屬信息的顯示功能,它更符合消費者的生活需求!因此,電子萬年歷的出現(xiàn)帶來了鐘表計時業(yè)界跨躍性的進步我國

11、生產的電子萬年歷有很多種,總體上來說以研究多功能電子萬年歷為主,使萬年歷除了原有的顯示時間,日期等基本功能外,還具有鬧鈴,報警等功能。商家生產的電子萬年歷更從質量,價格,實用上考慮,不斷的改進電子萬年歷的設計,使其更加的具有市場。本設計為軟件,硬件相結合的一組設計。在軟件設計過程中,應對硬件部分有相關了解,這樣有助于對設計題目的更深了解,有助于軟件設計。基本的要了解一些主要器件的基本功能和作用。除了采用集成化的時鐘芯片外,還有采用mcu的方案,利用at89系列單片微機制成萬年歷電路,采用軟件和硬件結合的方法,控制led數碼管輸出,分別用來顯示年、月、日、時、分、秒,其最大特點是:硬件電路簡單,

12、安裝方便易于實現(xiàn),軟件設計獨特,可靠。at89c51是由atmel公司推出的一種小型單片機。95年出現(xiàn)在中國市場。其主要特點為采用flash存貯器技術,降低了制造成本,其軟件、硬件與mcs-51完全兼容,可以很快被中國廣大用戶接受。 本文介紹了基于at89c51單片機設計的電子萬年歷。 首先我們在緒論中簡單介紹了單片機的發(fā)展與其在中低端領域中的優(yōu)勢以及課題的開發(fā)意義;接著介紹了at89c51單片機的硬件結構和本畢業(yè)設計所要外擴的led顯示及其驅動方法,并在此基礎上實現(xiàn)了萬年歷基本電路的設計;然后使用單片機匯編語言進行萬年歷程序的設計,程序采用模塊化結構,使得邏輯關系簡單明了,維護方便。 第2章

13、 設計要求與方案論證2.1引言隨著電子技術的發(fā)展,人類不斷研究,不斷創(chuàng)新紀錄。萬年歷目前已經不再局限于以書本形式出現(xiàn)。以電腦軟件或者電子產品形式出現(xiàn)的萬年歷被稱為電子萬年歷。與傳統(tǒng)書本形式的萬年歷相比,電子萬年歷得到了越來越廣泛的應用,采用電子時鐘作為時間顯示已經成為一種時尚。目前市場上各式各樣的電子時鐘數不勝數,但多數是只針對時間顯示,功能單一不能滿足人們日常生活需求。 本文提出了一種基于at89c51單片機的萬年歷設計方案,本方案以at89c51單片機作為主控核心,與時鐘芯片ds1302、按鍵、led顯示等模塊組成硬件系統(tǒng)。在硬件系統(tǒng)中設有獨立按鍵和led顯示器,能顯示豐富的信息,根據使用

14、者的需要可以隨時對時間進行校準、選擇時間等,綜上所述此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。2.2功能要求本電子萬年歷能顯示陽歷年、月、日、星期、小時、分、秒和陰歷月、日,在顯示陰歷時間時能標明是否為閏月。此外我們還可以通過按鍵校整年月日及時間。2.3方案論證2.3.1 技術可行性 隨著國內超大規(guī)模集成電路的出現(xiàn),微處理器及其外圍芯片有了迅速的發(fā)展。集成技術的最新發(fā)展之一是將cpu和外圍芯片,如程序存儲器、數據存儲器、并行i/o口、串行i/o口、定時/計數器、中斷控制器及其他控制部件集成在一個芯片之中,制成單片計算

15、機(single-chip microcomputer)。而近年來推出的一些高檔單片機還包括有許多特殊功能單元,如a/d、d/a轉換器、調制解調器、通信控制器、鎖相環(huán)、dma、浮點運算單元、pwm控制輸出單元、pwm輸出時的死區(qū)可編程控制功能等。因此,只要外加一些擴展電路及必要的通道接口就可以構成各種計算機應用系統(tǒng),如工業(yè)流水線控制系統(tǒng)、作為家用電器的主控制器、分布式控制系統(tǒng)的終端節(jié)點或作為其主控制節(jié)點起中繼的作用、數據采集系統(tǒng)、自動測試系統(tǒng)等。單片機的出現(xiàn),并在各技術領域中得到如此迅猛的發(fā)展,與單片機構成計算機應用系統(tǒng)所形成的下述特點有關: 1、單片機構成的應用系統(tǒng)有較大的可靠性。這些可靠性

16、的獲得除了依靠單片機芯片本身的高可靠性以及應用有最少的聯(lián)接外,還可以方便地采用軟、硬件技術。2、系統(tǒng)擴展、系統(tǒng)配置較典型、規(guī)范,容易構成各種規(guī)模的應用系統(tǒng),應用系統(tǒng)有較高的軟、硬件利用系數。 3、由于構成的應用系統(tǒng)是一個計算機系統(tǒng),相當多的測、控功能由軟件實現(xiàn),故具有柔性特征,不須改變硬件系統(tǒng)就能適當地改變系統(tǒng)功能。4、有優(yōu)異的性能、價格比。2.3.2 單片機的選擇方案一:采用傳統(tǒng)的at89c51作為電機的控制核心。單片機算術運算功能強,軟件編程靈活、自由度大,可用軟件編程實現(xiàn)各種算法和邏輯控制,并且由于其功耗低、體積小、技術成熟和成本低等優(yōu)點,使其在各個領域應用廣泛。方案二:采用ftc10f

17、04單片機,還帶有非易失性flash程序存儲器。它是一種高性能、低功耗的8位cmos微處理芯片,市場應用最多。其主要特點如下:8kb flash rom,可以擦除1000次以上,數據保存10年。由于本系統(tǒng)對cpu運算速度要求很高,需要執(zhí)行很復雜的運算,方案一成本比較低,適合做設計,方案二運算速度高,性能好,所以兩種方案都有可取之處。選用方案一作為主方案,方案二作為備用方案。2.3.3 顯示模塊的選擇 方案一:使用液晶顯示屏顯示時間數字。 液晶顯示屏(lcd)具有輕薄短小、低耗電量、無輻射危險,平面直角顯示以及影象穩(wěn)定不閃爍等優(yōu)勢,可視面積大,畫面效果好,分辨率高,抗干擾能力強等特點。但由于液晶

18、是以點陣的模式顯示各種符號,需要利用控制芯片創(chuàng)建字符庫,編程工作量大,控制器的資源占用較多,其成本也偏高。在使用時,不能有靜電干擾,否則易燒壞液晶的顯示芯片,不易維護。方案二:使用傳統(tǒng)的led數碼管顯示。 數碼管具有:低能耗、低損耗、低壓、壽命長、耐老化、防曬、防潮、防火、防高(低)溫,對外界環(huán)境要求低,易于維護,同時其精度比較高,稱重輕,精確可靠,操作簡單。數碼管采用bcd編碼顯示數字,程序編譯容易,資源占用較少。根據以上的論述,采用方案二。在本系統(tǒng)中,我們采用了八段六位和八位一體數碼管串口的動態(tài)顯示,由于顯示位數較多,故應使用顯示驅動,在本設計中采用74ls164顯示驅動芯片。2.3.4

19、鍵盤模塊的選擇在對日期和時間進行控制,對日期和時間進行調節(jié)校準過程中,系統(tǒng)需要產生激勵電流,因此需要用按鍵。方案一:使用獨立式鍵盤。獨立式鍵盤是指直接用i/o口線構成的單個按鍵電路。獨立式按鍵電路配置靈活,軟件結構簡單。方案二:使用矩陣式鍵盤。矩陣式鍵盤是由行線和列線組成,按鍵位于行、列的交叉點上,行線、列線分別連接到按鍵開關的兩端。其特點是簡單且不增加成本,這種鍵盤適合按鍵數量較多的場合。根據以上的論述,因本系統(tǒng)需要的按鍵不多,控制鍵/右移鍵,左移鍵,加1鍵,減1鍵,要求簡單。所以采用方案一獨立式鍵盤。2.3.5總體方案論證與選擇(89c51)主控模塊按照系統(tǒng)設計功能的要求,初步確定系統(tǒng)由主

20、控模塊、時控模塊、顯示驅動及顯示模塊和按鍵接口模塊共4個模塊組成,電路系統(tǒng)構成框圖如圖所示。按鍵電路ds1320時鐘電路 顯示電路圖2-1電子萬年歷電路系統(tǒng)構成框圖主控芯片使用51系列at89c51單片機,時鐘芯片使用美國dallas公司推出的一種高性能、低功耗、帶ram的實時時鐘ds1302。采用ds1302作為計時芯片,可以做到計時準確。更重要的是,ds1302可以在很小電流的后備電源(2.55.5v電源,再2.5v時耗電小于300na),而且ds1302可以編程選擇多種充電電流來隊后備電源進圖行慢速充電,可以保證后備電源基本不耗電。顯示驅動采用74ls164,74ls164是一個串行輸入

21、并行輸出的移位寄存器,74ls164內部為8個d觸發(fā)器,用以實現(xiàn)數據的串行移位。74ls16 和微處理器只需三根導線連接,每位顯示數字有一個地址由微處理器寫入。允許使用者選擇每位是bcd 譯碼或不譯碼。使用者還可選擇停機模式、數字亮度控制、從18 選擇掃描位數和對所有l(wèi)ed 顯示器的測試模式。顯示模塊采用普通的共陽極六位和八位位一體八段led數碼管。第3章 系統(tǒng)硬件電路的設計3.1電路設計圖示為電子萬年歷電路設計原理圖,系統(tǒng)由主控制器at89c51、時鐘電路ds1302、串口顯示電路及按鍵電路組成。圖3-1 電子萬年歷設計原理圖3.2系統(tǒng)硬件概述3.2.1主控制器at89c51atmel公司生

22、產的at89c51單片機采用高性能的靜態(tài)80c51設計,并采用先進工藝制造,還帶有非易失性flash程序存儲器。它是一種高性能、低功耗的8位cmos微處理芯片,市場應用最多。其主要特點如下:8kb flash rom,可以擦除1000次以上,數據保存10年。 256字節(jié)內部ram; 電源控制模式; 時鐘可停止和恢復; 空閑模式; 掉電模式; 6個中斷源; 4個中斷優(yōu)先級; 4個8位i/o口; 全雙工增強型tuar; 3個16位定時/計數器:t0、t1(標準80c51)和增加的t2(捕獲和比較) 全靜態(tài)工作方式:024mhz3.2.2時鐘電路ds1302ds1302的性能特性: 實時時鐘,可對秒

23、、分、時、日、周、月以及帶閏年補償的年進行比較; 用于高速數據暫存的31*8位ram; 最少引腳的串行i/o; 2.55.5v電壓工作范圍; 2.5v時耗小于300na; 用于時鐘或ram數據讀/寫的單字節(jié)或多字節(jié)(脈沖方式)數據傳送方式; 簡單的三線接口; 可選的慢速充電(至vcc1)的能力。ds1302在任何數據傳送時必須先初始化,把rst腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數據在sclk的上升沿被訪問到。在開始8個時鐘周期,把命令字節(jié)裝入移位寄存器后,另外的時鐘周期在讀操作時輸出數據,在寫操作時寫入數據。時鐘脈沖的個數在單字節(jié)方式下為8+8,在多字節(jié)方式下為8+字節(jié)數,最

24、大可達248字節(jié)數。如果在傳送過程中置rst腳為低電平,則會終止本次數據傳送,并且i/o引腳變?yōu)楦咦钁B(tài)。上電運行時,在vcc2.5v之前,rst腳必須保持低電平。只有在sclk為低電平時,才能將rst置為高電平。ds1302的控制字如圖所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數據寫入到ds1302中。位6如果為0,則表示存取日歷時鐘數據;為1則表示存取ram數據。位51(a4a0)指示操作單元的地址。最低有效位(位0)如果為0,則表示藥進行寫操作;為1表示進行讀操作。控制字節(jié)總是從最低位開始輸入/輸出。表3-1 ds1302控制字表765432111ram/cka4

25、a3a2a1a0ram/k為了提高對32個地址尋址能力(地址/命令位15=邏輯1),可以把時鐘/日歷或ram寄存器規(guī)定為多字節(jié)(burst)方式。位6規(guī)定時鐘或ram,而位0規(guī)定讀或寫。在時鐘/日歷寄存器中的地址931或ram寄存器中的地址31不能存儲數據。在多字節(jié)方式下,讀或寫從地址0的位0開始。必須按數據傳送的次序寫最先的8個寄存器。但是,當以多字節(jié)方式寫ram時,為了傳送數據不必寫所有的31字節(jié),不管是否謝了全部31字節(jié),所寫的每一字節(jié)都將傳送至ram。ds1302共有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數據位為bcd碼形式。其日歷、時間寄存器及其控制字如下表所示,其中

26、奇數為讀操作,偶數為寫操作。表3-2 ds1302日歷、時間寄存器及其控制字表時鐘暫停:秒寄存器的位7定義位時鐘暫停位。當它為1時,ds1302停止振蕩,進入低功耗的備份方式,通常在對ds1302進行寫操作時(如進入時鐘調整程序),停止振蕩。當它為0時,時鐘將開始啟動。am-pm/12-24小時方式:小時寄存器的位7定義為12或24小時方式選擇位。它為高電平時,選擇12小時方式。在此方式下,位5為第二個10小時位(2023h)。ds1302的晶振選用32768hz,電容推薦值為6pf。因為振蕩頻率較低,也可以不接電容,對計時精度影響不大。3.2.3顯示驅動74ls16474ls164為8位移位

27、寄存器,74ls164是一個串行輸入并行輸出的移位寄存器,74ls164內部為8個d觸發(fā)器,用以實現(xiàn)數據的串行移位。其封裝圖如下所示,其中 q0q7 并行輸出端 。 a,b串行輸入端。 mr 清除端, 為0時,輸出清零。 cp 時鐘輸入端。 圖3-2 74ls164封裝圖 圖3-3 74ls164結構圖表3-3 74ls164特性表操作模式輸入輸出復位mrabq0q1q7移位lxxlq0q6hlllq0q6hlhlq0q6hhllq0q6hhhhq0q63.3主要單元電路的設計3.3.1顯示電路顯示部分采用普通的共陽數碼管顯示,采用動態(tài)掃描,以減少硬件電路。考慮到一次掃描19位數碼管顯示時會出

28、現(xiàn)閃爍情況,設計時19個數碼管分三排同時掃描。第一排6個數碼管分別為千年,百年,十年,年,十月,月,第二排七位數碼管分別為十日,日,星期,陰歷十月,陰歷月,陰歷十日,陰歷日。第三排6位數碼管分別為十時,時,十分,分,十秒,秒。顯示時采用串行口輸出段碼,用三片74ls164來驅動3排數碼管,這樣掃描一次只需7ms。74ls164內部為8個d觸發(fā)器,用以實現(xiàn)數據的串行移位。單片機以串行口方式0(移位寄存器方式)輸出數據,3片74ls164作為3排共陽數碼管的串/并轉換顯示接口。74ls164位ttl單向8位移位寄存器,可實現(xiàn)串行輸入,并行輸出。其中a、b(第1、2腳)為串行數據輸入端,2個引腳按邏

29、輯“與”運算規(guī)律輸入信號,共一個輸入信號時可并接,共同作為輸入腳。cp(第8腳)為時鐘端輸入,可連接到串行口的txd端。每一個時鐘信號的上升沿加到cpd端時,移位寄存器移一位。8個時鐘脈沖過后,8位二進制數全部移入74ls164中。mr腳(第9腳)為復位端,當該腳為低電平時,移位寄存器各位復0;只有當他為高電平時,時鐘脈沖才起作用。q1q8(第36和第1013引腳)并行輸出端分別接數碼管的ag(因為串行口從低位開始傳送)各段對應的引腳上。在給出的8個脈沖后,最先進入74ls164的第一個字節(jié)數據到達了最高位。再來1個脈沖,第1個脈沖就會從高位移出,進入下一個74ls164的地1位。3片74ls

30、164首尾相串,而時鐘端則連在一起。這樣當輸入8個脈沖時,從單片機rxd端輸出的第1字節(jié)數據就進入了第1片74ls164中,而當第2個8個脈沖到來后,第一字節(jié)數據就進入了第2片74ls164,而隨后的第2字節(jié)的數據則進入了第1片74ls164。這樣當第3個脈沖完成后,首次送出的數據被送到了最上面的74ls164(第3片)中,其他數據依次出現(xiàn)在第二和第一片74ls64中的串行輸入、并行輸出。在方式0狀態(tài)下,串行口為同步移位寄存器方式,其波特律是固定的,為fosc/12。數據由rxd(p3.0)端輸入或輸出,同步移位脈沖由txd(p3.1)端輸出。發(fā)送、接收數據時低位在先。所以,根據本小節(jié)下面提供

31、的硬件電路圖,在編寫程序時,查共陽數碼管的段碼的二進制數據應該將正常的共陽數碼管09的二進制值按位反序排列,如原來的二進制為11000000(c0h),要改為00000011(03h),就能使數碼管正常顯示。3.3.2查詢式按鍵及其接口按照鍵盤與cpu的連接方式可以分為查詢按鍵和矩陣式鍵盤。查詢式按鍵是各按鍵相互獨立,每個按鍵占用一根i/o口線,每根i/o口線上的按鍵工作狀態(tài)不會影響其他i/o口線上按鍵的工作狀態(tài)。查詢式按鍵電路配置靈活,軟件結構簡單,但每個按鍵必須占用一根i/o口線,在按鍵數量較多時,i/o口線浪費較大,且電路結構顯得繁雜。故這種形式適用于按鍵數量較少的場合。本設計提供了解4

32、個按鈕的小鍵盤,四個按鈕功能分別為:控制鍵/右移鍵,左移鍵,加1鍵,減1鍵,它們依次接p1.1,p1.2,p1.3,p1.4。如果在有鍵按下后,有一定的延時,防止鍵盤抖動。3.3.3時鐘電路ds1302 是美國dallas公司推出的一種高性能、低功耗、帶ram的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5v5.5v。采用三線接口與cpu進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或ram數據。ds1302內部有一個318的用于臨時性存放數據的ram寄存器。ds1302是ds1202的升級產品,與ds1202兼容,但增加了主電源/后背

33、電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。圖x示出ds1302的引腳排列,其中vcc1為后備電源,vcc2為主電源。在主電源關閉的情況下,也能保持時鐘的連續(xù)運行。ds1302由vcc1或vcc2兩者中的較大者供電。當vcc2大于vcc10.2v時,vcc2給ds1302供電。當vcc2小于vcc1時,ds1302由vcc1供電。x1和x2是振蕩源,外接32.768khz晶振。rst是復位/片選線,通過把rst輸入驅動置高電平來啟動所有的數據傳送。rst輸入有兩種功能:首先,rst接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,rst提供終止單字節(jié)或多字節(jié)數據的傳送手段。

34、當rst為高電平時,所有的數據傳送被初始化,允許對ds1302進行操作。如果在傳送過程中rst置為低電平,則會終止此次數據傳送,i/o引腳變?yōu)楦咦钁B(tài)。上電運行時,在vcc2.5v之前,rst必須保持低電平。只有在sclk為低電平時,才能將rst置為高電平。ds1302的引腳及內部結構圖如圖4所示,表1為各引腳的功能。 圖3-4 ds1302引腳排列圖 圖 3-5 ds1302引腳及內部結構圖表3-4 ds1302引腳功能表引腳號引腳名稱功 能1vcc2主電源2、3x1,x2震蕩源,外接32768khz晶振4gnd地線5rst復位/片選線6i/o串行數據輸入/輸出端(雙向)7sclk串行數據輸入

35、端8vcc1后備電源第4章 系統(tǒng)的軟件設計4.1陽歷程序設計因為使用了時鐘芯片ds1302,陽歷程序只需從ds1302各寄存器中讀出年、周、月、日、(?。r、分、秒等數據,再處理即可。在首次對ds1302進行操作之前,必須對它進行初始化,然后從ds1302中讀出數據,再經過處理后,送給顯示緩沖單元。陽歷程序流程圖見圖4-1所示。 開始初使化1302從1302開始震蕩從1302中讀出年、周、月、日、(?。r、分、秒讀出的數據都為bcd碼,將其高低位分離,送顯示緩沖單元圖4-1 陽歷程序流程圖4.2時間調整程序設計調整時間用4個調整按扭,2個作為移位、控制用,另外兩個作為加和減用,分別定義為控制按

36、扭、移位鈕、加按扭、減按扭。在調整時間的過程中,要調整的位與別的位應該有區(qū)別,所以增加了閃爍功能,即調整的位一直在閃爍,直到調整下一位。閃爍原理就是,讓要調整的一位每各一定時間熄滅一次,比如說50ms。利用定時器計時,當達到50ms益出時,就送給該位熄滅符,在下一次益出時,再送正常顯示的值,不斷交替,直到調整該位結束。此時送正常顯示值給該位,再進入下一位調整閃爍程序。時間調整程序程流程圖如圖7所示。控制鍵有效,進入年調整程序等待按鍵程序年加1減鍵有效加鍵有效月加1減鍵有效等待按鍵程序控制鍵有效,進入月調整程序月減1加鍵有效控制鍵有效,進入日調整程序控制鍵有效,進入星期調整程序等待按鍵程序年減1

37、等待按鍵程序加鍵有效加鍵有效減鍵有效減鍵有效日加1星期加1星期減1日減1控制鍵有效,進入分調整程序控制鍵有效,進入(小)時調整程序等待按鍵程序等待按鍵程序加鍵有效加鍵有效減鍵有效減鍵有效分加1(?。r加1分減1(小)時減1控制鍵有效,跳出時間調整程序,進入主循環(huán)程序圖4-2 時間調整程序流程圖4.3陰歷程序設計陰歷程序的實現(xiàn)是要靠陽歷日期來推算的。要根據陽歷來推算陰歷日期,首先要設計算法。推算方法是,根據陽歷當前日期在一年中的天數來計算陰歷日期。陽歷一個月不是30天就是31天(2月除外,閏年2月為29天)。陰歷一年有12個月或13個月(含閏月),一個月為30天或29天。如果把一個只有29天的月

38、稱為小月,用1為標志,把30天的月稱為大月,用0為標志,那么12位二進制就能表示一年12個月的大小。如果有閏月,則把閏月的月份作為一個字節(jié)的高四位,低四位表示閏月大小,大月為0,小月為1,這樣一個字節(jié)就包含了所有的閏月的信息。陰歷春節(jié)和陽歷元旦相差的天數也用一個字節(jié)表示??偣灿?個字節(jié)就可以存儲一年中任何一天陰歷和陽歷的對應關系的有關數據,例如2004年的陰歷和陽歷對應關系如表4所列。表4-1 2004年的陰歷和陽歷對應關系表月份123456789101112閏2月大小小大大大小大小大小大小大小天數29303030293029302930293029二進制1000101010101十六進制42

39、5212004年的春天和元旦差21天,這樣2004年的信息表為:21,42h,52h,21h。其中表示12個月大小信息的字節(jié),第四位和第七位不同。第一個字節(jié)為十進制,其他的都為十六進制。按此方法,50年的陽歷和陰歷對應關系表總共使用200字節(jié)。20002050年的關系表:35,15h,51h,00h(2000) 23,11h,52h,41h(2001) 42,12h,65h,00h(2002)31,11h,32h,00h(2003) 21,42h,52h,21h(2004) 39,52h,25h,00h(2005)28,25h,04h,71h(2006) 48,66h,42h,00h(2007

40、) 37,33h,22h,00h(2008)25,15h,24h,51h(2009) 44,05h,52h,00h(2010) 33 ,22h, 65h, 00h (2011)22, 21h, 25h,41h(2012) 40,24h,52h,00h(2013) 30 ,52h, 42h, 91h (2014)49, 55h, 05h,00h(2015) 38,26h,44h,00h(2016) 27 ,53h, 50h, 60h (2017)46, 53h, 24h,00h(2018) 35,25h,54h,00h(2019) 24 ,41h, 52h, 41h (2020)42, 45h,

41、 25h,00h(2021) 31,24h,52h,00h(2022) 21 ,51h, 12h, 21h (2023)40, 55h, 11h,00h(2024) 28,26h,21h,61h(2025) 47 ,26h, 61h, 00h (2026)36, 13h, 31h,00h(2027) 25,05h,31h,51h(2028) 43 ,12h, 54h, 00h (2029)33, 51h, 25h,00h(2030) 22,42h,25h,31h(2031) 41 ,32h, 22h, 00h (2032)30, 55h, 02h,71h(2033) 49,55h,22h,00

42、h(2034) 38 ,26h, 62h, 00h (2035)27, 13h, 64h,60h(2036) 45,13h,32h,00h(2037) 34 ,12h, 55h, 00h (2038)23, 10h, 53h,51h(2039) 42,22h,45h,00h(2040) 31 ,52h, 22h, 00h (2041)21, 52h, 44h,21h(2042) 40,55h,44h,00h(2043) 29 ,26h, 50h, 71h (2044)47, 26h, 64h,00h(2045) 36,25h,32h,00h(2046) 25 ,23h, 32h, 50h (2

43、047)44, 44h, 55h,00h(2048) 32,24h 45h,00h(2049) 22 ,55h, 11h, 30h (2050)有了算法和數據以后,就可設計軟件了。首先要根據當前的日期,算出陽歷為該年中的第幾天。圖8為計算陽歷中任何一天在該年中為第幾天的程序流程圖。總天數中加入該月天數當前月為1月?當前號數是總天數月數加1總天數中加入號數計算陰歷天數結束,總天數的數據為當前日期在陰歷年中第幾天與前月同?置陽歷總天數為0nn y y 圖 4-3 計算陽歷天數程序流程圖計算出當前陽歷日期為該年中的第幾天后,再減去陽歷該年春節(jié)和元旦的日差,如果夠減,則相減的結果就是陰歷在該年中的總第

44、幾天了。根據該數據就可以推算出具體的當前陰歷日期;如果不夠減,則表示當前陰歷年為陽歷年的前一年。這種情況下,根據實際,當前陰歷日期會處于陰歷11月或12月,此時春節(jié)和元旦的日差減去前面計算出的當前陽歷日期在陽歷年為第幾天的數據,其結果表示當前陰歷日期離春節(jié)的天數。計算出的陽歷天數為該年的第幾天,存放在及存器r2和r3中。計算出天數后,如果大于#ffh存放在r2中,余值存放在r3中。也就是說在用寄存器r2和r3表示的天數信息中,r2充當主寄存器,數據先存滿r2,再存r3.在整個裝換程序中,這里面的數據不能被覆蓋。計算出陽歷總天數后,就可以根據它來推算陰歷日期。推算方法是,先用總天數減去春節(jié)和元旦

45、的日差,如果結果為1,則該天正好是春節(jié)(因為春節(jié)在元旦之后,在計算春節(jié)和元旦的日差時,假設元旦為0天,春節(jié)為n天,則日差為n。而前面計算的陽歷總天數是該天在該年中的第幾天,是以元旦為1而得到的,與計算春節(jié)和元旦日差的這種方法相比,其數值少了1,所以要在原來本應該以0作為天就是春節(jié)的依據的基礎上加1,所以以1作為該天是春節(jié)的標志);如果結果小于1,則陰歷應該是陽歷的前一年;如果結果大于1,說明陽歷和陰歷為同一年。再根據查表所得的該年的陰歷的閏年和大小月的信息,就可以推算出該天的陰歷日期了。圖9為由總天數推算出陰歷的程序流程圖。r2減一個月天數月加1r2=r2+r3r3=0減去閏年天數程序入口月份

46、為當年前正在減的月份,號數為r2中的值月份為當年前正在減的月份的前一個月的最后一天r2=0?下個月為閏月?夠減?r3=0?yyyynnnn圖 4-4 推算陰歷日期的程序流程圖第5章 調試及性能分析5.1調試步驟 調試分為硬件調試和軟件調試。硬件調試主要是檢測硬件電路是否有短路、斷路、虛焊等。ds1302的硬件電路很簡單,只通過3根線于單片機相連,很容易檢測,主要是檢查其引腳,如晶振和電源等是否接好。另外可以通過軟件來調試硬件,如為了測試顯示電路連接是否正確,可以編寫一個簡單的顯示程序來測量它。接下來可進行軟件調試,可以編寫只含ds1302的計時和讀寫程序、顯示程序,測試ds1302是否正常工作

47、。最后調試時間,調整程序和陰歷推算程序。 5.2性能分析計時器最關鍵的是計時的精度。電子萬年歷中ds1302上最好使用專用的晶振。經測試制作的電子萬年歷,一星期快了3秒左右,誤差較大,試驗設計中可換用標準晶振或用軟件進行修正。 結束語拿到我的畢業(yè)設計題目時,很熟悉,很貼近生活電子萬年歷。說的一點都不夸張,我們現(xiàn)在已經基本離不開電子時鐘了??墒窃绞鞘煜さ臇|西越是容易被忽略,所以我對電子時鐘的認識也是了了啊,比如硬件設置,軟件設計,具體的實施方法等。所以我們一遍一遍的去找陳老師,他也很有耐心的講解,給我們正確的引導思路,在設計過程中應注意的事項,在此向陳老師致謝。有了思路后,就是根據題目的要求,設

48、計系統(tǒng)的幾個重要模塊,也就是整體的骨架有了,包括主控電路,時鐘電路,顯示電路等,要顯示19位,又要節(jié)省硬件設備,所以要用到驅動電路。然后就是查閱相關的書籍,面對著書的海洋,真有點手足無措,還好有老師的指導,同學的幫忙。當然在科技如此發(fā)達的今天,網絡已經成了我們獲取信息的一種重要手段。經過了幾個星期的查找,基本的資料準備的差不多了,然后就是把它們進行比較。對比硬件的性能和實用性并進行篩選。最后確定驅動電路選擇74ls164,主控電路用at89c51等。到目前為止,準備工作已基本完成,我們就開始著手把這些零碎的東西進行整合,開始論文的寫作。期間又遇到很多的困難,很著急,有時問同學,有時不得不把已經

49、的忘掉的東西再重新拾起,解決問題的過程就是學習的過程,一次全面鞏固的過程,就這樣一直到最后。到目前為止論文已經完成。這次設計過程中,讓我進一步的體驗到團隊力量的重要,刻苦專研的美麗與快樂。我也很感謝我的伙伴,他的吃苦耐勞的精神值得我學習。結語很簡單,可是過程不簡單。也忠心的希望自己能在將來的學習工作中逐漸磨礪出堅忍不拔的性格。最后要感謝我的指導老師,您的細心指導使我很快進入主題,并順利的完成畢業(yè)論文。致謝本論文是在我的導師陳老師悉心的指導下完成,在整個設計的階段,陳老師除了給我提出方案外,也留給我主動解決問題的空間,使我在整個過程中很好的鍛煉了主動分析和解決問題的能力。畢業(yè)設計本身就是將理論和

50、實際工作結合起來的演習,是陳老師的指導和幫助教會了我獨立思考,主動分析和解決問題,為我今后走出校門和邁向工作崗位奠定了堅定地基礎,在此對導師表示衷心感謝和敬意。同時還要感謝和我一起學習的組員們,他們在我設計期間給予我很多幫助。沒有大家?guī)椭覍o法順利完成設計,再次致以衷心的感謝。參考文獻1 王新穎. 單片機原理及應用. 北京:北京大學出版社,20082 陳忠平. 單片機基礎與最小系統(tǒng)實踐. 北京:北京航空航天大學出版社,20063 竇振中. 單片機外圍器件實用手冊存儲器分冊. 北京:北京航空航天大學出版社,20054 沈慶陽,郭庭吉. 8051單片機實踐與應用. 北京:清華大學出版社,200

51、35 侯玉寶,李成群. 基于proteus的51系列單片機設計與仿真. 北京: 電子工業(yè)出版社,20086 何立民.單片機應用技術選編. 北京:北京航空航天出版社,20067 楊振江,杜鐵軍. 流行單片機實用子程序及應用實例.西安:西安電子科技大學出版社,20078 于復生,宋現(xiàn)春. 時鐘芯片ds1302及其在數據記錄中的應用. 北京:北京航空航天大學出版社,2006 9 王明順.可涓流充電的串行實時時鐘芯片ds1302及應用設計.西安:電子技術應用,200910 劉和平.單片機原理及接口程序設計. 北京: 北京航天航空大學出版社,2008 11 李學海.pic單片機使用教程-提高篇 . 北京

52、:北京航天航空大學出版社,2009 12 耿長青.單片機應用技術 . 北京: 化工出版社,2008附錄1: 程序清單;*;* 萬年歷程序 *;*;67h(高兩位年)66h(低兩位年)65h(月)64h(星期);63h(日)62h(小時)61h(分)60h(秒)57h(農歷月)56h(農日);顯示緩沖單元7ch7bh(4ch4bh)年低位,7ah79h(4ah49h)月,;78h(48h)星期,77h76h(47h46h)日,75h74h(45h44h)時,;73h72h(43h42h)分,71h70h(41h40h)秒,5eh5dh(55h54h)農歷年;5ch5bh(53h52h)農歷月,5

53、ah59h(51h50h)農歷日;閏年標志為f0,定時器t1為調整時候閃爍用; lcall getweek; mov 78h,weeksclk bit p3.2io bit p3.3rst bit p3.4time_year data 66htime_month data 65hweek data 64htime_day data 63hhour data 62hmintue data 61hsecond data 60hds1302_addr data 32hds1302_data data 31hstart_year equ 01; 定義查詢表起始年份 ,01-199 表示 1901-2099

溫馨提示

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

評論

0/150

提交評論