用VHDL编程实现4位LED数码管动态显示
图书馆; useeeee.std_logic_1 1 6 4 .all; useeeee.std_logic_unsigned.all; Entites显示的Misport(时间,en:instd_logic; dp2 ,dp1 :instd_logic; ---- dp2 :1 00 dhp1 drop dp1 dp1 :1 00小数点,数字,数字,数字,数字:insted_logic(---- dp2 :1 00 dpiimal Point dp1 dp1 dp1 dp1 :1 00。3 downdownttottoto0tottoto downdownttoto0tottottoto0 to downtotto to to ); (6 downtto0); 答:process(ora,en)variablenum:std_logic_vector(3 downtto0); fillafen ='1 '1 ',如果是高,则允许具有段的数字管显示ifriting_edge(clock)tateifcounter = 2 thencence <= 0; ElSecunter <= Counter+1 ; endif; casecounteriswhen0 => enout <=“ 1 1 0”; num:= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = numina; kur1 => enout <=“ 1 01 ”; num:= numinb; 当2 => enout <=“ 01 1 ”; num:= numinc; 当母亲=> enout <=“ 1 1 1 ”时; num:=“ 0000”; 端箱; kasenumiswen“ 0000” =>屏幕<=“ 1 1 1 1 1 1 1 0”; 当“ 0001 ” =>屏幕<=“ 01 1 0000”时; 当“ 001 0” =>屏幕<=“ 1 1 01 1 01 01 ”时; 当“ 001 1 ” =>屏幕<=“ 1 1 1 1 001 ”时; 当“ 01 00” =>屏幕<=“ 01 1 001 1 ”时; 当“ 01 01 ” =>屏幕<=“ 1 01 1 01 1 ”时; 当“ 01 1 0” =>屏幕<=“ 1 01 1 1 1 1 ”时; 当“ 01 1 1 ” =>屏幕<=“ 1 1 1 0000”时; 1 1 英寸;当母亲=> display
用VHDL言语编写的在八个数码管上显示12345678的程序
用VHDL语言编写数字管道显示程序时,您需要先输入必要的库。这是IEEE库,提供标准逻辑和其他必要的软件包。
具体而言,STD_LOGIC_1 1 6 4 用于识别标准逻辑类型,numeric_std用于转换数字和std_logic_unsigned用于逻辑活动。
接下来,标识一个包含八个门门D1 到D8 的实体名称,每个门都是std_logic_vector 8 位。
这些端口用于连接到数字管的段线的选择,每个端口对应于一个端口。
在行为描述部分中,我们设置了每个数字管显示的数字。
具体而言,D1 显示1 号,D2 显示数字2 ,等等。
在D8 显示数字8 之前。
每个数字的屏幕由二进制代码8 位指示。
例如,二进制代码“ 1 1 01 1 1 1 ”对应于代表数字1 的D1 ,二进制代码“ 1 001 01 0”对应于代表数字2 的D2 ,等等。
这样,我们可以控制数字管以显示不同的数字。
在实际应用中,这些信号将连接到数字管段的选择,从而识别数字屏幕。
值得注意的是,此处使用的直接分配用于为每个端口分配特定的二进制代码。
这些二进制代码是通过搜索数字管的真相来获得的。
真实表确定显示特定数字时每个数字管必须保持的状态。
整个程序的简单性和有效性是由于VHDL的强大能力,使我们能够直接描述硬件的功能和行为。
这样,我们可以轻松地执行复杂的数字管道显示功能。
请教:能帮我用VHDL编写一个八位七段数码管动态显示电路吗!真的感谢你!
模块fixed_8 位(clk,bree,freequre [3 :0] lede_1 be; / generating 5 1 2 Hzedhators @(!2 ] freedecornfalfras(!2 ] freeflfroff(freq__sig_dure_ [3 ] RESTARTED_ = 3 ; = 1 allowerkne @(pre delclovernoroorof @(!lede_be1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 朗务检查:〜8 '1 bittr1 1 : - led_bit '1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 'd5 :ledar_bereed / 8 ! 8 'b1 001 001 0;用vhdl语言编写一个自动售货机,急!
我较早地写了一个平等,只需更改数据:moduleshoumaiji(clk,a,b,duanxuan,weixuan,out,out1 ); inputclk; 输入; 金属信号输出[8 :1 ] duanxuan; //输出8 -1 位选择信号输出输出输出; //输出1 -1 位选择信号输出1 ; //当OUT1 高时,找到0.5 元的Regweixuan; Reg [8 :1 ] Duanxuan; Reg [3 1 :0]计数; //数字管动态扫描计数[3 1 :0] Count1 ; //使用计算自动售货机大门登录时间[4 :1 ] A1 ,B1 ; //使用A1 ,B1 eggif(out = 1 )a1 <= 0; //从苏打<= a1 +4 'b1 出来后清除计数值; endalways@(posedgeborposedgeout)stripif(out == 1 )b1 <= 0; , 苏打水为2 .5 ,您可以给出5 元orsif(a1 == 3 && b1 == 1 )out <= 1 ; //您可以给出3 0.5 元和1 1 元(a1 == 1 && b1 == 2 )输出<= 1 ; //,您可以给出1 0.5 元和2 1 元的Alsif(b1 == 3 )start <= 1 ; out1 <= 1 ; end //您可以给出3 片,系统将恢复0.5 元(a1 == 0 && b1 = 0)0beginif(co)显示unt == 5 0)//如果您发现数字管在期间发光实际操作,您可以调整以启动此值 为<= 1 'b0; duanxuan <= 8 'B001 1 1 1 1 1 ; /如果实际上是在操作过程中,我发现数字管闪闪发光,所以我要启动此值<= 1 'b1 ; duanxuan <= 8 'B001 1 1 1 1 1 ; // 0count <= 0; ENDENDELSEF(A == == == == = = 0; 1 )//显示0.5 元,显示0.5 您可以容纳此值<= 1 'b0; duanxuan <= 8 'b01 1 01 1 01 ; beginWeixuan <= 1 'b1 ; duanxuan n <= 8 'b1 01 1 1 1 1 1 ; 如果数字管闪闪发光,您可以启动,您可以开始价格<= 1 'b0; duanxuan <= 8 'b000001 1 0; 您要启动此值<= 1 'b1 ; duanxuan <= 8 'b001 1 1 1 1 1 ; // 0count <= 0; endendif(out = 1 )可以调整以打开beginif(count1 = 3 000)// 3 秒的门。,
求程序:用vhdl语言编写出20进制计数器并在数码管上显示出来
计数模块Libraryeeeeee; usieeeee.std_logic_1 1 6 4 .all; EntityCount2 0ISPORT(CLK:Instd_logic; Out1 a,Out1 b,out2 a,out2 b:Outstd_logic_vetor(7 donto0):=“ 000000000”); ogic; 输入:integerrange0to1 9 'then图1 = 1 9 thheniftemp2 = 1 9 thnemp1 <= 0; temp2 <= 0 ElSetemp2 <= temp2 +temp1 <= 0; cess; u1 :clk,temp1 ,out1 a,out1 b) ,out2 b); 终结; 性能模块,我不知道您正在使用哪种数字管。K:Instd_logic; 输入:integerrange0to1 9 := 0; 输出1 :OUTSTD_LOGIC_VECTOR(7 DOWNTO0):=“ 00000000”; OUTT2 :OUTSTD_LOGIC_VE(7 DOWNTO0)“ 00000000”; 输出2 <=“ 00000000”; 当1 =>输出1 <=“ 01 1 00000”时; 输出2 <=“ 00000000”; 当2 =>输出1 <=“ 1 1 01 1 01 01 0”时; 输出2 <=“ 000000000”; 当3 =>输出1 <=“ 1 1 1 1 001 0”时; 输出2 <=“ 000000000”; 6 =>输出1 <=“ 1 01 1 1 1 1 1 0”; 输出2 <=“ 000000000”; 当7 =>输出1 <=“ 1 1 1 00000”时; 输出2 <=“ 000000000”; whine8 =>输出1 <=“ 1 1 1 1 1 1 1 0”; 输出2 <1 1 1 1 1 1 0“;输出2 <1 1 1 1 1 1 1 0”; =“ 00000000”; 01 1 00000“;输出2 <=“ 01 1 00000”;当1 2 =>输出1 <=“ 1 1 01 1 01 01 0”;输出2 <=“ 01 1 00000”;当1 3 =>输出1