fpga_key_Led

module key_led 
(
input        sys_clk50,
input        rst_n,
input       [3:0] key,
output  reg [3:0] led
);

reg [1:0]    led_ctr;
reg [23:0]   cnt;
     // 定义计数器状态
      
always @(posedge sys_clk50 or negedge rst_n)begin
     if(!rst_n)
        cnt = 24'd0;
          else if(cnt < 24'd1000_0000)
          cnt <= cnt + 1'd1;
        else
           cnt <= 24'd0;
     end
      
     //定义状态计数器的状态
    
always @(posedge sys_clk50 or negedge rst_n) begin
        if(!rst_n)
          led_ctr <= 2'b0;
           else if(cnt == 24'd1000_0000)
                led_ctr <= led_ctr + 1'b1;
             else
                 led_ctr <= led_ctr;
        end
        
        //定义led模式选择

 always @(posedge sys_clk50 or negedge rst_n) begin
        if (!rst_n)
           led <= 4'b0000;
             else 
                if(key[0] == 1'b0)
               case(led_ctr)
                2'b00:       led <= 4'b1000;
                2'b01:       led <= 4'b0100;
                2'b10:       led <= 4'b0010;
                2'b11:       led <= 4'b0001;
                endcase
              else
                  if(key[1] == 1'b0)               
                      case(led_ctr)
                     2'b00:       led <= 4'b0001;
                     2'b01:       led <= 4'b0010;
                     2'b10:       led <= 4'b0100;
                     2'b11:       led <= 4'b1000;
                endcase
                   else
                       if(key[2] == 1'b0)
                          case(led_ctr)
                          2'b00: led <= 4'b1111;
                    2'b01: led <= 4'b0000;
                    2'b10: led <= 4'b1111;
                    2'b11: led <= 4'b0000;
                          endcase
                else
                       if(key[3] == 1'b0)
                        led <= 4'b1111;
                          else
                          led <= 4'b0000;
    end
    endmodule

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
#include "stdio.h" #include "xparameters.h" #include "xgpiops.h" #define GPIOPS_ID XPAR_XGPIOPS_0_DEVICE_ID //PS 端 GPIO 器件 ID #define MIO_LED0 7 //PS_LED0 连接到 MIO7 #define MIO_LED1 8 //PS_LED1 连接到 MIO8 #define MIO_LED2 0 //PS_LED2 连接到 MIO0 #define MIO_KEY0 12 //PS_KEY0 连接到 MIO7 #define MIO_KEY1 11 //PS_KEY1 连接到 MIO8 #define EMIO_KEY 54 //PL_KEY0 连接到 EMIO0 int main() { printf("EMIO TEST!\n"); XGpioPs gpiops_inst; //PS 端 GPIO 驱动实例 XGpioPs_Config *gpiops_cfg_ptr; //PS 端 GPIO 配置信息 //根据器件 ID 查找配置信息 gpiops_cfg_ptr = XGpioPs_LookupConfig(GPIOPS_ID); //初始化器件驱动 XGpioPs_CfgInitialize(&gpiops_inst, gpiops_cfg_ptr, gpiops_cfg_ptr->BaseAddr); //设置 LED 为输出 XGpioPs_SetDirectionPin(&gpiops_inst, MIO_LED0, 1); XGpioPs_SetDirectionPin(&gpiops_inst, MIO_LED1, 1); XGpioPs_SetDirectionPin(&gpiops_inst, MIO_LED2, 1); //使能 LED 输出 XGpioPs_SetOutputEnablePin(&gpiops_inst, MIO_LED0, 1); XGpioPs_SetOutputEnablePin(&gpiops_inst, MIO_LED1, 1); XGpioPs_SetOutputEnablePin(&gpiops_inst, MIO_LED2, 1); //设置 KEY 为输入 XGpioPs_SetDirectionPin(&gpiops_inst, MIO_KEY0, 0); XGpioPs_SetDirectionPin(&gpiops_inst, MIO_KEY1, 0); XGpioPs_SetDirectionPin(&gpiops_inst, EMIO_KEY, 0); //读取按键状态,用于控制 LED 亮灭 while(1){ XGpioPs_WritePin(&gpiops_inst, MIO_LED0, ~XGpioPs_ReadPin(&gpiops_inst, MIO_KEY0)); XGpioPs_WritePin(&gpiops_inst, MIO_LED1, ~XGpioPs_ReadPin(&gpiops_inst, MIO_KEY1)); XGpioPs_WritePin(&gpiops_inst, MIO_LED2, ~XGpioPs_ReadPin(&gpiops_inst, EMIO_KEY)); } return 0; }
最新发布
06-09

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值