pin_pout.vhd

来自「是128*64程序」· VHDL 代码 · 共 52 行

VHD
52
字号

--接LCD12864译码驱动程序为EDA3.2主板 http://www.hseda.com
library ieee;
use ieee.std_logic_1164.all;

entity pin_pout is
PORT
	(
		TXD,RXT,DK7: IN std_logic;
		QK: IN std_logic_vector(6 downto 1); --QK1-QK6
		P1: IN std_logic_vector(3 downto 0); --LCD12864控制位接单片机
		DK: OUT std_logic_vector(3 downto 0); --LCD12864控制位接LCD
		QK7,AD,RAM,DK4: OUT std_logic;  --产生外设片位
		P0: IN std_logic_vector(7 downto 0);  --数据总线接LED1-LED8
		A	: OUT std_logic_vector(7 downto 0); --地位地址总线A0-A7
		ALE	: in std_logic; --内部LS373地址锁存位
        P2 : IN STD_LOGIC_VECTOR( 2 DOWNTO 0) --高位地址总线译码位MCU A13 A14 A15
	);
end;

architecture t1 of pin_pout is
SIGNAL 	YO  : STD_LOGIC_VECTOR( 7 DOWNTO 0) ;
SIGNAL 	QN : STD_LOGIC_VECTOR(2 DOWNTO 0);
--LCD12864 内部连通
begin 
  DK <= P1;
  DK4 <= P2(2);
  QK7 <= DK7;
--LS373低位地址锁存
PROCESS (ALE) 
	BEGIN
		IF ALE'EVENT AND ALE='0' THEN
			A <= P0;
		END IF;
END PROCESS;
--LS138地址译码
WITH P2 SELECT  
     YO<= "00000001" WHEN "000",
         "00000010" WHEN "001",
         "00000100" WHEN "010",
         "00001000" WHEN "011",
         "00010000" WHEN "100",
         "00100000" WHEN "101",
         "01000000" WHEN "110",
         "10000000" WHEN "111",
         "00000000" WHEN OTHERS ;
AD <= NOT(YO(0));
RAM <= NOT(YO(1));
end t1;


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?