文档库 最新最全的文档下载
当前位置:文档库 › VHDL电子钟实验报告

VHDL电子钟实验报告

VHDL电子钟实验报告
VHDL电子钟实验报告

期末大作业课程设计实验报告设计题目:基于VHDL电子钟的设计

目录

一、概述 (3)

1.1目的 (3)

1.2课程设计的要求和功能 (3)

二、总结 (3)

2.1课程设计进行过程及步骤 (3)

2.2所遇到的问题,如何解决问题 (15)

2.3体会收获以及建议 (15)

3.4参考资料(书,网络资料) (15)

三、教师评语 (16)

四、成绩 (16)

一、概述

1.1目的

1. 基于CPLD系统模块板,设计一个电子钟。来熟悉CPLD的工作原理以及

对VHDL的使用。

2. 通过设计出一个电子钟具有校时功能,来巩固分频,键盘扫描,计数,动

态扫描等知识内容。

1.2课程设计的要求和功能

设计一个电子钟,能进行正常的时分秒计时功能,分别有六个数码管显示24小时,60分钟,60秒的计数器显示。

利用实验箱系统上的按键实现“校时”、“校分”功能:

(1)按下“SA”键时,计时器快速递增,按24小时循环,进行时校正;

(2)按下“SB”键时,计分器快速递增,按60分循环,进行分校正

(3)按下“SC”键时,秒清零,进行秒校正;

二、总结

2.1课程设计进行及步骤

1.设计提示

系统框图见下

2.系统结构设计描述(1)系统顶层文件

1.顶层原理图见下

2.各个模块的解释

(1)五个输入量clk50MHz,SA,SB,SC,reset:

其中clk50MHz为总体系统提供时钟,并且经过分频来分别对电子

钟模块提供时钟,产生一秒一秒的进位信号,对显示模块的计数器

提供时钟实现显示模块的扫描功能,对按键去抖动提供时钟,实现

键盘扫描的功能。SA,SB,SC用来控制按键,实现按键控制,SA是

实现“时”加一,SB是实现“分”加一,SC是实现“秒”清零。

Reset是来控制按键功能的使能。

(2)按键功能模块

三个输入chos ,date0,date1的功能是:chos接受来自按键的信号,

若按键按下,则将date0的内容,也就是通过按键产生的脉冲来控

制电子钟进行加一,若按键没有按下,则将“秒”分频信号接入电

子钟的clk计数输入端,通过时钟脉冲来控制电子钟。

(3)电子钟计数模块

有5个输入ci,nreset,load,clk,d[7..0],作用分别是ci是使能端,直

接接高电位,nreset是复位,load和d[7..0]是用来置数的,clk提供

计数时钟,也就是一秒一个脉冲。

输出端有三个,co是进位功能,只有“秒”和“分”模块有效,

qh[3..0],ql[3..0]是分位的数字输出端,一个是十位,一个是个位。

(4)显示模块

输入端有qcnt接受来自计数器的计数实现显示扫描,

d0h,d1h,d0m,d1m,d0s,d1s分别是接收的来自“秒”“分”“时”个位

十位的数据,seg输出LCD的段扫描结果,SCAN输出LCD位扫

描结果。

(2)系统各个模块的VHDL程序

1.显示模块

Library ieee;

Use ieee.std_logic_1164.all;

Use ieee.std_logic_unsigned.all;

Use ieee.std_logic_arith.all;

entity display is

port(

qcnt: IN integer range 0 to 7; --计数值输入

d0h,d1h,d0m,d1m,d0s,d1s : IN integer range 0 to 9;

--分位得到的十位数和个位数

seg: OUT std_logic_vector(6 downto 0); --7位段码输出

scan: OUT std_logic_vector(7 downto 0) --8为位码输出);

end display;

architecture a of display is

signal data: integer range 0 to 10;

begin

process(qcnt,d0h,d1h,d0m,d1m,d0s,d1s)

begin

case qcnt is

when 0 => scan <= "11111110"; data <= d0h;

when 1 => scan <= "11111101"; data <= d1h;

when 2 => scan <= "11111011"; data<= 10;

when 3 => scan <= "11110111"; data <= d0m;

when 4 => scan <= "11101111"; data <= d1m;

when 5 => scan <= "11011111"; data<= 10;

when 6 => scan <= "10111111"; data <= d0s;

when others => scan <= "01111111"; data <= d1s;

end case;

end process;

process(data)

begin

case data is

when 0 => seg <= "0111111"; --0

when 1 => seg <= "0000110"; --1

when 2 => seg <= "1011011"; --2

when 3 => seg <= "1001111"; --3

when 4 => seg <= "1100110"; --4

when 5 => seg <= "1101101"; --5

when 6 => seg <= "1111101"; --6

when 7 => seg <= "0000111"; --7

when 8 => seg <= "1111111"; --8

when 9 => seg <= "1100111"; --9

when 10 => seg <="1000000"; --

when others => seg <= "0000000";

end case;

end process;

end a;

动态显示计数器部分:

LIBRARY ieee;

USE ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

-- Entity Declaration

ENTITY qcnt_display IS

-- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!

PORT

(

clk : IN STD_LOGIC;

qcnt : buffer STD_LOGIC_VECTOR(2 downto 0) );

-- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE!

END qcnt_display ;

-- Architecture Body

ARCHITECTURE cnt_architecture OF qcnt_display IS BEGIN

PROCESS (clk)

BEGIN

IF (clk'EVENT AND clk = '1') THEN

qcnt <= qcnt+1;

END IF;

END PROCESS;

END cnt_architecture;

2. 分位计数模块

“秒”,“分”部分:

LIBRARY ieee;

USE ieee.std_logic_1164.all;

USE ieee.std_logic_unsigned.all;

-- Entity Declaration

ENTITY counter60 IS

-- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!

PORT

(

ci: in std_logic;

nreset : IN STD_LOGIC:='1';

load: IN STD_LOGIC;

clk : IN STD_LOGIC;

d :in std_logic_vector(7 downto 0);

co: out std_logic;

qh: buffer std_logic_vector(3 downto 0);

ql : buffer std_logic_vector(3 downto 0)

);

-- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE! END counter60;

-- Architecture Body

ARCHITECTURE counter_architecture OF counter60 IS

BEGIN

co<='1' when ( qh ="0101" and ql ="1001" and ci ='1') else '0'; process (clk,nreset)

begin

if (nreset='0') then

qh <="0000";

ql <="0000";

elsif rising_edge(clk) then

if (load ='1') then

qh<= d(7 downto 4);

ql<= d(3 downto 0);

elsif(ci='1') then

if(ql=9) then

ql<="0000";

if(qh=5) then

qh<="0000";

else

qh<=qh+1;

end if;

else

ql<=ql+1;

end if;

end if;

end if;

end process;

END counter_architecture;

“时”部分:

LIBRARY ieee;

USE ieee.std_logic_1164.all;

USE ieee.std_logic_unsigned.all;

-- Entity Declaration

ENTITY counter24 IS

-- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!

PORT

(

ci: in std_logic;

nreset : IN STD_LOGIC:='1';

load: IN STD_LOGIC;

clk : IN STD_LOGIC;

d :in std_logic_vector(7 downto 0);

co: out std_logic:='0';

qh: buffer std_logic_vector(3 downto 0);

ql : buffer std_logic_vector(3 downto 0)

);

-- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE! END counter24;

-- Architecture Body

ARCHITECTURE counter_architecture OF counter24 IS BEGIN

--co<='1' when ( qh ="0010" and ql ="0011" and ci ='1') else '0'; process (clk,nreset)

begin

--if (nreset='0') then

--qh <="0000";

-- ql <="0000";

if rising_edge(clk) then

if (load ='1') then

qh<= d(7 downto 4);

ql<= d(3 downto 0);

elsif(ci='1') then

if(qh=0 or qh=1) then

if(ql=9) then

ql<="0000";

if(qh=2) then

qh<="0000";

else

qh<=qh+1;

end if;

else

ql<=ql+1;

end if;

else

if(ql=3) then

ql<="0000";

if(qh=2) then

qh<="0000";

else

qh<=qh+1;

end if;

else

ql<=ql+1;

end if;

end if;

end if;

end if;

end process;

END counter_archit ecture;

3. 分频模块

Library ieee;

Use ieee.std_logic_1164.all;

Use ieee.std_logic_unsigned.all;

Use ieee.std_logic_arith.all;

Entity fdiv_duo is

port(

clkin: IN std_logic;

clkout_200HZ: buffer std_logic;--键盘去抖动

clkout_1KHZ : buffer std_logic;--显示模块计数器 clkout_10HZ : buffer std_logic;--按键选择

clkout_1HZ : buffer std_logic --计数器模块

);

End fdiv_duo;

Architecture a of fdiv_duo is

signal cnt_1HZ : natural range 0 to 24999999 ;

signal cnt_10HZ : natural range 0 to 249999999;

signal cnt_1KHZ : natural range 0 to 24999;

signal cnt_200HZ : natural range 0 to 124999;

Begin

process(clkin)

begin

if(clkin'event and clkin='1') then

if cnt_1HZ=24999999 then

cnt_1HZ<= 0;

clkout_1HZ<= not clkout_1HZ;

else

cnt_1HZ<= cnt_1HZ + 1;

end if;

if cnt_10HZ=249999999 then

cnt_10HZ <= 0;

clkout_10HZ <= not clkout_10HZ;

else

cnt_10HZ <= cnt_10HZ + 1;

end if;

if cnt_1KHZ=24999 then

cnt_1KHZ<= 0;

clkout_1KHZ <=not clkout_1KHZ;

else

cnt_1KHZ <=cnt_1KHZ + 1;

end if;

if cnt_200HZ=124999 then

cnt_200HZ <= 0;

clkout_200HZ<= not clkout_200HZ; else

cnt_200HZ <= cnt_200HZ + 1;

end if;

end if;

end process;

End a;

4. 键盘控制模块

时钟和分钟的键盘去抖动和“增益”,“清零”控制部分:Library ieee;

Use ieee.std_logic_1164.all;

Use ieee.std_logic_unsigned.all;

Use ieee.std_logic_arith.all;

Entity debounce is

port(

clk200hz ,reset : IN std_logic; --200HZ时钟

din : IN std_logic;

dout : OUT std_logic);

End debounce;

architecture a of debounce is

type state is (S0, S1, S2);--定义状态机类型

signal current : state;

begin

process (clk200hz,reset,din)

begin

if(reset='1') then --状态机复位dout输出信号复位current<=S0;

dout<='1';

elsif(clk200hz'event and clk200hz='1') then

case current is

when S0=>

dout<='1';

if(din='0') then

current<=S1;

else

current<=S0;

end if;

when S1=>

dout<='1';

if(din='0')then

current<=S2;

else

current<=S0;

end if;

when S2=>

dout<='0';

if(din='0') then

current<=S2;

else

current<=S0;

end if;

when others=>

dout<='1';

current<=S0;

end case;

end if;

end process;

end a;

作用解释:当检测到按键被按下时,将按键的输出直接给计数模块的时钟控制通过按键控制计数时钟从而实现“增益”功能,如果没有检测到有效按键,“时”和“分”计数模块就受进位信号的控制。

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity choose is

port

(chos: in std_logic;

date0,date1:in std_logic;

dout:out std_logic);

end choose;

architecture behave of choose is

begin

with chos select

dout <=date0 when '0',

date1 when others;

end behave;

“清零”功能的实现利用按键信号去控制“秒”模块的“复位”。(3)实验效果图

22-01-27时按下秒钟清零

继续按分钟增益按钮,使分钟从1加到9

然后按时钟增益,使时钟从22加到下一轮的9时

2.2所遇到的问题,如何解决问题

(1)在分频时,如果键盘去抖动频率设计不合适会造成按键不灵敏,如果显示部分频率设置不好也会造成显示时音频率过快数字不清楚。

解决办法:虽然实现分频的程序很多,但是有些程序的分频效果并不是很好,我这里用的是偶数分频器的第二种方法(取反或加一

(2)在设计时分秒的模模块时,因为我采用的是BCD计数器,所以在实现“分秒”的60进位比较容易,但是在实现“24小时”要注意,不然很容易出现时位为“1,2,3,11,12,13”的变化。

解决办法:

设计一个进位清零判断,是个位到了9需要清零还是到了3需要清零,取决于十位0和1还是2.

2.3体会收获以及建议

通过设计电子钟,重温了动态显示的设计、模计数器的设计以及按键去抖动设计,这里面主要的部分在于对电子钟按键控制,通过设计一个模块来判断按键是否有效后利用进位变量去触发计数器实现增益功能,或者利用判断按键是否有效将模计数器结果清零来实现置零功能。

在设计中,有很多细节问题会决定实验效果,所以一定要认真,多思考,并且要善于和同学交流讨论,可能自己在设计时会遇到盲区,需要别的同学的指点,

比如我在设计按键功能判断时就向夏良飞同学请教了他的设计思路,然后再根据

自己的理解设计出来选择器来实现按键控制功能。

3.4参考资料(书,网络资料)《现在电子系统设计》

三、教师评语

四、成绩

数字电子时钟实验报告材料

华大计科学院 数字逻辑课程设计说明书 题目:多功能数字钟 专业:计算机科学与技术 班级:网络工程1班 姓名:刘群 学号: 1125111023 完成日期:2013-9

一、设计题目与要求 设计题目:多功能数字钟 设计要求: 1.准确计时,以数字形式显示时、分、秒的时间。 2.小时的计时可以为“12翻1”或“23翻0”的形式。 3.可以进行时、分、秒时间的校正。 二、设计原理及其框图 1.数字钟的构成 数字钟实际上是一个对标准频率 1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路。图 1 所示为数字钟的一般构成框图。 图1 数字电子时钟方案框图

⑴多谐振荡器电路 多谐振荡器电路给数字钟提供一个频率1Hz 的信号,可保证数字钟的走时准确及稳定。 ⑵时间计数器电路 时间计数电路由秒个位和秒十位计数器、分个位和分十位计数器及时个位和时十位计数器电路构成。其中秒个位和秒十位计数器、分个位和分十位计数器为60 进制计数器。而根据设计要求,时个位和时十位计数器为24 进制计数器。 ⑶译码驱动电路 译码驱动电路将计数器输出的8421BCD 码转换为数码管需要的逻辑状态,并且为保证数码管正常工作提供足够的工作电流。 ⑷数码管 数码管通常有发光二极管(LED)数码管和液晶(LCD)数码管。本设计提供的为LED数码管。 2.数字钟的工作原理 ⑴多谐振荡器电路 555 定时器与电阻R1、R2,电容C1、C2 构成一个多谐振荡器,利用电容的充放电来调节输出V0,产生矩形脉冲波作为时钟信号,因为是数字钟,所以应选择的电阻电容值使频率为1HZ。 ⑵时间计数单元 六片74LS90 芯片构成计数电路,按时间进制从右到左构成从低位向高位的进位电路,并通过译码显示。在六位LED 七段显示起上显示

VHDL实验报告

《创新实验》实验报告 —基于VHDL的编程和硬件实现

一、实验目的 1.熟悉和掌握硬件描述语言VHDL的基本语法及编写; 2.掌握软件Xilinx ISE 10.1的使用; 3.熟悉SDZ-6电子技术实验箱的使用; 4.了解节拍脉冲发生器等基本电路的实现; 5.了解八位二进制计数器的功能与设计; 6.学习键盘和七段数码管显示的控制和设计。 二、实验内容 1.Xilinx ISE 10.1软件的使用; 2.节拍脉冲发生器等基本电路的实现; 3.八位二进制计数器的实现 4.键盘扫描及显示的实现 三、实验器材 1、PC机 2、SDZ-6电子技术实验箱 3、正负5V电源 4、I/O接口线 四、软件的使用 在安装Xilinx10.1软件时,需要一个ID号,其实这个ID号是可以重复使用的,几个同学在官网注册后就可以共享ID号了。 安装完成之后就可以使用这个软件编写相应的VHDL的程序。 1.新建工程 File—>New Project 弹出下面的对话框 输入工程名后单击Next。然后根据本实验的实验箱进行以下设置。

以后的步骤一般都是单击Next(有些资料上会介绍有些这些步骤的具体功能,但对于本实验不必用到),最后单击Finish,完成新建一个工程。在窗口的左边会出现刚刚新建的工程,如下: 2.新建一个VHDL的源文件。 在上图中,右击工程选择New Source ,弹出如下对话框。

在对画框的左边选择VHDL Module,输入文件的名字(改名字最好是你定义的实体的名字)。单击Next。出现下面的对话框。 该对话框主要是对外部端口的编辑。可以直接跳过,即单击Next,在源文件上编辑端口。然后在接下来的对话框中单击Finish。完成建立一个源文件。窗口右边就会出现刚才编辑的源文件。 3.编写和编译代码 将事先编好的代码复制到源文件里,然后保存文件。 选中左边的文件名,在窗体的左边出现如下编辑文档内容。

数字钟课程设计实验报告

《电子技术课程设计报告》 教学院:电气与电子信息工程学院 专业班级:xx级电子信息工程(x)班 学号:xxxxxxxxxxxx 学生:坏水 指导教师:xxxxxxxxxxxx 时间:2011.10.10~10.23 地点:电子技术实验室

课程设计成绩评定表

电子技术课程设计任务书 2011~2012学年第一学期 学生:坏水专业班级:xx电信本x班 指导教师:xxxxxxxxx 工作部门:电气与电子信息工程学院 一、课程设计题目:多功能数字钟电路的设计/直流稳压电源的设计 二、课程设计容(含技术指标): ①拟定多功能数字钟和直流稳压电源的组成框图,要现电路的基本功能,使用 的器件少,成本低; ②画出数字钟和直流稳压电源的主体电路逻辑图; ③测试多功能数字钟的逻辑功能,同时满足基本功能与扩展功能的要求; ④设计并安装各单元电路,要求布线整齐、美观,便于级联与调试;

四、基本要求 1.基本功能:要求设计出+5V的直流稳压电源。数字钟要求以数字形式显示时、分、秒的时间。小时计数器的计时要求为“12翻1”,要求具有手动校时功能。 2.扩展功能:定时控制,其时间自定;仿广播电台正点报时,自动报整点时数或触摸报整点时数(主要体现在理论知识上进行电路设计)。 (一)实训题目:直流稳压电源和多功能数字钟。 (二)实训目的: 1、巩固和加深学生对模拟电子技术,数字逻辑电路等课程基本知识的理解,综 合运用课程中所学到的理论知识去独立完成一个实际课题。 2、根据课程需要,通过查阅手册和文献资料,培养学生独立分析和解决实际问 题的能力。 3、通过电路方案的分析、论证和比较,设计计算和选用元气件,通过电路组装, 调试和检测环节,掌握电路的分析方法和设计方法。 4、熟用常用电子元气件的类型和特性,并掌握合理选用原则。 5、掌握电路图、PCB图的设计方法,学会电路的安装与调试。 6、掌握常用仪器、仪表的正确使用方法,学会电路整机指标的测试方法。(三)实训要求

数字电子钟实验报告

咸阳师范学院物理与电子工程学院 课程设计报告 题目: 班级: 姓名: 学号: 指导教师: 成绩: 完成日期:年月

目录 第一章概述 3 第二章数字电子钟的电路原理 4 第三章电路调试与制作11 第四章总结与体会12 第五章附录13

第一章概述 数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,运运超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。 虽然市场上已有现成的数字集成电路芯片出售,价格便宜,使用方便,这里所制作的数字电子可以随意设置时,分的输出,是数字电子中具有体积小、耗电省、计时准确、性能稳定、维护方便等优点。 课程设计目的 (1)加强对电子制作的认识,充分掌握和理解设计个部分的工作原理、设计过程、选择芯片器件、电路的焊接与调试等多项知识。 (2)把理论知识与实践相结合,充分发挥个人与团队协作能力,并在实践中锻炼。 (3)提高利用已学知识分析和解决问题的能力。 (4)提高实践动手能力。

第二章数字电子钟的电路原理 数字电子钟的设计与制作主要包括:数码显示电路、计数器与校时电路、时基电路和闹铃报时电路四个部分。 1.数码显示电路 译码和数码显示电路是将数字钟的计时状态直观清晰地反映出来。显示器件选用FTTL-655SB双阴极显示屏组。在计数电路输出信号的驱动下,显示出清晰的数字符号。 2.计数器电路 LM8560是一种大规模时钟集成电路它与双阴极显示屏组可以制成数字钟钟控电路。 3.校时电路 数字钟电路由于秒信号的精确性和稳定性不可能做到完全准确无误,时基电路的误差会累积;又因外部环境对电路的影响,设计产品会产生走时误差的现象。所以,电路中就应该有校准时间功能的电路。通过手动调节按键,达到校准的目的。 4.定时报警电路 当调好定时间后并按下开关K1(白色键),显示屏右下方有红点指示,到定时时间有驱动信号经R3使VT1工作,即可定时报警输出。 芯片资料 LM8560是一种大规模时钟集成电路它与双阴极显示屏组可以制成数字钟钟控电路。作为时钟,它准确醒目;作为控制开关,它动作无误;在1小时59分钟或59分钟内,能任意暂停,使用十分方便。 仔细观察从0-9的每个数字并比较图1所示的笔段。内部电路参看图2, LM8560各脚功能,参看图3。

VHDL实验报告03137

VHDL实验报告 60 庄炜旭实验三. 4位可逆计数器,4位可逆二进制代码-格雷码转换器设计 一.实验目的 学习时序电路的设计,仿真和硬件测试,进一步熟悉VHDL设计技术 1. 学习4位可逆计数器的设计 2. 学习4位可逆二进制代码-格雷码转换器设计 二.实验内容 设计4位可逆计数器,及4位可逆二进制代码-格雷码转换器,并仿真,下载。 [具体要求] 1.4位可逆计数器 a)使用CLOCK_50作为输入时钟,其频率为50MHz(对于频率大于50Hz的闪烁, 人眼会看到连续的光),因而,对其进行225的分频后,再用于时钟控制。(可 利用实验一) b)使用拨码开关SW17作为模式控制,置‘1’时为加法计数器,置‘0’时为减 法计数器,同时使用LEDR17显示SW17的值。 c)使用KEY3作为异步复位开关(按下时为0,不按为1),当为加法计数器时, 置“0000”,当为减法计数器时,置“1111”。 d)使用LEDR3,LEDR2,LEDR1,LEDR0作为转换后的输出结果显示,LEDR3为高 位,LEDR0为低位。 2.4位可逆二进制代码――格雷码转换器 a)使用拨码开关SW17作为模式控制,置‘1’时为二进制代码―>格雷码转换, 置‘0’时为格雷码―>二进制代码,同时使用LEDR17显示SW17的值。 b)使用拨码开关SW3, SW2, SW1, SW0作为输入的被转换数,SW3为高位,SW0 为低位。 c)使用LEDR3,LEDR2,LEDR1,LEDR0作为转换后的输出结果显示,LEDR3为高 位,LEDR0为低位。 三.管脚设定 SW[0]PIN_N25 SW[1]PIN_N26 SW[2]PIN_P25 SW[3] PIN_AE14 SW[17] PIN_V2 LEDR[0] PIN_AE23 LEDR[1] PIN_AF23 LEDR[2] PIN_AB21 LEDR[3] PIN_AC22 LEDR[17] PIN_AD12 KEY[3] PIN_W26

Verilog数字钟数电实验报告

专业:电子信息工程班级:电信1305班日期:2015.5.5 第3次实验 姓名:康健组别: 6 指导教师:成绩: 实验课题:EDA多功能数字钟 1、已知条件 Quartus II软件、FPGA实验开发装置。 2、主要技术指标 以数字形式显示时、分、秒的时间;小时计数器为同步24进制;要求手动校时、校分。 3、实验用仪器 PC、FPGA开发板、示波器、稳压电源等 4、电路工作原理 所谓的时钟,其实本质上就是计数器。以开发板上的晶振时钟作为时间基准。 然后通过分频模块(计数器)进行分频,得到1Hz的脉冲信号作为秒的信号脉冲,然后用模60的计数器构成秒的计数单元。每记60下就自动清零且产生进位信号。将这个进位信号作为分的计数器的使能信号,其中,分计数器也是模为60的计数器。这里的计数器都是由模10和模6 组成的BCD码的计数器。个位和十位分别是一个四位的数字。同理,每记满60,分计数器就会产生一个进位信号,这个进位信号作为小时的使能信号。小时的计数器就是模24的BCD计数器。注意,这里的整个电路都是用1HZ的频率作为时间脉冲的,也就是说,这个电路是同步时序的电路。通过使能,来控制各个部分的时序逻辑。将小时和分的使能信号在总是为有效电平和下一级进位信号做选择,就是时钟调时状态和正常计时状态的切换。当在调时状态的时候,时钟每完成一个周期,无论是分钟还是小时,就向前加1,。最后,将分钟和小时通过译码器连接到数码管。将秒直接连接到LED灯,完成整个工程的基本功能(扩展功能见选作的实验报告)。 5、电路设计与调试 1、模10计数器的设计

2、模6计数器的设计 3、模60计数器设计(分、秒计数) 4、模24计数器设计(小时计数)

数字钟设计报告——数字电路实验报告

数字钟设计实验报告 专业:通信工程 姓名:王婧 班级:111041B 学号:111041226

数字钟的设计 目录 一、前言 (3) 二、设计目的 (3) 三、设计任务 (3) 四、设计方案 (3) 五、数字钟电路设计原理 (4) (一)设计步骤 (4) (二)数字钟的构成 (4) (三)数字钟的工作原理 (5) 六、总结 (9) 1

一、前言 此次实验是第一次做EDA实验,在学习使用软硬件的过程中,自然遇到很多不懂的问题,在老师的指导和同学们的相互帮助下,我终于解决了实验过程遇到的很多难题,成功的完成了实验,实验结果和预期的结果也是一致的,在这次实验中,我学会了如何使用Quartus II软件,如何分层设计点路,如何对实验程序进行编译和仿真和对程序进行硬件测试。明白了一定要学会看开发板资料以清楚如何给程序的输入输出信号配置管脚。这次实验为我今后对 EDA的进一步学习奠定了更好的理论基础和应用基础。 通过本次实验对数电知识有了更深入的了解,将其运用到了实际中来,明白了学习电子技术基础的意义,也达到了其培养的目的。也明白了一个道理:成功就是在不断摸索中前进实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。 2

二、设计目的 1.掌握数字钟的设计方法。 2熟悉集成电路的使用方法。 3通过实训学会数字系统的设计方法; 4通过实训学习元器件的选择及集成电路手册查询方法; 5通过实训掌握电子电路调试及故障排除方法; 6熟悉数字实验箱的使用方法。 三、设计任务 设计一个可以显示星期、时、分、秒的数字钟。 要求: 1、24小时为一个计数周期; 2、具有整点报时功能; 3、定时闹铃(未完成) 四、设计方案 一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器和定时器组成。干电路系统由秒信号发生 3

数字电子钟课程设计实验报告

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书2016/2017 学年第一学期 学生姓名:张涛学号: 李子鹏学号: 课程设计题目:数字电子钟的设计 起迄日期:2017年1月4日~2017年7月10日 课程设计地点:科学楼 指导教师:姚爱琴 2017年月日 课程设计任务书

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计开题报告2016/2017 学年第一学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号:

指导教师:姚爱琴 2017 年 1 月 6 日 中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计说明书2016/2017 学年第二学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号: 指导教师:姚爱琴 2017 年月日

目录 1 引言 (6) 2 数字电子钟设计方案 (6) 2.1 数字计时器的设计思想 (6) 2.2数字电路设计及元器件参数选择 (6) 2.2.2 时、分、秒计数器 (7) 2.2.3 计数显示电路 (8) 2.2.5 整点报时电路 (10) 2.2.6 总体电路 (10) 2.3 安装与调试 (11) 2.3.1 数字电子钟PCB图 (11) 3 设计单元原理说明 (11) 3.1 555定时器原理 (12) 3.2 计数器原理 (12) 3.3 译码和数码显示电路原理 (12) 3.4 校时电路原理 (12) 4 心得与体会 (12) 1 引言 数字钟是一种用数字电子技术实现时,分,秒计时的装置,具有较高的准确性和直观性等各方面的优势,而得到广泛的应用。此次设计数字电子钟是为了了解数字钟的原理,在设计数字电子钟的过程中,用数字电子技术的理论和制作实践相结合,进一步加深数字电子技术课程知识的理解和应用,同时学会使用Multisim电子设计软件。 2数字电子钟设计方案 2.1 数字计时器的设计思想 要想构成数字钟,首先应选择一个脉冲源——能自动地产生稳定的标准时间脉冲信号。而脉冲源产生的脉冲信号地频率较高,因此,需要进行分频,使得高频脉冲信号变成适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1Hz)。经过分频器输出的秒脉冲信号到计数器中进行计数。由于计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要分别设计60进制,24进制计数器,并发出驱动信号。各计数器输出信号经译码器、驱动器到数字显示器,是“时”、“分”、“秒”得以数字显示出来。 值得注意的是:任何记时装置都有误差,因此应考虑校准时间电路。校时电路一般

多功能数字钟实验报告

《多功能数字钟电路的设计、制作》 课程设计报告 班级:(兴) 2008级自动化 姓名:胡荣 学号:2008960623 指导教师:刘勇 2010年11月13日

目录 一、设计目的.................................1 二、设计内容及要求...........................1 三、总设计原理...............................1 四、主要元件及设备...........................2 五、单元电路的设计...........................5 1、数字电子计时器组成原理.................5 2、用74LS160实现12进制计数器..............6 3、校时电路...............................7 4、时基电路设计...........................8 六、设计总电路图.............................8 七、设计结果及其分析.........................8 八、设计过程中的问题及解决方案...............9 九、心得体会.................................9 十、附录.....................................10

多功能数字钟电路设计 一、设计目的 通过课程设计要实现以下两个目标:一、初步掌握电子线路的设计、组装及调试方法。即根据设计要求,查阅文献资料,收集、分析类似电路的性能,并通过组装调试等实践活动,使电路达到性能要求;二、课程设计为后续的毕业设计打好基础。毕业设计是系统的工程设计实践,而课程设计的着眼点是让我们开始从理论学习的轨道上逐渐引向实际方面,运用已学过的分析和设计电路的理论知识,逐步掌握工程设计的步骤和方法,同时,课程设计报告的书写,为今后从事技术工作撰写科技报告和技术资料打下基础。 二、设计内容及要求 1、功能要求: ①基本功能: 以数字形式显示时、分、秒的时间,小时计数器的计时要求为“12翻1”,并要求能手动快校时、快校分或慢校时、慢校分。 ②扩展功能: 定时控制,其时间自定;仿广播电台正点报时—自动报正点时数。 2、设计步骤与要求: ①拟定数字钟电路的组成框图,要求先实现电路的基本功能,后扩展功能,使用的器件少,成本低; ②设计各单元电路,并用Multisim软件仿真; ③在通用电路板上安装电路,只要求显示时分; ④测试数字钟系统的逻辑功能; ⑤写出设计报告。设计报告要求:写出详细地设计过程(含数字钟系统的整机逻辑电路图)、调试步骤、测试结果及心得体会。 三、总设计原理 数字电子钟原理是一个具有计时、校时、报时、显示等基本功能的数字钟主要由振荡器、分频器、计数器、译码器、显示器、校时电路、报时电路等七部分组成。石英晶体振荡器产生的信号经过分频器得到秒脉冲,秒脉冲送入计数器计数,计数结果通过“时”、“分”、“秒”译码器译码,并通过显示器显示时间。 四、主要元件及设备 1、给定的主要器件: 74LS00(4片),74LS160(4片)或74LS161(4片),74LS04(2片),74LS20(2片),74LS48(4片),数码管BS202(4只),555(1片),开关(1个),电阻47k(2个)电容10uF(1个)10nF(1个) 各元件引脚图如下图:

数字时钟设计实验报告

电子课程设计题目:数字时钟

数字时钟设计实验报告 一、设计要求: 设计一个24小时制的数字时钟。 要求:计时、显示精度到秒;有校时功能。采用中小规模集成电路设计。 发挥:增加闹钟功能。 二、设计方案: 由秒时钟信号发生器、计时电路和校时电路构成电路。 秒时钟信号发生器可由振荡器和分频器构成。 计时电路中采用两个60进制计数器分别完成秒计时和分计时;24进制计数器完成时计时;采用译码器将计数器的输出译码后送七段数码管显示。 校时电路采用开关控制时、分、秒计数器的时钟信号为校时脉冲以完成校时。 三、电路框图: 图一 数字时钟电路框图 译码器 译码器 译码器 时计数器 (24进制) 分计数器 (60进制) 秒计数器 (60进制) 校 时 电 路 秒信号发生器

四、电路原理图: (一)秒脉冲信号发生器 秒脉冲信号发生器是数字电子钟的核心部分,它的精度和稳定度决定了数字钟的质量。由振荡器与分频器组合产生秒脉冲信号。 ?振荡器: 通常用555定时器与RC构成的多谐振荡器,经过调整输出1000Hz 脉冲。 ?分频器: 分频器功能主要有两个,一是产生标准秒脉冲信号,一是提供功能 扩展电路所需要的信号,选用三片74LS290进行级联,因为每片为1/10分频器,三片级联好获得1Hz标准秒脉冲。其电路图如下: 图二秒脉冲信号发生器 (二)秒、分、时计时器电路设计 秒、分计数器为60进制计数器,小时计数器为24进制计数器。 ?60进制——秒计数器 秒的个位部分为逢十进一,十位部分为逢六进一,从而共同完成60进制计数器。当计数到59时清零并重新开始计数。秒的个位部分的设计:利用十进制计数器CD40110设计10进制计数器显示秒的个位。个位计数器由0增加到9时产生进位,连在十位部计数器脉冲输入端CP,从而实现10进制计数和进位功能。利用74LS161和74LS11设计6进制计数器显示秒的十位,当十位计数器由0增加到5时利用74LS11与门产生一个高电平接到个位、十位的CD40110的清零端,同时产生一个脉冲给分的个位。其电路图如下:

电子时钟实验报告_电子时钟

电子时钟实验报告 一、实验目的 学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。二、设计任务及要求 利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟,要求:1.在4位数码管上显示当前时间,显示格式为“时时分分”; 2.由LED闪动做秒显示; 3.利用按键可对时间及闹玲进行设置,并可显示闹玲时间。当闹玲时间到蜂鸣器发出音乐,按停止键使可使闹玲声停止。 三、工作原理及设计思路 利用单片机定时器完成计时功能,定时器0计时中断程序每隔5ms中断一次并当作一个计数,每中断一次计数加1,当计数200次时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要数据锁存器等较多硬件,可采用动态显示法实现LED显示。 闹铃声由交流蜂鸣器产生,电路如右图,当P1.7输出不同频率的方波,蜂鸣器便会发出不同的声音。 四、电路设计及描述 (1)硬件连接部分: 在ZKS-03单片机综合实验仪上有四位共阳LED数码管,其标号分别为LED1~LED4。为了节省MCU的I/O口,采用串行接口方式,它仅占用系统2个I/O 口,即P1.0口和P1.1口,一个用作数据线SDA,另一个用作时钟信号线CLK,

它们都通过跳线选择器JP1相连。 由于采用共阳LED数码管,它的阴极分别通过限流电阻R20~R27连接到控制KD_0~KD_Q7。这样控制8个发光二极管,就需要8个I/O口。但由于单片机的I/O口资源是有限的,因此常采用实验电路所示的串并转换电路来扩充系统资源。串并转换电路其实质是一个串入并处的移位寄存器,串行数据再同步移位脉冲CLK的作用下经串行数据线SDA把数据移位到KD_0~KD_Q7端,这样仅需2根线就可以分别控制8个发光二极管的亮灭。而P0口只能作地址/数据总线,P2口只能作地址总线高8位,P3.0、P3.1作为串行输入、输出接口,实验仪上单片机可用作I/O的口仅有:P1.0--P1.7,8位;P3.2、P3.3、P3.4、P3.5,4位。其中:P1.0用作数据线SDA,P1.1用作时钟信号CLK,所以P1.0和P1.1应该接对应跳线的A位,即跳线的中间和下面相连。P1.3、P1.4、P1.5和P1.6是四个数码管的位扫描线,其中P1.6对应数码管W1,显示小时高位;P1.5对应数码管W2,显示小时低位;P1.4对应数码管W3,显示分钟高位;P1.3对应数码管W4,显示分钟低位。P1.7连接蜂鸣器电路,输出不同频率的方波,使其发出不同的声音。P1.2用来控制秒的闪烁显示。故,P1.2也应该接对应跳线的A位。 其显示电路如下图所示: P3.2、P3.3、P3.4、P3.5分别连接单刀双掷开关S1、S2、S3、S4,从而输入高低电平。将S2S1定义为功能模式选择开关;S3定义为分钟数调整开关;S4定义为小时数调整开关。 当S2S1=00时,显示当前时间,不进行任何操作。 当S2S1=01时,显示当前时间,同时可进行时钟调整,若S3=1,分钟数持续加1,若S4=1,小时数持续加1。

VHDL实验报告论文

硬件描述语言期末实验报告 题目:硬件描述语言实现秒表功能 姓名xxxx 学号xxxxxxxxxx 年级专业xxxxxxxxxxxxx 指导教师xxxx 2012年6月20日

河北大学本科生VHDL硬件实验论文(设计) 硬件描述语言实现秒表功能 摘要 应用VHDL语言设计数字系统,很多设计工作可以在计算机上完成,从而缩短了数字系统的开发时间。我们尝试利用VHDL为开发工具设计数字秒表。 秒表的逻辑结构较简单,它主要由十进制计数器、六进制计数器、数据选择器、和显示译码器等组成。在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外整个秒表还需有一个启动信号,暂停信号和一个清零信号,以便秒表能随意停止及启动。 关键词:VHDL语言数字秒表时序仿真图

目录 一、实验目的 (1) 二、硬件要求 (1) 三、引脚说明 (1) 四、模块介绍 (2) 4.1.计数器(六、十进制) (2) 4.2.蜂鸣器 (2) 4.3.译码器 (3) 4.4.控制器 (4) 五、整体连接图 (5) 六、实验结果 (6) 七、实验总结 (6) 八、谢辞 (7) 九、附录 (7)

一实验目的 学习使用VHDL语言,以及EDA芯片的下载仿真。 二硬件要求 (1)主芯片EPF10K10LC84-4。 (2)蜂鸣器。 (3)8位八段扫描共阴极数码显示管。 (4)二个按键(暂停,开关)。 三引脚说明 3.1引脚设置 3.2信号说明 signal q:std_logic_vector(3 downto 0); --q是用于分频的信号。 signal state: std_logic_vector(3 downto 0); --state为状态信号,state为1时为暂停记录状态,为0时为正常显示计数状态。signal led: std_logic_vector(3 downto 0); --led为数码管扫描信号,通过对d1~d6的选择使数码管发光。

南昌大学数字钟实验报告

数 字 钟 实 验 报 告 课 程: 专业班级: 学生姓名: 学 号: 2014年 12月 22 日

多功能数字钟设计 一、设计任务 设计一多功能数字钟并进行仿真以及PCB制版。 二、设计要求 基本功能:准确计时,以数字形式显示时、分、秒的时间。 扩展功能:校正时间 PCB制版要求:尽量单面板、尺寸为200mm*150mm、焊孔0.5mm等三、设计方案 数字钟设计方案基本框图如下: 时的设计: 时的计数以24小时为周期,按通常的习惯,24小时计数器的计数序列为00,01,…,22,23,00,…,即当计数到23小时59分59秒时,再来一个秒脉冲,计数器就进到00时00分00秒。这样,可利用反馈置数或反馈清零法进行二十四进制计数。 分、秒的设计: 分和秒计数器都是模M=60的计数器。计数规律为00,01,…,58,59,00,…。它们的个位都是十进制,而十位则是六进制。 译码显示: 将计数器输出的4位二进制代码,译码显示出相应的十进制数状态,可利用译码显示器和数码管实现。 校时电路: 校时可用1s脉冲快速校正,也可手动产生单次脉冲慢校正至时或者分计数器。可设置变量来控制实现校正或正常计数。 四、Multisim仿真与分析

1、设计方案与模块框图 2、各子模块电路设计及原理说明 (1)振荡器 石英晶体振荡器的特点是振荡频率准确、电路结构简单、频率易调整。它还具有压电效应,在晶体某一方向加一电场,则在与此垂直的方向产生机械振动,有了机械振动,就会在相应的垂直面上产生电场,从而机械振动和电场互为因果,这种循环过程一直持续到晶体的机械强度限止时,才达到最后稳定。这用压电谐振的频率即为晶体振荡器的固有频率。 一般来说,振荡器的频率越高,计时精度越高,但耗电量将增大。如果精度要求不高也可以采用由集成电路定时器555与RC组成的多谐振荡器。如图1所示。 图1 ②分频器 由于振荡器产生的频率很高,要得到秒脉冲,需要分屏电路。本实验由集成

电子时钟实验报告_电子时钟

电子时钟实验报告

一、实验目的 学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。 二、设计任务及要求 利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟,要求: 1.在4位数码管上显示当前时间,显示格式为“时时分分”; 2.由LED闪动做秒显示; 3.利用按键可对时间及闹玲进行设置,并可显示闹玲时间。当闹玲时间到蜂鸣器发出音乐,按停止键使可使闹玲声停止。 三、工作原理及设计思路 利用单片机定时器完成计时功能,定时器0计时中断程序每隔5ms中断一次并当作一个计数,每中断一次计数加1,当计数200次时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要数据锁存器等较多硬件,可采用动态显示法实现LED显示。 闹铃声由交流蜂鸣器产生,电路如右图,当P1.7输出不同频率的方波,蜂鸣器便会发出不同的声音。 四、电路设计及描述 (1) 硬件连接部分: 在ZKS-03单片机综合实验仪上有四位共阳LED数码管,其标号分别为LED1~LED4。 为了节省MCU的I/O口,采用串行接口方式,它仅占用系统2个I/O口,即P1.0口和P1.1口,一个用作数据线SDA,另一个用作时钟信号线CLK,它们都通过跳线选择器JP1相连。 由于采用共阳LED数码管,它的阴极分别通过限流电阻R20~R27连接到控制KD_0~KD_Q7。这样控制8个发光二极管,就需要8个I/O口。但由于单片机的I/O口资源是有限的,因此常采用实验电路所示的串并转换电路来扩充系统资源。串并转换电路其实质是一个串入并处的移位寄存器,串行数据再同步移位脉冲CLK的作用下经串行数据线SDA把数据移位到KD_0~KD_Q7端,这样仅需2根线就可以分别控制8个

南理工EDA2多功能数字钟设计实验报告(蒋立平)——优秀

EDAⅡ实验报告 --多功能数字钟 学院专业: 学生学号: 指导老师:蒋立平 交稿时间:2012年3月25日

摘要 本实验借助于quartusⅡ软件设计一个多功能的数字时钟,具有24小时计时、星期显示、保持、清零、校分校时校星期、整点报时等基本功能,并在此基础上添加了闹钟、音乐闹钟、秒表等附加功能。同时,留有万年历的接口可以方便的进行扩展。.利用quartusⅡ进行相应的设计、仿真、调试,最后下载到SmartSOPC实验系统上验证设计的正确性。 关键词:多功能数字时钟,quartusⅡ,计时,星期显示,整点报时,闹钟,秒表 ABSTRACT This experiment is to design a multifunctional digital clock with quartus Ⅱ.The multifunctional digital clock has varities of the functions like 24-hour timer,week,keeping,clearing zero,adjusting time and chime on integral hour .It also include additional functions such as alarm clock,stopwatch and so on.At the sametimes,it can be added calendar.we designed and simulated with quartusⅡ.Finally downloaded it to the experiment platform to test. Key words:multifunctional digital clock,quartusⅡ,time,week,chime on integral hour, alarm clock,stopwatch

多功能数字电子钟实验报告

一、设计题目 多功能数字电子钟 二、设计目的 1、掌握数字电路中计数、分频、译码、显示及时钟脉冲振荡器等组合逻辑电路与时序逻辑电路的综合应用。 2、掌握多功能数字钟电路设计方法、装调技术及数字钟的扩展应用。 三、设计内容及要求 1、基本要求 a)准确计时,以数字形式显示时、分、秒的时间; b)小时以24进制,分和秒为60进制; c)具有校时电路 2、设计数字钟的整体电路并画出电路图 3、组装、调试单元电路及整体电路 四、设计过程 1、查阅资料,了解数字钟电路的基本原理并画出原理框图 数字钟电路系统主要由主体电路和扩展电路两大部分组成,其中主体电路完成数字钟的基本功能,扩展电路完成数字钟的扩展功能。振荡器、分频器、计时电路、译码显示电路与校时电路五大部分组成数字钟的整体电路。其中计时电路即为时间的计时,校时电路主要是在时间不准确时调节时间到准确的时间点上。系统组成原理框图如下图1.1所示。 图1.1 数字电子钟原理框图

由以上的原理图可知,本电路主要由振荡器和分频器产生1HZ(即1秒)的秒脉冲,用秒脉冲驱动计数器开始计时。因为每分钟60秒,每小时60分钟,所以应该有24进制的“时计数器”、60进制的“分计数器”、60进制的“秒计数器”。当“秒计数器”计数到59后,下一个脉冲到达时“分计数器”就进1,“分计数器”计数到59后,再来一个脉冲“时计数器”就进1。把秒计数器的输出进行译码、显示时钟秒。分计数器的输出经译码、显示时钟分。时计数器的输出经译码、显示时钟时。例如,当计时到20:59:59时,再来一个脉冲后,就会显示21:00:00。 60进制计数器 其中,“秒”和“分”的计数器都是60进制计数器,由一级十进制计数器和一级六进制计数器级联组成。十进制计数器的复位方法我们平常已经熟悉了(即用74LS90组成:其中R0(1)=R0(2)=R1(1)=R1(2)=0),6进制计数器的复位方法是:当CP输入端输入第六个脉冲时,它的四个触发器输出的状态为“0110”,这时QbQc均为高电平“1”。将它们相“与”(用两级“与非”门,保证复位信号为高电平)后,送到计数器的清除端Cr,使计数器复“0”,从而实现60进制计数。原理图见图1.2。 图1.2 60进制计数器 24进制计数器 24进制计数器由两级十进制计数器级联、“与非门”和“非门”共同组成。原理为:当“时”计数器个位输入端CP脉冲到来第十个触发脉冲时,“时”的个位计数器复“0”,并向“时”的十位进位,在第24个触发脉冲到来时,“时”的个位计数器的四级触发器状态为“0100”,而“时”的十位计数器的状态为“0010”,这时“时”的个位计数器的Qc和“时”的十位计数器的Qb输出为“1”,把它们相“与”经两级反相器反相后,送到“时”计数器的清除端Cr,使计数器复“0”。使计数器复“0”。从而实现了24进制计数。原理图如图1.3所示。 图1.3 24进制计数器

基于VHDL语言的EDA实验报告(附源码)

EDA 实验报告 ——多功能电子钟 姓名:张红义 班级:10级电科五班 学号:1008101143 指导老师:贾树恒

电子钟包括:主控模块,计时模块,闹钟模块,辅控模块,显示模块,蜂鸣器模块,分频器模块。 1.主控模块: 主要功能:控制整个系统,输出现在的状态,以及按键信息。 源代码: libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_arith.all; useieee.std_logic_unsigned.all; entity mc is port(functionswitch,k,set,lightkey: in std_logic; chose21,setout: out std_logic; lightswitch:bufferstd_logic; modeout,kmodeout : out std_logic_vector(1 downto 0); setcs,setcm,setch,setas,setam,setah:outstd_logic); end mc; architecture work of mc is signalmode,kmode:std_logic_vector(1 downto 0); signal light,chose21buf:std_logic; signalsetcount:std_logic_vector(5 downto 0); begin process(functionswitch,k,set,lightkey) begin iffunctionswitch'event and functionswitch='1' then mode<=mode+'1'; end if; iflightkey'event and lightkey='1' then lightswitch<=not lightswitch; end if; if mode="01" thenchose21buf<='0'; else chose21buf<='1'; end if; ifk'event and k='1' then if mode="01" or mode="11" then kmode<=kmode+'1'; end if;end if; if set='1' then if mode = "01" then ifkmode="01" then setcount<="000001"; elsifkmode="10" thensetcount<="000010"; elsifkmode="11" then setcount<="000100";

西安交大数电数字钟实验报告

交通大学数字电子技术实验报告 数字钟设计 姓名:** 学院:**学院 班级:**22 学号:212******5

一、实验名称 基于Verilog HDL设计的多功能数字钟 二、试验任务及要求 实验要求以Verilog HDL语言为手段,设计多功能数字钟。多功能数字钟应该具有的功能有:显示时—分—秒、整点报时、小时和分钟可调等基本功能。整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的围为0~23时。 在实验中为了显示与编写方便,该设计采用一个位24位二进制码[23:0]cnt 记录时间,每四位记录一个数,从高到低分别为时针十位、时针个位、分针十位、分针个位、秒针十位、秒针个位。 实验中由于七段码管是扫描的方式显示,所以虽然时钟需要的是1Hz时钟信号,但是扫描需要一个比较高频率的信号,因此为了得到准确的1Hz信号,必须对输入的系统时钟50Mhz进行分频。 关于调整时间功能,该设计采用四个按钮调整对应位的数值,从而调整时间。 三、实验条件 该实验以Verilog HDL语言为手段,以Xilinx ISE Design Suite 13.4_1软件实现源程序的综合与仿真,并用BASYS2开发板作为目标器件。 四、设计过程 1.列写多功能数字钟设计--层次结构图

2.拟定数字钟的组成框图,在Xilinx ISE Design Suite 1 3.4_1软件中,使用Verilog语言输入,采用分层次分模块的方法设计电路; 3.设计各单元电路并进行仿真; 4.对数字钟的整体逻辑电路图,选择器件,分配引脚,进行逻辑综合; 5.下载到Basys2实验平台上,实际测试数字钟的逻辑功能。 五、Verilog代码 module clock(input clk, input en, input key1, input key2, input key3, input key4, output sec, output wire[7:0] seg, output wire[3:0] digit ); wire[3:0] num0,mum1,num2,num3; disp u0(clk,num0,mum1,num2,num3,seg,digit); clk_gen u1(clk,en,key1,key2,key3,key4,sec,num0,mum1,num2,num3); endmodule

VHDL电子钟实验报告

期末大作业课程设计实验报告设计题目:基于VHDL电子钟的设计

目录 一、概述 (3) 1.1目的 (3) 1.2课程设计的要求和功能 (3) 二、总结 (3) 2.1课程设计进行过程及步骤 (3) 2.2所遇到的问题,如何解决问题 (15) 2.3体会收获以及建议 (15) 3.4参考资料(书,网络资料) (15) 三、教师评语 (16) 四、成绩 (16)

一、概述 1.1目的 1. 基于CPLD系统模块板,设计一个电子钟。来熟悉CPLD的工作原理以及 对VHDL的使用。 2. 通过设计出一个电子钟具有校时功能,来巩固分频,键盘扫描,计数,动 态扫描等知识内容。 1.2课程设计的要求和功能 设计一个电子钟,能进行正常的时分秒计时功能,分别有六个数码管显示24小时,60分钟,60秒的计数器显示。 利用实验箱系统上的按键实现“校时”、“校分”功能: (1)按下“SA”键时,计时器快速递增,按24小时循环,进行时校正; (2)按下“SB”键时,计分器快速递增,按60分循环,进行分校正 (3)按下“SC”键时,秒清零,进行秒校正; 二、总结 2.1课程设计进行及步骤 1.设计提示 系统框图见下

2.系统结构设计描述(1)系统顶层文件 1.顶层原理图见下

2.各个模块的解释 (1)五个输入量clk50MHz,SA,SB,SC,reset: 其中clk50MHz为总体系统提供时钟,并且经过分频来分别对电子 钟模块提供时钟,产生一秒一秒的进位信号,对显示模块的计数器 提供时钟实现显示模块的扫描功能,对按键去抖动提供时钟,实现 键盘扫描的功能。SA,SB,SC用来控制按键,实现按键控制,SA是 实现“时”加一,SB是实现“分”加一,SC是实现“秒”清零。 Reset是来控制按键功能的使能。 (2)按键功能模块 三个输入chos ,date0,date1的功能是:chos接受来自按键的信号, 若按键按下,则将date0的内容,也就是通过按键产生的脉冲来控 制电子钟进行加一,若按键没有按下,则将“秒”分频信号接入电 子钟的clk计数输入端,通过时钟脉冲来控制电子钟。 (3)电子钟计数模块 有5个输入ci,nreset,load,clk,d[7..0],作用分别是ci是使能端,直 接接高电位,nreset是复位,load和d[7..0]是用来置数的,clk提供 计数时钟,也就是一秒一个脉冲。 输出端有三个,co是进位功能,只有“秒”和“分”模块有效, qh[3..0],ql[3..0]是分位的数字输出端,一个是十位,一个是个位。

相关文档