FPGA驱动12864液晶

该博客详细介绍了如何使用FPGA来驱动12864液晶显示器,通过定义状态机并设置相应的控制信号,实现液晶的初始化、清屏以及数据显示功能。通过时钟分频和数据锁存机制确保信号的正确传输。
摘要由CSDN通过智能技术生成

 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY lcd12864 IS
  PORT(
 CLK: IN STD_LOGIC;
 ROM_DATA: IN STD_LOGIC_VECTOR(7 DOWNTO 0);
 RS,RW,CS1,CS2,E: OUT STD_LOGIC;
 ADDRESS: OUT STD_LOGIC_VECTOR(4 DOWNTO 0);
 Q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
 );
END;
ARCHITECTURE BEHAV OF lcd12864 IS
 TYPE STATES IS(ST0,ST1,ST2,ST3,ST4,ST5,ST6,ST7,
    ST8,ST9,ST10,ST11,ST12,ST13,ST14,ST15);                      --状态定意
 SIGNAL PRE_STATE,NEXT_STATE:STATES;
 SIGNAL DATALOCK,EN,RST1:STD_LOGIC;
 SIGNAL ADDR:INTEGER RANGE 0 TO 65:=0;
 SIGNAL XPAGE:STD_LOGIC_VECTOR(7 DOWNTO 0):="10111000";
 SIGNAL YADDR:STD_LOGIC_VECTOR(7 DOWNTO 0):="01000000";
BEGIN
  CLOCK:PROCESS(CLK)                                                      --将时钟进行分频
         VARIABLE CONT:INTEGER RANGE 0 TO 20;
           BEGIN
             IF CLK'EVENT AND CLK='1' THEN
                CONT:=CONT+1;
                IF CONT = 12 THEN DATALOCK<='0';CONT:=0;
                ELSIF CONT = 9 THEN
                      DATALOCK<='1';
                END IF;
             END

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值