




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、電子萬年歷設計摘要隨著當今世界經(jīng)濟的快速發(fā)展和信息化吋代的來臨,各種各樣的小型智能家電產(chǎn) 品陸續(xù)出現(xiàn)在我們的生活屮。日歷是人們不可或缺的日常用品。但一般日歷都為紙制 用品,使用不便,壽命不長。電了萬年歷采用智能電了控制和顯示技術,改善了紙制 日歷的缺陷。木設計以at89s52單片機為核心,構成單片機控制電路,結(jié)合ds1302 吋鐘芯片和24c02flash存儲器,完成吋間的自動調(diào)整和掉電保護,全部信息用液晶 顯示。時間、日期調(diào)整由三個按鍵來實現(xiàn),并可對鬧鈴開關進行設置。日丿力能顯示陽 歷和陰歷年、月、日以及星期、吋、分、秒。在顯示陰歷月份吋,能標明是否閏月。關鍵詞:電了萬年歷52系列單片機時鐘
2、芯片flash存儲器液晶顯示the design of electronic calendarabstractwith 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 anothe匚 calendars are necessary daily goods in peopled life. but th
3、ey are generally paper goods with inconvenient use and short life. electronic calendar adopts the technology of intelligent electronic control and display, and then improves the deficiency of paper calendars. the design adopts the core of at89s52 single chip microcomputer, which constitutes controll
4、ing circuit, and integrates ds 1302 clock chip and 24c02flash memory, which achieve self-adjusting of time and no power protecting. lcd displays all information. time and date adjusting is carried out by three keys, which can also set the alarm clock. the calendar can display solar and lunar year, m
5、onth, day, week, hour, minute, second when displaying lunar months, leap month is showed.keywords: electronic calendar 52 series single chip microcomputer clock chip flash memory lcd摘要1abstract 11引言12系統(tǒng)概述13方案選擇13. 1方案1基于at89s52單片機的電子力'年歷設計 13.2方案2基于ds1302的電子力年歷設計24系統(tǒng)碩件電路的設計24. 1系統(tǒng)核心部分-閃電存儲型器件at8
6、9s52 34.2 ds1302時鐘電路 54.3存儲電路94. 4液晶顯示電路114.5鍵盤電路154.6鬧鈴電路155系統(tǒng)程序的設計165. 1陽歷程序的設計165.2時間調(diào)整程序的設計165.3陰歷程序的設計176測試結(jié)果207結(jié)論20參考文獻21致謝22附錄1:電子萬年歷設計電路原理圖23附錄2:主程序241引言在fl新川異的21世紀里,家用電子產(chǎn)品得到了迅速發(fā)展。許多家電設備都趨于 人性化、智能化,這些電器設備大部分都含有cpu控制器或者是單片機。單片機以其 高可靠性、高性價比、低電壓、低功耗等一系列優(yōu)點,近兒年得到迅猛發(fā)展和大范圍 推廣,廣泛應用于工業(yè)控制系統(tǒng)、通訊設備、h常消費類
7、產(chǎn)品和玩具等。并且已經(jīng)深 入到工業(yè)生產(chǎn)的各個環(huán)節(jié)以及人民生活的各個方面,如車間流水線控制、自動化系統(tǒng) 等、智能型家用電器(冰箱、空調(diào)、彩電)等。用單片機來控制的小型家電產(chǎn)品具有 便攜實用,操作簡單的特點。本文設計的電子刀年歷屬于小型智能家用電子產(chǎn)品。利用單片機進行控制,實時 時鐘芯片進行記時,外加掉電存儲電路和顯示電路,可實現(xiàn)時間的調(diào)整和顯示。電子 萬年歷既可廣泛應用于家庭,也可應用于銀行、郵電、賓館、醫(yī)院、學校、企業(yè)、商 店等相關行業(yè)的大廳,以及單位會議室、門衛(wèi)等場所。因而,此設計具有相當重要的 現(xiàn)實意義和實用價值。2系統(tǒng)概述本設計以at89s52單片機為核心,構成單片機控制電路,結(jié)合ds1
8、302時鐘芯片 和24c02flash存儲器,顯示陽歷年、刀、日、星期、時、分、秒和陰歷年、刀、日, 在顯示陰歷時間時,能標明是否閏丿,同時完成對它們的口動調(diào)整和掉電保護,全部 信息用液晶顯示。人機接口由三個按鍵來實現(xiàn),用這三個按鍵對時間、日期可調(diào),并 可對鬧鈴開關進行設置。軟件控制程序?qū)崿F(xiàn)所有的功能。整機電路使用+5v穩(wěn)壓電源, 可穩(wěn)定工作。系統(tǒng)框圖如圖2-1所示,其軟硬件設計簡單,時間記錄準確,可廣泛應 用于t時間連續(xù)顯示的系統(tǒng)中。圖2-1系統(tǒng)框圖3方案艇擇由于電子萬年歷的種類比較多,因此方案選擇在設計屮是至關重要的。正確地選 擇方案可以減小開發(fā)難度,縮短開發(fā)周期,降低成木,更快地將產(chǎn)詁推
9、向市場。3.1方案1基于at89s52單片機的電子萬年歷設計不使用時鐘芯片,而直接用at89s52單片機來實現(xiàn)電子萬年歷設計。at89s52是 一種帶8k字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能cmos 8位微處理器, 俗稱單片機。單片機的可擦除只讀存儲器可以反復擦寫1000余次。由于將多功能8 位cpu和閃爍存儲器組合在單個芯片中,atmel的at89s52是一種高效微控制器,為 很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。若采用單片機計時,利用它的一個16位定時器/計數(shù)器每50ms產(chǎn)生一個中斷信 號,中斷20次后產(chǎn)生一個秒信號,然后根據(jù)吋間進制關系依次向分、時、口、星期、 月、
10、年進位。這樣就實現(xiàn)了直接用單片機來實現(xiàn)電子萬年歷設計。用單片機來實現(xiàn)電子萬年歷設計,無須外接其他芯片,充分利用了單片機的資源。 但是精度不夠高,誤差較大,掉屯后丟失所有數(shù)據(jù),軟件編程較復雜。3. 2方案2基于ds1302的電子萬年歷設計在以單片機為核心構成的裝置中,經(jīng)常需要一個實時的時鐘和日歷,以便對一些 實時發(fā)生事件記錄時給予時標,實時時鐘芯片便可起到這一作用。過去多用并行接口 的時鐘芯片,如mc146818, ds12887等。它們己能完全滿足單片機系統(tǒng)對實時時鐘的要 求,但是這些芯片與單片機接口復雜、占用地址,數(shù)據(jù)總線接線多、芯片體積大占用 空間多、近年來串行接口的各種芯片在單片機系統(tǒng)中
11、應用愈來愈多,串行接口的實時 時鐘芯片也出現(xiàn)了不少,ds1302是一個綜合性能較好ii價格便宜的串行接口實時時鐘 芯片。利用單片機進行控制,采用ds1302作為實時時鐘芯片,其三線接口sclk、i/o、 /rst與單片機進行同步通信,外加掉電存儲電路、顯示電路、鍵盤電路,即構成一個 基本的電子萬年歷系統(tǒng),若還要添加其他功能,在這基礎上外擴電路即可。曲于在系統(tǒng)設計時,需要考慮以下幾點因索:功耗低、精確度高、軟件編程較簡 單,芯片的體積小、芯片成本低等,而ds1302芯片有上面所述的諸多優(yōu)點,所以本設 計采用方案2。4系統(tǒng)硬件電路的設計按照系統(tǒng)設計功能的要求,初步確定設計系統(tǒng)由主控模塊、時鐘模塊、
12、存儲模塊、 鍵盤接口模塊、顯示模塊和鬧鈴模塊共6個模塊組成,電路系統(tǒng)構成框圖如圖4-1 所示。主控芯片使用52系列at89s52單片機,時鐘芯片使用美國dallas公司推岀的 一種高性能、低功耗、帶ram的實時時鐘芯片ds1302,存儲模塊采用美國atmel公 司生產(chǎn)的低功耗cmos串行eeprom存儲芯片at24c02。ds1302作為主要計時芯片,可 以做到計時準確。更重要的是,ds1302可以在很小電流的后備(2.55.5v電源, 在2. 5v時耗電小于300na)下繼續(xù)計時,并可編程選擇多種充電電流來對后備電源 進行慢速充電,可以保證后備電源基本不耗電。圖4-1電了萬年丿力電路系統(tǒng)構成
13、框圖4. 1系統(tǒng)核心部分閃電存儲型器件at89s524. 1. 1 at89s52具有下列主要性能: 8kb可改編程序flash存儲器(可經(jīng)受1000次的寫入/擦除周期)全靜態(tài)工作:0hz24mhz三級程序存儲器保密 128x8字節(jié)內(nèi)部ram 32條可編程i/o線2個16位定時器/計數(shù)器 6個中斷源可編程串行通道片內(nèi)時鐘振蕩器4. 1.2 at89s52的引腳及功能at89s52單片機的管腳說明如圖4-2所示。2衛(wèi)j0tt13亙j41617is?920 p1.0vcc pl1po.o(ado)p1.2p().1(ad1)p1.3p0.2(ad2)p1.4po.3(ad3)p1.5p0.4(ad
14、4) p1.6p05(ad5)p1.7p0.6(ad6)-rstp0.7(ad7)-p3.0(rxd)ea/vpp p3.ktxd)ale/prog p32(int0)psen-p3.3(int1)p2.7(a15)p3.4(t0)p2.6(a14) p3.5(t1)p2.5(a13)| p3.6(wr)p2.4(a12) p3.7(rd)p2.3(ah)xtal2p2.2(a10)xtal1p2.1(a9) gndp2.0(a8)4039383736353433323?3029282726252423222?圖4-2 at89s52的管腳(1) 主耍電源引腳 vcc電源端 gd接地端(2)外
15、接晶體引腳xtal1和xtal2 xtal1接外部晶體的一個引腳。在單片機內(nèi)部,它是構成片內(nèi)振蕩器的反相 放大器的輸入端。當采用外部振蕩器時,該引腳接收振蕩器的信號,既把此信號宜接 接到內(nèi)部時鐘發(fā)生器的輸入端。 xtal2接外部晶體的另一個引腳。在單片機內(nèi)部,它是上述振蕩器的反相放 大器的輸出端。采用外部振蕩器時,此引腳應懸浮不連接。(3)控制或與其它屯源復用引腳rst、me/prog、/psen和/ea/vpp rst復位輸入端。當振蕩器運行時,在該引腳上出現(xiàn)兩個機器周期的高電平 將使單片機復位。 ale/prog當訪問外部存儲器ut, ale (地址鎖存允許)的輸出用于鎖存地址 的低位字節(jié)
16、。即使不訪問外部存儲器,ale端仍以不變的頻率(此頻率為振蕩器頻率 的1/6)周期性地出現(xiàn)正脈沖信號。因此,它可用作對外輸出的時鐘,或用于定時目 的。然而要注意的是:每當訪問外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。在對flash 存儲器編程期間,該引腳還用于輸入編程脈沖(/prog)。 /psen程序存儲允許(/psen)輸出是外部程序存儲器的讀選通信號。當 at89s52/lv52出外部程序存儲器取指令(或常數(shù))時,每個機器周期兩次/psen冇效(既輸出2個脈沖)。但在此期間內(nèi),每當訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen 信號將不出現(xiàn)。 /ea/vpp外部訪問允許端。要使cpu只訪問外
17、部程序存儲器(地址為0000h ffffh),則/ea端必須保持低電平(接到gnd端)。當/ea端保持高電平(接vss端) 時,cpu則執(zhí)行內(nèi)部程序存儲器中的程序。(4)輸入/輸出引腳 p0. 0p0. 7、p1.0pl. 7、p2.0p2. 7 和 p3. 0p3. 7 p0端口(p0.0p0.7) p0是一個8位漏極開路型雙向i/o端口。作為輸出 口用時,每位能以吸收電流的方式驅(qū)動8個ttl輸入,對端口寫1時,又可作高阻抗 輸入端用。 p1端口(p1.0pl. 7) p1是一個帶有內(nèi)部上拉電阻的8位雙向i/o端口。 p1的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個ttl輸入。對端口寫1時,
18、通過 內(nèi)部的上拉電阻把端口拉到高電位,這吋可用作輸入口。作輸入口時,因為冇內(nèi)部的 上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。 p2端口 (p2. 0p2. 7) p2是一個帶有內(nèi)部上拉電阻的8位雙向i/o端口。 p2的輸出緩沖器可驅(qū)動(吸收或輸出電流方式)4個ttl輸入。對端口寫1時,通過 內(nèi)部的上拉電阻把端口拉到高電位,這時可用作輸入口。p2作輸入口使用時,i大i為 有內(nèi)部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流。 p3端口(p3.0p3.7) p3 口管腳是8個帶內(nèi)部上拉電阻的雙向i/o 口,可 接收輸出4個ttl fl電流。當p3 口寫入后,它們被內(nèi)部上拉為高電平,并用
19、作 輸入。作為輸入,由于外部下拉為低電平,p3 口將輸出電流,這是由于上拉的緣故。p3 口也可作為at89s52的一些特殊功能,這些特殊功能見表4-1表4-1 p3端口的特殊功能端口引腳兼用功能p3.0rxd(串行輸入口)p3. 1txd(串行輸出口)p3.2/into(外部中斷0)p3. 3/inti(外部中斷1)p3.4to(定時器0的外部輸入)p3.5t1(定時器1的外部輸入)p3.6/wr(外部數(shù)據(jù)存儲器寫選通)卩3. 7/rd(外部數(shù)據(jù)存儲器讀選通)4.2 ds1302時鐘電路4. 2. 1 ds1302芯片介紹低功耗時鐘芯片ds1302可以對年、月、口、時、分、秒進行計時,且具有閏
20、年補 償?shù)榷喾N功能eds1302用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點的記錄上, 能實現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄。這種記錄對長時間的連續(xù)測控系統(tǒng)結(jié)果的 分析以及對異常數(shù)據(jù)出現(xiàn)的原因的查找有重要意義。采用ds1302作為記錄測控系統(tǒng)中的數(shù)據(jù)記錄,其軟碩件設計簡單,時間記錄準 確,既避免了連續(xù)記錄的大工作量,又避免了定時記錄的盲目性,給連續(xù)長時間的測 量、控制系統(tǒng)的正常運行及檢查都來了很大的方便,可廣泛應用于長時間連續(xù)的測控 系統(tǒng)中。在測量控制系統(tǒng)中,特別是長時間無人職守的測控系統(tǒng)中,經(jīng)常需要記錄某 些具冇特殊意義的數(shù)據(jù)及其出現(xiàn)的吋間。記錄及分析這些特殊意義的數(shù)據(jù),對測控系 統(tǒng)的性能
21、分析及正常運行具有重要的意義。傳統(tǒng)的數(shù)據(jù)記錄方式是隔時采樣或定時采 樣,沒有具體的時間記錄,因此只能記錄數(shù)據(jù)而無法準確記錄其出現(xiàn)的時間;若采用 單片機計時,一方面需要采用計數(shù)器,占用硬件資源,另一方面需要設置中斷、查詢 等,同樣耗費單片機的資源,而且某些測控系統(tǒng)可能不允許。而在系統(tǒng)中采用ds1302 則能很好地解決這個問題。(1)ds1302的性能特性實時時鐘,可對秒、分、時、口、周、月以及帶閏年補償?shù)哪赀M行計數(shù);用于高速數(shù)據(jù)暫存的31 x8位ram;最少引腳的串行t/0;-2.55.5v電壓工作范圍; 2. 5v時耗電小于300na;用于時鐘或ram數(shù)據(jù)讀/寫的單字節(jié)或多字節(jié)(脈沖方式)數(shù)據(jù)
22、傳送方式;簡單的3線接口;可選的慢速充電(至vcci)的能力。ds1302時鐘芯片包括實時時鐘/口歷和31字節(jié)的靜態(tài)ram。它經(jīng)過一個簡單的串 行接口與微處理器通信。實時時鐘/口歷提供秒、分、時、口、周、月和年等信息。 對于小于31天的月和月末的口期自動進行調(diào)整,還包括閏年校正的功能。時鐘的運 行可以采用24h或帶am (上午)/pm (下午)的12h格式。采用三線接口與cpu進行 同步通信,并叮采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或ram數(shù)據(jù)。ds1302有 主電源/后備電源雙電源引腳:vcc】在單電源與電池供電的系統(tǒng)中提供低電源,并提供 低功率的電池備份;vg在雙電源系統(tǒng)中提供主電源,在
23、這種運用方式中,vcci連接到 備份電源,以便在沒有主電源的情況下能保存時間信息以及數(shù)據(jù)。ds1302由vcci或 中較大者供電。當vcc2大于vcci+o. 2v時,vcc2給ds1302供電;當vcc2小于vcci時, ds1302 由 vca供電。(2)ds1302數(shù)據(jù)操作原理ds1302在任何數(shù)據(jù)傳送時必須先初始化,把rst腳置為高電平,然后把8位地 址和命令字裝入移位寄存器,數(shù)據(jù)在sclk的上升沿被輸入。無論是讀周期還是寫周 期,開始8位指定40個寄存器中哪個被訪問到。在開始8個時鐘周期,把命令字節(jié) 裝入移位寄存器之后,另外的時鐘周期在讀操作時輸出數(shù)據(jù),在寫操作時寫入數(shù)據(jù)。 時鐘脈沖
24、的個數(shù)在單字節(jié)方式下為8加8,在多字節(jié)方式下為8加字節(jié)數(shù),最大可達 248字節(jié)數(shù)。1vcc2vccl82xisclk73x2i/o64gnd5圖4-3 ds1302管腳圖如果在傳送過程中置rst為低電平,則會終止本次數(shù)據(jù)傳送,并且i/o引腳變?yōu)?高阻態(tài)。上電運行時,在vcc>=2. 5vz前,rst腳必須保持低電平。只有在sclk為低 電平時,才能將rst置為高電平。ds1302的管腳圖如圖4-3所示,內(nèi)部結(jié)構圖如圖 4-4所示,表4-2為各引腳的功能。ad bus圖4-4 ds1302內(nèi)部結(jié)構圖 表4-2 ds1302引腳功能表引腳號引腳名稱功能1vcc2主電源2, 3xi, x2振蕩
25、源,外接32768hz晶振4gnd地線5rst復位/片選線6i/o串行數(shù)據(jù)輸入/輸出端(雙向)7sclk串行數(shù)據(jù)輸入端8vcci后備電源ds1302的控制字如圖4-5所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1; 如果它為邏輯0,則不能把數(shù)據(jù)寫入到ds1302中。位6如果為0,則表示存取歷時 鐘數(shù)據(jù);為1表示存取ram數(shù)據(jù)。位51 (a4a0)指示操作單元的地址。最低有 效位(位0)如為0,表示要進行寫操作;為1表示進行讀操作。控制字節(jié)總是從最 低位開始輸入/輸;ii。h歷或ram寄存器規(guī)定為多字節(jié)(burst)方式。位6規(guī)定時鐘或ram,而位0規(guī)定 讀或?qū)憽T跁r鐘/h歷寄存器屮的地址931
26、或ram寄存器中的地址31不能存儲數(shù)據(jù)。sclkrsti/o在多字節(jié)方式中,讀或?qū)憦牡刂?的位0開始。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊? 個寄存器。但是,當以多字節(jié)方式寫ram時,為了傳送數(shù)據(jù)不必寫所有31字節(jié)。不 管是否寫了全部31字節(jié),所寫的每一字節(jié)都將傳送至ram。數(shù)據(jù)讀寫程序如圖4-6 所示。)01234567012”4567r/w" ao al a2 a3 a4”l 1data i/o byte data i/o byte圖4-6數(shù)據(jù)讀寫程序ds1302共有12個寄存器,其屮有7個寄存器與日歷、吋鐘相關,存放的數(shù)據(jù)位 為bcd碼形式,其日歷、吋間寄存器及其控制字見表4-3,其中
27、奇數(shù)為讀操作,偶數(shù) 為寫操作。表4-3 ds1302的日歷、吋鐘寄存器及其控制字寄存器名命令字取值范圍各位內(nèi)容寫操作讀操作76543210秒寄存器80h81h00-59ch10secsec分鐘寄存器82h83h00-59010mtxmin小時寄存器841185h01- 12 或00-2312/24010aphrhr口期寄存器861187h01-28, 29,30,3100iodatedate月份寄存器88h89h01-12000iommonth周f1寄存器8ah8bh01-0700000day年份寄存器8ch8dh()0 wj1oyearyear吋鐘暫停:秒寄存器的位7定義位時鐘暫停位。當它為
28、1時,ds1302停止振蕩, 進入低功耗的備份方式。通常在對ds1302進行寫操作吋(如進入?yún)肩娬{(diào)整程序),停 止振蕩。當它為0口寸,口寸鐘將開始啟動。am-pm/12-24 小吋方式:小吋寄存器的位7定義為12或24 小吋方式選擇 位。它為高電平吋,選擇12小時方式。在此方式下,位5是am/pm位,此位是高 電平時表示pm,低電平表示am,在24小時方式下,位5為第二個10小時位(20 23h)。4. 2.2 ds1302 的應用實時時鐘芯片ds1302采用串行數(shù)據(jù)傳輸,可為掉電保護電源提供可編程的充電 功能,也可以關閉充電功能,芯片采用32768hz晶振。要特別說明的是,備用電源 bt1町
29、以用電池或超級電容(10萬nf以上)。雖然ds1302在主電源掉電后耗電很小, 但如果要長時間保證時鐘正常,最好選用小型充電電池。如果斷電時間較短(幾小時 或幾天),可以用漏電較小的普通電解電容代替(loouf就可以保證1小時的正常走 時)9o ds1302在第一次加電后,需進行初始化操作。初始化后就可以按正常方法調(diào) 整時間及鬧鈴。ds1302的時鐘電路如圖4-3所示。+5vti_t"l2 yi 32768hz1 3t_r4圖4-7 ds1302吋鐘電路4.3存儲電路4. 3. 1 at24c02管腳介紹at24c02是美國atmel公司的低功耗cmos串行eeprom,它是內(nèi)含25
30、6x8位存 儲空間,具有工作電壓寬(2.55.5v)、擦寫次數(shù)多(大t 10000次)、寫入速度快 (小于10ms)等特點。at24c02的1、2、3腳是三條地址線,用于確定芯片的硬件地址。第8腳和第4 腳分別為正、負屯源。第5腳sda為串行數(shù)據(jù)輸入/輸出,數(shù)據(jù)通過這條雙向it總 線串行傳送。第6腳scl為串行吋鐘輸入線。sda和scl都需耍和正電源間各接一個 4. 7k的電阻上拉。c總線是一種用丁 it器件之間連接的二線制總線。它通過sda (串行數(shù)據(jù)線) 及scl (串行吋鐘線)兩根線在連到總線上的器件之間傳送信息,并根據(jù)地址識別每 個器件:不管是單片機、存儲器、lcd驅(qū)動器還是鍵盤接口。
31、4. 3. 2 at24c02 的特性(1)c總線的基木結(jié)構采用i2c總線標準的單片機或i2c器件,其內(nèi)部不僅有i2c接口電路,而月.將內(nèi) 部各單元電路按功能劃分為若干相對獨立的模塊,通過軟件尋址實現(xiàn)片選,減少了器 件片選線的連接。cpu不僅能通過指令將某個功能單元電路掛靠或摘離總線,還可對 該單元的工作狀況進行檢測,從而實現(xiàn)對硬件系統(tǒng)的既簡單又靈活的擴展與控制。(2) 雙向傳輸?shù)慕涌谔匦詡鹘y(tǒng)的單片機串行接口的發(fā)送和接收一般都各用一條線,而1光總線則根據(jù)器件 的功能通過軟件程序使其可工作于發(fā)送或接收方式。當某個器件向總線上發(fā)送信息 時,它就是發(fā)送器(也叫主器件),而當其從總線上接收信息時,又成
32、為接收器(也叫 從器件)。主器件用于啟動總線上傳送數(shù)據(jù)并產(chǎn)生時鐘以開放傳送的器件,此時任何 被尋址的器件均被認為是從器件。1光總線的控制完全由掛接在總線上的主器件送出 的地址和數(shù)據(jù)決定。總線上主和從(即發(fā)送和接收)的關系不是一成不變的,而是取決于此時數(shù)據(jù)傳送 的方向。sda和scl均為雙向i/o線,通過上拉電阻接正電源。當總線空閑時,兩根 線都是高電平。連接總線的器件的輸出級必須是集電極或漏極開路,以具有線“與” 功能。1光總線的數(shù)據(jù)傳送速率在標準工作方式下為100kbit/s,在快速方式下,最 高傳送速率口j達400kbit/so(3) it總線上的時鐘信號在i2c總線上傳送信息時的時鐘同步
33、信號是由掛接在scl時鐘線上的所有器件的 邏輯“與”完成的。scl線上由高電平到低電平的跳變將影響到這些器件,一旦某個 器件的時鐘信號下跳為低電平,將使scl線一直保持低電平,使scl線上的所有器件 開始低電平期。此時,低電平周期短的器件的時鐘由低至高的跳變并不能影響scl 線的狀態(tài),于是這些器件將進入高屯平等待的狀態(tài)。當所有器件的時鐘信號都上跳為高電平時,低電平期結(jié)束,scl線被釋放返冋高 電平,即所有的器件都同時開始它們的高電平期。其后,第一個結(jié)束高電平期的器件 又將scl線拉成低屯平。這樣就在scl線上產(chǎn)生一個同步時鐘??梢姡瑫r鐘低電平時 間由時鐘低電平期最長的器件確定,而時鐘高電平時間
34、由時鐘高電平期最短的器件確 定。(4) 數(shù)據(jù)的傳送在數(shù)據(jù)傳送過程中,必須確認數(shù)據(jù)傳送的開始和結(jié)束。當時鐘線scl為高電平時, 數(shù)據(jù)線sda由高電平跳變?yōu)榈碗娖蕉x為“開始”信號;當scl線為高電平時,sda 線發(fā)生低屯平到高屯平的跳變?yōu)椤敖Y(jié)束”信號。開始和結(jié)束信號都是曲主器件產(chǎn)生。 在開始信號以后,總線即被認為處于忙狀態(tài);在結(jié)束信號以后的一段時間內(nèi),總線被 認為是空閑的。c總線的數(shù)據(jù)傳送格式是:在rc總線開始信號后,送出的第一個字節(jié)數(shù)據(jù)是 用來選擇從器件地址的,其中前7位為地址碼,第8位為方向位(r/w)。方向位為“0” 表示發(fā)送,即主器件把信息寫到所選擇的從器件;方向位為“1”表示主器件將從
35、從 器件讀信息。開始信號后,系統(tǒng)中的各個器件將自己的地址和主器件送到總線上的地 址進行比較,如果與主器件發(fā)送到總線上的地址一致,則該器件即為被主器件尋址的 器件,其接收信息還是發(fā)送信息則由第8位(r/w)確定。在fc總線上每次傳送的數(shù)據(jù)字節(jié)數(shù)不限,但每一個字節(jié)必須為8位,而ii每個 傳送的字節(jié)后面必須跟一個認可位(第9位),也叫應答位(ack)o每次都是先傳最 高位,通常從器件在接收到每個字節(jié)后都會做出響應,即釋放scl線返回高電平,準 備接收下一個數(shù)據(jù)字節(jié),主器件可繼續(xù)傳送。如果從器件正在處理一個實時事件而不 能接收數(shù)據(jù)時(例如正在處理一個內(nèi)部中斷,在這個中斷處理完之前就不能接收1光 總線上
36、的數(shù)據(jù)字節(jié)),可以使吋鐘scl線保持低電平,從器件必須使sda保持高電平, 此時主器件產(chǎn)生1個結(jié)束信號,使傳送異常結(jié)束,迫使主器件處于等待狀態(tài)。當從器 件處理完畢時將釋放scl線,主器件繼續(xù)傳送。當主器件發(fā)送完一個字節(jié)的數(shù)據(jù)后,接著發(fā)出對應于scl線上的一個吋鐘(ack) 認叮位,在此時鐘內(nèi)主器件釋放sda線,一個字節(jié)傳送結(jié)束,而從器件的響應信號將 sda線拉成低電平,使sda在該時鐘的高電平期間為穩(wěn)定的低電平。從器件的響應信 號結(jié)束后,sda線返回高電平,進入下一個傳送周期。(5)總線競爭的仲裁總線上叮能掛接有多個器件,有時會發(fā)生兩個或多個主器件同時想占用總線的情 況。例如,多單片機系統(tǒng)中,
37、可能在某一時刻冇兩個單片機要同時向總線發(fā)送數(shù)據(jù), 這種情況叫做總線競爭。i光總線具有多主控能力,可以對發(fā)生在sda線上的總線競 爭進行仲裁,其仲裁原則是這樣的:當多個主器件同時想占用總線時,如果某個主器 件發(fā)送高電平,而另一個主器件發(fā)送低電平,則發(fā)送電平與此時sda總線電平不符的 那個器件將自動關閉其輸出級。總線競爭的仲裁是在兩個層次上進行的。首先是地址 位的比較,如果主器件尋址同一個從器件,則進入數(shù)據(jù)位的比較,從而確保了競爭仲 裁的可靠性。出于是利用c總線上的信息進行仲裁,因此不會造成信息的丟失。24c02與單片機的接口非常簡單,如圖4-8所示。ao, al, a2為器件地址線,wp 為寫保
38、護引腳,scl, sda為二線串行接口,符合1光總線協(xié)議。1a0vcc .2alwp ,3a2scl,4gndsdatat24c02+5v8 tr1r274.7 <c4.7k6tp35<p3.0圖4-8 24c02存儲電路4. 4液晶顯示電路顯示器部分是由1id61202液晶顯示控制驅(qū)動器和11y12864液晶顯示器組成的,下 面我們對其分別進行介紹。4. 4. 1液晶顯示控制驅(qū)動器hd61202的特點hd61202液晶顯示控制驅(qū)動器是一種帶有驅(qū)動輸出的圖形液晶顯示控制器,它可 直接與8位微處理器相連,它可與hd61203配合對液晶屏進行行、列驅(qū)動。hd61202 是一種帶有列驅(qū)動
39、輸出的液晶顯示控制器,它可與行驅(qū)動器iid61203配合使用,組成 液晶顯示驅(qū)動控制系統(tǒng)腸。(1) 內(nèi)藏64x64=4096位顯示ram, ram中每位數(shù)據(jù)對應lcd屏上一個點的亮、暗狀 態(tài);(2) iid61202是列驅(qū)動器,具有64路列驅(qū)動輸出;(3) hd61202讀、寫操作吋序與68系列微處理器相符,因此它口j直接與68系列微處 理器接口相連;(4) iid61202 的占空比為 1/321/64。4.4. 2液晶顯示控制驅(qū)動器hd61202的引腳功能iid61202的引腳功能如下表4-4所示。表4-4 iid61202的引腳功能引腳符號狀態(tài)引腳名稱功能cs1,cs2,cs3輸入芯片片
40、選端cs1和cs2低電平選通,cs3高電平選通。e輸入讀寫使能信號在e下降沿,數(shù)據(jù)被鎖存(寫)入hd61202;在e高電平期間,數(shù)據(jù)被讀出r/w輸入讀寫選擇信號r/w=l為讀選通,r/w=0為寫選通rs輸入數(shù)據(jù)、指令選擇信號rs=1為數(shù)據(jù)操作rs=0為寫指令或讀狀態(tài)db0-db7三態(tài)數(shù)據(jù)總線rst輸入復位信號復位信號有效時,關閉液晶顯示,使顯示 起始行為0, rst可跟mpu相連,由mpu 控制;也可直接接vdd,使之不起作川。4. 4. 3液晶顯示控制驅(qū)動器hd61202的指令系統(tǒng)hd61202的指令系統(tǒng)比較簡單,總共只有七種?,F(xiàn)分別介紹如下。顯示開/關指令r/wrsdb7db6 db5 d
41、b4 db3 db2 db1dbo0000 111111/0當db0=l時,lcd顯示ram中的內(nèi)容;db0=0時,關閉顯示。顯示起始行(row)設置指令r/wrsdb7 db6 db5 db4 db3 db2 db1 dbo0011顯示起始行(0-63)該指令設置了對應液晶屏最上一行的顯示ram的行號,有規(guī)律的改變顯示起始行,可以使lcd實現(xiàn)顯示滾屏的效果。 頁(page)置指令r/wrsdb7db6db5db4db3db2 db1 dbo0010111頁號(0-7)顯示ram共64行,分8頁,每頁8行。 列地址(y address)設置指令r/wrsdb7db6db5 db4 db3 db
42、2 db1 dbo0001顯示列地址(0-63)設置了頁地址和列地址,就唯一確定了顯示ram中的一個單元,這樣mpu就可以 用讀、寫指令讀出該單元中的內(nèi)容或向該單元寫進一個字節(jié)數(shù)據(jù)。讀狀態(tài)指令r/w rsdb7 db6 db5db4 db3 db2 db1 dbo1 0busy 0 on/off rest 0000該指令用來查詢hd61202的狀態(tài),各參量含義如下:busy:1-內(nèi)部在工作0-正常狀態(tài)on/off:1-顯示關閉0-顯示打開rest:1-復位狀態(tài)0-正常狀態(tài)在busy和rest狀態(tài)時,除讀狀態(tài)指令外,其它指令均不對1id61202產(chǎn)生作用。 在對1id61202操作之前要查詢bu
43、sy狀態(tài),以確定是否可以對1id61202進行操作。(6)寫數(shù)據(jù)指令r/wrsdb7 db6 db5 db4db3db2 db1 dbo01寫數(shù)據(jù)(7)讀數(shù)據(jù)指令r/wrsdb7 db6dbs db4db3db2db1 dbo11讀顯數(shù)據(jù)讀、寫數(shù)據(jù)指令每執(zhí)行完一次讀、寫操作,列地址就自動增一,必須注意的是, 進行讀操作之前,必須冇一次空讀操作,緊接著再讀才會讀岀所要讀的單元中的數(shù)據(jù)。4. 4. 4 hy-12864的電路結(jié)構特點11y-12864是使用iid61202作為列驅(qū)動器,同時使用iid61203作為行驅(qū)動器的液 晶模塊。出于hd61203不與mpu發(fā)生聯(lián)系,只要提供屯源就能產(chǎn)生行驅(qū)動
44、信號和各種 同步信號,比較簡單,因此這就不做介紹了。下面主要介紹以下i1y-12864這個模塊的邏輯電路圖oily-12864共有兩片iid61202 和一片hd61203,如下圖4-9所示。db7osc=qtdel bkvssvddvo rs r/we dbo db1 db7 cs1 cs2 res vee bl+ bl-圖4-9 iiy-12864的邏輯電路圖在hy-12864中,兩片hd61202的adc均接高電平,rst也接高電平,這樣在使hy-12864時就不必再考慮這兩個引腳的作用。/csa跟hd61202 (1)的/cs1相連; /csb 跟 iid61202 (2)的 cs1
45、相連,因此/csa、/csb 選通組合信號為/csa, /csb=o1 選通(1), /csa, /csb二10選通(2)o對于hy-12864,只要供給vdd、vss和v0即可, iid61202和hd61203所需的電源將由模塊內(nèi)部電路在vdd和v0、vss的作用下產(chǎn)生。 4. 4.5 hy-12864 的應用以下內(nèi)容為以單片機8031為例機的接口電路,電路原理圖如圖4-10所示??刂?電路為直接訪問方式的接口電路。mpu12864最803119264接口圖4-10 8031與液品的接口屯路根據(jù)以上電路原理圖小液晶的各引腳與單片機的接法,可得木設計的液晶模塊電路如圖4-11所示。vss接地
46、;數(shù)字電源vdd接+ 5v;對比度控制電壓v0接電位器, 可通過調(diào)節(jié)電位器調(diào)整液晶亮度;數(shù)據(jù)、指令選擇信號rs接單片機p2.0 口;讀寫選 擇信號r/w接單片機p2.1 口;單片機讀、寫選通信號/rd、/wr通過與非門接液晶的 讀寫使能信號e; dbodb7分別接單片機的p0. 0p0. 7 口;芯片1、芯片2的片選 分別接單片機的p2.2、p2.3 口;復位端rst、背光正電源leda接+ 5v;液晶驅(qū)動電壓vee、背光負電源ledk接地。4.5鍵盤電路木設計共采用按鍵3個,分別與單片機的pl. 7、pl. 6、pl. 5 m相連,分別對應光標移動,吋間、日期調(diào)整,退出、鬧鈴開關鍵的功能。與
47、單片機的接法可參照附錄1電子萬年歷設計電路原理圖。4. 6鬧鈴電路當鬧鈴顯示“關”時,鬧鈴不起作用;當鬧鈴顯示“開”吋,設定鬧鈴時間,鬧 鈴吋間只可設定吋和分,當前吋間不斷與設定的鬧鈴吋間比較,不相等時不產(chǎn)生任何 現(xiàn)象,一旦相等,p3.5輸出一個高電平使三極管導通,從而使蜂鳴器工作,鬧鈴起作用。鬧鈴電路如圖4-12所示。5系統(tǒng)程序的設計5.1陽歷程序的設計因為使用了時鐘芯片ds1302,陽歷程序只需從ds1302各寄存器中讀出年、周、 月、口、小時、分、秒等數(shù)據(jù),再處理即可。在首次對ds1302進行操作之前,必 須對它進行初始化,然后從ds1302中讀岀數(shù)據(jù),再經(jīng)過處理后,送給顯示緩沖單元。
48、陽歷程序流程圖見圖5-1所示。圖5-1陽歷程序流程圖5.2時間調(diào)整程序設計調(diào)整時間用三個調(diào)整按鈕,一個作為移位、控制用,一個作為加用,一個作為退 出調(diào)整和鬧鈴開關用。分別定義為控制按鈕、加按鈕、退出按鈕。在調(diào)整時間過程中, 要調(diào)整的位與別的位應該有區(qū)別,所以増加了閃爍功能,即調(diào)整的位一直在閃爍,直 到調(diào)整下一位。閃爍原理就是,讓要調(diào)整的一位每隔一定的時間熄滅一次,例如間隔 時間為50mso利用定時器計時,當達到50ms溢出時,就送給該位熄滅符,在下一次 溢出時,再送正常顯示的值,不斷交替,直到調(diào)整該位結(jié)束。此時送正常顯示值給該 位,再進入下一位調(diào)整閃爍程序。時間調(diào)整程序流程圖如圖5-2所示。圖
49、5-2時間調(diào)整程序流程圖5.3陰歷程序設計陰歷程序的實現(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é)和陽歷
50、元旦相差的天數(shù)也用一個字節(jié)表示??偣灿?字節(jié)就可以存儲 一年中任何一天陽歷和陰歷的對應關系的有關數(shù)據(jù),例如2004年的陰歷和陽歷對應 關系如表5-1所示。表5-12004年的陰歷和陽歷對應關系表月份123456789101112閏2月人小小大大大小大小大小大小大小二進制1000101010101犬數(shù)293030302930293029302930十六進制4252212004年的春節(jié)和元旦差21天,這樣2004年的信息表示為:21, 4211, 5211, 2111。 其中表示12個月大小信息的字節(jié),第4位和第7位不用,第1個字節(jié)為十進制,其 它的都為十六進制。按此方法,50年的陽歷和陰歷對應關
51、系表總共使用200字節(jié)。有了算法和數(shù)據(jù)以后,就可以設計軟件了。先要根據(jù)當前陽歷的期,算出陽歷 為該年中的第幾天。圖5-3為計算陽歷中任何一天在該年中為第幾天的程序流程圖。圖5-3計算陽歷天數(shù)程序流程圖計算出當前陽歷口期為該年中的第幾天后,再減去陽歷該年春節(jié)和元旦的口差, 如果夠減,則相減的結(jié)果就是陰歷在該年中的總第幾天了。根據(jù)該數(shù)據(jù)就可以推算出 具體的當前陰歷口期;如果不夠減,則表示當前陰歷年為陽歷年的前一年。這種情況 下,根據(jù)實際,當前陰歷日期會處于陰歷11月或12月,此時春節(jié)和元旦的差減去 前面計算出的當前陽歷口期在陽歷年為第幾天的數(shù)據(jù),其結(jié)果表示當前陰歷口期離春 節(jié)的天數(shù)。計算出的陽歷天
52、數(shù)為該年的第幾天,存放在寄存器r2和r3中。計算出天 數(shù)后,如果大于#ffii,則把#ffii存放在r2中,余值存放在r3中。也就是說在用寄 存器r2和r3表示的天數(shù)信息中,r2充當主寄存器,數(shù)據(jù)先存滿r2,再存r3。在整 個轉(zhuǎn)換程序中,這里面的數(shù)據(jù)不能被覆蓋。計算出陽歷總天數(shù)后,就可以根據(jù)它來推算陰歷口期。推算方法是,先用總天數(shù) 減去春節(jié)和元旦的口差,如果結(jié)果為1,則該天正好是春節(jié)(因為春節(jié)在元旦之后, 在計算春節(jié)和元旦的口差時,假設元旦為0天,春節(jié)為門天,則口差為嘰 而前面計 算的陽歷總天數(shù)是該天在該年中的第幾天,是以元旦為1而得到的,與計算春節(jié)和元 旦口差的這樣方法相比,其數(shù)值少了 1,
53、所以要在原來本應該以0作為該天就是春節(jié) 的依據(jù)的基礎上加1,所以以1作為該天是春節(jié)的標志);如果結(jié)果小于1,則陰歷應 該是陽歷的前一年;如果結(jié)果大于1,說明陽歷和陰歷為同一年。再根據(jù)查表所得的 該年的陰歷的閏年和大小月的信息,就可以推算出該天的陰歷日期了。圖5-4為由總 天數(shù)推算出陰歷口期的程序流程圖。圖5-4推算陰歷日期的程序流程圖6測試結(jié)果設計完成后,給系統(tǒng)上電,液晶顯示屏顯示結(jié)果如圖6-1所示。犬津工程師范學院通信0202班劉敏畢業(yè)設計solar 2()00/01/01lunar 2095/11/2500:00:00 sun鬧鈴關閏月 00:00圖6-1液品顯示屏的顯示結(jié)果調(diào)節(jié)10k電位
54、器r4可調(diào)整液晶顯示屏的亮度。調(diào)整到合適亮度后,按控制按鈕, 光標會從陽歷年位開始閃爍,進入設定調(diào)整狀態(tài)。此時按加按鈕,當前數(shù)字就可改變。 按一次,數(shù)字加1;若長按,則數(shù)字連續(xù)加。此時,調(diào)整的位一直在閃爍,直到再次 按光標移動控制位,光標跳到下一位閃爍。調(diào)整順序依次為:陽歷年、丿、h,陰歷 年、丿j、r,時、分、秒,鬧鈴時、分。當全部參數(shù)調(diào)整完畢后,按退岀按鈕,光標 停止閃爍,退岀設定調(diào)整狀態(tài);當再次按下此按鈕,鬧鈴顯示“開”;當?shù)谌伟聪?此鍵,鬧鈴顯示“關”。若當前月為閏月,則屏幕左下角會顯示“閏丿j”;若不是閏月, 則無顯示。調(diào)試分為碩件調(diào)試和軟件調(diào)試。碩件調(diào)試主要是檢測碩件電路是否冇短路、斷路、 虛焊等。ds1302的硬件電路很簡單,只通過3根線與單片機相連,很容易檢測,主 要是檢查其引腳,如晶振和電源等是否接好。另外可以通過軟件來調(diào)試硬件,如為了 測試顯示電路連接是否正確,可以編寫一個簡單的顯示程序來測試它。接下來可進行 軟件調(diào)試,可以編寫只含ds1302的計時和讀寫程序、顯示程序,測試ds1302是否正 常工作。最后調(diào)試時間調(diào)整程序和陰歷推算程序。計時器最關鍵的是計時的精度
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 護理年終考試練習試題及答案
- 嵌入式系統(tǒng)安全性問題試題及答案
- 未成年人保護宣傳月總結(jié)(19篇)
- 海外旅游行程及保險服務合同
- 家裝行業(yè)試題及答案
- 銷售分銷網(wǎng)絡管理規(guī)范合同書
- 服裝定制行業(yè)尺寸誤差免責合同
- 當陽話考試題及答案
- 行政組織理論的研究熱點試題及答案
- 量身定制2025年信息系統(tǒng)監(jiān)理師考試試題及答案
- 2025年浙江省湖州市吳興區(qū)中考數(shù)學二模試卷
- 2021城市運行管理服務平臺數(shù)據(jù)標準
- 消防車駕駛員基本素質(zhì)、車輛行車安全
- 2025湘美版(2024)小學美術一年級下冊教學設計(附目錄)
- 統(tǒng)編版(2024)語文一年級下冊第七單元綜合素質(zhì)測評A卷(含答案)
- 智慧樹知到《走進故宮(故宮研究院)》期末考試答案
- 杭州市蕭山區(qū)部分校教科版六年級下冊期末考試科學試卷(解析版)
- 2024-2025學年統(tǒng)編版道德與法治七年級下冊知識點提綱
- 城市規(guī)劃設計合作框架協(xié)議
- 臨床科研專病數(shù)據(jù)庫
- 商業(yè)球房運營方案
評論
0/150
提交評論