差别
这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
4._数码管显示 [2017/03/04 01:38] zhijun 创建 |
4._数码管显示 [2019/09/06 11:48] (当前版本) gongyu |
||
---|---|---|---|
行 1: | 行 1: | ||
- | =====数码管显示===== | + | ####数码管显示 |
+ | |||
+ | --- | ||
本实验将会让你熟悉小脚丫上最后一种有意思的外设七段数码管。 | 本实验将会让你熟悉小脚丫上最后一种有意思的外设七段数码管。 | ||
\\ | \\ | ||
- | ====硬件说明==== | + | |
- | ------- | + | ####硬件说明 |
+ | |||
+ | --- | ||
数码管是工程设计中使用很广的一种显示输出器件。一个7段数码管(如果包括右下的小点可以认为是8段)分别由a、b、c、d、e、f、g位段和表示小数点的dp位段组成。实际是由8个LED灯组成的,控制每个LED的点亮或熄灭实现数字显示。通常数码管分为共阳极数码管和共阴极数码管,结构如下图所示: | 数码管是工程设计中使用很广的一种显示输出器件。一个7段数码管(如果包括右下的小点可以认为是8段)分别由a、b、c、d、e、f、g位段和表示小数点的dp位段组成。实际是由8个LED灯组成的,控制每个LED的点亮或熄灭实现数字显示。通常数码管分为共阳极数码管和共阴极数码管,结构如下图所示: | ||
行 22: | 行 27: | ||
这其实是一个4-16译码器,如果我们想数码管能显示16进制可以全译码,如果只想显示数字,可以只利用其中10个译码,下面看看如果用Verilog来实现。 | 这其实是一个4-16译码器,如果我们想数码管能显示16进制可以全译码,如果只想显示数字,可以只利用其中10个译码,下面看看如果用Verilog来实现。 | ||
- | ====Verilog代码==== | + | ####Verilog代码 |
- | ------ | + | |
+ | --- | ||
<code verilog> | <code verilog> | ||
行 46: | 行 52: | ||
module LED (seg_data_1,seg_data_2,seg_led_1,seg_led_2); | module LED (seg_data_1,seg_data_2,seg_led_1,seg_led_2); | ||
- | input [3:0] segdata_1; //数码管需要显示0~9十个数字,所以最少需要4位输入做译码 | + | input [3:0] seg_data_1; //数码管需要显示0~9十个数字,所以最少需要4位输入做译码 |
- | input [3:0] segdata_2; //小脚丫上第二个数码管 | + | input [3:0] seg_data_2; //小脚丫上第二个数码管 |
- | output [8:0] segled_1; //在小脚丫上控制一个数码管需要9个信号 MSB~LSB=DIG、DP、G、F、E、D、C、B、A | + | output [8:0] seg_led_1; //在小脚丫上控制一个数码管需要9个信号 MSB~LSB=DIG、DP、G、F、E、D、C、B、A |
- | output [8:0] segled_1; //在小脚丫上第二个数码管的控制信号 MSB~LSB=DIG、DP、G、F、E、D、C、B、A | + | output [8:0] seg_led_2; //在小脚丫上第二个数码管的控制信号 MSB~LSB=DIG、DP、G、F、E、D、C、B、A |
reg [8:0] seg [9:0]; //定义了一个reg型的数组变量,相当于一个10*9的存储器,存储器一共有10个数,每个数有9位宽 | reg [8:0] seg [9:0]; //定义了一个reg型的数组变量,相当于一个10*9的存储器,存储器一共有10个数,每个数有9位宽 | ||
行 68: | 行 74: | ||
end | end | ||
| | ||
- | assign segment_led_1 = seg[seg_data_1]; //连续赋值,这样输入不同四位数,就能输出对于译码的9位输出 | + | assign seg_led_1 = seg[seg_data_1]; //连续赋值,这样输入不同四位数,就能输出对于译码的9位输出 |
- | assign segment_led_2 = seg[seg_data_2]; | + | assign seg_led_2 = seg[seg_data_2]; |
endmodule | endmodule | ||
行 77: | 行 83: | ||
\\ | \\ | ||
\\ | \\ | ||
- | ====引脚分配==== | + | |
- | ------- | + | ####引脚分配 |
+ | |||
+ | --- | ||
小脚丫上正好有4路按键和4路开关,可以用来作为输入信号分别控制数码管的输出。按照下面表格定义输入输出信号 | 小脚丫上正好有4路按键和4路开关,可以用来作为输入信号分别控制数码管的输出。按照下面表格定义输入输出信号 | ||
\\ | \\ | ||
行 102: | 行 111: | ||
\\ | \\ | ||
- | ====小结==== | + | ####小结 |
------ | ------ | ||
了解了小脚丫数码管的工作原理,在下个实验我们将进行到有趣的时序逻辑。首先是如何控制[[5. 时钟分频|时钟分频]]。 | 了解了小脚丫数码管的工作原理,在下个实验我们将进行到有趣的时序逻辑。首先是如何控制[[5. 时钟分频|时钟分频]]。 | ||
- | |||
- | |||
- |