版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、鶴壁職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計論文論文題目:電子時鐘學(xué) 院: 機電工程學(xué)院 專 業(yè):電氣自動化 班 級: 2009級01班 學(xué)生姓名: 賈貫可 學(xué) 號: 0902511005 指導(dǎo)教師: 司新生 2011年10月 18 日目 錄 摘要 .3緒論 .5第1章 設(shè)計要求與方案論證.71.1 引言.71.2 功能要求.71.3方案論證.7第2章
2、系統(tǒng)硬件電路設(shè)計 .112.1 電路設(shè)計.112.2 系統(tǒng)硬件概述.152.3主要單元電路的設(shè)計.15第3章 系統(tǒng)的軟件設(shè)計.223.1程序設(shè)計.223.2程序設(shè)計流程圖.22第4章 結(jié)束語.24附錄一(電路原理圖) . 附錄二(程序清單).27摘要隨著社會、科技的發(fā)展,人類得知時間,從觀太陽、擺鐘到現(xiàn)在電子鐘,不斷研究、創(chuàng)新。為了在觀測時間,能夠了解與人類密切相關(guān)的信息,比如星期、日期等,電子時鐘誕生了,它集時間、日期、星期等功能于一身,具有讀取方便、顯示直觀、功能多樣、電路簡潔等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。該電子時鐘主要采用STC89C52RC單片機作為主控核
3、心,由DS1302時鐘芯片提供時鐘、LED動態(tài)掃描顯示屏顯示。STC89C52RC單片機是由Atmel公司推出的,功耗小,電壓可選用46V電壓供電;DS1302時鐘芯片是美國DALLAS公司推出的具有涓細電流充電功能的低功耗實時時鐘芯片,它可以對年、月、日、星期、時、分、秒進行計時,還具有閏年補償?shù)榷喾N功能,而且DS1302的使用壽命長,誤差??;數(shù)字顯示是采用的LED顯示屏來顯示,可以同時顯示年、月、日、星期、時、分、秒和溫度等信息。此外,該電子時鐘還具有時間校準等功能。關(guān)鍵詞:時鐘電路; 時鐘芯片DS1302;LED動態(tài)掃描; 單片機STC89C52RC;緒論 隨著人們生活水平的提高和生活節(jié)
4、奏的加快,對時間的要求越來越高,精準數(shù)字計時的消費需求也是越來越多。二十一世紀的今天,最具代表性的計時產(chǎn)品就是電子時鐘,它是近代世界鐘表業(yè)界的第三次革命。第一次是擺和擺輪游絲的發(fā)明,相對穩(wěn)定的機械振蕩頻率源使鐘表的走時差從分級縮小到秒級,代表性的產(chǎn)品就是帶有擺或擺輪游絲的機械鐘或表。第二次革命是石英晶體振蕩器的應(yīng)用,發(fā)明了走時精度更高的石英電子鐘表,使鐘表的走時月差從分級縮小到秒級。第三次革命就是單片機數(shù)碼計時技術(shù)的應(yīng)用,使計時產(chǎn)品的走時日差從分級縮小到1/600萬秒,從原有傳統(tǒng)指針計時的方式發(fā)展為人們?nèi)粘8鼮槭煜さ囊构鈹?shù)字顯示方式,直觀明了,并增加了全自動日期、星期的顯示功能,它更符合消費者
5、的生活需求!因此,電子時鐘的出現(xiàn)帶來了鐘表計時業(yè)界跨躍性的進步我國生產(chǎn)的電子時鐘有很多種,總體上來說以研究多功能電子時鐘為主,使萬年歷除了原有的顯示時間,日期等基本功能外,還具有鬧鈴,報警等功能。商家生產(chǎn)的電子萬年歷更從質(zhì)量,價格,實用上考慮,不斷的改進電子時鐘的設(shè)計,使其更加的具有市場。本設(shè)計為軟件,硬件相結(jié)合的一組設(shè)計。在軟件設(shè)計過程中,應(yīng)對硬件部分有相關(guān)了解,這樣有助于對設(shè)計題目的更深了解,有助于軟件設(shè)計?;镜囊私庖恍┲饕骷幕竟δ芎妥饔?。除了采用集成化的時鐘芯片外,還有采用MCU的方案,利用STC89系列單片微機制成電子電路,采用軟件和硬件結(jié)合的方法,控制LED數(shù)碼管輸出,分別
6、用來顯示年、月、日、時、分、秒,其最大特點是:硬件電路簡單,安裝方便易于實現(xiàn),軟件設(shè)計獨特,可靠。STC89C52RC是由ATMEL公司推出的一種小型單片機。95年出現(xiàn)在中國市場。其主要特點為采用Flash存貯器技術(shù),降低了制造成本,其軟件、硬件與MCS-51完全兼容,可以很快被中國廣大用戶接受。 本文介紹了基于STC89C52RC單片機設(shè)計的電子時鐘。首先我們在緒論中簡單介紹了單片機的發(fā)展與其在中低端領(lǐng)域中的優(yōu)勢以及課題的開發(fā)意義;接著介紹了STC89C52RC單片機的硬件結(jié)構(gòu)和本畢業(yè)設(shè)計所要外擴的LED顯示及其驅(qū)動方法,并在此基礎(chǔ)上實現(xiàn)了時鐘基本電路的設(shè)計;然后使用單片機C語言進行時鐘程序
7、的設(shè)計,程序采用模塊化結(jié)構(gòu),使得邏輯關(guān)系簡單明了,維護方便。 第1章 設(shè)計要求與方案論證1.1 引言 本文提出了一種基于STC89C52RC單片機的時鐘設(shè)計方案,本方案以STC89C52RC單片機作為主控核心,與時鐘芯片DS1302、按鍵、LED顯示等模塊組成硬件系統(tǒng)。在硬件系統(tǒng)中設(shè)有獨立按鍵和LED顯示器,能顯示豐富的信息,根據(jù)使用者的需要可以隨時對時間進行校準、選擇時間等,綜上所述此電子時鐘具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。1.2功能要求本電子時鐘能動態(tài)顯示年、月、日、星期、小時、分鐘、秒1.3方案論證1.3.1
8、 技術(shù)可行性 隨著國內(nèi)超大規(guī)模集成電路的出現(xiàn),微處理器及其外圍芯片有了迅速的發(fā)展。集成技術(shù)的最新發(fā)展之一是將CPU和外圍芯片,如程序存儲器、數(shù)據(jù)存儲器、并行I/O口、串行I/O口、定時/計數(shù)器、中斷控制器及其他控制部件集成在一個芯片之中,制成單片計算機(Single-Chip Microcomputer)。而近年來推出的一些高檔單片機還包括有許多特殊功能單元,如A/D、D/A轉(zhuǎn)換器、調(diào)制解調(diào)器、通信控制器、鎖相環(huán)、DMA、浮點運算單元、PWM控制輸出單元、PWM輸出時的死區(qū)可編程控制功能等。因此,只要外加一些擴展電路及必要的通道接口就可以構(gòu)成各種計算機應(yīng)用系統(tǒng),如工業(yè)流水線控制系統(tǒng)、作為家用電
9、器的主控制器、分布式控制系統(tǒng)的終端節(jié)點或作為其主控制節(jié)點起中繼的作用、數(shù)據(jù)采集系統(tǒng)、自動測試系統(tǒng)等。單片機的出現(xiàn),并在各技術(shù)領(lǐng)域中得到如此迅猛的發(fā)展,與單片機構(gòu)成計算機應(yīng)用系統(tǒng)所形成的下述特點有關(guān): 1、單片機構(gòu)成的應(yīng)用系統(tǒng)有較大的可靠性。這些可靠性的獲得除了依靠單片機芯片本身的高可靠性以及應(yīng)用有最少的聯(lián)接外,還可以方便地采用軟、硬件技術(shù)。2、系統(tǒng)擴展、系統(tǒng)配置較典型、規(guī)范,容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng),應(yīng)用系統(tǒng)有較高的軟、硬件利用系數(shù)。 3、由于構(gòu)成的應(yīng)用系統(tǒng)是一個計算機系統(tǒng),相當(dāng)多的測、控功能由軟件實現(xiàn),故具有柔性特征,不須改變硬件系統(tǒng)就能適當(dāng)?shù)馗淖兿到y(tǒng)功能。4、有優(yōu)異的性能、價格比。1.3
10、.2 單片機的選擇方案一:采用傳統(tǒng)的STC89C52RC作為電機的控制核心。單片機算術(shù)運算功能強,軟件編程靈活、自由度大,可用軟件編程實現(xiàn)各種算法和邏輯控制,并且由于其功耗低、體積小、技術(shù)成熟和成本低等優(yōu)點,使其在各個領(lǐng)域應(yīng)用廣泛。方案二:采用FTC10F04單片機,還帶有非易失性Flash程序存儲器。它是一種高性能、低功耗的8位CMOS微處理芯片,市場應(yīng)用最多。其主要特點如下:8KB Flash ROM,可以擦除1000次以上,數(shù)據(jù)保存10年。由于本系統(tǒng)對CPU運算速度要求很高,需要執(zhí)行很復(fù)雜的運算,方案一成本比較低,適合做設(shè)計,方案二運算速度高,性能好,所以兩種方案都有可取之處。選用方案一
11、作為主方案,方案二作為備用方案。1.3.3 顯示模塊的選擇 方案一:使用液晶顯示屏顯示時間數(shù)字。 液晶顯示屏(LCD)具有輕薄短小、低耗電量、無輻射危險,平面直角顯示以及影象穩(wěn)定不閃爍等優(yōu)勢,可視面積大,畫面效果好,分辨率高,抗干擾能力強等特點。但由于液晶是以點陣的模式顯示各種符號,需要利用控制芯片創(chuàng)建字符庫,編程工作量大,控制器的資源占用較多,其成本也偏高。在使用時,不能有靜電干擾,否則易燒壞液晶的顯示芯片,不易維護。方案二:使用傳統(tǒng)的LED數(shù)碼管顯示。 數(shù)碼管具有:低能耗、低損耗、低壓、壽命長、耐老化、防曬、防潮、防火、防高(低)溫,對外界環(huán)境要求低,易于維護,同時其精度比較高,稱重輕,精
12、確可靠,操作簡單。數(shù)碼管采用BCD編碼顯示數(shù)字,程序編譯容易,資源占用較少。 根據(jù)以上的論述,采用方案二。在本系統(tǒng)中,我們采用了八段四位一體數(shù)碼管串口的動態(tài)顯示。1.3.4 鍵盤模塊的選擇在對日期和時間進行切換,對日期和時間進行調(diào)節(jié)校準過程中,系統(tǒng)需要產(chǎn)生激勵電流,因此需要用按鍵。 方案一:使用獨立式鍵盤。獨立式鍵盤是指直接用I/O口線構(gòu)成的單個按鍵電路。獨立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡單。 方案二:使用矩陣式鍵盤。矩陣式鍵盤是由行線和列線組成,按鍵位于行、列的交叉點上,行線、列線分別連接到按鍵開關(guān)的兩端。其特點是簡單且不增加成本,這種鍵盤適合按鍵數(shù)量較多的場合。 根據(jù)以上的論述,因本系統(tǒng)需
13、要的按鍵不多,日期加1鍵,月數(shù)加1鍵,年數(shù)加1鍵,分數(shù)加1鍵,時數(shù)加1鍵,時間/日期切換鍵,要求簡單。所以采用方案一獨立式鍵盤。1.3.5總體方案論證與選擇按照系統(tǒng)設(shè)計功能的要求,初步確定系統(tǒng)由主控模塊、時控模塊、及顯示模塊和鍵盤接口模塊共4個模塊組成。主控芯片使用51系列STC89C52RC單片機,時鐘芯片使用美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘DS1302。采用DS1302作為計時芯片,可以做到計時準確。更重要的是,DS1302可以在很小電流的后備電源(2.55.5V電源,再2.5V時耗電小于300nA),而且DS1302可以編程選擇多種充電電流來為后備電源進行
14、慢速充電,可以保證后備電源基本不耗電。顯示模塊采用普通的共陽極四位一體八段LED數(shù)碼管。第二章 系統(tǒng)硬件電路設(shè)計2.2系統(tǒng)硬件概述2.2.1 主控制器STC89C52RC STC89C52RC單片機是宏晶科技推出的新一代高速、低功耗、超強抗干擾的單片機,指令代碼完全兼容傳統(tǒng)8051單片機,12時鐘、機器周期和6時鐘、機器周期可以任意選擇。 主要特性如下: 增強型8051單片機,6時鐘、機器周期和12時鐘、機器周期可以任意選擇,指令代碼完全兼容傳統(tǒng)8051單片機。 工作電壓:5.5V3.3V 工作頻率范圍:044MHz。 用戶應(yīng)用程序空間為8K字節(jié) 片上集成512字節(jié)RAM 通用I/O口32個,
15、復(fù)位后為:P1/P2/P3/P4是準雙向口/弱上位,P0口是漏極開路輸出,作為總線擴展用時,不用加上拉電阻,作為I/O口用時,需加上拉電阻。 ISP(在系統(tǒng)可編程)/IAP(再應(yīng)用可編程),無需專用編程器,無需專用仿真器,可通過串口(RXD/P3.0,TXD/P3.1 )直接下載用戶程序,數(shù)秒即可完成一片。 具有EEPROM功能 具有看門狗功能 共3個16位定時器/計數(shù)器。及定時器T0、T1、T2 外部中斷4路,下降沿中斷或低電平觸發(fā)電路,Power Down模式可由外部中斷低電平觸發(fā)中斷方式喚醒 通用異步串行口(UART),還可用定時器實現(xiàn)多個UART 工作溫度范圍:-40+85度(工業(yè)級)
16、/075度(商業(yè)級) PDIP封裝2.2.2時鐘電路DS1302 DS1302的性能特性: 實時時鐘,可對秒、分、時、日、周、月以及帶閏年補償?shù)哪赀M行比較; 用于高速數(shù)據(jù)暫存的31*8位RAM; 最少引腳的串行I/O; 2.55.5V電壓工作范圍; 2.5V時耗小于300nA; 用于時鐘或RAM數(shù)據(jù)讀/寫的單字節(jié)或多字節(jié)(脈沖方式)數(shù)據(jù)傳送方式; 簡單的三線接口; 可選的慢速充電(至Vcc1)的能力。DS1302在任何數(shù)據(jù)傳送時必須先初始化,把RST腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)在SCLK的上升沿被訪問到。在開始8個時鐘周期,把命令字節(jié)裝入移位寄存器后,另外的時鐘周期
17、在讀操作時輸出數(shù)據(jù),在寫操作時寫入數(shù)據(jù)。時鐘脈沖的個數(shù)在單字節(jié)方式下為8+8,在多字節(jié)方式下為8+字節(jié)數(shù),最大可達248字節(jié)數(shù)。如果在傳送過程中置RST腳為低電平,則會終止本次數(shù)據(jù)傳送,并且I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc2.5V之前,RST腳必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。DS1302的控制字如表所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。位6如果為0,則表示存取日歷時鐘數(shù)據(jù);為1則表示存取RAM數(shù)據(jù)。位51(A4A0)指示操作單元的地址。最低有效位(位0)如果為0,則表示藥進行寫操作;為1表示進行
18、讀操作??刂谱止?jié)總是從最低位開始輸入/輸出。為了提高對32個地址尋址能力(地址/命令位15=邏輯1),可以把時鐘/日歷或RAM寄存器規(guī)定為多字節(jié)(burst)方式。位6規(guī)定時鐘或RAM,而位0規(guī)定讀或?qū)?。在時鐘/日歷寄存器中的地址931或RAM寄存器中的地址31不能存儲數(shù)據(jù)。在多字節(jié)方式下,讀或?qū)憦牡刂?的位0開始。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?個寄存器。但是,當(dāng)以多字節(jié)方式寫RAM時,為了傳送數(shù)據(jù)不必寫所有的31字節(jié),不管是否謝了全部31字節(jié),所寫的每一字節(jié)都將傳送至RAM。表2.1 DS1302控制字 DS1302共有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形
19、式。其日歷、時間寄存器及其控制字如上表所示,其中奇數(shù)為讀操作,偶數(shù)為寫操作。時鐘暫停:秒寄存器的位7定義位時鐘暫停位。當(dāng)它為1時,DS1302停止振蕩,進入低功耗的備份方式,通常在對DS1302進行寫操作時(如進入時鐘調(diào)整程序),停止振蕩。當(dāng)它為0時,時鐘將開始啟動。 AM-PM/12-24小時方式:小時寄存器的位7定義為12或24小時方式選擇位。它為高電平時,選擇12小時方式。在此方式下,位5為第二個10小時位(2023h)。 DS1302的晶振選用32768Hz,電容推薦值為6pF。因為振蕩頻率較低,也可以不接電容,對計時精度影響不大。2.3主要單元電路的設(shè)計2.3.1顯示電路顯示部分采用
20、普通的共陽數(shù)碼管顯示,采用動態(tài)掃描,以減少硬件電路。年月日、時分秒、報警共需要24位數(shù)碼顯示,用8位數(shù)碼管以按鍵切換的方式來顯示??紤]到一次掃描24位數(shù)碼管顯示時會出現(xiàn)閃爍情況,故采用動態(tài)掃描,可將數(shù)碼管數(shù)量減少至8位,顯示時采用串行口輸出段碼。 2.3.2鍵盤接口鍵盤在單片機系統(tǒng)中是一個很重要的部件。為了輸入數(shù)據(jù)、查詢和控制系統(tǒng)的工作狀態(tài),都要用到鍵盤,鍵盤是人工干預(yù)計算機的主要手段。鍵盤可分為編碼和非編碼鍵盤兩種。編碼鍵盤采用硬件線線路來實現(xiàn)鍵盤編碼,每按下一個鍵,鍵盤能自動生成按鍵代碼,鍵數(shù)較多,而且還具有去抖動功能。這種鍵盤使用方便,但硬件較復(fù)雜,PC機所用的鍵盤就屬于這種。非編碼鍵盤
21、僅提供按鍵開關(guān)工作狀態(tài),其他工作由軟件完成,這種鍵盤鍵數(shù)較少,硬件簡單,一般在單片機應(yīng)用系統(tǒng)中廣泛使用。此處主要介紹該類非編碼鍵盤及其與MCS51型單片機的接口。2.3.2.1按鍵開關(guān)去抖動問題按鍵開關(guān)在電路中的連接如圖所示。按鍵未按下時,A點電位為高電平5V;按鍵按下時,A點電位為低電平。A點電位就用于向CPU傳遞按鍵的開關(guān)狀態(tài)。但是由于按鍵的結(jié)構(gòu)為機械彈性開關(guān),在按鍵按下和斷開時,觸點在閉合和斷開瞬間還會接觸不穩(wěn)定,引起A點電平不穩(wěn)定,如圖2-11b所示,鍵盤的抖動時間一般為510ms,抖動現(xiàn)象會引起CPU對一次鍵操作進行多次處理,從而可能產(chǎn)生錯誤。因此必須設(shè)法消除抖動的不良后果。圖2.3
22、 鍵操作和鍵抖動消除抖動的不良后果的方法有硬、軟件兩種。為了節(jié)省硬件,通常在單片機系統(tǒng)中,一般不采用硬件方法消除鍵的抖動,而是用軟件消除抖動的方法。根據(jù)抖動特性,在第一次檢測到按鍵按下后,執(zhí)行一段延時510ms讓前延抖動消失后再一次檢測鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認真正有鍵按下。當(dāng)檢測到按鍵釋放后,也要給510ms的延時,待后延抖動消失后才轉(zhuǎn)入該鍵處理程序。2.3.2.2查詢式按鍵及其接口按照鍵盤與CPU的連接方式可以分為查詢按鍵和矩陣式鍵盤。查詢式按鍵是各按鍵相互獨立,每個按鍵占用一根I/O口線,每根I/O口線上的按鍵工作狀態(tài)不會影響其他I/O口線上按鍵的工作狀態(tài)。查詢式按鍵電路配
23、置靈活,軟件結(jié)構(gòu)簡單,但每個按鍵必須占用一根I/O口線,在按鍵數(shù)量較多時,I/O口線浪費較大,且電路結(jié)構(gòu)顯得繁雜。故這種形式適用于按鍵數(shù)量較少的場合。2.3.2.3矩陣式鍵盤及其接口矩陣式鍵盤又稱行列式鍵盤,有n個行線和m個列線,經(jīng)限流電阻接+5V電源上,按鍵跨接在行線和列線上,n×m行列結(jié)構(gòu)可構(gòu)成mn個按鍵,組成一個鍵盤。與獨立式按鍵相比,mn個按鍵只占用m+n根I/O口線,因此適用于按鍵較多的場合。當(dāng)無鍵閉合時,相應(yīng)的I/O之間開路。當(dāng)有鍵閉合時,與閉合鍵相連接的兩條I/O口線之間短路。判斷有無鍵按下的方法是:第一步,置列線相關(guān)I/O口為輸入態(tài),從行線相對應(yīng)的I/O口輸出低電平,
24、讀入列線數(shù)據(jù),若某一列線為低電平,則該列線上有鍵閉合。第二步,置行線相關(guān)I/O口輸出低電平,讀入列線數(shù)據(jù),若某一列線為低電平,則該列線上有鍵閉合。綜合一二兩步的結(jié)果,可確定按鍵編號。但是鍵閉合一次只能進行一次鍵功能操作,因此須等待近按鍵釋放后,再進行鍵功能操作,否則按一次鍵,有可能會連續(xù)多次進行同樣的鍵操作。2.3.2.4鍵盤掃描控制方式在單片機應(yīng)用系統(tǒng)中,對鍵盤的處理工作僅是CPU工作內(nèi)容的一部分,CPU還要進行數(shù)據(jù)處理、顯示和其他輸入輸出操作,因此鍵盤處理工作既不能占用CPU太多時間,又需要CPU對鍵盤操作及時作出響應(yīng)。CPU對鍵盤處理控制的工作方式有以下幾種:1. 程序控制掃描方式程序控
25、制掃描方式是在CPU工作空余,調(diào)用鍵盤掃描子程序,響應(yīng)鍵輸入信號要求。2. 定時控制掃描方式定時控制掃描方式是利用定時/計數(shù)器每隔一段時間產(chǎn)生定時中斷,CPU響應(yīng)中斷后對鍵盤進行掃描,并在有鍵閉合時轉(zhuǎn)入該鍵的功能子程序。3. 中斷控制掃描方式中斷控制掃描方式是利用外部中斷源,響應(yīng)輸入信號。當(dāng)無按鍵按下時,CPU執(zhí)行正常工作程序。當(dāng)有按鍵按下時,CPU立即產(chǎn)生中斷。在中斷服務(wù)子程序中掃描鍵盤,判斷是哪一個鍵被按下,然后執(zhí)行該鍵的功能子程序。這種控制方式克服了前兩種控制方式可能產(chǎn)生的空掃描和不能及時響應(yīng)鍵輸入的缺點,既能及時處理鍵輸入,又能提高CPU運行效率,但要占用一個寶貴的中斷資源。圖即工作于
26、中斷方式的矩陣式鍵盤接口電路。在初始化時P1.4P1.7置輸出0,P1.0P1.3置為輸入態(tài),P1.0P1.3分別接至與門各輸入端。當(dāng)有鍵閉合時=0,CPU中斷后,在中斷服務(wù)子程序中,再完成鍵識別和鍵功能處理。 圖2.4 工作于中斷方式的矩陣式鍵盤接口電路2.3.3時鐘電路2.3.3.1 DS1302工作方式簡介及數(shù)據(jù)操作原理DS1302可以對年、月、日、星期、時、分、秒進行計時, 且具有閏年補償功能, 工作電壓寬達2.55.5V。采用三線接口與CPU進行同步通信, 并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個33x8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1
27、302是的DS1202升級產(chǎn)品, 與DS1202兼容, 但增加了主電源/后背電源雙電源引腳, 同時提供了對后背電源進行涓細電流充電的能力。DS1302時鐘芯片包括實時時鐘/日歷和31字節(jié)的靜態(tài)RAM。它經(jīng)過一個簡單的串行接口與微處理器通信。實時時鐘/日歷提供秒、分、時、日、周、月和年等信息。對于小于31天的月和月末的日期自動進行調(diào)整,還包括閏年校正的功能。時鐘的運行可以采用24<小>時或帶AM/PM的12小時格式。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302有主電源/后備電源雙電源引腳:Vcc1在單電源與電池供電的系統(tǒng)中提供低
28、電源,并提供低功率的電磁備份;Vcc1在雙電池系統(tǒng)中提供主電源。在這種運行方式中,Vcc1里連接到后備電源,以便在沒有主電源的情況下能保存時間信息以及數(shù)據(jù)。DS1302由Vcc1或Vcc2中較打大者供電。當(dāng)Vcc2(Vcc1+0.2V)時,Vcc2給DS1302供電;當(dāng)Vcc2Vcc1時,DS1302由Vcc1供電。 圖2.5 DS1302DS1302在任何數(shù)據(jù)傳送時必須先初始化,把RST腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)在SCLK的上升沿被訪問到。在開始8個時鐘周期,把命令字節(jié)裝入移位寄存器后,另外的時鐘周期在讀操作時輸出數(shù)據(jù),在寫操作時寫入數(shù)據(jù)。時鐘脈沖的個數(shù)在單字節(jié)
29、方式下為8+8,在多字節(jié)方式下為8+字節(jié)數(shù),最大可達248字節(jié)數(shù)。如果在傳送過程中置RST腳為低電平,則會終止本次數(shù)據(jù)傳送,并且I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc2.5V之前,RST腳必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。DS1302的控制字如圖所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。位6如果為0,則表示存取日歷時鐘數(shù)據(jù);為1則表示存取RAM數(shù)據(jù)。位51(A4A0)指示操作單元的地址。最低有效位(位0)如果為0,則表示藥進行寫操作;為1表示進行讀操作。控制字節(jié)總是從最低位開始輸入/輸出。為了提高對32個地
30、址尋址能力(地址/命令位15=邏輯1),可以把時鐘/日歷或RAM寄存器規(guī)定為多字節(jié)(burst)方式。位6規(guī)定時鐘或RAM,而位0規(guī)定讀或?qū)?。在時鐘/日歷寄存器中的地址931或RAM寄存器中的地址31不能存儲數(shù)據(jù)。在多字節(jié)方式下,讀或?qū)憦牡刂?的位0開始。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?個寄存器。但是,當(dāng)以多字節(jié)方式寫RAM時,為了傳送數(shù)據(jù)不必寫所有的31字節(jié),不管是否謝了全部31字節(jié),所寫的每一字節(jié)都將傳送至RAM。DS1302共有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式。其日歷、時間寄存器及其控制字如下表所示,其中奇數(shù)為讀操作,偶數(shù)為寫操作。表2.3 DS1
31、302控制字 時鐘暫停:秒寄存器的位7定義位時鐘暫停位。當(dāng)它為1時,DS1302停止振蕩,進入低功耗的備份方式,通常在對DS1302進行寫操作時(如進入時鐘調(diào)整程序),停止振蕩。當(dāng)它為0時,時鐘將開始啟動。 AM-PM/12-24小時方式:小時寄存器的位7定義為12或24小時方式選擇位。它為高電平時,選擇12小時方式。在此方式下,位5為第二個10小時位(2023h)。 DS1302的晶振選用32768Hz,電容推薦值為6pF。因為振蕩頻率較低,也可以不接電容,對計時精度影響不大。第3章 系統(tǒng)的軟件設(shè)計(3.1 程序設(shè)計)電子時鐘的程序主要包括3個方面的內(nèi)容:一是DS1302從單片機中讀取數(shù)據(jù)進
32、行計數(shù),二是利用按鍵進行時間的調(diào)整,三是單片機中讀取DS1302中的數(shù)據(jù)驅(qū)動LED數(shù)碼管顯示時間。STC89C52RC單片機主要I/O口的分配:P10、P11、P12分別接時鐘芯片的SCLK、I/O、RST引腳,P13、P14、P15、P16接四個獨立按鍵。主程序流程圖時間調(diào)整程序流程圖第4章 結(jié)束語2010年3月,我開始了我的畢業(yè)論文工作,時至今日,論文基本完成。從最初的茫然,到慢慢的進入狀態(tài),再到對思路逐漸的清晰,整個寫作過程難以用語言來表達。歷經(jīng)了一個多月的奮戰(zhàn),緊張而又充實的畢業(yè)設(shè)計終于落下了帷幕?;叵脒@段日子的經(jīng)歷和感受,我感慨萬千,在這次畢業(yè)設(shè)計的過程中,我擁有了無數(shù)難忘的回憶和收
33、獲。當(dāng)我終于完成了所有打字、繪圖、排版、校對的任務(wù)后整個人都很累,但同時看著電腦熒屏上的畢業(yè)設(shè)計稿件我的心里是甜的,我覺得這一切都值了。這次畢業(yè)論文的制作過程是我的一次再學(xué)習(xí),再提高的過程。在論文中我充分地運用了大學(xué)期間所學(xué)到的知識。我不會忘記這難忘的幾個月的時間。畢業(yè)論文的制作給了我難忘的回憶。在我徜徉書海查找資料的日子里,面對無數(shù)書本的羅列,最難忘的是每次找到資料時的激動和興奮;親手用protel 99設(shè)計電路圖的時間里,記憶最深的是每一步小小思路實現(xiàn)時那幸福的心情;為了論文我曾趕稿到深夜,但看著親手打出的一字一句,心里滿滿的只有喜悅毫無疲憊。這段旅程看似荊棘密布,實則蘊藏著無盡的寶藏。我
34、從資料的收集中,掌握了很多單片機及其接口應(yīng)用的知識,讓我對我所學(xué)過的知識有所鞏固和提高,并且讓我對當(dāng)今單片機的最新發(fā)展技術(shù)有所了解。在整個過程中,我學(xué)到了新知識,增長了見識。在今后的日子里,我仍然要不斷地充實自己,爭取在所學(xué)領(lǐng)域有所作為。腳踏實地,認真嚴謹,實事求是的學(xué)習(xí)態(tài)度,不怕困難、堅持不懈、吃苦耐勞的精神是我在這次設(shè)計中最大的收益。我想這是一次意志的磨練,是對我實際能力的一次提升,也會對我未來的學(xué)習(xí)和工作有很大的幫助。在這次畢業(yè)設(shè)計中也使我們的同學(xué)關(guān)系更進一步了,同學(xué)之間互相幫助,有什么不懂的大家在一起商量,聽聽不同的看法對我們更好的理解知識,所以在這里非常感謝幫助我的同學(xué)。在此更要感謝
35、我的指導(dǎo)老師和專業(yè)老師,是你們的細心指導(dǎo)和關(guān)懷,使我能夠順利的完成畢業(yè)論文。在此我要向司老師致以最衷心的感謝和敬意。程序/main.c/#include<reg51.h>#define uint unsigned int#include"ds1302.h"#include"key.h"#include"bell.h"sbit k4=P13;char k=0;char shi,fen,miao,nian,yue,ri;char baojingshi=0x00,baojingfen=0x06,baojingmiao=0x00;
36、void sjdisplay();void rqdisplay();void baojingdisplay();void delay(uint ms);void display(char shu,char wei);char table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;void main() ds1302_write(0x80,0x55);ds1302_write(0x82,0x45);ds1302_write(0x84,0x00); ds1302_write(0x8
37、c,0x11);ds1302_write(0x88,0x10);ds1302_write(0x86,0x07); while(1) if(k4=0) delay(5); if(k4=0) while(k4=0); k+; if(k=3) k=0; if(k=0)sjdisplay(); if(k=1) rqdisplay(); if(k=2) baojingdisplay(); if(shi=baojingshi)&&(fen=baojingfen)&(miao=baojingmiao)didi(10);key();void sjdisplay() shi=ds1302
38、_read(0x85);/hourfen=ds1302_read(0x83);/minitesmiao=ds1302_read(0x81);/seconddisplay(shi>>4)&0x07,0);display(shi&0x0f,1);display(fen>>4)&0x07,3);display(fen&0x0f,4);display(miao>>4)&0x07,6);display(miao&0x0f,7);void rqdisplay() nian=ds1302_read(0x8d);/nian y
39、ue=ds1302_read(0x89);/yue ri=ds1302_read(0x87);/ri display(nian>>4)&0x07,0); display(nian&0x0f,1); display(yue>>4)&0x07,3); display(yue&0x0f,4); display(ri>>4)&0x07,6);/0000 0111 display(ri&0x0f,7);void baojingdisplay() display(baojingshi>>4)&0x07,
40、0); display(baojingshi&0x0f,1); display(baojingfen>>4)&0x07,3); display(baojingfen&0x0f,4); display(baojingmiao>>4)&0x07,6); display(baojingmiao&0x0f,7);void delay(uint ms)uint i,j;for(i=ms;i>0;i-)for(j=124;j>0;j-);void display(char shu,char wei)P0=tableshu;P2=(
41、1<<wei);delay(3);P2=0xff;/main.c/ / Ds1302.c/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit rst=P12;sbit dat=P11;sbit clk=P10;void ds1302_write(char comm,char dat1)char temp,t;rst=0;clk=0;rst=1;temp=comm;for(t=0;t<8;t+)if(temp&0x01)dat=1;else dat=0;clk=1
42、;temp=(temp>>1);clk=0;temp=dat1;for(t=0;t<8;t+)if(temp&0x01)=1)/0000 0001dat=1;else dat=0;clk=1;temp=temp>>1;clk=0;rst=0;uchar ds1302_read(char comm)char temp,t;rst=0;clk=0;rst=1;temp=comm;for(t=0;t<8;t+)if(temp&0x01)dat=1;else dat=0;clk=1;temp=temp>>1;clk=0;temp=0;/0
43、0000000 for(t=0;t<8;t+)temp=temp>>1;if(dat=1)temp=temp|0x80;else temp=temp&0x7f;clk=1;clk=0;rst=0;return temp;/Ds1302.c/Key.c/#include<reg51.h>#define char signed char#define uint unsigned intsbit mode=P14;sbit add=P15;sbit sub=P16;char mod=0;extern void delay(uint ms);extern char
44、 shi,fen,nian,yue,ri;extern char baojingshi,baojingfen;extern char ds1302_read(char);extern void ds1302_write(char,char);void key()shi=ds1302_read(0x85);fen=ds1302_read(0x83);if(mode=0)delay(5);if(mode=0)while(mode=0);mod+;if(mod=8)mod=0;if(add=0)delay(5);if(add=0)while(add=0);if(mod=1)shi=(shi>&
45、gt;4)&0x03)*10+(shi&0x0f)+1;if(shi=24)shi=0;ds1302_write(0x84,(shi/10)<<4)+(shi%10)&0x0f);/hourelse if(mod=2)fen=(fen>>4)&0x07)*10+(fen&0x0f)+1;if(fen=60)fen=0;ds1302_write(0x82,(fen/10)<<4)+(fen%10)&0x0f); else if(mod=3) nian=(nian>>4)&0x0f)*10+(n
46、ian&0x0f)+1;if(nian=99)nian=1;ds1302_write(0x8c,(nian/10)<<4)+(nian%10)&0x0f); else if(mod=4) yue=(yue>>4)&0x01)*10+(yue&0x0f)+1;if(yue=13)yue=1;ds1302_write(0x88,(yue/10)<<4)+(yue%10)&0x0f); else if(mod=5) if(yue=1)|(yue=3)|(yue=5)|(yue=7)|(yue=8)|(yue=10)|(yue
47、=12) ri=(ri>>4)&0x03)*10+(ri&0x0f)+1; if(ri>=32) ri=1; if(yue=4)|(yue=6)|(yue=9)|(yue=11) ri=(ri>>4)&0x03)*10+(ri&0x0f)+1; if(ri>=31) ri=1; if(yue=2) ri=(ri>>4)&0x03)*10+(ri&0x0f)+1; if(ri>=29) ri=1; ds1302_write(0x86,(ri/10)<<4)+(ri%10)&0
48、x0f); else if(mod=6) baojingshi=(baojingshi>>4)&0x01)*10+(baojingshi&0x0f)+1;if(baojingshi=24)baojingshi=0;ds1302_write(0x88,(baojingshi/10)<<4)+(baojingshi%10)&0x0f); else if(mod=7) baojingfen=(baojingfen>>4)&0x01)*10+(baojingfen&0x0f)+1;if(baojingfen=60)baojingfen=0;ds1302_write(0x88,(baojingfen/10)<<4)+(baojingfen%10)&0x0f); if(sub=0)delay(5
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度高空作業(yè)勞務(wù)及高空作業(yè)平臺租賃合同
- 2025年度汽車牌照借用與代駕服務(wù)綜合合同
- 二零二五年度裝卸工臨時用工安全風(fēng)險識別與控制合同
- 二零二五年度特色餐飲店鋪定金轉(zhuǎn)讓合同
- 2025年中國電動代步車行業(yè)市場發(fā)展監(jiān)測及投資潛力預(yù)測報告
- 昆蟲館行業(yè)市場發(fā)展現(xiàn)狀及前景趨勢與投資分析研究報告(2024-2029版)
- 2025年香盒項目投資可行性研究分析報告
- 2025年腳踏自行車項目評估報告
- 2025年粘膠亞麻混紡布項目投資可行性研究分析報告
- 2025年遠程工作協(xié)作平臺合同
- 污泥處置合作合同模板
- GB/T 4706.10-2024家用和類似用途電器的安全第10部分:按摩器具的特殊要求
- NB/T 11446-2023煤礦連采連充技術(shù)要求
- 2024年江蘇省蘇州市中考英語試題卷(含標準答案及解析)
- 全科醫(yī)學(xué)的基本原則和人文精神(人衛(wèi)第五版全科醫(yī)學(xué)概論)
- 船員健康知識課件
- 《揚州東關(guān)街掠影》課件
- 物流服務(wù)項目的投標書
- 地鐵車站低壓配電及照明系統(tǒng)
- 行業(yè)會計比較(第三版)PPT完整全套教學(xué)課件
- 值機業(yè)務(wù)與行李運輸實務(wù)(第3版)高職PPT完整全套教學(xué)課件
評論
0/150
提交評論