交通灯控制规律电路设计与总结报告_第1页
交通灯控制规律电路设计与总结报告_第2页
交通灯控制规律电路设计与总结报告_第3页
交通灯控制规律电路设计与总结报告_第4页
交通灯控制规律电路设计与总结报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——交通灯控制规律电路设计与总结报告

CPLD语言设计

交通灯控制规律电路设计与总结报告

一、设计任务

用CPLD设计路口交通灯控制器

二、设计要求

1、满足一下时序要求:南北方向红灯亮,东西方向绿灯亮;南北方向绿灯亮,东西方向红灯亮;

2、每一方向的红(绿)黄灯总共维持30秒;

3、十字路口要有时间显示,具体为:当某一方向绿灯亮时,置显示器为30秒,然后以每秒减一技术方式工作,直至减到数为4秒时,红绿灯熄灭,黄灯开始间隙闪烁4秒,减到0时,红绿灯交换,一次工作循环终止,进入下一步另一方向的工作循环;

4、红绿灯均采用发光二极管;

5、设计由晶振电路产生1Hz标准秒信号的单元电路(实际秒脉冲由开发箱提供);

6、要求对整体电路进行仿真,观测并记录下仿真波形;

7、选作部分:

a、手动调整和自动控制,夜间为黄灯闪烁;

b、白天黄灯亮时,以2Hz的速度闪烁点亮四秒;

c、红绿灯循环点亮时间可以自由修改。

三、设计设备

含有Quartus软件的电脑一台,可下载的试验台;

四、设计方法

使用VHDL语言进行程序的设计运行和仿真,以及波形的运行仿真,最终进行下载仿真;

五、方案论证

方案1:把整个流程分成几个进程来做;

方案2:每个进程都使用if和case语句实现功能的实现;

方案3:使用状态机来实现状态间的转换;

方案论证:

1、要实现整个流程,需要做的输出内容类型不同,假使放在一个进程里面就比较简单混淆,产生混乱。而采用分成几个进程来做的方式就明确了每个模块的内容和分工,使其调理明了,一目了然;

2、if语句是条件语句,是VHDL语言中常用的基本语句。该流程中的变量比较繁多,而使用case语句分状况列出来,简单明白。

3、状态机的使用格式简单,使用简单便利,特别是在进行状态的转换时候。并行的状态转换不易出错,可将状态转换、赋值、计数等多个功能封装在某一个状态中,并且更

CPLD语言设计

加便于为系统添加新的状态功能。

方案选定:

通过以上分析,确定用以上方案为本次设计的方案。

六、工作原理

先对所给时钟脉冲进行分频到标准时钟脉冲;设计两个时钟控制倒计时,倒计时的时间可自由修改,由输入决定;设计另一个时钟,用以控制白天与夜间模式的转换;在白天时,根据倒计时的数字进行红绿灯的状态转换;夜间时,红绿灯状态改为夜间模式:黄灯闪烁。

七、程序设计

交通灯控制系统所使用的库和包

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

交通灯控制系统的实体

entityjtis

port(clk,reset:instd_logic;时钟脉冲clk由系统直接提供,需要进行分

频;reset是启动键,当reset为1是,系统启动

t0:integerrange0to30;红绿灯循环点亮的时间,根据输入的不同

系统运行的不同

r1,y1,g1,r2,y2,g2:outstd_logic;r1为东西方向红灯,y1为东西方

向黄灯,g1为东西方向绿灯;r2为南北方向红灯,

y2为南北方向黄灯,g2为南北方向绿灯

ec0,ec1,nc0,nc1:outstd_logic_vector(3downto0));

ec0,ec1分别为东西方向的倒计时间的个位和十位;

nc0,nc1分别为南北方向的倒计时间的个位和十位

endjt;

交通灯控制系统的结构体(5个进程)

architectureoneofjtis

typestate_typeis(s0,s1,s2,s3);定义状态的类型

signalstate:state_type;使用状态机

signalk:std_logic;分频后的1Hz的标准时钟脉冲

signalc1,c2:integerrange0to30;定义东西、南北方向的两个

倒计时的计数

signalt1:integerrange0to3600;

signalt2:integerrange0to24;定义一个时钟,用以控制白天与夜间模式Begin

CPLD语言设计

该进程用以分频

q0:process(clk)

variablett:std_logic_vector(9downto0);中间变量

begin

ifclk'eventandclk='1'then

iftt=1111101000then把所给1kHz分频成1Hz的脉冲

k,10000分频,仿真值用

“0000000100〞八分频

tt:=(others='0');

k='1';

else

tt:=tt+1;

k='0';

endif;

endif;

endprocessq0;

该进程用以设计时钟

q1:process(k,reset)

begin

ifreset='1'then启动开关为1时,系统开始运行

t1=0;

t2=0;从0点开始

elsifk='1'andk'eventthen

ift1=3599then一个t1循环是一个秒,仿真值用“35〞

ift2=23then一个t1循环是一个小时,一天24小时

t2=0;

else

t2=t2+1;

endif;

t1=0;

else

t1=t1+1;

endif;

endif;

endprocessq1;

该进程用以控制白天黑天模式和红绿灯状态转换

q2:process(k,reset,t2)

begin

CPLD语言设计

ift2=5andt2=22then白天模式5:00到22:00之间

ifreset='1'then启动开关为1时,系统开始运

行,进行状态转换

r1='0';y1='0';g1='1';东西方向绿灯亮

r2='1';y2='0';g2='0';南北方向红灯亮

state=s0;红绿灯处于初始状态s0

c1=t0;

c2=t0;倒计时从自由输入值开始递减

elsifk='1'andk'eventthen

casestateis

whens0=当处于第1状态时,探讨

ifc1=5then由于进程内部的并列进

行,当倒计时第4秒时,

进入到第2状态s1

state=s1;

c1=c1-1;

c2=c2-1;倒计时递减

elsifc2=0then倒计时减到0时,再从

初始值开始

c1=t0;

c2=t0;

else否则继续保持第1状态s0state=s0;

c1=c1-1;

c2=c2-1;

endif;

whens1=当处于第2状态时,探讨

ifc1=1then由于进程内部的并列进行,当

倒计时第t0秒时,进入

到第3状态s2

state=s2;

c1=c1-1;

c2=c2-1;

else否则继续保持第2状态state=s1;

c1=c1-1;

c2=c2-1;

endif;

whens2=当处于第3状态时,探讨

ifc2=5then由于进程内部的并列进行,

当倒计时第4秒时,进入到

第4状态s3

state=s3;

c1=c1-1;

CPLD语言设计

c2=c2-1;elsifc1=0then倒计时减到0时,再从初始值开始c1=t0;c2=t0;else否则继续保持第3状态state=s2;c1=c1-1;c2=c2-1;endif;whens3=当处于第4状态时,探讨ifc2=1then由于进程内部的并列进行,当倒

计时第t0秒时,进入到

第1状态s0

state=s0;

c1=c1-1;

c2=c2-1;

else否则继续保持第4状态

state=s3;

c1=c1-1;

c2=c2-1;

endif;

whenothers=state=s0;

endcase;

ifstate=s0then

r1='0';y1='0';g1='1';

r2='1';y2='0';g2='0';

elsifstate=s1then

r1='0';g1='0';

r2='1';y2='0';g2='0';

ifc1=4orc1=2theny1='1';

elsey1='0';

endif;

elsifstate=s2then

r1='1';y1='0';g1='0';

r2='0';y2='0';g2='1';

elsifstate=s3then

r1='1';y1='0';g1='0';

r2='0';g2='0';

ifc2=4orc2=2theny2='1';

elsey2='0';

endif;

endif;

CPLD语言设计

各个状态的红绿灯变量的赋值,‘1’亮‘0’熄

endif;

else夜间模式22:00到次日5:00之间

c2=0;c1=0;

r1='0';r2='0';g1='0';g2='0';

y1=k;y2=k红绿灯的状态:脉冲k赋给黄灯变量,黄灯闪烁

endif;

endprocessq2;

该进程用于东西方向倒计时的译码显示

q3:process(c1)

begin

casec1is

when0=ec0=0000;ec1=0000;

when1=ec0=0001;ec1=0000;

when2=ec0=0010;ec1=0000;

when3=ec0=0011;ec1=0000;

when4=ec0=0100;ec1=0000;

when5=ec0=0101;ec1=0000;

when6=ec0=0110;ec1=0000;

when7=ec0=1000;ec1=0000;

when9=ec0=1001;ec1=0000;

when10=ec0=0000;ec1=0001;

when11=ec0=0001;ec1=0001;

when12=ec0=0010;ec1=0001;

when13=ec0=0011;ec1=0001;

when14=ec0=0100;ec1=0001;

when15=ec0=0101;ec1=0001;

when16=ec0=0110;ec1=0001;

when17=ec0=0111;ec1=0001;

when18=ec0=1000;ec1=0001;

when19=ec0=1001;ec1=0001;

when20=ec0=0000;ec1=0010;

when21=ec0=0001;ec1=0010;

when22=ec0=0010;ec1=0010;

when23=ec0=0011;ec1=0010;

when24=ec0=0100;ec1=0010;

when25=ec0=0101;ec1=0010;

when26=ec0=0110;ec1=0010;

when27=ec0=0111;ec1=0010;

when28=ec0=1000;ec1=0010;

when29=ec0=1001;ec1=0010;

when30=ec0=0000;ec1=0011;

CPLD语言设计

当在设定范围内时,分别为个位十位译码并显示whenothers=ec0=0000;ec1=0000;

否则,LED灯显示0

endcase;

endprocessq3;

该进程用于南北方向倒计时的译码显示

q4:process(c2)

begin

casec2iswhen0=nc0=0000;nc1=0000;when1=nc0=0001;nc1=0000;when2=nc0=0010;nc1=0000;when3=nc0=0011;nc1=0000;when4=nc0=0100;nc1=0000;when5=nc0=0101;nc1=0000;when6=nc0=0110;nc1=0000;when7=nc0=0111;nc1=0000;when8=nc0=1000;nc1=0000;when9=nc0=1001;nc1=0000;when10=nc0=0000;nc1=0001;when11=nc0=0001;nc1=0001;when12=nc0=0010;nc1=0001;when13=nc0=0011;nc1=0001;when14=nc0=0100;nc1=0001;when15=nc0=0101;nc1=0001;when16=nc0=0110;nc1=0001;when17=nc0=0111;nc1=0001;when18=nc0=1000;nc1=0001;when19=nc0=1001;nc1=0001;when20=nc0=0000;nc1=0010;when21=nc0=0001;nc1=0010;when22=nc0=0010;nc1=0010;when23=nc0=0011;nc1=0010;when24=nc0=0100;nc1=0010;when25=nc0=0101;nc1=0010;when26=nc0=0110;nc1=0010;when27=nc0=0111;nc1=0010;when28=nc0=1000;nc1=0010;when29=nc0=1001;nc1=0010;when30=nc0=0000;nc1=0011;当在设定范围内时,分别为个位十位译码并显示whenothers=nc0=0000;nc1=0000;

CPLD语言设计

endprocessq4;

endarchitectureone;所有进程终止

八、仿真结果

1、clk为输入脉冲;开始令reset为’1’,启动系统,系统正常工作后值为’0;t0为红绿灯循环时间,可自由修改,假使输入值为’0010000’,则为16秒倒计时。如下图:系统从0点开始运行,处于夜间模式时,倒计时都为“00〞,两个方向都为黄灯闪烁,红绿灯都熄灭。

否则,LED灯显示0endcase;

2、5:00之后,进入到白天模式:从第1状态

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论