基于lpc lcd顯示時鐘(共23頁)_第1頁
基于lpc lcd顯示時鐘(共23頁)_第2頁
基于lpc lcd顯示時鐘(共23頁)_第3頁
基于lpc lcd顯示時鐘(共23頁)_第4頁
基于lpc lcd顯示時鐘(共23頁)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、ARM基于LPC2124 RTC LCD顯示(xinsh)電子時鐘ARM電子時鐘(shzhng)目錄TOC o 1-3 h u HYPERLINK l _Toc28995 第一章 設(shè)計(shj)任務(wù)和要求 PAGEREF _Toc28995 4 HYPERLINK l _Toc5781 一、課設(shè)目的 PAGEREF _Toc5781 4 HYPERLINK l _Toc31150 二、輔助設(shè)備 PAGEREF _Toc31150 4 HYPERLINK l _Toc19301 三、實驗內(nèi)容 PAGEREF _Toc19301 4 HYPERLINK l _Toc18603 第二章 主要芯片及應(yīng)

2、用軟件簡介 PAGEREF _Toc18603 4 HYPERLINK l _Toc3914 一、RTC簡介 PAGEREF _Toc3914 4 HYPERLINK l _Toc32516 1.1RTC PAGEREF _Toc32516 4 HYPERLINK l _Toc10305 1.2硬件結(jié)構(gòu) PAGEREF _Toc10305 4 HYPERLINK l _Toc14778 二、 LPC2124簡介(jin ji) PAGEREF _Toc14778 5 HYPERLINK l _Toc14961 1.1LPC2124管腳 PAGEREF _Toc14961 5 HYPERLINK

3、 l _Toc17112 1.2LPC2124 RTC PAGEREF _Toc17112 5 HYPERLINK l _Toc19507 三、芯片(xn pin)LM016L簡介 PAGEREF _Toc19507 6 HYPERLINK l _Toc16866 3.1液晶顯示原理(yunl) PAGEREF _Toc16866 6 HYPERLINK l _Toc32577 3.2引腳功能說明 PAGEREF _Toc32577 6 HYPERLINK l _Toc12496 四、 Proteus簡介 PAGEREF _Toc12496 8 HYPERLINK l _Toc20563 4.

4、1軟件特點 PAGEREF _Toc20563 8 HYPERLINK l _Toc16809 4.2與Keil聯(lián)調(diào) PAGEREF _Toc16809 9 HYPERLINK l _Toc30904 Keilc與Proteus連接調(diào)試 PAGEREF _Toc30904 9 HYPERLINK l _Toc578 五、 Keil簡介 PAGEREF _Toc578 9 HYPERLINK l _Toc10673 5.1Keil開發(fā)基本常識 PAGEREF _Toc10673 9 HYPERLINK l _Toc13997 5.2軟件優(yōu)點 PAGEREF _Toc13997 10 HYPERL

5、INK l _Toc22416 第三章 時鐘軟件設(shè)計 PAGEREF _Toc22416 11 HYPERLINK l _Toc26709 一、 軟件流程圖 PAGEREF _Toc26709 11 HYPERLINK l _Toc15084 二、 軟件詳情 PAGEREF _Toc15084 11 HYPERLINK l _Toc22245 第四章 硬件設(shè)計 PAGEREF _Toc22245 13 HYPERLINK l _Toc8303 一、 電路效果圖 PAGEREF _Toc8303 13 HYPERLINK l _Toc8547 二、 晶振電路 PAGEREF _Toc8547 1

6、3 HYPERLINK l _Toc9216 三、 顯示(xinsh)電路 PAGEREF _Toc9216 14 HYPERLINK l _Toc28969 第五章(w zhn) 心得體會 PAGEREF _Toc28969 15 HYPERLINK l _Toc6750 附錄(fl) PAGEREF _Toc6750 16 設(shè)計任務(wù)(rn wu)和要求一、課設(shè)目的(md)了解時鐘(shzhng)的硬件控制原理及設(shè)計方法掌握RTC模塊程序設(shè)計方法二、輔助設(shè)備Proteus模擬ARM7芯片設(shè)計Keil編譯C語言,連接生成Hex文件 三、實驗內(nèi)容使用PROTEUS 仿真,選用ARM7 LPC21

7、24 芯片和LCD顯示屏,導入Hex文件,然后進行軟件仿真調(diào)試。應(yīng)用現(xiàn)有的仿真工具和嵌入式軟件開發(fā)平臺,規(guī)范、科學地完成一個小型LCD顯示電路的設(shè)計與實現(xiàn)。主要芯片及應(yīng)用軟件簡介一、RTC簡介1.1RTC實時時鐘的縮寫是RTC(Real_Time Clock)。RTC 是集成電路,通常稱為時鐘芯片。實時時鐘芯片是日常生活中應(yīng)用最為廣泛的消費類電子產(chǎn)品之一。它為人們提供精確的實時時間,或者為電子系統(tǒng)提供精確的時間基準,目前實時時鐘芯片大多采用精度較高的晶體振蕩器作為時鐘源。有些時鐘芯片為了在主電源掉電時,還可以工作,需要外加電池供電。1.2硬件結(jié)構(gòu)晶振晶振一般(ybn)叫做晶體諧振器,是一種機電

8、器件,晶振是石英振蕩器的簡稱,英文名為Crystal是用電損耗很小的石英晶體經(jīng)精密切割磨削并鍍上電極焊上引線做成。晶振的作用(zuyng):提供基準頻率。RTC的晶振:任何實時時鐘的核心都是晶振,晶振頻率為32768 Hz 。它為分頻計數(shù)器提供精確的與低功耗的實基信號。它可以用于產(chǎn)生秒、分、時、日等信息。為了確保時鐘長期的準確性,晶振必須正常(zhngchng)工作,不能夠收到干擾。RTC的晶振又分為:外部晶振和內(nèi)置晶振。RTC的晶振頻率為什么是32768Hz? RTC時間是以振蕩頻率來計算的。故它不是一個時間器而是一個計數(shù)器。而一般的計數(shù)器都是16位的。又因為時間的準確性很重要,故震蕩次數(shù)越

9、低,時間的準確性越低。所以必定是個高次數(shù)。215 = 32768 。 32768 Hz = 215 即分頻15次后為1Hz,周期 = 1s。 經(jīng)過工程師的經(jīng)驗總結(jié)32768 Hz,時鐘最準確。 規(guī)范和統(tǒng)一。LPC2124簡介1.1LPC2124管腳1.2LPC2124 RTC當選擇正?;蚩臻e模式時,實時時鐘(RTC)提供一套用于測量時間(shjin)的計數(shù)器。RTC消耗的功率非常低,這使其適合于由電池供電的,CPU不連續(xù)工作(空閑模式)的系統(tǒng)。特性(txng)對時間段進行測量以實現(xiàn)(shxin)一個日歷或時鐘超低功耗設(shè)計,支持電池供電系統(tǒng)提供秒、分、小時、日、月、年和星期可編程基準時鐘分頻器允

10、許調(diào)節(jié)RTC以適應(yīng)不同的晶振頻率三、芯片LM016L簡介3.1液晶顯示原理液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動、易于實現(xiàn)全彩色顯示的特點,目前已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字攝像機、PDA移動通信工具等眾多領(lǐng)域。LM016L LCD相關(guān)參數(shù)主要參數(shù)顯示容量:162個字符芯片工作電壓:4.55.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.954.35(WH)mm3.2引腳功能說明LM016LLCD采用標準的14腳(無背光)或16腳(帶背光)接口,各引

11、腳接口說明如表3-1所示:表3-1 引腳接口說明表編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負極第1腳:VSS為地電源(dinyun)。第2腳:VDD接5V正電源(dinyun)。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地(jid)時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存

12、器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負極。LCD指令說明及時序LM016L液晶模塊內(nèi)部的控制器共有11條控制指令,如表3-2所示:表3-2 控制命令表序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標返回0000000

13、01*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標志或地址01BF計數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容LM016L液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現(xiàn)的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標復位到地址00H位置。指令2:光標復位,光標返回到地址00H。指令3:光標和顯示模式設(shè)

14、置。 I/D:光標移動(ydng)方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效(yuxio),低電平則無效。指令4:顯示開關(guān)(kigun)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標的開與關(guān),高電平表示有光標,低電平表示無光標 B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標。指令6:功能設(shè)置命令 DL:高電平時為4位總線,低電平時為8位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符

15、。指令7:字符發(fā)生器RAM地址設(shè)置。指令8:DDRAM地址設(shè)置。指令9:讀忙信號和光標地址。 BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。Proteus簡介Proteus是目前最先進的單片機CPU和外圍電路仿真工具之一。本文介紹了單片機仿真軟件Proteus的特點,并結(jié)合實時時鐘電路的實例詳細介紹了使用Proteus進行電路設(shè)計與仿真的過程及方法,旨在為單片機愛好者和技術(shù)人員提供了一個很好的學習平臺。ProteusISIS是英國Lacenterelec-tronics公司開發(fā)的電路分析與實物仿真軟件,應(yīng)用范圍十分廣泛,

16、涉及PCB制版、Spice電路仿真、單片機仿真以及對ARM7/LPC2000的仿真。Proteus主要由ARESISIS兩大模塊構(gòu)成,ARES主要用于印刷電路板(PCB)的設(shè)計及其電路仿真,ISIS主要用于原理圖的設(shè)計并仿真。它運行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路。 4.1軟件特點實現(xiàn)了單片機仿真和SPI CE電路仿真相結(jié)合。具有模擬電路仿真,數(shù)字電路仿真。單片機及其外圍電路組成的系統(tǒng)的仿真。有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。2.支持主流單片機系統(tǒng)的仿真。目前支持的單片機類型有:68000系列、805l系列。AVR系列、ARM系列

17、、PICl2系列、PICl6系列、PICl8系列、Z80系列、HCl1系列以及各種( zhn)外圍芯片。3.提供軟件調(diào)試功能。該軟件仿真(fn zhn)系統(tǒng)中具有全速、單步、設(shè)置斷點等調(diào)試功能,同時可以觀察各個變量、寄存器等的當前狀態(tài),同時支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C5l uVision2等軟件。4.具有強大(qingd)的原理圖繪制功能。總之,該軟件是一款集單片機和SPICE分析于一身的仿真軟件,功能極其強大。本文介紹Proteus ISIS軟件的工作環(huán)境和一些基本操作。4.2與Keil聯(lián)調(diào)Keilc與Proteus連接調(diào)試1.假若Keil與Proteus均已正確安裝在C:

18、Program Files的目錄里; 2.安裝Keil與Proteus的連接插件vdmagdi.exe;3.進入Keil Vision2開發(fā)集成環(huán)境,創(chuàng)建一個新項目(Project),并為該項目選定合適的單片機CPU器件(如:NXP公司的LPC2124)。并為該項目加入Keil源程序。Keil簡介Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(Vi

19、sion)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會令你事半功倍。5.1Keil開發(fā)(kif)基本常識該課設(shè)使用的是keil公司(n s)13年發(fā)布的Keil Keil Vision5系統(tǒng)(xtng)概述Keil C51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil的優(yōu)勢。下面詳細介紹Keil C51開發(fā)系統(tǒng)各

20、部分功能和使用。Keil C51單片機軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)C51工具包的整體結(jié)構(gòu),Vision與Ishell分別是C51 for Windows 和for Dos 的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標文件(.obj)。目標文件可由LIB51 創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51 連接定位生成絕對目標文件(.abs)。abs文件由OH51 轉(zhuǎn)換成標準的hex 文件,以供調(diào)試器dScope51 或tScope51 使用進行源代碼級調(diào)試,也可由仿真器使用直

21、接對目標板進行調(diào)試,也可以直接寫入程序存貯器如EPROM中。使用獨立的Keil仿真器時,注意事項*仿真器標配11.0592MHz的晶振,但用戶可以在仿真器上的晶振插孔中換插其他頻率的晶振。*仿真器上的復位按鈕只復位仿真芯片,不復位目標系統(tǒng)。* 仿真芯片的31腳(/EA)已接至高電平,所以仿真時只能使用片內(nèi)ROM,不能使用片外ROM;但仿真器外引插針中的31腳并不與仿真芯片的31腳相連,故該仿真器仍可插入到擴展有外部ROM(其CPU的/EA引腳接至低電平)的目標系統(tǒng)中使用。5.2軟件優(yōu)點Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編(hubin)代碼很緊湊,容易理解。在開發(fā)大型軟

22、件時更能體現(xiàn)高級語言的優(yōu)勢。與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢(yush),因而易學易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。時鐘(shzhng)軟件設(shè)計RTCIni() 初始化實時時鐘軟件流程圖SendTimeRtc()讀取RTC的時間的時分秒值顯示循環(huán)輸出DisText()顯示函數(shù)WrDat()寫數(shù)據(jù)輸出在LCD 軟件(run jin)詳情DisText()函數(shù)(hnsh)顯示文本(wnbn)函數(shù)輸出在LCD上void DisText(uint8 addr,uint8 *p)WrOp(addr);while(*p !=0)WrDat(*(p+);Se

23、ndTimeRtc()函數(shù)讀取RTC的時間值,并將讀出的時分秒值由串口發(fā)送到上位機顯示void SendTimeRtc(void) uint32 times; uint8 bak; times=CTIME0; /讀取完整時鐘寄存器0 bak=(times16)&0 x1F; /取得時的值 send_buf0=bak/10+0; send_buf1=bak%10+0; send_buf2=:; bak=(times8)&0 x3F; /取得分的值 send_buf3=bak/10+0; send_buf4=bak%10+0; send_buf5=:; bak=times&0 x3F; /取得秒的

24、值 send_buf6=bak/10+0; send_buf7=bak%10+0; send_buf8=n; DisText(0 xC0,send_buf);/ 第二行字符(z f)地址為:C0CF。 RTCIni()函數(shù)(hnsh) 初始化實時(sh sh)時鐘。 void RTCIni(void) PREINT = Fpclk / 32768 - 1;/ 設(shè)置基準時鐘分頻器 PREFRAC = Fpclk - (Fpclk / 32768) * 32768; YEAR = 2004; / 初始化年 MONTH = 2; / 初始化月 DOM = 19; / 初始化日 HOUR = 8; M

25、IN = 30; SEC = 0; CIIR = 0 x01; / 設(shè)置秒值的增量產(chǎn)生一次中斷 CCR = 0 x01; / 啟動RTCmain() 函數(shù)讀取實時時鐘的值,并發(fā)送到 LCD 硬件設(shè)計電路效果圖晶振電路(dinl)石英晶體連接在晶振引腳的輸入和輸出之間,等效為一個并聯(lián)諧振回路,振蕩頻率是石英晶體的并聯(lián)諧振頻率。晶體旁邊(pngbin)的倆個電容接地,實際上就是電容三點式電路的分壓電容,接地點就是分壓點。以接地點即分壓點為參考點,振蕩引腳的輸入和輸出是反相的,但從并聯(lián)諧振回路即石英晶體兩端來看,形成一個正反饋以保證電路持續(xù)振蕩。LPC2124中自帶內(nèi)部晶振所以(suy)沒有做外接。

26、 顯示(xinsh)電路通過SendTimeRtc() 讀取RTC的時間值,并將讀出的時分秒值調(diào)用DisText()按數(shù)組調(diào)用WrDat()寫數(shù)據(jù)函數(shù)(hnsh) 在LCD上顯示時間及數(shù)據(jù)文本。心得體會這次(zh c)課程(kchng)設(shè)計,我學到了很多東西(dngx),首先是對加深了對Keil軟件的運用,并對液晶屏動態(tài)顯示方面的知識有了更多了解,在以前我只是對這些軟件有個大概的了解,但通過這次的實踐,使我對這些軟件有了更深刻的了解,在以后的學習及工作中將會起到很大的作用,這次我將自己所學的知識運用到了實踐當中,使得理論有了實踐的指導。由于以前沒有實際做過按鍵控制液晶屏動態(tài)顯示這方面的內(nèi)容,所

27、以在有些內(nèi)容的準備上還有很多不足之處,通過在網(wǎng)絡(luò)上的查找資料在LCD的使用指南中發(fā)現(xiàn)了解決辦法。通過這次的課設(shè)深刻的認識到了芯片使用指南的重要作用,沒有指南就沒辦法明確迅速的找到芯片的具體用法。這次課程設(shè)計使我受益匪淺,經(jīng)過認真的學習,這為今后的論文寫作打下了基礎(chǔ)。附錄(fl)/* File: main.c* 功能(gngnng): 運行RTC進行計時,并將所計時間值向LCD輸出 */#include config.h#define rs (18)/ 0000 0001 0000 0000 = 0 x0100 #define rw (19)/ 0000 0010 0000 0000 = 0 x

28、0200 #define en (110)/ 0000 0100 0000 0000 = 0 x0400 #define busy (17)/ 0000 0000 1000 0000 = 0 x0080 #define rs_rw_en rs|rw|en / 0000 0111 0000 0000 = 0 x0700 P8P10 #define lcd_pins 0 x7FF / 將 P0.0P0.10 設(shè)置(shzh)為輸出 0000 0111 1111 1111uint32 IO0DIR_bak; uint32 IO0SET_bak;uint32 IO0CLR_bak;uint8 MESSAGE=XIAN TIME:;#define LED1CON 116)&0 x1F; /取得時的值 send_buf0=bak/10+0; send_buf1=bak%10+0; send_buf2=:; bak=(times8)&0 x3F; /取得分的值 send_buf3=bak/10+0; send_buf4=bak%10+0; send_buf5=:; bak=times&0 x3F; /取得秒的值 send_buf6=bak/10+0; send_buf7=bak%10+0; send_b

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論