资源描述:
《北邮数字逻辑课程设计实验报告(电子钟显示).docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验四:电子钟显示一、实验目的(1)掌握较复杂的逻辑设计和调试。(2)学习用原理图+VHDL语言设计逻辑电路。(3)学习数字电路模块层次设计。(4)掌握ispLEVER软件的使用方法。(5)掌握ISP器件的使用。二、实验所用器件和设备在系统可编程逻辑器件ISP1032一片示波器一台万用表或逻辑笔一只TEC-5实验系统,或TDS-2B数字电路实验系统一台三、实验内容数字显示电子钟1、任务要求(1)、时钟的“时”要求用两位显示;上、下午用发光管作为标志;(2)、时钟的“分”、“秒”要求各用两位显示;(3)、整个系统要有校时部分
2、(可以手动,也可以自动),校时时不能产生进位;(4)*、系统要有闹钟部分,声音要响5秒(可以是一声一声的响,也可以连续响)。VHDL源代码:LIBRARYieee;USEieee.std_logic_1164.all;USEieee.std_logic_unsigned.all;----主体部分-ENTITYclockisport(clk,clr,put,clk1:instd_logic;--clr为清零信号,put为置数脉冲,clk1为响铃控制时钟choice:instd_logic;--用来选择时钟状态的脉冲信号lig
3、hthour:outstd_logic_vector(10downto0);lightmin:outstd_logic_vector(7downto0);lightsec:outstd_logic_vector(7downto0);--输出显示ring:outstd_logic);--响铃信号endclock;--60进制计数器模块ARCHITECTUREfuncofclockiscomponentcounter_60port(clock:instd_logic;clk_1s:instd_logic;putust:inst
4、d_logic;clr:instd_logic;load:instd_logic;s1:outstd_logic_vector(3downto0);s10:outstd_logic_vector(3downto0);co:outstd_logic);endcomponent;--24进制计数器模块componentcounter_24port(clock:instd_logic;clk_1s:instd_logic;putust:instd_logic;clr:instd_logic;load:instd_logic;s1
5、:outstd_logic_vector(3downto0);s10:outstd_logic_vector(6downto0));endcomponent;signalsec,a:std_logic;---2分频产生1s信号signall1,l2,l3:std_logic;---判定对时间三部分修改signalc1,c2:std_logic;---进位信号signalload:std_logic_vector(1downto0);signaltemp:integerrange0to2499;signaltemp1:int
6、egerrange0to95;--计数信号signalsec_temp:std_logic_vector(7downto0);--总进程beginu1:counter_60portmap(sec,sec,put,clr,l1,sec_temp(3downto0),sec_temp(7downto4),c1);u2:counter_60portmap(c1,sec,put,clr,l2,lightmin(3downto0),lightmin(7downto4),c2);u3:counter_24portmap(c2,sec,
7、put,clr,l3,lighthour(3downto0),lighthour(10downto4));lightsec(7downto0)<=sec_temp(7downto0);--状态转换process(choice)beginif(choice'eventandchoice='1')thencaseloadiswhen"00"=>l1<='0';--非修改状态l2<='0';l3<='0';load<="01";when"01"=>l1<='0';--此状态下对小时进行修改l2<='0';l3<='1';load
8、<="10";when"10"=>l1<='0';--此状态下对分钟进行修改l2<='1';l3<='0';load<="11";whenothers=>l1<='1';--此状态下对秒进行修改l2<='0';l3<='0';load<="00";endcase;endif;endprocess;--计