基于單片機的萬年歷時鐘設計【畢業(yè)設計+開題報告+文獻綜述】_第1頁
已閱讀1頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  本科畢業(yè)設計(論文)</p><p><b> ?。ǘ?屆)</b></p><p>  基于單片機的萬年歷時鐘設計</p><p>  所在學院 </p><p>  專業(yè)班級 測控技術與儀器 </p>

2、;<p>  學生姓名 學號 </p><p>  指導教師 職稱 </p><p>  完成日期 年 月 </p><p><b>  摘 要</b></p><p>  電

3、子萬年歷是一種非常廣泛日常計時工具,對現(xiàn)代社會越來越流行。它可以對年、月、日、時、分、秒進行計時,還具有閏年補償?shù)榷喾N功能。對于數(shù)字電子萬年歷采用直觀的數(shù)字顯示,可以同時顯示年、月、日、時、分、秒等信息,還具有時間校準等功能。</p><p>  電子萬年歷的設計可以通過單片機制作來完成,其功能的實現(xiàn)主要通過軟件編程來完成,這樣可以降低電路的復雜性,降低成本。</p><p>  本文通過

4、對一個基于單片機的通過匯編語言編寫軟件來實現(xiàn)萬年歷功能電子時鐘的設計,從而達到學習、了解單片機相關指令在各方面的應用。系統(tǒng)由主控制器AT89C51、時鐘電路DS1302、顯示電路、按鍵電路、和復位電路等部分構成,能實現(xiàn)時鐘日歷顯示的功能,能進行時、分、秒的顯示。AT89C51單片機作為核心,功耗小,能在3V的低壓工作,電壓可選用3~5V電壓供電。而且DS1302的使用壽命長,誤差小。再通過八位數(shù)碼管動態(tài)掃描方式來顯示年、月、日、時、分、

5、秒等信息。</p><p>  因此,采用單片機AT89C51原理制作的電子萬年歷,不僅僅在原理上能夠成功的實現(xiàn)計時等功能,更符合我們實際生活的需要。</p><p>  綜上所述,本文設計的萬年歷具有讀取方便、顯示直觀、電路簡潔、成本低廉等優(yōu)點,符合設計目的與要求。</p><p>  關鍵詞:數(shù)字顯示,匯編語言,AT89C51單片機,DS1302時鐘芯片,動態(tài)掃

6、描</p><p>  Calendar Clock Design Based On Single Chip</p><p><b>  Abstract</b></p><p>  E-calendar day time is a very wide range of tools, increasingly popular in modern

7、 society. It can be year, month, day, hours, minutes, seconds for time, but also has leap year compensation to a variety of functions. For the digital electronic calendar using an intuitive digital display can simultaneo

8、usly display year, month, day, hours, minutes, seconds and other information, but also a time-calibration and other functions. </p><p>  The design of electronic calendar produced by MCU to complete the impl

9、ementation of its functions mainly through software programming to complete, this can reduce the circuit complexity and reduce costs.</p><p>  Through the adoption of a microcontroller-based&#

10、160;software written in assembly language to implement the design of electronic clock calendar function to achieve the learning, understanding all aspects of SCM-related 

11、instruction in the application. By main control AT89C51, clock circuit DS1302, display circuit, keystroke circuit and restore circuit component, to achieve clock calendar display function can be carried out, hours s

12、econds of the show and real-time temperature display. AT89C51 microcont</p><p>  Therefore, the principle of making use of SCM AT89C51 electronic calendar, not just in principle to the successful realization

13、 of timing and other functions, more in line with the needs of our real life.</p><p>  In summary, the paper design of the calendar with easy to read, intuitive display, circuit simplicity, low cost, etc., m

14、eet the design objectives and requirements.</p><p>  Keywords: Digital Display, Assembly Language, AT89C51 Microcontroller, DS1302 Clock Chip, Dynamic Scanning</p><p><b>  目錄</b><

15、/p><p><b>  摘 要I</b></p><p>  AbstractII</p><p><b>  1 緒論1</b></p><p>  1.1課題的背景與意義1</p><p>  1.2萬年歷發(fā)展動態(tài)2</p><p>  

16、2設計要求與方案論證4</p><p>  2.1設計要求與功能4</p><p>  2.2設計的方案論證與確定4</p><p>  2.2.1顯示模塊的論證4</p><p>  2.2.2時鐘芯片的論證5</p><p>  2.3最終方案的確定5</p><p><b

17、>  3系統(tǒng)硬件設計6</b></p><p>  3.1單片機系統(tǒng)6</p><p>  3.2 AT89C51單片機7</p><p>  3.2.1 AT89C51描述7</p><p>  3.2.2 AT89C51引腳圖及介紹7</p><p>  3.2.3 AT89C51功能特

18、性9</p><p>  3.2.4復位電路9</p><p>  3.3 DS1302時鐘芯片10</p><p>  3.3.1 DS1302引腳功能及結構10</p><p>  3.3.2 DS1302的控制字11</p><p>  3.3.3數(shù)據(jù)輸入輸出11</p><p&g

19、t;  3.3.4 DS1302的寄存器11</p><p>  3.3.5 DS1302實時時間流程11</p><p>  3.4顯示和鍵盤模塊12</p><p>  3.4.1陽歷算法12</p><p>  3.4.2按鍵消抖13</p><p><b>  4軟件設計14</b&

20、gt;</p><p>  4.1程序流程框圖14</p><p>  4.2陽歷計算流程圖15</p><p>  4.3時間調整流程圖16</p><p>  4.3.1日期調整16</p><p>  4.3.2時間調整17</p><p><b>  5測試結果18

21、</b></p><p><b>  6結論20</b></p><p><b>  7參考文獻21</b></p><p>  8致謝錯誤!未定義書簽。</p><p><b>  附錄22</b></p><p>  附錄1 原理

22、圖22</p><p><b>  附錄2 程序23</b></p><p><b>  1 緒論</b></p><p>  1.1課題的背景與意義</p><p>  在當代繁忙的工作與生活中,時間與我們每一個人都有非常密切的關系,每個人都受到時間的影響。為了更好的利用我們自己的時間,需要一

23、款靈活、穩(wěn)定而又功能強大的自動定時控制系統(tǒng),以規(guī)范本單位的作息時間或定時控制一些設備。目前,市面上出現(xiàn)的一些時控設備或功能單一,或使用煩瑣,或價格昂貴,總有一些不盡如人意的地方[1]。我們必須對時間有一個度量,因此產生了鐘表。鐘表的發(fā)展是非常迅速的,17 世紀中葉, 由荷蘭人C. Huygens來發(fā)明的第一個鐘擺與以前任何計時裝置相比, 擺鐘的精確度提高了上百倍,而他隨后發(fā)明的螺旋平衡彈簧,又進一步提高精度、減小體積, 導致了懷表的出現(xiàn)

24、。然而再好的擺鐘,其精度也只能達到每年誤差不超過一秒[2]。1939年出現(xiàn)了利用石英晶體振動計時的石英鐘, 每天誤差只有千分之二秒, 到二次大戰(zhàn)后精度提高到30 年才差一秒。很快, 測年的技術又推進到原子層面, 1948 年出現(xiàn)第一臺原子鐘, 1955年又發(fā)明了銫原子鐘, 利用Cs133原子的共振頻率計時,現(xiàn)在精度已經高達每天只差十億分之一秒[2]。</p><p>  從剛開始的機械式鐘表到現(xiàn)在普遍用到的數(shù)字式

25、鐘表,即使現(xiàn)在鐘表千奇百怪,但是它們都只是完成一種功能——計時功能,只是工作原理不同而已,在人們的使用過程中,逐漸發(fā)現(xiàn)了鐘表的功能太單一,無法更大程度上的滿足人們的需求。發(fā)展到現(xiàn)在人們廣泛使用的萬年歷。萬年歷在家庭居室、學校、車站和廣場使用越來越廣泛,給人們的生活、學習、工作帶來極大的方便[3]。電子萬年歷具有信息量大、直觀清晰、經濟實用等優(yōu)點,正成為家庭、商場、公共場所等新的消費熱點,具有重要的開發(fā)價值[4]。隨著科技的不斷發(fā)展,家用

26、電子產品不但種類日益豐富,而且變得更加經濟實用,,功能也越來越齊全,除了公歷年月、日、時分秒、星期顯示及鬧鈴外,又增加了農歷、溫度、24節(jié)氣及l(fā)2生肖等顯示。甚至還有語音報時等獨特功能。再加上造型新穎別致,附帶立體動感畫面,配合鬻潺流水、悅耳鳥嗚的背景音樂,確實是現(xiàn)代家庭、辦公室、工廠、車站等查看時問或饋贈親朋的理想用品,滿足了當前人們追求個性化生活的需要。</p><p>  萬年歷是我國古代傳說中最古老的一部

27、太陽歷。為紀念歷法編撰者萬年功績,便將這部歷法命名為“萬年歷”[5]。而現(xiàn)在所使用的萬年歷,實際上就是記錄一定時間范圍內(比如100年或更多)的具體陽歷或陰歷的日期的年歷,方便有需要的人查詢使用,與原始歷法并無直接聯(lián)系。隨著電子技術的發(fā)展,我們用于計時的工具也在不斷地發(fā)展,而單片機技術的出現(xiàn)使得萬年歷有了的心得發(fā)展方向。單片機具有體積小、功能全、性價比高等優(yōu)點,在工業(yè)控制、家用電器、通信、信息處理、尖端武器等各類控制領域中發(fā)揮極大地作用

28、。單片機技術已然成為現(xiàn)在電子信息、電氣、通信、自動化、機電一體化等行業(yè)的技術人員必須掌握的技術[6]。用最少的芯片就能實現(xiàn)強大的功能,這是將來電子產品的主流方向,它將一步步取代替他同類產品。</p><p>  二十一世紀的今天,最具代表性的計時產品就是電子萬年歷。近代世界鐘表業(yè)界有三次革命:1.擺和擺輪游絲的發(fā)明,相對穩(wěn)定的機械振蕩頻率源使鐘表的走時差從分級縮小到秒級,代表性的產品就是帶有擺或擺輪游絲的機械鐘或

29、表。2.是石英晶體振蕩器的應用,發(fā)明了走時精度更高的石英電子鐘表,使鐘表的走時月差從分級縮小到秒級。3.萬年歷的發(fā)明使計時產品的走時日差從分級縮小到1/600萬秒,從原有傳統(tǒng)指針計時的方式發(fā)展為人們日常更為熟悉的夜光數(shù)字顯示方式,直觀明了,并增加了全自動日期、星期、溫度以及其他日常附屬信息的顯示功能,它更符合消費者的生活需求!因此,電子萬年歷的出現(xiàn)帶來了鐘表計時業(yè)界跨躍性的進步。</p><p>  1.2萬年歷

30、發(fā)展動態(tài)</p><p>  測時的原理是運用時間上穩(wěn)定的周期性過程, 其實物理學上周期性過程的時間范圍極大, 短到普朗克時間的10-43s, 長到天文上的1017~1018s, 為測時提供了廣闊的空間[7]。</p><p>  但是話又得說回來, 盡管有精確物理定義的“秒”,我們日常使用仍然是天文計時, 仍然是按晝夜作息、按年度預算。因為天文周期實際上也是人類生活環(huán)境的周期,其精度一般

31、講也足夠我們日常使用。即使有了原子鐘,仍然需要有歷法的天文計時[8]。</p><p>  歸納起來,人類計時有兩種系統(tǒng): 一種是天文計時,一種是物理計時。前面說到, 計時是從天文方法開始的,然而天文上的周期性并不像我們外行人想象的那樣規(guī)則。以太陽為標準的天文“日”長度并不相等,現(xiàn)在一年之中就可以差51 秒; 更不用說根據(jù)珊瑚化石生長紋判斷, 四億年前一年有四百多天, 在地質尺度上來講地球自轉速度是在減慢的。如此

32、看來, 用獨立的物理方法計時,避免天文計時中的不穩(wěn)定因素,是極為重要的[9]。</p><p>  隨著科技的不斷發(fā)展,萬年歷的出現(xiàn)解決了我們的這些問題。對手表稍有了解的人, 都應該聽說過手表三大復雜技術之一的萬年歷。它的英文“Perpetual calendar” 應直譯為“ 永久日歷”。但事實上, 無論是萬年還是永久都言過其實了。我們所見到的力年歷表, 除了正常的上弦和校對時間外, 基本上每一百年就需要更正一

33、次日期, 所以稱為一百年厲表才比較準確。在它的基礎上進一步改造, 增加數(shù)組齒輪和撥桿, 理論上可以制造出四百年歷表。只有突破了四百年大關才是真正的萬年歷表。</p><p>  通過技術上的發(fā)展,電子電路對于萬年歷的發(fā)展祈禱了重大作用。電子電路的設計可以被劃分為兩個不同的領域:第一個領域將涉及如何設計一個可以完成所指定功能的電路,有時,這些功能的實現(xiàn)需要基于特定的實驗室條件;而第二個領域則涉及如何設計同樣的電路,

34、以保證它的每個產品模塊能完成所規(guī)定的功能,而不附加任何其他不期望和未指定的功能,在這個領域中,對產品的可靠性要求總是要高于對產品的壽命要求[10]。</p><p>  將模擬設計和數(shù)字設計劃分為兩個完全獨立的學科,是一種令人不安的傾向,而且這樣的做法也不利于形成好的教學效果。數(shù)字電路實際上只是模擬電路的一個極端產物,任何透徹了解模擬電路原理的人,都能很好地分析邏輯設備中非常難以掌握的運行機理[10]。電子控制電

35、路不僅在日常生活中有大量應用,而且廣泛地應用于科學研究中 [11],特別是以單片機為主的設計發(fā)展的尤為迅速:</p><p>  單片機發(fā)展極為迅速,當前世界上各大芯片制造公司郝推出了自己的單片機,從8位、16位到32位等,但它們各具特色,互成互補,為單片機的應用提供廣闊的天地[12]。</p><p>  2設計要求與方案論證</p><p>  2.1設計要求與

36、功能</p><p>  通過利用AT89C51單片機來設計一個能夠顯示年、月、日、時、分、秒的電子萬年歷。再通過LED或者LCD顯示設備顯示。能夠達到任意調整年、月、日、時、分、秒。</p><p>  (1)顯示年、月、日、時、分、秒等信息</p><p>  (2)具有調整日期和時間等功能</p><p><b>  其設計方

37、向如下:</b></p><p>  (1)萬年歷可以采用專用的時鐘芯片來產生,由芯片產生穩(wěn)定的時間,單片機讀取,處理,然后顯示出來。</p><p>  (2)用鍵盤實現(xiàn)數(shù)據(jù)的輸入,和顯示模式的選擇。</p><p>  大致歸納為把AT89C51單片機作為主控系統(tǒng),將專用的時鐘芯片,顯示模塊,鍵盤模塊連接一起,形成一個萬年歷的系統(tǒng)。時鐘芯片作為萬年歷

38、的產生裝置,通過單片機的讀取傳輸?shù)斤@示模塊,數(shù)字化直觀的顯示出結果。同時還可以通過鍵盤模塊設置任意你想要設置的是今年與日期。</p><p>  2.2設計的方案論證與確定</p><p>  2.2.1顯示模塊的論證</p><p>  方案1:采用LCD液晶顯示屏,液晶顯示屏輕巧、節(jié)省空間、無幾何失真、可視面積大、畫面穩(wěn)定,屏幕調節(jié)方便,使用數(shù)字接口無需調節(jié),即

39、使模擬接口也可以auto鍵自動調整。但是價格昂貴,有拖影問題,非標準分辨率下顯示效果差,維修費用也相當昂貴。</p><p>  方案2:采用LED靜態(tài)顯示,單片機只要把要顯示的字形代碼發(fā)送到接口電路就可以了,直到要顯示新的數(shù)據(jù)時,再發(fā)送新的代碼,使用這種方法CPU的開銷小,控制程序簡單,但占用較多的硬件資源,每個顯示器都要占用單獨的具有鎖存功能的I/O接口用于筆劃段字形代碼[13]。</p>&l

40、t;p>  方案3:采用動態(tài)掃描顯示,其接口電路是把所有顯示器的8個筆劃段da-dp同名端連在一起,而每一個顯示器的公共極com各自獨立地收I/O線控制。CPU向字段輸出口送出字形碼時,所有顯示器接收到相同的字形碼,但究竟是哪個顯示器亮,取決于com端,而這一端是有I/O控制的,因此就可以自行決定合適顯示哪一位。采用分時的方法,輪流控制各個顯示器的com端,使各個顯示器輪流點亮。此過程中,每位顯示器的點亮時間是極為短暫的(約1ms

41、),但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,只要掃描的速度足夠快,給人的感覺就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感[13]。</p><p>  2.2.2時鐘芯片的論證</p><p>  方案1:直接采用單片機定時計數(shù)器提供秒信號,使用程序實現(xiàn)年、月、日、時、分、秒計數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實現(xiàn)的時間誤差較大。</p><p> 

42、 方案2:采用DS1302時鐘芯片實現(xiàn)時鐘,DS1302芯片是一種高性能、低功耗的實時時鐘芯片,附加31字節(jié)的靜態(tài)RAM,采用SPI三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號和RAM數(shù)據(jù)。實時時鐘可以提供秒、分、時、日、月、年、,一個月小于31天時可以自動調整,且具有閏年補償功能。工作電壓2.5V~5.5V。采用雙電源供電,可設置備用電源充電方式,提供了對后背電源進行涓細電流充電的能力。</p>

43、<p>  2.3最終方案的確定</p><p>  綜上所述,本設計采用AT89C51單片機作為住控制系統(tǒng),DS1302時鐘芯片作為時鐘模塊,顯示模塊采用LED動態(tài)掃描方式,再通過鍵盤模塊的控制來實現(xiàn)電子萬年歷的功能。其原理圖如下:</p><p><b>  圖2-1 原理框圖</b></p><p><b>  3

44、系統(tǒng)硬件設計</b></p><p><b>  3.1單片機系統(tǒng)</b></p><p>  一個完整的單片機系統(tǒng),通常包括鍵盤輸入、現(xiàn)實輸出、打印輸出、數(shù)據(jù)采集、伺服驅動、數(shù)據(jù)存儲、數(shù)據(jù)通信等眾多功能模塊,這些功能模塊只能通過I/O端口實現(xiàn)與單片機的信息交互。</p><p>  但是單片機I/O端口只能接收和發(fā)送邏輯電平數(shù)字信

45、號,而I/o設備輸出的信號種類、信號電平各異。所以,在單片機前端,用接口芯片對信號進行預處理,如模數(shù)轉換、RS-232接口電平轉換,在單片機后端也要進行處理,如電平轉換、數(shù)模轉換及增強驅動能力等,以滿足不同場合的需要[13]。</p><p>  同時,受到單片機面積和封裝的限制,單片機的I/O端口的數(shù)量有限,有些應用場合,必須進行I/O端口擴展。</p><p>  現(xiàn)在很多的單片機都是

46、總線結構的,這里的總線是指傳統(tǒng)的地址、數(shù)據(jù)、控制三總線,即便有些常用的單片機沒有三總線,只要I/O端口充裕,可以方便模擬實現(xiàn)三總線,以便對總線型接口芯片進行控制。</p><p>  由于方便控制,三總線得到了廣泛的應用。但是作為并行總線,也有一些局限性,不利于遠距離傳輸,與I/O端口的數(shù)目存在矛盾。單片機要應用某些設備構成系統(tǒng),本身必須支持這些總線接口。所以,要設計一個單片機應用系統(tǒng),首先需要進行總線接口的擴展

47、[13]。</p><p>  單片機是一種集成電路芯片,采用超大規(guī)模集成電路技術把具有數(shù)據(jù)處理能力(如算術運算、邏輯運算、數(shù)據(jù)傳送、中斷處理)的微處理器(cpu),隨機存儲器(ram)、只讀程序存儲器(rom)、輸入/輸出電路(i/o),可能還包括定時/計時器、串多路轉換器及a/d轉換器等電路集成到一片芯片上,構成一個最小而又完善的計算機系統(tǒng)。他們之間相互連接的結構如圖3-1所示[14]。這些電路能在軟件的控制

48、下準確、迅速、高效的完成程序設計者事先規(guī)定的任務。</p><p>  圖3-1 單片機結構圖</p><p>  單片機又不同于單板機,芯片在沒有開發(fā)前,她只是具備功能極強的超大規(guī)模集成電路,如果賦予它特定的程序,它便是一個最小的、完整的微型計算機控制系統(tǒng),它與單板機或個人電腦(pc)有著本質的區(qū)別。單片機的應用屬于芯片級應用,需要用戶了解單片機芯片的結構和指令系統(tǒng),以及其他集成電路應用

49、技術和系統(tǒng)設計所需要的理論與技術,用這樣特定的芯片設計應用程序,從而是芯片具備特定的功能[14]。</p><p>  不同的單片機有著不同的硬件特征和軟件特征,即它們的技術特征均不盡相同,硬件特征取決于單片機芯片的內部結構,用戶要使用某種單片機,必須了解該新廠品是否滿足需要的功能和應用系統(tǒng)所要求的特性指標。這里的技術特征包括功能特性、控制特性和電氣特性等等,這些信息需要從生產廠商的技術手冊中得到。軟件特征是指令

50、系統(tǒng)特性和開發(fā)支持環(huán)境,指令特性即我們熟悉的單片機的尋址方式、數(shù)據(jù)處理和邏輯處理方式,輸入輸出特性及電源的要求等等。開發(fā)支持的環(huán)境包括指令的兼容及可移植性,支持軟件(包括可支持開發(fā)應用程序的軟件資源)及硬件資源。要利用某種信號單片機開發(fā)自己的應用系統(tǒng),掌握其結構特征和技術特征是必需的[14]。</p><p>  單片機的應用意義遠不極限于它的應用范疇或由此帶來的經濟效益,更重要的是它已從根本上改變了傳統(tǒng)的控制方

51、法和設計思想,是控制技術的一次革命,是一個重要的里程碑。</p><p>  3.2 AT89C51單片機</p><p>  3.2.1 AT89C51描述</p><p>  AT89C51是一個低電壓,高性能CMOS8位單片機帶有4K字節(jié)的可反復擦寫的程序存儲器(PENROM)。和128字節(jié)的存取數(shù)據(jù)存儲器(RAM),這種器件采用ATMEL公司的高密度、不容易

52、丟失存儲技術生產,并且能夠與MCS-51系列的單片機兼容。片內含有8位中央處理器和閃爍存儲單元,有較強的功能的AT89C51單片機能夠被應用到控制領域中。</p><p>  3.2.2 AT89C51引腳圖及介紹</p><p><b>  引腳圖如3-2:</b></p><p>  圖3-2 AT89C51引腳圖</p>&

53、lt;p>  下面簡單介紹下本設計用到的幾個引腳:</p><p>  P0口: P0口是一組8位漏極開路雙向I/O口,即地址/數(shù)據(jù)總線復用口。作為輸出口時,每一個管腳都能夠驅動8個TTL電路。當“1”被寫入P0口時,每個管腳都能夠作為高阻抗輸入端。P0口還能夠在訪問外部數(shù)據(jù)存儲器或程序存儲器時,轉換地址和數(shù)據(jù)總線復用,并在這時激活內部的上拉電阻。P0口在閃爍編程時,P0口接收指令,在程序校驗時,輸出指令,

54、需要接電阻[15]。</p><p>  P1口: P1口一個帶內部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅動4個TTL電路。對端口寫“1”,通過內部的電阻把端口拉到高電平,此時可作為輸入口。因為內部有電阻,某個引腳被外部信號拉低時輸出一個電流。閃爍編程時和程序校驗時,P1口接收低8位地址。</p><p>  本設計中P1口通過2個74LS47譯碼器分別與顯示日期數(shù)碼管和顯示時間

55、數(shù)碼管相連接,輸入代碼通過P1口輸入到74LS47傳到數(shù)碼管顯示相應的字形。以便達到顯示年、月、日、時、分、秒的效果。</p><p>  P2口:P2口是一個內部帶有上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅動4個TTL電路。對端口寫“1”,通過內部的電阻把端口拉到高電平,此時,可作為輸入口。因為內部有電阻,某個引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器時,P2口

56、送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器時,P2口線上的內容在整個運行期間不變。閃爍編程或校驗時,P2口接收高位地址和其它控制信號[15]。</p><p>  本設計中P2.0-P2.6口通過6個2N5551三極管連接到數(shù)碼管的com端,控制數(shù)碼管上來自P1口的字形代碼顯示,直觀、準確地顯示當前的日期與時間。</p><p>  P3口:P3口是一組帶有內部電阻的8位雙向I/O

57、口,P3口輸出緩沖故可驅動4個TTL電路。對P3口寫如“1”時,它們被內部電阻拉到高電平并可作為輸入端時,被外部拉低的P3口將用電阻輸出電流。</p><p>  在本設計中P3口分成2部分控制,P3.1-P3.4分別連到時鐘芯片的SCLK、I/O和RST端口,讀取DS1302產生的萬年歷,然后通過P1口傳輸?shù)綌?shù)碼管顯示。P3.5-P3.7通過3個開關按鈕的連接,實現(xiàn)鍵盤模塊的控制,分別實現(xiàn)調時、加1、調日歷的效

58、果。</p><p>  時鐘震蕩器:AT89C51中有一個用于構成內部震蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構成自然震蕩器。 外接石英晶體及電容C1,C2接在放大器的反饋回路中構成并聯(lián)震蕩電路。對外接電容C1,C2雖然沒有十分嚴格的要求,但電容容量的大小會輕微影響震蕩頻率的高低、震蕩器工作的穩(wěn)定性、起振的難易程序

59、及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30PF±10PF,而如果使用陶瓷振蕩器建議選擇40PF±10PF。用戶也可以采用外部時鐘。采用外部時鐘的電路如圖示。這種情況下,外部時鐘脈沖接到XTAL1端,即內部時鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部時鐘信號是通過一個2分頻觸發(fā)器后作為內部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應符合產品技術條件的要求[

60、15]。</p><p>  3.2.3 AT89C51功能特性</p><p>  AT89C51提供以下的功能標準:4K字節(jié)閃爍存儲器,128字節(jié)隨機存取數(shù)據(jù)存儲器,32個I/O口,2個16位定時/計數(shù)器,1個5向量兩級中斷結構,1個串行通信口,片內震蕩器和時鐘電路。另外,AT89C51還可以進行0HZ的靜態(tài)邏輯操作,并支持兩種軟件的節(jié)電模式。閑散方式停止中央處理器的工作,能夠允許隨機

61、存取數(shù)據(jù)存儲器、定時/計數(shù)器、串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存隨機存取數(shù)據(jù)存儲器中的內容,但震蕩器停止工作并禁止其它所有部件的工作直到下一個復位。</p><p><b>  3.2.4復位電路</b></p><p>  復位操作分為上電自動復位和按鍵手動復位。</p><p>  上電自動復位是在加點瞬間電容通過充電來實現(xiàn)。手動復

62、位指通過接通一按鈕開關進入復位狀態(tài)。</p><p>  本設計采用的是手動復位和上電自動復位的組合,如圖3-3:</p><p><b>  圖3-3 復位電路</b></p><p>  3.3 DS1302時鐘芯片</p><p>  3.3.1 DS1302引腳功能及結構</p><p>

63、  在DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復位/片選線,通過把RST輸入驅動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RS

64、T接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc≥2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細說明。SCLK始終是輸入端。如圖3-

65、4:</p><p>  圖3-4 DS1302引腳圖</p><p>  3.3.2 DS1302的控制字</p><p>  DS1302 的控制字符表示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要

66、進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。</p><p>  3.3.3數(shù)據(jù)輸入輸出</p><p>  在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。</p><p>  3.3

67、.4 DS1302的寄存器</p><p>  DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字。此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內容。 DS1302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)

68、為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。如圖3-5:</p><p>  圖3-5 DS1302日歷、時間寄存器</p><p>  3.3.5 DS1302實時時間流程</p><p>  DS1302 與

69、微處理器進行數(shù)據(jù)交換時,首先由微處理器向電路發(fā)送命令字節(jié),命令字節(jié)最高位MSB(D7)必須為邏輯1,如果D7=0,則禁止寫DS1302,即寫保護;D6=0,指定時鐘數(shù)據(jù),D6=1,指定RAM數(shù)據(jù);D5~D1指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入), D0=1,指定讀操作(輸出)。 </p><p>  在DS1302的時鐘日歷或RAM進行數(shù)據(jù)傳送時,DS1302必須首先發(fā)送命令

70、字節(jié)。若進行單字節(jié)傳送,8位命令字節(jié)傳送結束之后,在下2個SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。</p><p>  DS1302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下的RAM寄存器,在此方式下可一次性讀、寫所有的RAM的31個字節(jié)。<

71、/p><p>  3.4顯示和鍵盤模塊</p><p><b>  3.4.1陽歷算法</b></p><p>  時鐘開始顯示為當前時間,然后每秒秒位加1 ,到9后,10秒位加1,秒位回0。10秒位到5后,即59秒 ,分鐘加1,10秒位回0。依次類推,時鐘最大的顯示值為23小時59分59秒。這里只要確定了1秒的定時時間, 其他位均以此為基準往上累

72、加。 同時時鐘達到最大值的時候天數(shù)也增加一位,知道顯示了7后再變?yōu)?,同時陰歷和陽歷的天數(shù)也加1,根據(jù)不同的月份顯示的天數(shù)陽歷有28,29,30,31天,到了12個月后,年數(shù)自動增加1,以此類推,實現(xiàn)萬年歷功能。</p><p>  我們采用的是動態(tài)掃描顯示,如圖:</p><p>  圖3-6 LED顯示管</p><p><b>  3.4.2按鍵消抖

73、</b></p><p>  在這一模塊中,本設計采用三個開關按鈕來控制時間和日期的調整,實現(xiàn)對萬年歷的時間和日期調整功能。但是由于開關的機械彈性,當開關閉合或者斷開時并非馬上就實現(xiàn)。從而導致過程中會伴隨一連串的抖動。為了消除抖動,我們在開關上并聯(lián)一個電容,利用電容充放電的延時功能來補償按鍵抖動的延時,從而達到消抖的功能。其電路圖如下:</p><p>  圖3-7 按鍵硬件消

74、抖電路</p><p><b>  4軟件設計</b></p><p><b>  4.1程序流程框圖</b></p><p>  圖4-1 主程序流程圖</p><p>  4.2陽歷計算流程圖</p><p>  圖4-2 陽歷計算流程圖</p><p

75、>  4.3時間調整流程圖</p><p><b>  4.3.1日期調整</b></p><p>  圖4-3 調整日期程序流程圖</p><p><b>  4.3.2時間調整</b></p><p>  圖4-4 調整時間程序流程圖</p><p><b&g

76、t;  5測試結果</b></p><p>  采用PROTEUS仿真軟件對設計進行仿真實驗,采用2個6位一體LED數(shù)碼管動態(tài)掃描進行顯示年、月、日、時、分、秒。主控制是采用AT89C51單片機,時鐘芯片是DS1302,再應用2個74LS47連接到數(shù)碼管,再用3個開關對日期和時間進行調整控制,最后配合上若干電阻、電容、晶振、2N5551三極管和4002四輸入端雙或非門形成如下仿真電路圖:</p&

77、gt;<p><b>  調節(jié)年:</b></p><p><b>  調節(jié)月:</b></p><p><b>  調節(jié)日:</b></p><p><b>  調節(jié)時:</b></p><p><b>  調節(jié)分:</b&

78、gt;</p><p><b>  調節(jié)秒:</b></p><p>  按鍵功能,自上而下分別是調時間、加1鍵、調日期:</p><p><b>  6結論</b></p><p>  在此次設計中,知道了做凡事要有一顆平常的心,不要想著走捷徑,一步一腳印。也練就了我們的耐心,做什么事都在有耐心。

79、此次設計中學到了很多很多東西,這是最重要的。設計中困難重重,內容繁瑣,但是收獲也更加豐富。各種芯片的用途,內部結構等等都得到了充分的熟悉。順利如期的完成本次畢業(yè)設計給了我很大的信心,讓我了解專業(yè)知識的同時也對本專業(yè)的發(fā)展前景充滿信心。雖然最后成果不能真正意義上的算是一個萬年歷,但是,由于是自己一步一步查找資料完成的,當中的成就感就不言而喻了。本次設計過程中,通過資料的搜索也慢慢的讓我積累了不少知識,同時也慢慢記憶起學過的知識,對于大學學

80、習過程中學到的知識鞏固有個不小的作用。設計過程的枯燥完全都已經被仿真成功那時的喜悅沖刷。</p><p>  本設計的萬年歷主要是利用AT89C51單片機作為主控芯片,通過讀取DS1302時鐘芯片產生的萬年歷經過P1口傳到2個74LS47譯碼器上,再經過74LS47的譯碼將相應的字形數(shù)據(jù)傳送到數(shù)碼管顯示出來。我們采用的是LED動態(tài)掃描方法來實現(xiàn)數(shù)據(jù)的顯示,這樣即直觀準確,而且硬件連線比較簡單,雖然在掃描過程中會有

81、1ms左右的點亮過程,但我們肉眼是看不出來的,所以不影響效果。</p><p>  總而言之,本萬年歷能夠清楚的顯示年、月、日、時、分、秒的功能,同時還可以通過幾個按鍵對其進行調日期、時間等操作,基本上達到了設計要求。通過這次設計,我也明白了,做一件事耐心是決定一切的因素,就是因為堅持對設計的一直改進才能夠達到自己的目標。付出總是會有回報,雖然發(fā)了大量時間在設計上,但我也從中學到了很多專業(yè)知識,這就是寶貴的財富。

82、</p><p><b>  7參考文獻</b></p><p>  [1]馬慶勇,吳中明.基于單片機的多功能時鐘控制電路[J].電子科技編輯部2009,22(3):56-59.</p><p>  [2]ANDREW ESW J H.鐘表的編年史[J].科學出版社,2002,(11):54-63.</p><p>  

83、[3]肖炎根,舒望.基于實時鐘芯片的電子萬年歷的設計[J].電子技術編輯部,2007,Z3:91-94.</p><p>  [4]劉德全.可調家用萬年歷的單片機原理[J].寧夏師范學院學報,2008,(03):95-98.</p><p>  [5]集成電路簡明應用手冊.人民郵電出版社,2002:22-33.</p><p>  [6]李超青.單片機原理及接口技術

84、[M].北京:北京航空航天大學出版社,2002:2-2.</p><p>  [7]AUDOINC,GUINOTB.The Measurement of Time. Time,F(xiàn)requency and the Atomic Clock [M].U K:Cambridge University Press,2001:335.</p><p>  [8]余明主編.簡明天文學教程[M].北京:

85、 科學出版社, 2003:404.</p><p>  [9]WELLS J W.Coral growth and geochronometry[J].Nature,1963,197:948-950.</p><p>  [10]Tim WiUiams.電路設計技術與技巧[M].北京:電子工業(yè)出版社,2006:2-3. </p><p>  [11]陳爾紹.電子控制

86、電路實例[M].北京:電子工業(yè)出版社,2004:2-5.</p><p>  [12]楊淑英.單片機應用的廣闊前景[J].價值工程編輯部,2010,(02):248-248.</p><p>  [13]陳小忠,黃寧,趙小俠.單片機接口技術實用子程序[M].北京:人民郵電出版社,2005.9:2-3.</p><p>  [14]彭為.單片機典型系統(tǒng)設計實例精講[M

87、].北京:電子工業(yè)出版社,2006.5:6-7</p><p>  [15]李朝青.單片機原理接口技術[M].北京:北京航空航天大學出版社,2006.12:10-20</p><p>  [16]田力,馬鳴.51系列單片機開發(fā)實例精解[M].北京:中國電力出版社,2009:10-13</p><p>  [17]張靖武,周靈彬.單片機系統(tǒng)的PROTEUS設計與仿真[

88、M].北京:電子工業(yè)出版社,2007.4:3-5</p><p>  [18]張靖武,周靈彬.單片機原理、應用與PROTEUS仿真[M].北京:電子工業(yè)出版社,2008.8:2-20</p><p><b>  附錄</b></p><p><b>  附錄1 原理圖</b></p><p><

89、;b>  附錄2 程序</b></p><p>  SCLK EQU P3.2</p><p>  IO EQU P3.3</p><p>  RST EQU P3.4</p><p>  TRL EQU P3.5</p><p

90、>  JIA1 EQU P3.6</p><p>  TSH EQU P3.7</p><p>  YEAR DATA 66H</p><p>  MONTH DATA 65H</p><p>  WEEK DATA 64H </p><p&

91、gt;  DAY DATA 63H</p><p>  HOUR DATA 62H</p><p>  MINUTE DATA 61H</p><p>  SECOND DATA 60H</p><p>  DS_ADDR DATA 32H</p><p>  

92、DS_DATA DATA 31H</p><p>  ORG 0000H</p><p>  AJMP START</p><p>  MAIN2F:LJMP MAIN2</p><p>  START:MOV SP,#70H</p><p>  LCALL D

93、ELAY1</p><p>  MOV DS_ADDR,#8EH</p><p>  MOV DS_DATA,#00H</p><p>  LCALL WRITE</p><p>  START0:MOV DS_ADDR,#81H</p><p>  LCALL

94、 READ</p><p>  ANL A,#7FH</p><p>  MOV DS_ADDR,#80H</p><p>  MOV DS_DATA,A</p><p>  LCALL WRITE</p><p>  START1:MOV

95、 DS_ADDR,#0C0H</p><p>  MOV DS_DATA,#9CH</p><p>  LCALL WRITE</p><p>  MOV 20H,#0</p><p>  MOV 21H,#0FH</p><p>  MOV

96、22H,#0</p><p>  MAIN1:JB TRL,MAIN2FA</p><p>  MOV 22H,#1</p><p>  AJMP MAIN2FB</p><p>  MAIN2FA:JB TSH,MAIN2F</p><p>  

97、MOV 22H,#2</p><p>  MOV DS_ADDR,#81H</p><p>  LCALL READ</p><p>  ORL A,#80H</p><p>  MOV DS_ADDR,#81H</p><p>  MOV DS_D

98、ATA,A</p><p>  LCALL WRITE</p><p>  MAIN4:LCALL DISP </p><p>  JNB TSH,MAIN4</p><p>  MOV 22H,#2</p><p>  LJMP SSS</p>&

99、lt;p>  MAIN2FB:MOV DS_ADDR,#81H</p><p>  LCALL READ</p><p>  ORL A,#80H</p><p>  MOV DS_ADDR,#80H</p><p>  MOV DS_DATA,A</p><

100、p>  LCALL WRITE</p><p>  MAIN4J:LCALL DISP</p><p>  JNB TRL,MAIN4J</p><p>  MOV 22H,#1</p><p>  NNN:LCALL DISP</p><p>  JNB

101、 TRL,YYY</p><p>  MOV 20H,#8</p><p>  LCALL DISP</p><p>  JB JIA1,NNN</p><p>  NNN2:LCALL DISP</p><p>  JNB JIA1,NNN2</p>

102、<p>  MOV R7,YEAR</p><p>  LCALL JIAY1</p><p>  MOV YEAR,A</p><p>  CJNE A,#30H,NNN1</p><p>  MOV YEAR,#06</p><p>  NNN1:

103、MOV DS_ADDR,#8CH</p><p>  MOV DS_DATA,YEAR</p><p>  LCALL WRITE</p><p>  MOV R0,YEAR</p><p>  LCALL DIVIDE</p><p>  MOV 4AH

104、,R1</p><p>  MOV A,4AH</p><p>  SWAP A</p><p>  MOV 4AH,A</p><p>  MOV 4BH,R2</p><p>  MOV A,4BH</p><p>  SWAP

105、 A</p><p>  MOV 4BH,A</p><p>  SJMP NNN</p><p>  YYY:LCALL DISP</p><p>  JNB TRL,YYY</p><p>  YYY3:JNB TRL,DDD</p>

106、<p>  MOV 20H,#4</p><p>  LCALL DISP</p><p>  JB JIA1,YYY3</p><p>  YYY2:LCALL DISP</p><p>  JNB JIA1,YYY2</p><p> 

107、 MOV R7,MONTH</p><p>  LCALL JIAY1</p><p>  MOV MONTH,A</p><p>  CJNE A,#13H,YYY1</p><p>  MOV MONTH,#1</p><p>  YYY1:MOV

108、 DS_ADDR,#88H</p><p>  MOV DS_DATA,MONTH</p><p>  LCALL WRITE</p><p>  MOV R0,MONTH</p><p>  LCALL DIVIDE</p><p>  MOV

109、 48H,R1</p><p>  MOV A,48H</p><p>  SWAP A</p><p>  MOV 48H,A</p><p>  MOV 49H,R2</p><p>  MOV A,49H</p><p>

110、  SWAP A</p><p>  MOV 49H,A</p><p>  SJMP YYY3</p><p>  DDD:LCALL DISP</p><p>  JNB TRL,DDD</p><p>  MOV 20H,#2H

111、</p><p>  DDD3:JNB TRL,NYD</p><p>  MOV 20H,#2</p><p>  LCALL DISP</p><p>  JB JIA1,DDD3</p><p>  DDD2:LCALL DISP<

112、;/p><p>  JNB JIA1,DDD2</p><p>  MOV R7,DAY</p><p>  LCALL JIAY1</p><p>  MOV DAY,A</p><p>  CJNE A,#32H,DDD1</p>

113、<p>  MOV DAY,#1</p><p>  DDD1:MOV DS_ADDR,#86H</p><p>  MOV DS_DATA,DAY</p><p>  LCALL WRITE</p><p>  MOV R0,DAY&l

溫馨提示

  • 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

提交評論