十六进制七段LED显示译码器 静态显示

这篇具有很好参考价值的文章主要介绍了十六进制七段LED显示译码器 静态显示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

译码器是一类多输入多输出组合逻辑电路器件,其可以分为变量译码和显示译码两类。 变量译码器一般是一种较少输入变为较多输出的器件,如3-8译码器,显示译码器用来将数值转换成要显示的对应的符号。

任务描述

根据所学的组合逻辑及数字电路的知识利用VerilogHDL描述完成一个16进制7段数码显示译码器的设计,并进行验证测试。
熟悉Verilog HDL文本设计流程,掌握组合逻辑电路的设计仿真和硬件测试的方法。最后完善一个16进制7段数码显示译码器电路的功能描述风格Verilog HDL 代码。

实验目的

进一步学习和掌握使用Verilog HDL描述电路功能的编写,练习使用条件判断语句进行译码。

实验原理

十六进制数七段LED显示译码器也称为七段数码管,其示意图如下所示,包括七个LED管和一个圆形 LED小数点。按 LED单元连接方式可以分为共阳数码管和共阴数码管,共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到逻辑高电平,当某一字段发光二极管的阴极为低电平时,相应字段就点亮;当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到逻辑低电平,当某一字段发光二极管的阳极为高电平时,相应字段就点亮;当某字段的阳极为低电平时,相应字段就不亮。
十六进制七段LED显示译码器 静态显示
在开发板电路上常用共阳极驱动数码管,要求设计对应的译码电路,其对应的显示译码器功能表如下所示,为了完整,将小数点也计算在内,如果不用小数点时,将其不点亮即可,即默认共阳极dp为高电平。规定seg_d[7:0] = {dp,g,f,e,d,c,b,a}。
十六进制七段LED显示译码器 静态显示

实验过程及步骤

1、新建工程,工程名为shumaguanyimaqi
十六进制七段LED显示译码器 静态显示
2、新建Verilog Module文件,命名为:shumaguanyimaqi
十六进制七段LED显示译码器 静态显示
编写代码
十六进制七段LED显示译码器 静态显示

module shumaguanyimaqi( 
			input[3:0]data_in,
			input rst_n,
			output [7:0]LED
    );
			reg [7:0]smg_duan;
always@(*)begin
		case(data_in)
	      0:smg_duan=8'hc0;//c0
	      1:smg_duan=8'hf9;
	      2:smg_duan=8'ha4;
	      3:smg_duan=8'hb0;
	      4:smg_duan=8'h99;
	      5:smg_duan=8'h92;
	      6:smg_duan=8'h82;
	      7:smg_duan=8'hf8;
	      8:smg_duan=8'h80;
	      9:smg_duan=8'h90;
	      10:smg_duan=8'h88;
	      11:smg_duan=8'h83;
	      12:smg_duan=8'hc6;
			13:smg_duan=8'ha1;
			14:smg_duan=8'h86;
			15:smg_duan=8'h8e;
			endcase
   end
assign LED=smg_duan;	

3、运行正确之后,查看RTL图
十六进制七段LED显示译码器 静态显示
双击放大:
十六进制七段LED显示译码器 静态显示
4、右击,选择New Source,选择Verilog Test Fixture,命名为shuziyima
十六进制七段LED显示译码器 静态显示
编写仿真代码:

仿真测试代码
module shuziyima;

	// Inputs
	reg [3:0] data_in;
	reg rst_n;

	// Outputs
	wire [7:0] LED;

	// Instantiate the Unit Under Test (UUT)
	shumaguanyimaqi uut (
		.data_in(data_in), 
		.rst_n(rst_n), 
		.LED(LED)
	);
		
	initial begin
		// Initialize Inputs
		data_in = 0;
		rst_n = 0;

		// Wait 100 ns for global reset to finish
		#100;
		rst_n=1;
		data_in = 0;
		// Add stimulus here
		#5
		data_in=0000;
		#5
		data_in=0001;
		#5
		data_in=0010;
		#5
		data_in=0011;
		#5
		data_in=0100;
		#5
		data_in=0101;
		#5
		data_in=0110;
		#5
		data_in=0111;
		#5
		data_in=1000;
		#5
		data_in=1001;
		#5
		data_in=1010;
		#5
		data_in=1011;
		#5
		data_in=1100;
		#5
		data_in=1101;
		#5
		data_in=1110;
		#5
		data_in=1111;

	end
      
endmodule

根据上面显示译码器功能表可知,
进行行为仿真,得到波形图如下:

十六进制七段LED显示译码器 静态显示
5、完成引脚标注,下载到开发板上进行实物实验

NET "data_in[0]" LOC = L5;
NET "data_in[1]" LOC = M3;
NET "data_in[2]" LOC = L4;
NET "data_in[3]" LOC = L3;

NET "LED[0]" LOC = L10;
NET "LED[1]" LOC = P9;
NET "LED[2]" LOC = N9;
NET "LED[3]" LOC = M9;
NET "LED[4]" LOC = L7;
NET "LED[5]" LOC = N8;
NET "LED[6]" LOC = P8;
NET "LED[7]" LOC = M7;

十六进制七段LED显示译码器 静态显示
十六进制七段LED显示译码器 静态显示
十六进制七段LED显示译码器 静态显示
十六进制七段LED显示译码器 静态显示文章来源地址https://www.toymoban.com/news/detail-456831.html

到了这里,关于十六进制七段LED显示译码器 静态显示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp中map组件打点/地图上显示圆/设置map圆的透明度(十六进制颜色透明度)

    一般来说我们都是想设置成透明的圆,十六进制的后两位表示颜色 eg:#0000006A 6A就是表示透明度,数字越大透明度越高

    2024年02月12日
    浏览(38)
  • JS十六进制,CRC冗余,小程序发送蓝牙数据,十六进制GBK编码转换等

    小程序问题:https://kf.qq.com/faq/170705YVZFZZ170705eyI7Rr.html 调用: 注意:这里的true和false代表是否大端小端转换 调用: 调用: 调用: 调用: 调用: 此代码写到小程序utils目录下的utuils.js文件中 调用:页面最上边先引入,然后再使用 调用: 这里发送buffer1给小程序公用api就可 调

    2024年02月16日
    浏览(60)
  • JS十六进制转浮点、字符串转为ArrayBuffer、ArrayBuffer转16进制字符串、16进制转10进制、crc校验位、十六进制转中文字符串(小程序、浏览器)、十六进制字符串转ascall字串

    h5实现一键复制文本到剪切板 ArrayBuffer转16进制字符串: 字符串转为ArrayBuffer对象 十六进制转10进制 浮点型转十六进制: 将某段字符串使用某字符补齐 十六进制转带符号(-负号)整型 带符号(负号)整数转十六进制字符串(得到8个字符十六进制字符串) 带符号(负号)整数转

    2024年02月09日
    浏览(44)
  • 十六进制转换到十进制(java)

    一、前言  首先我们要知道十六进制的转换以及十以上的进制的转换与十以下的进制转换是不一样的,它们在一位上会用超过9的数字,这个我们在利用以前的方法就行不通了,我接下来就向大家分享一种方法。(注:在Java中10---15分别用A B C D E F表示,不分大小写) 二、正文

    2024年02月11日
    浏览(49)
  • python实现十六进制转十进制

    先来看下十六进制的定义以及表示方式,以下是百度百科上的解释: 十六进制 (简写为 hex 或下标16)是一种基数为16的计数系统,是一种逢16进1的进位制。通常用数字0、1、2、3、4、5、6、7、8、9和字母A、B、C、D、E、F(a、b、c、d、e、f)表示,其中:A~F表示10~15,这些称作

    2023年04月19日
    浏览(39)
  • 【FPGA仿真】Matlab生成二进制、十六进制的txt数据以及Vivado读取二进制、十六进制数据并将结果以txt格式保存

    在使用Vivado软件进行Verilog程序仿真时可能需要对模块输入仿真的数据,因此我们需要一个产生数据的方法(二进制或者十六进制的数据),Matlab软件是一个很好的工具,当然你也可以使用VS等工具。 以下分别给出了使用Matlab模拟产生二进制和十六进制数据的例子,例子仅供参

    2024年02月01日
    浏览(38)
  • MATLAB十六进制与十进制互相转换

    包含单个数字进行转换和数组进行转换(可用于串口数据解析) 1.十六进制转十进制

    2024年01月16日
    浏览(41)
  • C语言:十进制与十六进制的转化

    要将十进制数转换为十六进制数, 可以使用以下步骤: 1. 将十进制数除以 16,得到商和余数。 2. 用余数作为当前位的十六进制数位,余数可能是 0 到 15 之间的数字,分别对应 0 到 F。 3. 将商作为新的十进制数,并重复步骤 1 和 2,直到商为 0。 4. 将得到的十六进制数位按照

    2024年02月05日
    浏览(54)
  • Python hex()十六进制转换

    Python hex() 函数用于将整数转换为以“0x”为前缀的小写十六进制字符串: 输出: 十六进制 到 十进制 使用 int() 函数 ,第一个参数是字符串 ‘0Xff’ ,第二个参数是说明,这个字符串是几进制的数。 转化的结果是一个十进制数。 二进制 到 十进制 八进制 到 十进制 其实可以看

    2024年02月11日
    浏览(37)
  • PYTHON : 二进制 、 八进制 、十六进制的转换和输出

    十进制转换成其他进制 保存为文本串 二进制 bIn() 八进制 oct() 十六进制 hex() 不输出前缀 使用format函数 如果不想输出进制前面的 前缀符号 , 这时我们就要使用format函数 在这里我们要注意 , 二进制和八进制 的再format里的 符号是‘b’,‘o’ 而十六进制format 里的符

    2023年04月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包