LED数码显示时钟实验

上传人:飞****9 文档编号:143967911 上传时间:2020-09-04 格式:DOC 页数:8 大小:180.50KB
返回 下载 相关 举报
LED数码显示时钟实验_第1页
第1页 / 共8页
LED数码显示时钟实验_第2页
第2页 / 共8页
LED数码显示时钟实验_第3页
第3页 / 共8页
LED数码显示时钟实验_第4页
第4页 / 共8页
LED数码显示时钟实验_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《LED数码显示时钟实验》由会员分享,可在线阅读,更多相关《LED数码显示时钟实验(8页珍藏版)》请在金锄头文库上搜索。

1、LED数码显示时钟实验一、实验目的 :1、地运用数字系统的设计方法进行数字系统设计。2、能进行较复杂的数字系统设计。 3、数字钟的工作原理, 数字钟的工作流程图与原理方框图, 自顶向下的数字系统设计方法。二、实验原理:1、数字钟的基本工作原理: 调时、调分控制电路位选信号发生电路控制逻辑电路计数器 电路时基T产生电路1Hz晶振分频整形门控双稳脉冲计数译码显示数字钟以其显示时间的直观性、走时准确性而受到了人们的欢迎并很快走进了千 家万户。作为一种计时工具,数字钟的基本组成部分离不开计数器,在控制逻辑电路的控制下完成预定的各项功能。数字钟的基本原理方框图如下:(1)时基T 产生电路:由晶振产生的频

2、率非常稳定的脉冲,经整形、稳定电路后,产生一个频率为 1Hz的、非常稳定的计数时钟脉冲。 (2)控制逻辑电路:产生调时、调分信号及位选信号。 调时、调分信号的产生:由计数器的计数过程可知,正常计数时,当秒计数器( 60进制)计数到59 时,再来一个脉冲,则秒计数器清零,重新开始新一轮的计数,而进位则作为分计数器的计数脉冲,使分计数器计数加1。现在我们把电路稍做变动:把秒计数器的进位脉冲和一个频率为2Hz的脉冲信号同时接到一个2选1数据选择器的两个数据输入端,而位选信号则接一个脉冲按键开关,当按键开关不按下去时(即为0),则数据选择器将秒计数器的进位脉冲送到分计数器,此时,数字钟正常工作;当按键

3、开关按下去时(即为1),则数据选择器将另外一个2Hz 的信号作为分计数器的计数脉冲,使其计数频率加快,当达到正确时间时,松开按键开关,从而达到调时的目的。调节小时的时间也一样的实现。 (3)计数显示电路:由计数部分、数据选择器、译码器组成,是时钟的关键部分。 计数部分: 由两个 60进制计数器和一个24 进制计数器组成,其中60 进制计数器可用6 进制计数器和10 进制计数器构成;24 进制的小时计数同样可用6 进制计数器和10 进制计数器得到:当计数器计数到24 时,“2”和“4”同时进行清零,则可实现24 进制计数。 数据选择器:84输入14输出的多路数据选择器,因为本实验用到了8个数码管

4、(有两个用来产生隔离符号)。 译码器:七段译码器。译码器必须能译出,由实验二中译码器真值表可得:字母 F 的8421BCD 码为“1111”,译码后为“1000111”,现在如果只译出,即字母F的中间一横,则译码后应为“0000001”,这样,在数码管上显示的就为。2、自顶向下设计分割图: 数 字 钟计数显示电路控制逻辑电路2选1数据选择器位选信号发生器计数器译码器数据选择器说明:按一下按键key0,完成复位功能,clk5选择1Hz的时钟,clk3选择的时钟频率尽量高。三、实验连线:1、将1K30适配板左下角的JTAG用十芯排线和万用下载区左下角的SOPC JTAG口连接起来,万用下载区右下角

5、的电源开关拨到 SOPC下载的一边。2、请将JPLED1短路帽右插,JPLED的短路帽全部上插,实验板右下方频率源 CLK1接任意频率作为扫描频率。3、将实验板左端的JP103全部用短路帽接上(共八个)。四、实验内容与步骤:(程序:1K30timertimer.sof)1、打开Quartus II 6.0软件,点击“FileOpenProject”出现如下的对话框(图10.1),选中timer,点打开即可; 图10.12、点击“Tools-Programmer”后出现如下的对话窗口, 3、在点”EditAdd File”出现如下对话框(图10.2),在图10.3对话框中,选中1K30/time

6、r/timer.sof项目后点击打开回到Programmer对话框, 在下载对话窗口中“选中Program/ Configure”,点击“Start”即进行下载。 图10.2 图10.3现将timer.vhd原程序作如下说明:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY TIMER IS PORT( CLK5:IN STD_LOGIC; CLK3:IN STD_LO

7、GIC; RST1:IN STD_LOGIC; SEG_SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); SEG_DA :OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END TIMER;ARCHITECTURE ADO OF TIMER ISCOMPONENT CNT10 PORT(CLK:IN STD_LOGIC; RST:IN STD_LOGIC; CIN:IN STD_LOGIC; CNT_VAL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT :OUT STD_LOGIC ); END COMPONENT

8、;COMPONENT CNT6 PORT(CLK :IN STD_LOGIC; RST :IN STD_LOGIC; CIN :IN STD_LOGIC; CNT_VAL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT STD_LOGIC ); END COMPONENT;COMPONENT CNT2 PORT(CLK: IN STD_LOGIC; RST: IN STD_LOGIC; CIN: IN STD_LOGIC; CNT_VAL:INOUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT :OUT STD_LOGIC );

9、END COMPONENT;COMPONENT CNT4 PORT (CLK:IN STD_LOGIC; RST:IN STD_LOGIC; CIN:IN STD_LOGIC; CNT_VAL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT STD_LOGIC ); END COMPONENT;SIGNAL SEG_BUF1,SEG_BUF2,SEG_BUF3,SEG_BUF4:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL SEG_BUF5,SEG_BUF6,SEG_BUF7,SEG_BUF8:STD_LOGIC_VECTOR(3

10、 DOWNTO 0); SIGNAL SEG_CNT :STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL SEG_TEMP:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL COUT:STD_LOGIC_VECTOR(5 DOWNTO 0); SIGNAL CLK:STD_LOGIC; BEGIN PROCESS (CLK3) BEGIN IF CLK3EVENT AND CLK3=1 THEN CLK=NOT CLK ; END IF; END PROCESS; PROCESS (CLK, RST1) BEGIN IF CLKEVENT AND C

11、LK=1 THEN IF RST1=1 THEN SEG_CNT=000; ELSE SEG_CNT=SEG_CNT+1; END IF; END IF; END PROCESS; SEG_SEL=SEG_CNT; SEG_BUF3=1111; SEG_BUF6 SEG_TEMP SEG_TEMP SEG_TEMP SEG_TEMP SEG_TEMP SEG_TEMP SEG_TEMP SEG_TEMP NULL; END CASE; END PROCESS; PROCESS (SEG_TEMP) BEGIN CASE SEG_TEMP IS WHEN 0000 = SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA=x07;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号