酷文首页  
站内搜索:
网站地图 | RSS订阅 | 收藏本站
经济论文
证券金融
工商管理
会计审计
法学论文
医药论文
社会论文
教育论文
计算机论文
艺术论文
哲学论文
财政税收
财务管理
公共管理
理学论文
政治论文
文学论文
工学论文
文化论文
实用文档
应用文
自考成考
演讲稿
法律文书
子栏目导行↓
网站赞助商↓
本类热点↓
本类更新↓
热门标签↓
网摘收藏↓

基于VHDL的交通灯控制器的设计与实现

作者:易 博
来源:酷文网
点击:
载入中...
加入时间:2008-07-23
字体大小:[  ]

HOLD:交通灯控制器特殊情况控制键,当HOLD=1时表示出现特殊情况,控制模块中的信号灯信号将变为RA <=1,GA <=0,YA <=0;RB <=1,GB <=0,YB <=0。当HOLD=0时表示正常情况,控制模块中的枚举信号STATE正常转换。HOLD采用1位2进制来表示,用VHDL语句定义为HOLD:IN SDT_LOGIC。
NUM:计数输入端口。由NUM的值来决定枚举信号STATE的状态,NUM采用INTEGER来表示并将其范围限制为0到49,用VHDL语句定义为NUM:IN INTEGER RANGE 0 TO 49。
信号说明:
STATE:枚举信号,其有四种状态分别是S0,S1,S2,S3。S0代表RA <= 0, GA <=1,YA <=0;RB <=1,GB <=0,YB <=0。 S1代表RA <= 0, GA <=0,YA <=1;RB <=1,GB <=0,YB <=0。S2代表RA <= 1,GA <=0,YA <=0;RB <=0,GB <=1,YB <=0。
S3代表RA <= 1,GA <=0,YA <=0;RB <=0,GB <=0,YB <=1。用VHDL语句定义为TYPE STATE_TYPE IS(S0,S1,S2,S3);SIGNAL STATE :STATE_TYPE。
输出端口说明:
GA,YA,RA:代表交通A方向的信号灯。当GA或YA或RA的值为1时,则代表对应的绿灯或黄灯或红灯亮。当GA或YA或RA的值为0时,则代表对应的绿灯或黄灯或红灯不亮。用VHDL语句定义为GA,RA,YA:OUT STD_LOGIC。
GB,YB,RB:代表交通A方向的信号灯。当GB或YB或RB的值为1时,则代表对应的绿灯或黄灯或红灯亮。当GB或YB或RB的值为0时,则代表对应的绿灯或黄灯或红灯不亮。用VHDL语句定义为GB,RB,YB:OUT STD_LOGIC。
NUMA,NUMB:倒计时输出端口。分别为交通A,B方向计算倒计时间。NUMA,NUMB采用INTEGER来表示并将其范围限制为0到25,用VHDL语句定义为:NUMA,
NUMB:OUT INTEGER RANGE 0 TO 25。
4.2.3  实体说明
根据控制模块功能描述和总体框图的输入/输出信号,容易得到控制模块的实体说明,实体说明图如图7所示。

图7  控制模块实体说明
Fig 7  Entity discription of the controller
4.2.4  实现算法
通过控制器模块功能描述可以得出控制模块基本流程。控制器模块进程基本流程图如图8所示。


图8  控制模块进程
Fig 8  Process of the controller block
4.2.5  元件符号图
根据进程的算法流程图,我们容易编写对应的VHDL代码,把编写好的VHDL代码在Quartus II平台上运行,进行编译。编译成功之后,建立控制模块的符号元件,得到的控制模块的元件符号图如图9所示。


图9  控制模块的元件符号图
Fig 9 Component symbol diagram of the controller block
4.2.6  仿真
控制模块的仿真:当RESET起始状态设为高电平时,状态STATE转为S0。CLK为1HZ并且在上升沿时改变STATE的状态,即在S0,S1,S2,S3中循环转换。当HOLD为高电平时为特殊情况,RA,RB都为高电平。仿真结果与预设功能相符,仿真图如图10所示。


图10控制模块的仿真图
Fig 10 Simulatiom diagram of The controller

4.3  分位模块的设计
4.3.1  分位模块功能描述
分位模块主要功能是把输入信号NUMIN分为倒计时间的十位NUM10和个位NUM1。当NUMIN大于20时,十位NUM10赋值为2,个位NUM1则等于NUMIN减去20;当NUMIN大于10时,十位NUM10赋值为1,个位NUM1则等于NUMIN减去10;当NUMIN小于10时,十位NUM10赋值为0,个位NUM1则等于NUMIN。
4.3.2  输入/输出信号说明
根据分位模块功能描述和总体框图,得到分位模块的输入/输出信号,对输入输出信号的详细说明如下:
输入端口说明:
NUMIN:倒计时输入端口。为交通信号灯亮灯倒计时间。NUMIN采用INTEGER来表示并将其范围限制为0到25,用VHDL语句定义为:NUMIN:IN INTEGER RANGE 0 TO 25。
输出端口说明:
NUM10:时间输出端口。为交通信号灯一方向倒计时间的十位。NUM10采用INTEGER来表示并将其范围限制为0到2,用VHDL语句定义为:NUM10:OUT INTEGER RANGE 0 TO 2。
NUM1:时间输出端口。为交通信号灯一方向倒计时间的个位。NUM1采用INTEGER来表示并将其范围限制为0到9,用VHDL语句定义为:NUM1:OUT INTEGER RANGE 0 TO 9。
4.3.3  实体说明
根据分位模块功能描述和总体框图的输入/输出信号,容易得到分位模块的实体说明,实体说明图如图11所示。


图11  分位模块实体说明
Fig 11  Entity discription of the dividing figure
4.3.4  实现算法
通过分位模块的功能描述可以得出分位模块的基本流程。分位模块进程基本流程图如图12所示。


图12  分位模块进程
Fig 12  Process of the dividing figure
4.3.5  元件符号图
根据各进程的算法流程图,我们容易编写对应的VHDL代码,把编写好的VHDL代码在Quartus II平台上运行,进行编译。编译成功之后,建立分位模块的符号元件,得到的分位模块的元件符号图如图13所示。


图13  分位模块的元件符号图
Fig 13 Component symbol diagram of the dividing figure block
4.3.6  仿真
分位模块的仿真:由控制模块向分位模块输入数据后,分位模块会将数据分为十位和个位,十位范围为0到2,个位范围为0到9。仿真图结果与预计功能相符合。仿真图如图14所示。


  
图14  分位模块的仿真图
Fig 14 Simulation diagram of t the dividing figure
4.4  译码模块的设计
4.4.1  译码模块功能描述
译码模块主要功能是在CLK3为1KHZ上升沿扫描下,将输入信号NUMA10,NUMA1,NUMB10,NUMB1由INTEGER转换为STD_LOGIC_VECTOR(7 DOWNTO 0),每一位都与数码相应显示对应,并设置好选位信号DOUT8,数码管将轮流扫描NUMA10,NUMA1,NUMB10,NUMB1并显示。
4.4.2  输入/输出信号说明
根据译码模块功能描述和总体框图,得到译码模块的输入/输出信号,对输入输出信号的详细说明如下:
输入端口说明:
CLK3:系统基准时钟信号,频率为1KHZ。主要是扫描数码管。CLK3采用1位2进制来表示,用VHDL定义为CLK3:INT SDT_LOGIC。
NUMA10,NUMB10:输入信号。分别表示A,B方向的倒计时间十位上的数字。
NUMA10,NUMB10采用INTEGER来表示并将其范围限制为0到2,用VHDL语句定义为:NUMA10,NUMB10:IN  INTEGER RANGE 0 TO 2。转贴于 酷文网-论文下载中心 http://www.coolwen.net


共8页: 上一页 [1] [2] [3] [4] 5 [6] [7] [8] 下一页

网摘收藏:
免责声明 | 关于我们 | 广告联系 | 友情链接 | 网站地图 | 共同合作
免费论文 毕业论文 毕业论文范文 酷文网(www.coolwen.net) 版权所有 coolwen.net 2007,All Rights Reserved
E-mail:hui_love#tom.com(为防止垃圾邮件请把#换成@) 点击这里给我发消息 点击这里给我发消息
湘ICP备07003917号