EDA课程设计交通灯控制器Word文档格式.docx

上传人:b****5 文档编号:16327439 上传时间:2022-11-22 格式:DOCX 页数:15 大小:523.78KB
下载 相关 举报
EDA课程设计交通灯控制器Word文档格式.docx_第1页
第1页 / 共15页
EDA课程设计交通灯控制器Word文档格式.docx_第2页
第2页 / 共15页
EDA课程设计交通灯控制器Word文档格式.docx_第3页
第3页 / 共15页
EDA课程设计交通灯控制器Word文档格式.docx_第4页
第4页 / 共15页
EDA课程设计交通灯控制器Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

EDA课程设计交通灯控制器Word文档格式.docx

《EDA课程设计交通灯控制器Word文档格式.docx》由会员分享,可在线阅读,更多相关《EDA课程设计交通灯控制器Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

EDA课程设计交通灯控制器Word文档格式.docx

一旦支道无车辆时,交通灯又立即回到“主干道绿灯,支道红灯”。

此外,主干道和支道每次通行时间为30s,而在两个状态交换过程出现的“主黄、支红”和“主红、支黄”状态,持续时间都为3s。

根据控制要求,可把交通灯控制系统分解为处理器(包含定时器及译码器)和控制器两大部分。

三﹑硬件电路设计

3.1原理图设计

⑴、交通灯部分电路

⑵、555多谐振荡器 

产生1Hz时钟

石英晶体振荡器具有体积小、重量轻、可靠性高、频率稳定度高等优点,被应用于家用电器和通信设备中。

因其具有极高的频率稳定性,故主要用在要求频率十分稳定的振荡电路中作谐振元件。

用石英晶体振荡器作为脉冲产生器,能够使数字时钟达到很高的精度。

同时成本也相对较高。

这里是采用的是有555芯片组成的多谐振荡器来作为频率脉冲产生器,其输出的脉冲频率为1Hz。

555芯片组成的多谐振荡器要输出符合要求的频率脉冲,其对电阻和电容的精度要求较高。

不太容易输出严格符合要求的频率脉冲。

由公式得:

T≈0.7(R2 

2R1)C2 

1/ 

T≈1.44/(R2 

计算得:

C2 

1000uF;

R2 

440Ω;

R1 

500Ω

⑶、数码显示部分电路

⑷、ZLG7290 

I2C接口键盘及LED驱动器

1.I2C串行接口提供键盘中断信号方便与处理器接口 

2.可驱动8位共阴数码管或64只独立LED和64个按键;

.控扫描位数可控任一数码管闪烁;

.提供数据译码和循环、移位、段寻址等控制;

.8个功能键,可检测任一键的连击次数;

6.无需外接元件即直接驱LED可扩展驱动电流和驱动电压 

.提供工业级器件;

3.2PCB图设计

⑴交通灯PCB图

⑵数码管PCB图

3.3控制器设计

控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段数码管的分位译码电路。

此外,当检测到特殊情况(HOLD=‘1’)发生时,无条件点亮红灯的二极管。

本控制器可以有两种设计方法,一种是利用时钟烟的下降沿读取前级计数器的计数值,然后作出反应;

另一种则是将本模块设计成纯组合逻辑电路,不需要时钟驱动。

这两种方法各有所长,必须根据所用器件的特性进行选择:

比如有些FPGA有丰富的寄存器资源,而且可用与组合逻辑的资源则相对较少,那么使用第一种方法会比较节省资源;

而有些CPLD的组合逻辑资源则比较多,用第二种方法可能更好。

⑴、分位译码器设计--1

因为控制器输出的到计时数值可能是1位或者2位十进制数,所以在七段数码管的译码电路前要加上分位电路(即将其分为2个1位的十进制数,如25分为2和5,7分为0和7)。

与控制器一样,分位电路同样可以由时钟驱动,也可以设计成纯组合逻辑电路。

控制器中,引入了寄存器。

为了让读者开拓眼界,分位电路就用组合逻辑电路实现。

⑵、下图为交通灯控制器的顶层文件连接图

四、程序设计

4.1主程序设计

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYJTDKZIS

PORT(CLK,SM,SB:

INBIT;

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

OUTBIT);

ENDJTDKZ;

ARCHITECTUREARTOFJTDKZIS

TYPESTATE_TYPEIS(A,B,C,D);

SIGNALSTATE:

STATE_TYPE;

BEGIN

CNT:

PROCESS(CLK)--定时器cnt进程

VARIABLES:

INTEGERRANGE0TO29;

--变量S为秒定时器

VARIABLECLR,EN:

BIT;

--clr低电平清零端,en高电平计数使能端

IF(CLK'

EVENTANDCLK='

1'

)THEN--若clk上升沿到

IFCLR='

0'

THENS:

=0;

--同步清零

ELSIFEN='

THENS:

=S;

--由en=’0’停止计数

ELSES:

=S+1;

ENDIF;

CASESTATEIS

WHENA=>

MR<

='

;

MY<

MG<

--A状态:

主干道绿灯亮

BR<

BY<

BG<

支道红灯亮

IF(SBANDSM)='

THEN--若两个道都有车

IFS=29THEN--若又采到“29s标志位”信号

STATE<

=B;

CLR:

EN:

--则为B状态、且清零、停止计数

ELSE--否则

=A;

--继续A状态计数

ELSIF(SBAND(NOTSM))='

THEN--若只有支道有车

WHENB=>

--B状态:

主黄

支红

IFS=3THEN--若采到3s标志位信号

=C;

--则为C状态、且清零、停止计数

--继续B状态计数

WHENC=>

--C状态:

主红

支绿

IF(SMANDSB)='

THEN--若两个道都有车

IFS=29THEN--若有采到“29s标志位”信号

STATE<

=D;

--则为D状态、且清零、停止计数

ELSE--否则

STATE<

--继续C状态计数

ENDIF;

ELSIFSB='

THEN--若支道无车

='

WHEND=>

--D状态:

BR<

支黄

IFS=3THEN--若又采到“3s标志位”信号

--则为A状态、且清零计数、停止计数

--继续D状态计数

ENDIF;

ENDCASE;

ENDPROCESSCNT;

ENDART;

五、实验结果

5.1程序仿真图

六﹑心得体会

短短两个星期的EDA课程设计很块就结束了,虽然在之前的学习过程中还存在着没有弄懂的问题,但是通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。

EDA设计我感觉程序调试最重要,试验软件、硬件熟悉其次。

我在编完各模块程序之后,编译查错最初有十几个错误,有输入错误、语法错误。

一遍一遍的变异查错,直到没有错误。

必须注意工程名和实体名一致,不然一般会出错。

在没有错误之后可以进行波型仿真。

若与理想的不同,再查看程序,有无原理上的编辑错误或没有查出的输入错误。

都通过可以进行管脚配对,把程序烧入芯片,在实物机上看结果,从显示中得出还需改正的地方,再去改程序。

必须注意没改一次都要编译,重新输入。

在设计的过程中还应该多联系下实际情况,要了解实际情况下交通信号灯的工作情况,才能更好的完成此次的课程设计。

在今后的工作和学习中,我们不能仅仅把目光停留在课本上,要多理论联系实际。

有的时候,理论上是正确的东西放到现实中去,可能由于种种因素的制约,并不能达到实际的效果,还需要我们进行相应的修改才能完成要求。

这次的课程设计使我巩固了以前学习到的知识,还使我掌握了以前没有掌握的知识,同时锻炼了自己的能力。

七、附录

1、顶层设计代码

library 

ieee;

use 

ieee.std_logic_1164.all;

ieee.std_logic_arith.all;

ieee.std_logic_unsigned.all;

ENTITY 

JiaoTongDeng 

is 

port(clr,clk,i,j,k:

in 

std_logic;

rm,ym,gm,rf,yf,gf:

out 

recount:

NEXT_S:

std_logic);

end 

entity 

JiaoTongDeng;

architecture 

JTD 

of 

component 

fenpingqi 

port(CLR,CLK:

q:

buffer 

component;

kongzhi 

port(clk,i,j,k:

count_down 

port(clk,reset, 

ena_1Hz, 

load:

std_logic_vector(7 

downto 

0);

seg7:

std_logic_vector(15 

next_state:

signal 

Q, 

recount_1,signal 

next_state_1:

begin 

u1:

port 

map(CLR=>

clr,CLK=>

clk,q=>

Q);

u2:

map(i=>

i,j=>

j,k=>

k,clk=>

Q,rm=>

rm,ym=>

ym,gm=>

gm1,rf=>

rf, 

yf=>

yf,gf=>

gf);

u3:

map(RE,CLK,ena_1Hz_1,recount_1,load,S,next_state_1);

NEXT_S<

=next_state_1;

JTD;

2、交通灯控制器代码

(clk,i,j,k:

kongzhi;

arc 

type 

state_type 

(a,b,c,d);

state:

state_type;

x:

std_logic_vector(2 

Begin 

x<

=i&

j&

k;

cnt:

process 

(clk) 

variable 

s:

integer 

range 

to 

49;

g:

nclr,en:

bit;

if 

="

001"

then 

=29;

elsif 

010"

=39;

100"

=49;

else 

if;

(clk'

event 

and 

clk='

) 

nclr='

en='

=s;

=s+1;

case 

state 

when 

a=>

rm<

ym<

gm<

rf<

yf<

gf<

s=g 

<

=b;

nclr:

en:

Else 

state<

=a;

b=>

s=3 

=c;

c=>

=d;

d=>

case;

cnt;

arc;

3、分位译码电路设计

ENTITYFenweiIS

PORT

(Numin:

INintegerRANGE0TO45;

NumA,NumB:

OUTIntegerRANGE0to9

);

END;

ARCHITECTUREbehaviorOFFenweiIS

process(Numin)

IFNumin>

=40THEN

NumA<

=4;

NumB<

=Numin-40;

ELSIFNumin>

=30THEN

=3;

=Numin-30;

=20THEN

=2;

=Numin-20;

=10THEN

=1;

=Numin-10;

ELSE

=Numin;

ENDIF;

ENDPROCESS;

八﹑参考文献

[1]潘松,黄继业.2006.EDA技术使用教程.北京:

科学出版社.

[2]黄任;

2005;

VHDL入门.解惑.经典实例.经验总结.北京:

北京航空航天大学出版社.

[3]徐志军,徐光辉.2002.CPLD/FPGA的开发与应用.北京:

电子工业出版社.

[4]褚振勇.FPGA设计与应用.西安:

西安电子科技大学出版社.

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

当前位置:首页 > 考试认证 > 司法考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1