数电实验实验报告(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、杜邦线若干4、电脑5、编程软件四、实验步骤1、硬件连接将数码管模块与实验开发板进行连接,确定好段选和位选引脚的连接。
检查连接是否牢固,确保电路无短路或断路现象。
2、软件编程打开编程软件,选择相应的开发板型号和编程语言。
定义数码管的段选和位选引脚。
编写控制程序,实现数字 0 到 9 的循环显示。
3、编译与下载对编写好的程序进行编译,检查是否有语法错误。
将编译成功的程序下载到实验开发板上。
4、观察实验现象接通实验开发板的电源,观察数码管的显示情况。
检查显示的数字是否正确,显示的亮度和稳定性是否符合要求。
五、实验结果与分析1、实验结果数码管能够正常显示数字 0 到 9,并且能够按照设定的频率循环显示。
显示的数字清晰、稳定,没有出现闪烁或模糊的现象。
2、结果分析程序编写正确,能够准确地控制数码管的段选和位选信号,实现数字的显示。
动态扫描的频率设置合理,既保证了显示的稳定性,又不会出现明显的闪烁。
六、实验中遇到的问题及解决方法1、问题数码管显示出现闪烁现象。
解决方法调整动态扫描的频率,增加扫描的速度,减少每个数码管的点亮时间,从而减轻闪烁现象。
quarter ii 4位数码管显示实验 (2)
贵州大学实验报告
学院:电气工程学院专业:测控技术与仪器班级:测仪131
实
验
原
理流水灯工作流程如上图所示,用逻辑电路控制8个LED灯,始终保持7亮1暗,在脉冲信号CP的推动下循环流动;将灯亮用1表示,灯灭用0表示,可写出流水灯的真值
表;
观察发现,3-8线译码器74LS138的逻辑真值表与其相同,因此采用74LS138作为主控逻辑器件;如果能够通过脉冲信号CP在74LS138的A2、A1、A0地址端产生连续的000、001、010……111→000……的地址信号,在74LS138输出端的8个LED灯即可产
1.通过QuartusII建立一个新项目;
实
验
步
骤
2. 建立项目时选MAXII系列(family)的目标器件(devices)EPM240T100C5
3. 新建图形设计文件,调用相关元件,设计总体电路原理图,并编译通过;
4. 新建波形矢量文件,添加引脚端口并编辑激励波形,保存该文件并执行时序仿真,观察并分析仿真结果。
实验数据。
数电数码管显示实训报告
一、实训目的本次数电数码管显示实训的主要目的是通过实际操作,让学生掌握数码管的基本原理、工作方式以及动态扫描显示电路的设计方法。
通过实训,学生能够熟练使用数码管进行数字显示,了解数码管驱动电路的设计和调试方法,并能够运用Verilog HDL语言进行层次化设计电路。
二、实训环境1. 实训仪器:数码管、数据选择器、可编程芯片(如FPGA/CPLD)、仿真软件(如ModelSim)、开发平台(如Quartus)等。
2. 实训内容:设计一个3位数码管动态扫描显示电路,显示学生学号的后3位数字。
提高性实验包括增加一个功能切换控制开关,以实现数码管显示数字的自动循环移位,以及其他显示功能。
三、实训原理数码管是一种常用的数字显示器件,分为七段数码管和十四段数码管。
本实训采用七段数码管,由七个LED灯组成,分别代表数字“0”至“9”以及部分字符。
数码管显示数字时,通过控制LED灯的亮灭来实现。
动态扫描显示电路利用了分时扫描技术,通过轮流点亮数码管的各个段,使得人眼感觉数码管同时显示多个数字。
动态扫描显示电路的关键在于控制各个数码管的显示时间以及段选信号的分配。
四、实训过程1. 设计电路原理图根据实训要求,设计一个3位数码管动态扫描显示电路的原理图。
电路包括数码管、数据选择器、可编程芯片以及时钟信号发生器等部分。
2. 编写Verilog HDL代码使用Verilog HDL语言编写数码管动态扫描显示电路的代码,实现电路的功能。
代码主要包括以下部分:(1)数码管段选信号发生器:产生数码管的段选信号,控制LED灯的亮灭。
(2)数码管位选信号发生器:产生数码管的位选信号,实现动态扫描。
(3)数据选择器:选择要显示的数字,并将其输出到数码管。
(4)时钟信号发生器:产生时钟信号,控制动态扫描的速度。
3. 仿真实验使用仿真软件对编写的Verilog HDL代码进行仿真实验,验证电路的功能。
观察仿真波形,确保电路能够正常工作。
实验二用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”、“空白”的选择。
七、实验思考题思考:实验中遇到的主要问题是什么?答:对电路整体结构、工作原理不理解;不知道选择器的工作原理。
通过实验你对组合电路的设计有何体会?答:我觉得电路设计需要认真的态度、严谨的思维。
要先弄清楚整个设计思路,为什么这么设计,再开始着手。
数电实验实验报告(Quartus)数码管循环显示(优选.)
最新文件---------------- 仅供参考--------------------已改成-----------word文本 --------------------- 方便更改赠人玫瑰,手留余香。
实验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,输出123450CASE 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,输出234501CASE 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,输出345012CASE 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,输出450123CASE 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 0=>sweep3<="011111"; a<="1111110";WHEN 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,输出12345XCASE 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,输出2345XXCASE 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,输出345XXXCASE 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,输出45XXXXCASE 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 4=>sweep3<="111111"; a<="1101101";WHEN OTHERS=>sweep3<="111111";END CASE;WHEN 5=> --状态5,输出5XXXXXCASE 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,输出XXXXXXCASE 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,输出XXXXX0CASE n ISWHEN 0=>sweep3<="111111"; a<="0110000";WHEN 1=>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,输出XXXX01CASE 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种状态管脚:最新文件---------------- 仅供参考--------------------已改成-----------word文本 --------------------- 方便更改赠人玫瑰,手留余香。
EDA数码管的显示整个流程实验报告
EDA 第一次实验报告实验目的:利用QuartusⅡ软件,采用自上而下或自下而上的模块化层次设计数码管扫描显示电路,通过仿真波形及硬件实验平台验证设计,从而熟悉QuartusⅡ的数字系统设计流程以及FPGA开发模式。
一、实验设计方案1.原理说明:几个数码管在同一时间进行显示利用人眼的视觉暂留效应,把多个数码管按一定顺序(从左至右或从右至左)循环进行点亮,当点亮的频率足够高时,我们可以看到全部同时显示(点亮)。
因此,我们只要给数码管驱动电路一个足够高的扫描工作频率,就可以实现几个数码管同时点亮。
而用来产生这个扫描频率的驱动电路,可以通过BCD七段译码器的输入数据切换电路,通过计数器的输出来控制几个多路数据选择器电路的实现,只要计数频率足够高,就可以实现我们的要求。
2.结构框图:其中,3选1多路选择器以及2-3译码器的输入信号是由模4计数器统一输出控制,以达到数码管的位选以及段选同时变化的效果。
二、实验流程:1、模4计数器设计并进行仿真,下载到电路板上测试2、3选1多路选择器设计3、2-3译码器设计并进行仿真4、综合利用模4计数器,3选1多路选择器以及2-3译码器完成数码管扫描显示电路的设计并进行仿真,下载到电路板上测试模4计数器与2-3译码器大同小异。
所以,我就以2-3译码器为例简单的讲述一下演示工程的创建过程。
3选1多路选择器:1)打开Quartus,创建工程,点击File->New Project WizardEDA 实验报告王丹计科一班 2注意工程文件名一定要和顶层实体名一致,否则到后面编译的时候就有可能会报错并且还很难找出错误原因。
2)点击Next,下一步是添加工程所需子模块设计源文件及设置用户库,我们目前不需要,直接单击Next。
3)选择目标器件我在实验室里截了图,其实可以看出,上面器件的选取和电板上的芯片型号相同。
因此,一定要根据实际情况对器件进行选取,否则,仿真时就会出现问题。
数字电路与逻辑设计实验报告——数码管扫描显示控制器的设计与实现
数码管扫描显示控制器的设计与实现一、六个数码管串行扫描电路1.实验任务要求:⑴掌握VHDL语言的语法规范,掌握时序电路描述方法⑵掌握多个数码管动态扫描显示的原理及设计方法2.设计思路和过程用VHDL语言设计并实现六个数码管串行扫描电路,要求同时显示0、1、2、3、4、5这6个不同的数字图形到6个数码管上,仿真并下载验证其功能:使用模6计数器产生一个M=6的信号,控制“数码管选通控制信号”cat的输出,低电平点亮管,使“0至5号”6个数码管依次点亮;同时控制数字的输出,依次输出0至5。
由于使用了同一个模6计数器,使得cat的输出与数字的输出是同步的,第k号数码管亮时输出k.当时钟频率足够大时(6个数码管需要300Hz以上的频率),数码管能稳定显示,在视觉上表现为同时显示0、1、2、3、4、5这6个不同的数字图形到6个数码管上3.V HDL 程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY shiyanshi1 ISPORT(clk,clear:IN STD_LOGIC;cat:OUT STD_LOGIC_VECTOR(5 downto 0);b:OUT STD_LOGIC_VECTOR(6 downto 0));end shiyanshi1;ARCHITECTURE shumaguan OF shiyanshi1 ISSIGNAL q_temp: STD_LOGIC_VECTOR(2 downto 0);BEGINPROCESS(clk)BEGINIF(clk'event and clk='1') THENIF clear='0' THENq_temp<="000";ELSIF q_temp="101" THENq_temp<="000";ELSEq_temp<=q_temp+1;END IF;CASE q_temp ISWHEN "000" => cat <="111110"; --0WHEN "001" => cat <="111101"; --1WHEN "010" => cat <="111011"; --2WHEN "011" => cat <="110111"; --3WHEN "100" => cat <="101111"; --4WHEN "101" => cat <="011111"; --5WHEN OTHERS => cat <="111111";END CASE;CASE q_temp ISWHEN "000" => b <="1111110"; --0WHEN "001" => b <="0110000"; --1WHEN "010" => b <="1101101"; --2WHEN "011" => b <="1111001"; --3WHEN "100" => b <="0110011"; --4WHEN "101" => b <="1011011"; --5WHEN OTHERS => b <="0000000";END CASE;END IF;END PROCESS;END shumaguan;4.仿真波形图5.仿真波形图分析如图,clear为复位信号,cp为时钟信号,cat5至cat0为数码管选通控制信号,b为数码管所显示的数字图形。
(完整word版)数电实验实验报告(Quartus)数码管循环显示
实验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;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";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,输出012345 CASE n ISWHEN 0=>sweep3<="011111"; a<="1111110";WHEN 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 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 4=>sweep3<="111111"; a<="1101101";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,输出XXXXX0WHEN 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,输出XXX012 CASE n ISWHEN 0=>sweep3<="111111"; a<="1111001";WHEN 1=>sweep3<="111111"; a<="0110011";WHEN 2=>sweep3<="111111"; a<="1011011";WHEN 5=>sweep3<="111110"; a<="1101101";WHEN OTHERS=>sweep3<="111111";END CASE;WHEN 10=> --状态10,输出XX0123 CASE 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,输出X01234 CASE 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";WHEN OTHERS=>sweep3<="111111";END CASE;--END IF;END IF;END PROCESS;END arc_sweep3;仿真:仿真时将循环次数改为1方便观察波形,共12种状态管脚:。
利用QuartusⅡ完成三位数码管显示电路
实验日期:2013 年10 月16 日一、实验目的:熟练使用QuartusⅡ软件,并利用QuartusⅡ完成三位数码管显示电路的逻辑设计,通过仿真波形及硬件实验平台验证设计,并记录结果,完成报告。
二、实验内容:用逻辑图和所学知识分组进行数码管扫描电路的模块化设计,通过波形仿真及硬件实验箱验证设计,并记录结果,完成报告。
三、实验原理:实验原理:采用基于FPGA进行数字逻辑电路设计的方法。
采用的软件工具是QuartusII软件仿真平台,采用的硬件平台是Altera EPF10K20TI144_4的FPGA试验箱。
顶层电路的连接:实验步骤:1、绘制逻辑图。
打开QuartusII软件平台,点击File中得New建立一个文件。
编写的文件名与实体名一致,点击File/Save as以“.vhd”为扩展名存盘文件。
2、按照实验箱上FPGA的芯片名更改编程芯片的设置。
操作是点击Assign/Device,选取芯片的类型。
3、编译与调试。
确定逻辑图文件为当前工程文件,点击Complier进行文件编译。
编译结果有错误或警告,则将要调试修改直至文件编译成功。
4、波形仿真及验证。
在编译成功后,点击Waveform开始设计波形。
5、时序仿真。
(具体过程,操作细节以及实验过程截图见下面具体操作,都有说明。
)6、完成各模块的设计后,用图形法实现顶层设计,然后进行编译,仿真,和FPGA芯片编程及下载验证。
四、实验过程:一)、模4计数器的设计1、编译过程(可先绘制逻辑图再建工程,也可先建工程再建文件)a)绘制逻辑图。
打开QuartusII软件平台,点击file中的New新建一个文件。
弹出一个窗口,选择Block Diagram选项;新建文件,然后绘制实验要用到的逻辑图,双击空白处,选择要用到的器件并用适当的线把各元件连接好并进行命名,绘制的模4计数器的逻辑图如下:接着保存文件,点击File/Save as,接着建一个工程,并保存。
quartus实验报告
quartus实验报告Quartus实验报告引言:Quartus是一种广泛应用于数字电路设计和开发的软件工具,它提供了一个集成的开发环境,用于设计、仿真和编译FPGA(现场可编程门阵列)和CPLD (可编程逻辑器件)等数字电路。
本实验报告将介绍我在使用Quartus进行数字电路设计的经验和成果。
一、实验背景数字电路设计是现代电子工程领域中的重要一环,它涉及到诸如计算机、通信设备、嵌入式系统等各个方面。
在数字电路设计中,Quartus作为一种常用的设计工具,提供了丰富的功能和工具,可以帮助工程师们快速、高效地完成设计任务。
二、实验目的本次实验的目的是通过使用Quartus软件,设计一个简单的数字电路,并进行仿真和编译,以验证设计的正确性和可行性。
通过这个实验,我将学习如何使用Quartus进行数字电路设计,并了解数字电路设计的基本原理和流程。
三、实验过程1. 设计思路在开始设计之前,我首先明确了自己的设计目标和要求。
我选择了一个简单的计数器电路作为我的设计对象。
这个计数器电路可以接受一个时钟信号,并将计数值在7段数码管上显示出来。
我希望通过这个设计,能够加深对数字电路设计的理解,并熟悉Quartus软件的使用。
2. 设计步骤我按照以下步骤完成了我的设计:(1)绘制电路原理图:我使用Quartus提供的原理图编辑器,绘制了我的电路原理图。
在绘制原理图的过程中,我使用了逻辑门、触发器等基本的数字电路元件,并进行了连接和布线。
(2)仿真验证:在完成电路原理图的绘制之后,我使用Quartus提供的仿真工具,对我的电路进行了仿真验证。
通过仿真,我可以观察到电路的输出结果,并检查其是否符合我的设计要求。
(3)编译和下载:在仿真验证通过之后,我使用Quartus的编译工具,将我的设计编译为可下载到FPGA上的二进制文件。
然后,我使用Quartus提供的下载工具,将编译好的文件下载到FPGA上,以实现我的设计功能。
数字电子技术基础实验报告
数字电子技术基础实验报告实验一TTL集成门电路逻辑变换一、实验目的1. 深化理解TTL门电路的组成结构和参数;2. 认识和掌握基本的TTL逻辑门电路的连接方式;3. 掌握验证、分析逻辑门电路的方法;4. 学习使用Quartus II软件进行原理图搭建、波形仿真等一系列操作;二、实验要求用门电路实现一位全加器,并用Quartus II软件进行测试,并下载至FPGA进行验证。
三、实验设备1. Quartus II 软件2. FPGA 开发板3. USB电缆四、实验原理1. 全加器逻辑的实现全加器的逻辑器件组成以及逻辑框图形式:全加器的真值表以及逻辑表达式:2. 实验开发板DE0的基本使用方法3. 发光二极管LED与FPGA的连接通过设计全加器,将两位输出端接在FPGA的两个LED引脚上,三位输入端接在FPGA的三位拨码开关上,从而实现在FPGA上拨动开关使得LED灯的亮暗情况发生变化,验证逻辑电路的正确性。
五、实验内容此次实验的内容主要是:用门电路设计实现一位全加器,用Quartus II软件测试,并下载到FPGA进行验证。
原理图:图1.1 全加器原理图设计其中A、B、C0为三位全加器输入端,S、C1为全加器输出端。
波形仿真结果:图1.2 波形仿真结果其中A设计为1us频率的脉冲信号,B设计为2us频率的脉冲信号,C0设计为8us频率的脉冲信号。
C1与S的输出结果如图2所示。
六、实验过程中的问题1. 在仿真波形图时,我们发现我们的仿真结果与示例教程提供的仿真结果并不一样,我们经过了反复的对比,查找真值表等工作,也与其他小组的仿真结进行了对比,最终确定了我们波形是正确的。
2. 实验的主要问题就是第一次上手Quartus II 软件,对软件的各种操作流程并不是很熟悉,因此效率较低,并且都需要一步一步对着例程去做;对软件的各种功能的熟悉程度也不够。
七、心得体会1. 实践出真知。
通过自己搭建仿真逻辑电路,才可以对逻辑电路的功能及实现有更加深入的理解。
- 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种状态管脚:。