16乘16点阵
- 格式:doc
- 大小:176.50 KB
- 文档页数:15
16×16点阵LE D显示屏整个过程及C语言程序7.1功能要求设计一个室内用16×16点阵LE D图文显示屏,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
7.2方案论证从理论上说,不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。
16×16的点阵共有256个发光二极管,显然单片机没有这么多端口,如果我们采用锁存器来扩展端口,按8位的锁存器来计算,16×16的点阵需要256/8=32个锁存器。
这个数字很庞大,因为我们仅仅是16×16的点阵,在实际应用中的显示屏往往要大的多,这样在锁存器上花的成本将是一个很庞大的数字。
因此在实际应用中的显示屏几乎都不采用这种设计,而采用另一种称为动态扫描的显示方法。
动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套列驱动器。
具体就16×16的点阵来说,我们把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第一行使其燃亮一定的时间,然后熄灭;再送出第二行的数据并锁存,然后选通第二行使其燃亮相同的时间,然后熄灭;……第十六行之后又重新燃亮第一行,这样反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,我们就能看到显示屏上稳定的图形了。
单片机16×16点阵显示实验总结400字单片机16×16点阵显示实验总结这次实验我们使用单片机设计了16×16点阵显示器的驱动电路,并成功实现了在点阵上显示字符、数字和图案的功能。
下面是对本次实验的总结。
首先,我们按照实验手册的指示,采用逐行扫描的方式驱动16×16点阵显示器。
通过设置接口电路和引脚连接,将单片机与点阵电路相连,实现数据和控制信号的传输。
接着,我们编写了相应的程序代码,在单片机上进行编译和烧录,并使用示波器进行调试。
在调试过程中,我们发现了一些常见的问题,比如接口线连接错误、引脚配置错误等,及时解决这些问题,确保了实验的顺利进行。
接下来,我们开始编写点阵显示的控制程序。
通过对点阵每一个LED灯珠的亮灭状态进行控制,我们可以实现在点阵上显示不同的字符、数字和图案。
我们编写了一个字符库,其中包含了常用字符和数字的点阵码。
通过查表的方式,我们可以根据需要在点阵上显示相应的内容。
在编写程序的过程中,我们充分利用了单片机的IO口和定时器的功能,并采用了合理的算法,提高了程序的执行效率。
在实验过程中,我们遇到了一些困难和挑战。
首先,点阵显示器的像素较多,对于单片机的计算能力和IO口的数量有一定要求。
因此,在编写程序的过程中,我们需要注意内存和资源的使用,避免发生卡顿或者无法正常显示的情况。
其次,点阵显示器的扫描速度要求较高,需要通过设置定时器的中断来实现,以确保显示的稳定性和清晰度。
通过本次实验,我们不仅掌握了单片机的基本原理和编程技巧,还深入了解了点阵显示器的工作原理和驱动方式。
通过自主设计和编写代码,我们成功实现了在16×16点阵上显示字符、数字和图案的功能。
这不仅加深了我们对嵌入式系统的理解,还提高了我们的动手实践能力和问题解决能力。
总之,通过这次实验,我们不仅学到了很多知识,还锻炼了自己的动手能力和团队合作能力。
虽然在实验过程中遇到了一些困难,但通过不懈努力和团队合作,我们最终取得了成功。
1.八位移位寄存器74HC595级联送数据(列):2.三八译码器74LS138级联选通行(即采用行扫描):3.与单片机的连接:4:LED点阵的焊接:5:74HC595资料:74HC595是硅结构的CMOS器件,兼容低电压TTL电路,遵守JEDEC标准。
具有8位移位寄存器和一个带锁存功能的存储器;三态输出功能。
移位寄存器和存储器是分别的时钟,两者独立工作。
数据在SHcp(移位寄存器时钟输入)的上升沿输入到移位寄存器中,在STcp(存储器时钟输入)的上升沿输入到存储寄存器中去。
如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。
移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE为低电平时,存储寄存器的数据输出到总线,但是OE高电平不影响串行输出(即Q7’)。
由于它自带锁存器,所以其数据在移位寄存器中的移位与锁存器的输出是独立的,当数据移位时,可以保持锁存器输出的数据不改变,等所有8位数据全部串入完成移位操作后,一次性的将数据打入锁存器中,从而实现了并行输出的同步改变。
每最新输入一个数据就放在Q0,Q0的数据被挤到Q1,Q1的数据被挤到Q2……以此类推,Q7的数据被挤出74HC595从Q7’输出。
Q7'也会串行输出移位寄存器中高位的值即Q7的值,也就是说Q7’输出的和Q7一样。
管脚说明:Q0—Q7(Q0为15脚,Q1-Q7分别为1-7): 八位并行输出端DS(14脚):串行输入端Q7'(9脚): 串行输出端(级联时接下一个的串行输入端DS)MR(10脚): 复位引脚,低电平时将移位寄存器的数据清零。
一般情况下接Vcc。
SHCP(11脚):移位寄存器时钟输入引脚,每一个上升沿时数据寄存器的数据移一位。
Q0-->Q1-->Q2-->...-->Q7;下降沿移位寄存器数据不变。
16×16点阵LED电子显示屏的设计摘要LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成. LED点阵显示屏可以显示数字或符号, 通常用来显示时间、速度、系统状态等。
本设计是1616××16点阵LED电子显示屏的设计。
整机以美国ATMEL公司生产的40脚单片机AT89C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。
通过该芯片控制一个行驱动器74LS154和两个列驱动器74L373来驱动显示屏显示。
该电子显示屏可以显示各种文字或单色图像,采用4块8 x 8点阵LED显示模块来组成一个16x16点阵显示模式。
显示采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。
文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。
关键词:AT89C51单片机 LED 点阵显示动态显示AbstractAs a popular display device component, LED dot-matrix display board consists of several independent LED (Light Emitting Diode).The LED dot-matrix display board can display the number or sign,and it is usually used to show time, speed, the state of system etc.This design is 1 16 ×16 lattice LED electron display monitor design.The whole equipment is with the 40-pin AT89C51 MCU (Micro Controller Unit) produced by the American ATMEL company at thecore, introduced take it as the control system LED lattice electron display monitor dynamic design and the development process. Controls good driver 74LS154 an two row driver 74L373 through thischip actuates the display monitor demonstration. The electronic screen can show all kinds of written or monochrome images, one full screen display Chinese characters, four pieces of 8 x 8 dot-matrix LEDdisplay modules to form the 16x16 dot matrix display mode. Show dynamic show that makes static graphic or text can be achieved, shifted out of various formats. This paper describes the of the LEDdot matrix display, and the principle function of the various parts ofthe circuit, the corresponding software program design and the use of some such. Key words: AT89C51 Micro Controller U nitUnit; LED; LatticeDisplay;Dynamic Display目录第1章绪论1.1 选题背景LED显示屏是八十年代后期在全球迅速发展起来的新型信息显示媒体,显示屏由几万……几十万个半导体发光二极管像素点均匀排列组成。
第7章16×16点阵LED电子显示屏的设计7.1功能要求设计一个室内用16×16点阵LED图文显示屏,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字应稳定、清晰无串扰。
图形或文字显示有静止、移入移出等显示方式。
7.2方案论证从理论上说,不论显示图形还是文字,只要控制和组成这些图形或文字的各个点所在位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。
16×16的点阵共有256个发光二极管,显然单片机没有这么多端口,如果我们采用锁存器来扩展端口,按8位的锁存器来计算,16×16的点阵需要256/8=32个锁存器。
这个数字很庞大,因为我们仅仅是16×16的点阵,在实际使用中的显示屏往往要大的多,这样在锁存器上花的成本将是一个很庞大的数字。
因此在实际使用中的显示屏几乎都不采用这种设计,而采用另一种称为动态扫描的显示方法。
动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套列驱动器。
具体就16×16的点阵来说,我们把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第一行使其燃亮一定的时间,然后熄灭;再送出第二行的数据并锁存,然后选通第二行使其燃亮相同的时间,然后熄灭;……第十六行之后又重新燃亮第一行,这样反复轮回。
当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,我们就能看到显示屏上稳定的图形了。
采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。
实验四 16X16点阵LED实验一.实验目的1.了解点阵显示的原理及控制方法;2.学会使用16X16点阵LED,通过编程显示不同的字符。
二.实验原理及相关电路16X16点阵了的由16X16列共256个发光二极管紧密排在一起构成,程序控制每个像素点(发光二极管)的亮灭,就能用来显示汉字或者图形。
LED的每一行的16列发光二极管都由一个4位的16进制数来控制,从左往右由低位到高位。
将每一个字的显示都用16个16位进制数表示,称为字模。
本实验,分别控制LED灯行的动态扫描,高电平为灭低电平为点亮;用16进制数控制LED灯每一列的亮灭,高电平为亮,低电平为灭。
为了实现显示屏上字的滚动显示,则需要将所显示的字向右移,并取下一个字的最右边一位补充到显示屏的最左边,形成动态滚动的效果。
三.实验内容及程序1.用单片机的端口控制16*16点阵的行与列,在点阵LED显示屏上显示“单”。
#include <p24FJ64GA006.h>void Delayms(unsigned int del){unsigned int j;while(del--)for(j=0;j<1000;j++); } //定义Delaym函数void IOInit() //初始化端口{AD1PCFG= 0xFFFF; //全部设置为数字TRISD=TRISB= 0x0000; //D和B端口全部设为输出TRISE=TRISF= 0x0000; //E和F端口全部设为输出}int main(void){unsigned int state_E,state_F,temp_E,temp_F; IOInit();state_F = 0xFFFE; //初始化F端口状态unsigned int i=0;unsigned int dan[]={0x0410,0x0C60,0x0220,0x1FFC,0x1084,0x1FFC,0x1084,0x1084,0x1FFC,0x1084,0x0080,0x7FFF,0x0080,0x0080,0x0080,0x0080}; //单while(1){PORTD = dan[i];PORTB = dan[i]; //将字模同时赋给B和D端口PORTF = state_F; //将行状态的低8位赋给F端口低8位state_E=temp_E=temp_F=state_F;state_E <<= 8;state_E = (state_F&0xFF00)|((temp_E>>8)&0x00FF); //行状态左移8位PORTE = state_E; //将行状态高8位赋给E端口低8位Delayms( 1 );state_F <<= 1;state_F = (state_F&0xFFFE)|((temp_F>>15)&0x0001);//将行状态左移一位,动态扫描i++;if(i==16)i=0;}}显示结果:注:中间空出一行是因为PORTF的第8位为空,不影响显示效果2.在点阵LED显示屏上滚动显示“单片机实验室欢迎您”。
16x16点阵原理16x16点阵是一种用于显示图像和文本的矩阵式显示技术,它由16行和16列的像素组成。
在现代技术中,16x16点阵通常被用于显示较小的图像和文字,例如嵌入式系统、电子表盘、移动设备等。
下面我们将详细地介绍16x16点阵的原理和应用。
首先,我们来介绍16x16点阵的像素结构和排列方式。
在一个16x16点阵中,通常会有16行和16列的小方块组成,每一个小方块称为一个像素。
这些像素按照16行16列的规则排列,每个像素可以显示不同的颜色或亮度,从而组成图像或文字。
在数字显示系统中,每个像素通常由一个二进制位来表示,这些二进制位按照规则排列,就可以显示出不同的图像和文字。
在16x16点阵中,每个像素的状态可以由一个二进制位来表示,例如0表示关闭,1表示打开。
通过控制这些二进制位的状态,就可以显示出不同的图像和文字。
例如,如果一个像素对应的二进制位为1,则这个像素显示为亮的;如果为0,则显示为暗的。
通过合理地控制每个像素的状态,就可以显示出各种图像和文字。
这种方式可以通过硬件电路或软件控制来实现。
在硬件电路中,通常会使用驱动芯片来控制16x16点阵的显示。
驱动芯片会接收来自控制器或处理器的指令,然后根据这些指令控制每个像素的状态。
通过适当的电路设计和信号处理,可以实现对16x16点阵的高效控制和显示。
在软件控制方面,通常会使用特定的编程语言和算法来控制16x16点阵的显示。
通过编写相应的程序,就可以实现对16x16点阵的图像和文字显示。
随着技术的发展,16x16点阵已经被广泛应用于各种领域。
在嵌入式系统中,它可以用于显示设备的状态、菜单、图标等;在电子表盘中,它可以用于显示时间、日期、温度等信息;在移动设备中,它可以用于显示图像、文字、图标等。
由于16x16点阵具有较小的尺寸和低功耗特性,因此可以在各种场合得到应用。
总的来说,16x16点阵是一种用于显示图像和文字的矩阵式显示技术,它由16行和16列的像素组成。
16x16点阵设计摘要随着LED技术的发展,LED点阵显示成了集微电子技术、计算机技术、信息处理于一体的新型显示方式。
由于其具有色彩鲜艳,动态范围广,亮度高,寿命长,工作稳定可靠等优点而广泛应用,不仅可以静态的显示信息,而且也可以通过动态滚动,从而增加信息显示的容量,为了醒目,还可以产生诸如闪动、滚动等显示效果。
本设计是用1个16×16点阵LED电子显示屏的设计。
整机以美国ATMEL公司生产的40脚单片机AT89C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。
通过该芯片控制一个行驱动器74LS154和八个列驱动器74HC595来驱动显示屏显示。
该电子显示屏可以显示各种文字或单色图像,也可以动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。
文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。
关键词:AT89C51, LED点阵, 动态驱动目录1 绪论 (1)1.1课题描述 (1)1.2基本工作原理及框图 (1)2 相关芯片及硬件电路设计 (2)2.1AT89C51芯片 (2)2.1.1 AT89C51的功能特性 (4)2.1.2 AT89C51的主要性能参数 (4)2.2单片机的最小系统 (5)2.2.1 上电复位电路的设计 (5)2.2.2 电源电路设计 (5)2.3LED点阵介绍及取模 (6)2.4LED点阵显示模块进行的方法有两种: (7)2.5点阵的驱动 (7)3 系统软件设计 (8)3.1程序设计流程图 (8)3.2程序设计 (9)总结 (14)致谢 (15)参考文献 (16)1 绪论1.1 课题描述随着电子技术,特别是随大规模集成电路的产生而出现的微型计算机技术的飞速发展,人类生活发生了根本性的改变。
如果说微型计算机的出现使现代科学研究得到了质的飞跃,那么可以毫不夸张地说,单片机技术的出现则是给现代工业测控领域带来了一次新的技术革命。
Proteus仿真16*16LED点阵显示汉字例.利用一块16×16,并在其上循环显示“郑州大学”。
Proteus中只有5×7和8×8等LED点阵,并无16×16LED点阵,而在实际应用中,要良好地显示一个汉字,那么至少需要16×16点阵。
下面咱们就第一介绍利用8×8点阵构建16×16点阵的方式,并构建一块16×16LED点阵,用于本例的显示任务。
第一,从Proteus元件库中找到“MATRIX-8X8-RED”元器件,并将四块该元器件放入Proteus文档区编辑窗口中。
现在需要注意,若是该元器件维持初始的位置(没有转动方向),咱们要第一将其左转90°,使其水平放置,那么现在它的左面8个引脚是其行线,右边8个引脚是其列线(固然,若是你是将右转,那么右边8个引脚是行线)。
然后咱们将四个元器件对应的行线和列线别离进行连接,使每一条行线引脚接一行16个LED,列线也相同。
并注意要将行线和列线引出必然长度的引脚,以便下面咱们利用。
连接好的16×16点阵如以下图所示:连接成如上图的16×16点阵只是第一步,如此分开的数块并非能达到好的显示成效,下面咱们要将其进一步组合。
组合事实上很简单,第一选中如上图中右边的两块8×8点阵,然后拖动并使其与左侧的两块相并拢,如以下图所示:咱们能够看到原先的连线已经自动隐藏了,至于线上的交点,咱们不要去动。
然后,咱们再来最后一步,选中下侧的两块点阵,并拖动使其与上侧的两块并拢,最后的成效如以下图所示:能够看到,原先杂乱的连线此刻已经几乎全数隐藏了,一块16×16的LED点阵做成了。
需要注意,做成的LED点阵的行线为左侧的16个引脚,下侧的16个引脚为其列线,而且其行线为高电平有效,列线为低电平有效。
然后,咱们将其保留,以便以后利用。
制作好16×16LED点阵,咱们接下来来进行本例的实验。
北华航天工业学院综合实践总结报告综合实践名称:EDA技术与实践综合实践地点、时间专业班级:姓名:学号:_____同组人员:指导教师姓名:_完成时间:一.题目功能分析和设计实验的要求有如下三点:1.用16*16点阵的发光二极管显示字符;2.可显示字符为0~9的数字字符与A~F英文字母的大写;3.输入为四位二进制矢量;按照要求可知,LED点阵模块,共由16×16=256个LED发光二极管组成,如何在该点阵模块上显示数字和字母是本实验的关键。
先将要显示的每一幅图像画在一个16×16共256个小方格的矩形框中,再在有笔划下落处的小方格里填上“1”,无笔划处填上“0”,这样就形成了与这个汉字所对应的二进制数据在该矩形框上的分布以数字8为例,点阵分布为:0000000000000000000000000000000000011111111110000001111111111000000110000001100000011000000110000001100000011000000111111111100000011111111110000001100000011000000110000001100000011000000110000001111111111000000111111111100000000000000000000000000000000000考虑到实际物理实验平台上点阵发光二极管的原理,以下为16×16点阵LED外观图,只要其对应的X、Y轴顺向偏压,即可使LED 发亮。
例如如果想使左上角LED点亮,则Y0=1,X0=0即可。
所以我采用行列扫描的方法,用四位二进制数做列选信号(总共16列),如选中第一列,则扫描第一列之中哪些行是高电平(1),哪些行是低电平(0);为高电平的则点亮,为低电平的不亮。
(列信号都接地)。
如此,列选信号由“0000”变到“1111”时,16列扫描完毕,一个字也就出来了,列选信号重新由“0000”开始扫描。
注意扫描频率必须要足够快,才能保证显示一个数字或字母时所有灯在肉眼看来是同时在闪烁的。
再者,就是字变换的问题。
题目要求可显示字符为0~9的数字字符与A~F英文字母的大写;16个字正好用四位二进制表示,字选信号。
每个字选信号对应一个0到9,A到F中的一个字模(像前面列出的8的字模一样)。
通常情况下是1s变一个字符,但我在实验时考虑到仿真的问题,将字选信号的变化周期缩小很多,以便仿真。
要注意的是,列选信号变化频率一定是比字选信号大得多的。
二.总体模块划分1.字选模块输入为一个时钟信号,输出为4位二进制(用xuan 表示)字选信号,用来顺序输出题目要求的16个字。
因为设计采用字选模块和列选模块使用同一个输入时钟脉冲,但是字选信号的变化频率比列选信号要小得多。
所以该模块中还应该设置一个计数器,计数器满,则Q加1,即变向下一个字,同时计数器重新置零。
2.列选模块输入为一个时钟信号,输出为4位二进制(用sel表示)列选信号,用来选中列,进行扫描。
3.显示模块输入为字选信号和列选信号,输出为16位二进制,用来表示一列,该列中的1的位置就表示亮灯的位置,0的位置表示不亮。
每扫描一列就输出一列,看该列中哪些行是1,哪些行是0。
该模块应该包含0~9,A~F这16个字模。
4.顶层模块该模块采用图形模式(.gdf),将所有的模块按要求合理连接起来后,再添加上顶层的输入输出信号。
附顶层图:三.代码实现1.显示模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY XIANSHI ISPORT(XUAN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);SEL:IN STD_LOGIC_VECTOR(3 DOWNTO 0);Q:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));END ENTITY XIANSHI;ARCHITECTURE XSDZ OF XIANSHI ISBEGINPROCESS(XUAN,SEL)BEGINCASE XUAN ISWHEN "0000"=>CASE SEL ISwhen "0000"=>Q<="0000000000000000";----显示“0”when "0001"=>Q<="0000000000000000";when "0010"=>Q<="0000000000000000";when "0100"=>Q<="0001111111111000";when "0101"=>Q<="0010000000000100";when "0110"=>Q<="0100000000000010";when "0111"=>Q<="0100000000000010";when "1000"=>Q<="0100000000000010";when "1001"=>Q<="0010000000000100";when "1010"=>Q<="0001111111111000";when "1011"=>Q<="0000000000000000";when "1100"=>Q<="0000000000000000";when "1101"=>Q<="0000000000000000";when "1110"=>Q<="0000000000000000";when "1111"=>Q<="0000000000000000";when others=>null;END CASE;WHEN "0001"=>CASE SEL ISwhen "0000"=>Q<="0000000000000000";---显示"1" when "0001"=>Q<="0000000000000000";when "0010"=>Q<="0000000000000000";when "0011"=>Q<="0000000000000000";when "0100"=>Q<="0000000000000000";when "0101"=>Q<="0000000000000000";when "0110"=>Q<="0110000000000000";when "0111"=>Q<="0111111111111110";when "1000"=>Q<="0111111111111110";when "1001"=>Q<="0110000000000110";when "1010"=>Q<="0000000000000000";when "1011"=>Q<="0000000000000000";when "1100"=>Q<="0000000000000000";when "1101"=>Q<="0000000000000000";when "1110"=>Q<="0000000000000000";when "1111"=>Q<="0000000000000000";when others=>null;END CASE;WHEN "0010"=>CASE SEL ISwhen "0000"=>Q<="0000000000000000";---显示“2”when "0001"=>Q<="0000000000000000";when "0011"=>Q<="0000000000000000";when "0100"=>Q<="0111000000000110";when "0101"=>Q<="0111100000000110";when "0110"=>Q<="0110110000000110";when "0111"=>Q<="0110011000000110";when "1000"=>Q<="0110001111111110";when "1001"=>Q<="0110000111111110";when "1010"=>Q<="0000000000000000";when "1011"=>Q<="0000000000000000";when "1100"=>Q<="0000000000000000";when "1101"=>Q<="0000000000000000";when "1110"=>Q<="0000000000000000";when "1111"=>Q<="0000000000000000";when others=>null;END CASE;WHEN "0011"=>CASE SEL ISwhen "0000"=>Q<="0000000000000000";--显示”3“when "0001"=>Q<="0000000000000000";when "0010"=>Q<="0000000000000000";when "0011"=>Q<="0000000000000000";when "0100"=>Q<="0000000000000000";when "0101"=>Q<="0110000000000110";when "0110"=>Q<="0110000110000110";when "0111"=>Q<="0110000110000110";when "1000"=>Q<="0110000110000110";when "1001"=>Q<="0110000110000110";when "1010"=>Q<="0111111111111110";when "1011"=>Q<="0111111111111110";when "1100"=>Q<="0000000000000000";when "1101"=>Q<="0000000000000000";when "1110"=>Q<="0000000000000000";when "1111"=>Q<="0000000000000000";when others=>null;END CASE;WHEN "0100"=>CASE SEL ISwhen "0000"=>Q<="0000000000000000";--显示”4“when "0001"=>Q<="0000000000000000";when "0010"=>Q<="0000001111000000";when "0011"=>Q<="0000001111100000";when "0100"=>Q<="0000001100110000";when "0101"=>Q<="0000001100011000";when "0110"=>Q<="0000001100001100";when "0111"=>Q<="0111111111111110";when "1000"=>Q<="0111111111111110";when "1001"=>Q<="0000001100000000";when "1010"=>Q<="0000001100000000";when "1011"=>Q<="0000001100000000";when "1100"=>Q<="0000000000000000";when "1101"=>Q<="0000000000000000";when "1110"=>Q<="0000000000000000";when "1111"=>Q<="0000000000000000";when others=>null;END CASE;WHEN "0101"=>CASE SEL ISwhen "0000"=>Q<="0000000000000000";---显示”5“when "0001"=>Q<="0000000000000000";when "0010"=>Q<="0000000000000000";when "0011"=>Q<="0110000111111110";when "0100"=>Q<="0110000111111110";when "0101"=>Q<="0110000110000110";when "0110"=>Q<="0110000110000110";when "0111"=>Q<="0110000110000110";when "1000"=>Q<="0110000110000110";when "1001"=>Q<="0111111110000110";when "1010"=>Q<="0111111110000110";when "1011"=>Q<="0000000000000000";when "1100"=>Q<="0000000000000000";when "1101"=>Q<="0000000000000000";when "1110"=>Q<="0000000000000000";when "1111"=>Q<="0000000000000000";when others=>null;END CASE;WHEN "0110"=>CASE SEL ISwhen "0000"=>Q<="0000000000000000";--显示”6" when "0001"=>Q<="0000000000000000";when "0010"=>Q<="0000000000000000";when "0011"=>Q<="0111111111111110";when "0100"=>Q<="0111111111111110";when "0101"=>Q<="0110000110000110";when "0110"=>Q<="0110000110000110";when "0111"=>Q<="0110000110000110";when "1000"=>Q<="0110000110000110";when "1001"=>Q<="0111111110000110";when "1010"=>Q<="0111111110000110";when "1011"=>Q<="0000000000000000";when "1100"=>Q<="0000000000000000";when "1101"=>Q<="0000000000000000";when "1110"=>Q<="0000000000000000";when "1111"=>Q<="0000000000000000";when others=>null;END CASE;WHEN "0111"=>CASE SEL ISwhen "0000"=>Q<="0000000000000000";--显示“7”when "0001"=>Q<="0000000000000000";when "0010"=>Q<="0000000000000000";when "0011"=>Q<="0000000000000000";when "0100"=>Q<="0000000000000110";when "0101"=>Q<="0000000000000110";when "0110"=>Q<="0000000000000110";when "0111"=>Q<="0000000000000110";when "1000"=>Q<="0000000000000110";when "1001"=>Q<="0111111111111110";when "1010"=>Q<="0111111111111110";when "1011"=>Q<="0000000000000000";when "1100"=>Q<="0000000000000000";when "1101"=>Q<="0000000000000000";when "1110"=>Q<="0000000000000000";when "1111"=>Q<="0000000000000000";when others=>null;END CASE;WHEN "1000"=>CASE SEL ISwhen "0000"=>Q<="0000000000000000";---显示“8”when "0001"=>Q<="0000000000000000";when "0010"=>Q<="0000000000000000";when "0011"=>Q<="0000000000000000";when "0100"=>Q<="0111111111111110";when "0101"=>Q<="0111111111111110";when "0110"=>Q<="0110000110000110";when "0111"=>Q<="0110000110000110";when "1000"=>Q<="0110000110000110";when "1001"=>Q<="0111111111111110";when "1010"=>Q<="0111111111111110";when "1011"=>Q<="0000000000000000";when "1100"=>Q<="0000000000000000";when "1101"=>Q<="0000000000000000";when "1110"=>Q<="0000000000000000";when "1111"=>Q<="0000000000000000";when others=>null;END CASE;WHEN "1001"=>CASE SEL ISwhen "0000"=>Q<="0000000000000000";--显示"9" when "0001"=>Q<="0000000000000000";when "0010"=>Q<="0000000000000000";when "0011"=>Q<="0000000000000000";when "0100"=>Q<="0110000011111110";when "0101"=>Q<="0110000011000110";when "0110"=>Q<="0110000011000110";when "0111"=>Q<="0110000011000110";when "1000"=>Q<="0110000011000110";when "1001"=>Q<="0111111111111110";when "1010"=>Q<="0111111111111110";when "1011"=>Q<="0000000000000000";when "1100"=>Q<="0000000000000000";when "1101"=>Q<="0000000000000000";when "1111"=>Q<="0000000000000000";when others=>null;END CASE;WHEN "1010"=>CASE SEL ISwhen "0000"=>Q<="0000000000000000";--显示”A" when "0001"=>Q<="0111000000000000";when "0010"=>Q<="0011110000000000";when "0011"=>Q<="0000111100000000";when "0100"=>Q<="0000001111000000";when "0101"=>Q<="0000001111100000";when "0110"=>Q<="0000001100111000";when "0111"=>Q<="0000001100001110";when "1000"=>Q<="0000001100001110";when "1001"=>Q<="0000001100111000";when "1010"=>Q<="0000001111100000";when "1011"=>Q<="0000001111000000";when "1100"=>Q<="0000111100000000";when "1101"=>Q<="0011110000000000";when "1110"=>Q<="0111000000000000";when "1111"=>Q<="0000000000000000";when others=>null;END CASE;WHEN "1011"=>CASE SEL ISwhen "0000"=>Q<="0000000000000000";--显示"B”when "0001"=>Q<="0000000000000000";when "0010"=>Q<="0000000000000000";when "0011"=>Q<="0000000000000000";when "0100"=>Q<="0111111111111110";when "0101"=>Q<="0111111111111110";when "0110"=>Q<="0110000110000110";when "0111"=>Q<="0110000110000110";when "1000"=>Q<="0110000110000110";when "1001"=>Q<="0110000110000110";when "1010"=>Q<="0111111111111110";when "1100"=>Q<="0000000000000000";when "1101"=>Q<="0000000000000000";when "1110"=>Q<="0000000000000000";when "1111"=>Q<="0000000000000000";when others=>null;END CASE;WHEN "1100"=>CASE SEL ISwhen "0000"=>Q<="0000000000000000";--显示“C”when "0001"=>Q<="0000000000000000";when "0010"=>Q<="0000111111110000";when "0011"=>Q<="0001111111111000";when "0100"=>Q<="0011100000011100";when "0101"=>Q<="0111000000001110";when "0110"=>Q<="0110000000000110";when "0111"=>Q<="0110000000000110";when "1000"=>Q<="0110000000000110";when "1001"=>Q<="0110000000000110";when "1010"=>Q<="0110000000000110";when "1011"=>Q<="0110000000000110";when "1100"=>Q<="0000000000000000";when "1101"=>Q<="0000000000000000";when "1110"=>Q<="0000000000000000";when "1111"=>Q<="0000000000000000";when others=>null;END CASE;WHEN "1101"=>CASE SEL ISwhen "0000"=>Q<="0000000000000000";---显示“D”when "0001"=>Q<="0000000000000000";when "0010"=>Q<="0000000000000000";when "0011"=>Q<="0111111111111110";when "0100"=>Q<="0111111111111110";when "0101"=>Q<="0110000000000110";when "0110"=>Q<="0110000000000110";when "0111"=>Q<="0110000000000110";when "1001"=>Q<="0110000000000110";when "1010"=>Q<="0011000000001100";when "1011"=>Q<="0001100000011000";when "1100"=>Q<="0000111111110000";when "1101"=>Q<="0000011111100000";when "1110"=>Q<="0000000000000000";when "1111"=>Q<="0000000000000000";when others=>null;END CASE;WHEN "1110"=>CASE SEL ISwhen "0000"=>Q<="0000000000000000";--显示”E“when "0001"=>Q<="0000000000000000";when "0010"=>Q<="0000000000000000";when "0011"=>Q<="0111111111111110";when "0100"=>Q<="0111111111111110";when "0101"=>Q<="0110000110000110";when "0110"=>Q<="0110000110000110";when "0111"=>Q<="0110000110000110";when "1000"=>Q<="0110000110000110";when "1001"=>Q<="0110000110000110";when "1010"=>Q<="0110000110000110";when "1011"=>Q<="0110000000000110";when "1100"=>Q<="0000000000000000";when "1101"=>Q<="0000000000000000";when "1110"=>Q<="0000000000000000";when "1111"=>Q<="0000000000000000";when others=>null;END CASE;WHEN "1111"=>CASE SEL ISwhen "0000"=>Q<="0000000000000000";--显示“F" when "0001"=>Q<="0000000000000000";when "0010"=>Q<="0000000000000000";when "0011"=>Q<="0111111111111110";when "0101"=>Q<="0000000110000110";when "0110"=>Q<="0000000110000110";when "0111"=>Q<="0000000110000110";when "1000"=>Q<="0000000110000110";when "1001"=>Q<="0000000110000110";when "1010"=>Q<="0000000000000000";when "1011"=>Q<="0000000000000000";when "1100"=>Q<="0000000000000000";when "1101"=>Q<="0000000000000000";when "1110"=>Q<="0000000000000000";when "1111"=>Q<="0000000000000000";when others=>null;END CASE;WHEN OTHERS=>NULL;END CASE;END PROCESS;END ARCHITECTURE XSDZ;四.仿真结果这里只仿真顶层模块。