电子与信息工程学院课程设计报告( 2010 — 2011 学年第一学期) ( 本实验用 MAXPLUS2 软件和 GW48 实验箱) 2011 年1月课程设计报告- 1 课程设计题目: 闹钟系统设计及实现目的与任务: 1 、巩固专业基础知识及 EDA 的相关知识; 2 、锻炼综合应用所学知识进行小型系统开发设计的能力; 3 、培养学生将理论应用于实践的能力; 4 、设计一个简单的闹钟系统。内容和要求: 要求设计一个带闹钟功能的 24小时计时器,计时器的外观如图 1所示。图1 系统外观它包括以下几个组成部分: ①显示屏: 4个七段数码管显示当前时间(时:分)或设置的闹钟时间;一个发光二极管以 1HZ 的频率跳动,用于显示秒; ②按键 key1 ,用于设置调时还是调分; ③按键 key2 ,用于输入新的时间或新的闹钟时间,每按下一次,时或分加 1; ④ TIME( 时间)键,用于确定新的时间设置; ⑤ ALARM( 闹钟)键,用于确定新的闹钟时间设置,或显示已设置的闹钟时间; ⑥扬声器,在当前时钟时间与闹钟时间相同时,发出蜂鸣声。课程设计报告- 2 --key1 输入作为计数器的触发信号用来选择数码管 LIBRARY IEEE; USE ; USE ; ENTITY key1_trans_hjc IS PORT ( CLR_HJC: IN STD_LOGIC; KEY1_HJC: IN STD_LOGIC; Q_HJC : BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0)); END ENTITY key1_trans_hjc; ARCHITECTURE HJC OF key1_trans_hjc IS BEGIN PROCESS(CLR_HJC,KEY1_HJC) IS BEGIN IF(CLR_HJC='1')THEN Q_HJC<="000"; ELSIF(KEY1_HJC='1' AND KEY1_HJC'EVENT )THEN IF(Q_HJC="100")THEN Q_HJC<="001"; ELSE Q_HJC<=Q_HJC+"001"; 课程设计报告- 3 END IF; END IF; END PROCESS ; END ARCHITECTURE HJC; --key2 用来设定数码管的值 LIBRARY IEEE; USE ; USE ; ENTITY KEY2_TRANS_HJC IS PORT ( CLR_HJC: IN STD_LOGIC; KEY2_HJC: IN STD_LOGIC; Q2_HJC : BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0)); END ENTITY KEY2_TRANS_HJC; ARCHITECTURE ART OF KEY2_TRANS_HJC IS BEGIN PROCESS(CLR_HJC,KEY2_HJC) IS BEGIN IF(CLR_HJC='1')THEN 课程设计报告- 4 Q2_HJC<="0000"; ELSIF(KEY2_HJC='1' AND KEY2_HJC'EVENT )THEN IF(Q2_HJC="1001")THEN Q2_HJC<="0000"; ELSE Q2_HJC<=Q2_HJC+"0001"; END IF; END IF; END PROCESS ; END ARCHITECTURE ART; -- 实现选择数码管并赋值, LIBRARY IEEE; USE ; USE ; ENTITY KEYBUFFER_HJC IS PORT (KEY1_CTRL_HJC: IN STD_LOGIC_VECTOR(2 DOWNTO 0); KEY2_HJC: IN STD_LOGIC_VECTOR(3 DOWNTO 0); CLK_HJC: IN STD_LOGIC; CLR_HJC: IN STD_LOGIC; 课程设计报告- 5 NEW_TIME_0_HJC: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); NEW_TIME_1_HJC: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); NEW_TIME_2_HJC: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); NEW_TIME_3_HJC: OUT STD_LOGIC_VECTOR
(参考)VHDL闹钟系统设计 来自淘豆网m.daumloan.com转载请标明出处.