1、第 1 页 共 12 页 EDAEDA 技术课程设计报告技术课程设计报告 学学 院:院: 专专 业:业: 班班 级:级: 姓姓 名:名: 学学 号:号: 2012 年年 12 月月 30 日日 第 2 页 共 12 页 目录目录 课题要求课题要求 3 3 分析与设计分析与设计. .3.3 程序代码及原理图程序代码及原理图. .4.4 结果与测试结果与测试1111 日志与调试记录日志与调试记录1212 心得与体会心得与体会1515 第 3 页 共 12 页 数字钟数字钟 一、 【课题要求课题要求】 1.设计一个能显示 1/10 秒、秒、分、时的 12 小时数字钟。 2.熟练掌握各种计数器的使用。
2、 3.能用计数器构成十进制、六十进制、十二进制等所需进制的计数器。 4.能用低位的进位输出构成高位的计数脉冲。 二、 【分析与设计分析与设计】 数字钟是计数器的综合应用,数字钟由十分之一秒、秒钟、分钟、时钟组成,十分之一秒由 十进制计数器 74160 组成,秒钟由六十进制计数器构成,分钟由六十进制计数器,时钟由十二进 制计数器构成。 该数字钟程序的底层文件主要有六进制计数器模块、六十进制计数器模块和十二进制模块, 对各模块进行封装,供顶层文件调用,各模块有 VHDL 文本设计及原理图设计。 第 4 页 共 12 页 输入端 clk 是连续脉冲,clrn 是高电平系统复位,en 是高电平使能端,
3、输出端是十分之一秒 位、秒钟个位、秒钟十位、分钟个位、分钟十位、时钟个位、时钟十位,最后由 7 个数码管显示 各位的值。 该数字钟程序的底层文件主要有六进制计数器模块、六十进制计数器模块和十二进制模块, 对各模块进行封装,供顶层文件调用,各模块有 VHDL 文本设计及原理图设计。 程序框图: 十分之一秒 秒钟 分钟 小时 三、三、 【程序代码及原理图程序代码及原理图】 1、六进制计数器 VHDL 代码: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cout6 IS PORT
4、(clk,en,clrn,load:IN STD_LOGIC; date:IN STD_LOGIC_VECTOR(2 DOWNTO 0); cnt:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); co:OUT STD_LOGIC ); END cout6; ARCHITECTURE behave OF cout6 IS SIGNAL q:STD_LOGIC_VECTOR(2 DOWNTO 0); 十 进 制 计数器 六 十 进 制 计数器 十 二 进 制 计数器 六 十 进 制 计数器 十 进 制 计数器 六 进 制 计数器 六 十 进 制 计 数 器 六 进 制 计数器
5、进位 进位 进位 进位 进位 第 5 页 共 12 页 BEGIN co=1 WHEN(q=“101“)AND(en=1)ELSE0; PROCESS(en,clk) BEGIN IF clrn=0 THEN q=“000“; ELSIF(clkevent and clk=1) THEN IF load=0 THEN q=date; ELSIF en=1 THEN q=q+1; IF(q=“101“)THEN q=“000“; END IF; END IF; END IF; END PROCESS; cnt=q; END behave; 波形仿真 : 2、六十进制计数器 原理图: 第 6 页 共 12 页 波形仿真: 第 7 页 共 12 页 3、十二进制计数器 VHDL 代码: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cout12 IS