数字电路课程设计:基于FPGA和VHDL语言的交通灯控制系统设计  _第1页
数字电路课程设计:基于FPGA和VHDL语言的交通灯控制系统设计  _第2页
数字电路课程设计:基于FPGA和VHDL语言的交通灯控制系统设计  _第3页
数字电路课程设计:基于FPGA和VHDL语言的交通灯控制系统设计  _第4页
数字电路课程设计:基于FPGA和VHDL语言的交通灯控制系统设计  _第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

电自八班 黎志浪 20080711110课程设计题目:基于FPGA和VHDL语言的交通灯控制系统设计设计者:黎志浪 20080711110组员:黄义华 20080711107 胡海尔 20080711106日期:2010年12月交通灯控制器功能描述:通过两组交通灯来模拟控制十字路口东西、南北两条道路上的车辆通行,所有功能在实验操作平台上模拟通过,其主要功能如下:1. 根据要求显示模拟路口东西、南北两个方向上的红灯、黄灯和绿灯的指示状态。2. 在LED指示的同时,实现正常的倒计时功能。3. 控制实现两种特殊状态并用交通灯加以显示。4. 能实现系统总清零。5. 具有一定的扩展功能。设计任务:1.用红、黄、绿三色发光二极管做信号灯,主干道A为东西向,设红、黄、绿三色灯为AR、AG、AY;支干道B为南北向,三色灯为BR、BG、BY。2.主干道上车辆较多,所以亮绿灯的时间设为50s;支干道亮绿灯的时间设为30s。当主干道允许通行亮绿灯时则支干道亮红灯;相反,支干道允许通行亮绿灯时则主干道亮红灯。每次由绿灯转变为红灯时,其间要亮5s的黄灯作为过渡,以便行驶中的车辆有时间停到禁止线以内。3.交通灯正常运行时,在LCD 显示屏上显示主干道和支道的倒计时时间,ES主干道在当前状态的剩余时间,SN显示支干道在当前状态的剩余时间。4.能实现系统清0,清0后计数器由初始状态开始计数,指示灯指示主干道亮绿灯。5.能实现特殊状态(如:有消防车、警车等通行时,需让警车、消防车先行通过)的显示,用开关S作为特殊信号传感器,S为1时进入特殊状态并实现以下功能: (1)计数器停止计数并保持在原来的时间数据和零之间来回跳动。(2)东西、南北方向的三色灯全显示红色状态。 (3)特殊状态解除后能继续返回正常工作状态。设计要求1.分析设计任务,拟定多种设计方案,根据当时的制作条件,选定适合的方案绘制框图和设计流程。2.设计各部分单元电路或编写VHDL描述程序。3.对制作的电路进行功能测试,分析各项技术指标;或对设计的电路进行功能仿真,分析仿真波形。4.总结设计资料,但因包括原理电路、VHDL描述、仿真波形的设计报告,校验并演示电路装置。状态顺序与灯亮对应表态序(S1 S0)主干道(A)支干道(B)亮灯时间1 (0 0)黄灯亮红灯亮5S2 (0 1)红灯亮绿灯亮30S3 (1 0)红灯亮黄灯亮5S4 (1 1)绿灯亮红灯亮50S交通灯控制状态图5S未到,保持原状态5S到,转到下一状态00状态YA,RB50S未到,保持原状态50S到,转到下一状态30S未到,保持原状态30S到,转到下一状态5S未到,保持原状态5S到,转到下一状态10状态RA,YB01状态RA,GB11状态GA,RB译码器真值表SS1S0AGARAYBGBRBY1XX010010000001010001010100011100010系统设计输入: 本实验采用硬件语言输入,其整体VHDL源文件描述如下,其中“S0”“S1”“S2”“S3”为事先设定的四种状态library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity JIAOTONGDENG is port (CP,RS,SPE: IN STD_LOGIC; EWRYG,SNRYG:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); EW,SN: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );end JIAOTONGDENG ;architecture JGT of JIAOTONGDENG ISTYPE STATES IS(S0,S1,S2,S3);SIGNAL S:STATES;SIGNAL A1,A2,B2: STD_LOGIC_VECTOR(7 DOWNTO 0); -BCD转换输入信号SIGNAL C1,C2,C3: STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL A2RYG,A3RYG,B2RYG,B3RYG:STD_LOGIC_VECTOR(2 DOWNTO 0);-BCD码显示在LCD上的信息FUNCTION SAM (BIN:STD_LOGIC_VECTOR(7 DOWNTO 0) -2位16进制转2位BCD码函数RETURN STD_LOGIC_VECTOR ISVARIABLE SBCD,ADDBCD :STD_LOGIC_VECTOR(7 DOWNTO 0); -定义BCD转换码中间变量VARIABLE N:INTEGER RANGE 0 TO 8;BEGINN:=0;SBCD:=00000000;IF BIN ADDBCD:=00000001; WHEN 1= ADDBCD:=00000010; WHEN 2= ADDBCD:=00000100; WHEN 3= ADDBCD:=00001000; WHEN 4= ADDBCD:=00010110; WHEN 5= ADDBCD:=00110010; WHEN 6= ADDBCD:=01100100; WHEN OTHERS= ADDBCD:=00000000;此分别为各位上的位权 END CASE; SBCD:=SBCD+ADDBCD; IF SBCD(3 DOWNTO 0)1001 THEN SBCD:=SBCD+0110; 超过9时,需加6,使其产生进位 END IF;END IF;N:=N+1;EXIT WHEN N=8;END LOOP;RETURN SBCD;ELSE RETURN 00000000;END IF;END FUNCTION SAM;BEGINPROCESS(CP,RS,SPE)BEGINIF RS=1 THEN S=S0; A1=X00; A2RYG=100;B2RYG=100; A2=X00; B2=X00;-颜色及所对应的代码赋值,A1为两组倒计时数据中的小项,以此来判断状态的转换ELSIF CP=1 AND CP EVENT THEN IF SPE=1 THEN A2RYG=100;B2RYG=100; C1=A1;C2=A2;C30 THEN A1=X00;A2=X00; B2=X00; ELSE A1=C1; A2=C2; B2 IF A10 THEN A1=A1-1;A2RYG=A3RYG;B2RYG=B3RYG;A2=A2-1;B2=B2-1; ELSEA1=X1D;S=S1;A2RYG=100;B2RYG=001;A3RYG=100;B3RYG=001;A2=X22; B2 IF A10 THEN A1=A1-1; A2RYG=A3RYG;B2RYG=B3RYG; A2=A2-1; B2=B2-1; ELSEA1=X04;S=S2;A2RYG=100;B2RYG=010;A3RYG=100;B3RYG=010;A2=X04;B2 IF A10 THEN A1=A1-1; A2RYG=A3RYG;B2RYG=B3RYG;A2=A2-1;B2=B2-1; ELSEA1=X31;S=S3;A2RYG=001;B2RYG=100;A3RYG=001;B3RYG=100;A2=X31; B2 IF A10 THEN A1=A1-1;A2RYG=A3RYG;B2RYG=B3RYG;A2=A2-1;B2=B2-1; ELSEA1=X04;S=S0;A2RYG=010;B2RYG=100;A3RYG=010;B3RYG=100;A2=X04;B2=X04; -转次态S0,主黄支红倒计5s END IF;END CASE;END IF;END IF;END PROCESS;PROCESS(A2,B2)BEGINEW=SAM(A2);SN=SAM(B2);END PROCESS;PROCESS(A2RYG,B2RYG)BEGINEWRYG=A2RYG;SNRYG=B2RYG;END PROCESS;END JGT;LCD模块-File name JTDLCD- 目的:在LCD上按格式显示交通灯的2个2位BCD码,红绿黄-输入:EW7.0、SN7.0 东西、南北向的2个2位BCD码-EWRYG2.0、SNRYG2.0东西南北的红绿灯信号,顺序为红黄绿-CPIN 时钟脉冲输入 按10MHz设计 ;复位R-注意:每个总线形式的输入均为LOGIC_VECTOR形式,因此,相应电路的输出要定义为LOGIC-VECTOR 形式,整型形式不能使用。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity JTDLCD is port (CPIN,R,BUSY :IN STD_LOGIC; EW,SN :IN STD_LOGIC_VECTOR(7 DOWNTO 0); EWRYG,SNRYG : IN STD_LOGIC_VECTOR(2 DOWNTO 0); CLK,RST,STROBE,OUTLINE : OUT STD_LOGIC; DATA : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); ADDR : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );end entity ;architecture JGT of JTDLCD is TYPE STATES IS (S0,S1,S2,S3,S4); SIGNAL S: STATES; SIGNAL LCDPT : INTEGER RANGE 0 TO 10; SIGNAL CPCT : INTEGER RANGE 0 TO 65535; SIGNAL CP: STD_LOGIC; SIGNAL ASCEW,ASCSN : STD_LOGIC_VECTOR(7 DOWNTO 0);beginPROCESS(CPIN,R)BEGINCLK=CPIN;IF R=1 THEN CPCT=65535;ELSIF CPIN=1 AND CPIN EVENT THEN IF CPCT=0 THEN CPCT=65535;CP=NOT CP; ELSE CPCT=CPCT-1; END IF;END IF;END PROCESS; -分频-S1,S2完成初始化固定显示的功能PROCESS(CP,R)BEGINIF R=1 THEN S=S0;LCDPT=0;RST S=S1;LCDPT=0;RST RST=0;STROBE=0; IF BUSY=0 THEN LCDPT=LCDPT+1; IF LCDPT=5 THEN S=S3; ELSE S S=S1;STROBE STROBE=0; IF BUSY=0 THEN IF LCDPT=10 THEN LCDPT=5; ELSE LCDPT=LCDPT+1; END IF; S STROBE=1;S NULL; END CASE;END IF; END PROCESS;-选择输出进程(LCDPT)-LCDPT=0,NULL- =14 显示EW SN E 45H,5 W57H,6 S53H,9 N4EH,10PROCESS(LCDPT)BEGINCASE LCDPT ISWHEN 0 = NULL;WHEN 1= DATA=01000101;ADDR=0101;OUTLINE DATA=01010111;ADDR=0110;OUTLINE DATA=01010011;ADDR=1001;OUTLINE DATA=01001110;ADDR=1010;OUTLINEDATA=0011&EW(7DOWNTO4);ADDR=0101;OUTLINEDATA=0011&EW(3DOWNTO0);ADDR=0110;OUTLINEDATA=ASCEW;ADDR=0100;OUTLINEDATA=0011&SN(7DOWNTO4);ADDR=1001;OUTLINEDATA=0011&SN(3DOWNTO0);ADDR=1010;OUTLINEDATA=ASCSN;ADDR=1000;OUTLINE NULL;END CASE;END PROCESS;PROCESS(EWRYG)BEGINCASE EWRYG ISWHEN 100 = ASCEW ASCEW ASCEW NULL;END CASE;END PROCESS;PROCESS(SNRYG)BEGINCASE SNRYG ISWHEN 100 = ASCSN ASCSN ASCSN NULL;END CASE;END PROCESS;end architecture JGT;部分测试程序:begin DUT:jiaotongdeng port map ( CP = CP, EW = EW, EWRYG = EWRYG, RS = RS, SN = SN, SNRYG = SNRYG, SPE = SPE ); STIMULUS0:process begin - insert stimulus here RS=1;WAIT FOR 2 NS; RS=0;SPE=0;WAIT FOR 1 NS; RS=0;SPE=1;WAIT FOR 1NS; RS=0;SPE=0;WAIT; END PROCESS; PROCESS BEGIN CP=0;WAIT FOR 5 NS; CP=1;WAIT FOR 5 NS; end process; WRITE_RESULTS( CP, EW, EWRYG, RS, SN, SNRYG, SPE);end architecture;交通灯控制电路原理图:仿真波形图:心得体会为期两周的课程设计终于结束了,这两周里,我感触颇深。总体来说这次课程设计做的不太好,最后作出来的成果比较粗糙,功能比

温馨提示

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

评论

0/150

提交评论