基于AT89S51單片機的數(shù)字電子鐘設計_第1頁
基于AT89S51單片機的數(shù)字電子鐘設計_第2頁
基于AT89S51單片機的數(shù)字電子鐘設計_第3頁
基于AT89S51單片機的數(shù)字電子鐘設計_第4頁
基于AT89S51單片機的數(shù)字電子鐘設計_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)論文(設計)題目基于AT89S51單片機的數(shù)字電子鐘設計學生姓名 張 明 學號 10011425 班 級 100114 專 業(yè) 嵌入式系統(tǒng)工程 分 院 信息技術 指導教師 于 薇 2013年 4月 1 日長春職業(yè)技術學院畢業(yè)論文(設計)專用紙 目 錄目 錄II摘 要IIIAbstractIV緒 論1第1章 整體設計方案31.1 單片機的選擇31.2 單片機的基本結構51.3 本章小結6第2章 數(shù)字鐘的硬件設計72.1 最小系統(tǒng)設計72.2 數(shù)字鐘的外圍電路設計92.2.1 時鐘電路93.2.2 LCD顯示電路112.2.3 語音錄放電路132.2.4 電源電路132.2.5 相關控制電路1

2、42.3 本章小結16第3章 數(shù)字鐘的軟件設計173.1 系統(tǒng)軟件設計內容173.2 主程序183.3 時鐘設置子程序213.4 中斷子程序253.5 LCD顯示子程序263.6 本章小結26第4章 調試與功能說明274.1 硬件調試274.2 系統(tǒng)性能測試與功能說明294.2.1 系統(tǒng)時鐘誤差分析294.2.2 軟件調試問題及解決314.3 系統(tǒng)PCB圖324.4 本章小節(jié)32結 論34致 謝35參考文獻36附錄1:設計所用到器件清單37附錄2:設計實物圖38摘 要 本文介紹了一款基于AT89S51單片機數(shù)字鐘的設計,通過多功能數(shù)字鐘的設計思路,詳細敘述了系統(tǒng)硬件、軟件的具體實現(xiàn)過程。論文重

3、點闡述了數(shù)字鐘硬件中MCU模塊、語音模塊、時鐘模塊和相關控制模塊等的模塊化設計與制作;軟件同樣采用模塊化的設計,包括中斷模塊、鬧鐘模塊、語音模塊、時間調整模塊設計,并采用簡單流通性強的C語言編寫實現(xiàn)。本設計實現(xiàn)了時間與鬧鐘的修改功能、語音播報功能、年、月、日和星期的顯示功能。并且通過對比實際的時鐘,查找出了誤差的來源,確定了調整誤差的方法,盡可能的減少誤差,使得系統(tǒng)可以達到實際數(shù)字鐘的允許誤差范圍內。關鍵詞:AT89S51單片機;數(shù)字鐘;語音播報Abstract This paper introduced the design of digital clock based on SCM of

4、AT89S51, the specific process of how the system hardware and software achieved were detailed description through the design of multifunction digital clock. The modular design and production, which consisted of MCU module, voice module,clock module and the associated control module, were mainly recou

5、nted;As well as hardware designing,software design use the same method, consists suspension module,alarm clock module, voice module, time adjust module, and that use the C language to achieve because of its simple and strong negotiability. In this design the functions of time and alarm clock run and

6、 change, voice broadcast,functions of the year, month, day and week display have been achieved. And by comparing the actual clock, find out the source of the error and determined the method of adjusting error, reduce errors as much as possibly, so this system can achieve a practical digital clock wi

7、th error within the permissible range.Keywords :AT89S51 microcontroller; Digital clock; Voice Broadcast II緒 論課題背景單片機自1976年由Intel公司推出MCS-48開始,迄今已有二十多年了。由于單片機集成度高、功能強、可靠性高、體積小、功耗地、使用方便、價格低廉等一系列優(yōu)點,目前已經滲入到人們工作和生活的方方面面,幾乎“無處不在,無所不為”。單片機的應用領域已從面向工業(yè)控制、通訊、交通、智能儀表等迅速發(fā)展到家用消費產品、辦公自動化、汽車電子、PC機外圍以及網(wǎng)絡通訊等廣大領域。單片機有

8、兩種基本結構形式:一種是在通用微型計算機中廣泛采用的,將程序存儲器和數(shù)據(jù)存儲器合用一個存儲器空間的結構,稱為普林斯頓結構。另一種是將程序存儲器和數(shù)據(jù)存儲器截然分開,分別尋址的結構,一般需要較大的程序存儲器,目前的單片機以采用程序存儲器和數(shù)據(jù)存儲器截然分開的結構為多。本文討論的單片機多功能定時器的核心是目前應用極為廣泛的51系列單片機,配置了外圍設備,構成了一個可編程的計時定時系統(tǒng),具有體積小,可靠性高,功能強等特點。不僅能滿足所需要求,而且還有很多功能可供開發(fā),有著廣泛的應用領域。20世紀80年代中期以后,Intel公司以專利轉讓的形式把8051內核技術轉讓給許多半導體芯片生產廠家,如ATME

9、L、PHILIPS、ANALOG、DEVICES、DALLAS等。這些廠家生產的芯片是MCS-51系列的兼容產品,準確地說是與MCS-51指令系統(tǒng)兼容的單片機。這些兼容機與8051的系統(tǒng)結構(主要是指令系統(tǒng))相同,采用CMOS工藝,因而,常用80C51系列來稱呼所有具有8051指令系統(tǒng)的單片機,它們對8051單片機一般都作了一些擴充,更有特點。其功能和市場競爭力更強,不該把它們直接稱呼為MCS-51系列單片機,因為MCS只是Intel公司專用的單片機系列型號。MCS-51系列及80C51單片機有多種品種。它們的引腳及指令系統(tǒng)相互兼容,主要在內部結構上有些區(qū)別。目前使用的MCS-51系列單片機及

10、其兼容產品通常分成以下幾類:基本型、增強型、低功耗型、專用型、超8位型、片內閃爍存儲器型。課題意義在日常生活和工作中,我們常常用到定時控制,如擴印過程中的曝光定時等。早期常用的一些時間控制單元都使用模擬電路設計制作的,其定時準確性和重復精度都不是很理想,現(xiàn)在基本上都是基于數(shù)字技術的新一代產品,隨著單片機性能價格比的不斷提高,新一代產品的應用也越來越廣泛,大可構成復雜的工業(yè)過程控制系統(tǒng),完成復雜的控制功能。小則可以用于家電控制,甚至可以用于兒童電子玩具。它功能強大,體積小,質量輕,靈活好用,配以適當?shù)慕涌谛酒梢詷嬙旄鞣N各樣、功能各異的微電子產品。隨著電子技術的飛速發(fā)展,家用電器和辦公電子設備

11、逐漸增多,不同的設備都有自己的控制器,使用起來很不方便。根據(jù)這種實際情況,設計了一個單片機多功能定時系統(tǒng),它可以避免多種控制器的混淆,利用一個控制器對多路電器進行控制,同時又可以進行時鐘校準和定點打鈴。它可以執(zhí)行不同的時間表(考試時間和日常作息時間)的打鈴,可以任意設置時間。這種具有人們所需要的智能化特性的產品減輕了人的勞動,擴大了數(shù)字化的范圍,為家庭數(shù)字化提供了可能。數(shù)字鐘的應用數(shù)字電子鐘具有走時準確,一鐘多用等特點,在生活中已經得到廣泛的應用。雖然現(xiàn)在市場上已有現(xiàn)成的電子鐘集成電路芯片出售,價格便宜、使用也方便,但是人們對電子產品的應用要求越來越高,數(shù)字鐘不但可以顯示當前的時間,而且可以顯

12、示日期、農歷 、以及星期等,給人們的生活帶來了方便。另外數(shù)字鐘還具備秒表和鬧鐘的功能,且鬧鐘鈴聲可自選,使一款電子鐘具備了多媒體的色彩。時間對人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當前的時間。忘記了要做的事情,當事情不是很重要的時候,這種遺忘無傷大雅。但是,一旦重要事情,一時的耽誤可能釀成大禍。電子鐘已成為人們日常生活中必不可少的必需品,廣泛用于個人家庭以及車站、碼頭、劇院、辦公室等公共場所,給人們的生活、學習、工作、娛樂帶來極大的方便。由于數(shù)字集成電路技術的發(fā)展和采用了先進的石英技術,使電子鐘具有走時準確、性能穩(wěn)定、攜帶方便等優(yōu)點,它還用于計時、自動報時及自動控制等各個領域。

13、第1章 整體設計方案由于本系統(tǒng)要求具有語音播報功能,所以需采用十六位可處理語音信號的單片機。其主要設計思想是:整個系統(tǒng)用單片機為中央控制器,由單片機執(zhí)行采集時鐘芯片的時間信號并通過顯示模塊來輸出信號及相關的控制功能。時鐘芯片產生時鐘信號,利用單片機的I/O口傳給單片機;并通過I/O口實現(xiàn)LCD的顯示。系統(tǒng)設有4個按鍵可以對時間星期年月日進行調整,還可以設置鬧鐘。整體框架如圖1-1所示。語音模塊LCD顯示單片機電源模塊復位電路時鐘模塊按鍵模塊圖1-1 系統(tǒng)整體框圖1.1 單片機的選擇AT89S51是一個低功耗,高性能CMOS 8位單片機,片內含4k Bytes ISP(In-system pro

14、grammable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統(tǒng)及80C51引腳結構,芯片內集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案。 AT89S51具有如下特點:40個引腳,4k Bytes Flash片內程序存儲器,128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片

15、內時鐘振蕩器。此外,AT89S51設計和配置了振蕩頻率可為0Hz并可通過軟件設置省電模式。空閑模式下,CPU暫停工作,而RAM定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復位。  主要功能特性為:兼容MCS-51指令系統(tǒng);4k可反復擦寫(>1000次)ISP Flash ROM;32個雙向I/O口;4.5-5.5V工作電壓;2個16位可編程定時/計數(shù)器;時鐘頻率0-33MHz;全雙工UART串行中斷口線;128x8bit內部RAM;2個外部中斷源;低功耗空閑和省電模式;中斷喚醒省電模式;看門狗(W

16、DT)電路;靈活的ISP字節(jié)和分頁編程;雙數(shù)據(jù)寄存器指針。AT89S51單片機與其他品牌單片機相比有著性價比高,性能穩(wěn)定的特點。(1) 51單片機的優(yōu)點如果是作低成本的智能產品,51構架單片機的成本優(yōu)勢,還是無人能敵的。比如一片AT89S51和AT89S52單片機的批量價格大概是5元左右,STC89C52單片機的批量價格大概是6元多,這樣的芯片價格是很低的。一片簡單的74系列通用數(shù)字邏輯芯片還要1元左右,而一片51單片機內部集成有成千上萬個晶體管開關電路。51構架已經誕生很多年了,到目前依然有著強大的生命力和實用性,從1976年51構架成功面市,多少年過去了,從90年代初全新閃存結構的AT89

17、C51要90元一片,到現(xiàn)在AT89S51只要5元多一片,51依然大量的使用著。使用51單片機能夠有效的控制智能產品整機的成本, 51系列還是有著無法替代的重要地位。(2) AT89S51與AT89C51的比較AT89S51相對與AT89C51新增加了很多功能,性能有了較大提升,價格基本不變,甚至比89C51更低! AT89S51具有ISP在線編程功能,這個功能的優(yōu)勢在于改寫單片機存儲器內的程序不需要把芯片從工作環(huán)境上拔除,可以在線燒寫。AT89S51的最高工作頻率為33MHz, 89C51的極限工作頻率是24M,就是說S51具有更高工作頻率,從而具有了更快的計算速度。AT89S51具有雙工UA

18、RT串行通道。AT89S51內部集成看門狗計時器,不再需要像89C51那樣外接看門狗計時器單元電路。 AT89S51具有雙數(shù)據(jù)指示器。 AT89S51具有電源關閉標識。 AT89S51具有全新的加密算法,這使得對于89S51的解密變?yōu)椴豢赡?,程序的保密性大大加強,這樣就可以有效的保護知識產權不被侵犯。 在兼容性方面,AT89S51向下完全兼容51全部字系列產品。比如8051、89C51等產品。也就是說不論教科書上采用的單片機是8051還是89C51還是MCS-51等等。在89S51上一樣可以照常運行,這就是所謂的向下兼容。 AT89S51與AT89C51就如同INTEL的P3向P4升級一樣,雖

19、然都可以跑Windows98,不過速度是不同的。總之,無論是比其他品牌同類產品相比,還是與同品牌產品相比都顯示出了AT89S51優(yōu)良的性能,更高的性價比。所以AT89S51芯片成為了本系統(tǒng)的首選。1.2 單片機的基本結構AT89S51單片機基本結構主要包括了以下主要部件:(1) 控制器控制器是單片機的指揮控制部件,控制器的主要任務是識別指令,并根據(jù)指令的性質控制單片機各功能部件,從而保證單片機各部分能自動而協(xié)調地工作。單片機執(zhí)行指令是在控制器的控制下進行的。首先從程序存儲器中讀出指令,送指令寄存器保存,然后送至指令譯碼器進行譯碼,譯碼結果送定時控制邏輯電路,由定時控制邏輯產生各種定時信號和控制

20、信號,再送到單片機的各個部件去進行相應的操作。這就是執(zhí)行一條指令的全過程,執(zhí)行程序就是不斷重復這一過程??刂破髦饕ǔ绦蛴嫈?shù)器、程序地址寄存器、指令寄存器IR、指令譯碼器、條件轉移邏輯電路及時序控制邏輯電路。(2) 存儲器AT89S51單片機存儲器采用的是哈佛結構,即程序存儲器空間和數(shù)據(jù)存儲器空間截然分開,程序存儲器和數(shù)據(jù)存儲器各有自己的尋址方式,尋址空間和控制系統(tǒng)。這種結構對于單片機面向控制的實際應用極為方便,有利.在8051/8751彈片擊中,不僅在片內集成了一定容量的程序存儲器和數(shù)據(jù)存儲器及眾多的特殊功能寄存器,而且還具有極強的外存儲器的擴展能力,尋址能力分別可達64KB,尋址和操作簡

21、單方便。(3) 并行I/O口MCS-51單片機共有4個雙向的8位并行I/O端口(Port),分別記作P0-P3,共有32根口線,各口的每一位均由鎖存器、輸出驅動器和輸入緩沖器所組成。實際上P0-P3已被歸入特殊功能寄存器之列。這四個口除了按字節(jié)尋址以外,還可以按位尋址。由于它們在結構上有一些差異,故各口的性質和功能有一些差異。(4) 時鐘電路與時序時鐘電路用于產生MCS-51單片機工作時所必需的時鐘信號。MCS-51單片機本身就是一個復雜的同步時序電路,為保證同步工作方式的實現(xiàn),MCS-51單片機應在唯一的時鐘信號控制下,嚴格地按時序執(zhí)行進行工作,而時序所研究的是指令執(zhí)行中各個信號的關系。1.

22、3 本章小結 本章主要介紹了系統(tǒng)的整體構思方案,具體有幾個模塊組成,以及每個模塊的連接方法。核心芯片單片機的基本資料介紹,著重介紹了單片機的對比與選擇。再選擇了合適的單片機后還介紹了AT89S51單片機最小系統(tǒng)的架構與實驗。第2章 數(shù)字鐘的硬件設計2.1 最小系統(tǒng)設計單片機要正常運行,必須具備一定的硬件條件,其中最主要的就是三個基本條件:(1)電源正常;(2)時鐘正常;(3)復位正常。AT89S51的引腳如圖2-1所示。在AT89S51單片機的40個引腳中,電源引腳2根,晶振引腳2根,控制引腳4根,可編程輸入輸出引腳32根。圖2-1 AT89S51的最小系統(tǒng)(1) 工作電源電源是單片機工作的動

23、力源泉,對應的接線方法為;40腳(VCC)電源引腳,工作時接5電源,20腳(GND)為接地線。(2) 時鐘電路時鐘電路為單片機產生時序脈沖,單片機所有運算與控制過程都是在統(tǒng)一的時序脈沖的驅動下進行的,時鐘電路就好比人的心臟一樣重要。當采用內部時鐘時,連接方法如圖2-1所示,在晶振引腳XTAL1(19腳)和XTAL2(18腳)引腳之間接入一個晶振,兩個引腳對地分別再接入一個電容即可產生所需的時鐘信號,電容的容量一般在幾十皮法,如30PF。(3) 復位電路在復位引腳(9腳)持續(xù)出現(xiàn)24個振蕩器脈沖周期(即2個機器周期)的高電平信號將使單片機復位。如圖2-1所示電容C和電阻R構成了單片機上電自動復位

24、電路。復位后,單片機從0000H單元開始執(zhí)行程序,并初始化一些專用寄存器為復位狀態(tài)值,受影響的專用寄存器如表3-1所示。表2-1 復位寄存器狀態(tài)表寄存器狀態(tài)寄存器狀態(tài)PC000HTC0N00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0P3FFHSCON00HIPXXX00000HSBUF不確定IEOXX00000HPCON0XXX0000HTMOD00H(4) 控制引腳EA接法 EA/VPP(31腳)為內外程序存儲器選擇控制引腳,當EA為低電位時單片機從外部程序存儲器取指令;當EA接高電平時單片機從內部程序存儲器取指令。AT89S5

25、1單片機內部有4KB可反復擦寫1000次以上的程序存儲器,因此要把EA接+5V高電平,讓單片機運行內部的程序,這樣就可以通過反復燒寫來驗證程序了。這就是AT89S51單片機最小化系統(tǒng)的連接,只要把編寫好的程序燒寫到單片機內部,并接上5V電源就可以正常運行了,在17腳接上的發(fā)光二極管可以用來驗證系統(tǒng)是否正常。2.2 數(shù)字鐘的外圍電路設計2.2.1 時鐘電路(1) 單片機時鐘時鐘是單片機的心臟,單片機各功能部件的運行都是以時鐘頻率為基準,有條不紊的一拍一拍地工作。因此,時鐘頻率直接影響單片機的速度,時鐘電路的質量也直接影響單片機系統(tǒng)的穩(wěn)定性。常用的時鐘電路有兩種方式:一種是內部時鐘方式,另一種為外

26、部時鐘方式。本文用的是內部時鐘方式。電路設計如圖2-2所示。圖2-2 單片機時鐘AT89S51單片機內部有一個用于構成振蕩器的高增益反相放大器,該高增益反向放大器的輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個引腳跨接石英晶體振蕩器和微調電容,就構成一個穩(wěn)定的自激振蕩器。(2) 時鐘芯片采用帶 RAM的時鐘芯片DS1302。該芯片可以進行時分秒的計數(shù),具有100年日歷,可編程接口,還具有報警功能和掉電保存功能,并且可以對其方便的進行程序控制DS1302它通過串行方式與單片機進行數(shù)據(jù)傳送,向單片機提供包括秒、分、時、日、月、年等在內的實時時間信息,并可對月末日期、閏年天數(shù)自

27、動進行調整;還擁有用于主電源和備份電源的雙電源引腳,在主電源關閉的情況下,也能保持時鐘的連續(xù)運行。另外,它還能提供31字節(jié)的用于高速數(shù)據(jù)暫存的RAM。有了這些特點,DS1302已在許多單片機系統(tǒng)中得到應用。 圖2-3 DS1302引腳排列圖DS1302的引腳排列如圖2-3所示,各引腳的功能見表2-2。表2-2 DS1302功能表引腳功能X1,X232768HZ晶振引腳端RST復位端I/O數(shù)據(jù)輸入/輸出端SCLK串行時終端GND地VCC2,VCC1主電源與后備電源引腳端DS1302時鐘芯片內主要包括移位寄存器、控制邏輯電路、振蕩器、實時時鐘電路以及用于高速暫存的31字節(jié)RAM。DS1302與單片

28、機系統(tǒng)的數(shù)據(jù)傳送依靠RST,I/O,SCLK三根端線即可完成。其工作過程可概括為:首先系統(tǒng)RST引腳驅動至高電平,然后在作用于SCLK時鐘脈沖的作用下,通過I/O引腳向DS1302輸入地址/命令字節(jié),隨后再在SCLK時鐘脈沖的配合下,從I/O引腳寫入或讀出相應的數(shù)據(jù)字節(jié)。因此,其與單片機之間的數(shù)據(jù)傳送是十分容易實現(xiàn)的。DS1302與單片機電路相連如圖2-4所示。圖2-4 DS1302與單片機接口圖3.2.2 LCD顯示電路液晶顯示模塊具有體積小、功耗低、顯示內容豐富等特點,現(xiàn)在字符型液晶顯示模塊已經是單片機應用設計中最常用的信息顯示器件了。 1602B可以顯示2行16個字符,有8位數(shù)據(jù)總線D0

29、-D7,和RS、R/W、EN三個控制端口,工作電壓為5V,并且?guī)в凶址麑Ρ榷日{節(jié)和背光。該模塊也可以只用D4-D7作為四位數(shù)據(jù)分兩次傳送。這樣的話可以節(jié)省MCU的I/O口資源。各引腳的功能見表2-3。表2-3 LCD引腳功能圖編號符號引腳說明編號符號引腳說明1VSS電源地9D2雙向數(shù)據(jù)口2VDD電源正極10D3雙向數(shù)據(jù)口3VL對比度調節(jié)11D4雙向數(shù)據(jù)口4RS數(shù)據(jù)/命令選擇12D5雙向數(shù)據(jù)口5R/W讀/寫選擇13D6雙向數(shù)據(jù)口6E模塊使能端14D7雙向數(shù)據(jù)口7D0雙向數(shù)據(jù)口15BLK背光源地8D1雙向數(shù)據(jù)口16BLA背光源正極 從該模塊的正面看,引腳排列從右向左為:15腳、16腳,然后才是11

30、4腳。VDD:電源正極,4.55.5V,通常使用5V電壓;VL:LCD對比度調節(jié)端,電壓調節(jié)范圍為05V。接正電源時對比度最弱,接地電源時對比度最高,但對比度過高時會產生“鬼影”,因此通常使用一個10K的電位器來調整對比度,或者直接串接一個電阻到地;RS:MCU寫入數(shù)據(jù)或者指令選擇端。MCU要寫入指令時,使RS為低電平;MCU要寫入數(shù)據(jù)時,使RS為高電平;R/W:讀寫控制端。R/W為高電平時,讀取數(shù)據(jù);R/W為低電平時,寫入數(shù)據(jù);E:LCD模塊使能信號控制端。寫數(shù)據(jù)時,需要下降沿觸發(fā)模塊。D0D7:8位數(shù)據(jù)總線,三態(tài)雙向。如果MCU的I/O口資源緊張的話,該模塊也可以只使用4位數(shù)據(jù)線D4D7接

31、口傳送數(shù)據(jù)。本充電器就是采用4位數(shù)據(jù)傳送方式;BLA: LED背光正極。需要背光時,BLA串接一個限流電阻接VDD,BLK接地,實測該模塊的背光電流為50mA左右;BLK: LED背光地端。它與單片機的連接如圖2-5所示。 圖2-5 LCD與單片機接口2.2.3 語音錄放電路系統(tǒng)要求能夠有鬧鐘、語音播報、按鍵報時等功能。由單片語音錄放芯片來做比較方便簡單。ISD2500芯片,可以錄放時間60秒??梢詽M足本設計的要求,性能良好所以選用。ISD2500和1400語音電路一樣,具有抗斷電、音質好,使用方便等優(yōu)點。它的最大特點在于片內E2PROM容量為480K(1400系列為128K),所以錄放時間長

32、;有10個地址輸入端(1400系列僅為8個),尋址能力可達1024位;最多能分600段;設有OVF(溢出)端,便于多個器件級聯(lián)。其封裝如圖2-6所示。圖2-6 ISD封裝圖系統(tǒng)要求能夠有鬧鐘、語音播報、按鍵報時等功能。由單片語音錄放芯片來做比較方便簡單。ISD2500芯片,可以錄放時間60秒??梢詽M足本設計的要求,但是ISD2500芯片的價格比較昂貴,在現(xiàn)有的條件下還不能實現(xiàn)。所以只作簡單介紹以便做相關擴展應用,本設計只用簡單的語音模塊。2.2.4 電源電路電源電路包括變壓器、橋式整流器、電容和穩(wěn)壓器。通過變壓器變壓,使得220V電壓變?yōu)?2 V,在通過橋式整流,電容的濾波作用,穩(wěn)壓器的穩(wěn)壓作

33、用,可輸出5V的穩(wěn)定電壓。如圖2-7所示。 圖2-7 系統(tǒng)電源電路在系統(tǒng)中要用到2個電源:單片機電源與DS1302時鐘芯片電源所以有2路電源VCC和VCC1。 2.2.5 相關控制電路(1) 按鍵電路按鍵電路如圖2-8所示,按鍵的開關狀態(tài)通過一定的電路轉換為高、低電平狀態(tài)。按鍵閉合過程在相應的I/O端口形成一個負脈沖。閉合和釋放過程都要經過一定的過程才能達到穩(wěn)定,這一過程是處于高、低電平之間的一種不穩(wěn)定狀態(tài),稱為抖動。抖動持續(xù)時間的常長短與開關的機械特性有關,一般在5-10ms之間。為了避免CPU多次處理按鍵的一次閉合,應采用措施消除抖動。本文采用的是獨立式按鍵,直接用I/O口線構成單個按鍵電

34、路,每個按鍵占用一條I/O口線,每個按鍵的工作狀態(tài)不會產生互相影響。 圖2-8 按鍵電路圖P1.0口:表示功能移位鍵,按鍵選擇要調整的時十位、時個位、分十位或分個位。 P1.1口:表示數(shù)字“+”鍵,按一下則對應的數(shù)字加1。 P1.2口:表示數(shù)字“-”鍵,按一下則對應的數(shù)字減1。 P1.3口:表示時間表的切換,程序默認為日常時間表,當按下該開關,使輸入為低電平時,表示當前執(zhí)行的是考試時間表。再按鍵,使按鍵抬起,輸入維高電平時,表示當前執(zhí)行的是日常作息時間表。(2) 復位電路 AT89S51單片機的復位是由外部的復位電路來實現(xiàn)的。復位引腳RST通過一個斯密特觸發(fā)器與復位電路相連,斯密特觸發(fā)器用來抑

35、制噪聲,在每個機器周期的S5P2,斯密特觸發(fā)器的輸出電平由復位電路采樣一次,然后才能得到內部復位操作所需要的信號。上電復位:上電復位電路是種簡單的復位電路,只要在RST復位引腳接一個電容到VCC,接一個電阻到地就可以了。上電復位是指在給系統(tǒng)上電時,復位電路通過電容加到RST復位引腳一個短暫的高電平信號,這個復位信號隨著VCC對電容的充電過程而回落,所以RST引腳復位的高電平維持時間取決于電容的充電時間。為了保證系統(tǒng)安全可靠的復位,RST引腳的高電平信號必須維持足夠長的時間。圖 2-9 復位電路如圖 2-9所示,上電自動復位是通過外部復位電路的電容充電來實現(xiàn)的。只要Vcc的上升時間不超過1ms,

36、就可以實現(xiàn)自動上電復位。2.3 本章小結本章介紹了多功能數(shù)字鐘系統(tǒng)的硬件模塊組成。詳細介紹了各個模塊的組成及功能。MCU的組成和特點、專門的時鐘芯片和單片機時鐘、顯示模塊的構建與運用、語音芯片的選擇、2路電源的設計制作。基本上是完成了作為單片機所需的硬件結構。同時也顯示了對軟件支持的強烈要求。第3章 數(shù)字鐘的軟件設計3.1 系統(tǒng)軟件設計內容本設計的軟件程序包括主程序、中斷子程序、鬧鐘設定子程序、時鐘顯示子程序以及延時子程序等。在整個系統(tǒng)中,在單片機的30H、31H和32H中存儲當前時間的小時、分鐘和秒。用LCD顯示當前的時間,必須用到分字和合字,因此在33H、34H、35H、36H、37H和3

37、8H中存儲當前時間的時十位、時個位、分十位、分個位、秒十位和秒個位,方便顯示。本設計有由四個輕觸按鍵組成的小鍵盤,這些按鍵可以任意改變當前的狀態(tài)。按功能移位鍵一次,表示當前要校對小時的十位;按第二次,表示當前校對的是小時的個位;按第三次,則表示校對的是分鐘的十位;第四次,表示的校對的是分鐘的個位。按下數(shù)字“+” 鍵和數(shù)字“-”鍵可在當前校對的數(shù)字上相應加上1或者減去1。系統(tǒng)軟件采用C語言編寫。時鐘的最小計時單位是秒,但使用定時器的方式1,最大的定時時間也只能達到131ms。我們可把定時器的定時時間定為50ms。這樣,計數(shù)溢出20次即可得到時鐘的最小計時單位:秒。而計數(shù)20次可以用軟件實現(xiàn)。秒計

38、時是采用中斷方式進行溢出次數(shù)的累積,計滿20次,即得到秒計時。從秒到分,從分到時是通過軟件累加并進行比較的方法來實現(xiàn)的。要求每滿1秒,則“秒”單元中的內容加1;“秒”單元滿60,則“分”單元中的內容加1;“分”單元滿60,則“時”單元中的內容加1;“時”單元滿24,則將時、分、秒的內容全部清零。實時時鐘程序設計步驟:(1)選擇工作方式,計算初值;(2)采用中斷方式進行溢出次數(shù)累計;(3)從秒分時的計時是通過累加和數(shù)值比較實現(xiàn)的;(4)時鐘顯示緩沖區(qū):時鐘時間在方位數(shù)碼管上進行顯示,為此在內部RAM中要設置顯示緩沖區(qū),共6個地址單元。顯示緩沖區(qū)從左到右依次存放時、分、秒數(shù)值;(5)主程序:主要進

39、行定時器/計數(shù)器的初始化編程,然后反復調用顯示子程序的方法等待中斷的到來,流程如圖3-1所示;(6)中斷服務程序:進行計時操作;(7)加1子程序:用于完成對時、分、秒的加操作,中斷服務程序在秒、分、時加1時共三次調用加1子程序,包括:合字、加1并進行進制調整、分字。3.2 主程序主程序主要由main()組成通過對相關子程序的調用,實現(xiàn)了對時間的設置與修改、鬧鐘的設置與修改、LCD顯示等主要功能。相關的調整是靠對功能鍵的判斷來實現(xiàn)的。如對set鍵的判斷,對up鍵的判斷。主程序流程框圖如圖3-1所示。主要程序段如下:void main(void) /d_to_b(); /ds1302_write_

40、time(); /對DS1302寫數(shù)據(jù) initTimer(); TR0=1; ET0=1; EA=1; LCD_init(); LCD_write_string(0,0,"Wellcome to xnkd"); LCD_write_string(0,1,"123456789-mysy"); while(1) if(sethour=timereg4)&&(setmin=timereg5)&&!fspk&&timereg6=0) fspk=1; if(!set) /功能鍵判斷.if(fset) if(!up)

41、 /調用1鍵子程序 if(!down) /調用1鍵子程序if(!enter)圖3-1 主程序MAIN流程框圖3.3 時鐘設置子程序時鐘的修改首先要按功能鍵并停止時間的輸出顯示,否則系統(tǒng)繼續(xù)刷新時間則無法修改,所以時間是不輸出到LCD的。修改的部分以修改的為準,沒有修改的通過中斷保護起來。等修改成功后繼續(xù)顯示。主要流程圖如圖3-2所示,小時設置程序段如下:if(keycou=5) /設置小時LCD_write_string(0,0,"Hour:"); /將現(xiàn)在時間保存LCD_set_xy(5,0); /對小時重新設置LCD_write_char(0,timereg4/10+0

42、x30); /設置完成后顯示修改后的小時部分LCD_write_char(0,timereg4%10+0x30);在時間修改功能中要用到1個數(shù)字加減的問題,把它做成1個子程序,流程如圖3-3所示。通過判斷功能鍵的狀態(tài)也就是記錄值來確定。主功能鍵SET是采用循環(huán)的方式來實現(xiàn)的,。當標識為相應的值時執(zhí)行相應的操作。if(keycou=5)/小時加一if(timereg4<23) timereg4+;else timereg4=23;LCD_set_xy(5,0);LCD_write_char(0,timereg4/10+0x30);LCD_write_char(0,timereg4%10+0

43、x30);3-2 時鐘設置功能子程序流程框圖圖3-3 加1鍵修改子程序流程框圖圖3-4 時鐘修改中斷服務子程序流程框圖3.4 中斷子程序MCS-51系列單片機有5個中斷源,中斷分為2個中斷優(yōu)先級,即高優(yōu)先級和低優(yōu)先級,每個中斷源的優(yōu)先級都可以由軟件來設定。中斷地址如表3-1所示。程序中的中斷流程框圖如圖3-4所示。表3-1 中斷地址表五個中斷源入口地址外部中斷0(/INT0)0003HT0溢出中斷000BH外部中斷1(/INT1)0013HT1溢出中斷001BH串口中斷0023H/*/*Function: 外部中斷1中斷服務子程序*parameter:*Return:*Modify:/*/vo

44、id Interrupt1 (void) interrupt 2 Int1Flag = 1;/*/*Function: 定時器0中斷服務子程序*parameter:*Return:*Modify:/*/void InterruptTime0(void) interrupt 1  TH0 = 0x06; /8ms TL0 = 0xed; Time0Count+;/*/*Function: 定時器1中斷服務子程序*parameter:*Return:*Modify:3.5 LCD顯示子程序LCD顯示子程序可對DS1302的時間進行設置和讀取DS1302內部的

45、時間、連續(xù)的讀寫操作、RAM的應用、充電部分的應用、寫保護、抗干擾等可以實現(xiàn)上述功能。在編寫中應注意的是進制的轉換,下面是BCD碼到十進制數(shù)的轉換函數(shù)。/*/* 函數(shù)名:BCD_to_INT();/* 參  數(shù):無/* 功  能:用于將時間BCD碼轉換為十進制碼/*/ void BCD_to_INT() uchar i;  for(i=0;i<7;i+)  bcd_int(timercuri); 3.6 本章小結本章介紹了本設計的軟件設計,所有的功能在流程圖里清晰的表現(xiàn)了出來,包括主程序流程圖、時鐘及鬧鐘修改流程圖、中斷流程圖等,并附有相關程序的主

46、要部分。在軟件的設計中模塊化設計很重要,顯示很直觀不會發(fā)生混亂現(xiàn)象,容易上手。第4章 調試與功能說明 4.1 硬件調試在實際使用中,我們發(fā)現(xiàn)DS1302的工作情況不夠穩(wěn)定,主要表現(xiàn)在實時時間的傳送有時會出現(xiàn)誤差,有時甚至整個芯片停止工作。我們對DS1302的工作電路進行了分析,其與單片機系統(tǒng)的連接如圖2所示。從圖中可以看出,DS1302的外部電路十分簡單,惟一外接的元件是32768Hz的晶振。通過實驗我們發(fā)現(xiàn):當外接晶振電路振蕩時,DS1302計時正確;當外接晶振電路停振時,DS1302計時停止。因此,可能是32768Hz晶振是造成 DS1302工作不穩(wěn)定的主要原因。圖4-1  DS

47、1302與單片機系統(tǒng)的連接圖DS1302時鐘的產生基于外接的晶體振蕩器,振蕩器的頻率為32768Hz。該晶振通過引腳X1、X2直接連接至DS1302,即DS1302是依靠外部晶振與其內部的電容配合來產生時鐘脈沖的。由于DS1302在芯片本身已經集成了6pF的電容,所以,為了獲得穩(wěn)定可靠的時鐘,必須選用具有6pF負載電容的晶振。然而,許多人在選用晶振時僅僅注意了晶振的額定頻率值,而忽視了晶振的負載電容大小,甚至連許多經銷商也不能提供所售晶振的負載電容。所以即使在使用中選用了符合32768Hz的晶振,但如果該晶振的負載電容與DS1302提供的6pF不一致時,就會影響晶振的起振或導致振蕩頻率的偏移,

48、出現(xiàn)問題。利用輔助電容實現(xiàn)負載匹配的方法來解決當所選的晶振負載電容不是6pF時,可以采用增加輔助電容的方法提高或降低DS1302振蕩器的電容性負載,使之與晶體所需的電容值匹配。如果已知晶體的負載電容為CI,若CI<6pF,則可以增加一個并聯(lián)電容CS以產生所需的總負載電容CI,即CI=6pF+CS;若CI>6pF,則可以在晶體的一端增加一個串聯(lián)電容CS,以產生所需的負載電容CI,即1/CI=1/6pF+1/CS,通過計算即可得出應增加的輔助電容大小。輔助電容的接法如圖4-2所示。圖4-2 輔助電容連接圖對于晶體振蕩器來說,其振蕩頻率與負載電容之間的關系是確定的。以本文討論的DS130

49、2使用的32768Hz晶振為例:當它工作于所要求的負載電容時,能較準確地產生 32768Hz的頻率;當它的負載電容小于6pF時,其振蕩頻率會正向偏移;當它的負載電容大于6pF時,其振蕩頻率就會負向偏移。因此,對于未知負載電容的晶體應首先采用實驗的方法,在其兩端加入輔助電容使晶體起振,然后用頻率計測出振蕩頻率。若測得頻率大于32768Hz,說明負載電容偏小;若測得頻率小于32768Hz,說明負載電容偏大。對輔助電容逐步調整,最終使振蕩頻率盡可能接近32768Hz,則此時晶體端所接負載電容的總和就是適合該晶體的負載電容。以上方法經多次使用,證明確實有效。它放寬了DS1302在使用中對晶振的條件要求

50、,增強了DS1302在工作中的穩(wěn)定性,對DS1302更廣泛地應用具有積極的意義。4.2 系統(tǒng)性能測試與功能說明4.2.1 系統(tǒng)時鐘誤差分析設系統(tǒng)中所選用的晶振的頻率為fosc,則機器周期t0由式(4-1)所得。 (4-1)設定時器要求的中斷頻率為k,計數(shù)器位數(shù)為n,則定時計數(shù)器的初值X設置如下: (4-2)于是 而實驗測得的數(shù)據(jù)顯示,這個公式所得的結果并不可靠:(下表中的所有數(shù)據(jù)都是在計數(shù)器初始值嚴格按照原始公式給出的條件下測得,以個人計算機機系統(tǒng)時鐘為標準)。從表 4-1 中的數(shù)據(jù)可知,嚴格按照原始公式得出的計數(shù)初值是存在極大誤差的,這個誤差總使系統(tǒng)時間變慢,而且,系統(tǒng)時間的誤差值隨著每秒中

51、斷次數(shù)的增多而增大,隨計時總長的增長而增大,并且總是成比例(在誤差允許的范圍內)。這就是說,系統(tǒng)的誤差跟每秒中斷次數(shù)和個人計算機標準時長的乘積(即中斷總次數(shù))成正比。也就是說,每次中斷計時的時間誤差是一個常數(shù)。誤差來源分析:不考慮晶振等固件的誤差,則系統(tǒng)機器周期可以由公式 1 準確給出,因而系統(tǒng)誤差不可能來自于硬件,而應該主要來自于軟件方面。系統(tǒng)每次調用定時中斷程序的過程中,硬件并沒有自動進入下一個定時周期,而是在調用中斷程序以后由軟件置數(shù)來實現(xiàn)的。表4-1 系統(tǒng)時間校正測試數(shù)據(jù) 每秒定時中斷次數(shù)KPC標準時長/minX系統(tǒng)時間誤差T/S備注160602000:59:59-1顯示器無閃爍160

52、1202001:59:58-2顯示器無閃爍1601802002:59:57-3顯示器無閃爍1602402003:59:56-4顯示器無閃爍1603002004:59:54-6顯示器無閃爍1603002104:59:59-1顯示器無閃爍1606002109:59:58-2顯示器無閃爍 而在程序調用過程中,堆棧建立,參數(shù)傳遞等都是需要耗時的,而這些時間都被無形中加到了定時長度中去。所以,使得每次定時長度都大于理論推導值,在宏觀上表現(xiàn)出來就是系統(tǒng)比理論計算出來的結果變慢了(這于表格 1 所得的結論恰好一致)。另外,由于系統(tǒng)每次調用中斷處理程序所執(zhí)行的操作都是相同的,也就是說,系統(tǒng)每次定時的時間誤差應該是一個常數(shù)(這也恰好跟實驗數(shù)據(jù)相吻合)。由上面的數(shù)據(jù)和分析可知,原始公式應該修改為: (4-3)則由表格4-1 可得相關的計算公式為: (4-4)由表格4-1數(shù)據(jù),實際要求 k 最小,而又不影響顯示效果,才能使誤差越小,故實測中取 k=160 。根據(jù)表4-1計算得k20(所用晶振頻率為 11.0592 MHz )。由表4-1 的實驗方法,可得參數(shù)優(yōu)化后的計時測試數(shù)據(jù)見表 4-2。表4-2 參數(shù)優(yōu)化后的計時測試數(shù)據(jù)每秒定時中斷次數(shù)PC標準時長/min系統(tǒng)計時誤差T/S備注1001000:09:58-2顯示器無閃爍2001000:

溫馨提示

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

最新文檔

評論

0/150

提交評論