




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
交通灯控制电路的设计一、 主要内容及提出1、 任务的提出 设计一个十字路口交通灯控制电路,能够指挥车辆在十字路口完成左转和不同路口的直行。2、 功能及初步分析 东西两组灯,南北两组灯,分别用来指示转弯和直行。如下表所示。交通灯控制电路状态表状态直行灯(南北)左转灯(南北)直行灯(东西)直行灯(东西)有效状态时间红黄绿红黄绿红黄绿红黄绿S000110010010027S10100101001003S210000110010027S31000100101003S410010000110027S51001000100103S610010010000127S70101001000103S000110010010027注:0表示灯灭,1表示灯亮。3、 扩展功能能够用倒计时计数及显示模块,实现有效状态下交通灯的持续亮的时间,且用数码管显示,方便行人。二、 总体方案设计方案:用时间控制交通灯的状态转换1、 原理本方案的主要思想是用时间控制交通灯状态的转换,时间变化是有规律的。先南北直行红灯亮,而后黄灯亮3秒,再直行绿灯亮27秒,黄灯亮3秒;然后南北转弯绿灯亮,黄灯亮,南北交通灯都亮红灯;东西交通灯以同样规律变化。(1)每次绿灯变红灯时,要求黄灯先亮3秒,黄灯亮时,绿灯灭。(2)要求在绿灯亮(通行时间内)和红灯亮(禁止通行时间内)时均有倒计时显示。所以基本符合现实功能,能够指挥车辆在十字路口完成左转和不同路口的直行。2、 基本功能、扩展功能分析 考虑交通灯的功能,一个十字路口至少需8组交通灯:东西南北各两组,一组指挥转弯,一组指挥直行。而设计的关键是控制交通灯的亮灭。考虑南北、东西方向灯的亮灭规律相同,故可以考虑用四组交通灯来模拟实际的八组交通灯:东西两组灯,南北两组灯,分别用来指示转弯和直行。可用计数器控制时间,在不同的时间显示不同的灯。根据设计分析,可以采用如下方案实现交通灯显示:通过计数来计时,不同的时间输出不同的使能信号,使各方向的不同交通灯显示不同的颜色。夜间车少需交通灯,则红灯、绿灯灭,黄灯闪烁使司机明白前方为十字路口,小心行驶。倒计时显示需设计不同的倒计时计数器,显示不同方向交通灯的显示时间,通过数码管显示时间,使行人方便。3、 总体方案(1) 结构图 (2)主要模块 交通灯设计主要分以下几个模块:时钟分频模块,交通灯亮灭控制模块,交通灯显示模块,倒计时计数模块,倒计时显示模块。 时钟分频模块可以将10MHz的信号,用一个二进制计数器,对其进行分频,从而得到适合的频率。选一个合适的作为时间计数器的扫描信号,另外再选一个作为数码管选通电路的触发信号。本方案是用一个24位的计数器,倒计时计数的周期比较慢,而数码管比较快所以可以将分得的23位和10位分别给两者作为扫描信号。 交通灯亮灭控制模块,是通过时间的变化来传输的。条件达到时即进行状态转换。用一个120的计数器,当时间递减到达93、90、63、60、33、30、3时发生相应的交通灯亮灭的转变。而时间为0时,重新置为120。 交通灯显示模块,利用LP2900装置的LED灯,将LED_COM端共阴点即P49=1,就可以启动。由交通灯控制模块来控制交通灯的亮灭变换。 倒计时计数模块及显示模块主要用于记录显示时间,以方便行人,可以用数码管显示,要注意的是需要将二进制数通过修正关系转化成BCD码。而当使能信号置0复位时,时间也要清零。本设计所用的修正关系,如下表所示。二进制转化BCD码修正关系十进制数二进制数BCD码修正值(十进制/二进制)00000 00000000,00000/0000 000090000 10010000,10010/0000 0000100000 10100001,00006/0000 0110190001 00110001,10016/0000 0110200001 01000010,000012/0000 1100290001 11010010,100112/0000 1100300001 11100011,000018/0001 0010390010 01110011,100118/0001 0010400010 10000100,000024/0001 1000490011 00010100,100124/0001 1000500011 00100101,000030/0001 1110590011 10110101,100130/0001 1110600011 11000110,000036/0010 0100(3)状态转换 状态转换中,任一状态的EN=1的前提,若EN=0均复位为S8状态。且每个状态下的时间没有到达时,都保持原有状态。通过这样的分析很容易得出交通灯之间的亮灭转换和时间的变化。若发生紧急情况就将交通灯的使能端置0,是所有的交通灯都工作在黄灯状态,保证道路的安全。(4)所需要的外围电路实验所需部件及功能管脚号基本功能本实验中具备功能P56开关,按下时输出高电平;没按下时输出为低电平开关按下时:交通灯停止工作,黄灯闪烁;弹起时,交通灯正常工作P49发光二极管使能端,高电平有效P47石英晶振输出端,产生10MHz周期信号做分频器的输入端,用来产生待测信号、开关门信号,即时基、时标信号P2、3、4、5、9、10、12、13、14、15、16、13812只发光二极管,高电平发亮模拟交通灯,不同时刻不同的灯亮P30、31、32数码管扫描管脚,三管脚为不同的数时,选择不同的数码管,实现动态显示三、 各模块的设计(1) 顶层模块的设计 10MHz作为脉冲信号,需要分频,NS、NSL、EW、EWL分别为南北、东西方向的直行和左转灯;GA为7段LED数码管所对应的段;P49为LED_COM端共阴点;P32选择数码管的扫描管脚。(2) 分频模块10Mhzshi FPGA芯片内部提供的脉冲振荡源,通过24位的计数器可以分得所需的频率。可以将FREQ10赋给数码管选通显示模块的扫描信号,将FREQ23赋给倒计时交通灯显示模块的扫描信号。(3) 倒计时计数模块EN=0,赋初值TIME=120;EN=1,TIME=TIME-1;且当TIME=0时,将TIME重新赋初值120。构成的就是一个8位M120的递减计数器。(4) 交通灯显示模块TIME的条件达到时,NS、NSL、EW、EWL灯发生相应的变化。(5) 74LS138数码管选通模块数据输入端译码输出P32(2)P32(1)P32(0)Y000Y0=0001Y1=0010Y2=0011Y3=0100Y4=0101Y5=0110Y6=0111Y7=0(6) 数码管显示模块十六进制码共阴极7段显示码DATA3DATA2DATA1DATA0GFEDCBA00000111111000100001100010101101100111001111010011001100101110110101101111101011100001111000111111110011101111101011110000000四、 具体实现及结果1、 实验目的利用FPGA实现交通灯基本复习了这一学期所学习及实验的VHDL语言和各种技巧。如:分频器、计数器、译码器(74LS138译码器、7段LED数码管显示器)等知识。对实体、端口、结构体、进程、元件例化语句等也是很好的复习,同时锻炼了自己的逻辑思维能力,分析能力和c语言的基本知识。2、 实验环境 本实验的逻辑设计平台是LP2900装置,它是力浦电子有限公司在1999年推出的新产品。能为逻辑设计提供设计、仿真及验证环境。LP2900是以Xilinx XCS10TQ144芯片为核心设计出来多功能逻辑电路设计实验平台。分为CPLD芯片板、电源、PC并口下载接口电路与I/O组件实验板等四部分。有10000门。而我本次实验所用资源为:四组红黄绿LED、四个共阴极七段显示器、一个数据开关、一个脉冲电路。即为下图所示。3、 实验内容及步骤 本实验的实现,只用了两个模块分频和计数模块,主要的实验程序都是在计数模块里面实现的。我先设计了一个用24位计数器是的分频模块,得到合适的扫描信号赋值给下一个模块,作为进程的信号敏感表。这样使计时的时间更加合理。主要有分频器计数器交通灯的状态显示模块时间显示模块。用到的符号的含义如下表所示。符号功能或含义CLK时钟控制信号EN使能信号,控制交通灯是否工作NNS南北方向直行灯NNSL南北方向左转灯EEW东西方向直行灯EEWL东西方向左转灯P32数码管选通信号P49LED共阴极点GA7段LED数码管CP倒计时扫描信号CP1数码管扫描信号FREQ分频后的24位频率VM5计数器选择数码管符号功能或含义DATA传送给数码管的数据NBCD南北方向交通灯有效状态时间NBCD1南北方向交通灯有效状态时间NBCD2南北方向交通灯有效状态时间BCD码EBCD东西方向交通灯有效状态时间EBCD1东西方向交通灯有效状态时间EBCD2东西方向交通灯有效状态时间BCD码TIME倒计时时间符号4、 实验结果及分析(1) 软件仿真结果这与在LP2900装置上仿真所用的信号是不相等的,为了方便看到结果,我将分频后得到的低两位分别作为交通灯状态转换倒计时扫描信号和数码管选通扫描信号。即CP=FREQ(0),CP1327357327; 东西方向的时间变化为:57327327357; 整个时间的计数:从120开始递减到0后又重新赋值; 南北直行方向的灯的状态为:黄绿黄红黄绿; 南北左转方向的灯的状态为:黄红黄绿黄红; 东西直行方向的灯的状态为:黄红黄绿黄红; 南北左转方向的灯的状态为:黄红黄绿黄红。(3)状态转换图五、结论1、能实现的功能 交通灯的状态转换和倒计时时间的显示,基本能实现东西、南北直行和转弯灯的显示功能。2、不足之处 (1)我所用的是一个大的计数器来实现交通灯的控制电路的设计,若能使用双进程状态机描述会使程序更加简练,而且状态之间的转化关系更加明朗。 (2)另外,在现实中晚上没有行人,可以不用交通灯控制,只需要黄灯亮着提醒人们前方有路口即可。那就需要一个始终显示模块,指定的时间内回到初始状态也就是我用的EN=0是的状态。只是人为控制,若有24小时的计时会使交通灯的控制智能化。 (3)有些城市的交通灯中也有右转灯,这个程序中有很多地方仍然需要改进。附录:程序清单library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;use IEEE.std_logic_unsigned.all;entity traffic is port ( clk: in STD_LOGIC; en: in STD_LOGIC; p49: out STD_LOGIC; nnsl: out STD_LOGIC_VECTOR (2 downto 0); eewl: out STD_LOGIC_VECTOR (2 downto 0); nns: out STD_LOGIC_VECTOR (2 downto 0); eew: out STD_LOGIC_VECTOR (2 downto 0); ga: out STD_LOGIC_VECTOR (6 downto 0); p32: out STD_LOGIC_VECTOR (2 downto 0) );end traffic;architecture traffic_arch of traffic issignal cp,cp1: std_logic;signal freq:std_logic_vector(23 downto 0);signal v: std_logic_vector(2 downto 0);signal data:std_logic_vector(3 downto 0);signal nsl,ewl,ns,ew:std_logic_vector(2 downto 0);signal nbcd,nbcd1,nbcd2,ebcd,ebcd1,ebcd2: std_logic_vector(7 downto 0);signal time:std_logic_vector(7 downto 0); begin frequence:block -div_fren begin process(clk) begin if clkevent and clk=1 then freq=freq+1; end if; end process; cp=freq(23); cp1=freq(10);end block frequence;state:block -state begin process(en,cp) begin if en=0 then ns=010; nsl=010;ew=010;ewl=010; -s8 time=01111000; elsif cpevent and cp=1 then time=time-1; if time=120 then ns=001;nsl=100;ew=100;ewl=100; -s0 elsif time=93 then ns=010;nsl=010;ew=100;ewl=100;-s1 elsif time=90 thenns=100;nsl=001;ew=100;ewl=100;-s2 elsif time=63 then ns=100;nsl=010;ew=010;ewl=100;-s3 elsif time=60 thenns=100;nsl=100;ew=001;ewl=100;-s4 elsif time=33 thenns=100;nsl=100;ew=010;ewl=010;-s5 elsif time=30 then ns=100;nsl=100;ew=100;ewl=001;-s6 elsif time= 3 then ns=010;nsl=100;ew=100;ewl=010;-s7 elsif time= 0 then time=01111000; end if; if time93 then nbcd=time-93;ebcd=time-63; elsif time90 then nbcd=time-90;ebcd=time-63; elsif time63 then nbcd=time-63;ebcd=time-63; elsif time60 thennbcd=time-60;ebcd=time-60; elsif time33 thennbcd=time-3;ebcd=time-33; elsif time30 thenebcd=time-30;nbcd=time-3; elsif time3 thenebcd=time-3;nbcd=time-3; elsif time0 thennbcd=time;ebcd=time; end if; end if; nnsl=nsl;eewl=ewl;nns=ns;eew=ew; nbcd1=nbcd;ebcd1=50 and nbcd1=60 then nbcd2=40 and nbcd1=50 then nbcd2=30 and nbcd1=40 then nbcd2=20 and nbcd130 then nbcd2=10 and nbcd120 then nbcd2=nbcd1+6; else nbcd2=50 and ebcd1=60 then ebcd2=40 and ebcd1=50 then ebcd2=30 and ebcd1=40 then ebcd2=20 and ebcd130 then ebcd2=10 and ebcd120 then ebcd2=ebcd1+6; else ebcd2=ebcd1; end if; end process; process(cp1) -M6 ,choose LED begin if cp1event and cp1=1 then if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年医师定期考核模拟试题附完整答案详解(名师系列)
- 2025年度百色平果市马头镇卫生院招聘编外卫生专业技术人员考前自测高频考点模拟试题含答案详解(新)
- 酒店礼仪电子培训
- 福建省梅列第一实验学校2026届九年级英语第一学期期末学业质量监测试题含解析
- 2026届云南省玉溪市化学九上期末预测试题含解析
- 2026届保定市重点中学九年级英语第一学期期末联考试题含解析
- 2026届北京市清华大附属中学化学九年级第一学期期末教学质量检测模拟试题含解析
- 再生障碍性贫血护理新进展
- 互联网金融浅析
- 2026届北京四十四中学化学九年级第一学期期末调研模拟试题含解析
- 树木物候期观察讲解
- 电子离婚协议书模板
- GB 30180-2024煤制烯烃、煤制天然气和煤制油单位产品能源消耗限额
- 《祝福》(教学课件)- 统编版高中语文必修下册
- 兴城市2021年(中小学、幼儿园)教师招聘试题及答案
- 托班育儿知识讲座
- 危化品运输安全培训的事故案例与分析
- 流体力学在化工中的应用
- JJG 443-2023燃油加油机(试行)
- 安全生产责任保险事故预防技术服务方案
- 电路检查记录表
评论
0/150
提交评论