版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中航西安飞机工业集团股份有限公司招聘(60人)笔试模拟试题及答案解析
- 2026新疆机场(集团)有限责任公司阿克苏管理分公司第二季度招聘48人考试备考试题及答案解析
- 加油站安全知识培训试题及参考答案
- 建筑安全生产模拟习题(含参考答案)
- 2026四川民族学院考核招聘非事业编制工作人员28人考试模拟试题及答案解析
- 2026年福建医科大学孟超肝胆医院招聘26名工作人员笔试模拟试题及答案解析
- 检察院书记员面试真题及参考答案
- 2026西安市浐灞第七中学教师招聘(8人)笔试备考试题及答案解析
- 2026南方医科大学第八附属医院陈村医院招聘11人考试模拟试题及答案解析
- 2026江苏南通建交建筑工程有限公司招聘1人笔试备考试题及答案解析
- 凯迪拉克汽车-车主讲堂-夏季养护
- QMS-GC03.014-2014a品质刚性管理办法
- 《中国工业和信息化可持续发展报告2022》-24正式版
- 政务信息写作技巧课件
- CNG加气站知识培训课件
- 钻孔灌注桩施工安全控制培训教材课件
- 2021年中国戏曲学院辅导员招聘笔试试题及答案解析
- 机械制图说课(刘力)课件
- 轴承失效分析PPT
- DB11T 842-2019 近自然森林经营技术规程
- (完整word版)中国叙事学_杨义
评论
0/150
提交评论