fpga数码管显示实验原理
- 格式:docx
- 大小:37.17 KB
- 文档页数:3
数码管显示控制实验原理
嘿,朋友们!今天咱来聊聊数码管显示控制实验原理。
想象一下,数码管就像是一个个小小的窗户,每个窗户里都能显示出不同的数字或符号。
其实啊,这原理就好像是一个聪明的指挥家在控制着一场精彩的灯光秀。
数码管里的每一段就像是一个小灯,通过巧妙地控制这些小灯的亮灭,就能组合出我们想要的数字啦。
比如说,要显示数字“8”,那就得让数码管的所有段都亮起来,就像把所有的灯光都打开,一下子就呈现出一个完整的“8”啦。
而要显示其他数字呢,就按照特定的组合让相应的段亮起来就行。
这就好像我们家里的电灯开关,想开哪个灯就按哪个开关,只不过这里的开关是通过电路和程序来控制的哦。
在实验里,我们就是要搞清楚怎么去设置这些开关,让数码管乖乖地显示出我们想要的东西。
是不是感觉挺有意思的呀?就像是在玩一个超级有趣的电子游戏,只不过这个游戏是关于数字和电路的。
所以,下次当你看到数码管显示出清晰的数字时,就可以想象一下背后那个神奇的“指挥家”是怎么工作的啦!。
综合课程设计实验报告班级:姓名:学号:11指导老师:实验名称:拨码开关输入数码管显示实验实验要求:1. 掌握数码管显示原理2. 掌握拨码开关工作原理3. 通过FPGA用拨码开关控制数码管显示实验目标:4位拨码开关分别对应4位数码管,拨动任意1位开关,对应的数码管将显示数字1,否则显示数字0。
实验设计软件Quartus II实验原理1.数码管显示模块电路原理图:如图所示,数码管中a,b,c,d,e,f,g,dp分别由一个引脚引出,给对应的引脚高电平,则对应引脚的LED点亮,故我们在程序中可以设定一个8位的二进制数reg【7:0】h,每一位对应一个相应的引脚输出,那么我们就可以通过对x的赋值,控制对应的8个LED亮灭的状态进行数字显示。
例如,如果我们显示数字2,则在数码管中,a、b、d、e、g亮,c、f、dp不亮,则显示的是数字2,即h=’b代表显示数字2。
2.拨码开关模块电路原理图:拨码开关有8个引脚,每个引脚对应于数码管的一个LED灯,当拨码开关的一个引脚是高电平时,则对应的数码管一个LED灯亮,其他7个LED等不亮。
通过此原理来实现数码管的LED灯亮暗情况从而实现数码管的数字显示。
例如当第一个拨码接通时,此时输入信号为8'b对应的数码管的输出信号为out=8'b,此时相当于数码管a,b,c,d,e,f,g亮,7段数码管全部显示,显示的数字为8。
程序代码module bomakaiguan(out,key_in,clk);assign p='b1111;output[7:0] out=8'b;input[7:0] key_in;input clk;reg[7:0] out;always @(posedge clk)begincase(key_in)8'b: out=8'b;8'b00000001: out=8'b01100000;8'b00000010: out=8'b;8'b00000100: out=8'b;8'b00001000: out=8'b01100100;8'b00010000: out=8'b;8'b00100000: out=8'b;8'b01000000: out=8'b;endcaseendendmodule。
《FPGA设计与应用》数码管显示实验一、实验目的1.学习动态数码管的工作原理;2.实现对EGO1开发板四位动态数码管的控制;二、实验内容实现对EGO1开发板四位动态数码管的控制,使其能够正常工作;三、实验要求在EGO1开发板上显示想要的数字。
四、实验背景知识1.LED数码管基础知识在数码管上显示数字就是将相应的段位点亮组成要显示的数字,共阴数码管的码值表如下所示,‘1’代表相应的管脚输出高电平,点亮相应段位,‘0’代表相应的管脚输出低电平,不点亮相应段位。
2.动态数码管原理EGO1 开发板上使用的是共阴极动态数码管,这种数码管有四个共阴极分别选通对应的每位数码管,四位数码管的八个段码脚连接在一起。
动态数码管显示的原理是:每次选通其中一位,送出这位要显示的内容,然后一段时间后选通下一位送出对应数据,4 个数码管这样依次选通并送出相应的数据,结束后再重复进行。
这样只要选通时间选取的合适,由于人眼的视觉暂留,数码管看起来就是连续显示的。
五、实验方案及实现1、数码管显示的设计共分3个模块:(1)数码管封装模块(2)数码管设计模块(3)顶层模块数码管封装模块代码:module smg_ip_model(clk,data,sm_wei,sm_duan);input clk;input [15:0] data;output [3:0] sm_wei;output [7:0] sm_duan;integer clk_cnt;reg clk_400Hz;always @(posedge clk)if(clk_cnt==32'd100000)begin clk_cnt <= 1'b0; clk_400Hz <= ~clk_400Hz;endelseclk_cnt <= clk_cnt + 1'b1;reg [3:0]wei_ctrl=4'b1110;always @(posedge clk_400Hz)wei_ctrl <= {wei_ctrl[2:0],wei_ctrl[3]}; reg [3:0]duan_ctrl;always @(wei_ctrl)case(wei_ctrl)4'b1110:duan_ctrl=data[3:0];4'b1101:duan_ctrl=data[7:4];4'b1011:duan_ctrl=data[11:8];4'b0111:duan_ctrl=data[15:12];default:duan_ctrl=4'hf;endcasereg [7:0]duan;always @(duan_ctrl)case(duan_ctrl)4'h0:duan=8'b0011_1111;4'h1:duan=8'b0000_0110;4'h2:duan=8'b0101_1011;4'h3:duan=8'b0100_1111;4'h4:duan=8'b0110_0110;4'h5:duan=8'b0110_1101;4'h6:duan=8'b0111_1101;4'h7:duan=8'b0000_0111;4'h8:duan=8'b0111_1111;4'h9:duan=8'b0110_1111;4'ha:duan=8'b0111_0111;4'hb:duan=8'b0111_1100;4'hc:duan=8'b0011_1001;4'hd:duan=8'b0101_1110;4'he:duan=8'b0111_1000;4'hf:duan=8'b0111_0001;数码管设计模块module test(clk,data);input clk;output [15:0]data;reg clk_1Hz;integer clk_1Hz_cnt;always @(posedge clk)if(clk_1Hz_cnt==32'd2*******-1)begin clk_1Hz_cnt <= 1'b0; clk_1Hz <= ~clk_1Hz;end elseclk_1Hz_cnt <= clk_1Hz_cnt + 1'b1;reg [39:0]disp=40'h1234567890;reg [15:0]data;always @(posedge clk_1Hz)begindisp <= {disp[35:0],disp[39:36]};data <= disp[39:24];endEndmodule顶层模块module smg_ip(clk,sm_wei,sm_duan);input clk;output [3:0]sm_wei;output [7:0]sm_duan;wire [15:0]data;wire [3:0]sm_wei;wire [7:0]sm_duan;test U0 (.clk(clk),.data(data));smg_ip_model U1(.clk(clk),.data(data),.sm_wei(sm_wei),.sm_duan(sm_duan)); endmodule六、实验结果Vivado仿真:上实验板实操:七、实验心得次实验主要学习了利用vivado软件实现数码管的显示,利用编程来实现,并且还对动态数码管的原理进行了一定的学习,包括上次实验学习到的模块化设计,方便程序的调试,程序运行过程中并不顺利,一直没有创建出pin文件夹,最后还是在老师的帮助下完成了pin文件夹的创建,导入到板子后完成了本次实验的设计。
《FPGA设计与应用》数码管显示实验一、实验目的和要求
1.学习动态数码管的工作原理;
2.实现对EGO1开发板四位动态数码管的控制;
二、实验内容
实现对EGO1开发板四位动态数码管的控制,使其能够正常工作;
三、实验要求
在EGO1开发板上显示想要的数字。
四、操作方法与实验步骤
1、八段数码管的动态显示原理:
2、数码管显示的设计共分3个模块:
(1)数码管封装模块
(2)数码管设计模块
(3)顶层模块
数码管动态显示的MODULE实现:
模块顶层设计——显示4个(位)十进制数
逻辑实现:
确定当前显示的位
确定当前“位”需要显示的“数”:
将“数”翻译成相应的“段码”
仿真测试台代码编写与仿真测试定义时间标尺:
定义测试Moudle
实例化被测Moudle
定义激励信号与响应信号
构造激励信号:
五、实验数据记录和处理实验代码如下:
设计文件:(部分)
仿真文件:
约束文件:
六、实验结果与分析网表结构:
仿真图像:
实物图:
七、讨论和心得
通过这次实验,我学会了数码管的动态显示,每一个数码管共用一套电路,显示时只需控制哪一个数码管进行显示。
虽然一次只能控制单独一个数码管进行显示,但可以快速切换数码管显示,利用人眼的”视觉暂留"来“同步”进行显示。
最后我明白了我们不要遇到一点困难就退缩,就去向老师同学寻求帮助,自己是自己最好的老师,只有我们靠自己的不断修改出正确结果,才会对这个知识掌握的更加透彻。
实验三 静态数码管显示一.实验目的 1.了解数码管内部电路结构; 2.学习7段数码管显示译码器的设计; 3. 学习LPM 兆功能模块的调用。
二. 准备知识为了对数字电路进行控制、直观观察数字电路的设计结果,CPLD/FPGA 器件往往要和一些外部接口电路相连,前面实验中实验的二极管、DIP 开关、脉冲信号源等都属于外部接口电路。
在编译前我们进行的锁定管脚,就是把设计电路(元件)的数字信号输入、输出连到相应的CPLD/FPGA 器件管脚;而CPLD/FPGA 器件的一些管脚在硬件上和外部的接口电路相连;这样就把设计的输入、输出管脚和外部的接口电路相通,以便对电路进行控制(输入)、观察结果(输出)。
通常的外部接口电路有:二极管、7VGA 接口、鼠标接口、键盘、时钟信号接口、A/D 接口、D/A 接口、UART 接口、I 2C 控制器接口等其它数字信号接口。
数码管LED 显示是工程项目中使用广泛的一种输出显示器件。
从数码管的个数上数码管分为单联和多联,单联数码管的封装结构如图3.1所示;从电路连接上数码管分为共阳极和共阴极2种,共阴极数码管是将8个发光二极管的阴极连接在一起作为公共端,如图3.2所示;而共阳极数码管是将8个发光二极管的阳极连接在一起作为公共端,如图3.3所示。
公共端通常称为位码或选通位,而将其它8位称为段码。
底部管脚 上部结构图数码管的e 、d 、c 、b 、a 。
我们以图3.3所A11脚为低电平,这样发光二极1”,就需要位码为高电平,BC 段码为低电平,正向导通而发光,而其他的段码为高电平,无电流通过不发光。
故8位段码的需要赋二进制值为“00000011”,位码赋值为高电平,这就是所谓的“译码”。
位码使用了三极管。
从硬件电路原理图上可知,FPGA 器件的IO 管脚为低电平时,数码管的位码管脚为高电平,导通。
本实验通过分频器得到1Hz 的时钟信号,加载于4位计数器的时钟输入端。
计数器循环输出0~9、A~F 共16个数。
共阴极数码管是一种常见的显示器件,用于显示数字、字母和符号等信息。
在共阴极数码管中,所有的阴极(即数码管的段)都连接在一起,而阳极则分别连接到控制芯片的输出引脚上。
共阴极数码管的扫描显示原理如下:
1.首先,通过控制芯片的输出引脚,将对应数字或字符的阳极(即数码管的位)置为
低电平,其他位置为高电平。
2.当某一位的阳极被置为低电平时,该位对应的阴极段需要显示的内容也会被激活。
例如,如果要显示数字"0",则会激活数码管的a、b、c、d、e、f段。
3.接下来,控制芯片会快速切换到下一位,依次将每一位的阳极置为低电平,并相应
地激活阴极段。
4.循环上述步骤,不断切换每一位的阳极,以实现连续的扫描显示效果。
由于共阴极数码管的阴极段都是连接在一起的,显示时只能同时激活一位的阳极,因此需要快速地切换扫描每一位,以使人眼产生连续的视觉效果。
通过高速的扫描和刷新频率,可以让人眼感觉到所有的位都在同时显示,从而呈现出完整的数字、字母或符号。
需要注意的是,共阴极数码管的显示亮度较低,因为每个段都是短暂地被激活并切换显示,所以显示亮度要比共阳极数码管略低。
另外,使用共阴极数码管时,控制芯片需要按照特定的顺序和时间间隔进行扫描,确保每一位都能得到正确的激活和显示。
fpga数码管动态显示原理FPGA数码管动态显示原理介绍本文将为读者详细介绍FPGA数码管动态显示的原理。
FPGA(可编程门阵列)是一种灵活的集成电路,可以根据设计人员的需求进行逻辑门的编程和配置。
数码管是一种数字显示设备,通过控制不同的段点亮可以显示不同的数字和字母。
基本原理FPGA数码管动态显示的基本原理如下:1.FPGA通过编程和配置可以实现不同的逻辑功能,其中包括控制数码管的段点亮。
2.数码管由多个段组成,每个段可以独立控制点亮与否。
3.数码管的段的编号是根据国际标准定义的,如a、b、c、d、e、f、g等。
4.数码管的动态显示是通过快速切换每个段的点亮状态来实现的。
原理详解FPGA数码管动态显示的原理更详细地描述如下:1.FPGA通过输入控制信号来选择需要显示的数字或字母。
2.FPGA将该数字或字母转换为相应的数码管段的控制信号。
3.FPGA通过时序控制逻辑来控制数码管段的点亮与否,实现数字或字母的显示。
4.FPGA在一个很短的时间内迅速切换不同的数码管段的点亮状态,使其看起来像是同时显示的。
5.通过不断重复上述步骤,FPGA可以实现数码管的动态显示。
应用实例FPGA数码管动态显示的应用实例包括但不限于以下几种:1.时钟显示:FPGA可以控制数码管动态显示当前时间的小时和分钟。
2.计数器:FPGA可以控制数码管动态显示计数器的值。
3.温度显示:FPGA可以根据输入的温度值,控制数码管动态显示当前的温度。
总结本文简要介绍了FPGA数码管动态显示的原理,包括基本原理和原理详解。
通过编程和配置FPGA,可以实现数码管的动态显示,从而达到显示不同数字和字母的目的。
同时,本文也提及了一些应用实例,展示了动态显示的广泛应用领域。
更大程度上,动态显示技术可以推动数字显示的发展,提供更丰富多样化的显示效果。
对于创作者而言,理解数码管动态显示的原理,可以在设计中灵活运用这一技术,创造出更具创意和功能性的作品。
西南科技大学实验报告课程名称:基于FPGA的现代数字系统设计实验名称:基于HDL十进制计数、显示系统设计姓名:学号:班级:通信1301指导教师:刘桂华西南科技大学信息工程学院制基于HDL十进制计数、显示系统设计一、实验目的1、掌握基于语言的ISE 设计全流程;2、熟悉、应用VerilogHDL描述数字电路;3、掌握基于Verilog的组合和时序逻辑电路的设计方法;4、掌握chipscope 片内逻辑分析仪的使用与调试方法。
二、实验原理1、实验内容:设计具有异步复位、同步使能的十进制计数器,其计数结果可以通过七段数码管、发光二极管等进行显示。
2、模块端口信号说明:输入信号:Clk_50m ---系统采样时钟clk -------待计数的时钟clr ---------异步清零信号,当clr=0,输出复位为0,当clr=1,正常计数ena---------使能控制信号,当ena=1,电路正常累加计数,否则电路不工作输出信号:q[6:0]---------驱动数码管,显示计数值的个位cout -----------1bit 数据,显示计数值向十位的进位COM-----------共阳级数码管,公共端(接地,参考开发板原理图3、以自顶向下的设计思路进行模块划分:整个系统主要设计的模块是:十进制计数模块和数码管驱动模块,由于实验板的按键为实现硬件防抖,则需要将按键输入的时钟clk,先通过消抖模块消抖后,再输出至后续使用。
1)十进制计数器模块设计输入: CLK -------待计数的时钟CLR ---------异步清零信号,当CLR =0,输出复位为0,当CLR =1,正常计数。
EN---------使能控制信号,当EN=1,电路正常累加计数,否则电路不工作输出:SUM[3:0]---------- 计数值的个位。
即,在CLK 上升沿检测到SUM=9 时,SUM 将被置0,开始新一轮的计数。
tc ------------计数值的十位进位,即:只有在时钟CLK 上升沿检测到SUM=9 时,TC将被置1,其余情况下TC=0;在设计中可以使用always,if-else-if语句实现,设计中注意不要在两个以上的always 模块中对同一个变量进行赋值,否则会产生多重赋值源(multi-source)的问题。
FPGA显示译码电路实验报告实验课程名称:FPGA应用开发实验实验项目名称:显示译码电路班级:姓名:学号:成绩:________________一、实验目的1.实现常见英语字母显示。
2.实现十六进制计数显示。
3.加深PLD设计的过程,并比较原理图输入和文本输入的优劣。
二、实验原理(1)显示简单字符七段数码管显示电路如下图所示:参考原理图:图中包含一个七段解码器模块,c2~c0是解码器的3个输入,当输入值不同时,输出不同的字符。
如表中所示,当输入值为100~111时,输出空格,即数码管全暗。
七段数码管的不同段位用数字0~6表示,注意七段数码管是共阳极的,即各管段输入低电平时,数码管亮;否则数码管暗。
(2)显示0~9数字在完成简单字符显示电路之后,设计一个用于显示0~9数字的七段数码管电路。
电路图如下图所示,c3~c0是七段数码器的输入,当输入0000~1001时,则输出0~9,如表中所示;当输入1010~1111时,输出空格。
参考原理图:(3)循环显示4个字符电路的工作原理是,输入端U、V、W和X的输入值分别是000、001、010和011,通过s1和s0选择四个输入端其中一个作为七段解码器的输入值,从而显示H、L、E和O任一字符。
参考原理图:三、实验步骤(1)显示简单字符<1>VHDL硬件描述语言为:<2>功能仿真:<3>时序仿真:<4>引脚分配:<5>程序下载:<1>VHDL硬件描述语言为:<2>功能仿真:<3>时序仿真:<4>引脚分配:<5>程序下载:在DE2上验证,拨动开关,能显示数字0-9,实验结果与设计要求一致。
(3)循环显示4个字符<1>VHDL硬件描述语言:<2>功能仿真:<3>时序仿真:<4>引脚分配:<5>程序下载:在DE2上验证,能够循环显示四个字符,实验结果与设计要求一致。
fpga数码管显示实验原理
FPGA(Field-Programmable Gate Array)数码管显示实验是一种利
用FPGA进行数字数码管显示控制的实验。
FPGA是一种可编程逻辑器件,
可实现数字逻辑电路的设计与实现。
本实验的原理是通过FPGA控制数码
管的亮灭状态和显示的数字,以实现不同数字的显示。
整个实验可以分为数字信号生成、数码管扫描和数码管显示三个模块。
1.数字信号生成模块
数字信号生成模块是实现FPGA输出驱动数码管的主要模块。
FPGA的
管脚可以设置为输入或输出。
在本实验中,FPGA的输出管脚和数码管的
输入管脚相连,通过FPGA控制输出信号,驱动数码管显示对应数字。
数字信号生成的步骤如下:
(1)设置FPGA的输出管脚为输出模式(输出高电平或低电平);
(2)通过FPGA内部逻辑电路产生或处理需要显示的数字信号;
(3)将处理好的数字信号传输到FPGA输出管脚;
(4)输出管脚通过外部的连接线连接到数码管的输入管脚。
2.数码管扫描模块
数码管扫描模块是为了能够显示多位数字,需要对数码管进行扫描操作。
扫描操作的原理是通过快速切换数码管的亮灭状态来实现显示多个数
字的效果。
数码管通常由多个数字显示单元组成,每个数字显示单元对应一个输
入管脚,FPGA的输出信号控制数码管上的不同数字显示单元。
数码管扫描的步骤如下:
(1)设置FPGA的输出管脚为输出模式;
(2)产生一个使得一些数码管显示的数字信号;
(3)通过控制FPGA输出管脚的电平状态来选择需要显示的数码管;
(4)不断循环上述步骤,可以实现多个数码管显示的效果。
3.数码管显示模块
数码管显示模块是实现数码管上显示特定数字的部分。
在本实验中,常用的是共阳数码管和共阴数码管。
共阳数码管需要将管脚接上Vcc电源,通过地线控制输出高电平使得数码管亮起。
共阳数码管的原理是通过控制对应的输出管脚输出低电平,控制数码管上的七段LED显示不同的数字。
共阴数码管则需要将管脚接上地线,通过Vcc电源控制输出高电平使得数码管亮起。
其他的控制原理和共阳数码管类似。
通过FPGA控制数码管显示的过程如下:
(1)根据要显示的数字,将相应的控制位对应为高电平或低电平;
(2)通过FPGA的输出管脚将控制位的电平状态传输到数码管对应的输入管脚;
(3)数码管根据接收到的控制信号进行显示。
通过以上的步骤,就可以利用FPGA来完成数码管显示的实验。
通过控制FPGA输出的信号和扫描数码管的操作,可以实现多位数字的显示效
果。
这种方式不仅具有灵活性高、易于扩展的特点,还可以更好地理解FPGA的原理和操作。