FPGA动态扫描数码管

本文介绍了一个FPGA项目,通过动态扫描技术在两个数码管上交替显示0-99的数字,每秒递增1。利用人眼视觉暂留效应,实现连续显示效果。主要涉及查找表、分频模块、位选扫描和计数模块。在实际运行中,0-10过渡存在显示延迟问题,作者计划后续修复。
摘要由CSDN通过智能技术生成

功能:用两个数码管显示0-99的数,每隔一秒加1。
由于数码管的段选段是连在一起的,要想两个数码管显示不一样的值,就必须动态地扫描数码管。因为人眼地时间分辨率是20ms,只要扫描数码管地的周期小于20ms,就可以使用残影让数码管显示数值,给人的感觉就是数码管同时显示了两个数字。
使用到的模块:
1.查找表,将数码管要显示的数值翻译成数码管的段选信号,从低位到告位分别对应着hgfedcba
2.分频模块,每隔1ms扫描一次数码管,所以要一个1kHz的时钟
3.用1kHz的信号去扫描数码管的位选端
4.获取相应数码管的显示值
5.计数模块,产生0-99
顶层模块代码

module test_top(clk_50M,reset,select,seg);
	input clk_50M;
	input reset;
	output [1:0]select;
	output[7:0]seg;
	
	reg [7:0]datain;
	reg [25:0]cnt;//4999_9999计时1秒
	reg [3:0]gewei,shiwei;
	
	//产生datain
	always@(posedge clk_50M,negedge reset)
		if(!reset)begin
			datain<=8'h00;
			gewei<=4'h0;
			shiwei<=4'h0;
			end
		else if(cnt==26'd4999_9999) begin
			if(shiwei>4'h9 && gewei>4'h9)begin
				gewei<=4'h0;
				shiwei<=4'h0;
				datain<={shiwei,gewei};
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值