欢迎来到天天文库
浏览记录
ID:43104621
大小:304.01 KB
页数:9页
时间:2019-09-25
《VHDL交通灯信号控制器的设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、交通灯信号控制器的设计1.实验目的(1)熟悉MAX+plusⅡ软件的基本使用方法。(2)熟悉GW48—CKEDA实验开发系统的基本使用发放。(3)学习VHDL基本逻辑电路和状态机电路的综合设计应用。2.实验内容设计并调试好一个十字交叉路口的交通灯控制器,具体要求如下:(1)东西、南北方向有红、黄、绿指示灯,两个显示数码管。(2)当南北方向允许通行亮绿灯时,东西方向亮红灯,而东西方向允许通行亮绿灯时,南北方向亮红灯。(3)工作顺序为东西方向红灯亮45秒,前40秒南北方向绿灯亮,后5秒黄灯亮。然后南北方向红灯亮45秒,前40
2、秒东西方向绿灯亮,后5秒黄灯亮。整个设计包括计时信号发生器、交通灯控制器以及译码显示电路的设计。用GW48—CKEDA实验开发系统进行硬件验证。1.实验条件(1)开发软件:MAX+plusⅡ。(2)实验设备:GW48—CKEDA实验开发系统。(3)拟用芯片:EPF10K10-OLCC84。2.实验设计(1)系统的原理框图(1)VHDL源程序LIBRARYieee;USEieee.std_logic_1164.ALL;USEieee.std_logic_unsigned.ALL;ENTITYnclightISPort(cl
3、k:instd_logic;--xsh1:outstd_logic_vector(5downto0);--xsh2:outstd_logic_vector(5downto0);ra,rb,ya,yb,ga,gb:outstd_logic);ENDnclight;Architectureaofnclightistypestateis(S0,S1,S2,S3);signalpresentstate,nextstate:state;--signaltmp40:integerrange0to40:=0;--signaltmp5:
4、integerrange0to5:=0;signaltmp40:std_logic_vector(5downto0):="101000";signaltmp5:std_logic_vector(2downto0):="101";signaltimeout40,timeout5:std_logic;signalrst40,rst5:std_logic:='0';signalen40,en5:std_logic:='0';signalq:std_logic_vector(1downto0);signalsec:std_log
5、ic;Begin----get1hzclockpulsehz1:process(clk)beginifclk'eventandclk='1'thenq<=q+1;endif;sec<=q(1);--get1hzclockpulseendprocess;---reg:process(sec)beginifsec'eventandsec='1'thenpresentstate<=nextstate;endif;endprocessreg;---------------------------changestate:proce
6、ss(presentstate)BegincasepresentstateiswhenS0=>ra<='0';ya<='0';ga<='1';rb<='1';yb<='0';gb<='0';whenS1=>ra<='0';ya<='1';ga<='0';rb<='1';yb<='0';gb<='0';whenS2=>ra<='1';ya<='0';ga<='0';rb<='0';yb<='0';gb<='1';whenS3=>ra<='1';ya<='0';ga<='0';rb<='0';yb<='1';gb<='0';
7、whenothers=>ra<='1';ya<='0';ga<='0';rb<='1';yb<='0';gb<='0';endcase;endprocess;--------------------------timing:process(presentstate,timeout40,timeout5)begincasepresentstateiswhenS0=>rst40<='0';en40<='1';rst5<='1';en5<='0';iftimeout40='1'thennextstate<=s1;elsenex
8、tstate<=s0;endif;whenS1=>rst5<='0';en5<='1';rst40<='1';en40<='0';iftimeout5='1'thennextstate<=s2;elsenextstate<=s1;endif;whenS2=>rst40<='0';en40<='1';rst5<='1'
此文档下载收益归作者所有