差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
上一修订版 两侧同时换到之后的修订记录
7段数码管 [2016/07/01 16:41]
anran [工作原理]
7段数码管 [2020/09/10 22:20]
gongyu
行 1: 行 1:
-=====7段数码管显示=====+## 7段数码管显示 
 + 
 +### 硬件平台
  
-====硬件平台==== 
 ------ ------
   - [[STEP-MXO2第一代]]   - [[STEP-MXO2第一代]]
   - [[STEP-Baseboard]]   - [[STEP-Baseboard]]
  
-====设计要求====+### 设计要求 
 ------ ------
   - 了解数码管显示的工作原理   - 了解数码管显示的工作原理
行 13: 行 15:
   - 掌握数码管动态显示,按秒实现0到9循环左移显示   - 掌握数码管动态显示,按秒实现0到9循环左移显示
  
-====工作原理====+### 工作原理 
 ------ ------
  
-===八段数码管显示原理===+### 八段数码管显示原理 
 ------ ------
 数码管是工程设计中使用很广的一种显示输出器件。一个8段数码管分别由a、b、c、d、e、f、g位段和表示小数点的dp位段组成。实际是由8个LED灯组成的,控制每个LED的点亮或熄灭实现数字显示。通常数码管分为共阳极数码管和共阴极数码管,结构如下图所示: 数码管是工程设计中使用很广的一种显示输出器件。一个8段数码管分别由a、b、c、d、e、f、g位段和表示小数点的dp位段组成。实际是由8个LED灯组成的,控制每个LED的点亮或熄灭实现数字显示。通常数码管分为共阳极数码管和共阴极数码管,结构如下图所示:
行 41: 行 45:
  
  
-===74HC595驱动原理===+### 74HC595驱动原理 
 ------ ------
 从前面我们知道驱动一个4位数码管至少需要12根线,对于小脚丫FPGA的引脚资源来说还是很紧张的。因此在[[STEP-Baseboard]]实验平台上采用了74HC595来驱动数码管显示,这样可以有效的节约我们的管脚资源。 从前面我们知道驱动一个4位数码管至少需要12根线,对于小脚丫FPGA的引脚资源来说还是很紧张的。因此在[[STEP-Baseboard]]实验平台上采用了74HC595来驱动数码管显示,这样可以有效的节约我们的管脚资源。
行 57: 行 62:
 一个4位数码管至少需要12根信号线控制显示,因此[[STEP-Baseboard]]上采用了两片74HC595级联来实现控制。单个74HC595芯片8根并行输出信号更新一次需要8个SH_CP信号周期的时间长度,所以需要16个SH_CP信号周期才能完成一位数码管的显示; 一个4位数码管至少需要12根信号线控制显示,因此[[STEP-Baseboard]]上采用了两片74HC595级联来实现控制。单个74HC595芯片8根并行输出信号更新一次需要8个SH_CP信号周期的时间长度,所以需要16个SH_CP信号周期才能完成一位数码管的显示;
  
-假如我们把每位数码管延时时间设为2.5ms(正好满足人眼暂留效应,看起来像是4位同时显示),对应16个SH_CP信号周期,则SH_CP信号周期应该为2.5ms/​16 ≈ 156us,SH_CP信号的频率应该为1000000us/​156us ≈ 6.4KHz,这样在程序设计的时候我们可以将SH_CP的控制信号(sclk_out)设置为6.4KHz所有+假如我们把每位数码管延时时间设为2.5ms(正好满足人眼暂留效应,看起来像是4位同时显示),对应16个SH_CP信号周期,则SH_CP信号周期应该为2.5ms/​16 ≈ 156us,SH_CP信号的频率应该为1000000us/​156us ≈ 6.4KHz,这样在程序设计的时候我们可以将SH_CP的控制信号(sclk_out)设置为6.4KHz左右 
 + 
 +### 硬件连接
  
-====硬件连接==== 
 ------ ------
 根据上面[[STEP-Baseboard]]采用的4为数码馆结构图可以看到,加上数码管中间的冒号显示,我们需要14根信号线控制。通过两片74HC595级联驱动实现了3根串行总线控制16根并行总线输出,有效减少了引脚需求。具体硬件连接如下所述: 根据上面[[STEP-Baseboard]]采用的4为数码馆结构图可以看到,加上数码管中间的冒号显示,我们需要14根信号线控制。通过两片74HC595级联驱动实现了3根串行总线控制16根并行总线输出,有效减少了引脚需求。具体硬件连接如下所述:
行 81: 行 87:
  
  
-====代码设计====+### 代码设计 
 ---- ----
  
行 128: 行 135:
 ^ 管脚名称 | clk_in | rst_n_in ​ | rclk_out ​ | sclk_out ​ | sdio_out ​ | ^ 管脚名称 | clk_in | rst_n_in ​ | rclk_out ​ | sclk_out ​ | sdio_out ​ |
 ^ FPGA管脚 | C1     | B1        | M1        | N2        | K1        |  ^ FPGA管脚 | C1     | B1        | M1        | N2        | K1        |
-====系统运行====+ 
 +### 系统运行
  
 {{:​系统运行1.jpg?​300 |系统运行1}} {{:​系统运行1.jpg?​300 |系统运行1}}
行 135: 行 143:
  
 {{:​系统运行3.jpg?​300|系统运行3}} {{:​系统运行3.jpg?​300|系统运行3}}
-====资源报告====+ 
 +### 资源报告
  
 ^ 资源 | 数量 ​ | 比例 ​ | 说明 ​ | ^ 资源 | 数量 ​ | 比例 ​ | 说明 ​ |
行 144: 行 153:
 ^ 时钟频率 | 25MHz |   ​| ​   | ^ 时钟频率 | 25MHz |   ​| ​   |
  
-====知识点====+### 知识点
  
   * 时钟分频   * 时钟分频
行 150: 行 159:
   * 数码管动态显示   * 数码管动态显示
  
-====参考文档====+ 
 +### 参考文档
   * {{:​machxo2familydatasheet.pdf|Lattice MachXO2数据手册}}   * {{:​machxo2familydatasheet.pdf|Lattice MachXO2数据手册}}
   * {{:​sn74hc595.pdf|74HC595数据手册}}   * {{:​sn74hc595.pdf|74HC595数据手册}}
  
-====相关文档====+### 相关文档
  
 ^ **文件名称** ​ | **功能** | ^ **文件名称** ​ | **功能** |
 ^ **[[DLED_DISP]].v** | **数码管显示** | ^ **[[DLED_DISP]].v** | **数码管显示** |
- 
- 
- 
-