西安交通大学数字逻辑电路实验报告.docx

上传人:b****2 文档编号:11366937 上传时间:2023-05-31 格式:DOCX 页数:13 大小:168.54KB
下载 相关 举报
西安交通大学数字逻辑电路实验报告.docx_第1页
第1页 / 共13页
西安交通大学数字逻辑电路实验报告.docx_第2页
第2页 / 共13页
西安交通大学数字逻辑电路实验报告.docx_第3页
第3页 / 共13页
西安交通大学数字逻辑电路实验报告.docx_第4页
第4页 / 共13页
西安交通大学数字逻辑电路实验报告.docx_第5页
第5页 / 共13页
西安交通大学数字逻辑电路实验报告.docx_第6页
第6页 / 共13页
西安交通大学数字逻辑电路实验报告.docx_第7页
第7页 / 共13页
西安交通大学数字逻辑电路实验报告.docx_第8页
第8页 / 共13页
西安交通大学数字逻辑电路实验报告.docx_第9页
第9页 / 共13页
西安交通大学数字逻辑电路实验报告.docx_第10页
第10页 / 共13页
西安交通大学数字逻辑电路实验报告.docx_第11页
第11页 / 共13页
西安交通大学数字逻辑电路实验报告.docx_第12页
第12页 / 共13页
西安交通大学数字逻辑电路实验报告.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

西安交通大学数字逻辑电路实验报告.docx

《西安交通大学数字逻辑电路实验报告.docx》由会员分享,可在线阅读,更多相关《西安交通大学数字逻辑电路实验报告.docx(13页珍藏版)》请在冰点文库上搜索。

西安交通大学数字逻辑电路实验报告.docx

西安交通大学数字逻辑电路实验报告

电子技术实验报告

——交通控制器的分析与设计

班级:

姓名:

学号:

日期:

2016年6月

联系电话:

 

目录

一、实验目的…………………………………………………………………………3

二、项目设计概要……………………………………………………………………3

三、系统设计方案……………………………………………………………………4

四、测试结果及分析…………………………………………………………………9

五、项目总结…………………………………………………………………………10

六、结束语……………………………………………………………………………10

七、参考书……………………………………………………………………………10

 

一.实验目的

数字逻辑电路专题实验是紧紧围绕数字逻辑这门课程进行的一个有实践性特质的课程,主要考察的是对于数字逻辑这门课程中比较重要的知识点的掌握程度和灵活运用程度,也考察了实际操作能力和对于特殊情况和意外情况的处理能力。

通过对于译码器编码器等器件的实际操作和对相应变成软件的实际应用,达到对于这门课程更为深入理解这一目的。

同时,为解决实际生活中的问题有一定的指导意义,也能更好地对实际生活中的一些组合部件有更好地认识。

二.项目设计概要

1.设计实现的目标

设计一个由一条主干道和一条支干道的汇合点形成的十字交叉路口的交通灯控制器,具体要求如下:

(1)主、支干道各设有一个绿、黄、红指示灯,两个显示数码管。

(2)主干道处于常允许通行状态,而支干道有车来才允许通行。

(3)当主、支道均有车时,两者交替允许通行,主干道每次放行45s,支干道每次放行25s,在每次由亮绿灯变成亮红灯的转换过程中,要亮5s的黄灯作为过渡,并进行减计时显示。

2.整体设计概述

交通控制器拟由单片的CPLD/FPGA来实现,经分析设计要求,拟定整个系统由9个单元电路组成,如图所示。

3.项目设计特点

我们在项目设计过程中采用模块化设计思想,同时用变量的方式来完成计数的设计,用计数器来实现显示这一特点,使得设计变得简单。

三.系统设计方案

1.系统功能模块设计示意图:

2.电路模块设计

输入:

实验板时钟

输出:

七段数码管

电路模块的设计:

(1)交通灯控制器:

将题设的要求把电路分为ABCD四个状态,A为主干道为绿灯,B为主干道为黄灯,C为主干道为红灯,D为主干道为红灯,旁道为黄灯。

用特设的一个变量S,完成电路的即使功能,使得电路可以区分45s,25s等时间点,并且通过if语句完成状态之间的改变。

源程序:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYJTDKZIS

PORT(CLK,SM,SB,CLD:

INSTD_LOGIC;

MR,MY,MG,BR,BY,BG:

OUTSTD_LOGIC);

ENDENTITYJTDKZ;

ARCHITECTUREARTOFJTDKZIS

TYPESTATE_TYPEIS(A,B,C,D);

SIGNALSTATE:

STATE_TYPE;

BEGIN

CNT:

PROCESS(CLK)IS

VARIABLES:

INTEGERRANGE0TO45;

VARIABLECLR,EN:

BIT;

BEGIN

IF(CLK'EVENTANDCLK='1')THEN

IFCLR='0'THEN

S:

=0;

ELSIFEN='0'THEN

S:

=S;

ELSE

S:

=S+1;

ENDIF;

CASESTATEIS

WHENA=>MR<='0';MY<='0';MG<='1';

BR<='1';BY<='0';BG<='0';

IF(SBANDSM)='1'THEN

IFS=45THEN

STATE<=B;CLR:

='0';EN:

='0';

ELSE

STATE<=A;CLR:

='1';EN:

='1';

ENDIF;

ELSIF(SBAND(NOTSM))='1'THEN

STATE<=B;CLR:

='0';EN:

='0';

ELSE

STATE<=A;CLR:

='1';EN:

='1';

ENDIF;

WHENB=>MR<='0';MY<='1';MG<='0';

BR<='1';BY<='0';BG<='0';

IFS=5THEN

STATE<=C;CLR:

='0';EN:

='0';

ELSE

STATE<=B;CLR:

='1';EN:

='1';

ENDIF;

WHENC=>MR<='1';MY<='0';MG<='0';

BR<='0';BY<='0';BG<='1';

IF(SMANDSB)='1'THEN

IFS=25THEN

STATE<=D;CLR:

='0';EN:

='0';

ELSE

STATE<=C;CLR:

='1';EN:

='1';

ENDIF;

ELSIFSB='0'THEN

STATE<=D;CLR:

='0';EN:

='0';

ELSE

STATE<=C;CLR:

='1';EN:

='1';

ENDIF;

WHEND=>MR<='1';MY<='0';MG<='0';

BR<='0';BY<='1';BG<='0';

IFS=5THEN

STATE<=A;CLR:

='0';EN:

='0';

ELSE

STATE<=D;CLR:

='1';EN:

='1';

ENDIF;

ENDCASE;

ENDIF;

ENDPROCESSCNT;

ENDARCHITECTUREART;

 

(2)定时单元电路:

当符合题设条件中的时间要求时,相应的定时单元电路开始工作,左后可以达成输出合适的BCD码的要求。

源代码:

--CNT45S.VHD

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT45SIS

PORT(SB,CLK,EN45:

INSTD_LOGIC;

DOUT45M,DOUT45B:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDENTITYCNT45S;

ARCHITECTUREARTOFCNT45SIS

SIGNALCNT6B:

STD_LOGIC_VECTOR(5DOWNTO0);

BEGIN

PROCESS(SB,CLK,EN45)IS

BEGIN

IFSB='0'THENCNT6B<=CNT6B-CNT6B-1;

ELSIF(CLK'EVENTANDCLK='1')THEN

IFEN45='1'THENCNT6B<=CNT6B+1;

ELSIFEN45='0'THENCNT6B<=CNT6B-CNT6B-1;

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(CNT6B)IS

BEGIN

CASECNT6BIS

WHEN"000000"=>DOUT45M<="01000101";DOUT45B<="01010000";

WHEN"000001"=>DOUT45M<="01000100";DOUT45B<="01001001";

WHEN"000010"=>DOUT45M<="01000011";DOUT45B<="01001000";

WHEN"000011"=>DOUT45M<="01000010";DOUT45B<="01000111";

WHEN"000100"=>DOUT45M<="01000001";DOUT45B<="01000110";

WHEN"000101"=>DOUT45M<="01000000";DOUT45B<="01000101";

WHEN"000110"=>DOUT45M<="00111001";DOUT45B<="01000100";

WHEN"000111"=>DOUT45M<="00111000";DOUT45B<="01000011";

WHEN"001000"=>DOUT45M<="00110111";DOUT45B<="01000010";

WHEN"001001"=>DOUT45M<="00110110";DOUT45B<="01000001";

WHEN"001010"=>DOUT45M<="00110101";DOUT45B<="01000000";

WHEN"001011"=>DOUT45M<="00110100";DOUT45B<="01101001";

WHEN"001100"=>DOUT45M<="00110011";DOUT45B<="00111000";

WHEN"001101"=>DOUT45M<="00110010";DOUT45B<="00110111";

WHEN"001110"=>DOUT45M<="00110001";DOUT45B<="00110110";

WHEN"001111"=>DOUT45M<="00110000";DOUT45B<="00110101";

WHEN"010000"=>DOUT45M<="00101001";DOUT45B<="00110100";

WHEN"010001"=>DOUT45M<="00101000";DOUT45B<="00110011";

WHEN"010010"=>DOUT45M<="00100111";DOUT45B<="00110010";

WHEN"010011"=>DOUT45M<="00100110";DOUT45B<="00110001";

WHEN"010100"=>DOUT45M<="00100101";DOUT45B<="00110000";

WHEN"010101"=>DOUT45M<="00100100";DOUT45B<="00101001";

WHEN"010110"=>DOUT45M<="00100011";DOUT45B<="00101000";

WHEN"010111"=>DOUT45M<="00100010";DOUT45B<="00100111";

WHEN"011000"=>DOUT45M<="00100001";DOUT45B<="00100110";

WHEN"011001"=>DOUT45M<="00100000";DOUT45B<="00100101";

WHEN"011010"=>DOUT45M<="00011001";DOUT45B<="00100100";

WHEN"011011"=>DOUT45M<="00011000";DOUT45B<="00100011";

WHEN"011100"=>DOUT45M<="00010111";DOUT45B<="00100010";

WHEN"011101"=>DOUT45M<="00010110";DOUT45B<="00100001";

WHEN"011110"=>DOUT45M<="00010101";DOUT45B<="00100000";

WHEN"011111"=>DOUT45M<="00010100";DOUT45B<="00011001";

WHEN"100000"=>DOUT45M<="00010011";DOUT45B<="00011000";

WHEN"100001"=>DOUT45M<="00010010";DOUT45B<="00010111";

WHEN"100010"=>DOUT45M<="00010001";DOUT45B<="00010110";

WHEN"100011"=>DOUT45M<="00010000";DOUT45B<="00010101";

WHEN"100100"=>DOUT45M<="00001001";DOUT45B<="00010100";

WHEN"100101"=>DOUT45M<="00001000";DOUT45B<="00010011";

WHEN"100110"=>DOUT45M<="00000111";DOUT45B<="00010010";

WHEN"100111"=>DOUT45M<="00000110";DOUT45B<="00010001";

WHEN"101000"=>DOUT45M<="00000101";DOUT45B<="00010000";

WHEN"101001"=>DOUT45M<="00000100";DOUT45B<="00001001";

WHEN"101010"=>DOUT45M<="00000011";DOUT45B<="00001000";

WHEN"101011"=>DOUT45M<="00000010";DOUT45B<="00000111";

WHEN"101100"=>DOUT45M<="00000001";DOUT45B<="00000110";

WHENOTHERS=>DOUT45M<="00000000";DOUT45B<="00000000";

ENDCASE;

ENDPROCESS;

ENDARCHITECTUREART;

 

(3)译码器电路:

完成BCD码转换为相应数字的要求,使得在七段译码器中得到合适的显示。

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYYMQIS

PORT(AIN4:

INSTD_LOGIC_VECTOR(3DOWNTO0);

DOUT7:

OUTSTD_LOGIC_VECTOR(6DOWNTO0));

ENDENTITYYMQ;

ARCHITECTUREARTOFYMQIS

BEGIN

PROCESS(AIN4)IS

BEGIN

CASEAIN4IS

WHEN"0000"=>DOUT7<="0111111";

WHEN"0001"=>DOUT7<="0000110";

WHEN"0010"=>DOUT7<="1011011";

WHEN"0011"=>DOUT7<="1001111";

WHEN"0100"=>DOUT7<="1100110";

WHEN"0101"=>DOUT7<="1101101";

WHEN"0110"=>DOUT7<="1111101";

WHEN"0111"=>DOUT7<="0000111";

WHEN"1000"=>DOUT7<="1111111";

WHEN"1001"=>DOUT7<="1101111";

WHENOTHERS=>DOUT7<="0000000";

ENDCASE;

ENDPROCESS;

ENDARCHITECTUREART;

电路图:

四.测试结果及分析

1.模拟仿真测试方案:

通过建立仿真图,将电路进行波形仿真测试。

2.模拟仿真测试波形图

从波形图中可以看出,忽略适当的延迟,此电路已经完成了几个状态的切换。

五.项目总结

设计过程比较顺利,并完成了预期的设计任务,达到了对于题目所列出的三个要求。

在实验中很好地采用了变量这个很好的媒介来完成对于总控制电路的计数特点,这点能使得所有的功能都可以很简单地用if语句完成。

计数器在电路中也得到了很好的使用,用计数器得到显示的特点。

在电路中需要一个倒计时,达到在每次ABCD的状态中对于时间的倒计时。

六.结束语

数字逻辑专题实验对我们进一步理解所学理论知识、深化对数字逻辑电路的认识有着不可替代的重要作用。

通过计算机对于器件的编写,不仅仅可以锻炼编程能力,同时也可以对于数字逻辑的器件和知识点有很好地理解。

七.参考书

《数字逻辑与数学系统》

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 人力资源管理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2