Verilog实现拨码开关控制数码管显示——FPGA

通过一个简单的3—8译码器的设计,掌握组合逻辑电路的设计方法。

掌握拨码开关和数码管的使用。

掌握组合逻辑电路的静态测试方法。

原理及内容:

原理:

根据38译码原理将5bit的编码后四位解码为0~f十六进制数

最高位以实现两个功能的二选一操作。

内容:使用拨码开关分别选择使能下面两种功能

通过拨码开关使c3~c0输入不同的值0000~1111,在数码管上分别依次输出0~f。在系统板动态数码管上分别依次输出 HELLO,fpga通过3-8译码器驱动8个数码管的公共阴极。使用1khz数字时钟动态扫描。

步骤:

1.建立工程

2.建立Verilog文件,编写相关代码

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是一个基于 Verilog 的代码实现,通过拨码开关控制数码管的显示,模仿 TI-83 计算器的优先级译码器: ```verilog module ti83_decoder( input [7:0] switches, // 拨码开关输入 output reg [6:0] display // 数码管输出 ); reg [7:0] encoded; // 译码器优先级 always @(*) begin if (switches[0]) encoded = 8'b11111110; else if (switches[1]) encoded = 8'b11111101; else if (switches[2]) encoded = 8'b01101101; else if (switches[3]) encoded = 8'b10111100; else if (switches[4]) encoded = 8'b01111001; else if (switches[5]) encoded = 8'b00110001; else if (switches[6]) encoded = 8'b11111100; else if (switches[7]) encoded = 8'b11111111; else encoded = 8'b00000000; end // 数码管显示 always @(*) begin case(encoded) 8'b00000001: display = 7'b1000000; 8'b00000010: display = 7'b1111001; 8'b00000100: display = 7'b0100100; 8'b00001000: display = 7'b0110000; 8'b00010000: display = 7'b0011001; 8'b00100000: display = 7'b0010010; 8'b01000000: display = 7'b0000010; 8'b10000000: display = 7'b1111000; default: display = 7'b1111111; endcase end endmodule ``` 在此模块中,`switches` 输入是一个 8 位二进制数,代表着 8 个拨码开关的状态。根据拨码开关的状态,优先级译码器会将其译码成一个 8 位二进制数 `encoded`。然后根据 `encoded` 的值,将对应的数码管显示值输出到 `display` 输出端口上。如果 `encoded` 的值不在 1~8 的范围内,则将数码管输出设为 `1111111`,即不显示任何数码。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值