交通灯控制器_第1页
交通灯控制器_第2页
交通灯控制器_第3页
交通灯控制器_第4页
交通灯控制器_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

可编程逻辑器件应用可编程逻辑器件应用 项项 目目 报报 告告 书书 项目名称 交通灯控制器 指导老师 龚兰芳 姓 名 李诗华 学 号 080212215 班 级 08 电子 2 班 目录目录 一 设计一 设计要要求求 二 二 设计方案设计方案 三 三 设计程序设计程序 四 四 管脚分配管脚分配 五 五 硬件下载实现现象描述硬件下载实现现象描述 六 六 体会体会与与收收获获 一 一 设计要求设计要求 1 简要说明 在十字路口 每条道路各有一组红 黄 绿灯和倒计时显示器 用以指挥车辆和行人有序地通行 其中 红灯 R 亮 表示该条 道路禁止通行 黄灯 Y 亮 表示停车 绿灯 G 亮 表示可以 通行 倒计时显示器是用来显示允许通行和禁止通行地时间 交通 灯控制器就是用来自动控制十字路口的交通灯和计时器 指挥各种 车辆和行人安全通行 2 任务和要求 在十字路口的两个方向上各设一组红 绿 黄灯 显示顺序为 其中一方向 东西方向 是绿灯 黄灯 红灯 另一方向 南 北方向 是红灯 绿灯 黄灯 设置一组数码管 以倒计时的方式显示允许通行或禁止通行的 时间 其中绿灯 黄灯 红灯的持续时间分别是20s 5s和 25s 当各条路上任意一条上出现特殊情况时 如当消防车 救护车或其他需要优先放行的车辆通过时 各方向上 均是红灯亮 倒计时停止 且显示数字在闪烁 当特 殊运行状态结束后 控制器恢复原来状态 继续正常 运行 二 二 设计方案设计方案 从设计的要求出发 先编好两个两位的十进制计数器 然允许通后使这两个计数器进行倒计时 实现设计的要求 设置一组数码管 以倒计时的方式显示行或禁止通行的时 间 其中绿灯 黄灯 红灯的持续时间分别是20s 5s和 25s 然后 在原来程序的基础上 利用彩灯来实现十字路 口的两个方向上各设一组红 绿 黄灯 显示顺序为其中 一方向 东西方向 是绿灯 黄灯 红灯 另一方向 南 北方向 是红灯 绿灯 黄灯 最后 在完成的程序上 加一个开关实现当各条路上 任意一条上出现特殊情况时 如当消防车 救护车或其他 需要优先放行的车辆通过时 各方向上均是红灯亮 倒计 时停止 且显示数字在闪烁 当特殊运行状态结束后 控 制器恢复原来状态 继续正常运行 三 三 设计设计程序程序 库库 library ieee use ieee std logic 1164 all use ieee std logic unsigned all use ieee std logic arith all 实体实体 entity bada is port rst clk qw y in std logic clk 为时钟输入 为时钟输入 rst 为特殊情况下为特殊情况下 控制红灯亮的开关 控制红灯亮的开关 qw 为特殊情况为特殊情况 下控制数字在闪烁的开关 下控制数字在闪烁的开关 Y 为复位为复位 开关开关 a out std logic vector 2 downto 0 彩灯 用来显示红彩灯 用来显示红 灯 绿灯 黄灯灯 绿灯 黄灯 b out std logic vector 3 downto 0 彩灯组选彩灯组选 duan out std logic vector 5 downto 0 数码管组选数码管组选 cout out std logic vector 6 downto 0 数码管段选数码管段选 end 结构体结构体 architecture one of bada is signal m n integer range 0 to 6 signal t integer range 0 to 1 signal cnt5 cnt6 cnt7 integer range 0 to 3 signal clk 1k clk 50h clk 1h std logic 定义三个分频信号定义三个分频信号 signal data std logic vector 3 downto 0 signal dout std logic vector 5 downto 0 选择不同的数码管组选择不同的数码管组 给到输出给到输出 signal s std logic vector 6 downto 0 将数码管数据输出将数码管数据输出 signal h k a1 std logic vector 2 downto 0 用来选择红灯 绿用来选择红灯 绿 灯 黄灯灯 黄灯 signal j l b1 std logic vector 3 downto 0 用来选择彩灯组选用来选择彩灯组选 signal led1 led2 led3 led4 std logic vector 3 downto 0 1K 分频程序分频程序 begin process clk variable cnt1 integer range 0 to 250 variable cnt2 integer range 0 to 100 begin if clk event and clk 1 then if cnt1 250 then cnt1 0 if cnt2 100 then cnt2 0 clk 1k not clk 1k else cnt2 cnt2 1 end if else cnt1 cnt1 1 end if end if end process 50 分频程序分频程序 process clk variable cnt1 integer range 0 to 500 variable cnt2 integer range 0 to 1000 begin if clk event and clk 1 then if cnt1 500 then cnt1 0 if cnt2 1000 then cnt2 0 clk 50h not clk 50h else cnt2 cnt2 1 end if else cnt1 cnt1 1 end if end if end process 1 分频程序分频程序 process clk variable cnt3 integer range 0 to 5000 variable cnt4 integer range 0 to 5000 begin if clk event and clk 1 then if cnt3 5000 then cnt3 0 if cnt4 5000 then cnt4 0 clk 1h not clk 1h else cnt4 cnt4 1 end if else cnt3 cnt3 1 end if end if end process 数字闪烁的程序数字闪烁的程序 process clk 50h begin if clk 50h event and clk 50h 1 then if cnt5 3 then cnt5 0 else cnt5 cnt5 1 end if end if end process process clk 1k begin if clk 1k event and clk 1k 1 then if rst 0 then a a1 b b1 else if cnt6 3 then a k b l cnt6 0 else cnt6 cnt6 1 a h b j end if end if end if end process 选择数字闪烁的程序选择数字闪烁的程序 process qw begin if qw 0 then cnt7 cnt5 else cnt7doutdoutdoutdoutnull end case end process process dout begin case dout is when 111110 datadatadatadatanull end case end process 倒计时程序倒计时程序 process clk 1h begin if rst 0 then 特殊情况下红灯亮特殊情况下红灯亮 a1 001 b1 0000 elsif clk 1h event and clk 1h 1 then if y 0 then 复位复位 led1 0000 led2 0010 led3 0101 led4 0010 h 100 j 1010 k 001 l 0101 m 0 n 0 else if t 0 then led1 0000 led2 0010 led3 0101 led4 0010 h 100 j 1010 k 001 l 0101 t t 1 else if led1 0000 then if m 2 then led1 1001 led2 led2 1 led3 led3 1 m m 1 elsif m 2 then k 010 led1 0101 m m 1 elsif m 3 then h 001 k 100 led1 0101 led2 0010 m m 1 elsif m 5 then led1 1001 led2 led2 1 led3 led3 1 m m 1 elsif n 6 then m 0 t 0 end if elsif led3 0000 then if n 2 then led3 1001 led1 led1 1 led4 led4 1 n n 1 elsif n 2 then led3 0000 led4 0010 n n 1 elsif n 4 then led3 1001 led1 led1 1 led4 led4 1 n n 1 elsif n 5 then h 010 k 100 led3 0101 led4 0000 n n 1 elsif n 6 then n 0 end if else led1 led1 1 led3ssssssssssnull end case end process duan dout cout s end 四 四 管脚分配管脚分配 五 五 硬件下载实现现象描述硬件下载实现现象描述 和设计的要求一样 当开关RST和QW为高电平时 程序开始运行在十字路口的两个方向上一组红 绿 黄灯 显示顺序为其中一方向 东西方向 是绿灯 黄灯 红灯 另一方向 南北方向 是红灯 绿灯 黄灯 数码管以倒 计时的方式显示允许通行或禁止通行的时间 其中绿灯

温馨提示

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

评论

0/150

提交评论