数字逻辑电路课程设计报告 - 多功能数字钟
更新时间:2024-06-09 22:44:01 阅读量: 综合文库 文档下载
- 数字逻辑电路课程设计题目推荐度:
- 相关推荐
江苏大学
数字逻辑课程设计
___________
多功能数字钟
专业:软件1001
学号:3100608024
姓名:张同学
2012年1月11日
一、设计目的
1、学会应用数字系统方法进行电路设计; 2、进一步提高MaxplusⅡ软件开发应用能力; 3、培养综合实验的能力;
二、设计要求
1、能进行正常的记时、记分、记秒 2、实现校时、校分以及秒清0的功能 3、实现整点报时的功能 4、实现时间的正常显示 5、闹时功能的实现
三、具体设计思路
1、利用按键实现“校时”、 “校分”和“秒清0”功能。
(1)SA:校时键。按下SA键时,时计数器迅速递增,按24小时循环,并且计满23时回到00。
(2)SB:校分键。按下SB键时,分计数器迅速递增,按60小时循环,并且计满59时回到00,但不向时进位。
(3)SC:秒清零。按下SC时,秒计数器清零。 要求按键均不产生数字跳变,因此须对“SA”、“SB”进行消抖处理。 实现:
①:十进制计数器的设计:
VHDL描述: library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity ls160 is port(
data:in std_logic_vector(3 downto 0); clk,ld,p,t,clr:in std_logic;
count:buffer std_logic_vector(3 downto 0); tc:out std_logic); end ls160;
architecture behavior of ls160 is begin
tc<='1'when (count=\'0'; cale:
process(clk,clr,p,t,ld) begin
if(rising_edge(clk))then if(clr='1')then if(ld='1')then if(p='1')then if(t='1')then
if(count=\count<=\else
count<=count+1; end if; else
count<=count; end if; else
count<=count; end if; else
count<=data; end if; else
count<=\end if; end if;
end process cale; end behavior;
②24进制计数器和60进制计数器的设计(以十进制计数器为基础):
24进制计数器:
60进制计数器:
仿真图:
2、能进行整点报时。
(1)在59分50、52、54、56、58秒按500Hz频率报时; (2)在59分60秒用1KHz的频率作最后一声正点报时。 VHDL描述: library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity baoshi is
port(m1,m0,s1,s0 : in std_logic_vector(3 downto 0); sig500,sig1k : out std_logic); end hourring;
architecture a of baoshi is
signal q : std_logic_vector(15 downto 0); signal s500,s1k : std_logic; begin
q(15 downto 12)<=m1; q(11 downto 8)<=m0; q(7 downto 4)<=s1;
q(3 downto 0)<=s0; hring : block begin
s500<='1' when q=\ '1' when q=\ '1' when q=\ '1' when q=\ '1' when q=\ '0';
s1k<='1' when q=\ '0'; end block hring; sig500<=s500; sig1k<=s1k; end a;
3.程序中由于需要输入多个不同的时钟信号,故需要设计一个分频器,使输入时钟信号简化。
VHDL描述: library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity frequencydivider is port(cp:in std_logic;
hz512,hz256,hz64,hz4,hz1:out std_logic); end frequencydivider;
architecture one of frequencydivider is SIGNAL clk: std_logic_vector(9 downto 0); begin
process(cp) begin
if cp'event and cp='1'then if clk=\ clk<=\ else clk<=clk+1; end if; end if; end process; hz512<=clk(0);
hz256<=clk(1); hz64<=clk(3); hz4<=clk(7); hz1<=clk(9); end one;
分频仿真图:
4、能进行正常的时、分、秒计时,用动态扫描的方式显示,需用6个数码管。
(1) 用M6M5进行24进制小时的显示。 (2) 用M4M3进行60进制分的显示。 (3) 用M2M1进行60进制秒的显示。
动态扫描用VHDL描述:
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;
entity dtsm is
port(clk:in std_logic;
s :in std_logic_vector(7 downto 0); f :in std_logic_vector(7 downto 0); m :in std_logic_vector(7 downto 0);
selout:out std_logic_vector(5 downto 0); segout:out std_logic_vector(6 downto 0) ); end dtsm ;
architecture rt1_dtsm of dtsm is
signal number:std_logic_vector(3 downto 0); signal sel :std_logic_vector(5 downto 0); signal seg :std_logic_vector(6 downto 0); signal q :std_logic_vector(2 downto 0); begin
rt1_dtsm:process(clk) begin
if(clk'event and clk='1')then q<=q+1; end if;
end process rt1_dtsm;
process(q) begin
case q is
when\when\
when\when\when\when\when others=>sel<=\end case; end process;
process begin
if sel =\
number<=m(3 downto 0); elsif sel=\
number<=m(7 downto 4); elsif sel=\
number<=f(3 downto 0); elsif sel=\
number<=f(7 downto 4); elsif sel=\
number<=s(3 downto 0); elsif sel=\
number<=s(7 downto 4); else
number<=\end if;
end process;
process(number) begin
case number is
when\ when\ when\ when\ when\ when\ when\ when\ when\ when\ when others=>seg<=\end case; end process;
selout<=sel; segout<=seg; end rt1_dtsm;
附:顶层图
四、遇到的问题及解决方法
1、为了连接方便,对图经行必要的旋转时,导致了输入输出移位,以致编译错误,耗费了大量时间,可见细节很重要。
2、做七段显示器时,由于扫描频率过低,显示闪烁,当频率高于256时,可以正常显示。 3、报时时需要两个不同的频率。通过电路中两个与门和一个或门将两个不同信号选择的送到扬声器。
五、设计结果
下载到实验板上后,可以在七段数码管上正确显示时间,且具有整点报时、手动校时的功能,但是没有实现闹铃功能。
六、实验总结
通过这次多功能数字钟的设计实验,让我基本上掌握了VHDL语言的编写和图形连接,使我熟悉了对MaxPlus II软件的使用并加深了对VHDL语言编程和图形编辑的认识和了解。也同时更加熟练的掌握了运用波形图进行仿真以及下载测试。 也让我了解了关于数字钟的原理与设计理念,要设计一个电路先进行软件模拟仿真再进行实际的电路制作。但是最后的成品却不一定与仿真时完全一样,因为,再实际接线中有着各种各样的条件制约着。而且,在仿真中无法成功的电路接法,在实际中因为芯片本身的特性而能够成功。所以,在设计时应考虑两者的差异,从中找出最适合的设计方法。通过这次学习,让我对各种电路都有了大概的了解,所以说,坐而言不如立而行,对于这些电路还是应该自己动手实际,在今后的学习中,还要多去实践书本的内容,学到更多的知识。
正在阅读:
概率论与数理统计教案01-25
花溪区代理发表职称论文发表-桡动脉股动脉介入穿刺治疗冠心病术04-15
ERP系统理论试题05-17
单考单招考试试卷(英语) - 图文11-04
数学四年级下册拓展题04-05
房屋诉讼保全担保书(共11篇)12-23
复产申请书06-02
挖笋作文800字06-30
欢欢喜喜闹元宵作文600字06-19
- 高一物理牛顿运动定律全套学习学案
- 水处理一级反渗透加还原剂亚硫酸氢钠后为什么ORP会升高
- 毕业设计(论文)-正文董家口 - 图文
- 荣盛酒店经营管理公司录用通知及入职承诺书II
- 第二讲 大学英语四级快速阅读技巧
- 质量管理体系文件(2015年委托第三方医药物流配送企业专用版本)
- 214071收款办法
- 苏轼对《文选》选文的评价
- 《诊断学基础B》1-8作业
- 广东省东莞市高一数学下学期期末教学质量检查试题
- 海南电网公司VIS推广应用管理办法
- 红星照耀中国习题
- 苏教版小学语文六年级上册期末复习资料之生字词整理
- 局域网组建与应用—王向东
- 税务稽查内部管理文书样式
- 环保社会实践调查表
- 九年级思品第一单元复习
- 2016年全国注册咨询工程师继续教育公路路线设计规范试卷
- 毕业设计-青岛港董家口港区防波堤设计
- 撞背锻炼方法与益处
- 数字钟
- 电路
- 多功能
- 逻辑
- 课程
- 数字
- 报告
- 设计
- 1.4.2(2)正弦、余弦函数的性质(二)
- 08-10年中考英语复习三年经典真题题库16 副词
- 北方学院药剂学实验
- 光伏并网发电系统的工作原理是什么?
- 网络课程共享利弊分析
- 光纤激光切割机供应商
- 庸政懒政怠政整改报告一
- S版四年级上册期末专项复习——课内阅读
- 创建慢病示范区问卷
- 试验检测继续教育答案成品湿法橡胶沥青在断级配沥青混合料中的应
- 颗粒物质量浓度传感器的研究与开发 - 图文
- 深度解读中国航空发动机集团
- XX银行离行式自助设备外包服务操作规程(最终版)
- 教育与教育学
- 近代物理实验报告—液晶物性
- 高三化学原子结构和化学键复习1
- 《四季》教材分析与教学设计
- 定时排气扇课程设计报告 - 图文
- 建设工程造价咨询成果文件质量标准及问责机制
- 2018年跨境电商企业组织架构和部门职能