lcd控制vhdl程序与仿真
1. fpga驱动lcd显示中文字符“年”程序
--文件名: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 '1');
lcdda<='0';
elsif rising_edge(clk)then
current_state <= current_state ;
lcdda
data<=00111100;--3ch
current_state
data<=00000110;--06h
current_state
data<=00001111;--0fh
current_state
data<=01000000;--40h
current_state--向cgram中写入“年”
lcdda<='1';
cnt1:=cnt1+1;
data<=cgram(conv_integer(cnt1));
if cnt1 = 111 then
current_state --从第一行的起始地址开始显示
data<=10000000;--80h
current_state
lcdda<='1';
data null;
end case;
end if;
end process;
end behavioral;
李振华:推动服务机器人产能共享,促进产业发展
疫情爆发推动自动驾驶行业 特定场景应用开始走“量”
苹果新iPhone新兴市场经济疲软在中国的销量令人失望
APEX功率放大器成为众多工业打印机生产商的首选
PLC通信设备中网关和DTU相比较,有何不同?
LCD控制VHDL程序与仿真
绝缘介质及极化形式
可控硅整流器有哪些结构和工作原理
2022年中国及31省市物联网行业政策汇总及解读
欧莱新材IPO募资提高溅射靶材质量稳定性和一致性
传感器逐渐替代机电开关利用
利用横向色散超透镜阵列和单色成像传感器构建了超紧凑型光谱光场成像系统
iPhonex1估计会变大,而且苹果可能逐步废除iPad mini
S7-1200如何实现配方的写入和读取功能
4月CMI走势依旧向上,5月预计挖掘机销量或环比下降
PLC系统的主要抗干扰措施
科学家团队想要做的事情:将地面无人机技术和经过火星探测任务磨练的仪器结合起来
反馈式对称温度补偿模拟信号放大电路设计
共享单车“神器”:二合一可充电的自行车灯Blink面世
什么是过零点?ROHM过零检测电路的优点有哪些