版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、摘 要萬年歷設計是采用數(shù)字電路實現(xiàn)對.時,分,秒.數(shù)字顯示的計時裝置,廣泛用于個人家庭,車站, 碼頭辦公室等公共場所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應用,使得數(shù)字鐘的精度,遠遠超過老式鐘表, 鐘數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動起閉路燈、定時開關(guān)烘箱、通斷動力設備、甚至各種定時電氣的自動啟用等,但是所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究萬年歷及擴大其應用,有著非常現(xiàn)實的意義。本課題基于單片機設計的萬年歷設計,用at89c51來完成電路的
2、控制,用ds1302完成時鐘的顯示部分。本設計涉及到了單片機與外圍器件的串行、并行通信原理和int0,int1中斷原理,定時器計數(shù)器原理,鍵盤原理,液晶顯示原理等。關(guān)鍵詞:單片機;萬年歷;液晶技術(shù);abstractcalendar digital circuit design is right. hours, minutes and seconds. figures show that the timing devices, widely used in individual households, stations, terminals offices and other public pl
3、aces, become an indispensable necessity in daily life, due to the number of integrated circuits the development and extensive application of quartz crystal oscillators, making digital clock accuracy, far more than old-fashioned clocks and watches, clock digital production and life to people brings g
4、reat convenience, but also greatly expanded the original chime clocks. such as regular auto-alarm, schedule automatic rang the bell, the time automatic control, regular radio, automatic closed-circuit from lights, oven timer switch, on-off power equipment, and even a variety of regular electrical au
5、tomatically enabled and so on, but all these are based on clocks and watches digitization basis. therefore, the study calendar and expand its application, has a very practical significance. the topic of perpetual calendar design based on single chip design, with the at89c51 to complete the circuit c
6、ontrol the clock with the completion of the display part of the ds1302. this design relates to the mcu and peripheral devices, serial, parallel communication principles and int0, int1 interrupt principle, the timer counter principle, keyboard theory, liquid crystal display rationale. keywords: scm;
7、calendar; liquid crystal technology;目錄1 系統(tǒng)總體設計11.1 引言11.2 系統(tǒng)整體設計思路11.3 設計方案選擇21.4 功能介紹21.5 工作原理31.6 本章小結(jié)32 系統(tǒng)硬件電路設計42.1單片機最小系統(tǒng)硬件的電路設計42.1.1 單片機電路設計42.1.2 時鐘電路設計62.1.3 復位電路設計72.2 時鐘電路的設計82.2.1 ds1302的性能特性82.2.2 ds1302數(shù)據(jù)操作原理92.3 獨立式鍵盤設計112.4 顯示電路的設計113系統(tǒng)軟件設計143.1陽歷程序143.2 時間調(diào)整程序143.3 陰歷程序163.4 萬年歷總體流程
8、圖183.5 萬年歷總程序(見附錄)194 設計總結(jié)20參考文獻21附 錄22致 謝451 系統(tǒng)總體設計1.1 引言隨著電子技術(shù)的不斷發(fā)展,單片機技術(shù)在設計中所體現(xiàn)在出來的優(yōu)勢越來越明顯,它不僅是電子信息類專業(yè)的一個重要部分,而且在其它類專業(yè)工程中也是不可缺少的。廣泛地應用于家電、工業(yè)過程控制、儀器儀表、智能武器、航空和空間飛行器等領(lǐng)域發(fā)展更是迅速,已成為新一代一些電子設備不可缺少的核心部件。目前世界上單片機年產(chǎn)量已達十多億片,通常是當年微處理器產(chǎn)量的4-5倍以上。用最少的芯片就能實現(xiàn)最強大的功能??梢韵胍姡@是將來電子產(chǎn)品的主流方向,它將無可置疑地一步步取代其它同類產(chǎn)品,其數(shù)量之大和應用面之
9、廣,是其它任何類型的計算機所無法比擬的1。單片機是應工業(yè)測控需要而誕生的。它把計算機最基本的功能電路,如cpu、程序存儲器、數(shù)據(jù)存儲器、i/o接口、定時、計數(shù)器、中斷系統(tǒng)等集成到一塊芯片上,形成單片形態(tài)的計算機。單片機通常以最小系統(tǒng)運行,在家用電器中和常用的智能儀器儀表中常??梢浴皢纹惫ぷ?,同時單片機在我們?nèi)粘I钪幸步?jīng)常見到,如電子表、舞廳里的一些燈光的控制、一些招牌燈光的控制、工廠一些自動控制等。將來只要有自動控制方面的都會離不開單片機的開發(fā)和使用,對于現(xiàn)代的自動化控制起著舉足輕重的作用。為了順應形勢發(fā)展的需要,我們學習了單片機課程,此次用液晶顯示萬年歷和時間設置以及顯示測溫度的數(shù)據(jù)對單
10、片機的學習起到了很好的鞏固作用,尤其是對匯編語言程序的設計。 1.2 系統(tǒng)整體設計思路此設計即在數(shù)碼管上顯示年、月、日、時、分、秒、星期和陰歷月、日,以及在顯示農(nóng)歷時間時,能表明是否為閏年。原理框圖如圖1-1所示。電路一般包括以下幾個部分:時鐘電路模塊、鍵盤掃描、單片機最小系統(tǒng)和顯示電路等部分2。對于各部分:為使時鐘走時與標準時間一致,校時電路是必不可少的,鍵盤用來校正液晶上顯示的時間。單片機通過輸出各種電脈沖信號來驅(qū)動控制各部分正常工作。(3)單片機發(fā)送的信號經(jīng)過顯示電路在數(shù)碼管上顯示出來。圖1-1 電子萬年歷電路系統(tǒng)構(gòu)成框圖figure 1-1 constitute a block dia
11、gram of electronic circuitry calendar1.3 設計方案選擇方案一 用eda技術(shù)及vhdl語言控制來實現(xiàn)顯示及測溫度,且顯示也可以用數(shù)碼管,但設計電路復雜,不易實現(xiàn)。此外,對于vhdl語言也不夠了解,故不采用此方案。方案二 主控芯片使用51系列at89c52單片機,時鐘芯片采用美國dallas公司推出的一種高性能、低功耗、帶ram的實時時鐘ds1320。采用ds1320作為計時芯片,可以做到計時準確。更重要的是,ds1320可以在很小電流的后備電源(2.55.5 v電源,在2.5v時耗電小于300na)下繼續(xù)計時,而且ds1320可以變成編程選擇多種充電電流來
12、對后備電源進行慢速充電,可以保證后備電源基本不耗電,顯示模塊采用普通的共陽led數(shù)碼管,鍵輸入采用查詢法實現(xiàn)功能調(diào)整,用匯編語言編程來控制單片機讓它在數(shù)碼管上顯示數(shù)據(jù)及文字3。由于單片機結(jié)構(gòu)簡單、控制功能強、可靠性高、體積小、價格低等優(yōu)點,綜合上述方案的選擇與比較,選擇方案二。也主要是由于電器元件的熟悉程度以及市場的供求關(guān)系。在方案二中,大部分的電器元件我們較熟悉并且更容易獲得。1.4 功能介紹此設計即在數(shù)碼管上顯示年、月、日、時、分、秒、星期和陰歷月、日,以及在顯示農(nóng)歷時間時,能表明是否為閏年。本次設計主要用單片機控制程序讓它在數(shù)碼管上顯示年、月、日、時、分、秒及星期,時、分、秒的計數(shù)結(jié)果經(jīng)
13、過數(shù)據(jù)處理可直接送數(shù)碼管顯示。當計時發(fā)生誤差的時候可以用校時電路進行校正。時計數(shù)器計滿24小時后自動向日計數(shù)器進一,日計數(shù)器由平年、閏年的28/30/31對大、小月和二月的判斷應與當月相應的日期相一致,當日計數(shù)器計滿時,向月計數(shù)器進位,月計數(shù)器計滿12月向年計數(shù)器進位,當年計數(shù)器計滿100時所以計數(shù)器清零。設計采用的是年、月、日和時、分、秒、星期以及溫度同時顯示。1.5 工作原理設計的電路主要由四大模塊構(gòu)成:單片機最小系統(tǒng)模塊、時鐘電路模塊、鍵盤掃描模塊和顯示電路模塊。由單片機控制的萬年歷以及時間顯示,當時間及秒計數(shù)計滿60時就向分進位,分計數(shù)器計滿60分后向時計數(shù)器進位,小時計數(shù)器按“24翻
14、1”規(guī)律計數(shù)。時、分、秒的計數(shù)結(jié)果經(jīng)過數(shù)據(jù)處理可直接送數(shù)碼管顯示。當計時發(fā)生誤差的時候可以用校時電路進行校正。時計數(shù)器計滿24小時后自動向日計數(shù)器進一,日計數(shù)器由平年、閏年的28/30/31對大、小月和二月的判斷應與當月相應的日期相一致,當日計數(shù)器計滿時,向月計數(shù)器進位,月計數(shù)器計滿12月向年計數(shù)器進位,當年計數(shù)器計滿100時所以計數(shù)器清零。設計采用的是年、月、日和時、分、秒、星期顯示,所以在單片機通過對數(shù)據(jù)處理進行同時在數(shù)碼管上顯示。1.6 本章小結(jié)本章主要介紹了萬年歷系統(tǒng)整體設計思路、設計方案選擇、功能介紹和工作原理等,使對整個系統(tǒng)有個大致的了解,明白以后的設計方案和原理,為下面的硬件和軟
15、件設計埋下伏筆。2 系統(tǒng)硬件電路設計2.1單片機最小系統(tǒng)硬件的電路設計2.1.1 單片機電路設計(1)at89c51的簡介at89c51是一種低功耗,高性能的cmos8位微處理器,內(nèi)部有8k字節(jié)的閃速perom ,該芯片采用atmel公司高密度、非揮發(fā)性存儲器工藝制成且與工業(yè)標準的mcs-51系列的引腳及指令兼容,flash系列存儲器為快速擦寫存貯器。相對于mcs-51系列芯片而言,其特點如下 :1、可擦寫1000次2、全靜態(tài)操作:0hz.24mhz3、32根可編程i/o口線4、內(nèi)部ram為256字節(jié)5、兩個16位的定時/計數(shù)器6、5個中斷源at89c51有40個引腳,32個外部雙向輸入/輸出
16、(i/o)端口,同時內(nèi)含2個外中斷口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,at89c51可以按照常規(guī)方法進行編程,也可以在線編程。(2)at89c51芯片的管腳、引線與功能at89c51芯片圖如圖2-1所示。端口引腳信號介紹:p00p07 :p0口8位雙向口線 p10p17 :p1口8位雙向口線p20p27 :p2口8位雙向口線 p30p37 :p3口8位雙向口線其它引腳信號介紹:操作限程序存儲器;而當信號為高電平時,則對rom的讀操作是從內(nèi)部程序存儲器開始,并可延至外部程序存儲器。ale地址定在外部訪問程序存儲器控制信號:當信號為低電平時,對rom的讀鎖存控制信號
17、:在系統(tǒng)擴展時,ale用于控制把p0口輸出低8位地址鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的隔離。此外由于ale是以晶振六分之一的固定頻率輸出的正脈沖,因此可作為外部時鐘或外部定時脈沖作用4。以實現(xiàn)外部rom單元的外部程序存儲器讀選取通信號:在讀外部rom時有效(低電平),讀操作。xtal1和xtal2外接晶體引線端:當使用芯片內(nèi)部時鐘時,此二引線端用于外接石英晶體和微調(diào)電容;當使用外部時鐘時,用于拉外部的時鐘脈沖信號。rst復位信號:當輸入的復位信號延續(xù)2個機器周期以上高電平時即為有效,用以完成單片機的復位初始化操作。vss:地線 vcc:+5v電源p3口的第二功能如表2-1:表2-1 p3口第二功
18、能表table 2-1 p3 i second menu引腳號第二功能p3.0rxd(串行輸入)p3.1txd(串行輸出)p3.2int0(外部中斷0)p3.3int0(外部中斷0)p3.4t0(定時器0外部輸入)p3.5t1(定時器1外部輸入)p3.6wr(外部數(shù)據(jù)存儲器寫選通)p3.7rd(外部數(shù)據(jù)存儲器讀選通)(3)at89c51的總線結(jié)構(gòu)at89c51的管腳除了電源、復位、時鐘接入、用戶i/o口部分p3外,其余管腳都是為實現(xiàn)系統(tǒng)擴展而設置的。這些管腳構(gòu)成了三總線形式,即:(1)地址總線(ab):地址總線寬度為16位,因此,其外部存儲器直接地址外圍為64k字節(jié)。16位地址總線由p0經(jīng)地址
19、鎖存器提供低8位地址(a0a7);p2口直接提供高8位地址(a8a15)。(2)數(shù)據(jù)總線(db):數(shù)據(jù)總線寬度為8位,由p0口提供。(3)控制總線 (cb):由部分p3口的第二功能狀態(tài)和4根獨立控制線reset、ale、組成。at89c51結(jié)構(gòu)框圖如圖2-2所示。圖2-1 at89c51芯片圖figure 2-1 at89c51 chip diagram圖2-2 at89c51結(jié)構(gòu)圖figure 2-2 at89c51 structure2.1.2時鐘電路設計時鐘電路用于產(chǎn)生單片機工作所需要的時鐘信號,而時序所研究的是指令執(zhí)行中各信號之間的相互關(guān)系。單片機本身就如一個復雜的同步時序電路,為了保
20、證同步工作方式的實現(xiàn),電路應在唯一的時鐘信號控制下嚴格地作。(1)時鐘信號的產(chǎn)生單片機內(nèi)部有一個高增益反相放大器,其輸入端為芯片引腳xtal1,其輸出端為引腳xtal2。而在芯片的外部,xtal1和xtal2之間跨接晶體振蕩器和微調(diào)電容,從而構(gòu)成一個穩(wěn)定的自激振蕩器。電容器c1和c2的作用是穩(wěn)定頻率和快速起振,電容值的范圍在5pf30pf,典型值為30pf。晶振的頻率通常選擇兩種6mhz和12mhz。只要在單片機的xtal1和xtal2引腳外接晶體振蕩器就構(gòu)成了自激振蕩器并在單片機內(nèi)部產(chǎn)生時鐘脈沖信號。(2)時鐘振蕩電路如圖2-3所示:圖2-3 時鐘振蕩電路2.1.3 復位電路設計復位電路是使
21、單片機的cpu或系統(tǒng)中的其他部件處于某一確定的初始狀態(tài),并從這上狀態(tài)開始工作。(1)單片機常見的復位電路通常單片機復位電路有兩種:上電復位電路,按鍵復位電路。上電復位電路:上電復位是單片機上電時復位操作,保證單片機上電后立即進入規(guī)定的復位狀態(tài)。它利用的是電容充電的原理來實現(xiàn)的。按鍵復位電路:它不僅具有上電復位電路的功能,同時它的操作比上電復位電路的操作要簡單的多。如果要實現(xiàn)復位的話,只要按下reset鍵即可。它主要是利用電阻的分壓來實現(xiàn)的6。在此設計中,采用的按鍵復位電路。按鍵復位電路如圖2-4所示。(2)復位電路工作原理上電復位要求接通電源后,單片機自動實現(xiàn)復位操作。上電瞬間reset引腳獲
22、得高電平,隨著電容的充電,rerst引腳的高電平將逐漸下降。rerst引腳的高電平只要能保持足夠的時間(2個機器周期),單片機就可以進行復位操作。上電與按鍵均有效的復位電路不僅在上電時可以自動復位,而且在單片機運行期間,利用按鍵也可以完成復位操作。圖2-4 復位電路圖因此本設計選用第二種上電復位與按鍵均有效的各單位電路。2.2 時鐘電路的設計2.2.1 ds1302的性能特性 實時時鐘,可對秒、分、時、日、周、月以及帶閏年補償?shù)哪赀M行計數(shù);用于高速數(shù)據(jù)暫存的318位ram; 最少引腳的串行i/o; 2.55.5v工作范圍; 2.5v時耗電小于300na; 用于時鐘或ram數(shù)據(jù)讀/寫的單字節(jié)或多
23、字節(jié)(脈沖方式)數(shù)據(jù)傳送方式; 簡單的三線接口; 可選的慢速充電(至vcc1)的能力。ds1302時鐘芯片包括實時時鐘/日歷和31字節(jié)的靜態(tài)ram。它經(jīng)過一個簡單的串行接口與微處理器通信。實時時鐘/日歷提供秒、分、時、日、周、月和年等信息。對于小于31天的月和月末的日期自動進行調(diào)整,還包括閏年校正的功能。時鐘的運行可以采用24時或帶am(上午)/pm(下午)的12時格式。采用三線接口與cpu進行同步通信,并可采用突發(fā)方式一次傳送多字節(jié)的時鐘信號或ram數(shù)據(jù)。ds1302有主電源/后備電源雙電源引腳:vcc1在單電源與電池供電的系統(tǒng)中提供低電源,并提供低功率的電池備份,vcc2在雙電源系統(tǒng)中提供
24、主電源。在這種運行方式中,vcc1連接到后備電源,以便在沒有主電源的情況下能保存時間信息和數(shù)據(jù)。ds1302由vcc1或vcc2中較大者供電。當vcc2 (vcc1+0.2v)時,vcc2給ds1302供電;當vcc2=2.5v之前,rst腳必須保持低電平。只有在sclk為低電平時,才能將rst置為高電平。表2-2所列為各腳的功能。 表2-2 ds1302引腳功能table 2-2 ds1302 pin function引腳號引腳名稱功能1vcc2主電源2,3x1,x2振蕩源,外接32768hz晶振4gnd地線5rst復位/片選線6i/o串行數(shù)據(jù)輸入/輸出端(雙向)7sclk串行數(shù)據(jù)輸入端8v
25、cc1后備電源ds1302的控制字如圖2-5所示,控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到ds1302中。位6如果為0,則表示存取日歷時鐘數(shù)據(jù);為1則表示存址。最低有效位(位0)如果為0,則表示要進行操作。控制字節(jié)總是從最低位開始輸入/輸出7 6 5 4 3 2 1 01ramcka4a3a2a1a0ramk圖2-5 ds1302的控制字figure 2-5 ds1302 to control word 為了提高對32個地址尋址能力(地址/命令位15=邏輯1),可以把時鐘/日歷或ram寄存器規(guī)定為多字節(jié)(burst)方式。位6規(guī)定時鐘或ram,而位0規(guī)定讀或?qū)憽?/p>
26、在時鐘/日歷寄存器中的地址931或ram寄存器中的地址31不能存儲數(shù)據(jù)。再多字節(jié)方式中,讀或?qū)憦牡刂?的位0開始。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?個寄存器。但是,當以多種字節(jié)方式寫ram時,為了傳送數(shù)據(jù)不必寫所有的31字節(jié)。否則是否寫了全部的31字節(jié),所寫的每一字節(jié)都將傳送至ram。ds1302共有12個寄存器,其中有7個寄存器于日歷、時鐘相關(guān),存放的數(shù)據(jù)位為bcd碼形式。其日歷、時間寄存器及其控制字如表2-3所列,其中奇數(shù)為讀操作,偶數(shù)為寫操作。表2-3 內(nèi)部寄存器地址和內(nèi)容table 2-3 addresses and contents of internal registers寄存器名命令
27、字節(jié)取值范圍寄存器內(nèi)容秒寄存器寫讀76543210分寄存器80h81h0059ch10secsec時寄存器82h83h0059010minmin日期寄存器84h85h0023或011212/24010a/phrhr月份寄存器86h87h0128、29、30、310010datedate周寄存器88h89h011200010mmonth年寄存器8ah8bh010700000day8ch8dh009910yearyear始終暫停:秒寄存器的為7定義位時鐘暫停位。當它為1時,ds1302停止震蕩,進入低功耗的備份方式,通常在對ds1302進行寫操作時(如進入時鐘調(diào)整程序),停止震蕩。當它為0時,始終
28、將開始啟動。am-pm/12-24時方式:時寄存器的位7定義為12或24時方式選擇位。他為高電平時,選擇12時方式。在此方式下,位5是am/pm位,高電平時表示pm,低電平表示am。在24時方式下,位5為第二個10時位(2023h)。 ds1302的晶振選用32768hz,電容推薦值為6pf。因為振蕩頻率較低,也可以不接電容,對計時精度影響不大。2.3 獨立式鍵盤設計實現(xiàn)鍵盤控制的方法有多種,它可以用fpga來進行控制,也可以用單片機來進行控制。在本系統(tǒng)中,我們采用了單片機來進行控制,因為單片機可以很好的解決鍵抖動。由若干個按鍵組成一個鍵盤,其電路結(jié)構(gòu)可分為獨立式鍵盤和矩陣式鍵盤兩種。 獨立式
29、鍵盤每個鍵單獨占用一根i/o口線,每根i/o口線上的按鍵工作狀態(tài)不會影響其他i/o口線上的狀態(tài),矩陣式鍵盤按鍵排列為行列式矩陣結(jié)構(gòu),也稱行列式鍵盤結(jié)構(gòu)。4行4列共16個鍵,只占用8根i/o口線,鍵數(shù)目較多,可節(jié)省口線。此設計的是3行3列共9個鍵。鍵盤的工作方式可分為編程控制方式和中斷控制方式。cpu在一個工作周期內(nèi),利用完成其他任務的空余時間,調(diào)用鍵盤掃描子程序,經(jīng)程序查詢,若無鍵操作,則返回;若有鍵操作,則進而判斷是哪個鍵,并執(zhí)行相應的鍵處理程序。這種方式為編程掃描方式。由于單片機在正常應用過程中,可能會經(jīng)常進行鍵操作,因而編程控制方式使cpu經(jīng)常處于工作狀態(tài), 在進行本次設計中,涉及到了啟
30、動/關(guān)閉、調(diào)時、調(diào)分、調(diào)秒,調(diào)年,月,日,星期,等很多功能個功能,采用了3行3列鍵進行功能設置可以完成任務設置8。但是,由于此顯示部分用到了移位寄存器,采用獨立式鍵盤設計即可完成任務且矩陣鍵盤編程比較困難,故本設計采用了獨立式鍵盤設計。2.4 顯示電路的設計顯示部分采用普通的共陽數(shù)碼管顯示,采用動態(tài)掃描,以減少硬件電路??紤]到一次掃描19位數(shù)碼管顯示時會出現(xiàn)閃爍情況,設計時19個數(shù)碼管分3排同時掃描,第一排6個數(shù)碼管分為千年、百年、十年、年、十月、月,第二排6位數(shù)碼管分別為十時、時、十分、分、十秒、秒,第三排7位數(shù)碼管分別為星期、陰歷十月、陰歷月、陰歷十日、陰歷日、十日、日。顯示時采用串行口輸
31、出段碼,用3片74ls164來驅(qū)動3排數(shù)碼管,這樣掃描一次只需7ms。74ls164內(nèi)部為8個d觸發(fā)器,用以實現(xiàn)數(shù)據(jù)的串行移位。74ls164的特性如表2-4所示。單片機以串行口方式0(移位寄存器方式)輸出數(shù)據(jù),3片74ls164作為3排共陽數(shù)碼管的串/并轉(zhuǎn)換顯示接口。74ls164為ttl單向8位移位寄存器,可以實現(xiàn)串行輸入,并行輸出。其中a、b(第1、2腳)為串行數(shù)據(jù)輸入端,兩個引腳按邏輯“與”運算規(guī)律輸入信號,只有一個輸入信號時可并接,共同作為輸入腳。cp(第8腳)為時鐘輸入端,可連接到串行口的txd端。每一個時鐘信號的上升沿加到cp端時,移位寄存器移一位。8個時鐘脈沖過后,8位二進制數(shù)
32、全部移入74ls164中。mr腳(第9腳)為復位端,當該腳為低電平時,移位寄存器各位復0;只有當它為高電平時,時鐘脈沖才起作用。q1q8(第36和第1013引腳)并行輸出端分別接數(shù)碼管的h、g、f、e、d、c、b、a各段對應的引腳上(因為串行口從低位開始傳送)。在給出了8個脈沖后,最后進入74ls164的第一字節(jié)數(shù)據(jù)到達了最高位。再來一個脈沖,第一個脈沖就會從最高位移出,進入下個74ls164的第一位。3片74ls164首尾相串,而隨后的第二字節(jié)的數(shù)據(jù)則進入了第一片74ls164.這樣,當?shù)谌?個脈沖完成后,首次送出的數(shù)據(jù)被送到了最下面的164(第三片)中,其他數(shù)據(jù)依次出現(xiàn)在第二、第一片74
33、ls164中,實現(xiàn)了數(shù)據(jù)在74ls164中的串行輸入、并行輸出。表2-4 74ls164特性表table 2-4 74ls164 characteristics操作模式輸入輸出復位mrabq0q1q7移位lxxlq0q6hlllq0q6hlhlq0q6hhllq0q6 hhhhq0q6在方式0狀態(tài)下,串行口為同步移位寄存器方式,其波特率是固定的,為fosc/12;數(shù)據(jù)由rxd(p3.0)端輸入或輸出,同步移位脈沖由txd(p3.1)端輸出;發(fā)送、接收數(shù)據(jù)時,低位在先。因此,根據(jù)本章節(jié)下面提供的硬件電路圖,在編寫程序時,查共陽數(shù)碼管的段碼的二進制數(shù)據(jù)應該將正常的共陽數(shù)碼管09的二進制按位反序排序
34、,例如原來的二進制11000000(c0h),要改為00000011(03h),就能使數(shù)碼管正常顯示。2.5 本章小結(jié)本章主要通過對萬年歷的硬件的各個單元進行進行設計,主要包括最小系統(tǒng)硬件的電路設計、時鐘電路的設計、獨立式鍵盤設計、顯示電路的設計等四個部分,詳細說明了萬年歷的硬件設計電路,下一章將主要講述萬年歷的軟件部分,軟件和硬件相結(jié)合,構(gòu)成了整個萬年歷系統(tǒng)。3系統(tǒng)軟件設計3.1陽歷程序因為使用了 時鐘芯片ds1302,陽歷系統(tǒng)只需從ds1302各個寄存器中讀出年、周、月、日、時、分、秒等數(shù)據(jù),再處理即可。在首次對ds1302進行操作前,必須對它進行初始化,然后從ds1302中讀出數(shù)據(jù),再經(jīng)
35、過處理后,送給顯示緩沖單元。陽歷程序流程圖3-1。圖3-1 陽歷程序流程圖figure 3-1 flow chart of the solar calendar 3.2 時間調(diào)整程序調(diào)整時間用2個調(diào)整按鈕(注:電路圖中畫有3個按鈕,另一個按鈕讀者可用于減1操作鍵),1個作為移位、控制用,另外1個作為加調(diào)整用,分別定義為控制按鈕、加按鈕。在調(diào)整時間過程中,要調(diào)整的位與其他位應該有區(qū)別,所以增加了閃爍功能,即調(diào)整的位一直在閃爍,直到調(diào)整到下一位。閃爍原理就讓要調(diào)整的位每隔一定時間熄滅一次,比如50ms。利用定時器時,當達到50ms溢出時,就送給該位熄滅符,在下一次溢出時,再送正常顯示的值,不斷交替
36、,直到該位結(jié)束,此時送正常顯示值給該位,再進入下一位調(diào)整閃爍程序。時間調(diào)整程序流程圖3-2所示。圖3-2 時間調(diào)整程序流程圖figure 3-2 flow chart of time to adjust表3-1 2004年的陰歷與陽歷對應關(guān)系表table 3-1 lunar calendar and the gregorian in 2004, the corresponding relationship月份123456789101112閏2月大小小大大大小大小大小大小大小天數(shù)1000101010101二進制293030302930293029302930十六進制4252213.3 陰歷程序陰
37、歷程序的實現(xiàn)是要靠陽歷日期來推算的。要根據(jù)陽歷來推算陰歷日期,首先要設計計算法。推算方法是,根據(jù)陽歷當前日期在一年中的天數(shù)來計算陰歷日期。陽歷一個月不是30天就是31天(2月除外,閏年2月為29天,平年2月為28天)。陰歷一年有12個月或13個月(含閏年),一個月為30天或29天。如果把一個只有29天的月稱為小月,用1為標志,把30天的月稱為大月,用0為標志,那么12位二進制就能表示一年12個月的大小。如果有閏月,則把閏月的月份作為一字節(jié)的高4位,低4位表示閏月的大小,大月為0,小月為1,這樣,一字節(jié)就包含了所有的閏月信息,陰歷春節(jié)和陽歷元旦相差的天數(shù)也用一字節(jié)表示??偣灿?字節(jié)就可以存儲一年
38、中任何一天陽歷與陰歷對應關(guān)系的有關(guān)數(shù)據(jù),例如2004年的陰歷與陽歷對應關(guān)系如表3-1所列。 2004年的春節(jié)和元旦相差21天,這樣2004年的信息表示為:21,42h,52h,21h。其中表示12個月大小信息的字節(jié),第4位和第7位不用。第一字節(jié)位十進制,其他的都為十六進制。按此方法,50年的陽歷和陰歷對應關(guān)系表總共使用200字節(jié)。2000-2050年的關(guān)系表: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(
39、2005)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,41
40、h,52h,41h(2020)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(2
41、034) 38,26h,62h,00h(2035)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
42、,45h,00h(2049) 22,55h,11h,30h(2050)有了算法和數(shù)據(jù)之后 ,就可以設計軟件了。先要根據(jù)當前陽歷的日期,算出陽歷為該年中的第幾天。圖3-3所示為計算陽歷中任何一天在該年中為第幾天的程序流程圖。圖3-3 計算陽歷天數(shù)程序流程圖figure 3-3 flow chart for calculating the solar calendar days計算出當前陽歷日期為該年中的第幾天后,再減去陽歷該年春節(jié)和元旦的日差,如果夠減,則相減的結(jié)果就是陰歷在該年的總第幾天了,根據(jù)該數(shù)據(jù)就可以推算出具體的當前陰歷日期;如果不夠減,則表示當前陰歷年為陽歷年的前一天。在這種情況下,根
43、據(jù)實際,當前陰歷日期會處于陰歷11月或12月,此時春節(jié)和元旦的日差減去前面計算出的當前陽歷日期在陽歷年為第幾天的數(shù)據(jù),其結(jié)果表示當前陰歷日期離春節(jié)的天數(shù)。計算出的陽歷天數(shù)為該年的第幾天,存放在寄存器r2和r3中。計算出天數(shù)后,如果大于#ffh,則把#ffh存放在r2中,余值存放在r3中。也就是說,在用寄存器r2和r3表示的天數(shù)信息中,r2充當主寄存器,數(shù)據(jù)先存滿r2,再存r3.在整個轉(zhuǎn)換程序中,這里面的數(shù)據(jù)不能被覆蓋。計算出陽歷總天數(shù)后,就可以根據(jù)它來推算陰歷日期。推算方法是,先用總天數(shù)減去春節(jié)和元旦的日差,如果結(jié)果為1,則該天正好是春節(jié)(因為春節(jié)在元旦之后,在計算春節(jié)和元旦的日差時,假設元旦
44、為0天,春節(jié)為n天,則日差為n,而前面計算的陽歷總天數(shù)是該天在該年中的第幾天,是以元旦為1而得到的,與計算春節(jié)和元旦日差的這種方法相比,其數(shù)值少了1,所以要在原來本應該以0作為該天就是春節(jié)的依據(jù)的基礎(chǔ)上加1,即以1作為該天是春節(jié)的標志);如果結(jié)果小于1,則陰歷應該是陽歷的前一年;如果結(jié)果大于1,說明陽歷和陰歷為同一年。再根據(jù)查表所得的該年的陰歷的閏月和大小月的信息,就可以推算出該天的陰歷日期了。圖3-4所示為由總天數(shù)推算出陰歷日期的程序流程圖。圖3-4 推算陰歷日期的程序流程圖figure 3-4 flow chart of the projected date of the lunar ca
45、lendar3.4 萬年歷總體流程圖萬年歷流程如圖3-5所示。流程圖分析:開始既當日加一天,同時星期也就相應的加1,看星期是否加到7,若加到了7,就返回到1,若沒有就返回到時鐘狀態(tài),當日加到相應的最大數(shù)時,月分就相應的加1,看月份是否加到了13, 若沒有到13,就一直等待,若到了13就返回1,且年份就加1,當年份到2099時就清到2005年,若沒有,就一直等待,直到2099為止10。圖3-5 萬年歷流程圖figure 3-5 flowchart calendar3.5 萬年歷總程序(見附錄)3.6 本章小結(jié)本章主要通過對萬年歷軟件的各個單元進行進行設計,主要包括陰歷程序、時間調(diào)整程序、陽歷程序
46、、萬年歷總體流程圖等五個部分,詳細說明了萬年歷的軟件設計電路,上一章將主要講述萬年歷的硬件部分,軟件和硬件相結(jié)合,構(gòu)成了一個完整的萬年歷系統(tǒng)。4 設計總結(jié)本文首先描述系統(tǒng)硬件工作原理,并附以系統(tǒng)結(jié)構(gòu)框圖加以說明,著重介紹了本系統(tǒng)所應用的各硬件接口技術(shù)和各個接口模塊的功能及工作過程,其次,詳細闡述了程序的各個模塊和實現(xiàn)過程。本設計以數(shù)字集成電路技術(shù)為基礎(chǔ),單片機技術(shù)為核心。本文編寫的主導思想是軟硬件相結(jié)合,以硬件為基礎(chǔ),來進行各功能模塊的編寫。其中at89c51是核心元件同時采用液晶管顯示“時”,“分”,“秒”的現(xiàn)代計時裝置。與傳統(tǒng)機械表相比,它具有走時精確,顯示直觀等特點。它的計時周期為24小
47、時,顯滿刻度為“23時59分59秒”,另外具有校時功能, 還具有整點報鳴的特點。ds18b20是一種非常理想的溫度傳感器,使用的是達拉斯即美信公司的1-wire技術(shù),輸出信號為數(shù)字信號,可以直接以單片機連接,同時多個ds18b20還支持溫度檢測網(wǎng), 非常方便靈活。ds1302是帶涓流充電的時鐘芯片,采用三線結(jié)構(gòu),目前在很多需要時鐘的嵌入式系統(tǒng)的廣泛應用。 本系統(tǒng)以單片機的匯編語言進行軟件設計,增加了程序的可讀性和可移植性,為了便于擴展和更改,軟件的設計采用模塊化結(jié)構(gòu),使程序設計的邏輯關(guān)系更加簡潔明了。系統(tǒng)通過點陣式液晶為載體顯示數(shù)據(jù),所以具有人性化的操作和美觀的頁面效果??梢燥@示時間、公農(nóng)歷日
48、期、星期的功能。參考文獻1 胡新宇,趙勇.傳感器與自動檢測技術(shù).北京:高等教育出版社. 2006,79-882 曹克登.單片機原理與應用. 北京:機械工業(yè)出版社.2007,19-253 8051 管腳資料intel公司提供芯片資料4 孔凡才.自動控制系統(tǒng). 北京:機械工業(yè)出版社. 2005,194-1995 曹克.單片機原理與應用. 北京:機械工業(yè)出版社.2007,176-178 6 王建國,寧改娣. 51系列單片機及c51程序設計. 北京:科學出版社.2004,28-32 7 曹克登.單片機原理與應用. 北京:機械工業(yè)出版社.2007,103-1098 劉守義.單片機應用技術(shù). 西安:西安電
49、子科技大學出版社.2007,121-1519 李廣弟,朱月秀,王秀山單片機基礎(chǔ)m北京航空航天大學出版社20041010 何民主編. 單片機應用系統(tǒng)設計. 北京:北京航空航天大學出版社,1990附 錄1.設計參數(shù)及配料表:配件名稱數(shù)量參數(shù)pcb電路板1塊at89c511塊晶振1個12mhz晶振1個32khz電解電容1個22uf按鍵若干時鐘芯片ds13021塊數(shù)碼管19個三極管85507個三極管90121個發(fā)光二極管led1個74ls1643個電阻21個5109個1k3個10k1個4.7k3個2k陶瓷電容2個10pf陶瓷電容2個30pf2.總體電路圖原理圖 (a0)3.程序總流程圖(a1)4. 總
50、體程序代碼如下 ; 萬年歷程序mov r1,a;從1302中讀出的數(shù)據(jù)放在67h(高兩位年)66h(低兩位年)65h(月)64h(星期)63h(日)rm32: jc rm33;; 62h(小時)61h(分鐘)60h(秒)57h(農(nóng)歷月)56h(農(nóng)歷日)mov a,r1; 顯示緩沖單元7ch-7bh(4ch-4bh)(年低位),7ah-79h(4ah-49h)月,78h(48h)星期,mov r2,a ;77h-76h(47h-46h)日,75h-74h(45h-44h)小時,73h-72h(43h-42h)分鐘,71h-70h(41h-40h)秒 5eh-5dh(55h-54h)農(nóng)歷年,5ch
51、-5bh(53h-52h)農(nóng)歷月,5ah-59h(51h-50h)農(nóng)歷日ajmp m4; 閏月標志為f0,定時器t1為調(diào)整時候閃爍用。rm33:cjne r3,#00h,rm34 ;1302在設置調(diào)整時間后,要改為禁止寫入狀態(tài),否則在上電復位的時候就發(fā)生誤寫入,使時間值加1分鐘ljmp ry3 ;次程序中的段碼表只適用于該特殊的硬件,具體的段碼表由具體的硬件決定rm34:mov a,r2 add a,r3 sclk equ p3.2mov r2,a io equ p3.3mov r3,#00hrst equ p3.4ajmp rm3year data 66hm4: mov a,r2month data 65hclr c week data 64hsubb a,#29day data 63hmov r1,ahour data 62hmov a,r6mintue data 61hjb acc.2,m41second data 60hclr cds1302_addr data 32hmov a,r2ds1302_data
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024盆景出租合同
- 04設備采購合同關(guān)于醫(yī)療設備的復雜協(xié)議
- 高效委托加工合同協(xié)議書范本
- 2024年簡單個人借款合同
- 2024寵物買賣合同范本模板
- 設備回購協(xié)議合同模板2024年
- 品牌旗艦店合作合同樣本
- 2024年度云計算平臺建設合同
- 個人門面買賣合同范本
- 2024年冷凍供貨合同
- 2024醫(yī)藥行業(yè)政策分析
- 雨污分流監(jiān)理實施細則
- DD 2022-1.2 巖心數(shù)字化技術(shù)規(guī)程 第2部分:表面圖像數(shù)字化
- 全國優(yōu)質(zhì)課一等獎初中物理九年級《科學探究:歐姆定律》課件
- 中醫(yī)外科乳房疾病診療規(guī)范診療指南2023版
- 2023-2024年抖音直播行業(yè)現(xiàn)狀及發(fā)展趨勢研究報告
- 門診發(fā)熱病人登記表
- 教育產(chǎn)業(yè)轉(zhuǎn)型升級
- 新課標-人教版數(shù)學六年級上冊第五單元《圓》單元教材解讀
- 2022湖北漢江王甫洲水力發(fā)電有限責任公司招聘試題及答案解析
- 原發(fā)性骨質(zhì)疏松癥診療指南(2022版)第二部分
評論
0/150
提交評論