版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 電子萬年歷設(shè)計</b></p><p> 摘 要:隨著當(dāng)今世界經(jīng)濟(jì)的快速發(fā)展和信息化時代的來臨,各種各樣的小型智能家電產(chǎn)品陸續(xù)出現(xiàn)在我們的生活中。日歷是人們不可或缺的日常用品。但一般日歷都為紙制用品,使用不便,壽命不長。電子萬年歷采用智能電子控制和顯示技術(shù),改善了紙制日歷的缺陷。本設(shè)計以AT89S52單片機(jī)為核心,構(gòu)成單片機(jī)控制電路,結(jié)合DS1302時鐘芯片和
2、24C02FLASH存儲器,完成時間的自動調(diào)整和掉電保護(hù),全部信息用液晶顯示。時間、日期調(diào)整由三個按鍵來實(shí)現(xiàn),并可對鬧鈴開關(guān)進(jìn)行設(shè)置。日歷能顯示陽歷和陰歷年、月、日以及星期、時、分、秒。在顯示陰歷月份時,能標(biāo)明是否閏月。</p><p> 關(guān)鍵詞:電子萬年歷 52系列單片機(jī) 時鐘芯片 FLASH存儲器 液晶顯示</p><p> The Design of Electronic Ca
3、lendar</p><p> Abstract: With the rapid development of world economy and the forthcoming of information era, many kinds of mini-type intelligent domestic electric appliances appear in our life one after ano
4、ther. Calendars are necessary daily goods in people’s life. But they are generally paper goods with inconvenient use and short life. Electronic calendar adopts the technology of intelligent electronic control and display
5、, and then improves the deficiency of paper calendars. The design adopts the core of AT89</p><p> Keywords: electronic calendar 52 series single chip microcomputer clock chip flash memory LCD</p>
6、<p><b> 1 引言</b></p><p> 在日新月異的21世紀(jì)里,家用電子產(chǎn)品得到了迅速發(fā)展。許多家電設(shè)備都趨于人性化、智能化,這些電器設(shè)備大部分都含有CPU控制器或者是單片機(jī)。單片機(jī)以其高可靠性、高性價比、低電壓、低功耗等一系列優(yōu)點(diǎn),近幾年得到迅猛發(fā)展和大范圍推廣,廣泛應(yīng)用于工業(yè)控制系統(tǒng)、通訊設(shè)備、日常消費(fèi)類產(chǎn)品和玩具等。并且已經(jīng)深入到工業(yè)生產(chǎn)的各個環(huán)節(jié)以及人民
7、生活的各個方面,如車間流水線控制、自動化系統(tǒng)等、智能型家用電器(冰箱、空調(diào)、彩電)等。用單片機(jī)來控制的小型家電產(chǎn)品具有便攜實(shí)用,操作簡單的特點(diǎn)。</p><p> 本文設(shè)計的電子萬年歷屬于小型智能家用電子產(chǎn)品。利用單片機(jī)進(jìn)行控制,實(shí)時時鐘芯片進(jìn)行記時,外加掉電存儲電路和顯示電路,可實(shí)現(xiàn)時間的調(diào)整和顯示。電子萬年歷既可廣泛應(yīng)用于家庭,也可應(yīng)用于銀行、郵電、賓館、醫(yī)院、學(xué)校、企業(yè)、商店等相關(guān)行業(yè)的大廳,以及單位會議
8、室、門衛(wèi)等場所。因而,此設(shè)計具有相當(dāng)重要的現(xiàn)實(shí)意義和實(shí)用價值。</p><p><b> 2 系統(tǒng)概述</b></p><p> 本設(shè)計以AT89S52單片機(jī)為核心,構(gòu)成單片機(jī)控制電路,結(jié)合DS1302時鐘芯片和24C02FLASH存儲器,顯示陽歷年、月、日、星期、時、分、秒和陰歷年、月、日,在顯示陰歷時間時,能標(biāo)明是否閏月,同時完成對它們的自動調(diào)整和掉電保護(hù),全
9、部信息用液晶顯示。人機(jī)接口由三個按鍵來實(shí)現(xiàn),用這三個按鍵對時間、日期可調(diào),并可對鬧鈴開關(guān)進(jìn)行設(shè)置。軟件控制程序?qū)崿F(xiàn)所有的功能。整機(jī)電路使用+5V穩(wěn)壓電源,可穩(wěn)定工作。系統(tǒng)框圖如圖2-1所示,其軟硬件設(shè)計簡單,時間記錄準(zhǔn)確,可廣泛應(yīng)用于長時間連續(xù)顯示的系統(tǒng)中。</p><p><b> 圖2-1 系統(tǒng)框圖</b></p><p><b> 3 方案選擇&l
10、t;/b></p><p> 由于電子萬年歷的種類比較多,因此方案選擇在設(shè)計中是至關(guān)重要的。正確地選擇方案可以減小開發(fā)難度,縮短開發(fā)周期,降低成本,更快地將產(chǎn)品推向市場。</p><p> 3.1 方案1——基于AT89S52單片機(jī)的電子萬年歷設(shè)計</p><p> 不使用時鐘芯片,而直接用AT89S52單片機(jī)來實(shí)現(xiàn)電子萬年歷設(shè)計。AT89S52是一種帶
11、8K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS 8位微處理器,俗稱單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦寫1000余次。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89S52是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><p> 若采用單片機(jī)計時,利用它的一個16位定時器/計數(shù)器每50ms產(chǎn)生一個中斷信號,中斷20次后產(chǎn)生一個秒信號,然
12、后根據(jù)時間進(jìn)制關(guān)系依次向分、時、日、星期、月、年進(jìn)位。這樣就實(shí)現(xiàn)了直接用單片機(jī)來實(shí)現(xiàn)電子萬年歷設(shè)計。</p><p> 用單片機(jī)來實(shí)現(xiàn)電子萬年歷設(shè)計,無須外接其他芯片,充分利用了單片機(jī)的資源。但是精度不夠高,誤差較大,掉電后丟失所有數(shù)據(jù),軟件編程較復(fù)雜。</p><p> 3.2 方案2——基于DS1302的電子萬年歷設(shè)計</p><p> 在以單片機(jī)為核心構(gòu)
13、成的裝置中,經(jīng)常需要一個實(shí)時的時鐘和日歷,以便對一些實(shí)時發(fā)生事件記錄時給予時標(biāo),實(shí)時時鐘芯片便可起到這一作用。過去多用并行接口的時鐘芯片,如MC146818,DS12887等。它們已能完全滿足單片機(jī)系統(tǒng)對實(shí)時時鐘的要求,但是這些芯片與單片機(jī)接口復(fù)雜、占用地址, 數(shù)據(jù)總線接線多、芯片體積大占用空間多、近年來串行接口的各種芯片在單片機(jī)系統(tǒng)中應(yīng)用愈來愈多,串行接口的實(shí)時時鐘芯片也出現(xiàn)了不少,DS1302是一個綜合性能較好且價格便宜的串行接口實(shí)
14、時時鐘芯片。</p><p> 利用單片機(jī)進(jìn)行控制,采用DS1302作為實(shí)時時鐘芯片,其三線接口SCLK、I/O、/RST與單片機(jī)進(jìn)行同步通信,外加掉電存儲電路、顯示電路、鍵盤電路,即構(gòu)成一個基本的電子萬年歷系統(tǒng),若還要添加其他功能,在這基礎(chǔ)上外擴(kuò)電路即可。</p><p> 由于在系統(tǒng)設(shè)計時,需要考慮以下幾點(diǎn)因素:功耗低、精確度高、軟件編程較簡單,芯片的體積小、芯片成本低等,而DS1
15、302芯片有上面所述的諸多優(yōu)點(diǎn),所以本設(shè)計采用方案2。</p><p> 4 系統(tǒng)硬件電路的設(shè)計</p><p> 按照系統(tǒng)設(shè)計功能的要求,初步確定設(shè)計系統(tǒng)由主控模塊、時鐘模塊、存儲模塊、鍵盤接口模塊、顯示模塊和鬧鈴模塊共6個模塊組成,電路系統(tǒng)構(gòu)成框圖如圖4-1所示。主控芯片使用52系列AT89S52單片機(jī),時鐘芯片使用美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時時鐘芯
16、片DS1302,存儲模塊采用美國ATMEL公司生產(chǎn)的低功耗CMOS串行EEPROM存儲芯片AT24C02。DS1302作為主要計時芯片,可以做到計時準(zhǔn)確。更重要的是,DS1302可以在很小電流的后備 (2.5~5.5V電源,在2.5V時耗電小于300nA)下繼續(xù)計時,并可編程選擇多種充電電流來對后備電源進(jìn)行慢速充電,可以保證后備電源基本不耗電。</p><p> 圖4-1 電子萬年歷電路系統(tǒng)構(gòu)成框圖</p
17、><p> 4.1 系統(tǒng)核心部分——閃電存儲型器件AT89S52</p><p> 4.1.1 AT89S52具有下列主要性能[5]: </p><p> ·8KB可改編程序Flash存儲器(可經(jīng)受1000次的寫入/擦除周期) </p><p> ·全靜態(tài)工作:0Hz~24MHz</p>
18、<p> ·三級程序存儲器保密</p><p> ·128×8字節(jié)內(nèi)部RAM</p><p> ·32條可編程I/O線</p><p> ·2個16位定時器/計數(shù)器</p><p><b> ·6個中斷源</b></p><
19、;p><b> ·可編程串行通道</b></p><p><b> ·片內(nèi)時鐘振蕩器</b></p><p> 4.1.2 AT89S52的引腳及功能</p><p> AT89S52單片機(jī)的管腳說明如圖4-2所示。</p><p> 圖4-2 AT89S52的管
20、腳</p><p> (1) 主要電源引腳</p><p><b> ?、賄CC 電源端</b></p><p><b> ②GND 接地端</b></p><p> (2) 外接晶體引腳XTAL1和XTAL2</p><p> ?、賆TAL1 接外部晶體的一個引
21、腳。在單片機(jī)內(nèi)部,它是構(gòu)成片內(nèi)振蕩器的反相放大器的輸入端。當(dāng)采用外部振蕩器時,該引腳接收振蕩器的信號,既把此信號直接接到內(nèi)部時鐘發(fā)生器的輸入端。</p><p> ?、赬TAL2 接外部晶體的另一個引腳。在單片機(jī)內(nèi)部,它是上述振蕩器的反相放大器的輸出端。采用外部振蕩器時,此引腳應(yīng)懸浮不連接。</p><p> (3) 控制或與其它電源復(fù)用引腳RST、ALE//PROG、/PSEN和/E
22、A/VPP</p><p> ?、賀ST 復(fù)位輸入端。 當(dāng)振蕩器運(yùn)行時,在該引腳上出現(xiàn)兩個機(jī)器周期的高電平將使單片機(jī)復(fù)位。</p><p> ?、贏LE//PROG 當(dāng)訪問外部存儲器時,ALE(地址鎖存允許)的輸出用于鎖存地址的低位字節(jié)。即使不訪問外部存儲器,ALE端仍以不變的頻率(此頻率為振蕩器頻率的1/6)周期性地出現(xiàn)正脈沖信號。因此,它可用作對外輸出的時鐘,或用于定時目的。然而要
23、注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。在對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(/PROG)[6]。</p><p> ③/PSEN 程序存儲允許(/PSEN)輸出是外部程序存儲器的讀選通信號。當(dāng)AT89S52/LV52由外部程序存儲器取指令(或常數(shù))時,每個機(jī)器周期兩次/PSEN有效(既輸出2個脈沖)。但在此期間內(nèi),每當(dāng)訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出
24、現(xiàn)。</p><p> ?、?EA/VPP 外部訪問允許端。要使CPU只訪問外部程序存儲器(地址為0000H~FFFFH),則/EA端必須保持低電平(接到GND端)。當(dāng)/EA端保持高電平(接VSS端)時,CPU則執(zhí)行內(nèi)部程序存儲器中的程序。</p><p> (4) 輸入/輸出引腳 P0.0~ P0.7、P1.0~P1.7、P2.0~ P2.7 和P3.0~P3.7</p>
25、<p> ?、貾0端口(P0.0~ P0.7) P0是一個8位漏極開路型雙向I/O端口。作為輸出口用時,每位能以吸收電流的方式驅(qū)動8個TTL輸入,對端口寫1時,又可作高阻抗輸入端用。</p><p> ?、赑1端口(P1.0~ P1.7) P1是一個帶有內(nèi)部上拉電阻的8位雙向I/O端口。P1的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這時
26、可用作輸入口。作輸入口時,因?yàn)橛袃?nèi)部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。</p><p> ?、跴2端口 (P2.0~P2.7) P2是一個帶有內(nèi)部上拉電阻的8位雙向I/O端口。P2的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個TTL輸入。對端口寫1時,通過內(nèi)部的上拉電阻把端口拉到高電位,這時可用作輸入口。P2作輸入口使用時,因?yàn)橛袃?nèi)部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。</p
27、><p> ?、躊3端口(P3.0~P3.7) P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流,這是由于上拉的緣故。</p><p> P3口也可作為AT89S52的一些特殊功能,這些特殊功能見表4-1[7]。</p><p> 表
28、4-1 P3端口的特殊功能</p><p> 4.2 DS1302時鐘電路</p><p> 4.2.1 DS1302芯片介紹</p><p> 低功耗時鐘芯片DS1302可以對年、月、日、時、分、秒進(jìn)行計時,且具有閏年補(bǔ)償?shù)榷喾N功能。DS1302用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點(diǎn)的記錄上,能實(shí)現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄。這種記錄對長時間的連
29、續(xù)測控系統(tǒng)結(jié)果的分析以及對異常數(shù)據(jù)出現(xiàn)的原因的查找有重要意義[8]。</p><p> 采用DS1302作為記錄測控系統(tǒng)中的數(shù)據(jù)記錄,其軟硬件設(shè)計簡單,時間記錄準(zhǔn)確,既避免了連續(xù)記錄的大工作量,又避免了定時記錄的盲目性,給連續(xù)長時間的測量、控制系統(tǒng)的正常運(yùn)行及檢查都來了很大的方便,可廣泛應(yīng)用于長時間連續(xù)的測控系統(tǒng)中。在測量控制系統(tǒng)中,特別是長時間無人職守的測控系統(tǒng)中,經(jīng)常需要記錄某些具有特殊意義的數(shù)據(jù)及其出現(xiàn)的
30、時間。記錄及分析這些特殊意義的數(shù)據(jù),對測控系統(tǒng)的性能分析及正常運(yùn)行具有重要的意義。傳統(tǒng)的數(shù)據(jù)記錄方式是隔時采樣或定時采樣,沒有具體的時間記錄,因此只能記錄數(shù)據(jù)而無法準(zhǔn)確記錄其出現(xiàn)的時間;若采用單片機(jī)計時,一方面需要采用計數(shù)器,占用硬件資源,另一方面需要設(shè)置中斷、查詢等,同樣耗費(fèi)單片機(jī)的資源,而且某些測控系統(tǒng)可能不允許。而在系統(tǒng)中采用DS1302則能很好地解決這個問題。</p><p> DS1302的性能特性&
31、lt;/p><p> ·實(shí)時時鐘,可對秒、分、時、日、周、月以及帶閏年補(bǔ)償?shù)哪赀M(jìn)行計數(shù);</p><p> ·用于高速數(shù)據(jù)暫存的31×8位RAM;</p><p> ·最少引腳的串行I/O;</p><p> ·2.5~5.5V 電壓工作范圍;</p><p>
32、·2.5V時耗電小于300nA;</p><p> ·用于時鐘或RAM數(shù)據(jù)讀/寫的單字節(jié)或多字節(jié)(脈沖方式)數(shù)據(jù)傳送方式;</p><p><b> ·簡單的3線接口;</b></p><p> ·可選的慢速充電(至VCC1)的能力。</p><p> DS1302時鐘芯片
33、包括實(shí)時時鐘/日歷和31字節(jié)的靜態(tài)RAM。它經(jīng)過一個簡單的串行接口與微處理器通信。實(shí)時時鐘/日歷提供秒、分、時、日、周、月和年等信息。對于小于31天的月和月末的日期自動進(jìn)行調(diào)整,還包括閏年校正的功能。時鐘的運(yùn)行可以采用24h或帶AM(上午)/PM(下午)的12h格式。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302有主電源/后備電源雙電源引腳:VCC1 在單電源與電池供電的系統(tǒng)中提供
34、低電源,并提供低功率的電池備份;VCC2在雙電源系統(tǒng)中提供主電源,在這種運(yùn)用方式中,VCC1 連接到備份電源,以便在沒有主電源的情況下能保存時間信息以及數(shù)據(jù)。DS1302由VCC1或VCC2中較大者供電。當(dāng)VCC2大于VCC1+0.2V時,VCC2給DS1302供電;當(dāng)VCC2小于VCC1時,DS1302由VCC1供電。</p><p> (2) DS1302數(shù)據(jù)操作原理</p><p>
35、; DS1302在任何數(shù)據(jù)傳送時必須先初始化,把RST腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)在SCLK的上升沿被輸入。無論是讀周期還是寫周期,開始8位指定40個寄存器中哪個被訪問到。在開始8個時鐘周期,把命令字節(jié)裝入移位寄存器之后,另外的時鐘周期在讀操作時輸出數(shù)據(jù),在寫操作時寫入數(shù)據(jù)。時鐘脈沖的個數(shù)在單字節(jié)方式下為8加8,在多字節(jié)方式下為8加字節(jié)數(shù),最大可達(dá)248字節(jié)數(shù)。</p><p>
36、圖4-3 DS1302管腳圖</p><p> 如果在傳送過程中置RST為低電平,則會終止本次數(shù)據(jù)傳送,并且I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時,在VCC >=2.5V之前,RST腳必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。DS1302的管腳圖如圖4-3所示,內(nèi)部結(jié)構(gòu)圖如圖4-4所示,表4-2為各引腳的功能。</p><p> 圖4-4 DS1302內(nèi)部結(jié)構(gòu)圖
37、</p><p> 表4-2 DS1302引腳功能表</p><p> DS1302的控制字如圖4-5所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1;如果它為邏輯0,則不能把數(shù)據(jù)寫入到DS1302中。位6如果為0,則表示存取日歷時鐘數(shù)據(jù);為1表示存取RAM數(shù)據(jù)。位5~1(A4~A0)指示操作單元的地址。最低有效位(位0)如為0,表示要進(jìn)行寫操作;為1表示進(jìn)行讀操作??刂谱止?jié)總是從最低位
38、開始輸入/輸出。</p><p> 圖4-5 控制字節(jié)的含義</p><p> 為了提高對32個地址的尋址能力(地址/命令位1~5=邏輯1),可以把時鐘/日歷或RAM寄存器規(guī)定為多字節(jié)(burst)方式。位6規(guī)定時鐘或RAM,而位0規(guī)定讀或?qū)?。在時鐘/日歷寄存器中的地址9~31或RAM寄存器中的地址31不能存儲數(shù)據(jù)。在多字節(jié)方式中,讀或?qū)憦牡刂?的位0開始。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?/p>
39、8個寄存器。但是,當(dāng)以多字節(jié)方式寫RAM時,為了傳送數(shù)據(jù)不必寫所有31字節(jié)。不管是否寫了全部31字節(jié),所寫的每一字節(jié)都將傳送至RAM。數(shù)據(jù)讀寫程序如圖4-6所示。</p><p> 圖4-6 數(shù)據(jù)讀寫程序</p><p> DS1302共有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表4-3,其中奇數(shù)為讀操作,偶數(shù)為寫操作。
40、</p><p> 表4-3 DS1302的日歷、時鐘寄存器及其控制字</p><p> 時鐘暫停:秒寄存器的位7定義位時鐘暫停位。當(dāng)它為1時,DS1302停止振蕩,進(jìn)入低功耗的備份方式。通常在對DS1302進(jìn)行寫操作時(如進(jìn)入時鐘調(diào)整程序),停止振蕩。當(dāng)它為0時,時鐘將開始啟動。</p><p> AM-PM/12-24[小]時方式:[小]時寄存器的位7定義
41、為12或24[小]時方式選擇位。它為高電平時,選擇12[小]時方式。在此方式下,位5是AM/PM位,此位是高電平時表示PM,低電平表示AM,在24[小]時方式下,位5為第二個10[小]時位(20~23h)。</p><p> 4.2.2 DS1302 的應(yīng)用</p><p> 實(shí)時時鐘芯片DS1302采用串行數(shù)據(jù)傳輸,可為掉電保護(hù)電源提供可編程的充電功能,也可以關(guān)閉充電功能,芯片采用3
42、2768Hz晶振。要特別說明的是,備用電源BT1可以用電池或超級電容(10萬μF以上)。雖然DS1302在主電源掉電后耗電很小,但如果要長時間保證時鐘正常,最好選用小型充電電池。如果斷電時間較短(幾小時或幾天),可以用漏電較小的普通電解電容代替(100μF就可以保證1小時的正常走時)[9]。DS1302在第一次加電后,需進(jìn)行初始化操作。初始化后就可以按正常方法調(diào)整時間及鬧鈴。DS1302的時鐘電路如圖4-3所示。</p>
43、<p> 圖4-7 DS1302時鐘電路</p><p><b> 4.3 存儲電路</b></p><p> 4.3.1 AT24C02管腳介紹</p><p> AT24C02[10]是美國ATMEL公司的低功耗CMOS串行EEPROM,它是內(nèi)含256×8位存儲空間,具有工作電壓寬(2.5~5.5V)、擦寫次數(shù)多
44、(大于10000次)、寫入速度快(小于10ms)等特點(diǎn)。 AT24C02的1、2、3腳是三條地址線,用于確定芯片的硬件地址。第8腳和第4腳分別為正、負(fù)電源。第5腳SDA為串行數(shù)據(jù)輸入/輸出,數(shù)據(jù)通過這條雙向I2C總線串行傳送。第6腳SCL為串行時鐘輸入線。SDA和SCL都需要和正電源間各接一個4.7K的電阻上拉。</p><p> I2C總線是一種用于I2C器件之間連接的二線制總線。
45、它通過SDA(串行數(shù)據(jù)線)及SCL(串行時鐘線)兩根線在連到總線上的器件之間傳送信息,并根據(jù)地址識別每個器件:不管是單片機(jī)、存儲器、LCD驅(qū)動器還是鍵盤接口。</p><p> 4.3.2 AT24C02的特性</p><p> (1) I2C總線的基本結(jié)構(gòu)</p><p> 采用I2C總線標(biāo)準(zhǔn)的單片機(jī)或I2C器件,其內(nèi)部不僅有I2C接口電路,而且將內(nèi)部各單元
46、電路按功能劃分為若干相對獨(dú)立的模塊,通過軟件尋址實(shí)現(xiàn)片選,減少了器件片選線的連接。CPU不僅能通過指令將某個功能單元電路掛靠或摘離總線,還可對該單元的工作狀況進(jìn)行檢測,從而實(shí)現(xiàn)對硬件系統(tǒng)的既簡單又靈活的擴(kuò)展與控制。</p><p> (2) 雙向傳輸?shù)慕涌谔匦浴?lt;/p><p> 傳統(tǒng)的單片機(jī)串行接口的發(fā)送和接收一般都各用一條線,而I2C總線則根據(jù)器件的功能通過軟件程序使其可工作于發(fā)送
47、或接收方式。當(dāng)某個器件向總線上發(fā)送信息時,它就是發(fā)送器(也叫主器件),而當(dāng)其從總線上接收信息時,又成為接收器(也叫從器件)。主器件用于啟動總線上傳送數(shù)據(jù)并產(chǎn)生時鐘以開放傳送的器件,此時任何被尋址的器件均被認(rèn)為是從器件。I2C總線的控制完全由掛接在總線上的主器件送出的地址和數(shù)據(jù)決定。 總線上主和從(即發(fā)送和接收)的關(guān)系不是一成不變的,而是取決于此時數(shù)據(jù)傳送的方向。SDA和SCL均為雙向I/O線,通過上拉電阻接正電源。當(dāng)總線空閑時,兩根
48、線都是高電平。連接總線的器件的輸出級必須是集電極或漏極開路,以具有線“與”功能。I2C總線的數(shù)據(jù)傳送速率在標(biāo)準(zhǔn)工作方式下為100kbit/s,在快速方式下,最高傳送速率可達(dá)400kbit/s。(3) I2C總線上的時鐘信號 </p><p> 在I2C總線上傳送信息時的時鐘同步信號是由掛接在SCL時鐘線上的所有器件的邏輯“與”完成的。SCL線上由高電平到低電平的跳變將影響到這些器件,一旦某個器件的時鐘信號下跳
49、為低電平,將使SCL線一直保持低電平,使SCL線上的所有器件開始低電平期。此時,低電平周期短的器件的時鐘由低至高的跳變并不能影響SCL線的狀態(tài),于是這些器件將進(jìn)入高電平等待的狀態(tài)?! ‘?dāng)所有器件的時鐘信號都上跳為高電平時,低電平期結(jié)束,SCL線被釋放返回高電平,即所有的器件都同時開始它們的高電平期。其后,第一個結(jié)束高電平期的器件又將SCL線拉成低電平。這樣就在SCL線上產(chǎn)生一個同步時鐘??梢?,時鐘低電平時間由時鐘低電平期最長的器件確定
50、,而時鐘高電平時間由時鐘高電平期最短的器件確定。(4) 數(shù)據(jù)的傳送 </p><p> 在數(shù)據(jù)傳送過程中,必須確認(rèn)數(shù)據(jù)傳送的開始和結(jié)束。當(dāng)時鐘線SCL為高電平時,數(shù)據(jù)線SDA由高電平跳變?yōu)榈碗娖蕉x為“開始”信號;當(dāng)SCL線為高電平時,SDA線發(fā)生低電平到高電平的跳變?yōu)椤敖Y(jié)束”信號。開始和結(jié)束信號都是由主器件產(chǎn)生。在開始信號以后,總線即被認(rèn)為處于忙狀態(tài);在結(jié)束信號以后的一段時間內(nèi),總線被認(rèn)為是空閑的。
51、 I2C總線的數(shù)據(jù)傳送格式是:在I2C總線開始信號后,送出的第一個字節(jié)數(shù)據(jù)是用來選擇從器件地址的,其中前7位為地址碼,第8位為方向位(R/W)。方向位為“0”表示發(fā)送,即主器件把信息寫到所選擇的從器件;方向位為“1”表示主器件將從從器件讀信息。開始信號后,系統(tǒng)中的各個器件將自己的地址和主器件送到總線上的地址進(jìn)行比較,如果與主器件發(fā)送到總線上的地址一致,則該器件即為被主器件尋址的器件,其接收信息還是發(fā)送信息則由第8位(R/W)確定?! ?/p>
52、在I2C總線上每次傳送的數(shù)據(jù)字節(jié)數(shù)不限,但每一個字節(jié)必須為8位,而且每個傳送的字節(jié)后面必須跟一個認(rèn)可位(第9位),也叫應(yīng)答位(ACK)。每次都是先傳最高位,通常從器件在接收到每個字節(jié)后都會做出響應(yīng),即釋放SCL線返回高電平,準(zhǔn)備接收下一</p><p> 總線上可能掛接有多個器件,有時會發(fā)生兩個或多個主器件同時想占用總線的情況。例如,多單片機(jī)系統(tǒng)中,可能在某一時刻有兩個單片機(jī)要同時向總線發(fā)送數(shù)據(jù),這種情況叫做總
53、線競爭。I2C總線具有多主控能力,可以對發(fā)生在SDA線上的總線競爭進(jìn)行仲裁,其仲裁原則是這樣的:當(dāng)多個主器件同時想占用總線時,如果某個主器件發(fā)送高電平,而另一個主器件發(fā)送低電平,則發(fā)送電平與此時SDA總線電平不符的那個器件將自動關(guān)閉其輸出級??偩€競爭的仲裁是在兩個層次上進(jìn)行的。首先是地址位的比較,如果主器件尋址同一個從器件,則進(jìn)入數(shù)據(jù)位的比較,從而確保了競爭仲裁的可靠性。由于是利用I2C總線上的信息進(jìn)行仲裁,因此不會造成信息的丟失。&l
54、t;/p><p> 24C02與單片機(jī)的接口非常簡單,如圖4-8所示。A0,A1,A2為器件地址線,WP為寫保護(hù)引腳,SCL,SDA為二線串行接口,符合I2C總線協(xié)議。</p><p> 圖4-8 24C02存儲電路</p><p> 4.4 液晶顯示電路</p><p> 顯示器部分是由HD61202液晶顯示控制驅(qū)動器和HY12864液
55、晶顯示器組成的,下面我們對其分別進(jìn)行介紹。</p><p> 4.4.1 液晶顯示控制驅(qū)動器HD61202的特點(diǎn)</p><p> HD61202液晶顯示控制驅(qū)動器是一種帶有驅(qū)動輸出的圖形液晶顯示控制器,它可直接與8位微處理器相連,它可與HD61203配合對液晶屏進(jìn)行行、列驅(qū)動。HD61202是一種帶有列驅(qū)動輸出的液晶顯示控制器,它可與行驅(qū)動器HD61203配合使用,組成液晶顯示驅(qū)動控
56、制系統(tǒng)[12]。</p><p> (1) 內(nèi)藏64×64=4096位顯示RAM,RAM中每位數(shù)據(jù)對應(yīng)LCD屏上一個點(diǎn)的亮、暗狀態(tài);</p><p> (2) HD61202是列驅(qū)動器,具有64路列驅(qū)動輸出;</p><p> (3) HD61202讀、寫操作時序與68系列微處理器相符,因此它可直接與68系列微處理器接口相連;</p>
57、<p> (4) HD61202的占空比為1/32~1/64。</p><p> 4.4.2 液晶顯示控制驅(qū)動器HD61202的引腳功能</p><p> HD61202的引腳功能如下表4-4所示。</p><p> 表4-4 HD61202的引腳功能</p><p> 4.4.3 液晶顯示控制驅(qū)動器HD61202的指令
58、系統(tǒng)</p><p> HD61202的指令系統(tǒng)比較簡單,總共只有七種?,F(xiàn)分別介紹如下。 </p><p> (1) 顯示開/關(guān)指令</p><p> 當(dāng)DBO=1時,LCD顯示RAM中的內(nèi)容;DBO=0時,關(guān)閉顯示。</p><p> (2) 顯示起始行(
59、ROW)設(shè)置指令</p><p> 該指令設(shè)置了對應(yīng)液晶屏最上一行的顯示RAM的行號,有規(guī)律的改變顯示起始行,可以使LCD實(shí)現(xiàn)顯示滾屏的效果。</p><p> (3) 頁(PAGE)置指令</p><p> 顯示RAM共64行,分8頁,每頁8行。</p><p> (4) 列地址(Y Address)設(shè)置指令</p>
60、<p> 設(shè)置了頁地址和列地址,就唯一確定了顯示RAM中的一個單元,這樣MPU就可以用讀、寫指令讀出該單元中的內(nèi)容或向該單元寫進(jìn)一個字節(jié)數(shù)據(jù)。</p><p><b> (5) 讀狀態(tài)指令</b></p><p> 該指令用來查詢HD61202的狀態(tài),各參量含義如下:</p><p> BUSY: 1-內(nèi)部在工作 0-正常
61、狀態(tài)</p><p> ON/OFF:1-顯示關(guān)閉 0-顯示打開</p><p> REST: 1-復(fù)位狀態(tài) 0-正常狀態(tài)</p><p> 在BUSY和REST狀態(tài)時,除讀狀態(tài)指令外,其它指令均不對HD61202產(chǎn)生作用。在對HD61202操作之前要查詢BUSY狀態(tài),以確定是否可以對HD61202進(jìn)行操作。</p><p
62、><b> (6) 寫數(shù)據(jù)指令</b></p><p><b> (7) 讀數(shù)據(jù)指令</b></p><p> 讀、寫數(shù)據(jù)指令每執(zhí)行完一次讀、寫操作,列地址就自動增一,必須注意的是,進(jìn)行讀操作之前,必須有一次空讀操作,緊接著再讀才會讀出所要讀的單元中的數(shù)據(jù)。</p><p> 4.4.4 HY-12864的電
63、路結(jié)構(gòu)特點(diǎn)</p><p> HY-12864是使用HD61202作為列驅(qū)動器,同時使用HD61203作為行驅(qū)動器的液晶模塊。由于HD61203不與MPU發(fā)生聯(lián)系,只要提供電源就能產(chǎn)生行驅(qū)動信號和各種同步信號,比較簡單,因此這就不做介紹了。</p><p> 下面主要介紹以下HY-12864這個模塊的邏輯電路圖。HY-12864共有兩片HD61202和一片HD61203,如下圖4-9所
64、示。</p><p> 圖4-9 HY-12864的邏輯電路圖</p><p> 在HY-12864中,兩片HD61202的ADC均接高電平,RST也接高電平,這樣在使用HY-12864時就不必再考慮這兩個引腳的作用。/CSA跟HD61202(1)的/CS1相連;/CSB跟HD61202(2)的CS1相連,因此/CSA、/CSB選通組合信號為/CSA,/CSB=01選通(1),/CSA
65、,/CSB=10選通(2)。對于HY-12864,只要供給VDD、VSS和V0即可,HD61202和HD61203所需的電源將由模塊內(nèi)部電路在VDD和V0、VSS的作用下產(chǎn)生。</p><p> 4.4.5 HY-12864的應(yīng)用</p><p> 以下內(nèi)容為以單片機(jī)8031為例機(jī)的接口電路,電路原理圖如圖4-10所示??刂齐娐窞橹苯釉L問方式的接口電路。</p><
66、p> 圖4-10 8031與液晶的接口電路</p><p> 根據(jù)以上電路原理圖中液晶的各引腳與單片機(jī)的接法,可得本設(shè)計的液晶模塊電路如圖4-11所示。VSS接地;數(shù)字電源VDD接+5V;對比度控制電壓V0接電位器,可通過調(diào)節(jié)電位器調(diào)整液晶亮度;數(shù)據(jù)、指令選擇信號RS接單片機(jī)P2.0口;讀寫選擇信號R/W接單片機(jī)P2.1口;單片機(jī)讀、寫選通信號/RD、/WR通過與非門接液晶的讀寫使能信號E;DB0~D
67、B7分別接單片機(jī)的P0.0~P0.7口;芯片1、芯片2的片選分別接單片機(jī)的P2.2、P2.3口;復(fù)位端RST、背光正電源LEDA接+5V;液晶驅(qū)動電壓VEE、背光負(fù)電源LEDK接地。</p><p> 圖4-11 液晶模塊電路</p><p><b> 4.5 鍵盤電路</b></p><p> 本設(shè)計共采用按鍵3個,分別與單片機(jī)的P1
68、.7、P1.6、P1.5口相連,分別對應(yīng)光標(biāo)移動,時間、日期調(diào)整,退出、鬧鈴開關(guān)鍵的功能。與單片機(jī)的接法可參照附錄1——電子萬年歷設(shè)計電路原理圖。</p><p><b> 4.6 鬧鈴電路</b></p><p> 當(dāng)鬧鈴顯示“關(guān)”時,鬧鈴不起作用;當(dāng)鬧鈴顯示“開”時,設(shè)定鬧鈴時間,鬧鈴時間只可設(shè)定時和分,當(dāng)前時間不斷與設(shè)定的鬧鈴時間比較,不相等時不產(chǎn)生任何現(xiàn)象
69、,一旦相等,P3.5輸出一個高電平使三極管導(dǎo)通,從而使蜂鳴器工作,鬧鈴起作用。鬧鈴電路如圖4-12所示。</p><p> 圖4-12 鬧鈴電路</p><p><b> 5 系統(tǒng)程序的設(shè)計</b></p><p> 5.1 陽歷程序的設(shè)計</p><p> 因?yàn)槭褂昧藭r鐘芯片DS1302,陽歷程序只需從DS1
70、302各寄存器中讀出年、周、月、日、[?。輹r、分、秒等數(shù)據(jù),再處理即可。在首次對DS1302進(jìn)行操作之前,必須對它進(jìn)行初始化,然后從DS1302中讀出數(shù)據(jù),再經(jīng)過處理后,送給顯示緩沖單元。陽歷程序流程圖見圖5-1所示。 </p><p> 圖5-1 陽歷程序流程圖</p><p> 5.2 時間調(diào)整程序設(shè)計</p><p> 調(diào)整時間用三個調(diào)整按鈕,一個作為移
71、位、控制用,一個作為加用,一個作為退出調(diào)整和鬧鈴開關(guān)用。分別定義為控制按鈕、加按鈕、退出按鈕。在調(diào)整時間過程中,要調(diào)整的位與別的位應(yīng)該有區(qū)別,所以增加了閃爍功能,即調(diào)整的位一直在閃爍,直到調(diào)整下一位。閃爍原理就是,讓要調(diào)整的一位每隔一定的時間熄滅一次,例如間隔時間為50ms。利用定時器計時,當(dāng)達(dá)到50ms溢出時,就送給該位熄滅符,在下一次溢出時,再送正常顯示的值,不斷交替,直到調(diào)整該位結(jié)束。此時送正常顯示值給該位,再進(jìn)入下一位調(diào)整閃爍程
72、序。時間調(diào)整程序流程圖如圖5-2所示。</p><p> 圖5-2 時間調(diào)整程序流程圖</p><p> 5.3 陰歷程序設(shè)計</p><p> 陰歷程序的實(shí)現(xiàn)是要靠陽歷日期來推算的。要根據(jù)陽歷來推算陰歷日期,首先要設(shè)計算法。推算方法是,根據(jù)陽歷當(dāng)前日期在一年中的天數(shù)來計算陰歷日期。陽歷一個月不是30天就是31天(2月除外,閏年2月為29天,平年2月為28天)
73、。陰歷一年有12個月或13個月(含閏月),一個月為30天或29天。如果把一個只有29天的月稱為小月,用1為標(biāo)志,把30天的月稱為大月,用0為標(biāo)志,那么12位二進(jìn)制就能表示一年12個月的大小。如果有閏月,則把閏月的月份作為一個字節(jié)的高4位,低4位表示閏月大小,大月為0,小月為1,這樣一個字節(jié)就包括了所有閏月的信息。陰歷春節(jié)和陽歷元旦相差的天數(shù)也用一個字節(jié)表示??偣灿?字節(jié)就可以存儲一年中任何一天陽歷和陰歷的對應(yīng)關(guān)系的有關(guān)數(shù)據(jù),例如2004
74、年的陰歷和陽歷對應(yīng)關(guān)系如表5-1所示。</p><p> 表5-1 2004年的陰歷和陽歷對應(yīng)關(guān)系表</p><p> 2004年的春節(jié)和元旦差21天,這樣2004年的信息表示為:21,42H,52H,21H。其中表示12個月大小信息的字節(jié),第4位和第7位不用,第1個字節(jié)為十進(jìn)制,其它的都為十六進(jìn)制。按此方法,50年的陽歷和陰歷對應(yīng)關(guān)系表總共使用200字節(jié)。</p>&
75、lt;p> 有了算法和數(shù)據(jù)以后,就可以設(shè)計軟件了。先要根據(jù)當(dāng)前陽歷的日期,算出陽歷為該年中的第幾天。圖5-3為計算陽歷中任何一天在該年中為第幾天的程序流程圖。</p><p> 圖5-3 計算陽歷天數(shù)程序流程圖</p><p> 計算出當(dāng)前陽歷日期為該年中的第幾天后,再減去陽歷該年春節(jié)和元旦的日差,如果夠減,則相減的結(jié)果就是陰歷在該年中的總第幾天了。根據(jù)該數(shù)據(jù)就可以推算出具體的
76、當(dāng)前陰歷日期;如果不夠減,則表示當(dāng)前陰歷年為陽歷年的前一年。這種情況下,根據(jù)實(shí)際,當(dāng)前陰歷日期會處于陰歷11月或12月,此時春節(jié)和元旦的日差減去前面計算出的當(dāng)前陽歷日期在陽歷年為第幾天的數(shù)據(jù),其結(jié)果表示當(dāng)前陰歷日期離春節(jié)的天數(shù)。計算出的陽歷天數(shù)為該年的第幾天,存放在寄存器R2和R3中。計算出天數(shù)后,如果大于#FFH,則把#FFH存放在R2中,余值存放在R3中。也就是說在用寄存器R2和R3表示的天數(shù)信息中,R2充當(dāng)主寄存器,數(shù)據(jù)先存滿R2
77、,再存R3。在整個轉(zhuǎn)換程序中,這里面的數(shù)據(jù)不能被覆蓋。</p><p> 計算出陽歷總天數(shù)后,就可以根據(jù)它來推算陰歷日期。推算方法是,先用總天數(shù)減去春節(jié)和元旦的日差,如果結(jié)果為1,則該天正好是春節(jié)(因?yàn)榇汗?jié)在元旦之后,在計算春節(jié)和元旦的日差時,假設(shè)元旦為0天,春節(jié)為n天,則日差為n。而前面計算的陽歷總天數(shù)是該天在該年中的第幾天,是以元旦為1而得到的,與計算春節(jié)和元旦日差的這樣方法相比,其數(shù)值少了1,所以要在原來
78、本應(yīng)該以0作為該天就是春節(jié)的依據(jù)的基礎(chǔ)上加1,所以以1作為該天是春節(jié)的標(biāo)志);如果結(jié)果小于1,則陰歷應(yīng)該是陽歷的前一年;如果結(jié)果大于1,說明陽歷和陰歷為同一年。再根據(jù)查表所得的該年的陰歷的閏年和大小月的信息,就可以推算出該天的陰歷日期了。圖5-4為由總天數(shù)推算出陰歷日期的程序流程圖。</p><p> 圖5-4 推算陰歷日期的程序流程圖</p><p><b> 6 測試結(jié)果
79、</b></p><p> 設(shè)計完成后,給系統(tǒng)上電,液晶顯示屏顯示結(jié)果如圖6-1所示。</p><p> 圖6-1 液晶顯示屏的顯示結(jié)果</p><p> 調(diào)節(jié)10K電位器R4可調(diào)整液晶顯示屏的亮度。調(diào)整到合適亮度后,按控制按鈕,光標(biāo)會從陽歷年位開始閃爍,進(jìn)入設(shè)定調(diào)整狀態(tài)。此時按加按鈕,當(dāng)前數(shù)字就可改變。按一次,數(shù)字加1;若長按,則數(shù)字連續(xù)加。此時
80、,調(diào)整的位一直在閃爍,直到再次按光標(biāo)移動控制位,光標(biāo)跳到下一位閃爍。調(diào)整順序依次為:陽歷年、月、日,陰歷年、月、日,時、分、秒,鬧鈴時、分。當(dāng)全部參數(shù)調(diào)整完畢后,按退出按鈕,光標(biāo)停止閃爍,退出設(shè)定調(diào)整狀態(tài);當(dāng)再次按下此按鈕,鬧鈴顯示“開”;當(dāng)?shù)谌伟聪麓随I,鬧鈴顯示“關(guān)”。若當(dāng)前月為閏月,則屏幕左下角會顯示“閏月”;若不是閏月,則無顯示。</p><p> 調(diào)試分為硬件調(diào)試和軟件調(diào)試。硬件調(diào)試主要是檢測硬件電路
81、是否有短路、斷路、虛焊等。DS1302的硬件電路很簡單,只通過3根線與單片機(jī)相連,很容易檢測,主要是檢查其引腳,如晶振和電源等是否接好。另外可以通過軟件來調(diào)試硬件,如為了測試顯示電路連接是否正確,可以編寫一個簡單的顯示程序來測試它。接下來可進(jìn)行軟件調(diào)試,可以編寫只含DS1302的計時和讀寫程序、顯示程序,測試DS1302是否正常工作。最后調(diào)試時間調(diào)整程序和陰歷推算程序。</p><p> 計時器最關(guān)鍵的是計時的
82、精度。電子萬年歷中DS1302電路使用專用的晶振,經(jīng)測試制作的電子萬年歷,一星期快了3s左右,誤差較大,實(shí)驗(yàn)設(shè)計中可換用標(biāo)準(zhǔn)晶振或用軟件進(jìn)行修正。</p><p><b> 7 結(jié)論</b></p><p> 本設(shè)計硬件電路較簡單,所用器件較少,電路中使用了AT89S52單片機(jī)、DS1302時鐘芯片、24C02FLASH存儲器和HY-12864液晶顯示器等主要芯片
83、,實(shí)現(xiàn)了預(yù)計功能。</p><p> 在對芯片的管腳功能和用法有充分的了解后,根據(jù)設(shè)計要求設(shè)計硬件電路,包括單片機(jī)控制電路、時鐘電路、存儲電路、鍵盤掃描電路、顯示電路和鬧鈴電路。然后通過軟件編程,實(shí)現(xiàn)了對年、月、日、時、分、秒、星期、閏年和陰歷的自動調(diào)整,用按鍵進(jìn)行控制,用液晶模塊進(jìn)行顯示,并具有鬧鈴功能。</p><p> 電子萬年歷可以正常顯示時間并進(jìn)行時間調(diào)整,基本完成了預(yù)期要實(shí)
84、現(xiàn)的目標(biāo)。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 吳金戌,沈慶陽.8051單片機(jī)實(shí)踐與應(yīng)用,北京:清華大學(xué)出版社,2003.12,26-38.</p><p> [2] 何立民.單片機(jī)應(yīng)用文集,北京:北京航空航天大學(xué)出版社,1991,53-72.</p><p> [3] 公茂法.
85、單片機(jī)人機(jī)接口實(shí)例集,北京:北京航空航天大學(xué)出版社,1998.2,32-59.</p><p> [4] 何立明.單片機(jī)高級教程——應(yīng)用與設(shè)計,北京:北京航天航空大學(xué)出版社,2000.4,149-173.</p><p> [5] 李廣弟,朱月秀.單片機(jī)基礎(chǔ),北京:北京航空航天大學(xué)出版社,2001.8,36-85.</p><p> [6] 樓然苗,李光飛.M
86、CS-51系列單片機(jī)設(shè)計實(shí)例,北京:北京航天航空大學(xué)出版社,2001.3,75-83.</p><p> [7] 李華.單片機(jī)原理與接口技術(shù),北京:清華大學(xué)出版社,33-80.</p><p> [8] 王偉.高性能、低功耗帶RAM實(shí)時時鐘芯片DS1302(上),電子世界:第一期,</p><p> 1995,26-35.</p><p&g
87、t; [9] 王偉.高性能、低功耗帶RAM實(shí)時時鐘芯片DS1302(下),電子世界:第四期,1995,32-41.</p><p> [10] 劉光潭.中外集成電路簡明速察手冊,上海:電子工業(yè)出版社,1991.</p><p> [11] 一九九九年產(chǎn)品目錄(第一期),武漢力源股份有限公司,1999.</p><p> [12] 劉利.液晶顯示原理,上海:電
88、子工業(yè)出版社,2002.5,52-70.</p><p> [13] 李宏,張家田.液晶顯示器件應(yīng)用技術(shù),北京:機(jī)械工業(yè)出版社,2004,156-183.</p><p> [14] 沈慶陽.漢字顯示應(yīng)用技術(shù),上海:電子工業(yè)出版社,2002.3,128-139.</p><p> [15] MAXIM.NEW RELEASES DATA BOOK (VOLUM
89、E V),AMERICA,1996.</p><p><b> 致 謝</b></p><p> 不知不覺,十二周的畢業(yè)設(shè)計結(jié)束了。我的畢業(yè)論文已整理完畢,電路調(diào)試進(jìn)展良好。畢業(yè)設(shè)計的完成意味著我的大學(xué)學(xué)習(xí)生活即將結(jié)束,從此我將進(jìn)入一個新的人生旅途、開始一段嶄新的生活——工作。在此,我衷心地感謝所有在我做畢業(yè)設(shè)計期間幫助過我的人。 </p><
90、p> 首先我要感謝我的指導(dǎo)老師李杰的大力幫助和支持。在整個設(shè)計過程當(dāng)中,李老師在大局上指導(dǎo)我畢業(yè)設(shè)計的每一進(jìn)程,還在百忙中抽空為我答疑解難,幫我分析講解畢業(yè)設(shè)計中所遇到的問題。不僅如此,李老師還無私的給我提供了豐富的學(xué)習(xí)資源和良好的學(xué)習(xí)環(huán)境,為我的畢業(yè)設(shè)計帶來了很大方便。同時在我完成畢業(yè)設(shè)計的過程中提供了很多指導(dǎo)性的意見,使我受益匪淺。另外,李老師淵博的學(xué)識、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和為人給了我很大的教育,這些將使我終身受益。在此,我衷心
91、感謝李老師給予我的幫助和教育。</p><p> 此外,我還要感謝胡建明老師和陳海山同學(xué)給予我的無私的幫助,他們在程序編寫和調(diào)試過程中給予了我莫大的幫助。在此,我真誠地感謝他們。</p><p> 最后,我要感謝我的母?!旖蚬こ處煼秾W(xué)院,在校期間,這里給我留下了美好的回憶。特別是在我即將踏上工作崗位的同時,畢業(yè)設(shè)計整個過程給了我這樣一個鍛煉的機(jī)會,使我加深了對以前知識的理解和鞏固,
92、拓寬了知識面,也提高了我對所學(xué)知識的綜合應(yīng)用能力。我要對母校說:母校有我三五載,我愛母校一萬年。祝愿母校的將來更美好!</p><p> 附錄1:電子萬年歷設(shè)計電路原理圖</p><p><b> 附錄2 主程序</b></p><p> MAIN: MOV SP,#70H</p><p> LCALL DE
93、LAY</p><p> ;LCALL DELAY</p><p> ;LCALL DELAY</p><p> MOV 59H,#00H ;判斷調(diào)整地址</p><p> CLR 22H ;停止周期第三位閃爍</p><p> CLR 23
94、H ;判斷是否開鬧鈴</p><p><b> CLR P3.5</b></p><p> MOV IE,#00H ;關(guān)所有中斷</p><p> MOV TMOD,#10H</p><p> MOV TL1,#0F0H</p>
95、<p> MOV TH1,#00H</p><p> ;MOV IP,#01H</p><p> ;SETB EX0 ;開外中斷</p><p> SETB EA ;開總中斷允許</p><p> LCALL VIICREAD ;將EEPROM中
96、原頻率數(shù)據(jù)調(diào)入內(nèi)存</p><p> ;MOV 65H,#00H</p><p> ;MOV 66H,#00H</p><p> ;MOV 67H,#00H</p><p> ;MOV 68H,#00H</p><p> LCALL INT</p><p> LCALL CL
97、EAR</p><p> LCALL INTSHI</p><p> LCALL DDD ;靜態(tài)字顯示</p><p><b> ;以下字為動態(tài)顯示</b></p><p> DONGXIAN:MOV DPTR,#CCTAB</p><p> MOV
98、 ZIDI,DPL</p><p> MOV ZIGAO,DPH</p><p> MOV DONGXH, #1CH</p><p> DXH1: MOV PAGER, #00H ;16X16點(diǎn)陣字體,第2頁</p><p> MOV COLUMN,#00H ;起始列為第0
99、列</p><p> MOV CODER,#00H ;字符代碼</p><p> LCALL CCW_PR</p><p> MOV PAGER,#00H</p><p> MOV COLUMN,#10H</p><p> MOV CODER,#01H</
100、p><p> LCALL CCW_PR</p><p> MOV PAGER,#00H</p><p> MOV COLUMN,#20H</p><p> MOV CODER,#02H</p><p> LCALL CCW_PR</p><p> MOV
101、 PAGER, #00H ;16X16點(diǎn)陣字體,第2頁</p><p> MOV COLUMN,#30H ;起始列為第0列</p><p> MOV CODER,#03H ;字符代碼</p><p> LCALL CCW_PR</p><p> MOV
102、 PAGER,#00H</p><p> MOV COLUMN,#40H</p><p> MOV CODER,#04H</p><p> LCALL CCW_PR</p><p> MOV PAGER,#00H</p><p> MOV COLUMN,#50H</p
103、><p> MOV CODER,#05H</p><p> LCALL CCW_PR</p><p> MOV PAGER,#00H</p><p> MOV COLUMN,#60H</p><p> MOV CODER,#06H</p><p> L
104、CALL CCW_PR</p><p> MOV PAGER,#00H</p><p> MOV COLUMN,#70H</p><p> MOV CODER,#07H</p><p> LCALL CCW_PR</p><p> LCALL DELAY</p>
105、<p> CLR C ; 動態(tài)顯示循環(huán)程序控制</p><p> MOV A,ZIDI</p><p> ADD A,#20H</p><p> MOV ZIDI,A</p><p> MOV A,ZIGAO</p>&l
106、t;p> ADDC A,#00H</p><p> MOV ZIGAO,A</p><p> L1: MOV 3CH,#0F7H ;開始鍵掃描</p><p> MOV 3DH,#00H</p><p> L2: MOV A,3CH</p><p
107、><b> MOV P1,A</b></p><p><b> MOV A,P1</b></p><p><b> MOV 3EH,A</b></p><p><b> SETB C</b></p><p> MOV 3FH,#04H<
108、;/p><p> L3: RLC A</p><p> JNC MNJIXU</p><p><b> INC 3DH</b></p><p> DJNZ 3FH,L3</p><p> LCALL DISP1</p><p><b> MOV A,
109、3CH</b></p><p><b> SETB C</b></p><p><b> RRC A</b></p><p><b> MOV 3CH,A</b></p><p><b> JC L2</b></p>&l
110、t;p><b> JMP MNMN</b></p><p> MNJIXU:MOV A,P1</p><p><b> XRL A,3EH</b></p><p><b> JNZ DF3</b></p><p> AJMP DF3
111、 ; MNJIXU</p><p> DF3: CLR C</p><p><b> MOV A,3DH</b></p><p><b> RLC A</b></p><p> MOV DPTR,#TABLE</p><p> JMP @A+DPTR&
112、lt;/p><p> AJMP DONGXIAN</p><p> TABLE: AJMP MN0 ;鍵盤入口地址</p><p><b> AJMP MN1</b></p><p><b> AJMP MN2</b></p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子萬年歷
- 萬年歷課程設(shè)計--萬年歷電子時鐘
- 電子萬年歷畢業(yè)設(shè)計
- 電子萬年歷畢業(yè)設(shè)計
- 電子萬年歷外文翻譯
- 電子萬年歷設(shè)計與制作
- 電子萬年歷畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---電子萬年歷設(shè)計
- 課程設(shè)計報告--電子萬年歷
- 電子萬年歷畢業(yè)設(shè)計稿
- 畢業(yè)論文——電子萬年歷設(shè)計
- 電子萬年歷設(shè)計-畢業(yè)論文
- 電子萬年歷課程設(shè)計 (2)
- 電子萬年歷的設(shè)計與仿真
- 電子萬年歷設(shè)計報告書
- proteus課程設(shè)計--電子萬年歷
- 電子萬年歷畢業(yè)設(shè)計2
- 電子萬年歷課程設(shè)計報告
- 畢業(yè)論文——電子萬年歷設(shè)計
- 電子萬年歷畢業(yè)論文
評論
0/150
提交評論