LED数码显示时钟实验_第1页
LED数码显示时钟实验_第2页
LED数码显示时钟实验_第3页
LED数码显示时钟实验_第4页
LED数码显示时钟实验_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

12、 SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DA SEG_DACLK5,RST=RST1,CNT_VAL=SEG_BUF1,COUT=COUT(0),CIN=1); U2 : CNT6 PORT MAP (CLK=CLK5,RST=RST1,CNT_VAL=SEG_BUF2,COUT=COUT(1),CIN=COUT(0); U3 : CNT10 PORT MAP (CLK=CLK5,RST=RST1,CNT_VAL=SEG_BUF4,COUT=COUT(2),

13、CIN=COUT(1); U4 : CNT6 PORT MAP (CLK=CLK5,RST=RST1,CNT_VAL=SEG_BUF5,COUT=COUT(3),CIN=COUT(2); U5 : CNT4 PORT MAP (CLK=CLK5,RST=RST1,CNT_VAL=SEG_BUF7,COUT=COUT(4),CIN=COUT(3); U6 : CNT2 PORT MAP (CLK=CLK5,RST=RST1,CNT_VAL=SEG_BUF8,COUT=COUT(5),CIN=COUT(4); END ADO;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164

14、.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY CNT10 IS 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 CNT10;ARCHITECTURE BEHAVE OF CNT10 ISSIGNAL CNT_T:STD_LOGIC

15、_VECTOR(3 DOWNTO 0); BEGIN PROCESS(CLK) BEGIN IF RST=1 THEN CNT_T=0000; ELSIF CLKEVENT AND CLK=1 THEN IF CIN=1 THEN IF CNT_T/= 9 THEN CNT_T=CNT_T+1; ELSE CNT_T=0000; END IF; END IF; ELSE CNT_T=CNT_T; END IF; END PROCESS; COUT=1 WHEN CNT_T=9 AND CIN=1 ELSE 0 ; CNT_VAL=CNT_T; END BEHAVE;LIBRARY IEEE;U

16、SE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY cnt6 IS 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 CNT6;ARCHITECTURE ADO2 OF CNT6 ISSIGNA

17、L CNT_T :STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL COUTD :STD_LOGIC; BEGIN PROCESS (CLK,RST) BEGIN IF RST=1 THEN CNT_T=0000; ELSIF CLKEVENT AND CLK=1 THEN IF CIN=1 THEN IF CNT_T 5 THEN CNT_T=CNT_T+1; ELSE CNT_T=x0; END IF; END IF; ELSE CNT_T=CNT_T; END IF; END PROCESS; COUT=1 WHEN CNT_T=5 AND CIN=1 ELSE 0

18、; CNT_VAL=CNT_T; END ADO2; 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 CNT2 IS 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 ); E

19、ND CNT2;ARCHITECTURE ADO3 OF CNT2 ISSIGNAL CNT_T:STD_LOGIC_VECTOR (3 DOWNTO 0); BEGIN PROCESS(CLK,RST) BEGIN IF RST=1 THEN CNT_T=0000; ELSIF CLKEVENT AND CLK=1 THEN IF CIN=1 THEN IF CNT_T1 THEN CNT_T=CNT_T+1; ELSE CNT_T=0000; END IF; END IF; ELSE CNT_T=CNT_T; END IF; END PROCESS; COUT=1 WHEN CNT_T=1

20、 AND CIN=1 ELSE 0; CNT_VAL=CNT_T; END ADO3;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 CNT4 IS PORT(CLK :IN STD_LOGIC; RST:IN STD_LOGIC; CIN:IN STD_LOGIC; CNT_VAL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:OUT

21、 STD_LOGIC );END CNT4;ARCHITECTURE BEHAVE OF CNT4 IS SIGNAL CNT_T:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(CLK,RST) BEGIN IF RST=1 THEN CNT_T=0000; ELSIF CLKEVENT AND CLK=1 THEN IF CIN=1 THEN IF CNT_T3 THEN CNT_T=CNT_T+1; ELSE CNT_T=0000; END IF; END IF; ELSE CNT_T=CNT_T; END IF; END PROCESS; CNT_VAL=CNT_T; COUT=1 WHEN CNT_T=3 AND CIN=1 ELSE 0; END BEHAVE;引脚分配(ACEX EP1K30T144-3):管脚标号seg_d0到seg_d 6分别接到LED的8位段码中的7位上(由于实验中不需要在LED上显示“.”,因此8位段码中显示“.”的数据没有接入,其默认为低电平,有兴趣的同学可以自己修改一下程序,其管脚分配如附录三所示);sel0到sel2接到实验箱中74ls138的输入端;clk为LED显示时钟输入,接到频率源clk1。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论