1. 三人表决电路设计。
输入用拨码开关sw1-sw8
输出用led显示。
led引脚定义(8bit leds)
set_location_assignment pin_ab20 -to led_down[0]
set_location_assignment pin_ad24 -to led_down[1]
set_location_assignment pin_ab23 -to led_down[2]
set_location_assignment pin_ab18 -to led_down[3]
set_location_assignment pin_y21 –to led_down[4]
set_location_assignment pin_ad16 -to led_down[5]
set_location_assignment pin_u24 –to led_down[6]
set_location_assignment pin_t23 –to led_down[7]
8位拨码开关定义(8bit switch)
set_location_assignment pin_aa16 -to sw[0]
set_location_assignment pin_y13 -to sw[1]
set_location_assignment pin_w10 -to sw[2]
set_location_assignment pin_v10 -to sw[3]
set_location_assignment pin_y11 -to sw[4]
set_location_assignment pin_v13 -to sw[5]
set_location_assignment pin_v24 -to sw[6]
set_location_assignment pin_ab15 -to sw[7]
实验5:分频器设计。
一:设计一个分频器,首先对系统时钟分频,形成2hz的信号,然后依次点亮8个led,形成流水灯。
library ieee;
use use
entity rightmove is
port(clk,ena:in std_logic;
count:in std_logic_vector(5 downto 0);
output:out std_logic_vector(11 downto 0));
end rightmove ;
architecture one of rightmove is
beginprocess(clk,ena,count)
beginif clk'event and clk='1' then
if ena='1' then
case count is
when "000000"=>output<="001000000000";
when "000001"=>output<="000100000000";
when "000010"=>output<="000010000000";
when "000011"=>output<="000001000000";
when "000100"=>output<="000000100000";
when "000101"=>output<="000000010000";
when "000110"=>output<="000000001000";
when "000111"=>output<="000000000100";
when others=>output<="000000000000";
end case;
else output<="000000000000";
end if;
end if;
end process;
end one;
实验6:七段数码管动态显示。
一:用8个动态数码管显示1-8的数字,每个数码管的刷新频率50hz
library ieee;
use use
use --下面是构造实体。
entity exp4 is --exp4为实体名。
port( clk : in std_logic
key : in std_logic_vector(3 downto 0);
ledag : out std_logic_vector(6 downto 0);
del : out std_logic_vector(2 downto 0)
end exp4;
architecture whbkrc of exp4 is --whbkrc为结构体名。
begin --以begin为标志开始结构体的描述。
process(clk) -进程,clk变化时启动进程。
variable dount : std_logic_vector(2 downto 0); 变量,计数
beginif clk'event and clk='1' then--检测时钟上升沿。
dount:=dount+1;--计数器dount累加。
end if;
del<=dount; -片选信号
end process;--结束进程
process(key) -进程,key变化时启动进程。
begincase key is
when "0000" =ledag <=0111111";-七段数码管显示 0
when "0001" =ledag <=0000110";-1
when "0010" =ledag <=1011011";-2
when "0011" =ledag <=1001111";-3
when "0100" =ledag <=1100110";-4
when "0101" =ledag <=1101101";-5
when "0110" =ledag <=1111101";-6
when "0111" =ledag <=0000111";-7
when "1000" =ledag <=1111111";-8
when "1001" =ledag <=1101111";-9
when "1010" =ledag <=1110111";-r
when "1011" =ledag <=1111100";-b
when "1100" =ledag <=0111001";-c
when "1101" =ledag <=1011110";-d
when "1110" =ledag <=1111001";-e
when "1111" =ledag <=1110001";-f
when others =>null;
end case;
end process; -结束进程。
end whbkrc; -结束结构体。
实验7:数字时钟。
一:用6个数码管(动态显示),显示时间,格式hh:mm:ss。时间可以通过按键调整。
org 0000h
mov 40h,#00h
mov 41h,#00h
mov 42h,#00h
mov 43h,#00h
mov 44h,#00h
mov 45h,#00h
mov r0,#01h
mov r1,#02h
clr p3.0
clr p3.1
uu: mov tmod ,#01h中断。
mov th0,#3ch
mov tl0,#0b0h
clr tr0
mm: mov a,40h显示程序:
mov 50h,#0feh
mov p2,50h
mov dptr ,#tab
movc a,@a+dptr
mov p0,a
lcall yy延时。
mov a,50h
rl amov 50h,a
mm1: mov p2,50h
mov dptr,#tab
EDA作业
电子电路基础 eda作业。multisim的应用之晶体管放大器的设计与调测。本实验的主要目的是熟悉multisim软件的使用,包括电路图编辑,虚拟仪器仪表的使用和掌握常见电路分析方法。能够运用multisim软件对模拟电路进行设计和性能分析,掌握eda设计的基本方法和步骤。熟练掌握有关单级放大电路有...
EDA作业
山东交通学院。eda电路 设计软件。设计报告。班级电气111 姓名罗汉林。学号 110812135 专业电气工程及其自动化 学院信电学院。简易频率计数器的设计。设计说明。频率的测量实际上就是在1个单位时间内 通常1s 对信号脉冲进行计数,计数值就是信号频率。1.设计目标。用at89s51设计一个数显...
EDA作业
控制灯亮灭的一个eda程序 library ieee use use 以上三条语句引入可用的函数库。entity light is 定义实体,名为light port clk1 in std logic 程序仅有时钟信号这一个输入。light buffer std logic vector 7 do...