FP入门实验:数码管动态显示技术.pdfVIP

  • 0
  • 0
  • 约5.67千字
  • 约 5页
  • 2026-01-27 发布于北京
  • 举报

FPGA系列实验——数码管动态显示

1.实验任务

实现开发板上8个数码管动态显示0~7通过这个实验掌握采用VerilogHDL

语言编程实现7段数码管显示译以及数码管动态扫描显示的方法。

2.实验环境

硬件实验环境为电子型号EP2C8Q208C8增强版开发套件。

软件实验环境为QuartusII8.1开发软件。

3.实验原理

由于LED静态显示需要占用较多的I/O口,且功耗较大,因此在大多数场合通

常不采用静态显示,而采用动态扫描的方法来控制LED数码管的显示。动态

显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位

数码管有效。点亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各

位数码管送出字形码和相应的位选,只要扫描显示速度够快,利用发光管的

和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态

显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示

电路中的。动态扫描显示时刷新频率大于50HZ,即没显示一轮的时间不

超过20ms,每个数码管显示时间不能太长也不能太短,时间太长会影响刷新

率,导致总体显示呈现闪烁的现象,时间太短发光二极管的电流导通时间也

就短,会影响总体的显示亮度。一般控制在1ms左右最佳。

4.实验程序

modulescan_led(clk,rst,sm_seg,sm_bit);

inputclk,rst;

output[7:0]sm_seg;//数码管段选择输出

output[7:0]sm_bit;//数码管位选择输出

reg[7:0]sm_seg;//数码管段选择输出寄存器

reg[7:0]sm_bit;//数码管位选择输出寄存器

reg[15:0]cnt_scan;//扫描频率计数器

reg[4:0]dataout_buf;

always@(posedgeclkornegedgerst)

begin

if(!rst)begin

cnt_scan=0;

end

elsebegin

cnt_scan=cnt_scan+1b1;

end

end

always@(cnt_scan)

begin

case(cnt_scan[15:13])

3b000:

sm_bit8b1111_1110;

3b001:

sm_bit8b1111_1101;

3b010:

sm_bit8b1111_1011;

3b011:

sm_bit8b1111_0111;

3b100:

sm_bit8b1110_1111;

3b101:

sm_bit8b1101_1111;

3b110:

sm_bit8b1011_1111;

3

文档评论(0)

1亿VIP精品文档

相关文档