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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種基于控制的液晶顯示屏的設(shè)計(jì)及實(shí)現(xiàn)

          一種基于控制的液晶顯示屏的設(shè)計(jì)及實(shí)現(xiàn)

          作者: 時(shí)間:2013-01-19 來源:網(wǎng)絡(luò) 收藏


          指令設(shè)置語句:
          STM #XXH,AR0 ;XXH為指令代碼
          PORTW AR0,#8100H ;8100H為命令口地址
          參數(shù)設(shè)置語句:
          STM #XXH,AR0 ;XXH為指令參數(shù)
          PORTW AR0,#8000H ;8000H為數(shù)據(jù)口地址
          …………
          數(shù)據(jù)輸入語句:
          STM #XXH,AR0 ;XXH為用戶數(shù)據(jù)
          PORTW AR0,#8000H ;8000H為數(shù)據(jù)口地址
          …………
          的初始化程序如下:
          INIT:
          STM #40H,AR0 ;系統(tǒng)設(shè)置命令,指令代碼:40H
          PORTW WR0,#8100H
          STM #10H,AR0 ;標(biāo)準(zhǔn)設(shè)置
          PORTW AR0,#8000H
          STM #87H,AR0 ;設(shè)置光標(biāo)寬度為8
          PORTW AR0,#8000H
          STM #07H,AR0 ;設(shè)置光標(biāo)高度為8
          PORTW AR0,#8000H
          STM #27H,AR0;設(shè)置每行需要的字節(jié)數(shù),
          PORTW AR0,#8000H每行320個(gè)點(diǎn),行數(shù)為320/8=40
          STM #36H,AR0 ;設(shè)置液晶的掃描頻率約為70Hz
          PORTW AR0,#8000H
          STM #0F0H,AR0 ;設(shè)置的點(diǎn)行數(shù)為240
          PORTW AR0,#8000H
          STM #28H,AR0 ;設(shè)置顯示屏一行所占顯緩的字節(jié)數(shù)
          PORTW AR0,#8000H
          STM #00H,AR0
          PORTW AR0,#8000H
          STM #44H,AR0 ;SCROLL指令,指令代碼:44H
          PORTW AR0,#8100H
          STM #00H,AR0 ;確定第一顯示區(qū)的首地址
          PORTW AR0,#8000H
          STM #00H,AR0
          PORTW AR0,#8000H
          STM #240D,AR0 ;設(shè)置第一顯示區(qū)的行數(shù)
          PORTW AR0,#8000H
          STM #00H,AR0 ;確定第二顯示區(qū)的首地址
          PORTW AR0,#8000H
          STM #40H,AR0
          PORTW AR0,#8000H
          STM #0F0H,AR0 ;設(shè)置第二顯示區(qū)的行數(shù)
          PORTW AR0,#8000H
          STM #00H,AR0 ;確定第三顯示區(qū)的首地址
          PORTW AR0,#8000H
          STM #80H,AR0
          PORTW AR0,#8000H
          STM #4CH,AR0 ;設(shè)置光標(biāo)自動(dòng)由左向右移動(dòng)
          PORTW AR0,#8100H
          STM #5BH,AR0 ;設(shè)置顯示屏為兩層疊加顯示方式
          PORTW AR0,#8100H
          STM #0DH,AR0
          PORTW AR0,#8000H
          …………
          STM #42H,AR0 ;顯緩寫指令
          PORTW AR0,#8100H
          LD #240D,A ;清屏程序
          LOOP1:LD #40D,B
          LOOP2:STM #00H,AR0
          PORTW AR0,#8000H
          SUB #1H,B
          BC LOOP2,BNEQ
          SUB #1H,A
          BC LOOP1,ANEQ
          RET ;初始化結(jié)束
          顯示圖片的主程序如下:
          AMIN:STM #800H,SP
          CALL INIT ;調(diào)用初始化程序
          STM #0C03EH,AR1 ;位圖數(shù)據(jù)相對于BMP文件頭的地址
          STM #42H,AR0
          PORTW AR0,#8100H ;送液晶顯示屏緩寫指令
          LD #240,A
          CMP:LD #40,B
          CMP1:PORTW AR1+,#8000H;將320×240的位圖數(shù)據(jù)依次寫入緩存區(qū)
          SUB #1,B
          BC CMP1,BNEQ
          SUB #1,A
          BC CMP,ANEQ
          B $ ;主程序結(jié)束

          以上就是該系統(tǒng)的軟件設(shè)計(jì)。由于篇幅有限,這里省略了某些控制指令的設(shè)置,用戶可根據(jù)實(shí)際需要添加設(shè)置。在實(shí)際的軟件設(shè)計(jì)中,DSP匯編語言執(zhí)行過程中由于本身延時(shí)而引起的數(shù)據(jù)丟失現(xiàn)象,可以適當(dāng)?shù)丶尤肟罩噶睿∟OP)來解決。同時(shí),本程序中使用圖片顯示的例子只是用來說明控制器的利用方面就顯得有些浪費(fèi)而且靈活性較差。針對那些存儲(chǔ)空間有限、效率要求高的系統(tǒng),可以制作成字模存儲(chǔ)在外部ROM中供多次調(diào)用, 當(dāng)顯示文字時(shí)只需計(jì)算出顯示地址而后調(diào)用字模入口地址即可。

          本文提出的基礎(chǔ)DSP控制的液晶顯示屏,作為示波表顯示前端已在實(shí)際應(yīng)用中取得了成功。該系統(tǒng)中所選用具有64K大容量緩存區(qū)的控制器,適用于多種點(diǎn)陣規(guī)格的顯示屏使用,加之其內(nèi)部固化的字符發(fā)生器可產(chǎn)生160種字模,以及具有通過改變指令參數(shù)可實(shí)現(xiàn)圖像的閃爍、翻轉(zhuǎn)、移動(dòng)等特點(diǎn),因此從總體性能方面而言其大大強(qiáng)于同類型的其它控制器,非常適用于各種便攜式系統(tǒng)顯示前端的設(shè)計(jì)。

          LCD顯示屏相關(guān)文章:lcd顯示屏原理


          lcd相關(guān)文章:lcd原理

          上一頁 1 2 3 下一頁

          關(guān)鍵詞: LCD 液晶顯示屏 SED1335

          評論


          相關(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); })();