网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > FPGA > 正文

LCD控制VHDL程序与仿真修改

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

8.3.3 程序设计与仿真
利用FPGA驱动LCD显示中文字符“年”的VHDL程序。
--文件名:lcd_driver.vhd。
--功能:FGAD驱动LCD显示中文字符“年”。
--最后修改日期:2004.3.24。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity lcd_driver is
  Port ( clk : in std_logic;--状态机时钟信号,同时也是液晶时钟信号,其周期应该满足液晶数据的建立时间
   reset:in std_logic;
       lcdda : out std_logic;    --寄存器选择信号
       lcdrw : out std_logic;--液晶读写信号
       lcden : out std_logic;--液晶时钟信号
       data : out std_logic_vector(7 downto 0));--液晶数据信号
end lcd_driver;
architecture Behavioral of lcd_driver is
type state is (set_dlnf,set_cursor,set_dcb,set _cgram,write _cgram,set_ddram,write_data);
  signal current_state:state;
  type ram2 is array(0 to 7) of std_logic_vector(7 downto 0);
constant cgram:ram2:=(("00001000"),("00001111"),("00010010"),
("00001111"),("00001010"),("00011111"),("00000010"),("00000010"));--年字符数据存储器                          
  signal clkk : std_logic;
begin
  lcden <=  clk ; --液晶时钟信号
lcdrw <= '0' ;  --写数据
control:process(clk,reset,current_state)               --液晶驱动控制器
  variable cnt1: std_logic_vector(2 downto 0);
begin
if reset='0'then
    current_state<=set_dlnf;
cnt1:=(others => '1');
lcdda<='0';
elsif rising_edge(clk)then
current_state <= current_state ;
lcdda <= '0';
case current_state is
  when set_dlnf=>          
 data<="00111100";--3cH
 current_state<=set_cursor;
      when set_cursor=>
 data<="00000110";--06H
 current_state<=set_dcb;
      when set_dcb=>
 data<="00001111";--0fH
 current_state<=set_ cgram;
  when set_ cgram=>
 data<="01000000";--40H
 current_state<=write_ cgram;
  when write_ cgram=>              --向CGRAM中写入“年”
 lcdda<='1';
 cnt1:=cnt1+1;
 data<=cgram(conv_integer(cnt1));  
   if cnt1 = "111" then
 current_state<=set_ddram;
   end if;
  when set_ddram=>           --从第一行的起始地址开始显示
 data<="10000000";--80H
 current_state<=write_data;
      when write_data=>
 lcdda<='1';
 data<="00000000"; --写入字符“年”
  when others => null;
end case;
end if;
end process;
end Behavioral;

  • 上一篇资讯: TLC7524接口电路程序
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师