?? ledarray_drv.vhd
字號:
--/*****************************************************************************-- * 源文件: ledarray_drv.vhd-- * 模塊: LED點陣驅(qū)動-- * 版權(quán):-- * Copyright(C) 北京聯(lián)華眾科科技有限公司-- * www.lianhua-zhongke.com.cn-- * 版本: Version 1.0-- * -- * 功能說明:-- * 將LED點陣的8*8點陣數(shù)據(jù)顯示在LED點陣設備上-- *-- * 參數(shù)說明:-- * 輸出-- * row - 8*8點陣的一行數(shù)據(jù)-- * row_select - 當前行選擇數(shù)據(jù)-- *-- * 輸入-- * row0 - 點陣的 0 行數(shù)據(jù)-- * row1 - 點陣的 1 行數(shù)據(jù)-- * row2 - 點陣的 2 行數(shù)據(jù)-- * row3 - 點陣的 3 行數(shù)據(jù)-- * row4 - 點陣的 4 行數(shù)據(jù)-- * row5 - 點陣的 5 行數(shù)據(jù)-- * row6 - 點陣的 6 行數(shù)據(jù)-- * row7 - 點陣的 7 行數(shù)據(jù)-- * clock - 掃描顯示時鐘-- * reset - 復位信號,低電平有效-- *-- * 參數(shù)-- *-- * 變更記錄: -- * 2006.01.28, 新建-- *-- *****************************************************************************/LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;ENTITY ledarray_drv IS PORT ( row : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); row_select : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); row0 : IN STD_LOGIC_VECTOR(7 DOWNTO 0); row1 : IN STD_LOGIC_VECTOR(7 DOWNTO 0); row2 : IN STD_LOGIC_VECTOR(7 DOWNTO 0); row3 : IN STD_LOGIC_VECTOR(7 DOWNTO 0); row4 : IN STD_LOGIC_VECTOR(7 DOWNTO 0); row5 : IN STD_LOGIC_VECTOR(7 DOWNTO 0); row6 : IN STD_LOGIC_VECTOR(7 DOWNTO 0); row7 : IN STD_LOGIC_VECTOR(7 DOWNTO 0); clock : IN STD_LOGIC; reset : IN STD_LOGIC );END ledarray_drv;ARCHITECTURE ledarray_drv_architecture OF ledarray_drv IS BEGIN PROCESS(clock, reset) VARIABLE next_cs : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF (reset = '0') THEN row <= "11111111"; row_select <= "11111111"; next_cs := "11111110"; ELSE IF(clock = '1' AND clock'EVENT) THEN row_select <= next_cs; CASE next_cs IS WHEN "11111110" => row <= not row0; next_cs := "11111101"; WHEN "11111101" => row <= not row1; next_cs := "11111011"; WHEN "11111011" => row <= not row2; next_cs := "11110111"; WHEN "11110111" => row <= not row3; next_cs := "11101111"; WHEN "11101111" => row <= not row4; next_cs := "11011111"; WHEN "11011111" => row <= not row5; next_cs := "10111111"; WHEN "10111111" => row <= not row6; next_cs := "01111111"; WHEN "01111111" => row <= not row7; next_cs := "11111110"; WHEN OTHERS => row <= "11111111"; next_cs := "11111110"; END CASE; END IF; END IF; END PROCESS;END ledarray_drv_architecture;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -