基于LCD1602液晶顯示屏的電子萬年歷設計兩個C程序_第1頁
基于LCD1602液晶顯示屏的電子萬年歷設計兩個C程序_第2頁
基于LCD1602液晶顯示屏的電子萬年歷設計兩個C程序_第3頁
基于LCD1602液晶顯示屏的電子萬年歷設計兩個C程序_第4頁
基于LCD1602液晶顯示屏的電子萬年歷設計兩個C程序_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、基于LCD1602液晶顯示屏的電子萬年歷設計 基于LCD1602液晶顯示屏的電子萬年歷設計摘  要  現(xiàn)在是一個知識爆炸的新時代,新產(chǎn)品、新技術層出不窮,電子技術的發(fā)展更是日新月異??梢院敛豢鋸埖恼f,電子技術的應用無處不在,電子技術正在不斷地改變我們的生活,改變著我們的世界。在這快速發(fā)展的年代,時間對人們來說是越來越寶貴,在快節(jié)奏的生活時,人們往往忘記了時間,一旦遇到重要的事情而忘記了時間,這將會帶來很大的損失。因此我們需要一個定時系統(tǒng)來提醒這些忙碌的人,而數(shù)字化的鐘表給人們帶來了極大的方便。由于單片機具有靈活性強、成本低、功耗低、保密性好等特點,所以電子日歷時鐘

2、一般都以單片機為核心,外加一些外圍設備來實現(xiàn)。   本設計是一種基于液晶顯示屏的電子萬年歷,該系統(tǒng)結(jié)合了LCD顯示技術,斷電時間保護技術和語音錄放技術,系統(tǒng)用點陣式液晶顯示時間和日期,具有人性化和美觀的頁面效果,除具備傳統(tǒng)的萬年歷所具有的時間顯示和調(diào)整功能之外,該系統(tǒng)還兼有語音報時,閏年補償?shù)裙δ?;以單片機的C51語言進行軟件設計,增加了程序的可讀性和可移植性,為了便于擴展和更改,軟件的設計采用模塊化結(jié)構(gòu),使程序設計的邏輯關系更加簡潔明了。實際使用中該設計能準確地顯示時間和日期,能準確清晰地完成語音報時功能。 關鍵詞:  單片機,LCD,語音報

3、時,萬年歷 引言      萬年歷是采用數(shù)字電路實現(xiàn)對.時,分,秒.數(shù)字顯示的計時裝置,廣泛用于個人家庭,車站, 碼頭辦公室等公共場所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應用,使得數(shù)字鐘的精度,遠遠超過老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動起閉路燈、定時開關烘箱、通斷動力設備、甚至各種定時電氣的自動啟用等,但是所有這些,都是以鐘表數(shù)字化為基礎的。因此,研究萬年歷及擴大其應用,

4、有著非?,F(xiàn)實的意義。市場上有許多電子鐘的專用芯片如:LM8363、LM8365等,但它們功能單一,電路連接復雜,不便于調(diào)試制作!但是考慮到用單片機配合時鐘芯片,可制成功能任意的電子鐘,而且可以做到硬件簡單、成本低廉。所以本系統(tǒng)采用了以廣泛使用的單片機AT89C51技術為核心,配合時鐘芯片DS1302。軟硬件結(jié)合,使硬件部分大為簡化,提高了系統(tǒng)穩(wěn)定性,并采用LED顯示電路、鍵盤電路,使人機交互簡便易行,此外結(jié)合音樂鬧鈴電路、看門狗和供電電路。本方案設計出的數(shù)字鐘可以顯示時間、設置鬧鈴功能之外。本設計中我重點研究實現(xiàn)了單片機+時鐘芯片這種模式的萬年歷,從原理上對單片機和時鐘芯片有了深一步的認識,這

5、些基本功能完成后,在軟件基礎上實現(xiàn)世界時,農(nóng)歷功能。本設計在很多場合都能用到,可以把此萬年歷裝在鏡框中或其它工藝品中,以便更加實用。第一章     概論  1.1系統(tǒng)總體框圖本設計的核心部分為單片機控制器,系統(tǒng)的各項功能由其它各部分單元電路來完成,單元電路主要包括:時鐘電路部分、顯示部分、語音部分、人機交互控制接口部分等,單片機通過程序來控制其它各部分統(tǒng)一協(xié)調(diào)地來完成系統(tǒng)的各項功能,本設計硬件電路較簡單,但軟件部分較復雜,所有功能都要通過軟件來實現(xiàn),系統(tǒng)總體設計如圖1-1所示。 SHAPE  * MERGEFORMAT

6、60;圖1-1  系統(tǒng)總體設計框圖1.2 主控制器單片機的選擇采用比較流行的AT89S52作為電路的控制核心,AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用Atmel 公司高密度非易失性存儲器技術制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程(具有ISP功能),亦適于常規(guī)編程器。在單芯上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。采用AT89C55,它是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機,片

7、內(nèi)含20kbytes 的可反復擦寫的Flash只讀程序存儲器(ROM)和256*8bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產(chǎn),與標準MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8 位中央處理器(CPU)和Flash存儲單元,功能強大AT89C55單片機適合于許多較為復雜控制應用場合。雖然AT89S52的ISP下載功能非常優(yōu)秀,但它只有8KROM,由于本設計的程序代碼比較多,所以選用AT89C55(具有20KROM)。1.3 時鐘電路的選擇采用時鐘芯片DS1302,DS1302是DALLAS公司推出的涓流充電時鐘芯片,內(nèi)含有一個實時時

8、鐘/日歷和31字節(jié)靜態(tài)RAM,通過簡單的串行接口與單片機進行通信。實時時鐘/日歷電路提供秒、分、時、日、日期、月、年的信息,每月的天數(shù)和閏年的天數(shù)可自動調(diào)整,時鐘操作可通過AM/PM指示決定采用24或12小時格式。DS1302與單片機之間能簡單地采用同步串行的方式進行通信,僅需用到三根口線:RES(復位),I/O(數(shù)據(jù)線),SCLK(串行時鐘)。時鐘/RAM的讀/寫數(shù)據(jù)以一個字節(jié)或多達31個字節(jié)的字符組方式通信。DS1302工作時功耗很低,保持數(shù)據(jù)和時鐘信息時功率小于1mW1。DS1302是由DS1202改進而來的,增加了以下的特性:雙電源管腳用于主電源和備份電源供應,Vcc1為可編程涓流充電

9、電源,附加七個字節(jié)存儲器。它廣泛應用于電話、傳真、便攜式儀器以及電池供電的儀器儀表等產(chǎn)品領域。實時時鐘具有能計算2100年之前的秒、分、時、日、日期、星期、月、年的能力,還有閏年自動調(diào)整和補償?shù)哪芰Γ?1×8位RAM;串行I/O口方式使得管腳數(shù)量最少;寬范圍工作電壓:2.05.5V;工作電流:2.0V 時,小于300nA;讀/寫時鐘或RAM數(shù)據(jù)時,有兩種傳送方式:單字節(jié)傳送和多字節(jié)傳送(字符組方式);8腳DIP 封裝或可選8腳SOIC;簡單3 線接口;與TTL 兼容(Vcc=5V);可選工業(yè)級溫度范圍:-40+85;與DS1202 兼容。1.4 語音報音電路的選擇直接使用語音芯片,語

10、音芯片具有使用方便,外圍元件少,只需少量元件就可以組成一個功能齊全的固體錄放機,重放時音質(zhì)好,沒有常見的背景噪音,提供零功率信息存儲,無需備用電源,掉電后錄音內(nèi)容可永久保留等優(yōu)點。ISD1420P語音芯片采用 CMOS 技術,單片錄放時間20秒,音質(zhì)好,內(nèi)含震蕩器、話筒前置放大、自動增益控制、防混淆濾波器、平滑濾波器、揚聲器驅(qū)動及 EEPROM 陣列。最小的錄放系統(tǒng)僅需麥克風、喇叭、兩個按鈕、電源及少數(shù)電阻電容。在錄放操作結(jié)束后,芯片自動進入低功耗節(jié)電模式、功耗僅 0.5uA,芯片采用多電平直接模擬量存儲專利技術,每個采樣直接存儲在片內(nèi)單個 EEPROM 單元中,因此能夠非常真實、自然地再現(xiàn)語

11、音、音樂、音調(diào)等各種效果,避免了一般固體錄音因電路量化和壓縮造成的量化噪聲和“金屬聲”。采樣頻率從 5.3,6.4 到 8.0KHz,對音質(zhì)僅有輕微影響。片內(nèi)信息可保存 100 年(無需電源),EEPROM 單片可反復錄音十萬次,能直接驅(qū)動16以上的喇叭2。1.5 顯示電路和鍵盤的選擇顯示采用1602液晶屏,它能顯示2行,每行顯示16個數(shù)字或字母(5*7字型),也可顯示一行,每行16個字(5*10字型),可顯示的內(nèi)容比較多(包括數(shù)字,字母和很多符號),采用并行數(shù)據(jù)傳送,這樣1602LCD共占用單片機11個口線,相對于數(shù)碼管,占用口線少,電路簡單,無需外圍驅(qū)動電路,占用PCB面積也較少;但對于編

12、程來說,液晶顯示的編程比較復雜,而且亮度也比較差,只能在近距離看到時間和日期,能見度不如數(shù)碼管好。鍵盤部分比較簡單,只用到4個按鍵,采用獨立式非編碼鍵盤。第二章  系統(tǒng)硬件電路設計 2.1 系統(tǒng)整體硬件電路設計本設計采用時鐘芯片作為時鐘的基準,并且該芯片具有斷電保護時間功能(斷電后采用3.5v電子供電),顯示部分采用LCD顯示,可以顯示年月日時分秒星期等等,該萬年歷具有隨時可調(diào)整時分秒年月日的功能,最明顯的功能是具有語音報時的功能,比已有的單調(diào)的鬧鐘聲音更具有親和力,具體的調(diào)整,錄音和功能設置采用4個按鍵和LCD顯示屏共同來實現(xiàn)??傮w硬件設計框圖如圖2-1所示: SHAPE

13、  * MERGEFORMAT 圖2-1 語音萬年歷系統(tǒng)原理框圖2.2 硬件單元電路設計單元電路主要由單片機最小系統(tǒng)、時鐘芯片電路、LCD顯示電路、功能鍵電路、語音電路等組成。2.2.1 單片機最小系統(tǒng)設計AT89C55單片機有40腳PDIP、42腳PDIP等,本系統(tǒng)采用40腳PDIP的封裝,其引腳如圖22所示,AT89C55是AT89C5×系列單片機中性能居中、很有代表性的產(chǎn)品,其主要特性如下:(1)兼容MCS51產(chǎn)品;(2)20K字節(jié)可擦寫1000次以上Flash ROM;(3)工作電壓為+4V+5.5V;(4)有256*8字節(jié)RAM;(5)32個可編程IO口

14、;(6)3個16位定時/計數(shù)器;(7)8個中斷源;(8)一個全雙工UART串行通信口;(9)靜態(tài)工作頻率在033Mhz;(10)休眠和節(jié)電保持兩種省電模式;(11)中斷喚醒省電模式功能;(12)看門狗定時器;(13)雙數(shù)據(jù)指針(DPTR);(14)電源關閉標志。它相對AT89C51、89C52增加了ROM空間,內(nèi)部看門狗定時器、雙數(shù)據(jù)指針,全新的加密算法等功能,但價格基本不變,甚至更低。對51系列單片機來說,最小系統(tǒng)一般應該包括:單片機、晶振電路、復位電路。電路如圖2-3所示。圖2-2   AT89C55單片機引腳圖     

15、;              圖2-3   AT89C55單片機最小系統(tǒng)圖2.2.2 時鐘電路設計一、 DS1302 的管腳排列及描述管腳描述:(管腳排列如圖2-4所示)圖2-4  DS1302管腳配置圖Vcc1:主電源;Vcc2:備份電源。當Vcc2>Vcc1+0.2V時,由Vcc2向DS1302供電,當Vcc2< Vcc1時,由Vcc1向DS1302供電;SCLK:串行時鐘輸入;I/O:雙向數(shù)據(jù)線;  

16、;   RST:復位信號,在讀、寫數(shù)據(jù)期間,必須為高;   X1,X2:晶振輸入端二、DS1302 的內(nèi)部原理圖DS1302 的內(nèi)部原理圖如圖2-5所示,主要由電源控制、晶體振蕩、輸入移位寄存器、通訊與控制邏輯和RAM組成,晶體振蕩負責產(chǎn)生最小時鐘單位,輸入移位寄存器負責數(shù)據(jù)的輸入與輸出,RAM用來存儲數(shù)據(jù)。 SHAPE  * MERGEFORMAT 圖2-5  DS1302 的內(nèi)部原理圖2.2.3 語音電路設計一、ISD1420P 的內(nèi)部結(jié)構(gòu)及管腳排列ISD1420P內(nèi)部結(jié)構(gòu)圖如圖2-7所示,

17、主要由時鐘發(fā)生器(Internal Clock)、定時器(Timing)、 取樣信號發(fā)生器(Sarnpling Clock)、話筒前置放大、自動增益控制(AGC)、防混淆濾波器、平滑濾波器、電源調(diào)節(jié)器(Power Conbltlonlng)、地址緩沖器(Address Buffers)、揚聲器驅(qū)動(Amp)及EEPROM 陣列幾部分組成.圖2-7  ISD1420P 內(nèi)部結(jié)框圖管腳排列如圖2-8所示;A0A7:地址輸入端; VCCA,VSSA:分別為模擬電路正,負電源端;VCCD,VSSD:分別為數(shù)字電路正,負電源端;SP+,SP-:分別為喇叭正,負端,能驅(qū)動 16以上的喇

18、叭;XCLK:外部時鐘;ANA IN,ANA OUT:分別為模擬輸入,模擬輸出;MIC:駐極體話筒輸入;MIC REF:駐極體話筒參考輸入;AGC:自動增益控制;/REC:錄音觸發(fā)(低電平有效);/PLAYE:邊沿觸發(fā)放音,此端出現(xiàn)下降沿時,芯片開始放音;                            

19、0;               圖2-8  ISD1420P 引腳圖11/PLAYL:電平觸發(fā)放音,此端出現(xiàn)下降沿時,芯片開始放音;     /RECLED:錄音指示,處于錄音狀態(tài)時,此端為低,可驅(qū)動 LED 4。圖2-8  ISD1420P 引腳圖二,ISD1420P與單片機的連接ISD1420P的電路圖如圖 2-9所示,圖中LED用做錄音和放音的指示燈;R8、R10和C6起到上拉的

20、作用;通過R14和C11的時間常數(shù)來決定自動增益控制的釋放時間,470K和4.7uF 的標稱值在絕對大多數(shù)場合下可獲得滿意的效果;C7為電源和地之間的去耦電容;C9和C10為話筒的耦合電容.圖2-9  ISD1420P電路圖2.2.4顯示電路設計一、LCD1602 內(nèi)部結(jié)構(gòu)及管腳排列LCD1602 內(nèi)部結(jié)構(gòu)如圖2-10所示圖2-10  LCD1602 內(nèi)部結(jié)構(gòu)     忙碌標志:本標志(BF)用以表示當時LCD的狀態(tài),若BF=1,則表示處于忙碌狀態(tài),無法接受外部指令或數(shù)據(jù);若BF=0,則可接受外部指令或數(shù)據(jù)。  &

21、#160;  顯示數(shù)據(jù)存儲器:本存儲器(DDRAM)存儲所要顯示的數(shù)據(jù)。實際上本存儲器里存放的是要顯示數(shù)據(jù)的ASCII碼,再以ASCII碼為地址,到CGRAM里找到該字型的顯示編碼。此外還包括字型產(chǎn)生器,光標閃爍控制電路,偏壓電路,時序電路等等6。LCD1602管腳排列及功能說明如表 2-1所示。表 2-1  LCD1602管腳排列及功能說明二、LCD1602電路圖LCD1602電路圖如圖2-11所示,其中J2為8*10k歐姆的排阻作為P0口的上拉電阻,J14為1602液晶顯示器件,左邊的SIP16封裝接口與液晶對應,電位器R7是用來調(diào)節(jié)液晶背光的對比度的,液晶的4、5、6

22、腳與單片機相連作為控制信號,714腳與單片機P0口相連作為數(shù)據(jù)信號傳送。圖2-11  LCD1602電路圖第三章 系統(tǒng)軟件設計 3.1軟件整體設計系統(tǒng)軟件主要包括以下幾個模塊:LCD顯示模塊,DS1302時鐘芯片模塊,ISD1420P語音芯片模塊,按鍵處理模塊等,通過這幾個模塊的有機結(jié)合和互相調(diào)用來完系統(tǒng)任務,軟件總體框架結(jié)構(gòu)如圖 3-1所示,主程序流程圖如圖 3-2所示。 SHAPE  * MERGEFORMAT  圖3-1軟件總體框架結(jié)構(gòu)圖圖3-2 主程序流程圖及中斷服務程序流程3.2 軟件子模塊設計 3.2.1時鐘芯片DS1302軟件設計

23、一、DS1302編程原理1DS1302內(nèi)部寄存器組織DS1302有關日歷、時間的寄存器共有12個,其中有7個寄存器(讀時81h8Dh,寫時80h8Ch),存放的數(shù)據(jù)格式為BCD碼形式,如表3-1所示。表 3-1  DS1302有關日歷、時間的寄存器 。            小時寄存器(85h、84h)的位7用于定義DS1302是運行于12小時模式還是24小時模式。當為高時,選擇12小時模式。在12小時模式時,位5是,當為1時,表示PM。在24小時模式時,位5是第二

24、個10小時位。秒寄存器(81h、80h)的位7定義為時鐘暫停標志(CH)。當該位置為1時,時鐘振蕩器停止,DS1302處于低功耗狀態(tài);當該位置為0時,時鐘開始運行??刂萍拇嫫鳎?Fh、8Eh)的位7是寫保護位(WP),其它7位均置為0。在任何的對時鐘和RAM的寫操作之前,WP位必須為0。當WP位為1時,寫保護位防止對任一寄存器的寫操作。  DS1302中附加31字節(jié)靜態(tài)RAM的地址如表4-2所示。表3-2 DS1302數(shù)據(jù)RAM地址DS1302的工作模式寄存器所謂突發(fā)模式是指一次傳送多個字節(jié)的時鐘信號和RAM數(shù)據(jù)。突發(fā)模式寄存器如表3-3所示。表3-3 突發(fā)模式寄存器此外,DS130

25、2還有充電寄存器等。2讀寫時序說明DS1302是SPI總線驅(qū)動方式。它不僅要向寄存器寫入控制字,還需要讀取相應寄存器的數(shù)據(jù)。要想與DS1302通信,首先要了解DS1302的控制字。DS1302的控制字如圖 3-3所示。圖 3-3   控制字(即地址及命令字節(jié))控制字的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中;位6:如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1(A4A0):指示操作單元的地址;位0(最低有效位):如為0,表示要進行寫操作,為1表示進行讀操作。控制字總是從最低位開始輸出。在控制字指令輸入后的下一個SCL

26、K時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從最低位(0位)開始。同樣,在緊跟8位的控制字指令后的下一個SCLK脈沖的下降沿,讀出DS1302的數(shù)據(jù),讀出的數(shù)據(jù)也是從最低位到最高位。數(shù)據(jù)讀寫時序如圖 3-4所示,數(shù)據(jù)可分為單字節(jié)傳送和多字節(jié)傳送。圖 3-4   數(shù)據(jù)讀寫時序二、DS1302軟件設計模塊圖DS1302軟件設計模塊圖如圖3-5所示,具體可以包括三個模塊:寫入數(shù)據(jù)模塊、讀出數(shù)據(jù)模塊、初始化時間模塊,每個模塊又可以包含幾個子函數(shù). SHAPE  * MERGEFORMAT 圖 3-5   DS1302程序流程圖

27、3.2.2 LCD1602顯示軟件設計及顯示說明LCD1602液晶顯示屏是以若干個5* 8或5* 11點陣塊組成的顯示字符群。每個點陣塊為一個字符位,字符間距和行距都為一個點的寬度,主控制驅(qū)動電路為HD44780 (HITACHI ),具有字符發(fā)生器ROM可顯示192種字符160個5 *7點陣字符和32個5* 10點陣字符,具有64個字節(jié)的自定義字符RAM,可自定義8個5* 8點陣字符或4個5* 11點陣字符,具有80個字節(jié)的RAM,標準的接口特性適配M6800系列MPU的操作時序,低功耗長壽命高可靠性。一、LCD1602編程原理1控制器接口信號說明控制器接口信號說明如表3-4所示2LCD指令

28、說明LCD指令說明如表3-5所示。表3-5  LCD指令表指令指令 碼功能RSR/WD7D6D5D4D3D2D1D0清除顯示0000000001將DDRAM填滿"20H",并且設定DDRAM的地址計數(shù)器(AC)到"00H"地址歸位000000001X設定DDRAM的地址計數(shù)器(AC)到"00H",并且將游標移到開頭原點位置;這個指令不改變DDRAM 的內(nèi)容顯示狀態(tài)開/關0000001DCBD=1: 整體顯示 ON,C=1: 游標ON ,   B=1:游標位置反白允許進入點設定00000

29、001I/DS指定在數(shù)據(jù)的讀取與寫入時,設定游標的移動方向及指定顯示的移位游標或顯示移位控制000001S/CR/LXX設定游標的移動與顯示的移位控制位;這個指令不改變DDRAM 的內(nèi)容 功能,  設定00001DLXREXX,DL=0/1:4/8位數(shù)據(jù)RE=1: 擴充指令操作,RE=0: 基本指令操作 , ;設定CGRAM 地址0001AC5AC4AC3AC2AC1AC0設定CGRAM 地址 設定DDRAM 地址0010AC5AC4AC3AC2AC1AC0設定DDRAM 地址(顯示位址)第一行:80H87H第二行:90H97H讀取忙

30、標志和地址01BFAC6AC5AC4AC3AC2AC1AC0讀取忙標志(BF)可以確認內(nèi)部動作是否完成,同時可以讀出地址計數(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顯示軟件設計流程圖LCD1602顯示程序流程圖如圖 3-9所示,除了該流程圖還有顯示一個字符到指定位置函數(shù),顯示字符串到指定位置函數(shù),寫指令函數(shù),寫數(shù)據(jù)函數(shù),判忙函數(shù)(

31、內(nèi)部等待函數(shù)),初試化函數(shù)等等。圖 3-9  LCD1602顯示程序流三 LCD1602顯示說明根據(jù)功能的不同,顯示界面也不同,主要有以下幾種顯示界面:開機歡迎界面,正常顯示和調(diào)整設置界面,鬧鐘設置界面,分段錄音界面。1開機歡迎界面開機歡迎界面如圖 3-10所示。12345678910111213141516AWELCOMEBWELCOME圖 3-10 開機歡迎界面該界面是起了美化效果,使顯示更具有親和力,更具有人性化的設計。2正常顯示和調(diào)整設置界面正常顯示和調(diào)整設置界面如圖 3-11所示。12345678910111213141516ATime:00:00:00w?BDate:00

32、-00-00TT圖 3-11 正常顯示和調(diào)整設置界面顯示說明:A6,A7顯示小時,A9,A10顯示分鐘,A12,A13顯示秒;A15的W是week的首字母表示星期的意思,16的?是顯示當天的星期,如該天為星期一則顯示為,以此類推;B6,B7顯示小時,B9,B10顯示分鐘,B12,B13顯示秒;B15為T(TRUE)則代表鬧鐘報音開,為F(false)則為關,B16為T(TRUE)則代表整點報音開,為F(false)則為關;在該界面中以上提到的幾位都可以通過按鍵來調(diào)整和設置。3鬧鐘設置界面鬧鐘設置界面如圖 3-12所示。12345678910111213141516ASETCLOCKBTime:

33、00:00:00O圖 3-12 鬧鐘設置界面界面顯示說明:B6,B7為鬧鐘小時設置位,B9,B10為鬧鐘分鐘設置位,B12,B13為鬧鐘秒設置位;B15為周期性鬧鐘設置位,為O(once)則為臨時性鬧種,為R(repeat)則為周期性鬧鐘;在該界面中以上提到的幾位都可以通過按鍵來調(diào)整和設置。4分段錄音界面分段錄音界面如圖 3-13、圖 3-14、圖 3-15所示。圖 3-13為進入錄音功能界面,圖 3-14為錄音開始界面,圖 3-15為錄音結(jié)束界面。12345678910111213141516AWELCOMEBRECORDER圖 3-13 進入錄音功能界面123456789101112131

34、41516ARecording:11SB圖 3-14 錄音開始界面12345678910111213141516ARecording:11SBOVER圖 3-15 錄音結(jié)束界面錄音界面顯示說明:正在錄音時顯示A行,其中A11顯示為錄音的字段序號,A15為該段的錄音時間長度,錄音時不能超過該時間長度,超過部分錄音無效;一個字段錄音完成時顯示圖 3-15界面。結(jié)論本論文主要研究了液晶顯示屏的電子萬年歷的設計,本系統(tǒng)采用了以廣泛使用的單片機AT89C51技術為核心,配合時鐘芯片DS1302。以LCD1602為核心的液晶顯示電路可以直接的顯示結(jié)果。本設計的主要優(yōu)點有分辨率高、設計簡單,精度高,成本低等

35、。本次的設計使我從中學到了一些很重要的東西,那就是如何從理論到實踐的轉(zhuǎn)化,怎樣將我所學到的知識運用到我以后的工作中去。在大學的課堂的學習只是在給我們灌輸專業(yè)知識,而我們應把所學的用到我們現(xiàn)實的生活中去,此次的電子時鐘設計給我奠定了一個實踐基礎,我會在以后的學習、生活中磨練自己,使自己適應于以后的競爭。當然由于時間和條件的關系,不可避免的,本系統(tǒng)還存在一些不足之處也有缺點,系統(tǒng)的軟件部分還需要進行相應的調(diào)整,使整個系統(tǒng)可靠性更高,使用更方便,更趨于完美。謝   辭在本論文的寫作過程中,我非常感謝我的指導老師左現(xiàn)剛老師,無論是在課題分析、材料學習階段還是在論文設計各個方面,左老

36、師給予的指導和幫助。對論文的順利完成其了很大的作用。每次的專業(yè)講解使我欽佩,嚴謹認真精神更使我感動,從他那里我學習到的不僅有專業(yè)知識,還有踏實勤懇、認真求實的優(yōu)良品質(zhì)和工作作風。在此論文完成之際,首先向左老師表示衷心的感謝和深深的敬意。此外,對所有在這四年里的學習和生活中,曾經(jīng)教導過我?guī)椭^我以及默默的地給予我無數(shù)的關心和幫助的老師以及和我一起生活一起學習一起走過四年人生路的同學們,在此向大家表示最誠摯的謝意和最美好的祝福。參考源程序<一>#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) /延時子程序 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);/設置16*2顯示,5*7點陣,8位數(shù)據(jù)接口 wr_com(0x0c); /開顯示,顯示光標,光標閃爍 wr_com(0x06); /當讀或?qū)懸粋€字符后地址指針自動加1,整屏不移動 /數(shù)據(jù)指針清零,所有顯示清零 wr_com(0x80+0x00);/設置數(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()/開定時器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ù) 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ù) 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)/計數(shù)100次為一秒 count=0; sec+;if(sec>=59)/到一分了嗎? sec=0; min+; if(min>=59) /到一小時了嗎 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);/進入年高位刷新函數(shù) month_sfm(3,year2); /進入年低位刷新函數(shù) month_sfm(6,month); /進入月刷新函數(shù)month_sfm(9,day); /進入年日刷新函數(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); /進入年高位刷新函數(shù) month_sfm(3,year2); /進入年低位刷新函數(shù) month_sfm(6,month); /進入月刷新函數(shù) month_sfm(9,day); /進入日刷新函數(shù) void timer0() interrupt 1/定時器服務程序 TH0=(65535-10000)/256;

44、 TL0=(65535-10000)%256;/重裝初值 count+; /計數(shù)器加1 參考源程序<二>/*/*此萬年歷程序由洪春峰同學自主編寫,不妥之處,還請不吝賜教,謝謝?。▋H用于學習交流,謝絕他用)*/#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ù)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. 本站所有資源如無特殊說明,都需要本地電腦安裝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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論