【每周一练】+盘古1K开发板+3. 按键控制数码管 - FPGA开发者技术社区 - 电子技术william hill官网 - 广受欢迎的专业电子william hill官网 - 威廉希尔官方网站
分享 收藏 返回

hehung 关注 私信
[文章]

【每周一练】+盘古1K开发板+3. 按键控制数码管

前言

按照要求,应该实现如下功能:

实验目的:
掌握数码管显示原理,实现数码管动态显示
实验要求:
实现四个数码管可以显示不同的数字,按键 K1 控制第一个数码管,按一下数字加 1,显示从 0 到 9,按键 K2 控制第二个数码管,按一下数字加 1,显示从 0 到 9,类似的,按键 K3 控制第三个数码管,按键 K4 控制第四个数码管

依然使用官方提供的Demo,再次基础上学习实现功能。

1 数码管原理图

数码管原理图如下,从图中可以看出数码管的8个LED是共阳的,即正极连接在VCC,需要控制负极的电平就可以控制LED的亮灭:
1702795438802.png

其中a,b,c,d,e,f,dp分别对应的是数码管上的不同LED:

1702794523483.png

2 查看引脚分布

我们在“Pre Synthesize UCE”中可以看到demo示例中的引脚分布,如下:
1702795532912.png

结合原理图,我们可以知道,数码管LED对应关系如下:

数码管定义 引脚 数码管
smg[0] 1 g
smg[1] 88 f
smg[2] 96 e
smg[3] 99 d
smg[4] 98 c
smg[5] 3 b
smg[6] 2 a
smg[7] 84 dp

由此可以知道,我们要输出不同的数字和字母,需要对每个LED进行开关控制,如下:

  • 0:a,b,c,d,e,f亮:10000001
  • 1:b,c亮:11001111
  • 2:a,b,g,e,d亮:10010010
  • 3:a,b,c,d,g亮:10000110
  • 4:b,c,f,g亮:11001100
  • 5:a,f,g,c,d亮:10100100
  • 6:a,f,e,d,c,g亮:10100000
  • 7:a,b,c亮:10001111
  • 8:a,b,c,d,e,f亮:10000000
  • 9:a,b,c,d,f亮:10000100
  • A: a,b,c,e,f,g亮:10001000
  • b: b,g,c,d,e亮:11000010
  • C: a,f,e,d亮:10110001
  • d: b,g,e,d,c亮:11000010
  • e: a,f,g,e,d亮:10110000
  • F: a,f,g,e亮:10111000

3 代码实现

官方代码已经实现了数码管 0~9通过按键切换,我再次基础上增加了A,b,C,d,E,F这几个字母的显示,修改部分代码实现如下:

修改key_cnt.v如下:

begin
	if(key_reg&&~key&&key_times==4'd15)
		key_times <=`UD 4'd0;
	else if(key_reg&&~key)
		key_times <=`UD key_times + 1'b1;
end 

修改seq_control.v如下:

begin
	case(key)
		4'd0:smg = 8'b1000_0001;//"0" 
		4'd1:smg = 8'b1100_1111;//"1"  
		4'd2:smg = 8'b1001_0010;//"2"  
		4'd3:smg = 8'b1000_0110;//"3"  
		4'd4:smg = 8'b1100_1100;//"4"  
		4'd5:smg = 8'b1010_0100;//"5"  
		4'd6:smg = 8'b1010_0000;//"6"  
		4'd7:smg = 8'b1000_1111;//"7"  
		4'd8:smg = 8'b1000_0000;//"8"  
		4'd9:smg = 8'b1000_0100;//"9"  
        4'd10:smg = 8'b1000_1000;//"A"
        4'd11:smg = 8'b1100_0010;//"b"  
        4'd12:smg = 8'b1011_0001;//"C"  
        4'd13:smg = 8'b1100_0010;//"d"  
        4'd14:smg = 8'b1011_0000;//"E" 
        4'd15:smg = 8'b1011_1000;//"F"  
		default:smg = 8'b1111_1111;	
	endcase
end

4 实现效果

实现效果见末尾视频

按键控制数码管演示

更多回帖

×
发帖