<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 設(shè)計(jì)應(yīng)用 > 點(diǎn)陣圖形液晶模塊接口設(shè)計(jì)

          點(diǎn)陣圖形液晶模塊接口設(shè)計(jì)

          作者:趙定遠(yuǎn) 時(shí)間:2008-10-06 來源:現(xiàn)代電子技術(shù) 收藏

          1 引 言

          本文引用地址:http://www.ex-cimer.com/article/88461.htm

            隨著嵌入式系統(tǒng)廣泛的應(yīng)用,人們對(duì)人機(jī)界面的要求也越來越高,簡單的顯示方法已經(jīng)不能滿足需要。液晶顯示器(LCD)具有功耗低、體積小、質(zhì)量輕、超薄和可編程等優(yōu)點(diǎn),廣泛用于各種儀器,儀表和低功耗電子產(chǎn)品中。特別是點(diǎn)陣圖形液晶顯示器,不僅可以顯示字符、數(shù)字,還可以顯示各種圖形、曲線及漢字,并且具有實(shí)現(xiàn)屏幕上下左右滾動(dòng)、動(dòng)畫、閃爍、文本特征顯示等功能,用途十分廣泛。在設(shè)計(jì)嵌入式開發(fā)平臺(tái)的過程中,以ARM芯片作為嵌入式系統(tǒng)處理器,它具有高性能、低功耗、低成本等特點(diǎn)(具體選型為Atmel公司出品的AT91RM9200芯片),選擇ST7920為控制器的FYD12864-0402B液晶顯示器的結(jié)構(gòu),設(shè)計(jì)了驅(qū)動(dòng)程序。經(jīng)過調(diào)試,系統(tǒng)取得了很好的顯示效果。

          2 硬件模塊簡介

            (1)顯示模塊:FYD12864-0402B是內(nèi)置ST7920控制器的128×32點(diǎn)陣圖形液晶顯示器,通過對(duì)ST7920控制器的編程應(yīng)用,可以實(shí)現(xiàn)字符和圖形的顯示。FYD12864-0402B是一種具有4位/8位并行、2線或3線申行多種接口方式,內(nèi)部含有國標(biāo)一級(jí)、二級(jí)簡體中文字庫的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為128×64,內(nèi)置8192個(gè)16×16點(diǎn)的漢字,和128個(gè)16×8點(diǎn)的ASCII字符集。利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面??梢燥@示8×4行16×16點(diǎn)陣的漢字,也可完成圖形顯示,低電壓低功耗是其又一顯著特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)和顯示程序都要簡潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊。它的基本特性如下;

          低電源電壓(VDD:+3.0~+5.5 V);

          顯示分辨率:128×64點(diǎn);

          內(nèi)置漢字字庫,提供8 192個(gè)16×16點(diǎn)陣漢字(簡繁體可選);

          內(nèi)置128個(gè)16×8點(diǎn)陣字符;

          2 MHz時(shí)鐘頻率;

          顯示方式:STN、半透、正顯;

          驅(qū)動(dòng)方式:1/32DUTY,1/5BIAS;

          視角方向:6點(diǎn);

          背光方式:側(cè)部高亮白色LED,功耗僅為普通LED的1/5~1/10;

          通訊方式:串行、并口可選;

          內(nèi)置DC-DC轉(zhuǎn)換電路,無需外加負(fù)壓。

            (2) AT91RM9200處理器:AT91RM9200是Atmel針對(duì)系統(tǒng)控制以及通信領(lǐng)域推出的基于ARM920T內(nèi)核的新微型控制器。它在工作頻率為180 MHz時(shí)處理速度為200 MIPS,具有獨(dú)立的16 k指令和16 k數(shù)據(jù)Cache,寫緩存,全功能的MMU虛擬內(nèi)存管理單元,AT91RM9200是完全圍繞ARM920TARMTburnb處理器構(gòu)建的系統(tǒng)。它有豐富外設(shè)接口及標(biāo)準(zhǔn)接口,從而為低功耗、低成本、高性能的嵌入式應(yīng)用提供一個(gè)很好的處理器芯片。AT91RM9200包括一個(gè)高速片上SRAM工作區(qū)和一個(gè)低等待時(shí)間的外部總線接口(EBI),以完成應(yīng)用所要求的片外存儲(chǔ)器和內(nèi)部存儲(chǔ)器映射外設(shè)配置的無縫連接。EBI有SDRAM,BurstFLASH及靜態(tài)存儲(chǔ)器的控制器,并設(shè)計(jì)了專用電路以方便與SmartMedia,CompactFLASH及FLASH連接。AT91RM9200集成了許多標(biāo)準(zhǔn)接口控制器,包括USB和設(shè)備端口及與多數(shù)外設(shè)和在網(wǎng)絡(luò)層廣泛使用的10/100Base_T以太網(wǎng)媒體訪問控制器(MAC)。

            此外,它還提供一系列符合工業(yè)標(biāo)準(zhǔn)的外設(shè),可在音頻、電信、FLASH卡、紅外線及智能卡中使用。AT91RM9200集成了包括JTAG-ICE、專門UART調(diào)試通道(DEBUG)及嵌入式的實(shí)時(shí)追蹤的一系列的調(diào)試功能。AT91RM9200處理器有2種封裝:一種是BGA形式的封裝,它有256個(gè)引腳;一種是PQFP形式的封裝,它有208個(gè)引腳。本系統(tǒng)中采用的PQFP封裝的處理器。

            (3)AT91RM9200與FYD12864-0402B液晶的接口電路:FYD12864-0402B液晶顯示模塊分為串口連接和并口連接,因?yàn)锳T91RM9200I/O引腳較多,所以FYD12864-0402B在該系統(tǒng)中采用的是8位并口連接。接口連接如圖1所示:

           

          3 驅(qū)動(dòng)程序設(shè)計(jì)

            對(duì)FYD12864-0402BLCD的顯示驅(qū)動(dòng)程序設(shè)計(jì)主要包括3部分:對(duì)LCD的初始化;對(duì)LCD模塊寫指令;對(duì)LCD模塊寫數(shù)據(jù)。這3個(gè)部份是構(gòu)成其他顯示程序的基礎(chǔ)。因?yàn)長CD內(nèi)部自帶漢字模塊,因此只要向控制器發(fā)送相應(yīng)的代碼就可以實(shí)現(xiàn)漢字的顯示,對(duì)于圖形和曲線顯示只需要設(shè)置好對(duì)應(yīng)的水平地址和垂直地址,并把圖形編碼傳送到LCD模塊中就可以顯示出內(nèi)容。

          (1)LCD的初始化函數(shù)設(shè)計(jì)

           

          (2)LCD模塊寫指令設(shè)計(jì)

           

          (3)LCD模塊寫數(shù)據(jù)

           

          4 結(jié)語

            隨著智能化儀器和嵌入式系統(tǒng)的逐步推廣,LCD模塊使用也會(huì)越來越廣泛。以上的接口電路通過實(shí)際測試和使用,表明該LCD模塊和AT91RM9200接口穩(wěn)定可靠,字符和圖形顯示正常,達(dá)到設(shè)計(jì)要求,可以進(jìn)行推廣使用。

          led顯示器相關(guān)文章:led顯示器原理




          關(guān)鍵詞: 接口設(shè)計(jì)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();