EDA技术课程设计报告

发布 2022-09-30 22:03:28 阅读 1064

一.课程设计内容(所有字体用小四宋体不加粗)

1 编写vhdl程序进行跑马灯及键盘控制。

2 编写vhdl程序进行步进电机的转速控制。

3 根据所用芯片设计外围电路。

4 电路焊接。

5 程序**入所焊电路进行系统软硬件综合调试。

二.课程设计目的。

通过编写vhdl程序,结合硬件电路设计,实现跑马灯,键盘,数码管及直流电机转速等外设的控制。经过本次课程设计,能够将所学专业理论知识进行综合实际运用,锻炼学生的动手能力以及提高学生的综合专业素质。

三.课程设计器材清单。

8个二极管、9个220ω的电阻、1个整流二极管in个三端稳压集成电路(+5v)lm个100μf/25v的电容、1个三端稳压芯片(+3.3v)lm根芯片插槽、1个32768hz无源晶振、1个103瓷片电容、2个1m的电阻、1个14脚的插槽、1个74hc04n芯片、1个10脚**口;8个5.1k的电阻、8个按键、1个24脚的插槽、1个七段数码管; 4个330ω的电阻、4个npn型的三极放大管、1个16脚的插槽、1个16脚的插槽、1个uln2003a芯片 、一个步进电机、若干细导线。

四.课程设计硬件电路。

五.程序清单。

1)跑马灯的程序:

library ieee;

use use

entity pmd8 is

port(clk,rst,control : in std_logic;

led : out std_logic_vector(7 downto 0));

end;architecture one of pmd8 is

signal lamp : std_logic_vector(7 downto 0);

signal count : std_logic_vector(2 downto 0);

signal n : integer range 0 to 16384;

signal clk_out : std_logic;

beginpo1 : process(clk)

beginif clk'event and clk='1' then

if n=16383 then clk_out<=not clk_out;n<=0;

else n<=n+1;

end if;

end if;

end process;

po2 : process(clk_out,rst,control)

beginif rst='1' then lamp<=(others=>'0');count<="000";

elsif clk_out'event and clk_out='1' then

if control='0' then count<=count+1;

else count<=count-1;

end if;

end if;

if rst='0' then

case count is

when "000" =lamp<="00000001";

when "001" =lamp<="00000010";

when "010" =lamp<="00000100";

when "011" =lamp<="00001000";

when "100" =lamp<="00010000";

when "101" =lamp<="00100000";

when "110" =lamp<="01000000";

when "111" =lamp<="10000000";

when others=>null;

end case;

end if;

end process ;

led(7 downto 0)<=lamp(7 downto 0);

end; 2)按键控制数码管的程序:

library ieee;

use use

entity dsg7 is

port(clk : in std_logic;

key : in std_logic_vector(7 downto 0);

led7 : out std_logic_vector(6 downto 0));

end;architecture one of dsg7 is

signal led7s : std_logic_vector(6 downto 0);

signal n : integer range 0 to 16384;

signal clk_out : std_logic;

beginpo1 : process(clk)

beginif clk'event and clk='1' then

if n=16383 then clk_out<=not clk_out;n<=0;

else n<=n+1;

end if;

end if;

end process;

po2 : process(key)

begincase key is

when "00000001" =led7s <=0000110" ;

when "00000010" =led7s <=1011011" ;

when "00000100" =led7s <=1001111" ;

when "00001000" =led7s <=1100110" ;

when "00010000" =led7s <=1101101" ;

when "00100000" =led7s <=1111101" ;

when "01000000" =led7s <=0000111" ;

when "10000000" =led7s <=1111111" ;

when others =>led7s <=0111111" ;

end case;

end process;

po3 : process(clk_out)

beginif clk_out'event and clk_out='1' then

led7<=led7s;

end if;

end process;

end; 3)控制步进电机转速的程序:

library ieee;

use entity control_sm is

port(clk,reset : in std_logic;

outputs : out std_logic_vector(7 downto 0));

end control_sm;

architecture one of control_sm is

type sm_st is (s0,s1,s2,s3);

signal current_state,next_state : sm_st;

signal q : std_logic_vector(7 downto 0);

beginpo1 : process(reset,clk)

beginif reset='1' then current_state<=s0;

elsif clk='1' and clk'event then

current_state<=next_state;

end if;

end process;

po2 : process(current_state)

begincase current_state is

when s0 =>q<="10000111";

next_state<=s1;

when s1 =>q<="01001011";

next_state<=s2;

when s2 =>q<="00101101";

next_state<=s3;

when s3 =>q<="00011110";

next_state<=s0;

end case;

end process;

po3 : process(clk)

beginif clk='1' and clk'event then

outputs(7 downto 0)<=q(7 downto 0);

end if;

end process;

end六.课程设计小结。

通过此次过程设计,自己会了些简单的程序编写。虽然此次硬件电路做得并不完美,但两个人也一起努力,共同学习,尽力做好。与此之时,不管是程序编写还是硬件电路设计,自己日后还是得多多钻研和锻炼。

EDA技术课程设计报告

课程设计任务书。设计题目1 数码管显示数字钟设计。院 系 分管领导 教研室主任指导教师 2017年 6月 23日。目录。第1章引言 1 第2章电路原理 2 第3章程序设计 3 3.1 顶层模块设计 3 3.2 时钟分频模块设计 3 3.3 按键驱动模块设计 4 3.4 时钟计数模块设计 4 3.5 ...

EDA技术课程设计

黄冈师院物科院。eda技术 课程设计报告。项目名称 多功能彩灯控制电路设计。专业年级 电子信息工程2009级。学号 201122220324 学生姓名 易鹏。指导教师 冯杰。报告完成日期 2011 年 12 月 25日。第一章绪论。1.1系统背景。1.1.1 eda技术特点及在电子技术中的应用 ed...

EDA技术课程设计

课程设计要求 1 eda技术 课程设计成绩为 eda技术 理论课成绩一部分,课程设计不合格者,理论课成绩为不及格 2 每个设计课题可从给定设计中任选一题,由1 3人组成,3 课程设计格式要求见本文档后面附录部分 4 课程设计成绩 文档内容 格式成绩 50 答辩成绩 50 5 每个设计课题组 员均须参...