数电实验实验报告(Quartus)数码管循环显示
数码管的显示的实验报告

数码管的显示的实验报告数码管的显示的实验报告引言:数码管是一种常见的数字显示装置,广泛应用于各种电子设备中。
本实验旨在通过实际操作,了解数码管的原理和工作方式,并通过一系列实验验证其显示效果和功能。
实验一:数码管的基本原理数码管是由多个发光二极管(LED)组成的,每个发光二极管代表一个数字或符号。
通过对不同的发光二极管进行点亮或熄灭,可以显示出不同的数字或符号。
本实验使用的是共阳数码管,即共阳极连接在一起,而阴极分别连接到控制芯片的输出引脚。
实验二:数码管的驱动电路为了控制数码管的显示,需要使用驱动电路。
常见的驱动电路有共阴极驱动和共阳极驱动两种。
本实验使用的是共阳极驱动电路。
驱动电路由控制芯片、电阻和电容组成。
控制芯片通过控制输出引脚的高低电平来控制数码管的点亮和熄灭。
实验三:数码管的显示效果通过控制芯片的输出引脚,可以实现数码管的显示效果。
本实验使用的是四位数码管,可以显示0-9的数字。
通过改变控制芯片输出引脚的电平,可以控制数码管显示不同的数字。
实验中通过编写程序,使数码管显示从0到9的数字循环显示,并通过按键控制数字的增加和减少。
实验四:数码管的多位显示除了显示单个数字外,数码管还可以实现多位显示。
通过控制不同位数的数码管,可以显示更多的数字或符号。
本实验使用的是四位数码管,可以同时显示四个数字。
通过编写程序,可以实现四位数码管的多位显示,例如显示当前时间、温度等信息。
实验五:数码管的亮度调节数码管的亮度可以通过改变驱动电路中的电阻值来实现。
本实验通过改变电阻值,调节数码管的亮度。
实验中通过编写程序,通过按键控制数码管的亮度增加和减少,从而实现亮度的调节。
结论:通过本次实验,我们深入了解了数码管的原理和工作方式。
数码管可以通过驱动电路的控制,实现数字和符号的显示。
同时,数码管还可以实现多位显示和亮度调节。
数码管作为一种常见的数字显示装置,具有广泛的应用前景,可以应用于各种电子设备中。
通过进一步的研究和实践,我们可以更好地利用数码管的功能,满足不同应用场景的需求。
数电实验报告数码管显示控制电路设计

数电实验报告数码管显示控制电路设计实验目的:设计一个数码管显示控制电路,实现对数码管的显示控制。
实验器材:数码管、集成电路、电阻、开关、电源等。
实验原理:数码管是一种用它们来显示数字和字母的一种装置。
它由几个独立的发光二极管组成,每个数字由不同的发光二极管的组合表示。
对数码管的显示控制通常使用多路复用技术实现,即通过控制数码管的分段和共阴极或共阳极来实现不同数字的显示。
实验步骤:1.确定数码管的类型和接线方式。
本实验中使用共阳数码管,数码管共阳极通过电阻连接到正极电源。
2.选取适当的集成电路作为显示控制电路。
本实验中选择CD4511作为显示控制芯片,它可以实现对4位共阳数码管的显示控制。
3.连接电路。
将4位共阳数码管的阳极分别连接到CD4511芯片的A、B、C和D端口,共阴极连接到电源正极。
将CD4511芯片的输入端口IN1、IN2、IN3和IN4连接到微控制器的输出端口,控制微控制器输出的电平来选通不同的数码管。
4.设置微控制器的输出。
通过编程或手动设置微控制器的输出端口来控制数字的显示。
根据需要显示的数字,将相应的输出端口设置为高电平,其余端口设置为低电平。
通过适当的延时控制,便可以实现数字的连续显示。
实验结果与分析:经过上述步骤完成电路搭建后,我们可以通过改变微控制器的输出端口来控制数码管的显示。
当我们设置不同的输出端口为高电平时,相应的数码管会显示对应的数字。
通过适当的延时控制,我们可以实现数字的连续显示,从而实现对数码管的显示控制。
实验结论:通过本次实验,我们成功地设计并实现了一个数码管显示控制电路。
通过对微控制器输出端口的控制,我们可以实现对数码管的数字显示控制。
这对于数字显示系统的设计和开发具有重要意义。
实验心得:通过本次实验,我对数码管的显示控制有了更深入的了解。
数码管作为一种常见的数字显示装置,广泛应用于各种电子设备中。
掌握其显示控制原理和方法对于电子技术爱好者来说至关重要。
通过实际操作,我对数码管显示控制电路的设计和实现有了更深入的认识,同时也提高了我对数字显示系统的理解和设计能力。
数电实验报告

一,实验结果分析实验一:Quartus II 原理图输入法设计(2)实验名称:设计实现全加器实验任务要求:用实验内容(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真并验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。
原理图:仿真波形图:仿真波形图分析:输入a,b代表加数与被加数,输入c代表低位向本位的进位。
输出s代表本位和,输出co代表向高位的进位。
可得真值表为:实验三:用VHDL设计与实现时序逻辑电路(3)实验名称:连接8421计数器,分频器和数码管译码器实验任务要求:用VHDL语言设计实现一个带异步复位的8421码十进制计数器,分频器的分频系数为25k,并用数码管显示数字。
VHDL代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity div isport(clk1 : in std_logic;clk_out : out std_logic);end;architecture d of div issignal cnt : integer range 0 to 12499999;signal clk_tmp : std_logic;beginprocess(clk1)beginif (clk1'event and clk1='1') thenif cnt=12499999 thencnt<=0;clk_tmp<= not clk_tmp;elsecnt<=cnt+1;end if;end if;end process;clk_out<=clk_tmp;end;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY count10 ISPORT(clk2,clear2:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END count10;ARCHITECTURE count OF count10 ISSIGNAL q_temp:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk2,clear2)BEGINIF clear2='1' THEN q_temp<="0000";ELSIF (clk2'event AND clk2='1') THENIF q_temp="1001" THENq_temp<="0000";ELSEq_temp<=q_temp+1;END IF;END IF;END PROCESS;q<=q_temp;END count;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY seg7 ISPORT(a:IN STD_LOGIC_VECTOR(3 DOWNTO 0); b: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); cat1:OUT STD_LOGIC_VECTOR(5 DOWNTO 0) );END seg7;ARCHITECTURE show OF seg7 ISBEGINPROCESS(a)BEGINCASE a ISWHEN"0000"=>b<="1111110";WHEN"0001"=>b<="0110000";WHEN"0010"=>b<="1101101";WHEN"0011"=>b<="1111001";WHEN"0100"=>b<="0110011";WHEN"0101"=>b<="1011011";WHEN"0110"=>b<="1011111";WHEN"0111"=>b<="1110000";WHEN"1000"=>b<="1111111";WHEN"1001"=>b<="1111011";WHEN OTHERS=>B<="0000000";END CASE;END PROCESS;cat1<="111011";END show;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity jishuqi8421 isport(clk,clear:IN STD_LOGIC;cout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); cat:OUT STD_LOGIC_VECTOR(5 DOWNTO 0) );end jishuqi8421;architecture ji of jishuqi8421 iscomponent div25mport(clk1 : in std_logic;clk_out : out std_logic);end component;component count10PORT(clk2,clear2:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); end component;component seg7PORT(a:IN STD_LOGIC_VECTOR(3 DOWNTO 0); b: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); cat1:OUT STD_LOGIC_VECTOR(5 DOWNTO 0) );end component;signal c:std_logic;signal d:std_logic_vector(3 downto 0);beginu1:div port map(clk1=>clk,clk_out=>c);u2:count10 port map(clk2=>c,clear2=>clear,q=>d); u3:seg7 port map(a=>d,b=>cout,cat1=>cat);end ji;仿真波形图:(由于实际使用的50000000分频不方便仿真,仿真时使用12分频)仿真波形图分析:每隔12个时钟信号计数器的值会增加1,直到计数器的值为9时,再次返回0计数。
数电实验报告:数码管显示控制电路设计

数字电子技术实验报告实验五:数码管显示控制电路设计一、设计任务与要求:能自动循环显示数字0、1、2、3、4、1、3、0、2、4。
二、实验设备:1、数字电路实验箱;2、函数信号发生器;3、8421译码器;4、74LS00、74LS10、74LS90。
三、实验原理图和实验结果:1、逻辑电路设计及实验原理推导:将0、1、2、3、4、1、3、0、2、4用8421码表示出来,如下表:表一用8421码表示设想用5421码来实现8421码表示的0、1、2、3、4、1、3、0、2、4,故将0、1、2、3、4、5、6、7、8、9用5421码表示出来以与上表做对比:表二用5421码表示:观察表一,首先可得到最高位全为0,故译码器的“8”直接接低电平即可;对比表一和表二得,“4”位上的数字两表表示的数字是一样的,故“4”直接与5421码的“4”输出相连即可,即译码器的“4”连74LS90的“Q 3”端;表一的“2”位上的数字前五行与表二的“2”位上的数字前五行显示的一样,此时表二的“5”位上的数字均为0,表一的“2”位上的数字后五行与表二的“1”位上的数字后五行一样,此时表二上的“5”位上的数字均为1,故译码器的“2”要接的是实现函数表达式为1020Q Q Q Q +的电路;最后一位上没有明显的规律,可用卡诺图求得逻辑表达式,也即译码器的“1”要连接的是实现函数表达式为230130Q Q Q Q Q Q +的电路。
至此,实验原理图即可画出了。
2、 实验原理图:3、实验结果:编码器上依次显示0、1、2、3、4、1、3、0、2、4。
实验结果图如下:四、实验结果分析:实验结果为编码器上依次显示0、1、2、3、4、1、3、0、2、4,满足实验设计要求。
五、实验心得:在这次实验前,我认真的分析了实验原理并设计了电路,并用仿真软件得出了符合实验设计要求的结果,可是在实验过程中我遇到了问题,电路连了好几遍显示的结果都不完全对,第一次做的过程中没能顺利排除故障;但我在第二次做的过程中很顺利,因为实验原理已烂熟于心,所以很快完成了实验,一次成功。
广工quartus 24进制计数器

数电实验报告实验名称可编程逻辑器件制作任意进制计数器学院自动化学院年级班别学号学生姓名指导教师年月日用可编程逻辑器件设计计数器任意进制计数器一、实验目标1)掌握中规模集成计数器的逻辑功能,以及用中规模集成技术器构成任意进制计数器的方法2)熟悉译码器和数据显示器的使用方法3)了解数字可编程器件实现的集成计数、译码电路功能二、实验方案+步骤用中规模集成计数器(74LS160)设计一个二十四进制计数器,并与译码、显示电路连接起来。
⑴ 设计总框架:⑵ 设计总原理图如下:⑶ 分步分析:①分频器模块:分频器 计数器 B C D 七段字符显示译码器 数码管50MHz 2Hz BCD 码 译码输出本实验采用DEII 板进行验证,DEII 板上有两个内置的频率源,它们的振荡频率分别是50MHz 与27MHz 。
但是这样的频率对于我们时序电路的应用而言,显然太高了。
为此我们在内置频率源后应加一个分频器(74LS292),以得到我们需要的比较适中的频率(比如1~2Hz )DE2上有内置的50MHz 时钟CLOCK_50EDCBA = (11001 )2= (25)10②计数器模块本实验采用两片10进制计数器74LS160芯片来进行24进制计数器的设计。
③显示模块由实验板的数码管是共阳性,所以采用7446译码器来驱动。
三、时序仿真①计数器模块24个脉冲输出一个进位脉冲,即代表24进制。
②显示模块Hz MHz CLK f Q 6.1250212525≈==四、实验验证实验板上的两个数码管循环显示数字从0-23,即实现24进制电路的设计。
五、实验心得本实验主要需要先想好要用什么芯片来设计24进制电路,记忆最后需要用什么译码器来显示结果。
24进制的电路设计原理可以推广到其他任意进制的设计。
实验二用8个七段数码管实现“HELLO”的循环显示 实验报告

实验二用8个七段数码管实现“HELLO”的循环显示实验报告专业班级:2011级计算机1班学号:1137030 姓名:赵艺湾实验地点:理工楼901 实验时间:2012.9.26实验二用8个七段数码管实现“HELLO”的循环显示一、实验目的1、了解显示译码器的结构和理解其工作原理。
2、学习在QuartusⅡ9.0封装和使用自己设计的电路。
3、学习对复杂电路分类简化进行设计。
二、实验内容在实验一的基础上,把5个字符扩展到8个(包括空白字符)。
要求8个数码管(HEX7,HEX6,HEX5,HEX4,HEX3,HEX2,HEX1,HEX0)的显示与三个控制开关SW17,SW16,SW15的对应关系如下:其中“HELO空白”5个字符的编码及其与开关的对应关系如下表所示:三、实验仪器及设备:一、PC机二、QuartusⅡ9.0 三、DE2-70 四、显示器四、实验步骤1. 参考设计框图如下:2. 七段HELLO字符译码器参见实验一的设计。
3. 五选一选择器的设计框图如下:其真值表为:可用多个2选一选择器实现:2选1封装2选1内部电路5选15选1内部电路4. 8个不同的选择译码器sed7sed6sed5sed4sed3sed2sed1sed05. 将各部分按照参考设计框图连接即可。
五、实验心得通过本次用8个七段数码管实现“HELLO”的循环显示的实验,了解了QuartusⅡ9.0中自己设计电路的封装和使用;加深了对组合逻辑电路设计的了解;学习了选择器的工作原理。
六、实验结论可以通过不同的方法实现“HELLO”的循环显示,但要设计8个不同的选择器来实现对五种信号“H”、“E”、“L”、“O”、“空白”的选择。
七、实验思考题思考:实验中遇到的主要问题是什么?答:对电路整体结构、工作原理不理解;不知道选择器的工作原理。
通过实验你对组合电路的设计有何体会?答:我觉得电路设计需要认真的态度、严谨的思维。
要先弄清楚整个设计思路,为什么这么设计,再开始着手。
数电实验报告数码管显示控制电路设计

数电实验报告数码管显示控制电路设计一、实验目的1.学习数码管介绍和使用;2.熟悉数码管控制电路设计思路和方法;3.掌握数码管显示控制电路的实验过程和步骤。
二、实验原理数码管是数字显示器件,具有低功耗、体积小、寿命长等优点。
常见的数码管有共阳极和共阴极两种。
共阳极数码管的阳极端口是一个共用的端口,通过将不同的阴极端口接地来控制数码管的发光情况。
共阴极数码管的阴极端口是一个共用的端口,通过将不同的阳极端口接地来控制数码管的发光情况。
数码管的控制电路可以使用逻辑门电路或微控制器来实现。
本实验采用逻辑门电路来设计数码管显示控制电路。
三、实验器材和器件1.实验板一块;2.74LS47数码管译码器一颗;3.共阴极数码管四个;4.逻辑门IC:7404、7408、7432各一个;5.杜邦线若干。
四、实验步骤1.将74LS47数码管译码器插入实验板上的相应位置,并用杜邦线连接74LS47和逻辑门IC的引脚:1)将74LS47的A、B、C和D引脚依次连接到7408的输入端;2)将74LS47的LE引脚连接到VCC(高电平,表示使能有效);3)将74LS47的BI/RBO引脚连接到GND(低电平,表示译码输出);4)将7408的输出端依次连接到7432的输入端;5)将7432的输出端依次连接到数码管的阴极端口。
2.将四个数码管的阳极端口分别连接到4个控制开关上,并将开关接地。
3.将实验电路接入电源,调整电压和电流,观察数码管的显示情况。
五、实验结果和分析实验结果显示,控制开关的状态可以控制数码管的显示内容。
当其中一控制开关接地时,对应的数码管会显示相应的数字。
通过调整开关的状态,可以实现不同数字的显示。
六、实验总结通过这次实验,我学会了数码管的基本使用方法和控制电路的设计思路。
数码管作为一种数字显示元件,广泛应用于各种电子产品中,掌握其控制方法对于电子工程师来说非常重要。
在今后的学习和工作中,我将继续深入研究数码管的相关知识和应用,提高自己的技术水平。
数电quartus实验报告

可编程逻辑器件FPGA实验一组合逻辑电路设计1、掌握中规模数字集成器件的逻辑功能及使用方法2、熟悉组合逻辑电路的设计方法3、了解数字可编程器件的应用设计4、学会QUARTUS软件的基本使用方法二.实验器材1、软件:QUARTUSII2、硬件:DE-2实验板,PC机三.实验原理利用74283芯片进行加减法运算,(M控制加减法,结果为负数时CO和M的异或输出为1,接二极管亮)并再利用另外一个74283芯片将运算得到的补码输出转换为原码。
接着利用7485数据比较器进行数据比较(与9比较),当输出小于9时,利用7485 的AGBO的输出为低电平控制十位输出为0,并控制个位输出为原码输出减0的结果;当输出大于9时AGBO输出为高电平,其可控制十位输出为1,个位输出为原码输出减10的结果。
最后十位输出和个位均接7447进行显示。
四.实验内容1、设计一个两组四位二进制数的加减运算显示电路。
要求:一个控制加减运算的功能按键;两数相加的绝对值不大于15;用两个七段数码管显示算术运算结果(0~15);当运算结果为负数时,红色发光二极管亮。
在QUARTUSII中进行:(1)电路设计(2)功能仿真(3)时序仿真2、下载DE-2板验证设计结果。
五.实验总结1、实验故障及解决方法①电脑无法连接DE-2板可能是数据线的问题。
②DE-2板无法使用更换DE-2板。
③输出结果不对仔细检查并修改电路设计,必要时寻求同学或老师的帮助。
2、实验体会完成实验的重点是理解实验内容要求,并通过对quartus ii 的学习,根据自己思路自行设计或者和同学共同设计电路原理图。
六.思考题1、当运算结果大于15时,显示译码电路如何设计?可以将运算结果输出用7485与15比较,把AGBO输出加非门后再与VCC与门输入两个数码管的BIN端。
当结果大于15时,两个数码管全灭,结果小于等于15时,不受影响。
2、如何实现两个一位十进制数的加减运算电路?讲十进制转化为四位二进制就可以用上述电路原理图进行加减法运算。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验101、结果:同时显示012345代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY sweep ISPORT(clk,clr:IN STD_LOGIC; --clk输入时钟;clr状态清零a:OUT STD_LOGIC_VECTOR (6 DOWNTO 0); --输出数码管相同段sweep:OUT STD_LOGIC_VECTOR (5 DOWNTO 0) --输出cat(数码管选通控制信号)端);END sweep;ARCHITECTURE sweep_arch OF sweep ISSIGNAL sweep_arc:STD_LOGIC_VECTOR (5 DOWNTO 0); --声明内部信号(选通控制信号)SIGNAL b:STD_LOGIC_VECTOR (6 DOWNTO 0); --声明内部信号(相同段信号)BEGINPROCESS(sweep_arc)BEGINIF (clk'event and clk='1') THENIF clr='0' THEN --状态清零sweep_arc <="011111" ; b <="0000000";ELSEcase sweep_arc IS --选通控制信号WHEN"011111" => sweep_arc <="111110";WHEN"111110" => sweep_arc <="111101";WHEN"111101" => sweep_arc <="111011";WHEN"111011" => sweep_arc <="110111";WHEN"110111" => sweep_arc <="101111";WHEN"101111" => sweep_arc <="011111";WHEN OTHERS => sweep_arc <="011111";END CASE;CASE sweep_arc IS --相同段信号WHEN"011111" => b <="1011011";WHEN"101111" => b <="0110011";WHEN"110111" => b <="1111001";WHEN"111011" => b <="1101101";WHEN"111101" => b <="0110000";WHEN"111110" => b <="1111110";WHEN OTHERS => b <="0000000";END CASE;END IF;END IF;sweep<=sweep_arc;a<=b;END PROCESS;END;仿真:管脚:2、(1)结果:循环显示:012345—123450—234501—345012—450123—501234—012345代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY sweep2 ISPORT(clk:IN STD_LOGIC; --clk输入时钟sweep2:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); --输出数码管相同段a:OUT STD_LOGIC_VECTOR(6 DOWNTO 0) --输出cat(数码管选通控制信号)端);END sweep2;ARCHITECTURE arc_sweep2 OF sweep2 ISSIGNAL number:INTEGER RANGE 0 TO 6; --状态声明(6种状态,7种状态值)SIGNAL n:INTEGER RANGE 0 TO 6; --声明数码管(6个管,7个值)SIGNAL flag:INTEGER RANGE 0 TO 50; --同一状态运行次数BEGINPROCESS(clk)BEGINIF (clk'event AND clk='1') THENIF n>5 THENn<=0;ELSE n<=n+1;flag<=flag+1;END IF;IF flag>20 THENflag<=0;number<=number+1;END IF;IF number>5 THENnumber<=0;END IF;CASE number ISWHEN 0=> --状态0,输出012345CASE n ISWHEN 0=>sweep2<="011111"; a<="1111110";WHEN 1=>sweep2<="101111"; a<="0110000";WHEN 2=>sweep2<="110111"; a<="1101101";WHEN 3=>sweep2<="111011"; a<="1111001";WHEN 4=>sweep2<="111101"; a<="0110011";WHEN 5=>sweep2<="111110"; a<="1011011";WHEN OTHERS=>sweep2<="111111";END CASE;WHEN 1=> ----状态1,输出123450 CASE n ISWHEN 0=>sweep2<="011111"; a<="0110000";WHEN 1=>sweep2<="101111"; a<="1101101";WHEN 2=>sweep2<="110111"; a<="1101101";WHEN 3=>sweep2<="111011"; a<="1111001";WHEN 4=>sweep2<="111101"; a<="0110011";WHEN 5=>sweep2<="111110"; a<="1111110";WHEN OTHERS=>sweep2<="111111";END CASE;WHEN 2=> --状态2,输出234501 CASE n ISWHEN 0=>sweep2<="011111"; a<="1101101";WHEN 1=>sweep2<="101111"; a<="1111001";WHEN 2=>sweep2<="110111"; a<="0110011";WHEN 3=>sweep2<="111011"; a<="1011011";WHEN 4=>sweep2<="111101"; a<="1111110";WHEN 5=>sweep2<="111110"; a<="0110000";WHEN OTHERS=>sweep2<="111111";END CASE;WHEN 3=> --状态3,输出345012 CASE n ISWHEN 0=>sweep2<="011111"; a<="1111001";WHEN 1=>sweep2<="101111"; a<="0110011";WHEN 2=>sweep2<="110111"; a<="1011011";WHEN 3=>sweep2<="111011"; a<="1111110";WHEN 4=>sweep2<="111101"; a<="0110000";WHEN 5=>sweep2<="111110"; a<="1101101";WHEN OTHERS=>sweep2<="111111";END CASE;WHEN 4=> --状态4,输出450123 CASE n ISWHEN 0=>sweep2<="011111"; a<="0110011";WHEN 1=>sweep2<="101111"; a<="1011011";WHEN 2=>sweep2<="110111"; a<="1111110";WHEN 3=>sweep2<="111011"; a<="0110000";WHEN 4=>sweep2<="111101"; a<="1101101";WHEN 5=>sweep2<="111110"; a<="1111001";WHEN OTHERS=>sweep2<="111111";END CASE;WHEN 5=> --状态5,输出501234CASE n ISWHEN 0=>sweep2<="011111"; a<="1011011";WHEN 1=>sweep2<="101111"; a<="1111110";WHEN 2=>sweep2<="110111"; a<="0110000";WHEN 3=>sweep2<="111011"; a<="1101101";WHEN 4=>sweep2<="111101"; a<="1111001";WHEN 5=>sweep2<="111110"; a<="0110011";WHEN OTHERS=>sweep2<="111111";END CASE;WHEN OTHERS=>sweep2<="111111";END CASE;END IF;END PROCESS;END arc_sweep2;仿真:仿真时将循环次数改为1方便观察波形,共6种状态管脚:2、(2)结果:循环显示:012345—12345X—2345XX—345XXX—45XXXX —5XXXXX—XXXXXX—XXXXX0—XXXX01—XXX012—XX0123—X01234—012345代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY sweep3 ISPORT(clk:IN STD_LOGIC; --clk输入时钟sweep3:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); --输出数码管相同段a:OUT STD_LOGIC_VECTOR(6 DOWNTO 0) --输出cat(数码管选通控制信号)端);END sweep3;ARCHITECTURE arc_sweep3 OF sweep3 ISSIGNAL number:INTEGER RANGE 0 TO 12; --状态声明(12种状态,13种状态值)SIGNAL n:INTEGER RANGE 0 TO 6; --声明数码管(6个管,7个值)SIGNAL flag:INTEGER RANGE 0 TO 50; --同一状态运行次数BEGINPROCESS(clk)BEGINIF clk'event AND clk='1' THENIF n>5 THENn<=0;ELSE n<=n+1;flag<=flag+1;END IF;IF flag>20 THENflag<=0;number<=number+1;END IF;IF number>11 THENnumber<=0;END IF;CASE number ISWHEN 0=> --状态0,输出012345CASE n ISWHEN 1=>sweep3<="101111"; a<="0110000";WHEN 2=>sweep3<="110111"; a<="1101101";WHEN 3=>sweep3<="111011"; a<="1111001";WHEN 4=>sweep3<="111101"; a<="0110011";WHEN 5=>sweep3<="111110"; a<="1011011";WHEN OTHERS=>sweep3<="111111";END CASE;WHEN 1=> --状态1,输出12345X CASE n ISWHEN 0=>sweep3<="011111"; a<="0110000";WHEN 1=>sweep3<="101111"; a<="1101101";WHEN 2=>sweep3<="110111"; a<="1101101";WHEN 3=>sweep3<="111011"; a<="1111001";WHEN 4=>sweep3<="111101"; a<="0110011";WHEN 5=>sweep3<="111111"; a<="1111110";WHEN OTHERS=>sweep3<="111111";END CASE;WHEN 2=> --状态2,输出2345XX CASE n ISWHEN 0=>sweep3<="011111"; a<="1101101";WHEN 1=>sweep3<="101111"; a<="1111001";WHEN 2=>sweep3<="110111"; a<="0110011";WHEN 3=>sweep3<="111011"; a<="1011011";WHEN 4=>sweep3<="111111"; a<="1111110";WHEN 5=>sweep3<="111111"; a<="0110000";WHEN OTHERS=>sweep3<="111111";END CASE;WHEN 3=> --状态3,输出345XXX CASE n ISWHEN 0=>sweep3<="011111"; a<="1111001";WHEN 1=>sweep3<="101111"; a<="0110011";WHEN 2=>sweep3<="110111"; a<="1011011";WHEN 3=>sweep3<="111111"; a<="1111110";WHEN 4=>sweep3<="111111"; a<="0110000";WHEN 5=>sweep3<="111111"; a<="1101101";WHEN OTHERS=>sweep3<="111111";END CASE;WHEN 4=> --状态4,输出45XXXX CASE n ISWHEN 0=>sweep3<="011111"; a<="0110011";WHEN 1=>sweep3<="101111"; a<="1011011";WHEN 2=>sweep3<="111111"; a<="1111110";WHEN 3=>sweep3<="111111"; a<="0110000";WHEN 5=>sweep3<="111111"; a<="1111001";WHEN OTHERS=>sweep3<="111111";END CASE;WHEN 5=> --状态5,输出5XXXXX CASE n ISWHEN 0=>sweep3<="011111"; a<="1011011";WHEN 1=>sweep3<="111111"; a<="1111110";WHEN 2=>sweep3<="111111"; a<="0110000";WHEN 3=>sweep3<="111111"; a<="1101101";WHEN 4=>sweep3<="111111"; a<="1111001";WHEN 5=>sweep3<="111111"; a<="0110011";WHEN OTHERS=>sweep3<="111111";END CASE;WHEN 6=> --状态6,输出XXXXXX CASE n ISWHEN 0=>sweep3<="111111"; a<="1111110";WHEN 1=>sweep3<="111111"; a<="0110000";WHEN 2=>sweep3<="111111"; a<="1101101";WHEN 3=>sweep3<="111111"; a<="1111001";WHEN 4=>sweep3<="111111"; a<="0110011";WHEN 5=>sweep3<="111111"; a<="1011011";WHEN OTHERS=>sweep3<="111111";END CASE;WHEN 7=> --状态7,输出XXXXX0 CASE n ISWHEN 0=>sweep3<="111111"; a<="0110000";WHEN 1=>sweep3<="111111"; a<="1101101";WHEN 2=>sweep3<="111111"; a<="1101101";WHEN 3=>sweep3<="111111"; a<="1111001";WHEN 4=>sweep3<="111111"; a<="0110011";WHEN 5=>sweep3<="111110"; a<="1111110";WHEN OTHERS=>sweep3<="111111";END CASE;WHEN 8=> --状态8,输出XXXX01 CASE n ISWHEN 0=>sweep3<="111111"; a<="1101101";WHEN 1=>sweep3<="111111"; a<="1111001";WHEN 2=>sweep3<="111111"; a<="0110011";WHEN 3=>sweep3<="111111"; a<="1011011";WHEN 4=>sweep3<="111101"; a<="1111110";WHEN 5=>sweep3<="111110"; a<="0110000";WHEN OTHERS=>sweep3<="111111";END CASE;WHEN 9=> --状态9,输出XXX012CASE n ISWHEN 0=>sweep3<="111111"; a<="1111001";WHEN 1=>sweep3<="111111"; a<="0110011";WHEN 2=>sweep3<="111111"; a<="1011011";WHEN 3=>sweep3<="111011"; a<="1111110";WHEN 4=>sweep3<="111101"; a<="0110000";WHEN 5=>sweep3<="111110"; a<="1101101";WHEN OTHERS=>sweep3<="111111";END CASE;WHEN 10=> --状态10,输出XX0123CASE n ISWHEN 0=>sweep3<="111111"; a<="0110011";WHEN 1=>sweep3<="111111"; a<="1011011";WHEN 2=>sweep3<="110111"; a<="1111110";WHEN 3=>sweep3<="111011"; a<="0110000";WHEN 4=>sweep3<="111101"; a<="1101101";WHEN 5=>sweep3<="111110"; a<="1111001";WHEN OTHERS=>sweep3<="111111";END CASE;WHEN 11=> --状态11,输出X01234CASE n ISWHEN 0=>sweep3<="111111"; a<="1011011";WHEN 1=>sweep3<="101111"; a<="1111110";WHEN 2=>sweep3<="110111"; a<="0110000";WHEN 3=>sweep3<="111011"; a<="1101101";WHEN 4=>sweep3<="111101"; a<="1111001";WHEN 5=>sweep3<="111110"; a<="0110011";WHEN OTHERS=>sweep3<="111111";END CASE;WHEN OTHERS=>sweep3<="111111";END CASE;--END IF;END IF;END PROCESS;END arc_sweep3;仿真:仿真时将循环次数改为1方便观察波形,共12种状态管脚:。