




已閱讀5頁(yè),還剩64頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
唐 山 學(xué) 院畢 業(yè) 設(shè) 計(jì)設(shè)計(jì)題目:多功能液晶顯示數(shù)字時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn) 系 別: 班 級(jí): 姓 名: 指 導(dǎo) 教 師: 2010年5月30 日多功能液晶顯示數(shù)字時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)摘 要數(shù)字時(shí)鐘主要是利用電子技術(shù)將時(shí)鐘電子化、數(shù)字化,擁有時(shí)鐘精確、體積小、界面友好、可擴(kuò)展性能強(qiáng)等特點(diǎn),被廣泛應(yīng)用于生活和工作當(dāng)中。另外,在生活和工農(nóng)業(yè)生產(chǎn)中,也常常需要溫度,這就需要數(shù)字時(shí)鐘具有多功能性。本設(shè)計(jì)主要為實(shí)現(xiàn)一款可正常顯示時(shí)鐘、日歷、帶有定時(shí)鬧鐘的多功能數(shù)字時(shí)鐘。本設(shè)計(jì)對(duì)當(dāng)前數(shù)字時(shí)鐘開(kāi)發(fā)手段進(jìn)行了比較和分析,最終確定了采用單片機(jī)技術(shù)實(shí)現(xiàn)多功能數(shù)字時(shí)鐘。本設(shè)計(jì)采用STC89C52RC單片機(jī)芯片作為中央處理器,外接DS1302時(shí)鐘芯片提供時(shí)鐘日歷信息,星期通過(guò)編程計(jì)算自動(dòng)生成,并利用液晶顯示屏LCD1602來(lái)顯示時(shí)鐘、日歷、星期、鬧鐘等信息,通過(guò)按鍵來(lái)設(shè)置或校準(zhǔn)相關(guān)信息,并通過(guò)+5V電源為此系統(tǒng)供電,測(cè)試電路完成所有功能后制成樣機(jī)。這種實(shí)現(xiàn)方法的優(yōu)點(diǎn)是電路簡(jiǎn)單,性能可靠,實(shí)時(shí)性好,操作簡(jiǎn)單,編程容易。該數(shù)字時(shí)鐘可以應(yīng)用于一般的生活和工作中,也可通過(guò)改裝,提高性能,增加新功能,從而給人們的生活和工作帶來(lái)更多的方便。關(guān)鍵詞:數(shù)字時(shí)鐘 單片機(jī)系統(tǒng) STC89C52RC DS1302 LCD1602Design and Implementation of Multi-function LCD Digital ClockAbstract Digital clock is using electronic technology to clock electronic, digital, with the clock precision, small size and friendly interface, scalability and strong performance characteristics, is widely used to live and work among. In addition, living and industrial and agricultural production, are often required temperature, which requires digital clock with versatility. The key for the realization of a design can be displayed properly clock, calendar, alarm clock with multi-functional electronic time clock. This article discusses the development of digital clock means were compared and analyzed finally determine the function of using SCM technology digital clock. This design uses STC89C52RC single chip as the CPU, external clock DS1302 clock chip to provide calendar information, automatically generated by programming a week, and use LCD1602 LCD displays clock, calendar, week, alarm clock and other information, through the button to set or calibration information, and through the +5 V power supply for this system. When all of the features produced after the completion of prototype .This method provides the advantage of simple circuit,reliable performance, real-time, simple operation, easy programming. The digital clock can be applied to general life and work, can also be modified to improve performance,add new features to peoples lives and work to bring more convenience. Keywords: Digital Clock ;Microcomputer System; STC89C52RC; DS1302 ;LCD1602 目 錄1引 言12基于單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)22.1主要芯片選擇22.1.1 STC89C52RC單片機(jī)簡(jiǎn)介22.1.2 STC89C52RC引腳簡(jiǎn)介32.2時(shí)鐘芯片DS130242.2.1 DS1302簡(jiǎn)介52.2.2 DS1302引腳說(shuō)明52.2.3 DS1302的片內(nèi)寄存器72.3 LCD液晶顯示器82.3.1液晶顯示器LCD1602簡(jiǎn)介82.3.2 LCD的基本指令93數(shù)字時(shí)鐘硬件電路設(shè)計(jì)113.1時(shí)鐘電路設(shè)計(jì)113.2顯示電路113.3按鍵電路設(shè)計(jì)123.4鬧鈴電路設(shè)計(jì)133.5復(fù)位電路設(shè)計(jì)143.6電源的設(shè)計(jì)143.6.1單相橋式整流電路介紹143.6.2變壓器和整流二極管的選擇153.6.3濾波電路153.6.4濾波電容的選擇163.6.5穩(wěn)壓電路164系統(tǒng)的軟件設(shè)計(jì)174.1 DS1302時(shí)鐘模塊174.1.1宏定義DS1302中寄存器地址174.1.2時(shí)鐘芯片的單字節(jié)傳送方式174.1.3是否寫保護(hù)寄存器操作184.1.4時(shí)鐘芯片的初始化184.1.5時(shí)鐘停止/啟動(dòng)走時(shí)184.1.6數(shù)據(jù)信息的顯示194.2 LCD顯示模塊部分194.2.1基本操作程序194.2.2 RAM地址映射圖194.2.3狀態(tài)字說(shuō)明204.2.4數(shù)據(jù)指針設(shè)置204.2.5顯示模式設(shè)置204.2.6初始化設(shè)置214.2.7其他設(shè)置214.3主程序模塊214.3.1星期采用的算法214.3.2中斷聲明214.3.3校準(zhǔn)時(shí)間函數(shù)224.3.4設(shè)置鬧鐘函數(shù)224.3.5 LCD顯示程序設(shè)計(jì)224.3.6主函數(shù)225系統(tǒng)調(diào)試265.1軟件調(diào)試265.1.1 Proteus 簡(jiǎn)介265.1.2 Keil 簡(jiǎn)介265.1.3 Proteus與Keil連接調(diào)試275.2硬件調(diào)試295.2.1焊接的注意事項(xiàng)295.2.2單片機(jī)電路調(diào)試295.2.3顯示電路的調(diào)試295.2.4 DS1302電路調(diào)試305.2.5按鍵電路調(diào)試306結(jié)論31謝辭32參考文獻(xiàn)33附錄一34附錄二35附錄三36外文資料56唐 山 學(xué) 院 畢 業(yè) 設(shè) 計(jì)1引 言隨著半導(dǎo)體技術(shù)的飛速發(fā)展,以及移動(dòng)通信、網(wǎng)絡(luò)技術(shù)、多媒體技術(shù)在嵌入式系統(tǒng)設(shè)計(jì)中的應(yīng)用,單片機(jī)從4位、8位、16位到32位,其發(fā)展歷程一直受到廣大電子愛(ài)好者的極大關(guān)注。單片機(jī)功能越來(lái)越強(qiáng)大,價(jià)格卻不斷下降的優(yōu)勢(shì)無(wú)疑成為嵌入式系統(tǒng)方案設(shè)計(jì)的首選,同時(shí)單片機(jī)應(yīng)用領(lǐng)域的擴(kuò)大也使得更多人加入到基于單片機(jī)系統(tǒng)的開(kāi)發(fā)行列中,推動(dòng)著單片機(jī)技術(shù)的創(chuàng)新進(jìn)步。而數(shù)字鐘正是一種用數(shù)字電路技術(shù)與單片機(jī)技術(shù)實(shí)現(xiàn)計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無(wú)機(jī)械裝置,具有更更長(zhǎng)的使用壽命,因此得到了廣泛的使用1。數(shù)字時(shí)鐘是指以微處理器為核心,充分利用數(shù)字技術(shù)和軟件技術(shù),與各類脈沖信號(hào)的傳感器配合,記錄時(shí)間等的智能儀表。數(shù)字時(shí)鐘是日常生活、工業(yè)生產(chǎn)中常用的一種工具,社會(huì)擁有量和需求量都很大。功能上要求能夠完成準(zhǔn)確走時(shí)、調(diào)時(shí),性能上要求抗干擾能力強(qiáng),穩(wěn)定可靠,同時(shí)在價(jià)格上具備競(jìng)爭(zhēng)力2。結(jié)合以上幾點(diǎn),設(shè)計(jì)了一款數(shù)字時(shí)鐘,達(dá)到了可靠和經(jīng)濟(jì)的雙重要求,同時(shí)易于與其它產(chǎn)品結(jié)合使用,是非常必要的。本設(shè)計(jì)主要著眼于數(shù)字鐘的可靠性與實(shí)用性,把工業(yè)用單片機(jī)技術(shù)、與微型機(jī)技術(shù)應(yīng)該在數(shù)字時(shí)鐘設(shè)計(jì)中,開(kāi)辟了單片機(jī)技術(shù)與現(xiàn)代計(jì)時(shí)方法相結(jié)合的一條新路。該數(shù)字時(shí)鐘設(shè)計(jì)工作原理為:?jiǎn)纹瑱C(jī)上電后,從芯片DS1302上講讀取時(shí)間數(shù)據(jù),計(jì)時(shí)開(kāi)始。通過(guò)按鈕進(jìn)行調(diào)時(shí),上電復(fù)位進(jìn)行校正時(shí)間,通過(guò)LCD顯示其值。日常生活中對(duì)單片機(jī)數(shù)字鐘的問(wèn)題要求越來(lái)越高,本設(shè)計(jì)僅針對(duì)簡(jiǎn)單的數(shù)字鐘進(jìn)行研究,能夠?qū)崿F(xiàn)數(shù)字時(shí)鐘的正確走時(shí)。2基于單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)本系統(tǒng)由控制時(shí)鐘芯片DS1302、STC89C52RC單片機(jī)和字符點(diǎn)陣型LCD1602液晶顯示器等器件構(gòu)成。用DS1302產(chǎn)生時(shí)鐘信號(hào),再由單片機(jī)負(fù)責(zé)接收并且對(duì)其進(jìn)行控制,然后通過(guò)編寫程序?qū)崿F(xiàn)具體的功能,如年、月、日、星期、時(shí)、分、秒,以及時(shí)間的校準(zhǔn)、鬧鐘的設(shè)置等。再通過(guò)編寫液晶器件的驅(qū)動(dòng)程序,使其信息顯示在LCD1602液晶顯示器上, 最后測(cè)試電路完成所有功能后制成樣機(jī),系統(tǒng)方框圖如圖2-1所示。圖2-1系統(tǒng)方框圖單片機(jī)時(shí)鐘芯片 電源 鍵盤LCD顯示鍵盤是為了完成時(shí)鐘、日歷的校對(duì)和日歷的顯示功能。由于此電子時(shí)鐘要求具有鬧鈴功能,所以設(shè)計(jì)有鬧鈴電路,進(jìn)行聲音響鈴。整個(gè)電路使用了兩種電源,+5V電源將為整個(gè)電路供電。而+3V電源僅作為DS1302的備用電源。當(dāng)+5V電源被切斷后,DS1302啟用+3V電源,可以保持DS1302繼續(xù)工作。當(dāng)+5V電源恢復(fù)供電,LCD依舊顯示當(dāng)前時(shí)間,而不會(huì)因?yàn)閿嚯娛瓜到y(tǒng)復(fù)位到初始化時(shí)間,避免了重新校時(shí)的麻煩。2.1主要芯片選擇2.1.1 STC89C52RC單片機(jī)簡(jiǎn)介STC系列單片機(jī)是由STMicroelectronics 公司生產(chǎn),并有宏晶公司做大陸代理的。STMicroelectronics即意法半導(dǎo)體公司是1987年6月在意大利的SGS微電子公司和法國(guó)的湯姆遜微電子公司合并后產(chǎn)生的。1998年5月,公司由原來(lái)的SGS湯姆遜(SGSTHOMSON)微電子公司改名為意法半導(dǎo)體公司(STMicroelectronics),簡(jiǎn)稱ST公司3。2.1.2 STC89C52RC引腳簡(jiǎn)介STC89C52RC可以代替AT89C51,功能更強(qiáng),速度更快,壽命更長(zhǎng),價(jià)格更低。將AT89C51中的程序直接燒錄到STC89C52RC中后,STC89C52RC就可以代替AT89C51直接工作(一般都不需要做任何改動(dòng)即可正常工作)。STC89C52RC的內(nèi)核和AT51系列單片機(jī)一樣,故引腳相同,外形及引腳排列也相同。管腳說(shuō)明:VCC供電電壓。GND接地。P0口8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口帶內(nèi)部上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2口帶內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。在編程/校驗(yàn)時(shí),P3口可接收某些控制信號(hào)。具體的P3口功能,如表2-1所示。表2-1 P3口的特殊功能引腳 替代功能 說(shuō)明P3.0 RXD 串行數(shù)據(jù)接收P3.1 TXD 串行數(shù)據(jù)發(fā)送P3.2 INT0 外部中斷0申請(qǐng)P3.3 INT1 外部中斷1申請(qǐng) P3.4 T0 定時(shí)器0外部事件計(jì)數(shù)輸入 P3.5 T1 定時(shí)器1外部事件計(jì)數(shù)輸入 P3.6 WR 外部RAM寫選通 P3.7 RD 外部RAM讀選通RST復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。/PSEN外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。/EA/VPP當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000HFFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)5。XTAL1反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2來(lái)自反向振蕩器的輸出。2.2時(shí)鐘芯片DS1302在數(shù)字時(shí)鐘設(shè)計(jì)中,常用的實(shí)時(shí)時(shí)鐘芯片有DS12887、DS1216、DS1643、DS1302。每種芯片的主要時(shí)鐘功能基本相同,只是在引腳數(shù)量、備用電池的安裝方式、計(jì)時(shí)精度和擴(kuò)展功能等方面略有不同。DS12887與DS1216芯片都有內(nèi)嵌式鋰電池作為備用電池; X1203引腳少,沒(méi)有嵌入式鋰電池,跟DS1302芯片功能相似,只是相比較之下,X1203與AT89S51搭配使用時(shí)占用I/O口較多。DS1643為帶有全功能實(shí)時(shí)時(shí)鐘的8K8非易失性SRAM,集成了非易失性SRAM、實(shí)時(shí)時(shí)鐘、晶振、電源掉電控制電路和鋰電池電源,BCD碼表示的年、月、日、星期、時(shí)、分、秒,帶閏年補(bǔ)償。同樣,DS1643擁有28只管腳,硬件連接起來(lái)占用微處理器I/O口較多,不方便系統(tǒng)功能拓展和維護(hù)。故而從性價(jià)比和貨源上考慮,本設(shè)計(jì)采用時(shí)鐘芯片DS1302。2.2.1 DS1302簡(jiǎn)介DS1302是美國(guó)DALLAS公司推出的一種高性能、低功耗的實(shí)時(shí)時(shí)鐘日歷芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)和RAM數(shù)據(jù)。實(shí)時(shí)時(shí)鐘可提供秒、分、時(shí)、日、星期、月和年,一個(gè)月小于31天時(shí)可以自動(dòng)調(diào)整,且具有閏年補(bǔ)償功能。工作電壓寬達(dá)2.55.5V。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對(duì)后備電源進(jìn)行涓細(xì)電流充電的能力。有主電源和備份電源雙引腳,而且備份電源可由大容量電容(1F)來(lái)替代。需要強(qiáng)調(diào)的是,DS1302需要使用32.768KHz的晶振6。2.2.2 DS1302引腳說(shuō)明DS1302引腳圖參照?qǐng)D2-2。圖2-2 DS1302芯片引腳圖 其的引腳功能參照表2-2。表2-2 DS1302管腳的功能描述 管腳名功能說(shuō)明X1,X232.768KHz 晶振管腳GND地RST復(fù)位腳I/O數(shù)據(jù)輸入/輸出引腳SCLK串行時(shí)鐘Vcc1,Vcc2電源供電管腳在編程過(guò)程中要注意DS1302的讀寫時(shí)序。DS1302是SPI總線驅(qū)動(dòng)方式。它不僅要向寄存器寫入控制字,還需要讀取相應(yīng)寄存器的數(shù)據(jù)。要想與DS1302通信,首要先了解DS1302的控制字。DS1302的控制字如表2-3。表2-3 DS1302控制字(即地址及命令字節(jié)) BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT01RAMA4A3A2A1A0RD控制字的作用是設(shè)定DS1302的工作方式、傳送字節(jié)數(shù)等。每次數(shù)據(jù)的傳輸都是由控制字開(kāi)始??刂谱指魑坏暮x和作用如下:BIT7:控制字的最高有效位,必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。BIT 6:如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);BIT 5至BIT 1(A4A0):用A4A0表示,定義片內(nèi)寄存器和RAM的地址。定義如下:當(dāng)BIT 6位=0時(shí),定義時(shí)鐘和其他寄存器的地址。A4A0=06,順序?yàn)槊搿⒎?、時(shí)、日、月、星期、年的寄存器。當(dāng)A4A0=7,為芯片寫保護(hù)寄存器地址。當(dāng)A4A0=8,為慢速充電參數(shù)選擇寄存器。當(dāng)A4A0=31,為時(shí)鐘多字節(jié)方式選擇寄存器。當(dāng)BIT 6=1時(shí),定義RAM的地址,A4A0=030,對(duì)應(yīng)各子地址的RAM,地址31對(duì)應(yīng)的是RAM多字節(jié)方式選擇寄存器。BIT 0(最低有效位):如為0,表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作??刂谱挚偸菑淖畹臀婚_(kāi)始輸出。在控制字指令輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從最低位(0位)開(kāi)始。同樣,在緊跟8位的控制字指令后的下一個(gè)SCLK脈沖的下降沿,讀出DS1302的數(shù)據(jù),讀出的數(shù)據(jù)也是從最低位到最高位。DS1302的數(shù)據(jù)讀寫方式有兩種,一種是單字節(jié)操作方式,一種是多字節(jié)操作方式。每次僅寫入或讀出一個(gè)字節(jié)數(shù)據(jù)稱為單字節(jié)操作,每次對(duì)時(shí)鐘/日歷的8字節(jié)或31字節(jié)RAM進(jìn)行全體寫入或讀出的操作,稱其為多字節(jié)操作方式。當(dāng)以多字節(jié)方式寫時(shí)鐘寄存器時(shí),必須按數(shù)據(jù)傳送的次序依次寫入8個(gè)寄存器。但是,當(dāng)以多字節(jié)方式寫RAM時(shí),不必寫所有31字節(jié)。不管是否寫了全部31字節(jié),所寫的每一個(gè)字節(jié)都將傳送至RAM。為了啟動(dòng)數(shù)據(jù)的傳輸,RST引腳信號(hào)應(yīng)由低變高,當(dāng)把RST驅(qū)動(dòng)至邏輯1的狀態(tài)時(shí),SCLK必須為邏輯0,數(shù)據(jù)在SCLK的上升沿串行輸入。無(wú)論是讀周期還是寫周期,也無(wú)論送方式是單字節(jié)傳送還是多字節(jié)傳送,都要通過(guò)控制字指定40字節(jié)中的哪個(gè)將被訪問(wèn)。在開(kāi)始8個(gè)時(shí)鐘周期把命令字(具有地址和控制信息的8位數(shù)據(jù))裝入移位寄存器之后,另外的時(shí)鐘在讀操作時(shí)輸出數(shù)據(jù),在寫操作時(shí)輸入數(shù)據(jù),所有的數(shù)據(jù)在時(shí)鐘的下降沿變化。所有寫入或讀出操作都是先向芯片發(fā)送一個(gè)命令字節(jié)。對(duì)于單字節(jié)操作,包括命令字節(jié)在內(nèi),每次為2個(gè)字節(jié),需要16個(gè)時(shí)鐘;對(duì)于時(shí)鐘/日歷多字節(jié)模式操作,每次為7個(gè)字節(jié),需要72個(gè)時(shí)鐘;而對(duì)于RAM多字節(jié)模式操作,每次則為32字節(jié),需要多達(dá)256個(gè)時(shí)鐘。這里僅給出單字節(jié)讀寫時(shí)序。多字節(jié)操作方式與其類似,只是后面跟的字節(jié)數(shù)不止一個(gè)。2.2.3 DS1302的片內(nèi)寄存器表2-4 日歷、時(shí)間寄存器及其控制字 寄存器名稱寫操作讀操作取值范圍76 5 43 2 1秒寄存器80H81H0059CH10SECSEC分寄存器82H83H0059010MINMIN時(shí)寄存器84H85H002312/2410HRHR日寄存器86H87H0131010DATEDATE月寄存器88H89H011200 10MMONTH周寄存器8AH8BH010700 0 0DAY年寄存器8CH8DH009910YEARYEAR通過(guò)控制字對(duì)DS1302片內(nèi)寄存器進(jìn)行尋址之后,即可就所選中寄存器的各位進(jìn)行操作。片內(nèi)各寄存器及各位的功能定義如表2-4所示。DS1302有關(guān)日歷、時(shí)間的寄存器共有10個(gè),時(shí)鐘/日歷包含在其中的7個(gè)寫/讀寄存器內(nèi),這7個(gè)寄存器分別是秒、分、小時(shí)、日、月、星期和年。小時(shí)寄存器(85H、84H)的位7用于定義DS1302是運(yùn)行于12小時(shí)模式還是24小時(shí)模式。當(dāng)為12小時(shí)制式時(shí),位5為“0”表示AM;為“1”表示PM。在24小時(shí)制式下,位5是第二個(gè)10小時(shí)位(2023時(shí))。 秒寄存器(81H、80H)的位7定義為時(shí)鐘暫停標(biāo)志(CH)。當(dāng)該位置為1時(shí),時(shí)鐘振蕩器停止,DS1302處于低功耗狀態(tài);當(dāng)該位置為0時(shí),時(shí)鐘開(kāi)始運(yùn)行。一般在設(shè)置時(shí)鐘時(shí),可以停止其工作,設(shè)定完之后,再啟動(dòng)其工作??刂萍拇嫫鳎?FH、8EH)的位7是寫保護(hù)位(WP),其它7位均置為0。在任何片內(nèi)時(shí)鐘/日歷寄存器和RAM,在寫操作之前,WP位必須為0,否則將不可寫入。當(dāng)WP位為1時(shí),寫保護(hù)位防止對(duì)任一寄存器的寫操作。因此,通過(guò)置寫保護(hù)位,可以提高數(shù)據(jù)的安全性。另外,還有慢速充電控制寄存器和RAM寄存器。 慢速充電寄存器控制著DS1302的慢速充電特性。寄存器的BIT4BIT7(TCS)決定是否具備充電性能:僅在編碼為1010的條件下才具備充電性能,其他編碼組合不允許充電。2.3 LCD液晶顯示器2.3.1液晶顯示器LCD1602簡(jiǎn)介液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點(diǎn),在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用。本系統(tǒng)使用是是LCD1602液晶顯示器,它可以顯示兩行,每行16個(gè)字符,采用單+5V電源電,外圍電路配置簡(jiǎn)單,價(jià)格便宜,具有很高的性價(jià)比7。LCD1602封裝圖如圖2-3所示。圖2-3 LCD1602封裝圖LCD1602采用標(biāo)準(zhǔn)的16腳接口,其中VSS為地電源,VDD接5V正電源,VEE為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。RW為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫入數(shù)據(jù)。E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。D0D7為8位雙向數(shù)據(jù)線。BLA背光源正極,BLK背光源負(fù)極。2.3.2 LCD的基本指令LCD1602液晶模塊內(nèi)部的控制器共有11條控制指令,具體的命令見(jiàn)表2-5所示。表2-5 LCD1602控制指令 指 令RSR/WD7D6D5D4D3D2D1D01清屏00000000012光標(biāo)復(fù)位000000001*3光標(biāo)和顯示模式設(shè)置00000001I/DS4顯示開(kāi)關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址(AGG)8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址(ADD)9讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址(AC)10寫入CGRAM/DDRAM10要寫的數(shù)11讀CGRAM/ DDRAM數(shù)11讀出的數(shù)據(jù)1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。1.清屏指令功能:(1) 清除液晶顯示器,即將DDRAM的內(nèi)容全部填入“空白”的ASCII碼20H;(2) 光標(biāo)歸位,即將光標(biāo)撤回液晶顯示屏的左上方;(3) 將地址計(jì)數(shù)器(AC)的值設(shè)為0。2.光標(biāo)復(fù)位指令 功能:(1) 把光標(biāo)撤回到顯示器的左上方;(2) 把地址計(jì)數(shù)器(AC)的值設(shè)置為0;(3) 保持DDRAM的內(nèi)容不變。3.光標(biāo)和顯示模式設(shè)置指令 功能:設(shè)定每次定入1位數(shù)據(jù)后光標(biāo)的移位方向,并且設(shè)定每次寫入的一個(gè)字符是否移動(dòng)。4.顯示開(kāi)關(guān)控制指令功能:控制顯示器開(kāi)/關(guān)、光標(biāo)顯示/關(guān)閉以及光標(biāo)是否閃爍。5.設(shè)定顯示屏或光標(biāo)移動(dòng)方向指令功能:使光標(biāo)移位或使整個(gè)顯示屏幕移位。6.功能設(shè)定指令功能:設(shè)定數(shù)據(jù)總線位數(shù)、顯示的行數(shù)及字型。7.設(shè)定CGRAM地址指令功能:設(shè)定下一個(gè)要存入數(shù)據(jù)的CGRAM的地址。8.設(shè)定DDRAM地址指令功能:設(shè)定下一個(gè)要存入數(shù)據(jù)的DDRAM的地址。9.讀取忙信號(hào)或AC地址指令功能:(1) 讀取忙碌信號(hào)BF的內(nèi)容,BF=1表示液晶顯示器忙,暫時(shí)無(wú)法接收單片機(jī)送來(lái)的數(shù)據(jù)或指令;當(dāng)BF=0時(shí),液晶顯示器可以接收單片機(jī)送來(lái)的數(shù)據(jù)或指令;(2) 讀取地址計(jì)數(shù)器(AC)的內(nèi)容。10.數(shù)據(jù)寫入DDRAM或CGRAM指令一覽功能:(1) 將字符碼寫入DDRAM,以使液晶顯示屏顯示出相對(duì)應(yīng)的字符;(2) 將使用者自己設(shè)計(jì)的圖形存入CGRAM。11. 從CGRAM或DDRAM讀出數(shù)據(jù)的指令一覽功能:讀取DDRAM或CGRAM中的內(nèi)容。3數(shù)字時(shí)鐘硬件電路設(shè)計(jì)3.1時(shí)鐘電路設(shè)計(jì)系統(tǒng)時(shí)鐘應(yīng)用了時(shí)鐘芯片DS1302,其連接如圖3-1所示。該硬件電路設(shè)計(jì)簡(jiǎn)單,抗干擾能力強(qiáng)。STC89C52RC單片機(jī)P1.2直接接DS1302的RST端,上電后,STC89C52RC的P1.2腳自動(dòng)輸出高電平。P1.3作為串行時(shí)鐘接口,P1.4作為時(shí)鐘數(shù)據(jù)的I/O。DS1302采用雙電源供電,平時(shí)由+5V電源供電,當(dāng)+5V掉電之后,由圖中BT1(+3V備用電池)供電。特別需要注意X1和X2兩端連接的晶振,該晶振頻率為32.768KHz。圖 3-1系統(tǒng)時(shí)鐘電路 3.2顯示電路系統(tǒng)的顯示電路采用的是液晶顯示方式。采用1602字符點(diǎn)陣型液晶模塊,上一行顯示日期,星期,下一行顯示時(shí)間或是鬧鐘。使用起來(lái)比較靈活,操作簡(jiǎn)單,易控制,能夠帶來(lái)很大的方便。在LCD1602液晶顯示模塊和單片機(jī)STC89C52RC相連接時(shí)的,具體的接法為:將VSS接地,VDD接高電平,VEE接入一個(gè)電位器來(lái)調(diào)整LCD1602的對(duì)比度。將RS接到P2.0口,R/W接到P2.1口,E接到P2.2口。D0D7接到P0口來(lái)控制命令,輸入及數(shù)據(jù)的輸入/輸出。具體的連接電路如圖3-2所示。圖3-2 LCD1602液晶和單片機(jī)STC89C52RC接口電路3.3按鍵電路設(shè)計(jì)根據(jù)功能需要,本時(shí)鐘需要設(shè)置以下功能鍵:時(shí)間校準(zhǔn)鍵,加1操作鍵,減1操作鍵,鬧鈴校準(zhǔn)鍵。按照鍵盤與CPU的連接方式可分為獨(dú)立式鍵盤和矩陣式鍵盤。獨(dú)立式鍵盤是各個(gè)按鍵相互獨(dú)立,每個(gè)按鍵占用一個(gè)I/O口線,每根I/O口線上的按鍵不會(huì)影響其他I/O口上按鍵工作狀態(tài)。獨(dú)立式鍵盤電路配置靈活,軟件結(jié)構(gòu)簡(jiǎn)單,但每個(gè)按鍵必須占用一根I/O口,在按鍵數(shù)量較多時(shí),I/O口線浪費(fèi)較大,且電路結(jié)構(gòu)復(fù)雜。矩陣式鍵盤適合按鍵較多時(shí)使用。由于本設(shè)計(jì)的電子鐘最多需要4個(gè)按鍵,若采用矩陣式鍵盤時(shí)會(huì)有按鍵浪費(fèi),故采用的是獨(dú)立式鍵盤。對(duì)于內(nèi)置了上拉電阻的I/O引腳來(lái)說(shuō),外接上拉電阻沒(méi)有意義,如圖3-3所示。圖 3-3鍵盤電路K1、K2、K3、K4鍵為自動(dòng)復(fù)位按鍵,每次按下后,會(huì)自動(dòng)彈出。單片機(jī)管腳只有在按鍵按下時(shí)為低電平,按鍵彈出后重新恢復(fù)高電平。按鍵操作說(shuō)明如下:K1鍵:該鍵為自動(dòng)復(fù)位鍵,在校對(duì)狀態(tài)下,每次按動(dòng)該鍵,都會(huì)使相應(yīng)校對(duì)位進(jìn)行減1操作。例如:校對(duì)小時(shí)狀態(tài),每按一下,小時(shí)位減1,當(dāng)加至小時(shí)最高值23時(shí),再按K1鍵,小時(shí)位回0。調(diào)分、秒、年、月、日與皆之相同,只是各位最高值不同。K2鍵:該鍵為自動(dòng)復(fù)位鍵,與K1鍵類似,不同之處是該鍵每次按下將使相應(yīng)校對(duì)位進(jìn)行加1操作。K3鍵:該鍵為自動(dòng)復(fù)位鍵,在正常顯示時(shí)間狀態(tài)下,第一次按下后,開(kāi)始校對(duì)小時(shí),以后每次按下都會(huì)分別進(jìn)入對(duì)分、秒、年、月、日的校對(duì)狀態(tài)。K4鍵:該鍵為自動(dòng)復(fù)位鍵,在正常顯示時(shí)間狀態(tài)下,第一次按下后,開(kāi)始校對(duì)鬧鐘時(shí)、鬧鐘分的校對(duì)狀態(tài)。3.4鬧鈴電路設(shè)計(jì)鬧鈴音樂(lè)可以直接采用蜂鳴器鬧鈴,如當(dāng)前時(shí)刻與鬧鈴時(shí)間相同,單片機(jī)向蜂鳴器送出低電平,蜂鳴器發(fā)聲。采用蜂鳴器鬧鈴結(jié)構(gòu)簡(jiǎn)單,控制方便,但是發(fā)出的鬧鈴聲音單一。也可以在編程的時(shí)候編寫一段音樂(lè)程序,待鬧鈴時(shí)間到時(shí),調(diào)用該音樂(lè)程序給揚(yáng)聲器,便響起音樂(lè)。不過(guò)該方法只能做一些簡(jiǎn)單音樂(lè),并且音樂(lè)程序會(huì)占用很多單片機(jī)存儲(chǔ)資源。還有一種方法是采用錄音放音芯片1420做鬧鈴,先對(duì)錄放音設(shè)備錄入一段音樂(lè),當(dāng)?shù)皆O(shè)定時(shí)間時(shí),單片機(jī)控制錄放音設(shè)備放音。采用錄放音電路,鈴聲可以是預(yù)先設(shè)定的一段自己喜歡的音樂(lè),符合電器設(shè)備人性化的要求。且1420芯片可以分段錄音,還具有語(yǔ)音報(bào)時(shí)功能。另外,也可以購(gòu)置一塊音樂(lè)集成電路,加置在單片機(jī)和蜂鳴器之間,當(dāng)單片機(jī)連接鬧鈴電路的管腳送出低電平時(shí),音樂(lè)集成電路會(huì)給蜂鳴器特定脈沖,使蜂鳴器發(fā)聲。此類集成電路體積較小,使用方便,不足的是音樂(lè)簡(jiǎn)單、單一。鬧鈴的音樂(lè)不是本設(shè)計(jì)中的重點(diǎn),故采用最簡(jiǎn)單的方法,占用單片機(jī)一根I/O口P2.3, 中間用PNP型三極管連接P2.3和蜂鳴器。當(dāng)P2.3引腳為低電平時(shí),三極管的發(fā)射極和集電極導(dǎo)通,使蜂鳴器發(fā)聲。當(dāng)響鈴標(biāo)志位為“1”時(shí),P2.3送一定頻率脈沖,使蜂鳴器發(fā)出聲音,如圖3-4所示。圖 3-4鬧鈴電路3.5復(fù)位電路設(shè)計(jì)復(fù)位是單片機(jī)的初始化操作,以便使CPU和系統(tǒng)中其他部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開(kāi)始工作。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)單片機(jī)系統(tǒng)在運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),也可按復(fù)位鍵重新啟動(dòng)。如圖3-5所示8。圖 3-5復(fù)位電路3.6電源的設(shè)計(jì)電子設(shè)備都需要穩(wěn)定的直流電源。功率較小的直流電源大多數(shù)都是將50Hz的圖 3-6 電源電路交流電經(jīng)過(guò)變壓、整流、濾波和穩(wěn)壓后獲得。本設(shè)計(jì)所用電源電路如圖3-6所示。3.6.1單相橋式整流電路介紹單相橋式整流電路的工作原理可分析如下。為簡(jiǎn)單起見(jiàn),二極管用理想模型來(lái)處理,即正向?qū)娮铻榱?,反向電阻為無(wú)窮大。在此規(guī)定右上側(cè)二極管為D1,順時(shí)針依次為D2、D3、D4。在變壓器二次側(cè)電壓的負(fù)半周,電流從變壓器副邊線圈的下端流出,只能經(jīng)過(guò)二極管D1 流向負(fù)載,再由二極管 D3流回變壓器,所以D1、D3正向?qū)?,D2、D4反向截止。在負(fù)載上產(chǎn)生一個(gè)極性為上正下負(fù)的輸出電壓。在變壓器二次側(cè)電壓的正半周,其極性與以上過(guò)程相反,電流從變壓器副邊線圈的上端流出,只能經(jīng)過(guò)二極管D4流向負(fù)載,再由二極管D2流回變壓器,所以D1、D3反向截止,D2、D4正向?qū)?。電流流過(guò)負(fù)載時(shí)產(chǎn)生的電壓極性仍是上正下負(fù),與正半周時(shí)相同9。 綜上所述,橋式整流電路巧妙地利用了二極管的單向?qū)щ娦裕瑢⑺膫€(gè)二極管分為兩組,根據(jù)變壓器副邊電壓的極性變化,將變壓器副邊電壓的正極性端與負(fù)載電阻的上端相連,負(fù)極性端與負(fù)載電阻的下端相連,使負(fù)載上始終可以得到一個(gè)單方向的脈動(dòng)電壓。橋式整流電路的優(yōu)點(diǎn)是輸出電壓高,紋波電壓較小,管子所承受的最大反向電壓較低,同時(shí)因電源變壓器在正、負(fù)半周內(nèi)都有電流供給負(fù)載,電源變壓器得到了充分的利用,效率較高。3.6.2變壓器和整流二極管的選擇1.變壓器的選擇根據(jù)需要,因后續(xù)電路要用到+5V直流電壓,而穩(wěn)壓塊7805要求其輸入的帶有波動(dòng)的電壓要比輸出的直流電壓高35V,所以變壓器選擇初級(jí)電壓為220V交流電,次級(jí)電壓為8V10V的變壓器,在這里選用的是次級(jí)電壓為12V的變壓器。2.整流二極管的選擇由于所選變壓器為220V/12V的變壓器,所以變壓器的次級(jí)電壓的峰值為12V16.9V。而橋式整流電路中的整流二極管所承受的最大反向電壓為次級(jí)電壓的峰值,流過(guò)整流二極管的電流的最大值約為0.2A,查電子工程師手冊(cè),選用2CZ11型整流二極管。3.6.3濾波電路濾波電路用來(lái)濾除整流后單向脈沖電壓中的交流成分,變成平滑的直流電壓。整流電路將交流電變?yōu)槊}動(dòng)直流電,但其中含有大量的交流成分(稱為紋波電壓)。為了獲得平滑的直流電壓,應(yīng)在整流電路的后面加接濾波電路,以濾去交流部分。 此電路采用的是電容濾波電路,即在橋式整流電路輸出端與負(fù)載之間并聯(lián)一個(gè)大電容。濾波電容容量較大,因此一般采用電解電容,電容濾波電路利用電容的充、放電作用,使輸出電壓趨于平滑,最后加一個(gè)0.1F小電容濾除電源中的高頻分量。3.6.4濾波電容的選擇1.電容的選擇:由于采用電解電容,考慮到電網(wǎng)電壓的波動(dòng)范圍為,電容的耐壓值應(yīng)大于U2,其中U2為12V,所以選擇電解電容的耐壓值為大于14伏的。2.電容容量:為了獲得較好的濾波效果,在實(shí)際電路中,應(yīng)選擇濾波電容的容量滿足,其中,由于后續(xù)電路大概需要200mA的電流,輸出電壓平均值,經(jīng)計(jì)算可知,所以查電子工程師手冊(cè)可以選用鋁電解電容CD22寬溫限型,容量選擇1000F。所以電容的參數(shù)是:耐壓值為17 V,電容值為1000F的鋁電解電容。 3.6.5穩(wěn)壓電路穩(wěn)壓電路的作用是當(dāng)輸入交流電壓波動(dòng)、負(fù)載和溫度變化時(shí),維持輸出直流電壓的穩(wěn)定。穩(wěn)壓器采用7805系列即輸出電壓值5 V,它屬于三端固定輸出集成穩(wěn)壓,兩邊為輸入、輸出,中間接地。它的最大輸入電壓為35V,7805最適合的輸入電壓為8V,輸出電流分為1.5A、0.5A、0.1A三個(gè)檔次。而這里變壓器的次級(jí)電壓有效值為12V,在7805穩(wěn)壓的范圍內(nèi)。在單相橋式整流電路中已經(jīng)知道,后續(xù)電路的穩(wěn)壓電路的負(fù)載電流大概為0.2A左右,所以在這里所選擇的穩(wěn)壓塊的最大輸出電流為0.5A10,11。7805參數(shù)如表3-1所示。表3-1 7805的參數(shù) 參數(shù)名稱符號(hào)典型值單位輸出電壓Vo5V靜態(tài)電流Io4.2mA最大壓差|Vr-Vo|min2.0V經(jīng)過(guò)一系列的變壓、整流、濾波、穩(wěn)壓后,VCC處得到+5V直流穩(wěn)壓電源。4系統(tǒng)的軟件設(shè)計(jì)4.1 DS1302時(shí)鐘模塊DS1302中的年、月、日、時(shí)、分、秒以及星期的信息存入到一個(gè)結(jié)構(gòu)體中。該結(jié)構(gòu)體中還包括兩個(gè)數(shù)組DateString9和TimeString9分別用來(lái)暫時(shí)存放年、月、日和時(shí)、分、秒的信息。4.1.1宏定義DS1302中寄存器地址DS1302芯片中的相關(guān)寄存器的讀操作對(duì)應(yīng)的地址,將它們定義成宏定義,以有利于程序的可讀性,具體見(jiàn)表4-1所示。4.1.2時(shí)鐘芯片的單字節(jié)傳送方式1.向DS1302中寫入一字節(jié)數(shù)據(jù)通過(guò)單字節(jié)傳送,可以向DS1302時(shí)鐘芯片中寫入秒、分、時(shí)、年、月、日等字節(jié)數(shù)據(jù),只是命令字不同。其中傳送的數(shù)據(jù)可以是秒、分、時(shí)、年、月、日、星期等字節(jié)數(shù)據(jù),也可以是其相應(yīng)的寄存器的地址。要想往DS1302中輸入數(shù)據(jù),必須讓DS1302的SCLK為上升沿的時(shí)候才能輸入數(shù)據(jù),數(shù)據(jù)從0位開(kāi)始。該部分是通過(guò)void write_byte(uchar d)函數(shù)實(shí)現(xiàn)的,其中d為要寫入的數(shù)據(jù)12。表4-1 宏定義DS1302中寄存器地址 寄存器宏定義讀地址秒寄存器分寄存器時(shí)寄存器星期寄存器日寄存器月寄存器年寄存器DS1302_SECONDDS1302_MINUTEDS1302_HOURDS1302_WEEKDS1302_DAYDS1302_MONTHDS1302_YEAR0x800x820x840x8A0x860x880x8C2.從DS1302中讀出一字節(jié)數(shù)據(jù)通過(guò)單字節(jié)傳送,可以從DS1302時(shí)鐘芯片的相應(yīng)寄存器中讀取秒、分、時(shí)、年、月、日等字節(jié)數(shù)據(jù)。從DS1302中讀出一字節(jié)數(shù)據(jù)是一位一位的讀出的。當(dāng)DS1302的SCLK為下降沿時(shí)才能讀出一位數(shù)據(jù),該部分通過(guò)uchar read_byte(void)函數(shù)實(shí)現(xiàn)的。3.向DS1302中某個(gè)地址寫入數(shù)據(jù)通過(guò)單字節(jié)傳送,可以向DS1302的相應(yīng)寄存器中寫入秒、分、時(shí)、年、月、日等字節(jié)數(shù)據(jù)。首先,將DS1302的RST置為高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。然后,在CLK的上升沿時(shí)輸入要寫入的目標(biāo)寄存器地址以及要存入該寄存器的數(shù)據(jù),數(shù)據(jù)從0位開(kāi)始。最后當(dāng)單數(shù)據(jù)寫入結(jié)束時(shí),將DS1302的RST置為低電平,終止數(shù)據(jù)的傳送。該部分通過(guò)void Write_ds1302(unsigned char ucAddr,unsigned char ucDa)函數(shù)實(shí)現(xiàn)的。其中ucAddr為DS1302的某個(gè)寄存器的地址,ucData為向寄存器要寫的數(shù)據(jù)。4.讀取DS1302某地址的數(shù)據(jù)通過(guò)單字節(jié)傳送,可以從DS1302寄存器中讀出秒、分、時(shí)、年、月、日等字節(jié)數(shù)據(jù)。首先,將DS1302的RST置為高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。然后,在CLK的下降沿時(shí)輸出要讀取的目標(biāo)寄存器地址,數(shù)據(jù)從0位開(kāi)始。接著,從該寄存器中讀取數(shù)據(jù)。最后當(dāng)單數(shù)據(jù)輸出結(jié)束時(shí),將DS1302的RST置為低電平,防止有額外的SCLK周期,重新發(fā)送數(shù)據(jù)信息。該部分通過(guò)unsigned char read_ds1302(unsigned char ucAddr)函數(shù)實(shí)現(xiàn)的12。4.1.3是否寫保護(hù)寄存器操作當(dāng)寫保護(hù)寄存器的最高位為0時(shí),允許數(shù)據(jù)寫入寄存器。當(dāng)寫保護(hù)寄存器的最高位為1時(shí),禁止數(shù)據(jù)寫入寄存器。寫保護(hù)寄存器可以通過(guò)命令字節(jié)8E來(lái)規(guī)定禁止寫入/讀出,寫保護(hù)位不能在多字節(jié)傳送模式下寫入。void DS1302_SetProtect(bit flag)函數(shù)通過(guò)一個(gè)flag位來(lái)控制是否寫入還是讀出。當(dāng)flag為1時(shí),數(shù)據(jù)禁止寫入時(shí)鐘芯片的寄存器;當(dāng)flag為0時(shí),數(shù)據(jù)允許寫入時(shí)鐘芯片的寄存器。4.1.4時(shí)鐘芯片的初始化要想使時(shí)鐘走時(shí),每次上電必須把秒寄存器最高位(第7位)設(shè)置為0。如果需要寫入數(shù)據(jù)和時(shí)鐘日歷信息,必須將“寫保護(hù)”寄存器設(shè)置成為0。該部分通過(guò)void init_ds1302(void)函數(shù)實(shí)現(xiàn)。4.1.5時(shí)鐘停止/啟動(dòng)走時(shí)時(shí)鐘停止/走時(shí)是由函數(shù)void DS1302_TimeStop(bit flag)來(lái)實(shí)現(xiàn)的。具體流程如圖4-1所示。返回開(kāi)始讀取DS1302的秒寄存器中的數(shù)據(jù)電子日歷停止走時(shí)電子日歷開(kāi)始走時(shí)允許寫數(shù)據(jù)是否Flag=0?圖 4-1 時(shí)鐘停止/啟動(dòng)走時(shí)流程圖4.1.6數(shù)據(jù)信息的顯示時(shí)鐘日歷用BCD碼存儲(chǔ),獲得的時(shí)鐘日歷的信息存儲(chǔ)在結(jié)構(gòu)體的unsigned char DateString9和unsigned char TimeString9數(shù)組中,然后將其送到液晶顯示器件中進(jìn)行顯示12。4.2 LCD顯示模塊部分4.2.1基本操作程序讀狀態(tài):輸入:RS=L,RW=H,E=H 輸出:D0D7=狀態(tài)字讀數(shù)據(jù):輸入:RS=H,RW=H,E=H 輸出:無(wú)寫指令:輸入:RS=L,RW=L,D0D7=指令碼,E=高脈沖 輸出:D0D7=數(shù)據(jù)寫數(shù)據(jù):輸入:RS=H,RW=L,D0D7=數(shù)據(jù),E=高脈沖 輸出:無(wú)4.2.2 RAM地址映射圖控制器內(nèi)部帶有80字節(jié)的RAM緩沖區(qū),對(duì)應(yīng)關(guān)系如表4-2所示。表4-2 對(duì)應(yīng)關(guān)系 000102030405060708090A0B0C0D0E27404142434445464748494A4B4C4D4E674.2.3狀態(tài)字說(shuō)明1602的狀態(tài)字說(shuō)明如下表4-3所示。其中,STA0STA6為當(dāng)前地址指針的數(shù)值,STA7讀
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海2025上海京劇院公開(kāi)招聘筆試歷年參考題庫(kù)附帶答案詳解
- 成都航空職業(yè)技術(shù)學(xué)院《電機(jī)容量選擇》2023-2024學(xué)年第二學(xué)期期末試卷
- 集美大學(xué)《心血管與呼吸系統(tǒng)Ⅱ》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海立信會(huì)計(jì)金融學(xué)院《飛行器制造工藝與裝備》2023-2024學(xué)年第二學(xué)期期末試卷
- 泰山護(hù)理職業(yè)學(xué)院《輿情監(jiān)控與危機(jī)管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 長(zhǎng)春醫(yī)學(xué)高等??茖W(xué)?!恫牧细耪摗?023-2024學(xué)年第二學(xué)期期末試卷
- 廣東水利電力職業(yè)技術(shù)學(xué)院《計(jì)算機(jī)通信與網(wǎng)絡(luò)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湘潭醫(yī)衛(wèi)職業(yè)技術(shù)學(xué)院《可信計(jì)算實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京工業(yè)職業(yè)技術(shù)學(xué)院《教育統(tǒng)計(jì)學(xué)理論教學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 新疆科技職業(yè)技術(shù)學(xué)院《管理專業(yè)英語(yǔ)2》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年入團(tuán)考試一覽無(wú)遺試題及答案
- 鐵路段擴(kuò)能改造站房及生產(chǎn)生活房屋工程方案投標(biāo)文件(技術(shù)方案)
- 2025四年級(jí)美術(shù)國(guó)測(cè)知識(shí)競(jìng)賽題庫(kù)(104題附答案)
- 2025年《養(yǎng)老護(hù)理員》考試模擬練習(xí)題及答案
- 公司檔案及文件管理制度
- 2025年四川筠連縣國(guó)有資本投資運(yùn)營(yíng)有限公司招聘筆試參考題庫(kù)含答案解析
- 2024年貴州遵義公開(kāi)招聘社區(qū)工作者考試試題答案解析
- 2025年全國(guó)低壓電工證(復(fù)審)考試筆試試題(300題)含答案
- 2025至2030中國(guó)注射用重組人腦利鈉肽行業(yè)運(yùn)行態(tài)勢(shì)及未來(lái)趨勢(shì)研究報(bào)告
- 文言常識(shí)測(cè)試題及答案
- 入團(tuán)考試測(cè)試題及答案
評(píng)論
0/150
提交評(píng)論