刚买了一个红色飓风二代的板子抓紧时间学习哈。
实验内容:
编写按键控制LED的程序和3/8译码器的程序,并在开发板上实现它们。
管脚对应:
push button |
SW6 |
SW5 |
SW4 |
SW3 |
FPGA Pin |
P51 |
P52 |
P57 |
P58 |
器件 |
LED1 |
LED2 |
LED3 |
LED4 |
LED5 |
LED6 |
LED7 |
LED8 |
FPGA Pin |
P204 |
P203 |
P200 |
P199 |
P198 |
P197 |
P196 |
P194 |
信号名称 |
VD8 |
VD7 |
VD6 |
VD5 |
VD4 |
VD3 |
VD2 |
VD1 |
时钟 50MHz P76
复位 SW2 P152
`timescale 1ns / 1ps
module sw_led(clk, rst, sw0, sw1, sw2, sw3, led0, led1, led2, led3, led4, led5, led6, led7);
input clk;
input rst;
input sw0;
input sw1;
input sw2;
input sw3;
output led0;
output led1;
output led2;
output led3;
output led4;
output led5;
output led6;
output led7;
wire led0;
wire led1;
wire led2;
wire led3;
wire led4;
wire led5;
wire led6;
wire led7;
wire [3 :0] sw;
reg [7 :0] led;
assign sw = {sw0,sw1,sw2,sw3};
assign {led0,led1,led2,led3,led4,led5,led6,led7} = led;
always @ ( posedge clk or negedge rst)
begin
if(!rst)
led<='b0;
else
case ( sw )
4'b1110: led <= 8'b0000_0001;
4'b1101: led <= 8'b0000_0010;
4'b1011: led <= 8'b0000_0100;
4'b0111: led <= 8'b0000_1000;
4'b1100: led <= 8'b0001_0000;
4'b1001: led <= 8'b0010_0000;
4'b0011: led <= 8'b0100_0000;
4'b0110: led <= 8'b1000_0000;
default: led <= 8'b0000_0000;
endcase
end
endmodule
代码注意:因为开发板中的四个按钮中的默认输入为高电平,所以这里的编码看起来有点儿怪。
Macro Statistics
# ROMs : 1
16x8-bit ROM : 1
综合后利用了一个16x8-bit的ROM。
一个三八译码器:
module translater(clk,rst,din,dout);
input clk,rst ;
input [2 :0 ] din ;
output[7 :0 ] dout ;
reg [7 :0 ] dout ;
always @ ( posedge clk or negedge rst )
if( !rst )
dout <= 8'b0000_0000 ;
else
case( {~din[2],~din[1],~din[0]} )
3'b000: dout <= 8'b0000_0001 ;
3'b001: dout <= 8'b0000_0010 ;
3'b010: dout <= 8'b0000_0100 ;
3'b011: dout <= 8'b0000_1000 ;
3'b100: dout <= 8'b0001_0000 ;
3'b101: dout <= 8'b0010_0000 ;
3'b110: dout <= 8'b0100_0000 ;
3'b111: dout <= 8'b1000_0000 ;
endcase
endmodule
分享到:
相关推荐
下面我们将详细探讨这个主题,特别是基于"LED控制实验一.zip"文件中的"实验一"内容。 首先,LED是一种半导体器件,当电流通过它时,会发出光。其亮度与通过它的电流成正比,因此可以通过调节电流来控制LED的亮度。...
你需要定义模块(entity)和结构(architecture),并在其中编写代码来实现按键检测和LED控制。 4. **按键消抖**:由于机械按键在按下和释放时可能会产生多次脉冲,为了准确识别一次按键操作,需要在软件中加入消抖...
LED控制实验是一个基础而重要的实践环节,特别是在电子技术、计算机硬件和嵌入式系统的学习中。这个实验通常涉及使用微控制器或单片机对LED(Light Emitting Diode,发光二极管)进行编程控制,以实现不同亮度、闪烁...
标题中的“GPIO输出实验-单路LED控制”指的是在嵌入式系统中使用GPIO(General Purpose Input/Output)端口来控制单个LED灯的工作。GPIO是微控制器或嵌入式处理器上的一种通用接口,可以配置为输入或输出,用于与...
plc实验 led控制,按实验要求使led变化 0 1 2 3 4 5 6 7 8 9
该实验是关于单片机应用的一个综合实验,目标是设计并实现一个LED灯控制器,主要使用C8051F310型号的单片机。实验的主要目的是深入理解定时/计数器、中断和IO端口的工作原理,并熟练掌握它们的编程技术以及中断程序...
LED 灯控制实验报告摘要 本实验报告的主要目的是介绍 LED 灯控制实验的设计、实现和测试过程。该实验是为计算机和物联网等相关专业的学生设计的,旨在让学生掌握物联网应用技术的基本原理和实践技能。 一、实验...
实验一的标题"实验一_GPIO口实验_led1和led2_"表明我们将通过GPIO接口来控制两个LED灯——LED1和LED2。在实际操作中,通常会将这些LED连接到微控制器的GPIO引脚,以便通过编程来控制它们的状态,即亮或灭。在这个...
VHDL实验2的主要任务是设计一个LED控制器,该控制器基于硬件描述语言VHDL,用于控制一组LED灯的行为。实验的准备工作至关重要,因为它确保了硬件与软件的正确连接和功能实现。 首先,实验者需要将usb-blaster连接到...
由于资源有限,实验设计通过巧妙的逻辑控制,仅使用一个I/O口来控制4个LED。 3. **按键检测**:按键通常连接到单片机的输入端口。当按键未按下时,电路为高电平;按下时,电路被短路,变为低电平。实验中,通过监测...
代码中可能包含了头文件的引用,定义了相关寄存器和库函数,以及main函数中的LED控制逻辑。具体实现细节,如引脚定义、延时函数的具体实现方式(如忙等待或使用定时器)、中断处理等,都会因微控制器平台的不同而...
3. **音频控制实验**:这通常涉及到音频信号的数字化处理,单片机可能需要采集音频信号,然后通过D/A转换器输出。实验可能包括音量控制、频率合成等,需要用到模数转换器(ADC)和数模转换器(DAC)。 4. **定时...
总的来说,Labview LED控制实验是学习LabVIEW串口通信和硬件交互的一个理想实践。通过这个实验,不仅可以增强你的编程技能,还能让你理解物理世界与虚拟世界的交互方式,为未来的嵌入式系统项目打下坚实基础。
实验2_按键控制LED灯.zip是一个关于嵌入式系统编程的实践项目,主要涉及STM32微控制器如何处理用户输入并控制外部硬件设备,具体来说就是LED灯的开关操作。STM32是一款基于ARM Cortex-M内核的微控制器,广泛应用于...
在这个实验中,“GPIO输出控制实验-控制Led亮灭”旨在教我们如何通过GPIO引脚来控制LED灯的亮灭状态,这是一个基础且重要的实践技能。 GPIO引脚可以被配置为输入或输出模式。在这个实验中,我们关注的是GPIO的输出...
“GPIO流水灯实验”是指通过编程控制GPIO端口输出不同的电平,使得一组LED按照特定顺序亮起和熄灭,形成类似水流流动的效果。在这个实验中,我们将学习如何配置DSP2812的GPIO端口为输出模式,设置相应的电平,并通过...
实验6:“按键控制LED实验”是EDA技术及应用课程中的一个重要实践环节,旨在让学生进一步熟悉FPGA(Field-Programmable Gate Array)开发流程,并掌握基本的硬件接口操作。在这个实验中,我们将使用Verilog HDL...
《按键控制LED实验》 在电子工程领域,Arduino是一个非常受欢迎的开源硬件平台,它使得初学者和专业工程师都能方便地进行嵌入式系统开发。本实验主要介绍如何利用Arduino来实现按键控制LED的功能,从而深入理解I/O...
实验报告“LED计数电路绘制及测试”是华中科技大学计算机组成原理课程的一部分,旨在让学生通过Logisim软件学习和实践数字逻辑电路的设计。Logisim是一款常用的逻辑电路设计工具,适合初学者使用,它提供了丰富的...