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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于NIOS II嵌入式處理器實(shí)現(xiàn)LCD的控制

          基于NIOS II嵌入式處理器實(shí)現(xiàn)LCD的控制

          作者: 時(shí)間:2011-11-07 來(lái)源:網(wǎng)絡(luò) 收藏

          ENTITY _interface IS
          PORT(
          reset :IN std_logic;
          lcd_clk :IN std_logic;
          Wrdata :IN std_logic_vector(17 downto 0);
          hsync :OUT std_logic;
          vsync :OUT std_logic;
          enable :OUT std_logic;
          lcd_R/L :OUT std_logic;
          lcd_U/D :OUT std_logic;
          sel_VGA_QVGA :OUT std_logic;
          RGB :OUT std_logic_vector(17 downto 0);
          end_of_picture :OUT std_logic);
          END _interface;
          ARCHITECTURE trans OF _interface IS
          process(lcd_clk) begin
          if(rising_edge(lcd_clk)) then
          if(hcnt400) then
          hcnt=hcnt+1;
          else
          hcnt=(others=>0);
          end if;
          end if;
          end process;--行計(jì)數(shù)器模塊
          process(lcd_clk) begin
          if(rising_edge(lcd_clk)) then
          if(hcnt=320) then
          if(vcnt262) then
          vcnt= vcnt+1;
          else
          vcnt=(others=>0);
          end if;
          end if;
          end if;
          end process;--場(chǎng)計(jì)數(shù)器模塊
          process(lcd_clk) begin
          if(rising_edge(lcd_clk)) then
          if((hcnt>= 320+20+20 ) and (hcnt320+20+20+40)) then
          hs=0;
          else
          hs=1;
          end if;
          end if;
          end process;--產(chǎn)生水平同步脈沖
          process(vcnt)begin
          if((vcnt>=240+6+6)and(vcnt240+6+6+10)) then
          VS=0;
          else
          vs=1;
          end if;
          end process;--產(chǎn)生場(chǎng)同步脈沖
          process(lcd_clk) begin
          if(rising_edge(lcd_clk)) then
          if(hcnt320 and vcnt240)and(hcnt>20 and vcnt>6) then
          en=1;
          else
          en=0;
          end if;
          end if;
          end process;--產(chǎn)生顯示使能信號(hào)
          process(led_clk)begin
          if(rising_edge(lcd_clk))then
          if(hcnt320 and vcnt240)then
          RGB=Wdata;
          else
          RGB=(others=>0);
          end if;
          end if;
          end process;--像素輸出及消隱
          process(lcd_clk)begin
          if(rising_edge(lcd_clk))then
          if((vcnt=320+1)and(hcnt=0))then
          end_of_picture=1;
          else
          end_of_picture=0;
          end if;
          end if;
          end process;--一幀傳輸完畢
          END ARCHITECTURE trans;

            3 DMA流程及實(shí)驗(yàn)結(jié)論

            3.1 DMA傳輸方式下的程序流程

            利用該方案LCD的顯示已在某面陣CCD采集系統(tǒng)中得到驗(yàn)證。在實(shí)際的系統(tǒng)中,該部分主要所采集的面陣CCD圖像傳感器圖像數(shù)據(jù)的動(dòng)態(tài)顯示。在實(shí)際的采集系統(tǒng)中選用了2個(gè)DMA,一個(gè)用于圖像數(shù)據(jù)的采集,一個(gè)用于采集后圖像的再現(xiàn)。在文中僅介紹了顯示DMA傳輸控制方式下的相應(yīng)模塊。實(shí)際系統(tǒng)中,圖像數(shù)據(jù)從面陣CCD圖像傳感器以DMA控制方式將圖像數(shù)據(jù)采集到SDRAM,所采集后的圖像數(shù)據(jù)從SDRAM到LCD顯示。實(shí)際系統(tǒng)中的DMA控制流程如圖3。

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


            3.2實(shí)驗(yàn)結(jié)論

            根據(jù)圖3所采集到的面陣CCD的圖像數(shù)據(jù)保存在SDRAM中,按一定比例抽取的圖像數(shù)據(jù)在SDRAM中合成18位的RGB圖像信號(hào),而后在 以及顯示DMA的控制下,將一幀完整的圖像顯示在LCD上,實(shí)際控制的顯示結(jié)果如圖4。

            4 結(jié)束語(yǔ)

            利用 作為FPGA控制LCD的解決方案,能較容易地圖像數(shù)據(jù)的DMA傳輸與控制,系統(tǒng)中可根據(jù)實(shí)際需求有選擇的定制相應(yīng)模塊,使系統(tǒng)具有較強(qiáng)的靈活性。同時(shí)由于采用“軟”硬件實(shí)現(xiàn)LCD的控制,調(diào)試過(guò)程中通過(guò)不斷更改“軟件”就可達(dá)到改進(jìn)硬件功能的目的。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁(yè) 1 2 下一頁(yè)

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