交通灯控制程序.docx

上传人:b****3 文档编号:27561068 上传时间:2023-07-02 格式:DOCX 页数:21 大小:217.89KB
下载 相关 举报
交通灯控制程序.docx_第1页
第1页 / 共21页
交通灯控制程序.docx_第2页
第2页 / 共21页
交通灯控制程序.docx_第3页
第3页 / 共21页
交通灯控制程序.docx_第4页
第4页 / 共21页
交通灯控制程序.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

交通灯控制程序.docx

《交通灯控制程序.docx》由会员分享,可在线阅读,更多相关《交通灯控制程序.docx(21页珍藏版)》请在冰豆网上搜索。

交通灯控制程序.docx

交通灯控制程序

概要设计说明书

1引言

1.1编写目的

创建一个可供日常交通灯使用的程序,目标读者为交通灯控制人员。

1.2背景

说明:

a.交通路口复杂交通信号灯的设计

b.任务提出者,开发者:

陈磊

用户:

交通指挥系统

设计环境:

使用VerilogHDL语言进行设计

使用Quartus2编程环境进行开发。

1.3定义

ORDER选择信号

ROAD亮灯控制信号

EN55秒延时使能信号

LIN55秒延时终止信号

EN2525秒延时使能信号

LIN2525秒延时终止信号

RST系统复位信号

CLK系统时钟信号

1.4参考资料

VerilogHDL数字系统设计与应用

2总体设计

2.1需求规定

输入项目:

CLK系统时钟信号

RST系统复位信号

输出项目:

ROAD亮灯控制信号,ROAD=00,红灯亮;ROAD=01,黄灯亮;ROAD=10,绿灯亮;ROAD=11,黄灯亮。

处理要求:

根据ORDER的不同值,使相应的灯发亮。

2.2运行环境

运行环境:

QuartusII9.0

2.3基本设计概念和处理流程

 

 

2.4结构

ORDER选择某一灯的选择变量

ROAD控制某一灯亮的控制变量

2.5功能器求与程序的关系

本条用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系:

程序1

程序2

功能需求1

功能需求2

功能需求3

功能需求4

2.6人工处理过程

人工输入ORDER的值,根据ORDER的不同值,相应的灯变亮

2.7尚未问决的问题

创建一个稳定的时钟源

3接口设计

3.1用户接口

light(red,amber,green,0,order)

ORDER为控制变量,由它决定让哪一盏灯发亮。

ROAD=100,则红灯亮;

ROAD=010,则绿灯亮;

ROAD=001,则黄灯亮;

3.2外部接口

CLK外部时钟源信号

RST计时程序使能信号

ROAD控制哪一盏灯发亮的信号

3.3内部接口

根据ORDER的不同取值,在下面这段程序中,

case(order)

0:

begin

road='b100;

en25<=1;en5<=0;

if(lin25==1)order<=1;

end

1:

begin

road='b010;

en25<=0;en5<=1;

if(lin5==1)order<=2;

end

2:

begin

road='b001;

en25<=1;en5<=0;

if(lin25==1)order<=3;

end

3:

begin

road='b010;

en25<=0;en5<=1;

if(lin5==1)order<=0;

end

endcase

4运行设计

4.1运行模块组合

ORDER=0时,ROAD=100,调用模块TIMER25,红灯亮

ORDER=1时,ROAD=010,调用模块TIMER5,黄灯亮

ORDER=2时,ROAD=001,调用模块TIMER25,绿灯亮

ORDER=3时,ROAD=010,调用模块TIMER5,黄灯亮

4.2运行控制

ORDER=0时,ROAD=100,调用模块TIMER25,红灯亮

ORDER=1时,ROAD=010,调用模块TIMER5,黄灯亮

ORDER=2时,ROAD=001,调用模块TIMER25,绿灯亮

ORDER=3时,ROAD=010,调用模块TIMER5,黄灯亮

4.3运行时间

运行模块将始终占用CPU

5系统数据结构设计

5.1逻辑结构设计要点

ORDER选择变量用于选择让哪一盏灯亮

ROAD=100,则红灯亮;

ROAD=010,则绿灯亮;

ROAD=001,则黄灯亮;

5.2物理结构设计要点

ORDER2位寄存器变量每次存取要存取全部2位

ROAD3位寄存器变量,每次存取要存取全部3位

5.3数据结构与程序的关系

ORDER2位寄存器变量每次存取要存取全部2位

ROAD3位寄存器变量,每次存取要存取全部3位

6系统出错处理设计

6.1出错信息

1.系统开始运行时RST!

=0,即系统没有复位,即开始运行,此时会导致出错。

2.系统时钟工作不正常,各个时钟上升沿的间隔不相等,在此情况下延时程序会工作不正常,使延时时间延长或缩短。

6.2补救措施

故障1:

使RST初始时为0,过一段时间后再将RST置1。

故障2:

寻找一个工作稳定的时钟源作为系统的时钟源。

6.3系统维护设计

1.系统开始运行时RST!

=0,即系统没有复位,即开始运行,此时会导致出错。

2.系统时钟工作不正常,各个时钟上升沿的间隔不相等,在此情况下延时程序会工作不正常,使延时时间延长或缩短。

设计需求说明书

需求分析说明书的编写提示

2任务概述

2.1目标

该项目开发的意图是为了设计一个可供日常指挥交通使用的交通灯程序,应用目标是用来控制各种交通灯的运行,可以作用在各种类型的交通灯上。

该项目的代码主要是我根据书上已有的一部分资料,再加上自己在网上搜索得到的一些代码,将两者综合以后写出来的|

2.2用户的特点

该项目的应用对象—交通灯的主要特点如下:

1.任意时刻只能有一只灯(红、黄或绿灯)亮。

2.任意时刻必须有一只灯亮,不能三盏灯全是灭的。

3.任一只灯亮了一定时限后必须熄灭,不能一直亮着。

操作人员特点:

交通灯一般都是根据程序自动运行的,因此,无操作人员。

维护人员特点:

在机房维护交通灯控制程序的人员一般都是学习过编程控制原理的,因此,他们可以看懂程序如何控制交通灯运行的。

本课题预期使用频度:

此交通灯控制程序属于24小时全天候运行类型的。

2.3假定和约束

预期开发期限:

10周。

经费限制:

不需要经费。

3.2对性能的规定

3.2.1精度

根据变量ORDER的值,即可使相应的灯变亮,不会出现差错。

3.2.2时间特性要求

说明对于该项目的时间特性要求,如对:

a.响应时间:

根据设定的ORDER的值,立即跳转到相应状态。

b.更新处理时间:

必须等待TIMER5或TIMER25延时结束以后,才能进行更新

c.数据的转换和传送时间:

ORDER设定好以后,立即进行转换,无延迟。

d.解题时间:

立即转换,没有延迟。

3.2.3灵活性

a.操作方式上的变化:

没有影响

b.运行环境的变化:

没有影响

c.同其他系统的接口的变化:

没有影响

d.精度和有效时限的变化:

没有影响

e.计划的变化或改进:

没有影响

3.3输人输出要求

输入项:

ORDER:

2位寄存器型变量,取值范围从00到11。

CLK:

时钟源信号

RST:

延时程序使能信号

输出项:

ROAD:

3位寄存器型变量,取值为100、010或001

3.4数据管理能力要求

需要管理的文卷个数为三个,一个是交通灯控制程序,一个是25秒程序,另一个是5秒延时程序,两个文卷的大小均在300k以内。

3.5故障处理要求

1.系统开始运行时RST!

=0,即系统没有复位,即开始运行,此时会导致出错。

2.系统时钟工作不正常,各个时钟上升沿的间隔不相等,在此情况下延时程序会工作不正常,使延时时间延长或缩短。

3.6其他专门要求

要有一个稳定的时钟源,这样才能保证某一灯亮后,等待5秒或25秒以后,按照程序的设定,使下一盏灯变亮。

4运行环境规定

4.1设备

a.处理器型号为8086,内存容量100MB

b.外存容量100MB、联机方式、存储格式为二进制文件、设备的型号为ACEX1K;

c.输入及输出设备的型号为ACEX1K,联机方式;

d.数据通信设备的型号为ACEX1K,数量1只;

e.无功能键;

4.2支持软件

支持软件:

QuartusII9.0

4.3接口

串口通信协议。

4.4控制

根据ORDER的值不同,使不同的灯发亮,所以控制信号即为ORDER。

ORDER的值由计算机自动进行变换。

详细设计说明书

详细设计说明书

2所设计系统的结构

3模块1(标识符)设计说明

3.1模块描述

根据ORDER的不同值选择让不同的灯发亮,如果ORDER=00,则红灯亮;如果ORDER=01,则黄灯亮;如果ORDER=10,则绿灯亮;如果ORDER=11,则黄灯亮。

程序常驻内存,不可重入,是顺序处理。

3.2功能

该系统功能如下:

1.系统启动,各项复位

2.红灯亮,延时25秒

3.黄灯亮,延时5秒

4.绿灯亮,延时25秒

5.黄灯亮,延时5秒

6.返回2继续运行

 

3.3性能

程序设计好以后,在运行期间,未发生出错的情况。

3.4输人项

CLK系统时钟信号

RST系统复位信号

3.5输出项

ROAD亮灯控制信号,ROAD=00,红灯亮;ROAD=01,黄灯亮;ROAD=10,绿灯亮;ROAD=11,黄灯亮。

3.6算法

本程序使用一个CASE(ORDER)多重选择结构,根据ORDER的不同值,ROAD被赋给不同的值,具体设置如下所示:

ORDER=00红灯亮

ORDER=01黄灯亮

ORDER=10绿灯亮

ORDER=11黄灯亮

3.7流程逻辑

 

3.8接口

 

 

3.9存储分配

CONTROLLER模块:

60%的存储空间

TIMER5模块:

20%的存储空间

TIMER25模块:

20%的存储空间

3.10注释设计

ORDER选择信号

ROAD亮灯控制信号

EN55秒延时使能信号

LIN55秒延时终止信号

EN2525秒延时使能信号

LIN2525秒延时终止信号

RST系统复位信号

CLK系统时钟信号

3.11限制条件

必须要有一个稳定的时钟源,否则可能导致程序运行不正常。

3.12测试计划

在QuartusII9.0中运行该程序,因为程序中ORDER的值是按00,01,10,11的顺序赋值的,而且是循环赋值(即每次都按这个顺序赋一遍值),所以观察是否是按红灯,黄灯,绿灯,黄灯的顺序亮灯,若是,则程序运行正常,否则就不正常。

3.13尚未解决的问题

必须配备一个稳定的时钟源。

4模块2(标识符)设计说明

TIMER5模块:

用来完成延时5秒的功能。

TIMER25模块:

用来完成延时25秒的功能。

CONTROLLER模块:

用来控制交通灯的运行。

项目设计总结报告(GB8567——88)

2实际开发结果

2.1产品

该项目中共有3个程序:

TIMER5延时5秒程序

TIMER25延时25秒程序

CONTROLLER交通灯控制程序

各程序之间的关系如下图所示:

2.2主要功能和性能

该系统功能如下:

1.系统启动,各项复位

2.红灯亮,延时25秒

3.黄灯亮,延时5秒

4.绿灯亮,延时25秒

5.黄灯亮,延时5秒

6.返回2继续运行

该系统基本达到了原先的开发目的。

2.3基本流程

基本关系如下图:

 

 

流程图如下:

2.4进度

进度基本与预期一致,开发期间曾经遇到一些困难,我又上网搜了一些资料,最后终于赶上了进度。

2.5费用

工时:

48个学时

计算机使用时间:

32个学时

最终费用没有超过预期。

3开发工作评价

3.1对产品质量的评价

错误发生率:

使用中未曾发生出过出错现象,这也可能与使用时间过短有关,错误发生率为零。

3.3对技术方法的评价

本例中使用的是结构描述模块,这比使用行为描述模块要好得多。

我们只要写好模块的定义,使用时只需写出这个模块的名字,再配上需要的参数即可。

如果使用行为描述模块,我们使用一次就得把整个模块写一遍,再使用一次就得再把整个模块写一遍,这比结构描述模块的使用要浪费很多的时间和精力。

3.4出错原因的分析

1.系统开始运行时RST!

=0,即系统没有复位,即开始运行,此时会导致出错。

2.系统时钟工作不正常,各个时钟上升沿的间隔不相等,在此情况下延时程序会工作不正常,使延时时间延长或缩短。

4经验与教训

要先做系统整体上的规划,等概要设计、详细设计做完了以后再开始编程,此时程序的框架已经构建好了,我们只需要把该框架翻译成VerilogHDL代码即可。

不要一上来就开始编程,此时我们是想到哪里就写到哪里,大脑中没有一个系统的规划,根本不可能写出一段合格的代码来。

.

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

当前位置:首页 > 医药卫生 > 临床医学

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

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