2022年電子時(shí)鐘的制作_第1頁(yè)
2022年電子時(shí)鐘的制作_第2頁(yè)
2022年電子時(shí)鐘的制作_第3頁(yè)
2022年電子時(shí)鐘的制作_第4頁(yè)
2022年電子時(shí)鐘的制作_第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)介

..精選可編輯文本精選可編輯文本.精選可編輯文本論文摘要近年來(lái)隨著計(jì)算機(jī)在社會(huì)各領(lǐng)域的滲透,單片機(jī)的應(yīng)用正在不斷地走向深入,同時(shí)帶動(dòng)傳統(tǒng)時(shí)間顯示和時(shí)間控制日新月異更新。在實(shí)時(shí)顯示和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個(gè)核心部件來(lái)使用,僅單片機(jī)方面的知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,以作完善。本篇論文討論是倒計(jì)時(shí)器的設(shè)計(jì)與制作,以單片機(jī)AT89S51核心搭建硬件電路,采用8279可編程鍵盤/顯示器接口芯片來(lái)進(jìn)行鍵盤和LED顯示的控制,時(shí)鐘芯片DS1302提供精準(zhǔn)的時(shí)序,采用八位LED數(shù)碼管動(dòng)態(tài)顯示時(shí)間,同時(shí)可通過(guò)鍵盤來(lái)進(jìn)行時(shí)間的設(shè)置?!娟P(guān)鍵字】單片機(jī)、AT89S51、8279、DS1302、倒計(jì)時(shí)器、LED數(shù)碼管顯示器。目錄:摘要‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥1前言‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥1第1章方案論證‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥21.1開發(fā)意義‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥21.2功能說(shuō)明‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥2第2章硬件電路‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥22.1單片機(jī)概述‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥22.2AT89S51芯片概述‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥32.3LED數(shù)碼管顯示器概述‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥32.3.1.LED數(shù)碼顯示器的結(jié)構(gòu)與顯示段碼‥‥‥‥‥‥‥‥‥‥‥‥‥32.3.2.LED數(shù)碼顯示器的接口方法與電路‥‥‥‥‥‥‥‥‥‥‥‥‥42.48279芯片介紹‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥42.5DS1302芯片介紹‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥62.6電路系統(tǒng)設(shè)計(jì)‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥8第3章軟件設(shè)計(jì)3.1整體設(shè)計(jì)‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥93.2鍵盤流程‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥103.3DS1302時(shí)鐘顯示程序‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥10結(jié)束語(yǔ)‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥15參考文獻(xiàn)‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥16前言在日常生活和生產(chǎn)的各領(lǐng)域中,時(shí)間具有非常重要的作用,沒(méi)有時(shí)間我們無(wú)法進(jìn)行正常的生活、生產(chǎn)和學(xué)習(xí),因此時(shí)間的顯示就成為生活的必需品。傳統(tǒng)的計(jì)時(shí)是采用老式的機(jī)械鐘表,由于機(jī)械故障、物理?yè)p耗以及其它自然原因,老式鐘表走時(shí)不太精準(zhǔn),因此它無(wú)法滿足現(xiàn)在的時(shí)代要求。隨著數(shù)字集成電路的開展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過(guò)老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能,諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)播送、自動(dòng)起閉路燈、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以時(shí)間顯示數(shù)字化為根底的。由于計(jì)算機(jī)技術(shù)的開展,單片機(jī)為自動(dòng)控制提供了新的方法,從簡(jiǎn)單到復(fù)雜,從空中、地面到地下,但凡能想象到的地方幾乎都使用到了單片機(jī)。單片機(jī)的應(yīng)用有力于產(chǎn)品的小型化、多功能化和智能化,有助于提高勞動(dòng)效率,減少勞動(dòng)強(qiáng)度,提高產(chǎn)品質(zhì)量,改善勞動(dòng)環(huán)境,減少能源和材料消耗,保證平安等。但是,單片機(jī)應(yīng)用的意義絕不僅限于它的廣闊范圍以及所帶來(lái)的經(jīng)濟(jì)效益上,更重要的意義還在于:?jiǎn)纹瑱C(jī)的應(yīng)用正從根本上改變著傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須有模擬電路或數(shù)字電路實(shí)現(xiàn)的大局部功能,現(xiàn)在已能使用單片機(jī)通過(guò)軟件〔編程序〕方法實(shí)現(xiàn)了。這種以軟件取代硬件并提高系統(tǒng)性能的控制系統(tǒng)“軟化〞技術(shù),稱之為微控制技術(shù)。微控制技術(shù)是一種全新的概念,是對(duì)傳統(tǒng)控制技術(shù)的一次革命。隨著單片機(jī)應(yīng)用的推廣普及,微控制技術(shù)必將不斷開展、日益完善和更加充實(shí)。第一章方案論證1.1開發(fā)意義本課題開發(fā)的意義在于它既節(jié)省了硬件本錢,又能實(shí)現(xiàn)多功能。既可做倒計(jì)時(shí)秒表,又可進(jìn)行定時(shí),還可以通過(guò)擴(kuò)展完成其他功能,而且功能的相互轉(zhuǎn)換也十分簡(jiǎn)單。對(duì)于廠商,有很大的挖掘潛在價(jià)值的空間;對(duì)于消費(fèi)者也有很大的吸引力。背景介紹

在我們的日常生活和工作中,有許多的領(lǐng)域需要進(jìn)行時(shí)間的倒計(jì),比方,在2021年北京奧運(yùn)會(huì)即將來(lái)臨之際,許多公共場(chǎng)合都有倒計(jì)時(shí)牌,以此來(lái)提醒人們距離開幕還有多少天。每天我們的交通都要依靠交通燈來(lái)自動(dòng)控制指揮,紅綠燈采用倒計(jì)時(shí)的方法來(lái)顯示剩余時(shí)間,這樣對(duì)行人來(lái)說(shuō)既方便又平安。在一些家用電器中都需要有定時(shí)的功能,比方洗衣機(jī)的定時(shí)脫水,電視機(jī)的定時(shí)開關(guān)機(jī),微波爐的定時(shí)烘烤食物等,同時(shí)工業(yè)生產(chǎn)中的熔爐煅燒等都要進(jìn)行精確的時(shí)間設(shè)定,科學(xué)實(shí)驗(yàn)時(shí)也要有時(shí)間定時(shí)過(guò)程,如果只是進(jìn)行單純的計(jì)時(shí),使用者可能因?yàn)槟承┰蛲?。假設(shè)是用倒計(jì)時(shí)的方式進(jìn)行計(jì)時(shí)顯示再配以到時(shí)報(bào)警,這樣有利于提高效率。因此倒計(jì)時(shí)器的設(shè)計(jì)與研究具有非常重要的意義。功能說(shuō)明:〔1〕本電路采用八位LED數(shù)碼管動(dòng)態(tài)顯示時(shí)間,天數(shù)用二位,時(shí)分秒分別用兩位顯示,其中天數(shù)用倒計(jì)時(shí)的方式顯示,時(shí)、分、秒采用正常的記時(shí)方式?!?〕利用六個(gè)按鍵來(lái)進(jìn)行時(shí)間的設(shè)置,分別有左向移動(dòng)鍵LM、右向移動(dòng)鍵RM,數(shù)字加一鍵,數(shù)字減一鍵,開關(guān)鍵ON/OFF,復(fù)位鍵?!?〕當(dāng)?shù)褂?jì)時(shí)時(shí)間到可輸出一個(gè)信號(hào)用于報(bào)警。第二章硬件電路2.1單片機(jī)的概述簡(jiǎn)單的說(shuō),一塊單片機(jī)芯片就是一臺(tái)超小型化的計(jì)算機(jī),即將中央處理器CPU(Centralprocessingunit)。隨機(jī)存儲(chǔ)器RAM〔Randomaccessmemory〕。只讀存儲(chǔ)器ROM〔Readonlymemory〕。中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器以及各種I/O〔Input/output〕接口電路〔如并行I/O,串行I/O,A/D接口〕等燒刻在一塊硅片上,構(gòu)成一臺(tái)微縮短完整的計(jì)算機(jī)。因此叫做單片機(jī)。單片機(jī)是一個(gè)計(jì)算機(jī)系統(tǒng),自動(dòng)化和智能性是其最主要的特點(diǎn),加上它有體積小、重量輕、價(jià)格廉價(jià)、速度快、使用方便等諸多優(yōu)點(diǎn),它出現(xiàn)后,在工農(nóng)業(yè)生產(chǎn)上大幅度地提高了生產(chǎn)效率和產(chǎn)品質(zhì)量。另外,在彩電、冰箱、空調(diào)、VCD、遙控器、游戲機(jī)等日常家用電器上無(wú)處不見(jiàn)單片機(jī)的影子,它大大地提高了這些產(chǎn)品的智能性、實(shí)用性和可靠性。單片機(jī)早已深深地融入到我們每個(gè)人的生活中。2.2AT89S51的芯片概述AT89S51是一個(gè)低功耗,高性能CMOS8位單片機(jī),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISPFlash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案AT89S51芯片具有以下特性:指令集和芯片引腳與Intel公司的8051兼容;4KB片內(nèi)在系統(tǒng)可編程Flash程序存儲(chǔ)器;時(shí)鐘頻率為0~33MHz;128字節(jié)片內(nèi)隨機(jī)讀寫存儲(chǔ)器〔RAM〕;32個(gè)可編程輸入/輸出引腳;2個(gè)16位定時(shí)/計(jì)數(shù)器;6個(gè)中斷源,2級(jí)優(yōu)先級(jí);全雙工串行通信接口;監(jiān)視定時(shí)器;2個(gè)數(shù)據(jù)指針。其工作電壓在4.5-5V。AT89S51比其它8位單片機(jī)的功能要強(qiáng)大很多,而價(jià)格又沒(méi)有太大的提高,因此選用AT89S51單片機(jī)來(lái)作為本系統(tǒng)的核心。2.3LED數(shù)碼管顯示器概述2.3.1〔1〕LED數(shù)碼顯示器的結(jié)構(gòu)LED數(shù)碼顯示器是一種有LED發(fā)光二極管組合顯示字符的顯示器件。它使用了8個(gè)LED發(fā)光二極管,其中7個(gè)用于顯示字符,一個(gè)用于顯示小數(shù)點(diǎn),故通常稱之為7段發(fā)光二極管數(shù)碼器?!?〕LED數(shù)碼顯示器有兩種連接方法如下。共陽(yáng)極接法。把發(fā)光二極管的陽(yáng)極連在一起構(gòu)成公共陽(yáng)極,使用時(shí)公共陽(yáng)極接+5V,每個(gè)發(fā)光二極管的陰極通過(guò)電阻與輸入端相連。共陰極接法。把發(fā)光二極管的陰極連在一起構(gòu)成公共陰極,使用時(shí)公共陰極接地。每個(gè)發(fā)光二極管的陽(yáng)極通過(guò)電阻與輸入端相連?!?〕LED數(shù)碼顯示器的顯示段碼。為了顯示字符,要為L(zhǎng)ED顯示器段碼〔或稱字形代碼〕,組成一個(gè)8字形字符的7段,再加上1個(gè)小數(shù)點(diǎn)位,共計(jì)8段,因此提供給LED顯示器的顯示段碼為1個(gè)字節(jié)。各段碼位的對(duì)應(yīng)關(guān)系如下表所示.十六進(jìn)制數(shù)及空白字符與P的顯示段碼.段碼位D7D6D5D4D3D2D1D0顯示段pdgfedeba字型共陽(yáng)極段共陰極段字型共陽(yáng)極段碼碼碼0C0H3FH990H1F9H06HA88H2A4H5BMB83H3B0H4FHCC6H499H66HDA1H592H6DHE86H682H7DHF84H7F8H07H空白FFH880H7FHP8CH2.3.2Led靜態(tài)顯示方式LED工作在靜態(tài)方式下,共陰極接地或共陽(yáng)極接+5V;每一位的段選線〔a~g、dp〕與一個(gè)8位并行I/O口相連,顯示器的每一位可獨(dú)立顯示,只要在該位的段選線上保持段選碼電平,該位就能保持相應(yīng)的顯示字符。LED動(dòng)態(tài)顯示方式LED動(dòng)態(tài)顯示是將所有位的段選線并接在一個(gè)I/O口上,共陰極端或供陽(yáng)極端分別由相應(yīng)的I/O口線控制。由于每一位的段選線都接在一個(gè)I/O口上,所以每送一個(gè)段選碼,8位就顯示同一個(gè)字符,這種顯示器是不能用的。解決此問(wèn)題的方法是利用人的視覺(jué)暫留,從段選線I/O口上按位次分別送顯示字符的段選碼,在位選控制口也按相應(yīng)的次序分別選通相應(yīng)的顯示位〔共陰極送低電平,共陽(yáng)極送高電平〕,選通位就顯示相應(yīng)字符,并保持幾毫秒的延時(shí),未選通位不顯示字符〔保持熄滅〕這樣,對(duì)各位顯示就是一個(gè)循環(huán)過(guò)程,這就動(dòng)態(tài)顯示。由于靜態(tài)顯示占用的口線和顯示器的個(gè)數(shù)成正比,而本設(shè)計(jì)中由8位LED顯示器,故采用動(dòng)態(tài)顯示方式。2.48279芯片介紹

INTEL8279是一種可編程鍵盤/顯示器接口芯片,它含有鍵盤輸入和顯示器輸出兩種功能。鍵盤輸入時(shí),它提供自動(dòng)掃描,能與鍵盤或傳感器組成的矩陣相連,接收輸入信息。它能自動(dòng)消除開關(guān)抖動(dòng)并能對(duì)多鍵同時(shí)按下提供保護(hù)。顯示輸出時(shí),它有一個(gè)16×8位顯示RAM,其內(nèi)容通過(guò)自動(dòng)掃描,可由8或16位LED數(shù)碼管顯示。8279管腳、引線及功能說(shuō)明8279為40列引腳封裝,如圖7.9.1所示。詳細(xì)說(shuō)明如下:D0~D7〔數(shù)據(jù)總線〕:雙向、三態(tài)總線。用于和系統(tǒng)數(shù)據(jù)總線相連,在CPU和8279之間傳遞命令或數(shù)據(jù)。CLK〔系統(tǒng)時(shí)鐘〕:輸入線。用于8279內(nèi)部定時(shí),以產(chǎn)生其工作所需時(shí)序。RESET〔復(fù)位〕:輸入線,高電平有效。當(dāng)復(fù)位信號(hào)RESET=1時(shí),8279被復(fù)位?!财x〕:輸入線,低電平有效。當(dāng)=0時(shí),8279被選中,允許CPU對(duì)其進(jìn)行讀、寫操作,否那么被禁止。A0〔緩沖器地址〕:輸入線。當(dāng)A0=1時(shí),假設(shè)CPU進(jìn)行寫操作,那么寫入字節(jié)是命令字。假設(shè)進(jìn)行讀操作,那么從8279讀出的字節(jié)是狀態(tài)字。當(dāng)A0=0時(shí),寫入字節(jié)或讀出字節(jié)均為數(shù)據(jù)。RD、WR〔讀、寫信號(hào)〕:輸入線,低電平有效。這兩個(gè)來(lái)自CPU的控制信號(hào),控制8279的讀寫操作。IRQ〔中斷請(qǐng)求〕:輸出線,高電平有效。在鍵盤工作方式中,當(dāng)FIFO/傳感器RAM中存有數(shù)據(jù)時(shí),IRQ為高電平,向CPU提出中斷申請(qǐng)。CPU每次從RAM中讀出一個(gè)字節(jié)數(shù)據(jù)時(shí),IRQ就變成低電平。如果RAM中還有未讀完的數(shù)據(jù),IRQ將再次變?yōu)楦唠娖?,再次提出中斷申?qǐng)求。在傳感器工作方式中,每當(dāng)檢測(cè)到傳感器狀態(tài)變化時(shí),IRQ就出現(xiàn)高電平。SL0~SL3〔掃描線〕:輸出線。這四條輸出線用來(lái)掃描鍵盤和顯示器。它們可以編程設(shè)定為編碼輸出〔16中取1〕或譯碼輸出〔4中取1〕。RL0~RL7〔回復(fù)線〕:輸入線。它們是鍵盤矩陣或傳感器矩陣的列信號(hào)輸入線。SHIFT〔移位信號(hào)〕:輸入線,高電平有效。該輸入信號(hào)是8279鍵盤數(shù)據(jù)的次高位D6,通常用來(lái)補(bǔ)充鍵盤開關(guān)的功能,可以用作鍵盤上下?lián)豕δ苕I。在傳感器方式和選通方式中,SHIFT無(wú)效。CNTL/STB〔控制/選通〕:輸入線,高電平有效。

在鍵盤方式時(shí),該輸入信號(hào)是鍵盤數(shù)據(jù)的最高位D7,通常用來(lái)擴(kuò)充鍵開關(guān)的控制功能,作為控制功能鍵用。在傳感器方式下,CNTL信號(hào)無(wú)效。

在選通輸入方式下,該信號(hào)的上升沿可將來(lái)自RL0~RL7的數(shù)據(jù)存放入FIFORAM中。OUTA0~OUTA3〔A組顯示信號(hào)〕:輸出線。OUTB0~OUTB3〔B組顯示信號(hào)〕:輸出線。

這兩組引線均是顯示信息輸出線,它們與多路數(shù)字顯示的掃描線SL0~SL3同步。兩組可以獨(dú)立使用,也可以合并使用?!蚕[顯示〕:輸出線,低電平有效。該輸出信號(hào)在數(shù)字切換顯示或使用顯示消隱命令時(shí),將顯示消隱。8279工作方式1、鍵盤工作方式由兩種雙鍵互鎖和N鍵依次讀出。

〔1〕鍵盤掃描方式,雙鍵互鎖這種方式中由三種可能的情況:一是只有一個(gè)鍵按下,那么該鍵值連同CNTL及SHIFT的狀態(tài)一起送到FIFO/傳感器RAM中。如果FIFO/傳感器RAM為空,IRQ=1;如果FIFO/傳感器RAM滿,便置錯(cuò)誤標(biāo)志,鍵值不會(huì)經(jīng)入FIFO/傳感器RAM中。二是由鍵按下,后又有其它鍵按下但先釋放,前者有效,后者無(wú)效,并把有效鍵的值送入到FIFO/傳感器RAM中。三是在防鍵抖動(dòng)誤動(dòng)作周期內(nèi),有雙鍵同時(shí)按下,后釋放的有效。(2〕鍵盤掃描方式,N鍵互鎖在這種方式下,有多鍵同時(shí)按下,那么按照掃描時(shí)遇到閉合鍵的先后次序?qū)㈡I值存入FIFO/傳感器RAM中,然后依次讀出。2、顯示器的工作方式CPU將顯示數(shù)碼寫入顯示RAM中時(shí),有從左端寫入和從右端寫入兩種方式。顯示時(shí),可以分A、B兩組獨(dú)立方式,也可以兩組同時(shí)顯示。3、內(nèi)部譯碼和外部譯碼方式在鍵盤、顯示器工作方式中,SL0~SL3為鍵盤的列掃描和動(dòng)態(tài)顯示器的位選線。中選擇內(nèi)部譯碼方式時(shí),SL0~SL3每一時(shí)刻只能有一位為低電平輸出,此方式只能外接4個(gè)LED顯示器和4*8鍵盤。中選擇外部譯碼方式時(shí),SL0~SL3輸出為計(jì)數(shù)分頻方式,此方式下可以外界16個(gè)LED顯示器和8*8鍵盤。8279的編程方法:8279的編程可分為初始化、向顯示RAM中寫入數(shù)據(jù)和讀鍵盤數(shù)據(jù)三局部。在實(shí)際應(yīng)用中,通常初始化編程在主程序中完成;顯示局部一般作為子程序;而鍵盤讀入局部作為中斷效勞程序來(lái)編寫。初始化編程是向8279寫入工作方式命令字,確定其工作方式及相關(guān)操作功能。以下介紹本設(shè)計(jì)中對(duì)8279的編程〔1〕鍵盤/顯示器方式設(shè)置命令字D7D6D5D4D3D2D1D0=00010010;8個(gè)LED顯示器,從右端輸入,編碼掃描鍵盤,雙鍵互鎖〔2〕時(shí)鐘編程命令D7D6D5D4D3D2D1D0=00110100;外部時(shí)鐘為2MHz,分頻系數(shù)=2MHz/100kHz=20〔3〕讀FIFO/傳感器RAM命令D7D6D5D4D3D2D1D0=01000000;設(shè)置FIFO/傳感器RAM地址讀后地址保持不變〔4〕讀顯示RAM命令D7D6D5D4D3D2D1D0=0111****;D3D2D1D0為顯示RAM的存儲(chǔ)單元地址,每次讀出顯示RAM后地址自動(dòng)加一,指向下一單元?!?〕寫顯示RAM命令D7D6D5D4D3D2D1D0=1001****;D3D2D1D0為顯示RAM的存儲(chǔ)單元地址,每次向顯示RAM寫入數(shù)據(jù)后,地址自動(dòng)加一,指向下一單元地址?!?〕去除命令D7D6D5D4D3D2D1D0=11011100;去除顯示RAM和FIFO/傳感器RAM〔7〕中斷結(jié)束/出錯(cuò)方式設(shè)置命令D7D6D5D4D3D2D1D0=11110000;此命令使IRQ變低電平,而結(jié)束中斷,并允許對(duì)FIFIO/傳感器RAM的再次寫入。2.5DS1302芯片的介紹:DS1302是DALLAS公司推出的涓流充電時(shí)鐘芯片,內(nèi)含有一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31B靜態(tài)RAM,通過(guò)簡(jiǎn)單的串行接口與單片機(jī)進(jìn)行通信。實(shí)時(shí)時(shí)鐘/日歷電路提供秒、分、時(shí)、日、星期、月和年的信息,每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整,時(shí)鐘操作可通過(guò)AM/PM 指示決定采用24或12格式。DS1302與單片機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn)行通信,僅需用到3根口線:RST復(fù)位、I/O數(shù)據(jù)線和 SCLK時(shí)鐘線,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。采用普通32.768kHz晶振。工作電壓為2.5V~5.5V。

2.5.1引腳功能及結(jié)構(gòu)

圖1示出DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位存放器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(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í),在V2.5.2DS1302的控制字節(jié)

1RAMCKA4A3A2A1A0RAMK2.5.3數(shù)據(jù)輸入輸出(I/O)

在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。

2.5.4DS1302的存放器

2.6系統(tǒng)硬件電路設(shè)計(jì)圖1所示為電路的總體設(shè)計(jì)思路,圖2為單片機(jī)的最小系統(tǒng),圖3為ds1302與單片機(jī)的接口電路,圖4是8279與片的接口以及8279與鍵盤顯示器的接口電路。圖1系統(tǒng)結(jié)構(gòu)框圖圖2單片機(jī)最小系統(tǒng)圖3DS1302與單片機(jī)的連接電路圖48279鍵盤顯示器接口電路8279芯片上的端口D0~D7與單片機(jī)的P0端口相連,用于CPU和8279之間控制,狀態(tài)及數(shù)據(jù)信息的傳輸。8279與89S51的讀寫控制端口WR,RD相連接,使單片機(jī)能夠?qū)?279進(jìn)行讀寫操作。8279的片選端由P2.7控制,中斷請(qǐng)求輸出IRQ由外部中斷1—INT1中斷。芯片74LS373是一種帶輸出三態(tài)門的8D鎖存器,單片機(jī)的地址鎖存有效信號(hào)ALE與74LS373的數(shù)據(jù)鎖存數(shù)據(jù)端G相連,G為“1”時(shí),鎖存器輸出端同輸入端;當(dāng)G由“1”變“0”時(shí),數(shù)據(jù)輸入鎖存器中。74LS373的輸出允許端OE接地,表示輸出三態(tài)門一直翻開。8279的A0端接CPU地址總線的A0即74LS373的輸出端R0,用于區(qū)別信息特征:為1時(shí),表示寫入的命令或讀出8279的狀態(tài);為0時(shí),表示傳送的時(shí)數(shù)據(jù)。行〔或列〕掃描輸出線SL0~SL2接3線-8線譯碼器74LS138譯出8條顯示器的位掃描線,經(jīng)過(guò)74LS240驅(qū)動(dòng)LED顯示器工作,OUTA0~OUTA3和OUTB0~OUTB3顯示數(shù)據(jù)的段碼輸出線經(jīng)過(guò)74LS240輸出顯示數(shù)據(jù),并在每個(gè)輸入端接個(gè)1K的電阻以限制輸入電流,防止數(shù)碼管燒壞。RL7~~RL2六條回復(fù)輸入線作為鍵盤的行輸入線,從74LS138的輸出線Y1引出鍵盤的列輸入線,這樣就構(gòu)成了六個(gè)按鍵,從上到下依次為:開關(guān)鍵ON/OFF,用于顯示器的開關(guān)控制;復(fù)位鍵R,用于系統(tǒng)出現(xiàn)突發(fā)情況時(shí),恢復(fù)系統(tǒng)狀態(tài)到初始狀態(tài);左向移動(dòng)鍵LM、右向移動(dòng)鍵RM,當(dāng)進(jìn)行時(shí)間設(shè)置時(shí),第三章軟件設(shè)計(jì)3.1整體設(shè)計(jì)首先在主程序中對(duì)系統(tǒng)環(huán)境,包括設(shè)置串口、端口以及芯片DS1302和8279進(jìn)行初始化,主程序流程圖如以下圖所示:3.2鍵盤中斷程序流,由8279對(duì)鍵盤進(jìn)行編程3.3顯示程序時(shí)分秒采用二十四小時(shí)制正計(jì)時(shí)的方式,初始為00:00:00,開始計(jì)時(shí),當(dāng)計(jì)時(shí)到23:59:59時(shí),觸發(fā)天數(shù)減一,如此循環(huán)進(jìn)行,直到天數(shù)減為0,倒計(jì)時(shí)結(jié)束。Ds1302時(shí)鐘顯示子程序

T_RST

Bit

P1.3;實(shí)時(shí)時(shí)鐘復(fù)位線引腳

T_CLK

Bit

P1.4;實(shí)時(shí)時(shí)鐘時(shí)鐘線引腳

T_IO

Bit

P1.5;實(shí)時(shí)時(shí)鐘數(shù)據(jù)線引腳

SECOND

EQU

30H

MINUTE

EQU

31H

HOUR

EQU

32H

ORG

0000H

LJMP

START

ORG

0060H

START:

;CLR

T_RST

;CLR

T_CLK

MOV

SP,#60H

;修改堆棧

MOV

SECOND,#00H

;初始時(shí)間設(shè)為12:00:00

MOV

MINUTE,#00H

MOV

HOUR,#12H

LCALL

SETDS1302

LCALL

GET1302

LCALL

DISPLAY

MAIN:

MOV

R3,#25

MOV

TMOD,#01H

MOV

TH0,#70H

;置定時(shí)器初值(定時(shí)40ms)

MOV

TL0,#00H

SETB

TR0

;啟動(dòng)定時(shí)器0

LP1:

JBC

TF0,LP2

;查詢計(jì)數(shù)溢出

SJMP

LP1

;未到40ms繼續(xù)計(jì)數(shù)

LP2:

MOV

TH0,#0B8H

;重新置定時(shí)器初值

MOV

TL0,#00H

LCALL

DISPLAY

;顯示

DJNZ

R3,LP1

;未到1S繼續(xù)循環(huán)

LCALL

GET1302

;每過(guò)1s從DS1302讀取一次時(shí)間

mov

r3,#25

SJMP

lp1

;字符顯示碼表

DIG_CODE:

DB

0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090

;數(shù)碼顯示子程序

DISPLAY:

MOV

DPTR,#DIG_CODE

;顯示秒

MOV

A,SECOND

ANL

A,#0FH

MOVC

A,@A+DPTR

MOV

P2,A

MOV

P1,#11011111b

LCALL

DIS_DELAY

MOV

A,SECOND

SWAP

A

ANL

A,#07H

MOVC

A,@A+DPTR

MOV

P2,A

MOV

P1,#11101111b

LCALL

DIS_DELAY

;顯示分

MOV

A,MINUTE

ANL

A,#0FH

MOVC

A,@A+DPTR

MOV

P2,A

MOV

P1,#11110111b

LCALL

DIS_DELAY

MOV

A,MINUTE

SWAP

A

ANL

A,#07H

MOVC

A,@A+DPTR

MOV

P2,A

MOV

P1,#11111011b

LCALL

DIS_DELAY

;顯示小時(shí)

MOV

A,HOUR

ANL

A,#0FH

MOVC

A,@A+DPTR

MOV

P2,A

MOV

P1,#11111101b

LCALL

DIS_DELAY

MOV

A,HOUR

SWAP

A

ANL

A,#03H

MOVC

A,@A+DPTR

MOV

P2,A

MOV

P1,#11111110b

LCALL

DIS_DELAYRET

顯示延時(shí)5ms子程序

DIS_DELAY:

PUSH

PSW

MOV

R7,#10

D1:

MOV

R6,#248

D2:

DJNZ

R6,$

DJNZ

R7,D1

POP

PSW

RET

;設(shè)置DS1302初始時(shí)間,并啟動(dòng)計(jì)時(shí)

SETDS1302:

CLR

T_RST

nop

CLR

T_CLK

nop

SETB

T_RST

nop

MOV

B,#8EH

;寫控制命令字

LCALL

INPUTBYTE

MOV

B,#00H

;寫保護(hù)關(guān)閉

LCALL

INPUTBYTE

SETB

T_CLK

nop

CLR

T_RST

MOV

R0,#SECOND

;內(nèi)存中的時(shí)間首地址

MOV

R1,#80H

;DS1302中的時(shí)間首地址

MOV

R7,#7

;字節(jié)數(shù)SETLOOP:

CLR

T_RST

nop

CLR

T_CLK

nop

SETB

T_RST

nop

MOV

B,R1

;寫命令字

LCALL

INPUTBYTE

MOV

A,@R0

;設(shè)置時(shí)間

MOV

B,A

LCALL

INPUTBYTE

INC

R0

INC

R1

INC

R1

SETB

T_CLK

nop

CLR

T_RST

nop

DJNZ

R7,SETLOOP

CLR

T_RST

nop

CLR

T_CLK

nop

SETB

T_RST

nop

MOV

B,#8EH

LCALL

INPUTBYTE

MOV

B,#80H

;開寫保護(hù)

LCALL

INPUTBYTE

SETB

T_CLK

nop

CLR

T_RST

nop

RET;---------------------------------------------------------------------------------------------------

;從DS1302讀取時(shí)間

GET1302:

MOV

R0,#SECOND

MOV

R1,#81H

;DS1302中讀時(shí)間的首地址

MOV

R7,#7

GETLOOP:

CLR

T_RST

nop

CLR

T_CLK

nop

SETB

T_RST

nop

MOV

B,R1

LCALL

INPUTBYTE

;寫命令字

LCALL

OUTPUTBYTE

;讀時(shí)間

MOV

@R0,A

;將從DS1302中讀取的時(shí)間從內(nèi)存中保存

INC

R0

;修改地址指針

INC

R1

INC

R1

SETB

T_CLK

nop

CLR

T_RST

/r/

溫馨提示

  • 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)論