欢迎来到天天文库
浏览记录
ID:55280766
大小:138.00 KB
页数:11页
时间:2020-05-08
《数字电子钟(实训选做项).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、广东水利电力技术学院实训实验报告可调数字电子钟课程名可编程逻辑器件应用实验项目名称可调数字电子钟学生班级12电子2班学生姓名许炎庆指导老师龚兰芳2013年05月19日前言课堂上老师叫我们实验的基本步骤及基本思路,然后我们应用所学知识自己编程序,再测试程序,最后下载在下载板。动手去实验它,亲手把那个看起来颇为复杂的东西给弄个明白,才能更加深刻的将知识印入脑中,有利加强学生个人的动手能力。同时使学生能熟练掌握一种EDA软件(MAXPLUS2或QUARTUS2)的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程。目录1.实验目的与要求2.实验方案设计及其原理3.硬件要求4.设计
2、步骤5.源程序和下载结果6.实验结果分析7.实验收获和体验,一、实验要求1.具有时、分、秒计数显示功能,以二十四小时循环计时。2.具有清零,使能,调节小时、分钟的功能。实验目的:1.掌握六十进制,二十四进制计数器的设计方法。2.掌握用元件例化语句实现多位计数器相连的设计方法。3.掌握多位共阳数码管动态扫描显示驱动及编码、译码。4.进一步熟悉EDA的VHDL的程序设计方法,熟练所学课程一些基本常用的软件,如此次的QuartusII,实操该软件的基本操作,学习掌握VHDL的描述方法,进一步掌握应用EDA常用工具进行组合逻辑电路的设计、分析、仿真等技巧。同时使自己能够编码程序,理解并学
3、会。二、实验设计方案及原理在同一cpld芯片上集成如下电路模块:1)、时钟计数,秒……60进制计数器;2)、分……60进制计数器;3)、时……24进制计数器。整个计数器要有清零、使能、调时、调分功能。4)6位8段数码管动态扫描显示时、分、秒。5)实现方法:当秒计数到58时给分一个进位信号;当分计数到58且秒计数到58时给时一个进位信号;从而实现电子钟计数。三、硬件要求主芯片EPM240T100C5,4个开关,6个数码管。四、设计步骤首先对输入的脉冲clk进行多级分频,让有不同的频率,然后再用1hz左右的脉冲进行计数器计数,用1000hz左右的脉冲进行位扫描,在通过译码、控制器等进
4、程完成编译,最后测试,下载,再通过下载板看到结果五、源程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitydyisport(clk,en,clr:instd_logic;--en为保持dian:outstd_logic;--点fmq:outstd_logic;--蜂鸣器输出setmin,sethour:instd_logic;--调时,调分按钮wei:outstd_logic_vector(5downto0);--数码管位
5、y:outstd_logic_vector(6downto0)--数码管段选);end;architectureoneofdyissignalclkmin,clkhour:std_logic;--调时调分信号signalj1,j2:std_logic;--时,分进位信号signalfmqxh:std_logic;--蜂鸣器信号signalcount:integerrange0to5;--用于位扫描signals:std_logic_vector(6downto0);--数码管段选,y=ssignaldata:std_logic_vector(3downto0);--把a,b,c,
6、d,e,f的值赋值给data,用于译码signala,b,c,d,e,f:std_logic_vector(3downto0);--用于组成时,分,秒signalclk_1h,clk_1k:std_logic;--脉冲beginprocess(clk)variablecnt1:integerrange0to250;--1000hz分频variablecnt2:integerrange0to100;beginifclk'eventandclk='1'thenifcnt1=250thencnt1:=0;ifcnt2=100thencnt2:=0;clk_1k<=notclk_1k;e
7、lsecnt2:=cnt2+1;endif;elsecnt1:=cnt1+1;endif;endif;endprocess;process(clk_1k)variablecnt1:integerrange0to500;--1hz分频beginifclk_1k'eventandclk_1k='1'thenifcnt1=500thencnt1:=0;clk_1h<=notclk_1h;elsecnt1:=cnt1+1;endif;endif;endprocess;process(cl
此文档下载收益归作者所有