已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字电路课程设计一数字电子钟 任务:用文本法或图形法设计一个能显示时、分、秒的数字电子钟要求:1设计由晶振电路产生标准信号的单元电路 2时为0023六十进制计数器,分、秒为0059六十进制计数器; 3能够显示出时、分、秒; 4具有清零,调节分钟的功能; 5具有整点报时功能,整点报时的同时LED灯花样显示、声响电路发出叫声; 6对时、分、秒单元电路进行仿真并纪录; 7选作部分:具有定时闹钟功能,可在任意设定一时间,到时自动提醒,通过声响电路发出叫声。各模块程序设计:1. 秒计数模块VHDL(second.vhd)秒计数模块中是以60进制进行循环的,故需要的秒数据输出应该是7位的,但是为了方便随后的调整时间模块设计,秒输出数据用8位二进制表示,其中低四位用于秒的低位,而高四位作为秒的高位。另外在该模块下的程序由于考虑到系统功能中调整时钟和分钟的要求,故要在秒计数模块中另外加入复位信号(reset)以及分钟设置信号(setmin)。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SECOND IS PORT(RESET,CLK,SETMIN:IN STD_LOGIC;-系统时钟、复位、分设置信号 DAOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-秒计数信号 ENMIN:OUT STD_LOGIC);-分进位信号END SECOND;ARCHITECTURE ART OF SECOND IS SIGNAL COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL COUNTER:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL CARRY_OUT1:STD_LOGIC; SIGNAL CARRY_OUT2:STD_LOGIC;BEGIN P1:PROCESS(RESET,CLK) BEGIN IF (RESET=0) THEN COUNT=0000; COUNTER=0000; ELSIF(CLKEVENT AND CLK=1) THEN IF(COUNTER5) THEN IF(COUNT=9) THEN COUNT=0000; COUNTER=COUNTER+1; ELSE COUNT=COUNT+1; END IF; CARRY_OUT1=0; ELSE IF(COUNT=9) THEN COUNT=0000; COUNTER=0000; CARRY_OUT1=1; ELSE COUNT=COUNT+1; CARRY_OUT1=0; END IF; END IF; END IF;END PROCESS P1;DAOUT(7 DOWNTO 4)=COUNTER;DAOUT(3 DOWNTO 0)=COUNT;ENMIN=CARRY_OUT1 OR SETMIN;END ART;仿真结果:2. 分计数模块VHDL(minute.vhd)分计数同秒计数基本相同,由于均是60进制的计数器,故思路完全一致。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MINUTE IS PORT(CLK,EN,SETHOUR:IN STD_LOGIC; DAOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); CO:OUT STD_LOGIC);END MINUTE;ARCHITECTURE ART OF MINUTE IS SIGNAL CC:STD_LOGIC;BEGIN PROCESS(CLK) VARIABLE CNT1,CNT0:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF(CLKEVENT AND CLK=1) THEN IF(EN=1) THEN IF(CNT10101 ) THEN IF(CNT0=1001) THEN CNT0:=0000; CNT1:=CNT1+1; ELSE CNT0:=CNT0+1; END IF; CC=0; ELSE IF(cnt0=1001) THEN CNT0:=0000; CNT1:=0000; CC=1; ELSE CNT0:=CNT0+1; END IF; END IF; END IF; END IF; DAOUT=CNT1&CNT0; END PROCESS;CO=CC OR SETHOUR;END ART;仿真结果:3. 时计数模块VHDL(hour.vhd) 时计数模块的的设计思路同分、秒的类似,只是进制由60进制变成24进制,且没有了向前进位信号。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY HOUR IS PORT(CLK,EN:IN STD_LOGIC; DAOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END HOUR;ARCHITECTURE ART OF HOUR ISBEGIN PROCESS(CLK) VARIABLE CNT1,CNT0:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF (CLKEVENT AND CLK=1) THEN IF EN=1 THEN if CNT1=0010 THEN if CNT0=0011 THEN CNT1:=0000; CNT0:=0000; ELSE CNT0:=CNT0+1; END IF; ELSE IF CNT0=1001 THEN CNT1:=CNT1+1; CNT0:=0000; ELSE CNT0:=CNT0+1; END IF; END IF; END IF; END IF; DAOUT=CNT1&CNT0; END PROCESS;END ART;仿真结果:4. 时间设置模块VHDL(seltime.vhd)程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY SELTIME IS PORT(CKDSP,RESET:IN STD_LOGIC; SECOND:IN STD_LOGIC_VECTOR(7 DOWNTO 0); MINUTE:IN STD_LOGIC_VECTOR(7 DOWNTO 0); HOUR:IN STD_LOGIC_VECTOR(7 DOWNTO 0); DAOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END SELTIME;ARCHITECTURE ART OF SELTIME IS SIGNAL SEC:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN PROCESS(RESET,CKDSP) BEGIN IF(RESET=0) THEN SEC=000; ELSIF(CKDSPEVENT AND CKDSP=1) THEN IF(SEC=101) THEN SEC=000; ELSE SECDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUT=0000; END CASE; END PROCESS; SEL=SEC;END ART;仿真结果:5. 报时模块VHDL(alert.vhd)喇叭在整点有时有报时驱动信号产生,以及LED灯根据设计的要求再整点时有花样显示信号产生(在整点时从51秒到59秒时从左到右九个LED登依次亮起)。Alert模块产生整点报时的驱动信号speak和LED灯花样显示信号lamp8.0。在分位计数到59分时,秒位为51、53、55、57、59秒时扬声器会发出一秒左右的警告音,并且51、53、55、57秒为低音,59秒为高音。程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ALERT IS PORT(CLKSP:IN STD_LOGIC; SECOND,MINUTE:IN STD_LOGIC_VECTOR(7 DOWNTO 0); SPEAK:OUT STD_LOGIC; LAMP:OUT STD_LOGIC_VECTOR(8 DOWNTO 0);END ALERT;ARCHITECTURE ART OF ALERT IS SIGNAL Q500,QLK:STD_LOGIC; SIGNAL M1,M0,S1,S0:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN M1=MINUTE(7 DOWNTO 4); M0=MINUTE(3 DOWNTO 0); S1=SECOND(7 DOWNTO 4); S0LAMPLAMPLAMPLAMPLAMPLAMPLAMPLAMPLAMPLAMP=000000000; END CASE; IF(S0=0001 OR S0=0011 OR S0=0101 OR S0=0111) THEN Q500=1; ELSE Q500=0; END IF; SPEAK=q500; else LAMP=”000000000”; END IF; IF(M1=0101 AND M0=1001 AND S1=0101 AND S0=1001) THEN QLK=1; ELSE QLK=0; END IF; SPEAK=QLK; SPEAK=QLK OR Q500; END IF; END PROCESS;END ART;仿真结果:6. 显示模块VHDL(deled.vhd)译码输出与十进制对应关系,译码输出01111110000110101101110011111100110十进制01234译码输出11011011111101000011111111111101111十进制56789程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY DELED IS PORT( S:IN STD_LOGIC_VECTOR(3 DOWNTO 0); RES:IN STD_LOGIC_VECTOR(2 DOWNTO 0); A,B,C:OUT STD_LOGIC; D0,D1,D2,D3,D4,D5,D6:OUT STD_LOGIC);END DELED;ARCHITECTURE ART OF DELED IS SIGNAL DATA_4:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL OUT_7:STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL DATAIN_3:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN DATA_4=S; DATAIN_3=RES; A=DATAIN_3(0); B=DATAIN_3(1); C=DATAIN_3(2); D0=OUT_7(0); D1=OUT_7(1); D2=OUT_7(2); D3=OUT_7(3); D4=OUT_7(4); D5=OUT_7(5); D6OUT_7OUT_7OUT_7OUT_7OUT_7OUT_7OUT_7OUT_7OUT_7OUT_7OUT_7=0000000; END CASE; END PROCESS;END ART;仿真结果:7. 电路连接8. 实验总结设计感想: 通过这次设计,进一步加深了对EDA的了解,让我对他有了更加浓厚的兴趣。特别是每当每一个子模块编写测试成功时,心里特别开心。虽然在设计过程中遇到一些困难但解决这些问题的过程无疑是对自己自身专业素质的一种提高。总的来说,这次设计的数字钟还是比较成功的,有点小小的成就感,终于觉得所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识而且锻炼了能力,使自己对以后的路有了更加清楚的认识,同时对未来有了更多的信心。 感谢常老师在设计过程中对我们出现的问题进行详细而具体的解答,以及对我们设计的各种启发,同时也感谢在设计时同学们给予的帮助。二交通灯控制逻辑电路设计任务:用CPLD设计路口交通灯控制器要求:1满足如下时序要求:南北方向红灯亮,东西方向绿灯亮;南北方向绿灯亮, 东西方向红灯亮; 2每一方向的红(绿)黄灯总共维持30秒; 3十字路口要有时间显示,具体为:当某一方向绿灯亮时,置显示器为30秒,然后以每秒减1计数方式工作,直至减到数为4秒时,红绿灯熄灭,黄灯开始间隙闪耀4秒,减到0时,红绿灯交换,一次工作循环结束,进入下一步另一方向的工作循环;4红绿黄灯均采用发光二极管;5设计由晶振电路产生1Hz标准秒信号的单元电路 6要求对整体电路进行仿真,观察并纪录下仿真波形;7选作部分:可以手动调整和自动控制,夜间为黄灯闪耀;8选作部分:东西方向或南北方向上的绿灯亮变为红灯亮,中间需插入黄灯闪耀4秒 过渡,而从红灯亮变为绿灯亮,不需要黄灯过渡,直接由红灯变为绿灯。单元电路设计1.传感器状态设计。Sens(0)、Sens(1)分别为主、支道安装的传感器,检测是否有车辆通过。主道支道均没车时sens=”00”,主道支道均有车时sens=”11”,主道有车支道没车时sens=”10”,主道没车支道有车时sens=”01”。此程序中用case语句定义。2.状态寄存器设计。 利用传感器的四种输入状态控制交通红绿灯的四种输出状态,xianshi作为状态寄存器,它的四种输出控制交通灯的四种状态,即xianshi=”00” 时Rm=0;Ym=1;Gm=0;Rf=1;Yf=0;Gf=0;xianshi=”11”时Rm=1;Ym=0;Gm=0;Rf=0;Yf=0;Gf=1;xianshi=”01”时Rm=0;Ym=0;Gm=1;Rf=1;Yf=0;Gf=0;xianshi=”10”时Rm=1;Ym=0;Gm=0;Rf=0;Yf=1;Gf=0。1代表灯亮,0代表灯不亮。3.中间变量设计。变量fx,fx0作为中间变量,负责传感器与交通灯输出的连接,1代表灯亮,0代表不亮。器件编程 1实验程序LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY xhd ISPORT(clk0,sens_m,sens_f:IN std_logic;Rm,Ym,Gm:OUT std_logic;Rf ,Yf,Gf,fx1:OUT std_logic);END xhd;-ARCHITECTURE behave OF xhd ISSIGNAL sens:std_logic_vector(1 DOWNTO 0);SIGNAL xianshi:std_logic_vector(1 DOWNTO 0);BEGIN sens(0)=sens_f; sens(1)=sens_m;zhuangtaiyima:process(clk0)VARIABLE fx:bit:=0; VARIABLE fx0:bit:=0; VARIABLE time:integer:=0;beginif(clk0event a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- TCNIA-接触器用碲铜板编制说明
- K202409高起专《财政学原理(专科)》复习题
- 2025年度县委书记个人述德述职述廉报告
- 2025年宠物护理员岗位招聘面试参考题库及参考答案
- 微电网运行优化-洞察与解读
- 绿色广告创新-洞察与解读
- 2025年业务开发经理人员岗位招聘面试参考试题及参考答案
- 制造企业财务风险识别与控制研究
- 公共部门人力资源--009
- 企业人力资源管理现状及对策分析
- 就业帮扶车间培训课件
- 制药工程导论课件第六章
- 泌尿外科发展简史
- 中医推拿按摩对膝关节病的疗效
- 中国老年患者术后谵妄防治专家共识
- 终身教育视野下人工智能赋能特殊职业教育的实践与探索
- 杭州市建德市公安局集中招聘警务辅助人员考试真题2024
- 温通刮痧技术操作流程图及考核标准
- 人教版小学一年级语文上册期末试卷(5份)
- 2025年宁波市水务环境集团有限公司招聘笔试参考题库含答案解析
- 真需求-打开商业世界的万能钥匙
评论
0/150
提交评论