实验一、流水灯实验!
初学者必学的实验!在此次中为大家书写实验代码,已经经过测试的,可以移植 FPGA,稍微的差别就是建立工程中,得根据开发板的具体管脚而相应的配置!!
--本实验为LED流水灯实验。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.std_logic_unsigned.ALL;
ENTITY LampsSequencer is
PORT(
clk:in STD_LOGIC;
led1:out STD_LOGIC_VECTOR(7 DOWNTO 0));
END LampsSequencer;
ARCHITECTURE light OF LampsSequencer IS
SIGNAL clk1,CLK2:std_logic;
BEGIN
P1:PROCESS (clk)
VARIABLE count:INTEGER RANGE 0 TO 999999;
BEGIN
IF clk'EVENT AND clk='1' THEN --当时钟脉冲上升沿到来时执行下面语句
IF count<=499999 THEN
clk1<='0'; --当count<=499999时divls=0并且count加1
count:=count+1;
ELSIF count>=499999 AND count<=999999 THEN --当ount>=499999 并且 count<=999998时
clk1<='1'; --
count:=count+1; --clk1=1并且count加1
ELSE count:=0; --当count>=499999时清零count1
END IF;
END IF;
END PROCESS ;
P3:PROCESS(CLK1)
begin
IF clk1'event AND clk1='1'THEN
clk2<=not clk2;
END IF;
END PROCESS P3;
---------------------------------------------------------
P2:PROCESS(clk2)
variable count1:INTEGER RANGE 0 TO 16; --定义的整型变量用做计数器
BEGIN --
IF clk2'event AND clk2='1'THEN --当时钟脉冲上升沿到来时执行下面语句
if count1<=16 then --当COUNT1<=9时执行下面语句
if count1=15 then --当COUNT1=8时,COUNT1清零
count1:=0; --
end if; --
CASE count1 IS --CASE语句给输出LED1赋值
WHEN 0=>led1<="11111110"; --依次点亮发光二极管
WHEN 1=>led1<="11111100"; --
WHEN 2=>led1<="11111000"; --
WHEN 3=>led1<="11110000"; --
WHEN 4=>led1<="11100000"; --
WHEN 5=>led1<="11000000"; --
WHEN 6=>led1<="10000000"; --
WHEN 7=>led1<="00000000";
WHEN 8=>led1<= "01111111"; --依次点亮发光二极管
WHEN 9=>led1<= "00111111"; --
WHEN 10=>led1<="00011111"; --
WHEN 11=>led1<="00001111"; --
WHEN 12=>led1<="00000111"; --
WHEN 13=>led1<="00000011"; --
WHEN 14=>led1<="00000001"; --
WHEN 15=>led1<="00000000"; -- --
WHEN OTHERS=>led1<="11111111";
END CASE;
count1:=count1+1;
end if;
end if;
end process;
END light;
有奖活动 | |
---|---|
【有奖活动】智能可穿戴设备AR/VR如何引领科技新潮流! | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
【有奖活动】震撼来袭!这场直播将直击工程师的心灵! | |
“我想要一部加热台”活动,不花钱赢取开发好工具!活动开始了哦 | |
【有奖活动】伙伴们:您的“需求”解决了吗? |
打赏帖 | |
---|---|
【换取手持数字示波器】N32G430点亮数码管与串口打印、ADC被打赏40分 | |
老胖子聊电路--分析一个反馈电路被打赏50分 | |
【换取手持数字示波器】+点亮WS2812RGB灯被打赏50分 | |
【换取手持数字示波器】+线性调整器理论知识分享被打赏40分 | |
放大↔震荡被打赏50分 | |
【换取手持数字示波器】RTduino驱动ssd1306+sht31温湿度计被打赏40分 | |
【换取手持数字示波器】称植国产开源TobudOS到雅特力AT32F425被打赏40分 | |
【分享评测,赢取加热台】+Telink-泰凌微电子B91点灯篇被打赏20分 | |
【换取手持数字示波器】+精英板驱动LCD屏被打赏50分 | |
【换取手持数字示波器】+DFR0216全彩灯带WS2812示例分享被打赏50分 |