




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于LCD1602液晶顯示屏的電子萬(wàn)年歷設(shè)計(jì) 基于LCD1602液晶顯示屏的電子萬(wàn)年歷設(shè)計(jì)摘 要 現(xiàn)在是一個(gè)知識(shí)爆炸的新時(shí)代,新產(chǎn)品、新技術(shù)層出不窮,電子技術(shù)的發(fā)展更是日新月異??梢院敛豢鋸埖恼f(shuō),電子技術(shù)的應(yīng)用無(wú)處不在,電子技術(shù)正在不斷地改變我們的生活,改變著我們的世界。在這快速發(fā)展的年代,時(shí)間對(duì)人們來(lái)說(shuō)是越來(lái)越寶貴,在快節(jié)奏的生活時(shí),人們往往忘記了時(shí)間,一旦遇到重要的事情而忘記了時(shí)間,這將會(huì)帶來(lái)很大的損失。因此我們需要一個(gè)定時(shí)系統(tǒng)來(lái)提醒這些忙碌的人,而數(shù)字化的鐘表給人們帶來(lái)了極大的方便。由于單片機(jī)具有靈活性強(qiáng)、成本低、功耗低、保密性好等特點(diǎn),所以電子日歷時(shí)鐘
2、一般都以單片機(jī)為核心,外加一些外圍設(shè)備來(lái)實(shí)現(xiàn)。 本設(shè)計(jì)是一種基于液晶顯示屏的電子萬(wàn)年歷,該系統(tǒng)結(jié)合了LCD顯示技術(shù),斷電時(shí)間保護(hù)技術(shù)和語(yǔ)音錄放技術(shù),系統(tǒng)用點(diǎn)陣式液晶顯示時(shí)間和日期,具有人性化和美觀的頁(yè)面效果,除具備傳統(tǒng)的萬(wàn)年歷所具有的時(shí)間顯示和調(diào)整功能之外,該系統(tǒng)還兼有語(yǔ)音報(bào)時(shí),閏年補(bǔ)償?shù)裙δ埽灰詥纹瑱C(jī)的C51語(yǔ)言進(jìn)行軟件設(shè)計(jì),增加了程序的可讀性和可移植性,為了便于擴(kuò)展和更改,軟件的設(shè)計(jì)采用模塊化結(jié)構(gòu),使程序設(shè)計(jì)的邏輯關(guān)系更加簡(jiǎn)潔明了。實(shí)際使用中該設(shè)計(jì)能準(zhǔn)確地顯示時(shí)間和日期,能準(zhǔn)確清晰地完成語(yǔ)音報(bào)時(shí)功能。 關(guān)鍵詞: 單片機(jī),LCD,語(yǔ)音報(bào)
3、時(shí),萬(wàn)年歷 引言 萬(wàn)年歷是采用數(shù)字電路實(shí)現(xiàn)對(duì).時(shí),分,秒.數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭,車站, 碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過(guò)老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,但是所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究萬(wàn)年歷及擴(kuò)大其應(yīng)用,
4、有著非?,F(xiàn)實(shí)的意義。市場(chǎng)上有許多電子鐘的專用芯片如:LM8363、LM8365等,但它們功能單一,電路連接復(fù)雜,不便于調(diào)試制作!但是考慮到用單片機(jī)配合時(shí)鐘芯片,可制成功能任意的電子鐘,而且可以做到硬件簡(jiǎn)單、成本低廉。所以本系統(tǒng)采用了以廣泛使用的單片機(jī)AT89C51技術(shù)為核心,配合時(shí)鐘芯片DS1302。軟硬件結(jié)合,使硬件部分大為簡(jiǎn)化,提高了系統(tǒng)穩(wěn)定性,并采用LED顯示電路、鍵盤電路,使人機(jī)交互簡(jiǎn)便易行,此外結(jié)合音樂(lè)鬧鈴電路、看門狗和供電電路。本方案設(shè)計(jì)出的數(shù)字鐘可以顯示時(shí)間、設(shè)置鬧鈴功能之外。本設(shè)計(jì)中我重點(diǎn)研究實(shí)現(xiàn)了單片機(jī)+時(shí)鐘芯片這種模式的萬(wàn)年歷,從原理上對(duì)單片機(jī)和時(shí)鐘芯片有了深一步的認(rèn)識(shí),這
5、些基本功能完成后,在軟件基礎(chǔ)上實(shí)現(xiàn)世界時(shí),農(nóng)歷功能。本設(shè)計(jì)在很多場(chǎng)合都能用到,可以把此萬(wàn)年歷裝在鏡框中或其它工藝品中,以便更加實(shí)用。第一章 概論 1.1系統(tǒng)總體框圖本設(shè)計(jì)的核心部分為單片機(jī)控制器,系統(tǒng)的各項(xiàng)功能由其它各部分單元電路來(lái)完成,單元電路主要包括:時(shí)鐘電路部分、顯示部分、語(yǔ)音部分、人機(jī)交互控制接口部分等,單片機(jī)通過(guò)程序來(lái)控制其它各部分統(tǒng)一協(xié)調(diào)地來(lái)完成系統(tǒng)的各項(xiàng)功能,本設(shè)計(jì)硬件電路較簡(jiǎn)單,但軟件部分較復(fù)雜,所有功能都要通過(guò)軟件來(lái)實(shí)現(xiàn),系統(tǒng)總體設(shè)計(jì)如圖1-1所示。 SHAPE * MERGEFORMAT
6、60;圖1-1 系統(tǒng)總體設(shè)計(jì)框圖1.2 主控制器單片機(jī)的選擇采用比較流行的AT89S52作為電路的控制核心,AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程(具有ISP功能),亦適于常規(guī)編程器。在單芯上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。采用AT89C55,它是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片
7、內(nèi)含20kbytes 的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器(ROM)和256*8bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8 位中央處理器(CPU)和Flash存儲(chǔ)單元,功能強(qiáng)大AT89C55單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場(chǎng)合。雖然AT89S52的ISP下載功能非常優(yōu)秀,但它只有8KROM,由于本設(shè)計(jì)的程序代碼比較多,所以選用AT89C55(具有20KROM)。1.3 時(shí)鐘電路的選擇采用時(shí)鐘芯片DS1302,DS1302是DALLAS公司推出的涓流充電時(shí)鐘芯片,內(nèi)含有一個(gè)實(shí)時(shí)時(shí)
8、鐘/日歷和31字節(jié)靜態(tài)RAM,通過(guò)簡(jiǎn)單的串行接口與單片機(jī)進(jìn)行通信。實(shí)時(shí)時(shí)鐘/日歷電路提供秒、分、時(shí)、日、日期、月、年的信息,每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整,時(shí)鐘操作可通過(guò)AM/PM指示決定采用24或12小時(shí)格式。DS1302與單片機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn)行通信,僅需用到三根口線:RES(復(fù)位),I/O(數(shù)據(jù)線),SCLK(串行時(shí)鐘)。時(shí)鐘/RAM的讀/寫數(shù)據(jù)以一個(gè)字節(jié)或多達(dá)31個(gè)字節(jié)的字符組方式通信。DS1302工作時(shí)功耗很低,保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí)功率小于1mW1。DS1302是由DS1202改進(jìn)而來(lái)的,增加了以下的特性:雙電源管腳用于主電源和備份電源供應(yīng),Vcc1為可編程涓流充電
9、電源,附加七個(gè)字節(jié)存儲(chǔ)器。它廣泛應(yīng)用于電話、傳真、便攜式儀器以及電池供電的儀器儀表等產(chǎn)品領(lǐng)域。實(shí)時(shí)時(shí)鐘具有能計(jì)算2100年之前的秒、分、時(shí)、日、日期、星期、月、年的能力,還有閏年自動(dòng)調(diào)整和補(bǔ)償?shù)哪芰Γ?1×8位RAM;串行I/O口方式使得管腳數(shù)量最少;寬范圍工作電壓:2.05.5V;工作電流:2.0V 時(shí),小于300nA;讀/寫時(shí)鐘或RAM數(shù)據(jù)時(shí),有兩種傳送方式:?jiǎn)巫止?jié)傳送和多字節(jié)傳送(字符組方式);8腳DIP 封裝或可選8腳SOIC;簡(jiǎn)單3 線接口;與TTL 兼容(Vcc=5V);可選工業(yè)級(jí)溫度范圍:-40+85;與DS1202 兼容。1.4 語(yǔ)音報(bào)音電路的選擇直接使用語(yǔ)音芯片,語(yǔ)
10、音芯片具有使用方便,外圍元件少,只需少量元件就可以組成一個(gè)功能齊全的固體錄放機(jī),重放時(shí)音質(zhì)好,沒(méi)有常見的背景噪音,提供零功率信息存儲(chǔ),無(wú)需備用電源,掉電后錄音內(nèi)容可永久保留等優(yōu)點(diǎn)。ISD1420P語(yǔ)音芯片采用 CMOS 技術(shù),單片錄放時(shí)間20秒,音質(zhì)好,內(nèi)含震蕩器、話筒前置放大、自動(dòng)增益控制、防混淆濾波器、平滑濾波器、揚(yáng)聲器驅(qū)動(dòng)及 EEPROM 陣列。最小的錄放系統(tǒng)僅需麥克風(fēng)、喇叭、兩個(gè)按鈕、電源及少數(shù)電阻電容。在錄放操作結(jié)束后,芯片自動(dòng)進(jìn)入低功耗節(jié)電模式、功耗僅 0.5uA,芯片采用多電平直接模擬量存儲(chǔ)專利技術(shù),每個(gè)采樣直接存儲(chǔ)在片內(nèi)單個(gè) EEPROM 單元中,因此能夠非常真實(shí)、自然地再現(xiàn)語(yǔ)
11、音、音樂(lè)、音調(diào)等各種效果,避免了一般固體錄音因電路量化和壓縮造成的量化噪聲和“金屬聲”。采樣頻率從 5.3,6.4 到 8.0KHz,對(duì)音質(zhì)僅有輕微影響。片內(nèi)信息可保存 100 年(無(wú)需電源),EEPROM 單片可反復(fù)錄音十萬(wàn)次,能直接驅(qū)動(dòng)16以上的喇叭2。1.5 顯示電路和鍵盤的選擇顯示采用1602液晶屏,它能顯示2行,每行顯示16個(gè)數(shù)字或字母(5*7字型),也可顯示一行,每行16個(gè)字(5*10字型),可顯示的內(nèi)容比較多(包括數(shù)字,字母和很多符號(hào)),采用并行數(shù)據(jù)傳送,這樣1602LCD共占用單片機(jī)11個(gè)口線,相對(duì)于數(shù)碼管,占用口線少,電路簡(jiǎn)單,無(wú)需外圍驅(qū)動(dòng)電路,占用PCB面積也較少;但對(duì)于編
12、程來(lái)說(shuō),液晶顯示的編程比較復(fù)雜,而且亮度也比較差,只能在近距離看到時(shí)間和日期,能見度不如數(shù)碼管好。鍵盤部分比較簡(jiǎn)單,只用到4個(gè)按鍵,采用獨(dú)立式非編碼鍵盤。第二章 系統(tǒng)硬件電路設(shè)計(jì) 2.1 系統(tǒng)整體硬件電路設(shè)計(jì)本設(shè)計(jì)采用時(shí)鐘芯片作為時(shí)鐘的基準(zhǔn),并且該芯片具有斷電保護(hù)時(shí)間功能(斷電后采用3.5v電子供電),顯示部分采用LCD顯示,可以顯示年月日時(shí)分秒星期等等,該萬(wàn)年歷具有隨時(shí)可調(diào)整時(shí)分秒年月日的功能,最明顯的功能是具有語(yǔ)音報(bào)時(shí)的功能,比已有的單調(diào)的鬧鐘聲音更具有親和力,具體的調(diào)整,錄音和功能設(shè)置采用4個(gè)按鍵和LCD顯示屏共同來(lái)實(shí)現(xiàn)??傮w硬件設(shè)計(jì)框圖如圖2-1所示: SHAPE
13、 * MERGEFORMAT 圖2-1 語(yǔ)音萬(wàn)年歷系統(tǒng)原理框圖2.2 硬件單元電路設(shè)計(jì)單元電路主要由單片機(jī)最小系統(tǒng)、時(shí)鐘芯片電路、LCD顯示電路、功能鍵電路、語(yǔ)音電路等組成。2.2.1 單片機(jī)最小系統(tǒng)設(shè)計(jì)AT89C55單片機(jī)有40腳PDIP、42腳PDIP等,本系統(tǒng)采用40腳PDIP的封裝,其引腳如圖22所示,AT89C55是AT89C5×系列單片機(jī)中性能居中、很有代表性的產(chǎn)品,其主要特性如下:(1)兼容MCS51產(chǎn)品;(2)20K字節(jié)可擦寫1000次以上Flash ROM;(3)工作電壓為+4V+5.5V;(4)有256*8字節(jié)RAM;(5)32個(gè)可編程IO口
14、;(6)3個(gè)16位定時(shí)/計(jì)數(shù)器;(7)8個(gè)中斷源;(8)一個(gè)全雙工UART串行通信口;(9)靜態(tài)工作頻率在033Mhz;(10)休眠和節(jié)電保持兩種省電模式;(11)中斷喚醒省電模式功能;(12)看門狗定時(shí)器;(13)雙數(shù)據(jù)指針(DPTR);(14)電源關(guān)閉標(biāo)志。它相對(duì)AT89C51、89C52增加了ROM空間,內(nèi)部看門狗定時(shí)器、雙數(shù)據(jù)指針,全新的加密算法等功能,但價(jià)格基本不變,甚至更低。對(duì)51系列單片機(jī)來(lái)說(shuō),最小系統(tǒng)一般應(yīng)該包括:?jiǎn)纹瑱C(jī)、晶振電路、復(fù)位電路。電路如圖2-3所示。圖2-2 AT89C55單片機(jī)引腳圖
15、; 圖2-3 AT89C55單片機(jī)最小系統(tǒng)圖2.2.2 時(shí)鐘電路設(shè)計(jì)一、 DS1302 的管腳排列及描述管腳描述:(管腳排列如圖2-4所示)圖2-4 DS1302管腳配置圖Vcc1:主電源;Vcc2:備份電源。當(dāng)Vcc2>Vcc1+0.2V時(shí),由Vcc2向DS1302供電,當(dāng)Vcc2< Vcc1時(shí),由Vcc1向DS1302供電;SCLK:串行時(shí)鐘輸入;I/O:雙向數(shù)據(jù)線;
16、; RST:復(fù)位信號(hào),在讀、寫數(shù)據(jù)期間,必須為高; X1,X2:晶振輸入端二、DS1302 的內(nèi)部原理圖DS1302 的內(nèi)部原理圖如圖2-5所示,主要由電源控制、晶體振蕩、輸入移位寄存器、通訊與控制邏輯和RAM組成,晶體振蕩負(fù)責(zé)產(chǎn)生最小時(shí)鐘單位,輸入移位寄存器負(fù)責(zé)數(shù)據(jù)的輸入與輸出,RAM用來(lái)存儲(chǔ)數(shù)據(jù)。 SHAPE * MERGEFORMAT 圖2-5 DS1302 的內(nèi)部原理圖2.2.3 語(yǔ)音電路設(shè)計(jì)一、ISD1420P 的內(nèi)部結(jié)構(gòu)及管腳排列ISD1420P內(nèi)部結(jié)構(gòu)圖如圖2-7所示,
17、主要由時(shí)鐘發(fā)生器(Internal Clock)、定時(shí)器(Timing)、 取樣信號(hào)發(fā)生器(Sarnpling Clock)、話筒前置放大、自動(dòng)增益控制(AGC)、防混淆濾波器、平滑濾波器、電源調(diào)節(jié)器(Power Conbltlonlng)、地址緩沖器(Address Buffers)、揚(yáng)聲器驅(qū)動(dòng)(Amp)及EEPROM 陣列幾部分組成.圖2-7 ISD1420P 內(nèi)部結(jié)框圖管腳排列如圖2-8所示;A0A7:地址輸入端; VCCA,VSSA:分別為模擬電路正,負(fù)電源端;VCCD,VSSD:分別為數(shù)字電路正,負(fù)電源端;SP+,SP-:分別為喇叭正,負(fù)端,能驅(qū)動(dòng) 16以上的喇
18、叭;XCLK:外部時(shí)鐘;ANA IN,ANA OUT:分別為模擬輸入,模擬輸出;MIC:駐極體話筒輸入;MIC REF:駐極體話筒參考輸入;AGC:自動(dòng)增益控制;/REC:錄音觸發(fā)(低電平有效);/PLAYE:邊沿觸發(fā)放音,此端出現(xiàn)下降沿時(shí),芯片開始放音;
19、0; 圖2-8 ISD1420P 引腳圖11/PLAYL:電平觸發(fā)放音,此端出現(xiàn)下降沿時(shí),芯片開始放音; /RECLED:錄音指示,處于錄音狀態(tài)時(shí),此端為低,可驅(qū)動(dòng) LED 4。圖2-8 ISD1420P 引腳圖二,ISD1420P與單片機(jī)的連接ISD1420P的電路圖如圖 2-9所示,圖中LED用做錄音和放音的指示燈;R8、R10和C6起到上拉的
20、作用;通過(guò)R14和C11的時(shí)間常數(shù)來(lái)決定自動(dòng)增益控制的釋放時(shí)間,470K和4.7uF 的標(biāo)稱值在絕對(duì)大多數(shù)場(chǎng)合下可獲得滿意的效果;C7為電源和地之間的去耦電容;C9和C10為話筒的耦合電容.圖2-9 ISD1420P電路圖2.2.4顯示電路設(shè)計(jì)一、LCD1602 內(nèi)部結(jié)構(gòu)及管腳排列LCD1602 內(nèi)部結(jié)構(gòu)如圖2-10所示圖2-10 LCD1602 內(nèi)部結(jié)構(gòu) 忙碌標(biāo)志:本標(biāo)志(BF)用以表示當(dāng)時(shí)LCD的狀態(tài),若BF=1,則表示處于忙碌狀態(tài),無(wú)法接受外部指令或數(shù)據(jù);若BF=0,則可接受外部指令或數(shù)據(jù)。 &
21、#160; 顯示數(shù)據(jù)存儲(chǔ)器:本存儲(chǔ)器(DDRAM)存儲(chǔ)所要顯示的數(shù)據(jù)。實(shí)際上本存儲(chǔ)器里存放的是要顯示數(shù)據(jù)的ASCII碼,再以ASCII碼為地址,到CGRAM里找到該字型的顯示編碼。此外還包括字型產(chǎn)生器,光標(biāo)閃爍控制電路,偏壓電路,時(shí)序電路等等6。LCD1602管腳排列及功能說(shuō)明如表 2-1所示。表 2-1 LCD1602管腳排列及功能說(shuō)明二、LCD1602電路圖LCD1602電路圖如圖2-11所示,其中J2為8*10k歐姆的排阻作為P0口的上拉電阻,J14為1602液晶顯示器件,左邊的SIP16封裝接口與液晶對(duì)應(yīng),電位器R7是用來(lái)調(diào)節(jié)液晶背光的對(duì)比度的,液晶的4、5、6
22、腳與單片機(jī)相連作為控制信號(hào),714腳與單片機(jī)P0口相連作為數(shù)據(jù)信號(hào)傳送。圖2-11 LCD1602電路圖第三章 系統(tǒng)軟件設(shè)計(jì) 3.1軟件整體設(shè)計(jì)系統(tǒng)軟件主要包括以下幾個(gè)模塊:LCD顯示模塊,DS1302時(shí)鐘芯片模塊,ISD1420P語(yǔ)音芯片模塊,按鍵處理模塊等,通過(guò)這幾個(gè)模塊的有機(jī)結(jié)合和互相調(diào)用來(lái)完系統(tǒng)任務(wù),軟件總體框架結(jié)構(gòu)如圖 3-1所示,主程序流程圖如圖 3-2所示。 SHAPE * MERGEFORMAT 圖3-1軟件總體框架結(jié)構(gòu)圖圖3-2 主程序流程圖及中斷服務(wù)程序流程3.2 軟件子模塊設(shè)計(jì) 3.2.1時(shí)鐘芯片DS1302軟件設(shè)計(jì)
23、一、DS1302編程原理1DS1302內(nèi)部寄存器組織DS1302有關(guān)日歷、時(shí)間的寄存器共有12個(gè),其中有7個(gè)寄存器(讀時(shí)81h8Dh,寫時(shí)80h8Ch),存放的數(shù)據(jù)格式為BCD碼形式,如表3-1所示。表 3-1 DS1302有關(guān)日歷、時(shí)間的寄存器 。 小時(shí)寄存器(85h、84h)的位7用于定義DS1302是運(yùn)行于12小時(shí)模式還是24小時(shí)模式。當(dāng)為高時(shí),選擇12小時(shí)模式。在12小時(shí)模式時(shí),位5是,當(dāng)為1時(shí),表示PM。在24小時(shí)模式時(shí),位5是第二
24、個(gè)10小時(shí)位。秒寄存器(81h、80h)的位7定義為時(shí)鐘暫停標(biāo)志(CH)。當(dāng)該位置為1時(shí),時(shí)鐘振蕩器停止,DS1302處于低功耗狀態(tài);當(dāng)該位置為0時(shí),時(shí)鐘開始運(yùn)行。控制寄存器(8Fh、8Eh)的位7是寫保護(hù)位(WP),其它7位均置為0。在任何的對(duì)時(shí)鐘和RAM的寫操作之前,WP位必須為0。當(dāng)WP位為1時(shí),寫保護(hù)位防止對(duì)任一寄存器的寫操作。 DS1302中附加31字節(jié)靜態(tài)RAM的地址如表4-2所示。表3-2 DS1302數(shù)據(jù)RAM地址DS1302的工作模式寄存器所謂突發(fā)模式是指一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)和RAM數(shù)據(jù)。突發(fā)模式寄存器如表3-3所示。表3-3 突發(fā)模式寄存器此外,DS130
25、2還有充電寄存器等。2讀寫時(shí)序說(shuō)明DS1302是SPI總線驅(qū)動(dòng)方式。它不僅要向寄存器寫入控制字,還需要讀取相應(yīng)寄存器的數(shù)據(jù)。要想與DS1302通信,首先要了解DS1302的控制字。DS1302的控制字如圖 3-3所示。圖 3-3 控制字(即地址及命令字節(jié))控制字的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中;位6:如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1(A4A0):指示操作單元的地址;位0(最低有效位):如為0,表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作??刂谱挚偸菑淖畹臀婚_始輸出。在控制字指令輸入后的下一個(gè)SCL
26、K時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從最低位(0位)開始。同樣,在緊跟8位的控制字指令后的下一個(gè)SCLK脈沖的下降沿,讀出DS1302的數(shù)據(jù),讀出的數(shù)據(jù)也是從最低位到最高位。數(shù)據(jù)讀寫時(shí)序如圖 3-4所示,數(shù)據(jù)可分為單字節(jié)傳送和多字節(jié)傳送。圖 3-4 數(shù)據(jù)讀寫時(shí)序二、DS1302軟件設(shè)計(jì)模塊圖DS1302軟件設(shè)計(jì)模塊圖如圖3-5所示,具體可以包括三個(gè)模塊:寫入數(shù)據(jù)模塊、讀出數(shù)據(jù)模塊、初始化時(shí)間模塊,每個(gè)模塊又可以包含幾個(gè)子函數(shù). SHAPE * MERGEFORMAT 圖 3-5 DS1302程序流程圖
27、3.2.2 LCD1602顯示軟件設(shè)計(jì)及顯示說(shuō)明LCD1602液晶顯示屏是以若干個(gè)5* 8或5* 11點(diǎn)陣塊組成的顯示字符群。每個(gè)點(diǎn)陣塊為一個(gè)字符位,字符間距和行距都為一個(gè)點(diǎn)的寬度,主控制驅(qū)動(dòng)電路為HD44780 (HITACHI ),具有字符發(fā)生器ROM可顯示192種字符160個(gè)5 *7點(diǎn)陣字符和32個(gè)5* 10點(diǎn)陣字符,具有64個(gè)字節(jié)的自定義字符RAM,可自定義8個(gè)5* 8點(diǎn)陣字符或4個(gè)5* 11點(diǎn)陣字符,具有80個(gè)字節(jié)的RAM,標(biāo)準(zhǔn)的接口特性適配M6800系列MPU的操作時(shí)序,低功耗長(zhǎng)壽命高可靠性。一、LCD1602編程原理1控制器接口信號(hào)說(shuō)明控制器接口信號(hào)說(shuō)明如表3-4所示2LCD指令
28、說(shuō)明LCD指令說(shuō)明如表3-5所示。表3-5 LCD指令表指令指令 碼功能RSR/WD7D6D5D4D3D2D1D0清除顯示0000000001將DDRAM填滿"20H",并且設(shè)定DDRAM的地址計(jì)數(shù)器(AC)到"00H"地址歸位000000001X設(shè)定DDRAM的地址計(jì)數(shù)器(AC)到"00H",并且將游標(biāo)移到開頭原點(diǎn)位置;這個(gè)指令不改變DDRAM 的內(nèi)容顯示狀態(tài)開/關(guān)0000001DCBD=1: 整體顯示 ON,C=1: 游標(biāo)ON , B=1:游標(biāo)位置反白允許進(jìn)入點(diǎn)設(shè)定00000
29、001I/DS指定在數(shù)據(jù)的讀取與寫入時(shí),設(shè)定游標(biāo)的移動(dòng)方向及指定顯示的移位游標(biāo)或顯示移位控制000001S/CR/LXX設(shè)定游標(biāo)的移動(dòng)與顯示的移位控制位;這個(gè)指令不改變DDRAM 的內(nèi)容 功能, 設(shè)定00001DLXREXX,DL=0/1:4/8位數(shù)據(jù)RE=1: 擴(kuò)充指令操作,RE=0: 基本指令操作 , ;設(shè)定CGRAM 地址0001AC5AC4AC3AC2AC1AC0設(shè)定CGRAM 地址 設(shè)定DDRAM 地址0010AC5AC4AC3AC2AC1AC0設(shè)定DDRAM 地址(顯示位址)第一行:80H87H第二行:90H97H讀取忙
30、標(biāo)志和地址01BFAC6AC5AC4AC3AC2AC1AC0讀取忙標(biāo)志(BF)可以確認(rèn)內(nèi)部動(dòng)作是否完成,同時(shí)可以讀出地址計(jì)數(shù)器(AC)的值寫數(shù)據(jù)到RAM10數(shù)據(jù)將數(shù)據(jù)D7D0寫入到內(nèi)部的RAM(DDRAM/CGRAM/IRAM/GRAM)讀出RAM的值11數(shù)據(jù)從內(nèi)部RAM讀取數(shù)據(jù)D7D0(DDRAM/CGRAM/IRAM/GRAM)3LCD字型編碼表LCD字型編碼表如圖 3-8所示。圖 3-8 LCD字型編碼表二、LCD1602顯示軟件設(shè)計(jì)流程圖LCD1602顯示程序流程圖如圖 3-9所示,除了該流程圖還有顯示一個(gè)字符到指定位置函數(shù),顯示字符串到指定位置函數(shù),寫指令函數(shù),寫數(shù)據(jù)函數(shù),判忙函數(shù)(
31、內(nèi)部等待函數(shù)),初試化函數(shù)等等。圖 3-9 LCD1602顯示程序流三 LCD1602顯示說(shuō)明根據(jù)功能的不同,顯示界面也不同,主要有以下幾種顯示界面:開機(jī)歡迎界面,正常顯示和調(diào)整設(shè)置界面,鬧鐘設(shè)置界面,分段錄音界面。1開機(jī)歡迎界面開機(jī)歡迎界面如圖 3-10所示。12345678910111213141516AWELCOMEBWELCOME圖 3-10 開機(jī)歡迎界面該界面是起了美化效果,使顯示更具有親和力,更具有人性化的設(shè)計(jì)。2正常顯示和調(diào)整設(shè)置界面正常顯示和調(diào)整設(shè)置界面如圖 3-11所示。12345678910111213141516ATime:00:00:00w?BDate:00
32、-00-00TT圖 3-11 正常顯示和調(diào)整設(shè)置界面顯示說(shuō)明:A6,A7顯示小時(shí),A9,A10顯示分鐘,A12,A13顯示秒;A15的W是week的首字母表示星期的意思,16的?是顯示當(dāng)天的星期,如該天為星期一則顯示為,以此類推;B6,B7顯示小時(shí),B9,B10顯示分鐘,B12,B13顯示秒;B15為T(TRUE)則代表鬧鐘報(bào)音開,為F(false)則為關(guān),B16為T(TRUE)則代表整點(diǎn)報(bào)音開,為F(false)則為關(guān);在該界面中以上提到的幾位都可以通過(guò)按鍵來(lái)調(diào)整和設(shè)置。3鬧鐘設(shè)置界面鬧鐘設(shè)置界面如圖 3-12所示。12345678910111213141516ASETCLOCKBTime:
33、00:00:00O圖 3-12 鬧鐘設(shè)置界面界面顯示說(shuō)明:B6,B7為鬧鐘小時(shí)設(shè)置位,B9,B10為鬧鐘分鐘設(shè)置位,B12,B13為鬧鐘秒設(shè)置位;B15為周期性鬧鐘設(shè)置位,為O(once)則為臨時(shí)性鬧種,為R(repeat)則為周期性鬧鐘;在該界面中以上提到的幾位都可以通過(guò)按鍵來(lái)調(diào)整和設(shè)置。4分段錄音界面分段錄音界面如圖 3-13、圖 3-14、圖 3-15所示。圖 3-13為進(jìn)入錄音功能界面,圖 3-14為錄音開始界面,圖 3-15為錄音結(jié)束界面。12345678910111213141516AWELCOMEBRECORDER圖 3-13 進(jìn)入錄音功能界面123456789101112131
34、41516ARecording:11SB圖 3-14 錄音開始界面12345678910111213141516ARecording:11SBOVER圖 3-15 錄音結(jié)束界面錄音界面顯示說(shuō)明:正在錄音時(shí)顯示A行,其中A11顯示為錄音的字段序號(hào),A15為該段的錄音時(shí)間長(zhǎng)度,錄音時(shí)不能超過(guò)該時(shí)間長(zhǎng)度,超過(guò)部分錄音無(wú)效;一個(gè)字段錄音完成時(shí)顯示圖 3-15界面。結(jié)論本論文主要研究了液晶顯示屏的電子萬(wàn)年歷的設(shè)計(jì),本系統(tǒng)采用了以廣泛使用的單片機(jī)AT89C51技術(shù)為核心,配合時(shí)鐘芯片DS1302。以LCD1602為核心的液晶顯示電路可以直接的顯示結(jié)果。本設(shè)計(jì)的主要優(yōu)點(diǎn)有分辨率高、設(shè)計(jì)簡(jiǎn)單,精度高,成本低等
35、。本次的設(shè)計(jì)使我從中學(xué)到了一些很重要的東西,那就是如何從理論到實(shí)踐的轉(zhuǎn)化,怎樣將我所學(xué)到的知識(shí)運(yùn)用到我以后的工作中去。在大學(xué)的課堂的學(xué)習(xí)只是在給我們灌輸專業(yè)知識(shí),而我們應(yīng)把所學(xué)的用到我們現(xiàn)實(shí)的生活中去,此次的電子時(shí)鐘設(shè)計(jì)給我奠定了一個(gè)實(shí)踐基礎(chǔ),我會(huì)在以后的學(xué)習(xí)、生活中磨練自己,使自己適應(yīng)于以后的競(jìng)爭(zhēng)。當(dāng)然由于時(shí)間和條件的關(guān)系,不可避免的,本系統(tǒng)還存在一些不足之處也有缺點(diǎn),系統(tǒng)的軟件部分還需要進(jìn)行相應(yīng)的調(diào)整,使整個(gè)系統(tǒng)可靠性更高,使用更方便,更趨于完美。謝 辭在本論文的寫作過(guò)程中,我非常感謝我的指導(dǎo)老師左現(xiàn)剛老師,無(wú)論是在課題分析、材料學(xué)習(xí)階段還是在論文設(shè)計(jì)各個(gè)方面,左老
36、師給予的指導(dǎo)和幫助。對(duì)論文的順利完成其了很大的作用。每次的專業(yè)講解使我欽佩,嚴(yán)謹(jǐn)認(rèn)真精神更使我感動(dòng),從他那里我學(xué)習(xí)到的不僅有專業(yè)知識(shí),還有踏實(shí)勤懇、認(rèn)真求實(shí)的優(yōu)良品質(zhì)和工作作風(fēng)。在此論文完成之際,首先向左老師表示衷心的感謝和深深的敬意。此外,對(duì)所有在這四年里的學(xué)習(xí)和生活中,曾經(jīng)教導(dǎo)過(guò)我?guī)椭^(guò)我以及默默的地給予我無(wú)數(shù)的關(guān)心和幫助的老師以及和我一起生活一起學(xué)習(xí)一起走過(guò)四年人生路的同學(xué)們,在此向大家表示最誠(chéng)摯的謝意和最美好的祝福。參考源程序<一>#include<reg52.h> #define uchar unsigned char sbit rs=P12; sbit rw
37、=P11; sbit en=P10; uchar code table=" 2012-03-15 blue" uchar code table1=" 10:34:56 sky" uchar code table2=31,28,31,30,31,30,31,30,30,31,30,31;/平年 uchar code table3=31,29,31,30,31,30,31,30,30,31,30,31;/閏年 uchar count=0; uchar hour=10;uchar min=34;uchar sec=56; uchar t;uchar year1
38、=20;uchar year2=12;uchar month=03;uchar day=15;void delay(uchar m) /延時(shí)子程序 uchar i,j; for(i=m;i>0;i-) for(j=5;j>0;j-) ; void wr_com(uchar com) /寫命令子程序 rs=0; rw=0; en=0; P2=com; delay(1); en=1; delay(5); en=0; void wr_dat(uchar dat)/寫數(shù)據(jù)子程序 rs=1; rw=0;en=0; P2=dat; delay(1);en=1;delay(5);en=0; vo
39、id init() en=0; wr_com(0x38);/設(shè)置16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)接口 wr_com(0x0c); /開顯示,顯示光標(biāo),光標(biāo)閃爍 wr_com(0x06); /當(dāng)讀或?qū)懸粋€(gè)字符后地址指針自動(dòng)加1,整屏不移動(dòng) /數(shù)據(jù)指針清零,所有顯示清零 wr_com(0x80+0x00);/設(shè)置數(shù)據(jù)指針地址 for(t=0;t<16;t+) /寫入第一行數(shù)據(jù) wr_dat(tablet); delay(1); wr_com(0x80+0x40); for(t=0;t<15;t+)/寫入第二行數(shù)據(jù) wr_dat(table1t); delay(1); void tim
40、er_init()/開定時(shí)器0 TMOD=0X01; TH0=(65535-10000)/256; TL0=(65535-10000)%256; EA=1; ET0=1; TR0=1; void hour_sfm(uchar add,uchar da) /刷新時(shí)間函數(shù) uchar shi,ge; shi=da/10; ge=da%10; wr_com(0x80+0x40+add); wr_dat(0x30+shi); wr_dat(0x30+ge);void month_sfm(uchar add,uchar da) /刷新時(shí)間函數(shù) uchar shi,ge; shi=da/10; ge=da
41、%10; wr_com(0x80+add); wr_dat(0x30+shi); wr_dat(0x30+ge); void main() init(); timer_init(); while(1) if(count=100)/計(jì)數(shù)100次為一秒 count=0; sec+;if(sec>=59)/到一分了嗎? sec=0; min+; if(min>=59) /到一小時(shí)了嗎 min=0; hour+; if(hour>=23)/到一天了嗎 hour=0; day+; hour_sfm(2,hour); hour_sfm(5,min); hour_sfm(8,sec); i
42、f(year1*100+year2)%4=0&(year1*100+year2)%100!=0) /是閏年嗎 if(day>=table3month-1)/天數(shù)到了嗎 day=1;month+; if(month=13)/月數(shù)到了嗎month=1;year2+; if(year2>=99) /年的低位滿了嗎 year2=0; year1+;month_sfm(1,year1);/進(jìn)入年高位刷新函數(shù) month_sfm(3,year2); /進(jìn)入年低位刷新函數(shù) month_sfm(6,month); /進(jìn)入月刷新函數(shù)month_sfm(9,day); /進(jìn)入年日刷新函數(shù) el
43、se if(day>=table2month-1) /天數(shù)到了嗎day=1;month+;if(month=13) /月數(shù)到了嗎 month=1;year2+; if(year2>=99) /年的低位滿了嗎 year2=0; year1+;month_sfm(1,year1); /進(jìn)入年高位刷新函數(shù) month_sfm(3,year2); /進(jìn)入年低位刷新函數(shù) month_sfm(6,month); /進(jìn)入月刷新函數(shù) month_sfm(9,day); /進(jìn)入日刷新函數(shù) void timer0() interrupt 1/定時(shí)器服務(wù)程序 TH0=(65535-10000)/256;
44、 TL0=(65535-10000)%256;/重裝初值 count+; /計(jì)數(shù)器加1 參考源程序<二>/*/*此萬(wàn)年歷程序由洪春峰同學(xué)自主編寫,不妥之處,還請(qǐng)不吝賜教,謝謝!(僅用于學(xué)習(xí)交流,謝絕他用)*/#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit rs=P25;sbit rw=P26;sbit en=P27;uchar code table="2011-08-15 MON "uchar code table1="17:53:00&qu
45、ot;uchar code table2="SUNMONTUSWENTHRFRISAT"uchar shi=15,fen=52,miao=0,time=0,a=2,ri=16,yue=8,nian=11,shiji=20;/*void delay(uchar z) /延時(shí)函數(shù)uchar x;while(z-)for(x=110;x>0;x-); /*void write_com(uchar com) /寫指令函數(shù)rs=0;rw=0;P0=com;delay(5);en=1;delay(5);en=0;/*void write_date(uchar date) /寫數(shù)據(jù)函數(shù)rs=1;rw=0;P0=date;delay(5);en=1;delay(5);en=0;/*void init()/初始化函數(shù)uchar num;en=0;rs=0;rw=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80+1);for(num=0;num<14;num+)write_date(tablenum);delay(5);write_com(0x80+0x40+4);for(num=0;num<8;num+)write_date(ta
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 寵物營(yíng)養(yǎng)師崗位面試問(wèn)題及答案
- 河南省新鄉(xiāng)市新鄉(xiāng)市一中2025屆化學(xué)高一下期末質(zhì)量檢測(cè)試題含解析
- 統(tǒng)編版2024-2025學(xué)年一年級(jí)語(yǔ)文第二學(xué)期期末階段質(zhì)量檢測(cè)
- 高考英語(yǔ)寫作萬(wàn)能模板(素材)
- 北京車輛登記管理辦法
- 北航科技競(jìng)賽管理辦法
- 非物質(zhì)文化遺產(chǎn)的保護(hù)與傳承
- FPGA信號(hào)發(fā)生器原理與應(yīng)用
- 古代文學(xué)作品鑒賞與解讀
- 普通小店晉升管理辦法
- 酒店前臺(tái)案例分析
- 消防應(yīng)急通信培訓(xùn)
- 消防應(yīng)急通信保障
- XX小學(xué)預(yù)防未成年人違法犯罪工作制度
- 火災(zāi)自動(dòng)報(bào)警系統(tǒng)查驗(yàn)報(bào)告
- 業(yè)務(wù)傭金提成協(xié)議書模板
- GB/T 29469-2024潔凈室及相關(guān)受控環(huán)境性能及合理性評(píng)價(jià)
- 國(guó)家開放大學(xué)《城市管理學(xué)》作業(yè)-“城市病”表現(xiàn)及其治理
- 甄嬛傳電子版劇本第01-10集
- 【中國(guó)信科-中信科移動(dòng)】2023星地融合通信白皮書
- 廚師中暑防范知識(shí)講座
評(píng)論
0/150
提交評(píng)論