版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上精選優(yōu)質文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質文檔-傾情為你奉上專心-專注-專業(yè) 畢 業(yè) 設 計(論 文)題 目:基于MCS-51單片機的數字鐘設計系 別:電子與信息工程系專 業(yè): 電子信息工程 班 級: 電子0204班 學生姓名: 導師姓名:_ 起止時間: 3.21 至 6.10 年6月5日 TOC o 1-3 h z u 摘要該課題研究用經濟的手段使人們能方便地得知當前的年歷時間,以及安全生產累計天數,提高生產人員的警惕性,達到減少事故的目的。本文簡要介紹了LED顯示的發(fā)展狀況和其所特有的優(yōu)勢,簡述了該系統(tǒng)中一些重要芯片的基本工作原理,著重論述
2、了硬件線路各個模塊的設計思想和軟件關鍵部分的實現方法。數碼管與單片機的接口采用動態(tài)顯示技術,利用了RTC芯片的系統(tǒng)自帶電池功能來實現斷電時保存一些重要數據,以便來電時正確顯示信息的功能。模塊化的設計和調試方法在整個課題研究過程中至關重要,事實上在任何設計中也同樣關鍵和有效。關鍵字 LED顯示 RTC芯片 動態(tài)AbstractThis topic tries to attain the purpose of reducing troubles by making it easier for workers to know real time and the total days during w
3、hich instruments are in gear by cost-effective means.This paper gives a general description of development situation of LED display and advantages of LED products as display .It also introduces the basic functions of some relative vital chips briefly and emphasizes in clarifying the design of relati
4、vely independent modules. Solutions of the key parts are also introduced with particular description. Dynamic display interface between LED display and MCU are used .It also can save some important data at the moment of power-off by making use of RTC chips system self-contained battery in order to m
5、ake sure accurate information are present whenever power-on.Modularized design and debug are most important in the whole course of the topic research. In fact, it is as well as vital and effective in any other design course.Keywords logic clock RTC Chip Dynamic 引言隨著生活水平的提高,人們越來越追求人性化的事物,傳統(tǒng)的時鐘已不能滿足人們
6、的需求。現代的數字鐘不僅需要數字電路技術而且需要模擬電路技術和單片機技術,增加了數字鐘的功能。其電路可以由實時時鐘模塊、環(huán)境溫度檢測模塊、人機接口模塊、報警模塊等部分組成。利用軟件編程盡量做到硬件電路簡單穩(wěn)定,減小電磁干擾和其他環(huán)境干擾,充分發(fā)揮軟件編程的優(yōu)點,減小因元器件精度不夠引起的誤差,但是數字鐘還是可以改進和提高如選用更精密的元器件。但與機械式時鐘相比已經具有更高的準確性和直觀性,且無機械裝置,具有更長的使用壽命,因此得到了廣泛的使用數字鐘是采用數字電路實現對.時,分,秒.數字顯示的計時裝置,廣泛用于個人家庭,車站, 碼頭辦公室等公共場所,成為人們日常生活中不可少的必需品,由于數字集成
7、電路的發(fā)展和石英晶體振蕩器的廣泛應用,使得數字鐘的精度,遠遠超過老式鐘表, 鐘表的數字化給人們生產生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動起閉路燈、定時開關烘箱、通斷動力設備、甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數字化為基礎的。因此,研究數字鐘及擴大其應用,有著非常現實的意義。1緒論1.1 集成電路在此次設計中我們將用到集成電路。集成電路是一種微型電子器件,采用一定的工藝將包含三極管、二極管、電阻、電容等元件及其相互連線的整個電路,集中制造在一個或幾個很小的半導體晶片或介質基片上,再經引線和封裝,成
8、為具有所需功能的微型結構。每片芯片(半導體晶片或介質基片)集成的元件數叫做集成度,小規(guī)模集成電路的集成度是1100,中規(guī)模集成電路的集成度是1001000,大規(guī)模集成電路的集成度是100010萬,超大規(guī)模集成電路的集成度是10萬100萬,極大規(guī)模集成電路的集成度大于100萬。 集成電路具有體積小、引出線和焊接點少、壽命長、成本低、可靠性高、性能好等優(yōu)點,廣泛應用于電子計算機、通訊設備、導彈、雷達、人造衛(wèi)星和各種遙控、遙測設備中。主要技術的背景1.2.1 發(fā)展歷史集成電路是信息產業(yè)和高新技術的核心,是推動國民經濟和社會信息化的關鍵技術。集成電路的產業(yè)規(guī)模和技術水平已成為國家綜合國力的一個重要標志
9、。 集成電路是隨著計算機技術的發(fā)展而不斷進步,1946年2月15日世界上第一臺通用電子數字計算機使用了18000個電子管,1500個繼電器以及其他器件,安裝在面積為9*15平方米的室內。在20世紀50年代中期第二代電子計算機問世,它是以晶體管代替了電子管,此時第一個集成電路誕生了,它包括一個晶體管、兩個電阻和一個電阻、電容的組合.后來集成電路工藝日趨完善,大部分電路元件都已經以集成電路的形式出現,甚至在約1平方厘米的芯片上,就可以集成上百萬個電子元件。在1967年和1977年,分別出現了大規(guī)模集成電路和超大規(guī)模集成電路,不斷的完善和改進計算機的性能與規(guī)模。 但我國集成電路相對于世界先進水平存在
10、一定的差距,所以有發(fā)展本國集成電路的需要。1.2.2 現狀現在我國集成電路產業(yè)已經經過30多年的發(fā)展現已形成了近百家的產業(yè)規(guī)模,其中具備一定設計規(guī)模的單位有20多家,其中北京華大、大唐、深圳華威和無錫矽科四家設計公司的銷售額超過了1億元。 2000年,我國集成電路總產量為58.80億塊,銷售額近200億元,產量和銷售額分別比1999年增長50.3%和75%。并且集成電路芯片目前主要采用56英寸硅片、0.81微米技術 ,大部分設計公司的技術水平在0.80.5微米之間,最高設計水平可達0.35微米。不少設計公司可以設計上萬門的集成電路產品,而北京華大和深圳華威最高可設計80萬門的電路。目前國內的通
11、信芯片行業(yè)取得了突破性進展,例如南京東南大學射頻與光電集成電路研究所設計的第一批芯片已成功通過測試,其中的3個芯片還達到世界先進水平,填補了我國高速CMOS集成電路設計的技術空白,在此基礎上開發(fā)出的實用產品可以打入光纖通信接口設備市場。多家外國著名公司也紛紛在中國建立起集成電路設計公司。1.2.3 發(fā)展趨勢中國發(fā)展集成電路的主要目標為:達到大規(guī)模生產150mm和0.8微米的技術水平;200mm和0.5微米的制造技術的產業(yè)化;提高集成電路的設計能力以滿足市場需求;跟蹤0.30.4微米和先進封裝技術的研發(fā);開發(fā)200mm的硅片制造技術并在國內開始生產等。未來10年是我國微電子產業(yè)發(fā)展的關鍵時期。重
12、點要推進超大規(guī)模集成電路和新技術的產業(yè)化。我國集成電路市場潛力巨大, 是因為近年來因特網持續(xù)爆炸式增長、移動通信終端設備市場的迅猛發(fā)展,以及數碼相機、手持電腦等電子產品市場的興旺,尤其是移動通信業(yè)的高速發(fā)展成為推動半導體產業(yè)新一輪發(fā)展的強大動力。信息產業(yè)的高速發(fā)展,為集成電路產業(yè)提供了巨大的市場空間。未來幾年,我國集成電路市場需求主要來自以下幾個方面:1.通信運營業(yè)的高速發(fā)展對集成電路提出新的需求;2.二是通信運營業(yè)的高速發(fā)展對集成電路提出新的需求;3 國民經濟和社會信息化建設給電子信息制造業(yè)創(chuàng)造了一個新市場;4.隨著我國經濟結構的戰(zhàn)略性調整,傳統(tǒng)產業(yè)改造升級,提高設計和制造水平推進機電一體化
13、,為各行業(yè)提供先進和成套的技術準備,又會給集成電路產業(yè)帶來新的市場。 綜觀中國集成電路的設計概況,可以看到從20世紀80年代末開始,經過90年代初的創(chuàng)業(yè)期,現正進入它的發(fā)展期,21世紀將是中國設計業(yè)的成熟期。2器件簡介2.1 LED顯示器2.1.1 LED顯示器的結構LED顯示塊是發(fā)光二極管顯示字段的顯示器件。在單片機應用系統(tǒng)中通常使用的是七段LED。七段LED內部由7個條形發(fā)光二極管和一個圓點發(fā)光二極管組成。圖2-1 本設計中采用的是綠色七段數碼管,每一段數碼管內部相當于有一個發(fā)光二極管。發(fā)光二極管具有單向導電性,只有當外加的正向電壓使得正向電流足夠大時才發(fā)光,它的開啟電壓比普通二極管的大,
14、紅色的在1.8V2.2V之間,綠色的約為2V。正向電流越大,發(fā)光越強。內部結構如圖2-1。 2.1.2 LED的接線形式根據內部發(fā)光二極管的接線形式分成共陰極型(公共點接地)和共陽極型(公共點接電源)。計算機與七段顯示器的接口,分成靜態(tài)顯示接口和動態(tài)顯示接口。靜態(tài)接口是每個七段顯示器單獨用一組寄存器控制,將其公共點接地。動態(tài)接口使用兩組寄存器。幾個顯示器的七段用一組寄存器控制,該寄存器稱作段選寄存器。另一組寄存器控制這幾個七段顯示器的公共點,控制這幾個顯示器逐個循環(huán)點亮。適當選擇循環(huán)速度,利用人眼“視覺暫留”效應,使看上去好像這幾個七段顯示器同時在顯示一樣??刂乒颤c的寄存器稱為位選寄存器。本
15、次設計中采用共陽極型接法,公共級通過一個PNP三極管與12V的電源相連。接口采用動態(tài)顯示。2.2 AT89C52簡介AT89C52是美國ATMEL公司生產的低電壓、高性能的CMOS 8位單片機,片內含8k bytes的可反復擦寫的只讀程序存儲器(PEROM)和256 bytes的隨即存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,與標準的MCS-51指令系統(tǒng)及8052產品引腳兼容,片內置通用8位中央處理器(CPU)和Flash存儲單元,功能強大。AT89C52單片機適合于許多較為復雜控制應用場合。2.2.1AT89C52主要性能參數:1與MCS51產品指令和引腳
16、完全兼容2具有8k字節(jié)可重擦寫Flash閃速存儲器31000次擦寫周期4全靜態(tài)操作:0Hz24MHz5三級加密程序存儲器62568字節(jié)內部RAM732個可編程I/O口線83個16位定時器/計數器98個中斷源10低功耗空閑和掉電方式11可編程串行UART通道2.2.2 AT89C52單片機的功能特性概述:AT89C52提供以下標準功能:8k字節(jié)Flash閃速存儲器,256字節(jié)內部RAM,32個I/O口線,3個16位定時/計數器,一個6向量兩級中斷結構,一個全雙工串行通信口,片內震蕩器及時鐘電路。同時,AT89C52可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的
17、工作,但允許RAM,定時/計數器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內容,但震蕩器停止工作并禁止其他所有部件工作直到下一個硬件復位。AT89C52單片機與MCS-51兼容,它與MCS-51的功能基本相同。a.MCS51單片機的中斷系統(tǒng)(1)中斷源 MCS51單片機是一個多中斷源的單片機,有五個中斷源:外部中斷0、定時器0中斷、外部中斷1、定時器1中斷和串行接收或發(fā)送中斷。各中斷源的中斷處理程序入口地址如下表21所示:表21 中斷向量表中斷源入口地址外部中斷00003H定時器0000BH外部中斷10013H定時器1001BH串行口0023H(2)中斷控制1中斷的開放或禁止是由中
18、斷允許寄存器IE控制的。IE的格式如下:EAESET1EX1ET0EX0EA中斷總允許位。EA1,開放總中斷,而各個中斷源的中斷請求是允許還是禁止,分別由各自的中斷允許位確定;EA=0,禁止一切中斷。ES串行口中斷允許位。ET1和ET0分別是定時器T1和T0的中斷允許位。EX1和EX0分別是外部中斷1(INT1)和外部中斷0(INT0)的中斷允許位。以上五個中斷允許位的意義是:0為禁止中斷,1為允許中斷。2中斷源優(yōu)先級控制中斷優(yōu)先級寄存器IP。MCS51單片機有高、低兩個中斷優(yōu)先級,5個中斷源可由程序設置為高優(yōu)先級中斷或低優(yōu)先級中斷,實現二級中斷嵌套。一個正在執(zhí)行的低優(yōu)先級中斷源的中斷服務程序
19、,能被高優(yōu)先級中斷源所中斷,但不能被同級別的另一個中斷源所中斷。MCS51單片機的5個中斷源的優(yōu)先級由中斷優(yōu)先級寄存器IP的相應位設定。IP格式如下:PSPT1PX1PT0PX0PS是串行口的中斷優(yōu)先級控制位。PT1和PT0分別是定時器T1和T0的中斷優(yōu)先級控制位。PX1和PX0分別是外部中斷INT1和INT0的中斷優(yōu)先級控制位。中斷優(yōu)先級控制位的意義是:0為設定為低優(yōu)先級中斷源;1為設定為高優(yōu)先級中斷。 如果同優(yōu)先級的多個中斷請求同時出現時,則按MCS51單片機的CPU查詢次序確定那個中斷請求被響應,其查詢次序為:IE0、TF0、IE1、TF1、RI或TI。b.MCS51的定時系統(tǒng)在控制系統(tǒng)
20、中,常常要求有一些實時時鐘以實現定時或延時控制,如定時中斷、定時檢測、定時掃描等等,也往往要求有計數器能對外部事件計數。MCS51單片機有2個定時器,稱為定時器0(T0)和定時器1(T1)。(1)定時器的結構MCS51單片機的定時器由計數器0、計數器1、方式控制寄存器和定時器控制寄存器組成。計數器0和計數器1分別由8位計數器TH0、TL0和TH1和TL1構成。TH0、TL0、TH1、TL1是不能位尋址的特殊功能寄存器,通過對TH0、TL0、TH1、TL1的初始化編程來控制T0和T1的計數初值。MCS51單片機的兩個計數器TH0、TL0和TH1、TL1可以構成16位的計數器、13位的計數器和8位
21、的計數器。計數器是定時器T0和T1的核心,它可以對引線T0和T1來的外部事件計數;也可以對單片機的機器周期計數。一個機器周期等于12個振蕩脈沖周期,因此計數頻率為振蕩頻率的1/12。這樣,不但可以根據計數值計算出定時時間,也可以反過來按定時時間的要求計算出計數器的預置值。計數器是加法計數器,所以預置的計數初值應為計數值的補碼。(2)定時器的工作方式MCS51單片機的T0有方式0、方式1、方式2和方式3四種工作方式。T1有方式0、方式1和方式2三種工作方式。工作方式控制寄存器TMOD:TMOD寄存器是不能位尋址的特殊功能寄存器,用于控制T1和T0的工作方式,各位的定義如下:GATEC/TM1M0
22、GATEC/TM1M0TMOD的高半字節(jié)和低半字節(jié)的定義相同,高半字節(jié)用于控制T1,低半字節(jié)用于控制T0,其中,GATE是門控位。GATE為1時,定時器的計數器受外部引線INT0或INT1輸入電平的控制,輸入高電平計數,輸入低電平停止計數,這時可以用于測量在INTx引線出現的正脈沖寬度;GATE為0時,定時器的計數不受INT0或INT1引線的控制。C/T是定時器和計數器選擇位。C/T為1,選擇計數器方式,計數器THi和TLi對Ti引線輸入的外部事件計數;C/T為0,選擇定時器方式,計數器THi和TLi對機器周期進行計數。M1和M0是定時器的工作方式選擇位。M1和M0這2位有0011四個狀態(tài),分
23、別選擇方式0(13位定時器)、方式1(16位定時器)、方式2(8位自動重裝載定時器)和方式3(T0分成兩個8位的定時器)。2.3 DS1302芯片2.3.1 DS1302的性能特性:1實時時鐘,可對秒、分、時、日、周、月以及帶閏年補償的年進行計數;2用于高速數據暫存的318位RAM3最少引腳的串行I/O;42.55.5V電壓工作范圍;52.5V時耗電小于300nA;6用于時鐘或RAM數據讀/寫的單字節(jié)或多字節(jié)(脈沖方式)數據傳送方式;7簡單的3線接口8可選的慢速充電(至Vcc1)的能力DS1302時鐘芯片包括實時時鐘/日歷和31字節(jié)的靜態(tài)RAM。它經過一個簡單的串行接口與微處理器通信。實時時鐘
24、/日歷提供秒、分、時、日、周、月和年等信息。對于小于31天的月和月末的日期自動進行調整,還包括閏年校正的功能。時鐘的運行可以采用24h或帶AM(上午)/PM(下午)的12h格式。采用三線接口與CPU 進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數據。DS1302有主電源/后備電源雙電源引腳:Vcc1在單電源與電池供電的系統(tǒng)中提供電源,并提供低功率的電池備份;Vcc2在雙電源系統(tǒng)中提供主電源,在這種運用方式中Vcc1連接到備份電,以便在沒有主電源的情況下能保存時間信息以及數據。DS1302由Vcc1或Vcc2中較大者供電。當Vcc2大于Vcc10.2V時,Vcc2給DS130
25、2供電;當Vcc2小于Vcc1時,DS1302由Vcc1供電。DS1302數據操作原理 DS1302在任何數據傳送時必須先初始化,把RST腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數據在SCLK的上升沿被輸出。無論是讀周期還是寫周期,開始8位指定40存器中哪個將被訪問到。在開始8個時鐘周期,把命令字節(jié)裝入移位寄存器之后,另外的始終周期在讀操作時輸出數據,在寫操作時寫入數據。時鐘脈沖的個數在單字節(jié)方式下為8加8,在多字節(jié)方式下為8加字節(jié)數,最大可達248字數。 如果在傳送過程中置RST腳為低電平,則會中止本次數據傳送,并且I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc 2.5V之前,RST
26、腳必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。DS1302的引腳及內部結構圖如圖2.1所示,表2.1為各引腳的功能。 圖2.1 DS1302引腳圖及內部結構 圖2.2 DS1302的控制字DS1302的控制字如圖2.2所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1;如果它為0。則不能把數據寫入到DS1302中。位6如果為0。則表示存取日歷時鐘數據;為1表示存取RAM數據。位51(A4A0)指示操作單元的地址。最低有效位(位0)如為0,表示要進行寫操作;為1表示進行讀操作??刂谱止?jié)總是從最低位開始輸入/輸出。為了提高對32個地址的尋址能力(地址/命令位15 = 邏輯1),可
27、以把時鐘/日歷或RAM寄存器規(guī)定為多字節(jié)(burst)方式。位6規(guī)定時鐘或RAM,而位0規(guī)定讀或寫。在時鐘/日歷寄存器中的地址931或RAM寄存器中的地址31不能存儲數據。在多字節(jié)方式中,讀或寫從地址0的位0開始。必須按數據傳送的次序寫最先的8個寄存器。但是,當以多字節(jié)方式寫RAM時,為了傳送數據不必寫所有31字節(jié),不管是否寫了全部31字節(jié),所寫的每一字都將傳送至RAM。引腳號引腳名稱功能1Vcc2主電源2,3X1,X2震蕩源,外接32.768kHz晶振4GND地線5RST復位/片選線6I/O串行數據輸入/輸出端(雙向)7SCLK串行數據輸入端8Vcc1后備電源表2.1 DS1302引腳功能圖
28、2.3 DS1302數據讀/寫時序 DS1302共有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數據位為BCD碼形式。其日歷、時間寄存器及其控制字見表2.2,其中奇數為讀操作,偶數為寫操作。時鐘暫停:秒寄存器的位7定義位時鐘暫停位。當它為1時,DS1302停止振蕩,進入低功耗的備份方式。通常在對DS1302進行寫操作時(如進入時鐘調整程序),停止振蕩。當它為0時,時鐘將開始啟動。AM-PM/12-24小時方式:小時寄存器的位7定義為12或24小時方式選擇位。它為高電平時,選擇12小時方式。在此方式下,位5是AM/PM位,此位是高電平時表示PM,低電平表示AM。在24小時方式下,位5為
29、第二個10小時位(2023h)。寄存器名命令字節(jié)取值范圍寄存器內容寫讀76543210秒寄存器80H81H0059CH10sSEC分寄存器82H83H0059010minMIN小時寄存器84H85H0023或011212/24010A/PHRHR日期寄存器86H87H0128,29,30,310010DATEDATE月份寄存器88H89H011200010MMONTH周寄存器8AH8BH010700000DAY年寄存器8CH8DH009910YEARYEAR表2.2 內部寄存器地址和內容 DS1302的晶振選用32.768kHz,電容推薦值為6pF,因為振蕩頻率較低,也可以不接電容,對記時精度
30、影響不大。2.4 74LS164八位移位寄存器2.4.1 74LS64簡介74LS164是一個8位移位寄存器,起其主要電特性的典型值如下:型號fmPn54/7416436MHz185mW54/74LS16436MHz80mW當清除(CLEAR)為低電平時,輸出端(QAQH)均為低電平。串行數據輸入端(A,B)可控制數據。當A、B任意一個為低電平,則禁止新數據輸入,在時鐘端(CLOCK)脈沖上升沿作用下Q0為低電平。當A、B有一個為高電平,則另一個就允許輸入數據,并在CLOCK上升沿作用下決定Q0的狀態(tài)。引出端符號: CLOCK時鐘輸入端CLEAR同步清楚輸入端(低電平有效)A,B串行數據輸入端
31、QAQH輸出端其管腳圖如圖2.3: 圖2.3 74LS164管腳圖2.4.2 74LS164邏輯介紹:1極限值: 電源電壓 7V 輸入電壓 5.5V 工作環(huán)境溫度: 54164 55125C74164 070C儲存溫度65150C2其真值表如表2.3 操作模式輸入輸出復位MRABQ0Q1Q7移位LLQ0Q6HLLLQ0Q6HLHLQ0Q6HHLLQ0Q6HHHHQ0Q6 表2.3 74LS164特性表 H 高電平 L 低電平 任意電平3時序圖:時序圖如圖2.4圖2.4 74LS164時序圖3硬件電路3.1 線路的設計根據本課題的要求:數字鐘要顯示現在的日歷時間包括年、月、日、星期、時、分、秒和
32、是否為閏年。所以,需要選用19個共陽極數碼管,且選用3片74LS164。數碼管要通過74LS164送顯,所以19個數碼管必須排成3排。設計思想:按照系統(tǒng)設計功能的要求,初步確定設計系統(tǒng)由電源轉換模塊、主控制模塊、時鐘模塊、顯示模塊、鍵盤接口模塊共5個模塊組成,電路系統(tǒng)構成框圖如圖3.1所示:(89C52)主控制模塊電源模塊鍵掃描電路DS1302時鐘電路顯示電路 圖3.1電路系統(tǒng)構成框圖3.1.1 電源轉換模塊日常用到的都是220V的交流電源,所以,需要用變壓器將其轉換為線路設計中所用到的直流電源。此轉換后的直流電源為+12V,而線路設計中許多芯片所用到的電壓為+5V,因此,還需有12V到5V的
33、轉換電路。此轉換采用7805(三端穩(wěn)壓器)來完成,轉換圖如下:7805Vin=12VVout=5V470uF 470uF 104pF 圖3-1 7805電壓轉換電路當Vin5V時,Vout端可得到穩(wěn)定的5V電壓。圖中,104pF電容的作用是去高頻干擾;3.1.2 主控制模塊此模塊由實時時鐘芯片DS1302和AT89C52組成。DS1302只有3個管腳SCLK,I/O,RST分別接AT89C52的P3.2,P3.3,P3.4。通過串行輸入并行輸出來送顯示模塊。3.1.3 顯示模塊顯示部分采用普通的共陽數碼管顯示,采用動態(tài)掃描,以減少硬件電路??紤]到一次掃描19位數碼管顯示時會出現閃爍情況,設計時
34、19個數碼管分為3排同時掃描。第一排6個數碼管分別為千年、百年、十年、年、十月、月,第二排6個數碼管分別為十時、時、十分、分、十秒、秒,第三排7個數碼管分別為星期、陰歷十月、陰歷月、陰歷十日、陰歷日、十日、日。顯示時采用串行口輸出段碼,用3片74LS164來驅動3排數碼管,這樣掃描一次只需7ms。74LS164內部為8個D觸發(fā)器,用以實現數據的串行移位。單片機一串行口方式0(移位寄存器方式)輸出數據,3片74LS164作為3排共陽數碼管的串/并轉換顯示借口。74LS164為TTL單向8位移位寄存器,可以實現串行輸入,并行輸出。其中A、B(第1、2管腳)為串行數據輸入端,2個引腳按邏輯“與”運算
35、規(guī)律輸入信號,共一個輸入信號時可以并接,共同作為輸入腳。CP(第8腳)為時鐘輸入端,可連接到串行口的TXD端。每一個時鐘信號的上升沿加到CP 端時,移位寄存器移一位。8個時鐘脈沖過后,8位二進制數全部移入74LS164中。MR(第9腳)為復位端,當該腳為低電平時,移位寄存器各位復0;只有當它為高電平時,時鐘脈沖才起作用。Q1Q8(第36和1013引腳)并行輸出端分別數碼管的ha(因為串行口從低位開始傳送)各段對應的引腳上。在給出了8個脈沖后,最先進入74LS164的第1個字節(jié)數據到達了最高位。再來1個脈沖,第1個脈沖就會從最高位移出,進入下個74LS164的第1位。3片74LS164首尾相串,
36、而時鐘端則接在一起。這樣,當輸入8個脈沖時,從單片機RXD端輸出的第1字節(jié)數據就進入了第1片74LS164中,而當第2個8個脈沖到來后,第1字節(jié)數據就進入了第2片74LS164,而隨后的第2字節(jié)的數據則進入了第1片74LS164。這樣,當第3個8個脈沖完成后,首次送出的數據被送到了最下面的164(第3片)中,其它數據依次出現在第2和第1片74LS164中,實現了數據在74LS164中的串行輸入、并行輸出。在方式0狀態(tài)下,串行口為同步移位寄存器方式,其波特率是固定的,為fOSC/12。數據由RXD(P3.0)端輸入或輸出,同步移位脈沖由TXD(P3.1)端輸出。發(fā)送、接收數據時低位在先。所以根據
37、本小姐下面提供的電路圖,在編寫程序時,查共陽數碼管的段碼的二進制數據應該將正常的共陽數碼管09的二進制值按位反序排序,如原來的二進制為(C0H),要改為(03H),就能使數碼管正常顯示了。3.1.4 鍵盤接口設計用普通按鈕接10K上拉電阻,用查詢法完成讀鍵功能。3.2 電路圖的繪制電路圖的繪制通過PROTELL 99 SE完成。選定需要的芯片,按照PROTEL繪圖的步驟完成。3.3 電路板的焊接在完成PROTEL繪圖后,按照連接好的線路圖,將芯片焊接到對應的位置上。檢查線路,看是否焊接出現短路情況。3.4 打開電源前應注意的問題1)先測火線、地線、零線各線之間有沒有電阻;2)測控制板上各IC的
38、5V電源是否接正確、有沒有與地短路;3)確認IC方向是否插正確;4)第一次開開關時,必須手不能離開開關。若有異樣,立刻切斷電源;4軟件設計部分4.1 陽歷程序的設計因為使用了時鐘芯片DS1302,陽歷程序只需要從DS1302各寄存器中讀出年、周、月、日、小時、分、秒等數據,再處理既可。在首次對DS1302進行操作之前,必須對他進行初始化,然后從DS1302中讀出數據,再經過處理后,送給顯示緩存單元。陽歷程序流程圖見圖4.1所示。開 始初始化13021302開始振蕩從1302中讀出年、周、月、日、小時、分、秒讀出的數據都為BCD碼,將其高低位分離,送顯示緩存 圖4.1 陽歷程序流程圖4.2 時間
39、調整程序設計調整時間用3個調整按紐,1個作為移位、控制用,另外2個作為加個減用,分別定義為控制按紐、加按紐、減按紐。在調整時間過程中,要調整的位與別的位應該有區(qū)別,所以增加了閃爍功能,即調整的位一直在閃爍,直到調整下一位。閃爍原理就是,讓要調整的一位每隔一定時間熄滅一次,比如說50ms。利用定時器記時,當到達50ms溢出時,就送給該位熄滅符,在下一次溢出時,再送正常顯示的值,不斷交替,直到調整該位結束。此時送正常顯示值給該位,再進入下一位調整閃爍程序。時間調整程序流程圖如圖4.2所示??刂奇I有效,進入月調整程序控制鍵有效,進入年調整程序等待按鍵程序等待按鍵程序減鍵有效加鍵有效加鍵有效減鍵有效月
40、減1年加1月加1年減1控制鍵有效,進入星期調整程序控制鍵有效,進入日調整程序等待按鍵程序等待按鍵程序減鍵有效加鍵有效加鍵有效減鍵有效星期減1日加1星期加1日減1控制鍵有效,進入分調整程序控制鍵有效,進入小時調整程序等待按鍵程序等待按鍵程序減鍵有效加鍵有效加鍵有效減鍵有效分減1小時加1分加1小時減1控制鍵有效,跳出時間調整程序,進入主循環(huán)程序圖4.2時間調整程序流程圖4.3 陰歷程序設計陰歷程序的實現是要靠陽歷日期來推算的,要根據陽歷來推算陰歷日期,首先要計算法。推算方法就是,根據陽歷當前日期在一年中的天數來計算陰歷日期。陽歷一個月不是30天就是31天(2月除外,閏年2月為29秒天,平年2月為2
41、8天)。陰歷一年有12個月或13個月(含閏月),一個月為30天 或29天。如果把一個只有29天的月稱為小月,用1為標志,把30天的月稱為大月,用0為標志,那么12位二進制能表示一年12個月的大小。如果有閏月,則把閏月的月份作為一個字節(jié)的高4位,低4位表示閏月大小,大月為0,小月為1,這樣一個字節(jié)就包含了所有閏月的信息。陰歷春節(jié)和陽歷元旦相差的天數也用一個字節(jié)表示??偣灿?字節(jié)就可以存儲一年中任何一天陽歷和陰歷的對應關系的有關數據,例如2004年的陰歷和陽歷對應關系表如表4.1所示。2004年的春節(jié)和元旦差21天,這樣2004年的信息表示為:21,42H,52H,21H。其中表示12個月大小信息
42、的字節(jié),第4位和第7位不用。第個字節(jié)為十進制,其他的都為十六進制。按此方法,50年的陽歷和陰歷對應關系表總共使用200字節(jié)。月份123456789101112閏2月大小小大大大小大小大小大小大小天數1000101010101二進制29303030293029302930293016進制425221表4.12004年陰歷和陽歷對應關系表2000 2050年的關系表:35,15H,51H,00H(2000)23,11H,52H,41H(2001)42,12H,65H,00H(2002)31,11H,32H,00H(2003)21,42H,52H,21H(2004)39,52H,25H,00H(20
43、05)28,25H,04H,71H(2006)48,66H,42H,00H(2007)37,33H,22H,00H(2008)25,15H,24H,51H(2009)44,05H,52H,00H(2010)33,22H,65H,00H(2011)22,21H,25H,41H(2012)40,24H,52H,00H(2013)30,52H,42H,91H(2014)49,55H,05H,00H(2015)38,26H,44H,00H(2016)27,53H,50H,60H(2017)46,53H,24H,00H(2018)35,25H,54H,00H(2019)24,41H,52H,41H(20
44、20)42,45H,25H,00H(2021)31,24H,52H,00H(2022)21,51H,12H,21H(2023)40,55H,11H,00H(2024)28,26H,21H,61H(2025)47,26H,61H,00H(2026)36,13H,31H,00H(2027)25,05H,31H,51H(2028)43,12H,54H,00H(2029)33,51H,25H,00H(2030)22,42H,25H,31H(2031)41,32H,22H,00H(2032)30,55H,02H,71H(2033)49,55H,22H,00H(2034)38,26H,62H,00H(20
45、35)27,13H,64H,60H(2036)45,13H,32H,00H(2037)34,12H,55H,00H(2038)23,10H,53H,51H(2039)42,22H,45H,00H(2040)31,52H,22H,00H(2041)21,52H,44H,21H(2042)40,55H,44H,00H(2043)29,26H,50H,71H(2044)47,26H,64H,00H(2045)36,25H,32H,00H(2046)25,23H,32H,50H(2047)44,44H,55H,00H(2048)32,24H,45H,00H(2049)22,55H,11H,30H(20
46、50)有了算法和數據以后,就可以設計軟件了。根據當前陽歷的日期,算出陽歷為該年中的第幾天。圖4.3為計算陽歷中任何一天在該年中為第幾天的流程圖。計算出當前陽歷日期為該年中的第幾天后,再減去陽歷該年春節(jié)和元旦的日差,如果夠減,則相減的結果就是陰歷在該年的總第幾天了。根據該數據就可以推算出具體的當前陰歷日期;如果不夠減,則表示當前陰歷年為陽歷年的前一年。這種情況下,根據實際,當前陰歷日期會處于陰歷11月或12月,此時春節(jié)和元旦的日差減去前面計算出的當前陽歷日期在陽歷年為第幾天的數據,其結果表示當前陰歷日期離春節(jié)的天數。計算出陽歷天數為該年的第幾天,存放在R2和R3中。計算出天數后如果大于#FFH,
47、則把#FFH存放在R2中,余值存放在R3中。也就是說在用積存器R2和R3表示的天數信息中,R2充當主積存器,數據先存滿R2,再存R3。在整個轉換程序中,這里面的數據不能被覆蓋。 計算出陽歷總天數后,就可以根據它來推算陰歷日期。推算方法是,先用總天數減去春節(jié)和元旦的日差,如果結果為1,則該天正好是春節(jié)(因為春節(jié)在元旦之后,在計算春節(jié)和元旦的日差時,假設元旦為0天,春節(jié)為n天,則日差為n。前面計算的陽歷總天數是該天在該年中的第幾天,是以元旦為1而得到的,與計算春節(jié)和元旦日差的這種方法相比,其數值少了1,所以要在原來本應該以0作為該天就是春節(jié)的依據的基礎上加1,所以以1作為該天是春節(jié)的標志);如果結
48、果小于1,則陰歷應該是陽歷的前一年;如果結果大于1,說明陽歷和陰歷為同一年。再根據查表所得的該年的陰歷的閏月和大小月的信息,就可以推算出該天的陰歷日期了。圖4.4為由總天數推算出陰歷日期的程序流程圖。計算陽歷天數結束,總天數中的為當前日期在陽歷年中的第幾天Y總天數加入號數 Y當前數是總天數NN與當前月同?月數加1總天數中加入該月天數當前月為1月?置陰歷總天數為0 圖4.3計算陽歷天數程序流程圖 程序入口NR2=0? 月份為當前正在減的月份,號數為R2中的值Y月份為當前正在減的月份的前一個月的最后一天YNR3=0?R2=R2+R3R3=0N下個月為閏月?夠減YYN月加1減去閏月天數R2減1月天數
49、 圖4.4推算陰歷日期的程序流程圖5調試調試中出現的問題及解決方法:(1)晶振無法正常起振原因:VCC混有交流成分解決方法:在電源正負極間接上一個電容。(2)數碼管顯示亂碼形式原因:數碼管的段碼表錯誤,沒有與硬件相結合。解決方法:將09十個數字全部輸入顯示,找出與之對應的正確的數碼管段碼表。(3)無法初始化DS1302 原因:電路板上DS1302虛焊。解決方法:將DS1302虛焊部分重新焊接。6小結可見技術在不斷進步,機械式時鐘已經被淘汰,取而代之的是具有高度準確性和直觀性且無機械裝置,具有更長的使用壽命等優(yōu)點的數字時鐘。數字時鐘更具人性化,更能提高人們的生活質量,更受人們歡迎。無可否認機械時
50、代已經過去,電子時代已經到來。做為新時代的我們,更應該提高自身能力,適應新時代的發(fā)展。知識來自實踐,多去生活中探詢所需要的。對于上述所提到的研究課題,我們應盡量考慮到人的因素,增強時鐘的實用性和操作性,為使用者提供切實的方便,營造一種舒適的生活氛圍。所以,在設計的時候,應該從多方面、多角度去考慮問題,而且應該進一步提高時鐘的質量。7致謝首先,感謝學校四年來對我的培養(yǎng)。本課題的前期準備以及整個研究過程是在王文強老師的耐心指導下完成的,他嚴謹的治學態(tài)度、扎實的理論基礎、全身心投入工作的精神以及對學生盡心盡力的態(tài)度給了我極大的幫助與鼓勵,使我受益匪淺,在此謹對他表示崇高的敬意和衷心的感謝!還要衷心感
51、謝其他所有對本課題的研究和論文撰寫有過幫助的同學。8參考文獻【1】余永權.ATMEL89 系列單片機應用技術,北京航空航天大學出版社,2002【2】李廣弟等.單片機基礎,北京航空航天大學出版社,2001【4】AT89C52 Datasheet ,ATMEL,2004【5】DS1302 Datasheet ,DALLAS Semiconductor,2004【6】74LS164 Datasheet www.21IC.com 9附錄 ;* ;* 萬 年 歷 程 序 * ;*;從1302中讀出數據放在67H(高兩位年)66H(低兩位年)65H(月)64H(星期);63H(日)62H(小時)61H(分
52、)60H(秒)57H(農歷月)56H(農歷日);顯示緩存單元7CH-7BH(4CH-4BH)(年低位),7AH-79H(4AH-49H)月,78H(48H)星期;77H-76H(47H-46H)日,75H-74H(45H-44H)小時,73H-72H(43H-42H)分;71H-70H(41H-40H)秒,5EH-5DH(55H-54H)農歷年;5CH-5BH(53H-52H)農歷月,5AH-59H(51H-50H)農歷日;閏月標志為F0,定時器T1為調整時間閃爍用。;SCLKEQU P3.2 IOEQU P3.3 RSTEQU P3.4yearDATA 66H monthDATA 65Hwe
53、ekDATA 64H dayDATA 63HhourDATA 62H mintueDATA 61H secondDATA 60H DS1302_ADDRDATA 32H DS1302_DATADATA 31HORG0000HAJMPSTARTORG0003HRETIORG000BHRETIORG001BHLJMPINTT1ORG0023HRETIORG002BHRETI;*;* 主 程 序 *;*START:SETBEAMOVSCON,#00H;串行輸出,方式0MOVTMOD,#10H;計數器1,方式1MOVTL1,#00HMOVTH1,#00HMOVDS1302_ADDR,#8EHMOVDS
54、1302_DATA,#00H;允許寫1302LCALLWRITEMOVDS1302_ADDR,#90HMOVDS1302_DATA,#0A6H;1302充電,充電電流1.1mALCALLWRITEMAIN1:MOVDS1302_ADDR,#8DH;讀出年LCALLREADMOVyear,DS1302_DATAMOVDS1302_DATA,#8BH;讀出星期LCALLREADMOVweek,DS1302_DATAMOVDS1302_ADDR,#89H;讀出月LCALLREADMOVmonth,DS1302_DATAMOVDS1302_ADDR,#87H;讀出日LCALLREADMOVday,DS
55、1302_DATAMOVDS1302_ADDR,#85H;讀出小時LCALLREADMOVhour,DS1302_DATAMOVDS1302_ADDR,#83H;讀出分LCALLREADMOVmintue,DS1302_DATAMOVDS1302_ADDR,#81H;讀出秒LCALLREADMOVsecond,DS1302_DATAMOVR0,year;年分離,送顯示緩存LCALLDIVIDEMOV7BH,R1MOV4BH,R1MOV7CH,R2MOV 4CH,R2MOV78H,weekMOV48H,weekMOVR0,month;月分離,送顯示緩存LCALLDIVIDEMOV79H,R1MO
56、V49H,R1MOV7AH,R2MOV 4AH,R2MOVR0,day ;日分離,送顯示緩存LCALLDIVIDEMOV76H,R1MOV46H,R1MOV77H,R2MOV 47H,R2MOVR0,hour ;小時分離,送顯示緩存LCALLDIVIDEMOV74H,R1MOV44H,R1MOV75H,R2MOV 45H,R2MOVR0,minute;分分離,送顯示緩存LCALLDIVIDEMOV72H,R1MOV42H,R1MOV73H,R2MOV 43H,R2MOVR0,second;秒分離,送顯示緩存LCALLDIVIDEMOV70H,R1MOV40H,R1MOV71H,R2MOV 41
57、H,R2LCALLDISPLAYLCALLGENGXIAN;更新農歷程序JNBP1.1,SETGJNBF0,SSSCLRP1.3;閏月,則p1.3清0,指示燈亮LJMPMAIN1SSS:SETBP1.3;非閏月,則p1.3置位,指示燈滅LJMPMAIN1;*;* 公 歷 設 置 程 序 *;* SETG:SETBTR1SETBET1CLR08HCLR09HCLR0AHCLR0BHCLR0CHCLR0DHCLR0EHCLR0FHMOVDS1302_ADDR,#8EHMOVDS1302_DATA,#00H;允許寫1302LCALLWRITEMOVDS1302_ADDR,#80HMOVDS1302_
58、DATA,#80H;1302停止振蕩LCALLWRITEGWAIT:LCALLDISPLAYJNBP1.1,GWAITSETG1:LCALLDISPLAYJNBP1.1,SETG2JNBP1.2,GADDYEARAJMPSETG1 GADDYEAR:MOVR7,66H;年加1LCALLADD1MOV66H,ACJNE A,#51H,GADDYEAR1MOV66H,#01H GADDYEAR1:MOVDS1302_ADDR,#8CH;年值送入1302MOVDS1302_DATA,66HLCALLWRITEMOVR0,66HLCALLDIVIDE;年分離送顯示緩存MOV4BH,R1MOV7BH,R
59、1MOV4CH,R2MOV7CH,R2 WAITT1:LCALLDISPLAYJNBP1.2,WAITT1AJMPSETG1 SETG2:SETB0AH;調月時閃標志 GWAIT2:LCALLDISPLAYJNBP1.1,GWAIT2SETG3:LCALLDISPLAYJNBP1.1,SETG4JNBP1.2.GADDMONTHAJMPSETG3 GADDMONTH:MOVR7,65H;月加1LCALLADD1MOV65H,ACJNEA,#13,GADDMONTH1MOV65H,#01H GADDMONTH1:MOVDS1302_ADDR,#88H;月值送入1302MOVDS1302_DATA
60、,65HLCALLWRITEMOVR0,65HLCALLDIVIDE;月分離送顯示緩存MOV79H,R1MOV49H,R1MOV7AH,R2MOV4AH,R2 WAITT2:LCALLDISPLAYJNBP1.2,WAITT2AJMPSETG3SETG4:SETB0BH;調日時閃標志 GWAIT4:LCALLDISPLAYJNBP1.1,GWAIT4SETG5:LCALLDISPLAYJNBP1.1,SETG6JNBP1.2,GADDDAYAJMPSETG5 GADDDAY:MOVR7,63H;日加1LCALLADD1MOV63H,ACJNEA,#32H,GADDDAY1MOV63H,#01H
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專項定制旅游接待協議樣式(2024年版)版B版
- 專業(yè)游泳館運營勞務輸出協議2024
- 2025年度廠房抵押貸款風險控制合同范本4篇
- 專業(yè)地面打蠟工程協議范本一
- 2025年度智能辦公空間租賃合作協議范本4篇
- 二零二五年度影視基地場地租賃及影視制作合同范本3篇
- 專業(yè)汽油運輸業(yè)務協議(2024年版)版B版
- 個人土地使用與承包2024版協議樣本版
- 2025年度高端商業(yè)區(qū)場地租賃及安全管理服務合同3篇
- 專業(yè)軟件外部開發(fā)合同樣本2024
- 2025年河北供水有限責任公司招聘筆試參考題庫含答案解析
- Unit3 Sports and fitness Discovering Useful Structures 說課稿-2024-2025學年高中英語人教版(2019)必修第一冊
- 農發(fā)行案防知識培訓課件
- 社區(qū)醫(yī)療抗菌藥物分級管理方案
- NB/T 11536-2024煤礦帶壓開采底板井下注漿加固改造技術規(guī)范
- 2024年九年級上德育工作總結
- 中文版gcs electrospeed ii manual apri rev8v00印刷稿修改版
- 新生兒預防接種護理質量考核標準
- 除氧器出水溶解氧不合格的原因有哪些
- 沖擊式機組水輪機安裝概述與流程
- 畢業(yè)論文-水利水電工程質量管理
評論
0/150
提交評論