欢迎来到天天文库
浏览记录
ID:11996208
大小:362.50 KB
页数:8页
时间:2018-07-15
《数字逻辑课程设计---数字时钟》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数字逻辑课程设计报告课程名称:EDA设计题目:数字时钟专业:通信工程班级:姓名:学号:一、设计目的1、熟练地运用数字系统的设计方法进行数字系统设计;2、能进行较复杂的数字系统设计;3、按要求设计一个复杂的组合逻辑电路;二、设计内容1、要求显示秒、分、时,显示格式如下:图2.1显示格式2、可调时,有闹钟。三、设计原理数字钟的基本工作原理:数字钟以其显示时间的直观性、走时准确性作为一种计时工具,数字钟的基本组成部分离不开计数器,在控制逻辑电路的控制下完成预定的各项功能。数字钟的基本原理方框图如下:数字原理框图1)时钟计数:完成时、分、秒的正确计时
2、并且显示所计的数字;对秒、分——60进制计数,即从0到59循环计数,时钟——24进制计数,即从0到23循环计数,并且在数码管上显示数值。2)时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的key0键和key1键进行任意的调整,因为我们用的时钟信号均是经分频器后变成1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。3)md1为使能端,低电平时正常显示时间,高电平时设置闹钟。可以根据我们自己的需要任意设置闹钟的时间,并且闹钟可持续一分钟。根据总体方框图及各部分分配的功能可知,
3、本系统可以由秒计数器、分钟计数器、小时计数器、闹钟、分的调整以及小时的调整和一个顶层文件构成。采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。显示:小时采用24进制,而分钟均是采用6进制和10进制的组合。四:实验仪器计算机一台五:设计步骤1:建立文件夹,用于存放实验内容。2:建立原理图文件。原理图如下:3:建立波形文件,输入变量,进行仿真,仿真结果4显示程序libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD
4、_LOGIC_UNSIGNED.ALL;entityXIANSHIDZBisPort(Clk:instd_logic;--状态机时钟信号,同时也是液晶时钟信号R0,R1,R2:instd_logic_vector(7downto0);rs:bufferstd_logic;rw:outstd_logic;--液晶读写信号en:outstd_logic;--液晶使能信号Clk_Out:bufferstd_logic;--除输出的秒脉冲d:bufferstd_logic_vector(7downto0));--LCD的数据线endXIANSHIDZ
5、B;architectureBehavioralofXIANSHIDZBistypexianshiisarray(0to31)ofstd_logic_vector(7downto0);--显示缓冲signalqx:xianshi:=((others=>"00100000"));typestateis(clear,ids,dlnf,dcb,ddram1,outdata1,ddram2,outdata2);--ddram2,signalCount:std_logic_vector(15downto0);signalLCLK_OUT:std_log
6、ic;signalCounts:integerrange0to3000000:=0;--;std_logic_vector(22downto0);signalCurrent_State:state;signaltempa:std_logic_vector(4downto0):="00000";beginprocess(Clk_Out,clk)----秒脉冲beginif(rising_edge(clk))thenCounts<=Counts+1;if(Counts=3000000)then--10000000是1秒Clk_Out<=notCl
7、k_Out;endif;endif;endprocess;qx(2)<="0011"&R0(7DOWNTO4);qx(3)<="0011"&R0(3DOWNTO0);qx(5)<="00111010";--:qx(7)<="0011"&R1(7DOWNTO4);qx(8)<="0011"&R1(3DOWNTO0);qx(10)<="00111010";--:qx(12)<="0011"&R2(7DOWNTO4);qx(13)<="0011"&R2(3DOWNTO0);process(Clk,LClk_Out)--LCD用脉冲--LClk_Ou
8、t,6msbeginif(rising_edge(clk))thenCount<=Count+1;if(Count=0)thenLClk_Out<=notLClk_
此文档下载收益归作者所有