数字逻辑课程设计(数字时钟)

合集下载

数字逻辑电路数字钟课程设计报告模板

数字逻辑电路数字钟课程设计报告模板

江苏大学计算机学院软件工程课程设计报告书课程名称数字逻辑电路课程设计总评成绩学生姓名、学号卢江涛**********学生专业班级软件工程软件1002班指导教师姓名赵念强一.设计目的(内容及功能)1、能进行正常的时、分、秒计时,用动态扫描的方式显示,需用6个数码管。

(1)用M6M5进行24进制小时的显示。

(2)用M4M3进行60进制分的显示。

(3)用M2M1进行60进制秒的显示。

2、利用按键实现“校时”、“校分”和“秒清0”功能。

(1)SA:校时键。

按下SA键时,时计数器迅速递增,按24小时循环,并且计满23时回到00。

(2)SB:校分键。

按下SB键时,分计数器迅速递增,按60小时循环,并且计满59时回到00,但不向时进位。

(3)SC:秒清零。

按下SC时,秒计数器清零。

要求按键均不产生数字跳变,因此须对“SA”、“SB”进行消抖处理。

3、能进行整点报时。

(1)在59分50、52、54、56、58秒按500Hz频率报时;(2)在59分60秒用1KHz的频率作最后一声正点报时。

4、更高要求:能进行闹时功能(1)闹时的最小时间间隙为10分钟,闹时长度为1分钟。

闹时频率可以自己设置。

(2)按下闹时按键SD后,将一个闹时时间数存入计数器内。

时钟正常运行时,闹时时间和运行的时间进行比较,当比较结果相同时输出一个启动信号,触发闹时电路工作,输出音频信号。

二、设计要求1、按自顶向下的层次化设计方法设计。

(1)顶层图(2)消抖电路用D触发器构成,SA、SB、SC为包含抖动的输入信号,而电路的输出则是一个边沿整齐的输出信号。

(3)计时(24进制计数器),计分(60进制计数器)、计秒(60进制计数器)模块可由10进制计数器连接构成,也可用VHDL语言完成。

10进制计数器需自己设计(用VHDL语言,与所做实验74160计数器相同),不能调用系统库。

(4)其他如分频电路、提供报时控制信号、闹时电路等模块用VHDL语言实现。

数字逻辑实验报告(数字时钟设计)

数字逻辑实验报告(数字时钟设计)

数字逻辑实验报告实验三、综合实验电路一、实验目的:通过一个综合性实验项目的设计与实现,进一步加深理论教学与实验软硬件平台的实践训练,为设计性实验做好充分准备。

二、实验原理:根据要求的简单设计性的电路设计实验,应用基本器件与MSI按照电路设计步骤搭建出初级电路;设计型、综合型的较复杂实验电路三、实验设备与器件:主机与实验箱四、实验内容:(1)实验任务:根据所学习的器件,按照电路开发步骤搭建一个时钟,要求实现的基本功能有计时功能、校对时间功能、整点报时、秒表等功能。

(2)实验任务分析:完成该数字时钟,采用同步时序电路,对于计时的的功能,由于时间的秒分时的进位分别是60、60、24,所以可以应用74LS163计数器分别设计2个模60计数器以及一个模24计数器,那么需要有7个秒输出,7个分输出,6个小时的输出;对于校对时间的功能,由74LS163的特性可知,当该器件处于工作状态时,每来一个CLK脉冲,计数值加1,所以可以手动控制给CLK脉冲,来进行时间的校对;对于整点报时功能,可以采用一个比较电路,当时间的分秒数值全部为零时,那么此时可以接通报时装置,可以在电路中设置报时的的时间;对于秒表功能,有两种方案,可以单独重新设计一个秒表装置,采用模100计数器以及两个模60计数器,可以进行优化,使用原先的两个模60计数器,这样可以简化电路,是电路简洁。

(3)实验设计流程:(4)输入输出表:(5)各个功能模块的实现:A、计时功能模块的实现(电路图及说明)秒表部分及说明说明:该部分是实现功能正常计时中的秒部分的计时工作。

如图所示,图中采用两个74LS163来做一个模60计时器,计数的起止范围是0~59,(第一个74LS163采用模10计数,起止为0~9,第二个74LS163的计数起止范围是0~5),两个器件采用级联方式,用预置位方法实现跳转;该部分有7个秒输出,接到BCD译码显示器。

注解:第一个163器件:LDN端统一接到清零端ABCD端接地ENP端接到VCC高电平ENT接高电平VCC第二个163器件:LDN端统一接到清零端ABCD端接地ENP端接到VCC高电平ENT接高电平第一个163的预置位段分钟部分以及说明:说明:该部分是实现功能正常计时中的分部分的计时工作。

江苏大学数字逻辑课程设计数字时钟【范本模板】

江苏大学数字逻辑课程设计数字时钟【范本模板】

JIANGSU NIVERSITY 课程设计报告学院:计算机科学与通信工程班级:网络工程姓名:学号:指导老师:报告日期:2016年1月15日目录Ⅰ.设计目的 0Ⅱ。

设计内容 0Ⅲ.设计原理 0Ⅳ.具体实现 (1)(1)顶层图 (1)(2)代码 (1)1。

24进制: (1)2. 60进制: (2)3。

动态显示: (3)4。

分频器: (4)5。

二路选择器: (5)6。

整点报时: (6)7。

闹钟设置: (7)8.alarmcmp: (8)9。

消抖: (8)Ⅴ。

心得体会 (9)Ⅰ.设计目的设计一个拥有:正常的时分秒计数功能,实现校时校分清零的功能,利用扬声器实现整点报时和闹钟功能的多功能数字钟.Ⅱ.设计内容整个系统分成七个模块进行:计时模块、校时模块、整点报时模块、分频模块、动态扫描模块,动态显示模块、闹钟模块。

l、能进行正常的时、分、秒计时功能,分别由6个数码显示24小时、60分钟的计数器显示。

2、能利用实验系统上的按钮实现“校时”、“校分”功能;3、能利用扬声器做整点报时:4、定时闹钟功能5、用层次化设计方法设计该电路,用硬件描述语言编写各个功能模块。

6、报时功能。

报时功能用功能仿真的仿真验证,可通过观察有关波形确认电路设计是否正确.Ⅲ。

设计原理1 计时模块:使用一个二十四进制和两个六十进制计数器级联,构成数字钟的基本框架。

二十四进制用于计时,六十进制用于计分和计秒.给秒计数器一个1hz的时钟脉冲,分计数器以秒计数器的进位作为计数脉冲,时计数器以分计数器的进位作为计数脉冲。

2 校时模块:分别按下校时键和校分键,计数器增至所需时分数,按下清零键,秒计数器归零。

此处注意事项:①按键“抖动"消除。

利用触发器,如D触发器,利用D 触发器边沿触发的特性,在除去时钟边沿来之前一瞬间之外的绝大部分时间都不能接受输入,从而实现“消抖"。

②校分时,分计数器计数不应对小时位产生影响,因而需要屏蔽此时分计数器的进位信号.③需要设计二路选择器对于正常计数以及校时进行选择。

数字逻辑电路课设—简易数字钟设计

数字逻辑电路课设—简易数字钟设计

数字逻辑电路课程设计报告多功能数组钟设计一、设计要求:通过Maxplus II使用VHDL语言编写设计一款多功能数字钟,具体功能如下:1、时钟时,分,秒分别显示且能正确计数。

2、整点报时,时钟在将要到达整点的最后十秒,给予蜂鸣提示。

3、校时,可以通过相应开关按钮对时钟的时分秒进行调整。

4、闹钟,用户可以预设闹铃时刻,当时间到达该时刻时,发出蜂鸣提示。

二、总体设计:1、设计框图:2、外部输入输出要求:外部输入要求:输入信号有1024Hz时钟信号、低电平有效的秒清零信号CLR、低电平有效的调分信号SETmin、低电平有效的调时信号SEThour;外部输出要求:整点报时信号SOUND(59分51/3/5/7秒时未500Hz低频声,59分59秒时为1kHz高频声)、时十位显示信号h1(a,b,c,d,e,f,g)、时个位显示信号h0(a ,b,c,d,e,f,g)、分十位显示信号m1及分个位m0、秒十位s1及秒个位s0;数码管显示位选信号SEL0/1/2等三个信号。

3、各模块功能:1)FREQ分频模块:整点报时用的1024Hz与512Hz的脉冲信号,这里的输入信号是1024Hz信号,所以只要一个二分频即可;时间基准采用1Hz输入信号直接提供(当然也可以分频取得,这里先用的是分频取得的信号,后考虑到精度问题而采用硬件频率信号。

2)秒计数模块SECOND:60进制,带有进位和清零功能的,输入为1Hz脉冲和低电平有效的清零信号CLR,输出秒个位、时位及进位信号CO。

3)分计数模块MINUTE60进制,带有进位和置数功能的,输入为1Hz脉冲和高电平有效的使能信号EN,输出分个位、时位及进位信号CO。

4)时计数模块HOUR:24进制,输入为1Hz脉冲和高电平有效的使能信号EN,输出分个位、时位。

5)扫描模块SELTIME:输入为秒(含个/十位)、分、时、扫描时钟CLK1K,输出为D和显示控制信号SEL。

6)整点报时功能模块ALERT:输入为分/秒信号,输出为高频声控Q1K和Q500。

数字逻辑课程设计报告 电子钟

数字逻辑课程设计报告 电子钟

数字逻辑课程设计报告电子钟数字逻辑课程设计报告-电子钟数字逻辑电路―课程设计报告数字逻辑课程设计报告-----多功能数字钟的同时实现一.设计目的:1.学会应用领域数字系统设计方法展开电路设计。

2.进一步提高maxplusii软件开发应用领域能力。

3.培育学生综合实验能力。

二.实验仪器与器材:1、开发软件maxplusii软件2、微机3、isp实验板se_3型isp数字实验开发系统4、打印机三.实验任务及建议设计一个多功能数字钟:1.能进行正常的时、分、秒计时功能。

1)用m6m5展开24十进制小时的表明;2)用m4m3展开60十进制分的表明;3)用m2m1进行60进制秒的显示。

2.利用按键实现“校时”、“校分”和“秒清单”功能。

1)按下sa键时,计时器快速递减,按24小时循环,并且计满23时返回00。

2)按下sb键时,计时器迅速递增,按60小时循环,并且计满59时回到00,但不向时进位。

3)按下sc,秒清零。

建议按下“sa”或“sb”均不能产生数字LBP(“sa”、“sb”按键就是存有晃动的,必须对“sa”“sb”展开窭晃动处置。

)3.能够利用实验板上的扬声器并作整点报时功能。

1)当计时到达59分50秒时开始报时,在59分50、52、54、56、58秒鸣叫,鸣叫声频为500hz。

2)抵达59分后60秒时为最后一声整点报时。

整点报时的频率为1kz。

4.能够惹出时1)闹时的最小时间间隙为10分钟。

2)惹出时长度为1分钟。

3)惹出时声响就是单频的。

5.用maxplusii软件设计符合以上功能要求的多功能数字钟,并用层次化设计方法设计该电路。

1)通过语言同时实现各模块的功能,然后再图画出高电路的顶层图。

2)消抖电路可以通过设计一个d触发器来实现,sa、sb、sc等为包含抖动的诸如信号,而电路的输出则是一个边沿整齐的输出信号。

3)其他的计时功能、表明功能、多路挑选功能、分频功能、报时功能和惹出时等功能模块都用vhdl语言实现。

数字时钟(数字逻辑)课程设计报告

数字时钟(数字逻辑)课程设计报告

数字时钟班级:学号:姓名:指导老师:提交日期:2011年1月8日一.系统简介:使用VHDL语言编写程序完成数字时钟的功能设计,利用软件进行编译和仿真,最后利用实验箱实现系统。

二.功能简介:完成时钟的计时、调整,整点报时等基础功能,完成闹钟的设置、开启和关闭功能,整点报时的开启和关闭功能,完成日期设定和显示功能。

三.总体结构逻辑框图:四.状态图:五.各模块电路图及程序:整体电路连接图:1.总控制模块:时钟脉冲分频元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc4_1clkdmux isport(clk:in std_logic;clk1,clk4,clk512:out std_logic);end dc4_1clkdmux;architecture clkdmux of dc4_1clkdmux is signal c1:std_logic_vector(9 downto 0); beginprocess (clk)beginif clk'event and clk='1'thenc1<=c1+1;end if;clk1<=c1(9);clk4<=c1(7);clk512<=c1(0);end process;end clkdmux;模式控制元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc4_2mode isport(clk4,bt_m:in std_logic;mode:out std_logic_vector(1 downto 0);cr1,cr2:out std_logic);end dc4_2mode;architecture mode of dc4_2mode issignal modx:std_logic_vector(1 downto 0); signal c1,c2:std_logic;beginprocess (clk4,bt_m)beginif clk4'event and clk4='1' thenif bt_m='1' thenmodx<=modx+1;c2<='1';else c2<='0';end if;end if;if modx="00" then c1<='1';else c1<='0';end if;mode<=modx;cr1<=c1;cr2<=c2;end process;end mode;调节项目控制元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc4_2mode isport(clk4,bt_m:in std_logic;mode:out std_logic_vector(1 downto 0); cr1,cr2:out std_logic);end dc4_2mode;architecture mode of dc4_2mode issignal modx:std_logic_vector(1 downto 0); signal c1,c2:std_logic;beginprocess (clk4,bt_m)beginif clk4'event and clk4='1' thenif bt_m='1' thenmodx<=modx+1;c2<='1';else c2<='0';end if;end if;if modx="00" then c1<='1';else c1<='0';end if;mode<=modx;cr1<=c1;cr2<=c2;end process;end mode;数码管显示元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc4_4sel isport(clk:in std_logic;sel:out std_logic_vector(2 downto 0));end dc4_4sel;architecture sel of dc4_4sel issignal selx:std_logic_vector(2 downto 0); beginprocess (clk)beginif clk'event and clk='1'thenselx<=selx+1;end if;end process;sel<=selx;end sel;模块波形图:2.时钟模块:时钟秒调节元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc3_1second isport(clk1,clk4,rest,bt_a:in std_logic;mode,set:in std_logic_vector(1 downto 0);sco,mcen:out std_logic;clks0,clks1:out std_logic_vector(3 downto 0)); end dc3_1second;architecture second of dc3_1second issignal s0,s1:std_logic_vector(3 downto 0);signal co,rco,cr:std_logic;beginprocess (clk1,clk4,rest,bt_a,mode,set)beginif clk4'event and clk4='1'thenif mode="01" thenif rest='1' thencr<='1';elsif set="00" and bt_a='1'thencr<='1';else cr<='0';end if;end if;end if;if cr='1'thens0<="0000";s1<="0000";elsif clk1'event and clk1='1' thenif s0="1001" and s1="0101" thenelsif s0="1001" thens0<="0000";s1<=s1+1;co<='0';else s0<=s0+1;co<='0';end if;end if;if mode="01" and set="01" and bt_a='1' then rco<=clk4;mcen<='0';else rco<=co;mcen<='1';end if;end process;clks0<=s0;clks1<=s1;sco<=rco;end second;时钟分调节元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc3_1minite isport(sco,mcen,clk4,rest,bt_a:in std_logic;mode,set:in std_logic_vector(1 downto 0);mco,hcen:out std_logic;clkm0,clkm1:out std_logic_vector(3 downto 0)); end dc3_1minite;architecture minite of dc3_1minite issignal m0,m1:std_logic_vector(3 downto 0);signal rco,co,cr:std_logic;beginprocess (sco,mcen,clk4,rest,bt_a,mode,set)beginif mode="01" and rest='1' thencr<=rest;else cr<='0';end if;if cr='1' thenm0<="0000";m1<="0000";elsif sco'event and sco='1' thenif m0="1001" and m1="0101"thenm0<="0000";m1<="0000";if mcen='1' then co<='1';else co<='0';end if;elsif m0="1001" thenelsem0<=m0+1;co<='0';end if;end if;if mode="01" and set="10" and bt_a='1' then rco<=clk4;hcen<='0';else rco<=co;hcen<='1';end if;end process;clkm0<=m0;clkm1<=m1;mco<=rco;end minite;时钟小时调节元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc3_1hour isport(mco,hcen,clk4,rest,bt_a:in std_logic;mode,set:in std_logic_vector(1 downto 0);hco,dcen:out std_logic;clkh0,clkh1:out std_logic_vector(3 downto 0)); end dc3_1hour;architecture hour of dc3_1hour issignal h0,h1:std_logic_vector(3 downto 0);signal rco,co,cr:std_logic;beginprocess (mco,hcen,clk4,rest,bt_a,mode,set)beginif mode="01" and rest='1' thencr<=rest;else cr<='0';end if;if cr='1' thenh0<="0000";h1<="0000";elsif mco'event and mco='1' thenif h0="1001" and h1="0101"thenh0<="0000";h1<="0000";if hcen='1' then co<='1';else co<='0';end if;elsif h0="1001" thenh0<="0000";h1<=h1+1;co<='0';elseh0<=h0+1;co<='0';end if;end if;if mode="11" and set="00" and bt_a='1' then rco<=clk4;dcen<='0';else rco<=co;dcen<='1';end if;end process;clkh0<=h0;clkh1<=h1;hco<=rco;end hour;时钟模块波形图:3.闹钟模块:闹钟分调节元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc3_2alminite isport(clk4,bt_a:in std_logic;mode,set:in std_logic_vector(1 downto 0);alm0,alm1:out std_logic_vector(3 downto 0)); end dc3_2alminite;architecture alarm of dc3_2alminite issignal m0,m1:std_logic_vector(3 downto 0);signal co:std_logic;beginprocess (clk4,bt_a,mode,set)beginif clk4'event and clk4='1'thenif mode="10"and set="00" and bt_a='1'then if m0="1001"and m1="0101"thenm0<="0000";m1<="0000";elsif m0="1001" thenm0<="0000";m1<=m1+1;elsem0<=m0+1;end if;end if;end if;end process;alm0<=m0;alm1<=m1;end alarm;闹钟小时调节元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc3_2alhour isport(clk4,bt_a:in std_logic;mode,set:in std_logic_vector(1 downto 0);alh0,alh1:out std_logic_vector(3 downto 0)); end dc3_2alhour;architecture alhour of dc3_2alhour issignal h0,h1:std_logic_vector(3 downto 0); beginprocess (clk4,bt_a,mode,set)beginif clk4'event and clk4='1'thenif mode="10"and set="01" and bt_a='1'thenif h0="0010"and h1="0100"thenh0<="0000";h1<="0000";elsif h0="1001" thenh0<="0000";h1<=h1+1;elseh0<=h0+1;end if;end if;end if;end process;alh0<=h0;alh1<=h1;end alhour;闹钟与时钟比较控制模块:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc3_2alcontrol isport(clk,clk1,clk512:in std_logic;alc:in std_logic_vector(1 downto 0);clks0,clks1,clkm0,clkm1,clkh0,clkh1,alm0,alm1,alh0,alh1:instd_logic_vector(3 downto 0);alarm:out std_logic);end dc3_2alcontrol;architecture alcontrol of dc3_2alcontrol issignal al,al0,al1:std_logic;beginprocess(clk,clk1,clk512,clks0,clks1,clkm0,clkm1,clkh0,clkh1,alm0,alm1,alh0,a lh1,alc)beginif clkm0="1001" and clkm1="0101" and clks1="0101"thenif clks0="0001"then al<=clk512;elsif clks0="0011"then al<=clk512;elsif clks0="0101"then al<=clk512;elsif clks0="0111"then al<=clk512;elsif clks0="1001"then al<=clk;else al<='0';end if;else al<='0';end if;if clkm0=alm0 and clkm1=alm1 and clkh0=alh0 and clkh1=alh1 then if clks1="0000" and clk1='1'thenal0<=clk;else al0<='0';end if;else al0<='0';end if;if alc="00" thenal1<=(al or al0);elsif alc="01" thenal1<=al;elsif alc="10" thenal1<=al0;elsif alc="11" thenal1<='0';end if;end process;alarm<=al1;end alcontrol;闹钟与时钟比较控制模块波形图:4.日期模块日期日调整元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc3_3day isport(hco,dcen,clk4,bt_a,sm1,sm2:in std_logic;mode,set:in std_logic_vector(1 downto 0);dco:out std_logic;day0,day1:out std_logic_vector(3 downto 0)); end dc3_3day;architecture day of dc3_3day issignal d0,d1:std_logic_vector(3 downto 0);signal rco,co:std_logic;beginprocess (hco,dcen,clk4,bt_a,mode,set)beginif hco'event and hco='1' thenif sm1='1' thenif d0="1000" and d1="0010"thend0<="0000";d1<="0000";if dcen='1' then co<='1';else co<='0';end if;elsif d0="1001" thend0<="0000";d1<=d1+1;co<='0';elsed0<=d0+1;co<='0';end if;elsif sm2='1' thenif d0="0000" and d1="0011"thend0<="0000";d1<="0000";if dcen='1' then co<='1';else co<='0';end if;elsif d0="1001" thend0<="0000";d1<=d1+1;co<='0';elsed0<=d0+1;co<='0';end if;elseif d0="0001" and d1="0011"thend0<="0000";d1<="0000";if dcen='1' then co<='1';else co<='0';end if;elsif d0="1001" thend0<="0000";d1<=d1+1;co<='0';elsed0<=d0+1;co<='0';end if;end if;end if;if mode="11" and set="01" and bt_a='1' then rco<=clk4;else rco<=co;end if;end process;day0<=d0;day1<=d1;dco<=rco;end day;日期月调整元件:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dc3_3month isport(dco:in std_logic;sm1,sm2:out std_logic;mon0,mon1:out std_logic_vector(3 downto 0)); end dc3_3month;architecture month of dc3_3month issignal m0,m1:std_logic_vector(3 downto 0);signal month:std_logic_vector(7 downto 0);beginprocess (dco)beginif dco'event and dco='1' thenif m0="0010" and m1="0001" thenm0<="0000";m1<="0000";elsif m0="1001" thenm0<="0000";m1<=m1+1;else m0<=m0+1;end if;end if;month<=m1&m0;if month="00000010" thensm1<='1';sm2<='0';elsif month="00000100" or month="00000110" or month="00001001" or month="00010001" thensm1<='0';sm2<='1';else sm1<='0';sm2<='0';end if;end process;mon0<=m0;mon1<=m1;end month;四(与附加四信号)选一选择器:library ieee;use ieee.std_logic_1164.all;entity dc2_2mux18 isport(m0,m1,h0,h1:in std_logic_vector(3 downto 0);sel:in std_logic_vector(2 downto 0);y:out std_logic_vector(3 downto 0));end dc2_2mux18;architecture mux18 of dc2_2mux18 isbeginprocess (m0,m1,h0,h1,sel)begincase sel iswhen "000"=>y<=m0;when "001"=>y<=m1;when "010"=>y<="1111";when "011"=>y<=h0;when "100"=>y<=h1;when others=>y<="1111";end case;end process;end mux18;日期模块波形图:5.显示驱动模块数码管动态显示选择元件:library ieee;use ieee.std_logic_1164.all;entity dc1_1choice isport(clk1:in std_logic;set:in std_logic_vector(1 downto 0);sel:in std_logic_vector(2 downto 0);g:out std_logic_vector(7 downto 0));end dc1_1choice;architecture drive of dc1_1choice isbeginprocess (set,sel)beginif set="00" and sel="000" and clk1='1'theng<="00000000";elsif set="00" and sel="001" and clk1='1'then g<="00000000";elsif set="01" and sel="011" and clk1='1'theng<="00000000";elsif set="01" and sel="100" and clk1='1'theng<="00000000";elsif set="10" and sel="110" and clk1='1'theng<="00000000";elsif set="10" and sel="111" and clk1='1'theng<="00000000";elsecase sel iswhen"000"=>g<="00000001";when"001"=>g<="00000010";when"010"=>g<="00000100";when"011"=>g<="00001000";when"100"=>g<="00010000";when"101"=>g<="00100000";when"110"=>g<="01000000";when others=>g<="10000000";end case;end if;end process;end drive;三选一多路数据选择器:library ieee;use ieee.std_logic_1164.all;entity dc1_2mux13 isport(clock,date,alarm:in std_logic_vector(3 downto 0); mode:in std_logic_vector(1 downto 0);y:out std_logic_vector(3 downto 0));end dc1_2mux13;architecture mux13 of dc1_2mux13 isbeginprocess (clock,date,alarm,mode)begincase mode iswhen "00"=>y<=clock;when "01"=>y<=clock;when "10"=>y<=alarm;when "11"=>y<=date;when others=>y<=clock;end case;end process;end mux13;七段译码器:library ieee;use ieee.std_logic_1164.all;entity dc1_3display isport(x:in std_logic_vector(3 downto 0);segout:out std_logic_vector(6 downto 0));end dc1_3display;architecture disay of dc1_3display isbeginprocess (x)begincase x iswhen "0000"=>segout<="1111110";when "0001"=>segout<="0110000";when "0010"=>segout<="1101101";when "0011"=>segout<="1111001";when "0100"=>segout<="0110011";when "0101"=>segout<="1011011";when "0110"=>segout<="1011111";when "0111"=>segout<="1110000";when "1000"=>segout<="1111111";when "1001"=>segout<="1111011";when "1010"=>segout<="1001001";when "1011"=>segout<="1000001";when "1100"=>segout<="0001001";when others=>segout<="0000001";end case;end process;end disay;六.心得体会这是一次数字逻辑的整体练兵,本次课程设计,是对VHDL数字逻辑电子设计技术的进一步掌握,也是对MAX+PLLUS设计工具应用的进一步了解。

数字逻辑课设报告数字电子钟

数字逻辑课设报告数字电子钟

课程设计(综合实验)报告题目:第四个实验数字电子钟院系:计算机科学系班级:计算计科学与技术1班学号:学生姓名:队员姓名:指导教师:《数字逻辑》综合实验任务书一、目的与要求1 目的1.1综合实验是教学中必不可少的重要环节,通过综合实验巩固、深化和扩展学生的理论知识与初步的专业技能,提高综合运用知识的能力,逐步增强实际工程训练。

1.2注重培养学生正确的设计思想,掌握综合实验的主要内容、步骤和方法。

1.3培养学生获取信息和综合处理信息的能力、文字和语言表达能力以及协作工作能力。

1.4提高学生运用所学的理论知识和技能解决实际问题的能及其基本工程素质。

2.要求2.1 能够根据设计任务和指标要求,综合运用电子技术课程中所学到的理论知识与实践技能独立完成一个设计课题。

2.2根据课题需要选择参考书籍,查阅手册、图表等有关文献资料。

要求通过独立思考、深入钻研综合实验中所遇到的问题,培养自己分析、解决问题的能力。

2.3进一步熟悉常用电子器件的类型和特性,掌握合理选用的原则。

2.4学会电子电路的安装与调试技能,掌握常用仪器设备的正确使用方法。

利用“观察、判断、实验、再判断”的基本方法,解决实验中出现的问题。

2.5学会撰写综合实验总结报告。

2.6通过综合实验,逐步形成严肃认真、一丝不苟、实事求是的工作作风和科学态度,培养学生树立一定的生产观点、经济观点和全局观点。

要求学生在设计过程中,坚持勤俭节约的原则,从现有条件出发,力争少损坏元件。

2.7在综合实验过程中,要做到爱护公物、遵守纪律、团结协作、注意安全。

二、主要内容数字电子钟设计一台能显示时﹑分、秒的数字电子钟,要求如下:1)秒﹑分为00—59六十进制计数器,时为00—23二十四进制计数器;2)可手动校正:可分别对秒﹑分﹑时进行手动脉冲输入调整或连续脉冲输入校正,(校正时不能输出进位)。

元器件选择74LS162:4块与非门74LS00:2块共阳数码管LED 74LS161:2块 GAL16V8:2块晶体振荡器:1MHZ GAL20V8:1块 TDS-4实验箱导线若干所需要器件的图片如下1同步十进制计数器74LS162 3输入正与非门74LS002异步十六进制计数器74LS161 4 GAL20V8一、 设计(实验)正文数字钟实际上是一个对标准频率(1HZ )进行计数的计数电路。

数字逻辑数字钟设计课设报告

数字逻辑数字钟设计课设报告

J I A N G S U U N I V E R S I T Y数字逻辑课程设计学生姓名:专业班级:学号:指导老师:VHDL的特点VHDL是一种用普通文本形式设计数字系统的硬件描述语言,主要用于描述数字系统的结构、行为、功能和接口,可以在任何文字处理软件环境中编辑。

除了含有许多具有硬件特征的语句外,其形式、描述风格及语法十分类似于计算机高级语言。

VHDL程序将一项工程设计项目(或称设计实体)分成描述外部端口信号的可视部分和描述端口信号之间逻辑关系的内部不可视部分,这种将设计项目分成内、外两个部分的概念是硬件描述语言(HDL)的基本特征。

当一个设计项目定义了外部界面(端口),在其内部设计完成后,其他的设计就可以利用外部端口直接调用这个项目。

VHDL的主要特点如下:(1)作为HDL的第一个国际标准,VHDL具有很强的可移植性。

(2)具有丰富的模拟仿真语句和库函数,随时可对设计进行仿真模拟,因而能将设计中的错误消除在电路系统装配之前,在设计早期就能检查设计系统功能的可行性,有很强的预测能力。

(3)VHDL有良好的可读性,接近高级语言,容易理解。

(4)系统设计与硬件结构无关,方便了工艺的转换,也不会因工艺变化而使描述过时。

(5)支持模块化设计,可将大规模设计项目分解成若干个小项目,还可以把已有的设计项目作为一个模块调用。

(6)对于用VHDL完成的一个确定设计,可以利用EDA工具进行逻辑综合和优化,并能自动地把VHDL描述转变成门电路级网表文件。

(7)设计灵活,修改方便,同时也便于设计结果的交流、保存和重用,产品开发速度快,成本低。

VHDL是一种快速的电路设计工具,其功能涵盖了电路描述、电路合成、电路仿真等设计工作。

VHDL具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门电路级三个不同层次的设计,能够完成从上层到下层(从抽象到具体)逐层描述的结构化设计思想。

用VHDL设计电路主要的工作过程是:(1)编辑。

《数字逻辑》数字时钟课程设计报告

《数字逻辑》数字时钟课程设计报告

《数字逻辑》课程设计报告题目数字时钟学院(部)信息工程学院专业计算机科学与技术班级计算机一班学生姓名学号201324026 月29 日至7 月 3 日共1 周指导教师(签字)题目一.摘要:钟表的数字化给人们的生产生活带来了极大的方便,并且极大的扩展了钟表原先的报时功能。

诸如定时自动报有这些,都是以钟表数字化为基础的。

因此,研究数字钟及扩大其应用,有着非常警、学校的按时自动打铃、时间程序自动控制、定时广播、定时启闭路灯,甚至各种定时电气的自启用等。

所现实的意义。

本次数电课设我组设计的数字时钟是由石英晶体振荡器、分频器、计数器、译码器、显示器、校时电路、报时电路和计时电路组成,石英晶体振荡器产生的信号经过分频器作为秒脉冲,秒脉冲送入计数器计数,计数结果通过“时”、“分”、“秒”译码器在七段显示器上显示时间。

二.关键词:校时计时报时分频石英晶体振荡器三.技术要求:1、有“时”、“分”、“秒”(23小时59分59秒)显示且有校时功能;2、有计时功能,时钟不会在计时的时候停下。

计时范围是0~99秒;3、有闹铃功能,闹铃响的时间由使用者自己设置,闹铃时间至少一分钟;4、要在七段显示器(共阴极6片)显示时间;5、电子钟要准确正常地工作。

四、方案论证与选择:钟表的是长期使用的器件,误差容易积累由此增大。

所以要求分频器产生的秒脉冲要极其准确。

而石英晶体产生的信号是非常稳定的,所以我们使用石英晶体产生的信号经过分频电路作为秒脉冲。

秒脉冲信号经过6级计数器,分别得到“秒”、“分”、“时”的个位、十位的计时。

由实际的要求,“秒”、“分”计数器为60进制的计数器,小时为24进制。

由于74LS160十进制加法计数器易于理解使用,我们在设计各个计数器时都是由采用74LS160芯片级联构成。

在计时部分,最小单位是0.01s,我们采用555多谐振荡器产生100HZ的信号作为秒脉冲进入一个4级计数器,计时范围是0~99秒。

石英晶体我们选择的是振荡频率为2ⁿ(我们找到的最小振荡频率为n=15),与四个74LS161组成的计数器来分频,使振荡频率变为1HZ,这样秒脉冲就产生了。

数字逻辑数字时钟课程设计报告

数字逻辑数字时钟课程设计报告

4.2 EWB24 小时计时数字钟基本功能仿真结果 ....................................... 14 4.3EWB 电子钟整体仿真结果 ..................................................... 15 结束语 ........................................................................... 16
选用 EWB 软件,以计算机作为载体。通过使用 EWB 软件,设计实现一个 24 小
第二章
设计总体方案
8
4 计算机学院数字系统课程设计
2.1 总体方案框图
图 2.1 总体方案框图
2.2 设计原理
由 555 定时器构成的振荡器产生稳定的 1Hz 的脉冲信号,作为标准秒脉冲。秒计数
器计 60 后向分计数器进位,分计数器计满 60 后向小时进位,小时计数器设置成 24 进 制计数器,满 24 后清零,重新开始计时。计数器的输出直接送到 LED 显示器。计时出 现误差时可以用校时电路进行校时,校分,校时电路是由一开关接到一个高电位上,当 全按一下开关就传来一个高位脉冲,计数器加一。
2.1 总体方案框图 .............................................................. 4 2.2 设计原理 .................................................................. 4 2.3 元器件的选择及功能分析 ..................................................... 5 2.3.1 选择器件 ............................................................ 5 2.3.2 555 定时器的应用 ..................................................... 5 2.3.3 74290 的应用 ......................................................... 7 2.3.4 与门 ................................................................. 8 第三章 功能模块 ................................................................... 9 3.1 单元电路的设计 ............................................................ 9 3.1.1 秒脉冲发生器......................................................... 9 3.1.2 时间技术单元 ........................................................ 10 3.2 总体设计电路图 ............................................................ 12 第四章 EWB24 小时计时数字钟仿真结果 .............................................. 13

数字逻辑课程设计 数字钟的设计 包括完整电路图

数字逻辑课程设计  数字钟的设计 包括完整电路图

数字逻辑课程设计报告数字钟的设计与制作一、设计任务和基本要求 (1)二、原理分析与电路设计 (1)1、数字钟的构成 (1)2、数字钟的工作原理与电路设计 (1)1)振荡器 (1)2) 计数器 (2)3) 译码显示电路 (3)4) 校时电路 (3)5) 整点报时电路 (6)三、系统元器件的功能和作用 (6)1、74LS90芯片的功能和作用 (6)2、74LS47芯片 (6)3、半导体共阴极数码管 (6)四、整机电路设计 (6)五、系统调试 (6)总结与建议 (6)参考文献 (7)一、设计任务和基本要求:1、秒、分为00~59六十进制计数器。

2、时为00~23二十四进制计数器。

3、周显示从1~7为七进制计数器。

4、可手动校正,且具有整点报时功能。

5、用LED数码管作为显示器件。

总体方案:干电路系统由秒信号发生器、“星期、时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。

二、原理分析与电路设计:1、数字钟的构成数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。

由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路所示为数字钟的总体电路框图。

2、数字钟的工作原理与电路设计1)振荡器:用信号发生器产生1 Hz脉冲信号2)计数器:秒计数器和分计数器都采用两块74LS90接成60进制计数器,如图所示。

时计数器则采用两块74LS90接成24进制计数器,如图所示。

星期计数器采用一块74LS90芯片接成7进制计数器。

如图所示。

图74LS90接成60进制计数器图1.3 74LS90接成24进制计数器图1.4 74LS90接成7进制计数器秒脉冲信号经秒计数器累计,达到60时,向分计数器送出一个分脉冲信号。

分脉冲信号再经过分计数器累计,达到60时,向时计数器送出一个时脉冲信号。

时脉冲信号再经过时计数器累计,达到24时,向星期计数器送出一个星期脉冲信号,星期脉冲信号在经过星期计数器累计,达到7时进行复位归零。

数字电路课程设计 数字钟逻辑电路设计

数字电路课程设计 数字钟逻辑电路设计

数字电路课程设计数字钟逻辑电路设计
数字钟逻辑电路设计可以参考如下步骤:
1. 确定所需功能:数字钟通常需要显示当前时间、设置闹钟、调整时间等功能。

根据需求确定需要实现的功能。

2. 设计时钟计时电路:时钟计时电路可以使用时钟发生器和计时器组合实现。

时钟发生器用于产生稳定的时钟信号,计时器用于记录时间。

可以选择使用74系列的计数器和分频器来实现。

3. 设计时钟显示电路:时钟显示电路可以使用数码管显示时钟的小时与分钟。

可以使用BCD码->数码管译码器芯片来实现。

4. 设计闹钟功能电路:闹钟功能可以使用定时器和蜂鸣器组合实现。

定时器用于设置闹钟时间,蜂鸣器用于发出闹钟提醒声音。

5. 设计按钮控制电路:按钮控制电路可以使用触发器和门电路组合实现。

触发器用于存储按钮状态,门电路用于控制不同功能的触发。

6. 连接各个模块:根据设计的电路模块连接各个模块,确保信号的正确传递和相互配合。

7. 进行测试和调试:对设计的数字钟逻辑电路进行测试和调试,确保各个功能都可以正常工作。

注意:数字钟逻辑电路设计需要具备一定的数字电路知识和电路设计经验。

在实际设计过程中可能还需要考虑一些细节问题,如时钟信号的精度、电源电压稳定性等。

数字逻辑课程设计数字时钟课程设计数电课程设计 数字电子技术

数字逻辑课程设计数字时钟课程设计数电课程设计 数字电子技术

数字逻辑课程设计课题名称数字时钟班级姓名指导教师日期 2008-6-24前言自从它被发明的那天起,就成为人们生活中必不可少的一种工具,尤其是在现在这个讲究效率的年代,时钟更是在人类生产、生活、学习等多个领域得到广泛的应用。

然而随着时间的推移,人们不仅对于时钟精度的要求越来越高,而且对于时钟功能的要求也越来越多,时钟已不仅仅是一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。

诸如闹钟功能、日历显示功能、温度测量功能、湿度测量功能、电压测量功能、频率测量功能、过欠压报警功能等。

钟表的数字化给人们的生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。

诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。

可以说,设计多功能数字时钟的意义已不只在于数字时钟本身,更大的意义在于多功能数字时钟在许多实时控制系统中的应用。

在很多实际应用中,只要对数字时钟的程序和硬件电路加以一定的修改,便可以得到实时控制的实用系统,从而应用到实际工作与生产中去。

因此,研究数字时钟及扩大其应用,有着非常现实的意义。

数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路.目前,数字钟的功能越来越强,并且有多种专门的大规模集成电路可供选择.目录前言 (2)目录 (2)题目 (2)摘要 (2)关键字 (3)设计要求 (3)正文 (3)1电路结构与原理图 (3)2数码显示器 (3)60进制计数和24进制计数 (4)校时 (7)振荡器 (8)3.计算、仿真的过程和结果 (9)鸣谢 (11)元器件清单 (11)参考文献 (11)总结与体会 (11)教师评语 (12)数字时钟的课程设计摘要:数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

武汉纺织大学《数字逻辑》课程设计报告题目:院系:专业班级:学号:学生姓名:指导教师:年月日一、引言《数字逻辑》课程设计是配合本课程课堂和实验教学的一个实践性教学环节。

其目的是巩固所学知识,提高实验动手能力,加强综合应用能力,启发创新思维。

其任务是让学生通过动手动脑进行大中型数字逻辑电路的设计、仿真、调试,巩固和应用所学的理论和实验技能;掌握应用EDA开发工具设计大中型数字电路系统的设计流程、仿真、检测技术直至下载到FPGA物理器件进行实际物理测试的能力;提高设计能力和实验技能,为以后进行毕业设计、电子电路的综合设计、研制电子产品等打下基础。

二、系统介绍1.设计平台介绍1)本次《数字逻辑》课程设计使用Altera公司的PLD/FPGA开发软件QuartusⅡ11.0和机房SOPC EDA工具箱。

2)本课程设计使用EP3C80F484C8逻辑芯片,需用Quartus创建一个工程,完成工程中各部分设计后画出总电路图,经过编译后分配管脚,下载到芯片中,在试验箱上连接导线,实现设计。

2.知识点及技术难点分析1)本次课程设计涉及到的知识点主要有:VHDL硬件语言、八段段显示器(数码管)相关知识、时序电路设计、EDA软件及试验箱的使用等。

2)其中较难的是时序电路的设计及EDA软件的使用。

三、设计任务及设计原理1.设计任务此次课程设计课题为数字电子逻辑电路设计,需在试验箱上实现一个24小时制动态显示的数字时钟,具有小时,分钟和秒的显示,且具有整点报时效果(例如在10:59:00开始,每隔2秒发出一次声音,前四次低频率,最后进位时发出高频率声响。

)2.设计原理1)这次课题中需用VHDL硬件语言编出秒钟、分钟、24小时制时钟、8选1数据选择器、八进制计数器、译码器、控制器等7个器件的功能。

2)用控制器实现控制整点报时,快速调小时、分钟,清零秒钟,分频功能。

4HZ脉冲信号经过控制器分频得到1HZ脉冲,512HZ和1024HZ脉冲控制蜂鸣器发出低频率和高频率声音3)秒钟由控制器分频的1HZ频率脉冲控制4)分钟正常情况下由秒钟的进位输出作为脉冲信号控制,在快速调整时间时由4HZ脉冲控制5)时钟同分钟一样。

6)八选一数据选择器接收时钟、分钟、秒钟传来的信号,经过一个S端控制选择输出一个数据传给译码器,选择一个设备上的8段数码管输出所选择的数据。

7)八进制计数器循环产生一个数传送给数据选择器的地址端,用以选择数据。

8)译码器接收数据选择器输出的一个数据进行八段数码管的相应显示分配。

9)总电路图10)管脚分配图四、源代码1.控制器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity control isport ( clk4hz ,clk1024hz,clk500hz,set_h,set_m,clr_s: in std_logic;second_h : in std_logic_vector(3 downto 0);second_l : in std_logic_vector(3 downto 0);minute_h : in std_logic_vector(3 downto 0);minute_l : in std_logic_vector(3 downto 0);bee,clk1hz,set_hh,set_mm,clr_ss: out std_logic);end control;architecture aa of control issignal count : std_logic_vector(1 downto 0);beginclk_label:PROCESS (clk4hz)BEGINIF clk4hz'event and clk4hz='1' THENcount<=count+1;END IF;END PROCESS clk_label;clk1024_label:PROCESS (clk1024hz)BEGINIF clk1024hz'event and clk1024hz='1' THENset_hh<=set_h;set_mm<=set_m;clr_ss<=clr_s;END IF;END PROCESS clk1024_label;clk1hz<=count(1);bee<= clk500hzwhen minute_h & minute_l="01011001" and second_h ="0101" and second_L(0)='0' else clk1024hzwhen minute_h & minute_l & second_h & second_l="0000000000000000"else '0';end aa;2.秒钟library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity second isport ( clk1hz,clr_ss :in std_logic;co : out std_logic;second_h :out std_logic_vector (3 downto 0);second_l :out std_logic_vector (3 downto 0));end second ;architecture aa of second issignal out1,out2 :integer range 0 to 9;signal out3,out4 :std_logic_vector (3 downto 0);beginprocess(clk1hz)beginif clr_ss='1' thenout1<=0; out2<=0;elsif clk1hz'event and clk1hz='1' thenif (out2=5) and (out1=9) thenout1<=0;out2<=0;co<='1';elseout1<=out1+1;co<='0';if out1=9 and out2/=5 thenout1<=0;out2<=out2+1;co<='0';end if;end if;end if;out3<= conv_std_logic_vector(out1,4);out4<= conv_std_logic_vector(out2,4);second_h <=out4;second_l <=out3;end process;end aa;3.分钟library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity minute isport ( clkin,clk4hz,set_mm :in std_logic;co : out std_logic;minute_h :out std_logic_vector (3 downto 0);minute_l :out std_logic_vector (3 downto 0)); end minute ;architecture aa of minute issignal out1,out2 :integer range 0 to 9;signal out3,out4 :std_logic_vector (3 downto 0);signal clk,cay:std_logic;beginco<= cay when set_mm ='0' else '0';clk<=clkin when set_mm ='0' else clk4hz;process(clk)beginif clk'event and clk='1' thenif (out2=5) and (out1=9) thenout1<=0;out2<=0;cay<='1';elseout1<=out1+1;cay<='0';if out1=9 and out2/=5 thenout1<=0;out2<=out2+1;cay<='0';end if;end if;end if;out3<= conv_std_logic_vector(out1,4);out4<= conv_std_logic_vector(out2,4);minute_h<=out4;minute_l<=out3;end process;end aa;4.时钟library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity hour24 isport ( clkin, clk4hz ,set_hh:in std_logic;co : out std_logic;hour_h :out std_logic_vector (3 downto 0);hour_l :out std_logic_vector (3 downto 0)); end hour24 ;architecture aa of hour24 issignal out1,out2 :integer range 0 to 9;signal out3,out4 :std_logic_vector (3 downto 0); signal clk ,cay:std_logic;beginco<=cay when set_hh='0' else '0';clk<=clkin when set_hh='0' else clk4hz;process(clk)beginif clk'event and clk='1' thenif (out2=2) and (out1=3) thenout1<=0;out2<=0;cay<='1';elseout1<=out1+1;cay<='0';if out1=9 thenout1<=0;out2<=out2+1;end if;end if;end if;out3<= conv_std_logic_vector(out1,4);out4<= conv_std_logic_vector(out2,4);hour_h<=out4;hour_l<=out3;end process;end aa;5.8选1数据选择器ENTITY mux81a ISPORT ( data0,data1,data2,data3,data4,data5,data6,data7: IN BIT_vector(3 DOWNTO 0);s: IN BIT_vector(2 DOWNTO 0);seg : OUT BIT_vector(3 DOWNTO 0);sel:OUT BIT_vector(7 DOWNTO 0) );END ENTITY mux81a;ARCHITECTURE one OF mux81a ISBEGINseg <= data0 when s="000" ELSEdata1 when s="001" ELSEdata2 when s="010" ELSEdata3 when s="011" ELSEdata4 when s="100" ELSEdata5 when s="101" ELSEdata6 when s="110" ELSEdata7 when s="111" ELSE"0000";sel <= "01111111" when s="000" ELSE"10111111" when s="001" ELSE"11011111" when s="010" ELSE"11101111" when s="011" ELSE"11110111" when s="100" ELSE"11111011" when s="101" ELSE"11111111" when s="110" ELSE"11111111" when s="111" ELSE"11111111";END ARCHITECTURE one ;6.八进制计数器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity cnt8 isport ( clk :in std_logic;cout :BUFFER std_logic_vector (2 downto 0)); end cnt8 ;architecture aa of cnt8 isbeginprocess(clk)beginif clk'event and clk='1' thencout<=cout+1;end if;end process;end aa;7.译码器ENTITY disp_decode ISPORT ( data: IN bit_vector(3 downto 0);seg:out bit_vector(7 downto 0));END disp_decode;ARCHITECTURE behav OF disp_decode ISBEGINd:process(data)begincase data iswhen "0000" => seg <= "00111111";--0when "0001" => seg <= "00000110";--1when "0010" => seg <= "01011011";--2when "0011" => seg <= "01001111";--3when "0100" => seg <= "01100110";--4when "0101" => seg <= "01101101";--5when "0110" => seg <= "01111101";--6when "0111" => seg <= "00000111";--7when "1000" => seg <= "01111111";--8when "1001" => seg <= "01101111";--9when "1010" => seg <= "10001000";--awhen "1011" => seg <= "10000011";--bwhen "1100" => seg <= "10100110";--cwhen "1101" => seg <= "10100001";--dwhen "1110" => seg <= "10000110";--ewhen "1111" => seg <= "10001110";--fend case;end process;END behav;五、程序调试心得体会1.系统仿真及调试情况1)在机房用工具箱调试时,遇到的第一个问题是显示错误,不能通过编译。

相关文档
最新文档