基于51系列的單片機(jī)的實(shí)時(shí)日歷和時(shí)鐘顯示設(shè)計(jì)word格式_第1頁(yè)
基于51系列的單片機(jī)的實(shí)時(shí)日歷和時(shí)鐘顯示設(shè)計(jì)word格式_第2頁(yè)
基于51系列的單片機(jī)的實(shí)時(shí)日歷和時(shí)鐘顯示設(shè)計(jì)word格式_第3頁(yè)
基于51系列的單片機(jī)的實(shí)時(shí)日歷和時(shí)鐘顯示設(shè)計(jì)word格式_第4頁(yè)
基于51系列的單片機(jī)的實(shí)時(shí)日歷和時(shí)鐘顯示設(shè)計(jì)word格式_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 摘要本設(shè)計(jì)是基于51系列的單片機(jī)進(jìn)行的實(shí)時(shí)日歷和時(shí)鐘顯示設(shè)計(jì),可以顯示年月日時(shí)分秒及周信息,具有可調(diào)整日期和時(shí)間功能。在設(shè)計(jì)的同時(shí)對(duì)單片機(jī)的理論基礎(chǔ)和外圍擴(kuò)展知識(shí)進(jìn)行了比較全面準(zhǔn)備。實(shí)時(shí)日歷和時(shí)鐘顯示的設(shè)計(jì)過(guò)程在硬件與軟件方面進(jìn)行同步設(shè)計(jì)。硬件部分主要由at89s52單片機(jī),led顯示電路,以及調(diào)時(shí)按鍵電路等組成,系統(tǒng)通過(guò)led顯示數(shù)據(jù),所以具有人性化的操作和直觀的顯示效果。軟件方面主要包括時(shí)鐘程序、鍵盤(pán)程序,顯示程序等。本系統(tǒng)以單片機(jī)的匯編語(yǔ)言進(jìn)行軟件設(shè)計(jì),為了便于擴(kuò)展和更改,軟件的設(shè)計(jì)采用模塊化結(jié)構(gòu),使程序設(shè)計(jì)的邏輯關(guān)系更加簡(jiǎn)潔明了,以便更簡(jiǎn)單地實(shí)現(xiàn)調(diào)整時(shí)間及日期顯示功能。所有程序編寫(xiě)完

2、成后,在wave軟件中進(jìn)行調(diào)試,確定沒(méi)有問(wèn)題后,在proteus軟件中嵌入單片機(jī)內(nèi)進(jìn)行仿真。關(guān)鍵詞:at89s52; ds1302; led1概述在日新月異的21世紀(jì)里,家用電子產(chǎn)品得到了迅速發(fā)展。許多家電設(shè)備都趨于人性化、智能化,這些電器設(shè)備大部分都含有cpu控制器或者是單片機(jī)。單片機(jī)以其高可靠性、高性價(jià)比、低電壓、低功耗等一系列優(yōu)點(diǎn),近幾年得到迅猛發(fā)展和大范圍推廣,廣泛應(yīng)用于工業(yè)控制系統(tǒng)、通訊設(shè)備、日常消費(fèi)類(lèi)產(chǎn)品和玩具等。并且已經(jīng)深入到工業(yè)生產(chǎn)的各個(gè)環(huán)節(jié)以及人民生活的各個(gè)方面,如車(chē)間流水線控制、自動(dòng)化系統(tǒng)等、智能型家用電器(冰箱、空調(diào)、彩電)等。用單片機(jī)來(lái)控制的小型家電產(chǎn)品具有便攜實(shí)用,操

3、作簡(jiǎn)單的特點(diǎn)。時(shí)鐘,自從它發(fā)明的那天起,就成為人類(lèi)的朋友,但隨著時(shí)間的推移,科學(xué)技術(shù)的不斷發(fā)展,人們對(duì)時(shí)間計(jì)量的精度要求越來(lái)越高,應(yīng)用越來(lái)越廣。怎樣讓時(shí)鐘更好的為人民服務(wù),怎樣讓我們的老朋友煥發(fā)青春呢?這就要求人們不斷設(shè)計(jì)出新型時(shí)鐘。現(xiàn)今,高精度的計(jì)時(shí)工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘,石英表,石英鐘都采用了石英技術(shù),因此走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),用led顯示器代替顯示器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差,這種表具有時(shí),分,秒顯示時(shí)間的功能,還可以進(jìn)行時(shí)和分的校對(duì),片選的靈活性好。時(shí)鐘電路在計(jì)算機(jī)系統(tǒng)中起著

4、非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。在一個(gè)單片機(jī)應(yīng)用系統(tǒng)中,時(shí)鐘有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準(zhǔn)振蕩定時(shí)信號(hào),主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機(jī)系統(tǒng)工作的快慢;二是指系統(tǒng)的標(biāo)準(zhǔn)定時(shí)時(shí)鐘,即定時(shí)時(shí)間,它通常有兩種實(shí)現(xiàn)方法:一是用軟件實(shí)現(xiàn),即用單片機(jī)內(nèi)部的可編程定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn),但誤差很大,主要用在對(duì)時(shí)間精度要求不高的場(chǎng)合;二是用專門(mén)的時(shí)鐘芯片實(shí)現(xiàn),在對(duì)時(shí)間精度要求很高的情況下,通常采用這種方法,典型的時(shí)鐘芯片有:ds1302,ds12887,x1203等都可以滿足高精度的要求。本文設(shè)計(jì)的日歷和時(shí)鐘的顯示廣泛用于小型智能家用電子產(chǎn)品,如電子鐘。利用單片機(jī)進(jìn)行

5、控制,實(shí)時(shí)時(shí)鐘芯片ds1302進(jìn)行記時(shí),外加掉電存儲(chǔ)電路和顯示電路,可實(shí)現(xiàn)時(shí)間的調(diào)整和顯示。電子鐘既可廣泛應(yīng)用于家庭,也可應(yīng)用于銀行、郵電、賓館、醫(yī)院、學(xué)校、企業(yè)、商店等相關(guān)行業(yè)的大廳,以及單位會(huì)議室、門(mén)衛(wèi)等場(chǎng)所。因而,此設(shè)計(jì)具有相當(dāng)重要的現(xiàn)實(shí)意義和實(shí)用價(jià)值。2設(shè)計(jì)方案論證2.1功能要求1、能顯示年、月、日、時(shí)、分、秒、星期2、能對(duì)時(shí)間進(jìn)行手動(dòng)修正3、采用24小時(shí)制4、使用led顯示時(shí)間參數(shù)5、上電后,電子鐘顯示“2010年 1月 1日” “1時(shí) 1分 1秒 星期1”對(duì)時(shí),分,秒,日,月,年高位為0時(shí)做消隱處理,只顯示單個(gè)數(shù)字以增強(qiáng)其可讀性。2.2方案確定2.2.1單片機(jī)芯片的選擇方案和論證方

6、案一: 采用89c51芯片作為硬件核心,采用flash rom,內(nèi)部具有4kb rom 存儲(chǔ)空間,能于3v的超低壓工作,而且與mcs-51系列單片機(jī)完全兼容,但是運(yùn)用于電路設(shè)計(jì)中時(shí)由于不具備isp在線編程技術(shù), 當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),對(duì)芯片的多次拔插會(huì)對(duì)芯片造成一定的損壞。方案二:采用at89s52,片內(nèi)rom全都采用flash rom;能以3v的超底壓工作;同時(shí)也與mcs-51系列單片機(jī)完全該芯片內(nèi)部存儲(chǔ)器為8kb rom 存儲(chǔ)空間,同樣具有89c51的功能,且具有在線編程可擦除技術(shù),當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉?/p>

7、能需要燒入程序時(shí),不需要對(duì)芯片多次拔插,所以不會(huì)對(duì)芯片造成損壞。所以選擇采用at89s52作為主控制系統(tǒng).2.2.2顯示模塊選擇方案和論證方案一:采用led液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字,圖形,顯示多樣,清晰可見(jiàn),但是價(jià)格昂貴,需要的接口線多,所以在此設(shè)計(jì)中不采用led液晶顯示屏。方案二:采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對(duì)于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費(fèi),且價(jià)格也相對(duì)較高,所以也不用此種作為顯示。方案三:采用led數(shù)碼管動(dòng)態(tài)掃描,led數(shù)碼管價(jià)格適中,對(duì)于顯示數(shù)字最合適,而且采用動(dòng)態(tài)掃描法與單片機(jī)連接時(shí),占用的單片機(jī)口線少。所

8、以采用了led數(shù)碼管作為顯示。2.2.3時(shí)鐘芯片的選擇方案和論證方案一:直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號(hào),使用程序?qū)崿F(xiàn)年、月、日、星期、時(shí)、分、秒計(jì)數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實(shí)現(xiàn)的時(shí)間誤差較大。所以不采用此方案。方案二:采用ds1302時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘,ds1302芯片是一種高性能的時(shí)鐘芯片,可自動(dòng)對(duì)秒、分、時(shí)、日、周、月、年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),而且精度高,位的ram做為數(shù)據(jù)暫存區(qū),工作電壓2.5v5.5v范圍內(nèi),2.5v時(shí)耗電小于300na.2.2.4電路設(shè)計(jì)最終方案確定綜上各方案所述,對(duì)此次作品的方案選定: 以單片機(jī)at89s52為主控制器,時(shí)間數(shù)據(jù)是通過(guò)

9、時(shí)鐘芯片ds1302來(lái)讀取,并通過(guò)led數(shù)碼管顯示出來(lái),并用鍵盤(pán)來(lái)完成對(duì)當(dāng)前時(shí)間的調(diào)整。3主控制器和外圍器件3.1at89s52單片機(jī)at89s52是一種低功耗、高性能cmos 8位微控制器,使用 atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80c51產(chǎn)品指令和引腳完全兼容。并具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)flash,256字節(jié)ram,32 位i/o 口線,看門(mén)狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,at89s52 可降至0hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,cpu停止工作,允許ram、

10、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,ram內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。3.2ds1302時(shí)鐘芯片3.2.1ds1302芯片介紹低功耗時(shí)鐘芯片ds1302可以對(duì)年、月、日、時(shí)、分、秒進(jìn)行計(jì)時(shí),且具有閏年補(bǔ)償?shù)榷喾N功能。ds1302用于數(shù)據(jù)記錄,特別是對(duì)某些具有特殊意義的數(shù)據(jù)點(diǎn)的記錄上,能實(shí)現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時(shí)間同時(shí)記錄。這種記錄對(duì)長(zhǎng)時(shí)間的連續(xù)測(cè)控系統(tǒng)結(jié)果的分析以及對(duì)異常數(shù)據(jù)出現(xiàn)的原因的查找有重要意義。采用ds1302作為記錄測(cè)控系統(tǒng)中的數(shù)據(jù)記錄,其軟硬件設(shè)計(jì)簡(jiǎn)單,時(shí)間記錄準(zhǔn)確,既避免了連續(xù)記錄的大工作量,又避免了定時(shí)記錄的盲目性,

11、給連續(xù)長(zhǎng)時(shí)間的測(cè)量、控制系統(tǒng)的正常運(yùn)行及檢查都來(lái)了很大的方便,可廣泛應(yīng)用于長(zhǎng)時(shí)間連續(xù)的測(cè)控系統(tǒng)中。在測(cè)量控制系統(tǒng)中,特別是長(zhǎng)時(shí)間無(wú)人職守的測(cè)控系統(tǒng)中,經(jīng)常需要記錄某些具有特殊意義的數(shù)據(jù)及其出現(xiàn)的時(shí)間。記錄及分析這些特殊意義的數(shù)據(jù),對(duì)測(cè)控系統(tǒng)的性能分析及正常運(yùn)行具有重要的意義。傳統(tǒng)的數(shù)據(jù)記錄方式是隔時(shí)采樣或定時(shí)采樣,沒(méi)有具體的時(shí)間記錄,因此只能記錄數(shù)據(jù)而無(wú)法準(zhǔn)確記錄其出現(xiàn)的時(shí)間;若采用單片機(jī)計(jì)時(shí),一方面需要采用計(jì)數(shù)器,占用硬件資源,另一方面需要設(shè)置中斷、查詢等,同樣耗費(fèi)單片機(jī)的資源,而且某些測(cè)控系統(tǒng)可能不允許。而在系統(tǒng)中采用ds1302則能很好地解決這個(gè)問(wèn)題。 ds1302的性能特性實(shí)時(shí)時(shí)鐘,可

12、對(duì)秒、分、時(shí)、日、周、月以及帶閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù);用于高速數(shù)據(jù)暫存的318位ram;最少引腳的串行i/o;2.55.5v 電壓工作范圍;2.5v時(shí)耗電小于300na;用于時(shí)鐘或ram數(shù)據(jù)讀/寫(xiě)的單字節(jié)或多字節(jié)(脈沖方式)數(shù)據(jù)傳送方式;簡(jiǎn)單的3線接口;可選的慢速充電(至vcc1)的能力。ds1302時(shí)鐘芯片包括實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)的靜態(tài)ram。它經(jīng)過(guò)一個(gè)簡(jiǎn)單的串行接口與微處理器通信。實(shí)時(shí)時(shí)鐘/日歷提供秒、分、時(shí)、日、周、月和年等信息。對(duì)于小于31天的月和月末的日期自動(dòng)進(jìn)行調(diào)整,還包括閏年校正的功能。時(shí)鐘的運(yùn)行可以采用24h或帶am(上午)/pm(下午)的12h格式。采用三線接口與cpu進(jìn)行

13、同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或ram數(shù)據(jù)。ds1302有主電源/后備電源雙電源引腳:vcc1 在單電源與電池供電的系統(tǒng)中提供低電源,并提供低功率的電池備份;vcc2在雙電源系統(tǒng)中提供主電源,在這種運(yùn)用方式中,vcc1 連接到備份電源,以便在沒(méi)有主電源的情況下能保存時(shí)間信息以及數(shù)據(jù)。ds1302由vcc1或vcc2中較大者供電。當(dāng)vcc2大于vcc1+0.2v時(shí),vcc2給ds1302供電;當(dāng)vcc2小于vcc1時(shí),ds1302由vcc1供電。ds1302數(shù)據(jù)操作原理ds1302在任何數(shù)據(jù)傳送時(shí)必須先初始化,把rst腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)

14、在sclk的上升沿被輸入。無(wú)論是讀周期還是寫(xiě)周期,開(kāi)始8位指定40個(gè)寄存器中哪個(gè)被訪問(wèn)到。在開(kāi)始8個(gè)時(shí)鐘周期,把命令字節(jié)裝入移位寄存器之后,另外的時(shí)鐘周期在讀操作時(shí)輸出數(shù)據(jù),在寫(xiě)操作時(shí)寫(xiě)入數(shù)據(jù)。時(shí)鐘脈沖的個(gè)數(shù)在單字節(jié)方式下為8加8,在多字節(jié)方式下為8加字節(jié)數(shù),最大可達(dá)248字節(jié)數(shù)。圖3-1 ds1302管腳圖如果在傳送過(guò)程中置rst為低電平,則會(huì)終止本次數(shù)據(jù)傳送,并且i/o引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在vcc =2.5v之前,rst腳必須保持低電平。只有在sclk為低電平時(shí),才能將rst置為高電平。ds1302的管腳圖如圖3-1所示,表3-2為各引腳的功能。引腳號(hào)引腳名稱功能1vcc2主電源2

15、,3x1,x2振蕩源,外接32768hz晶振4gnd地線5rst復(fù)位/片選線6i/o串行數(shù)據(jù)輸入/輸出端(雙向)7sclk串行時(shí)鐘輸入端8vcc1后備電源表3-2 ds1302引腳功能表ds1302的控制字如圖3-3所示。控制字節(jié)的最高有效位(位7)必須是邏輯1;如果它為邏輯0,則不能把數(shù)據(jù)寫(xiě)入到ds1302中。位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù);為1表示存取ram數(shù)據(jù)。位51(a4a0)指示操作單元的地址。最低有效位(位0)如為0,表示要進(jìn)行寫(xiě)操作;為1表示進(jìn)行讀操作??刂谱止?jié)總是從最低位開(kāi)始輸入/輸出。圖3-3 控制字節(jié)的含義為了提高對(duì)32個(gè)地址的尋址能力(地址/命令位15邏輯1),可以

16、把時(shí)鐘/日歷或ram寄存器規(guī)定為多字節(jié)(burst)方式。位6規(guī)定時(shí)鐘或ram,而位0規(guī)定讀或?qū)憽T跁r(shí)鐘/日歷寄存器中的地址931或ram寄存器中的地址31不能存儲(chǔ)數(shù)據(jù)。在多字節(jié)方式中,讀或?qū)憦牡刂?的位0開(kāi)始。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?個(gè)寄存器。但是,當(dāng)以多字節(jié)方式寫(xiě)ram時(shí),為了傳送數(shù)據(jù)不必寫(xiě)所有31字節(jié)。不管是否寫(xiě)了全部31字節(jié),所寫(xiě)的每一字節(jié)都將傳送至ram。數(shù)據(jù)讀寫(xiě)程序如圖3-4所示。sclkkrsti/o571357210246046r/ca2a3a0a1r/wa41datai/obytedatai/obyte圖3-4數(shù)據(jù)讀寫(xiě)程序ds1302共有12個(gè)寄存器,其中有7個(gè)寄存器與

17、日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為bcd碼形式,其日歷、時(shí)間寄存器及其控制字見(jiàn)表3-5,其中奇數(shù)為讀操作,偶數(shù)為寫(xiě)操作。寄存器命令碼數(shù)據(jù)范圍寄存器中各位的內(nèi)容名稱地址寫(xiě)讀76543210秒00h80h81h0059ch秒數(shù)據(jù)分01h82h83h00590分?jǐn)?shù)據(jù)時(shí)02h84h85h0112或002312/24010/ap時(shí)數(shù)據(jù)日03h86h87h0128,2930,3100日數(shù)據(jù)月04h88h89h0112000月數(shù)據(jù)星期05h9ah8bh010700000星期數(shù)據(jù)年06h8ch8dh0099年數(shù)據(jù)多字節(jié)讀寫(xiě)behbfh表3-5 片內(nèi)時(shí)鐘數(shù)據(jù)寄存器3.2.2ds1302 的應(yīng)用實(shí)時(shí)時(shí)鐘芯片ds130

18、2采用串行數(shù)據(jù)傳輸,可為掉電保護(hù)電源提供可編程的充電功能,也可以關(guān)閉充電功能,芯片采用32768hz晶振。要特別說(shuō)明的是,備用電源bt1可以用電池或超級(jí)電容(10萬(wàn)f以上)。雖然ds1302在主電源掉電后耗電很小,但如果要長(zhǎng)時(shí)間保證時(shí)鐘正常,最好選用小型充電電池。如果斷電時(shí)間較短(幾小時(shí)或幾天),可以用漏電較小的普通電解電容代替(100f就可以保證1小時(shí)的正常走時(shí))。ds1302在第一次加電后,需進(jìn)行初始化操作。初始化后就可以按正常方法調(diào)整時(shí)間。ds1302的時(shí)鐘電路如圖3-6所示。圖3-6 ds1302時(shí)鐘電路3.3數(shù)碼管ledled顯示器由若干個(gè)發(fā)光二極管組成,當(dāng)發(fā)光二極管導(dǎo)通時(shí),相應(yīng)的一

19、個(gè)筆畫(huà)或一個(gè)點(diǎn)就發(fā)光??刂葡鄳?yīng)的管導(dǎo)通,就能顯示出對(duì)應(yīng)字符。各段led顯示器需要由驅(qū)動(dòng)電路驅(qū)動(dòng)。在七段led顯示器中,通常將各段發(fā)光二極管的陰極或陽(yáng)極連在一起作為公共端。將各段發(fā)光二極管連在一起的叫共陽(yáng)極顯示器,用低電平驅(qū)動(dòng);將陰極連在一起的叫共陰極顯示器,用高電平驅(qū)動(dòng)。靜態(tài)顯示就是每一個(gè)顯示器各筆畫(huà)段都要獨(dú)占具有一個(gè)鎖存功能的輸出口線,cpu把要顯示的字形代碼送到輸出口上,就可以使顯示器上顯示所需的數(shù)字或符號(hào),此后,即使cpu不在去訪問(wèn)它,因?yàn)楦鞴P畫(huà)段借口具有鎖存功能,顯示的內(nèi)容也不會(huì)消失。動(dòng)態(tài)顯示是指顯示器顯示某一字符時(shí),相應(yīng)段的發(fā)光二極管恒定地導(dǎo)通或截止。靜態(tài)顯示有并行輸出和串行輸出兩種

20、方式。在本系統(tǒng)中數(shù)碼管使用共陰極接法而且是用動(dòng)態(tài)顯示。3.4譯碼器74hc13874hc138譯碼器是通過(guò)3條線來(lái)達(dá)到控制8條線的狀態(tài),就是通過(guò)3條控制線a0、a1、a2不同的高低電平組合來(lái)控制y0y7的輸出狀態(tài),其中4和5為使能地端,與8引腳共同接地,當(dāng)接高電平時(shí)y0到y(tǒng)7輸出高電平。6號(hào)腳為使能端,為高電平時(shí)有效。74hc138封裝如圖3-7。當(dāng)需要級(jí)聯(lián)時(shí)只需要改變使能端信號(hào)引腳即可,連接方法簡(jiǎn)單。圖3-7 74hc138封裝圖3.5鎖存器74ls24474ls244由2組、每組四路輸入、輸出構(gòu)成。每組有一個(gè)控制端g,由控制端的高或低電平?jīng)Q定該組數(shù)據(jù)被接通還是斷開(kāi)。圖3-8 74ls244

21、引腳圖4硬件設(shè)計(jì)4.1電路設(shè)計(jì)框圖at89s52主控制模塊ds1302時(shí)鐘模塊led數(shù)碼管動(dòng)態(tài)掃描顯示模塊鍵盤(pán)模塊復(fù)位電路時(shí)鐘電路4.2系統(tǒng)概述本電路是由at89s52單片機(jī)為控制核心,具有在線編程功能,低功耗,能在3v超低壓工作;時(shí)鐘電路由ds1302提供,它是一種高性能、低功耗、帶ram的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5v5.5v。采用三線接口與cpu進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或ram數(shù)據(jù)。ds1302內(nèi)部有一個(gè)31*8的用于臨時(shí)性存放數(shù)據(jù)的ram寄存器。可產(chǎn)生年、月、日、周日、時(shí)、分、秒,具有使用

22、壽命長(zhǎng),精度高和低功耗等特點(diǎn),同時(shí)具有掉電自動(dòng)保存功能;顯示部份由15個(gè)數(shù)碼管,74hs138、74ls244構(gòu)成。使用動(dòng)態(tài)掃描顯示方式對(duì)數(shù)字的顯示。硬件的結(jié)構(gòu)和可靠性直接影響著整個(gè)系統(tǒng)的可靠性,所以合理的安排電路能提高電子產(chǎn)品的性能。4.3電源設(shè)計(jì)在這里因設(shè)計(jì)分工和側(cè)重點(diǎn)不同,電源模塊用通用的5v變壓器。4.4單片機(jī)的復(fù)位電路圖4-2手動(dòng)復(fù)位電路在系統(tǒng)運(yùn)行的過(guò)程中,有時(shí)可能對(duì)系統(tǒng)需要進(jìn)行復(fù)位,為了避免對(duì)硬件系統(tǒng)經(jīng)常加電和斷電造成的損害,設(shè)計(jì)了手動(dòng)的復(fù)位電路。如圖4-2所示。這種電路的設(shè)計(jì),在系統(tǒng)的運(yùn)行過(guò)程中需要復(fù)位時(shí),只需使開(kāi)關(guān)閉合,在rst端就會(huì)出現(xiàn)一定時(shí)間的高電平信號(hào),從而使單片機(jī)實(shí)現(xiàn)復(fù)

23、位。4.5單片機(jī)系統(tǒng)的晶振電路單片機(jī)必須在時(shí)鐘的驅(qū)動(dòng)下才能進(jìn)行工作。mcs-51系列單片機(jī)內(nèi)部都有一個(gè)時(shí)鐘振蕩電路,只需外接晶振源,就能產(chǎn)生一定頻率的時(shí)鐘信號(hào)送到單片機(jī)的內(nèi)部的各個(gè)單元,決定單片機(jī)的工作速度。圖4-3就是內(nèi)部時(shí)鐘工作方式的電路圖,這是一種常用的方式。這種方式是外界振蕩源,本設(shè)計(jì)就采用這種外接晶振的方法。電路中的兩個(gè)電容的作用有兩個(gè):一是幫助振蕩器起振(c1 c2的值大,起振的速度慢;反之,速度快。);二是對(duì)振蕩器的頻率起到微調(diào)的作用(c1 c2的值大,頻率略有減少,反之,頻率略有提高)。c1 c2的值采用30pf。圖4-3單片機(jī)內(nèi)部晶振電路連接圖 4.6主電路設(shè)計(jì)主電路的功能是

24、完成年、月、日、星期、時(shí)、分、秒之間的轉(zhuǎn)換, 再送往led顯示,并且接受鍵盤(pán)操作,對(duì)日期和時(shí)間進(jìn)行校正。電路原理圖如圖4-4所示,顯示部分用p0口做為輸出數(shù)據(jù)接到led數(shù)碼管a到h,并接74ls244做為各段的驅(qū)動(dòng)(為了簡(jiǎn)化電路圖在此用了8個(gè)上拉電阻代替74ls244)。用p3口的低3位接譯碼器的a0,a1,a2端,用p3.3,p3.4,p3.5分別接譯碼器的使能端,通過(guò)控制p3口來(lái)控制led的動(dòng)態(tài)掃描。單片機(jī)的18和19引腳接12mhz的晶振,并接兩個(gè)22pf的電容同時(shí)接地,單片機(jī)復(fù)位端接一極性電容并連接到電源處,在極性電容的負(fù)極接一10k的電阻,并連接至地做為放電用。本設(shè)計(jì)用到四個(gè)獨(dú)立式鍵

25、盤(pán)分別接到p1口的低4位,用p1口的p1.4,p1.5,p1.6接日歷時(shí)鐘的使能端和時(shí)鐘端及數(shù)據(jù)輸入輸出口,并在日歷時(shí)鐘上接一32.768khz的晶振,并接兩個(gè)22pf的電容終端和地相連,各芯片的電源部分分別接到有開(kāi)關(guān)式電源產(chǎn)生的5v電源上,芯片的接地端都接在公共地上,在這里接電源部分就不再一一詳述。設(shè)計(jì)采用動(dòng)態(tài)顯示,輪流掃描各個(gè)led使之顯示相應(yīng)的數(shù)型碼,當(dāng)掃描頻率大于人眼所能識(shí)別的頻率時(shí)就看不到閃爍現(xiàn)象。動(dòng)態(tài)顯示的亮度不如靜態(tài)顯示,但靜態(tài)顯示占用的i/o口資源較多,往往用移位寄存器74ls164等來(lái)擴(kuò)充其i/o口不足的情況,當(dāng)顯示位數(shù)較多時(shí),這樣勢(shì)必增加硬件開(kāi)銷(xiāo),增大成本,不利于開(kāi)闊市場(chǎng)。

26、本設(shè)計(jì)的突出之處在于硬件電路簡(jiǎn)單,大大減少了硬件開(kāi)銷(xiāo),這樣又勢(shì)必增加了軟件開(kāi)發(fā)的難度,但降低了成本有利于市場(chǎng)的開(kāi)闊。圖4-4電路原理圖5軟件設(shè)計(jì)軟件的設(shè)計(jì)是設(shè)計(jì)控制系統(tǒng)的應(yīng)用程序。其任務(wù)是在整體設(shè)計(jì)和硬件設(shè)計(jì)的基礎(chǔ)上,確定程序結(jié)構(gòu),分配內(nèi)ram資源,劃分功能模塊,然后進(jìn)行主程序和各模塊程序的設(shè)計(jì),最后連接起來(lái)成為一個(gè)完整應(yīng)用程序,與硬件相結(jié)合完成相應(yīng)功能。5.1主程序設(shè)計(jì)主程序才用模塊化設(shè)計(jì),流程圖如圖5-1所示。從上面主程序看出,主程序的組成是通過(guò)分別調(diào)用各子程序組成總體系統(tǒng)功能,能很直觀的看出主程序所要完成的功能,首先是初始化各模塊,之后調(diào)用鍵盤(pán)完成時(shí)間的調(diào)整,調(diào)用日歷子程序完成日歷時(shí)鐘的

27、初始化和時(shí)間數(shù)據(jù)的讀寫(xiě),調(diào)用顯示子程序顯示數(shù)據(jù),最后又轉(zhuǎn)到鍵盤(pán)程序來(lái)回循環(huán)。初始化部分主要有初始化定時(shí)器部分和和一些寄存器、標(biāo)志位、初始化時(shí)間等。對(duì)定時(shí)器t0初始化時(shí),首先置初值,cpu開(kāi)中斷,定時(shí)器t0開(kāi)中斷,并且開(kāi)始計(jì)數(shù),而對(duì)定時(shí)器t1初始化時(shí),首先置初值,定時(shí)器t1關(guān)中斷,并且停止計(jì)數(shù),只有收到命令時(shí)才能產(chǎn)生中斷。開(kāi)始初始化t0并開(kāi)中斷初始化t1并關(guān)中斷寄存器初始化標(biāo)志位初始化初始化時(shí)間調(diào)鍵盤(pán)子程序調(diào)日歷子程序調(diào)顯示子程序結(jié)束寄存器的初始化主要是初始化執(zhí)行程序時(shí)用到的部分ram空間,防止程序執(zhí)行時(shí)帶來(lái)混亂。標(biāo)志位初始化是對(duì)時(shí)間調(diào)整時(shí)判斷是調(diào)分還是調(diào)時(shí)等而專設(shè)的位標(biāo)志,初始化過(guò)程中標(biāo)志位全

28、部置0,即開(kāi)始時(shí)是處于顯示狀態(tài),而不是調(diào)整狀態(tài),這一點(diǎn)在程序中相當(dāng)明了。初始化時(shí)間是開(kāi)機(jī)時(shí)顯示的時(shí)間,并通過(guò)調(diào)用日歷時(shí)鐘的寫(xiě)程序來(lái)完成時(shí)間的置初值。圖5-1程序流程圖5.2鍵盤(pán)子程序設(shè)計(jì)多功能鍵盤(pán)程序的設(shè)計(jì)是本設(shè)計(jì)的難點(diǎn),也是完成本設(shè)計(jì)的重點(diǎn),當(dāng)有鍵按下時(shí),調(diào)用10ms延時(shí)程序,再判斷是否有鍵按下無(wú)則返回,若有先調(diào)用顯示程序再判斷是否松開(kāi),否則再轉(zhuǎn)到顯示程序,這樣避免了在按鍵松開(kāi)之前能正常顯示。其中k1鍵功能最多,通過(guò)判斷k1鍵按下的次數(shù)來(lái)判斷是調(diào)時(shí)間還是定時(shí),并對(duì)對(duì)應(yīng)的位置閃爍。本鍵盤(pán)深度為7級(jí),即連續(xù)按下k1鍵8次時(shí)則返回到原來(lái)界面。當(dāng)判斷鍵值為1時(shí)則為調(diào)秒狀態(tài),對(duì)應(yīng)的秒低位閃爍,為2時(shí)為

29、調(diào)分狀態(tài)并分閃爍,為3時(shí)為調(diào)時(shí)狀態(tài)并時(shí)閃爍,為4時(shí)為調(diào)日狀態(tài)并日閃爍,為5時(shí)為調(diào)月?tīng)顟B(tài)并月閃爍,為6時(shí)為調(diào)年?duì)顟B(tài)并年閃爍,為7時(shí)為調(diào)星期狀態(tài)并星期閃爍。 k2為加1鍵,k3為減1鍵,k4為總返回鍵,即在調(diào)時(shí)見(jiàn)時(shí)不用只有按下k1鍵值為8才返回,而通過(guò)按下k4鍵即可返回。由于鍵盤(pán)流程圖非常復(fù)雜,在此只表示秒,如圖5-2所示,其余略。n開(kāi)始 有鍵按下?延時(shí)10msk2按下?k3按下?k4按下?k1按下?調(diào)顯示k1為0?鍵值加1y調(diào)顯示有鍵按下?鍵值清0標(biāo)志位清0返回回 nnnynyn下頁(yè)1yyy下頁(yè)31鍵值為1?調(diào)顯示秒閃爍秒標(biāo)志位置1k2按下?k3按下?秒減1秒數(shù)據(jù)送ds1302秒加13ynyy鍵

30、值為?n。圖5-2 鍵盤(pán)子程序流程圖5.3日歷時(shí)鐘子程序設(shè)計(jì)ds1302與cpu的連接需要三條線,即sclk(7)、i/o(6)、rst(5)。日歷時(shí)鐘ds1302的讀寫(xiě)需要初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)啟動(dòng)寫(xiě)時(shí)序開(kāi)始,如果要求單總線器件回送是低位在先。讀寫(xiě)都是16位數(shù)據(jù)高8位是地址低8位是數(shù)據(jù),在讀寫(xiě)時(shí)要嚴(yán)格遵從其讀寫(xiě)時(shí)序,否則讀寫(xiě)將會(huì)失效。當(dāng)rst為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)ds1302進(jìn)行操作。如果在傳送過(guò)程中rst置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,i/o引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在vcc

31、2.5v之前,rst必須保持低電平。只有在sclk為低電平時(shí),才能將rst置為高電平,這一點(diǎn)我們要一定注意。當(dāng)rst置為高電平時(shí),在串行時(shí)鐘的sclk的上升沿,ds1302從i/o端口讀入一位數(shù)據(jù),8個(gè)串行時(shí)鐘脈沖就可以讀入一字節(jié)的數(shù)據(jù)。在串行時(shí)鐘的下降沿,ds1302向i/o端口輸出一位數(shù)據(jù),8個(gè)串行時(shí)鐘脈沖就可以輸出一字節(jié)的數(shù)據(jù)。顯示子程序設(shè)計(jì)電子產(chǎn)品是否實(shí)用其中顯示占了很重要的地位,很多數(shù)人都渴求用視覺(jué)效果好,范圍廣,直觀明了,led符合以上的要求,但相應(yīng)的硬件設(shè)計(jì)相對(duì)復(fù)雜。rst置1開(kāi) 始發(fā)送1位命令碼命令碼8位送完?寫(xiě)一位數(shù)據(jù)數(shù)據(jù)寫(xiě)完?rst置0(a)時(shí)鐘寫(xiě)結(jié) 束開(kāi) 始rst置1發(fā)送

32、1位命令碼命令碼8位送完?讀一位數(shù)據(jù)數(shù)據(jù)讀完?rst置0結(jié) 束(b) 時(shí)鐘讀圖5-3 日歷時(shí)鐘的寫(xiě)和讀nyyyynnn5.4顯示子程序設(shè)計(jì)本設(shè)計(jì)的顯示部分具有消隱和閃爍功能,當(dāng)時(shí)分秒等高位為0時(shí)顯示消隱, 此時(shí)在讀時(shí)間時(shí)更加明了,但低位不能顯示消隱。閃爍功能也是本設(shè)計(jì)的一個(gè)難點(diǎn),本設(shè)計(jì)采用8個(gè)位標(biāo)志位,其中一個(gè)標(biāo)志位通過(guò)用定時(shí)器0產(chǎn)生一個(gè)周期大約為每秒1.5次,使閃爍時(shí)效果達(dá)到最好。此時(shí)定時(shí)器采用定時(shí)中斷的工作方式,這樣可以充分利用cpu資源。另外7個(gè)標(biāo)志位是時(shí)分秒等的位標(biāo)志位,當(dāng)秒標(biāo)志位置1時(shí)即秒開(kāi)閃爍,與用中斷產(chǎn)生的標(biāo)志位相結(jié)合,即在一個(gè)周期內(nèi)為0時(shí)此時(shí)消隱為1時(shí)開(kāi)顯示,這樣就使在調(diào)時(shí)間時(shí)

33、對(duì)應(yīng)的位閃爍。6系統(tǒng)調(diào)試單片機(jī)系統(tǒng)經(jīng)過(guò)總體設(shè)計(jì),完成了硬件和軟件設(shè)計(jì)開(kāi)發(fā)。通過(guò)軟件和硬件相結(jié)合系統(tǒng)即可運(yùn)行。但編制好的程序或焊接好的線路不能按預(yù)計(jì)的那樣正常工作是常見(jiàn)的事,經(jīng)常會(huì)出現(xiàn)一些硬件、軟件上的錯(cuò)誤,這是軟件和硬件開(kāi)發(fā)者經(jīng)常遇見(jiàn)的,這就需要通過(guò)調(diào)試來(lái)發(fā)現(xiàn)錯(cuò)誤并加以改正。調(diào)試可分為硬件調(diào)試和軟件調(diào)試。本設(shè)計(jì)系統(tǒng)的已經(jīng)在pc機(jī)上用模擬開(kāi)發(fā)軟件進(jìn)行了檢測(cè)和調(diào)試,并運(yùn)行成功,最后進(jìn)行實(shí)物圖的硬件組裝與調(diào)試,這樣就給開(kāi)發(fā)者在提供了方便。6.1軟件調(diào)試本設(shè)計(jì)是在proteus軟件和wava6000軟件相結(jié)合調(diào)試的,完全用仿真軟件在pc機(jī)上對(duì)目標(biāo)電路原理圖和程序進(jìn)行檢測(cè)和調(diào)試。調(diào)試過(guò)程中單片機(jī)相應(yīng)輸入

34、端由通用鍵盤(pán)和鼠標(biāo)設(shè)定,運(yùn)行狀態(tài)、各寄存器狀態(tài)、端口狀態(tài)等都可以在指定的窗口區(qū)域顯示出來(lái),以確定程序運(yùn)行有無(wú)錯(cuò)誤。目標(biāo)程序糾錯(cuò):該階段工作通常在目標(biāo)程序編輯時(shí)就完成。一般來(lái)說(shuō),仿真軟件能為用戶輸入的程序指令糾錯(cuò),包括書(shū)寫(xiě)格式、標(biāo)號(hào)未定義或多重定義、轉(zhuǎn)移地址溢出等錯(cuò)誤。整體程序調(diào)試:即把各子程序整體連起來(lái)進(jìn)入到綜合電路調(diào)試,看是否能實(shí)現(xiàn)預(yù)計(jì)的功能顯示。在這階段若發(fā)生故障,可以考慮各子程序在運(yùn)行時(shí)是否破壞現(xiàn)場(chǎng),數(shù)據(jù)緩沖單元是否發(fā)生沖突,標(biāo)志位的建立和清除在設(shè)計(jì)上是否失誤,堆棧是否溢出,輸入輸出狀態(tài)是否正常等。經(jīng)過(guò)多次修改程序最后調(diào)試出來(lái)理想的效果,如圖6-1所示圖6-1 proteus仿真用軟件模

35、擬器調(diào)試不需任何在線仿真器,也不需要用戶樣機(jī),直接就可以在pc機(jī)上開(kāi)發(fā)和調(diào)試。調(diào)試和修改完畢后可以直接使用編程器將軟件固化在目標(biāo)系統(tǒng)rom中,然后投入運(yùn)行。6.2硬件調(diào)試焊接電路板如圖6-2所示單片機(jī)應(yīng)用系統(tǒng)的硬件調(diào)試和軟件調(diào)試是分不開(kāi)的,許多硬件故障在軟件調(diào)試時(shí)才能發(fā)現(xiàn),但通常要先排除系統(tǒng)中明顯的硬件故障。調(diào)試工作可以分為四步:線路檢查:根據(jù)硬件邏輯設(shè)計(jì)圖,仔細(xì)檢查樣機(jī)線路是否連接正確,并核對(duì)元器件的型號(hào)、規(guī)格和安裝是否符合要求,必要時(shí)可用萬(wàn)用表檢測(cè)線路通斷情況。電源調(diào)試:樣機(jī)的第一次通電測(cè)試很重要,若樣機(jī)中存在電源故障,則加電后將造成器件損壞。調(diào)試的方法有兩種:一種是斷開(kāi)樣機(jī)穩(wěn)壓電源的輸出

36、端,檢查空載時(shí)電源工作情況;另一種是拔下樣機(jī)上的主要集成芯片,檢查電源的負(fù)載能力(用假負(fù)載)。確保電源無(wú)故障并性能符合設(shè)計(jì)要求。通電檢查:在確保電源良好前提下,接通電源。最好在電源與其余電路之間串接一個(gè)電流表。若接通后電流很大,必須立即切斷電源。電源大得超出正常范圍,說(shuō)明電路中有短路或故障。通電檢查的主要目的是看系統(tǒng)是否存在短路或由元器件損壞、裝配錯(cuò)誤引起的電流異常。如圖6-2 焊接電路板檢查芯片的邏輯關(guān)系是否出錯(cuò):加電后檢查各芯片插座上相關(guān)引腳的電位,仔細(xì)測(cè)量相應(yīng)的輸入輸出電平是否正常。單片機(jī)系統(tǒng)大都是數(shù)字邏輯電路,使用電平檢查法可首先查出邏輯設(shè)計(jì)是否正確,選用器件和連接關(guān)系是否符合要求等。本設(shè)計(jì)特點(diǎn)突出,性價(jià)比高,適合于家庭掛歷,有

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論