欢迎来到天天文库
浏览记录
ID:58863403
大小:111.50 KB
页数:7页
时间:2020-09-22
《基于VHDL的交通灯控制器设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、生物医学工程王春雨基于VHDL的交通灯控制器设计应用VHDL语言设计数字系统,大部分设计工作可在计算机上完成,从而缩短系统开发时间,提高工作效率。下面介绍基于VHDL设计交通灯控制器的一种方案,并给出源程序和仿真结果。1系统功能与要求实现交通繁忙的主路和偶有车行的小路交会路口的交通管理。要求:1、交通灯控制器控制主干道和小路交叉路口的交通。2、小路口来车,主线路口绿灯切换到黄灯5秒钟后变为红灯。3、红灯燃亮20秒后,自动切换为绿灯。4、指示左转弯的绿灯亮12s,绿灯变至红灯时,黄灯亮3s。5、主路的交通管制重新切换到绿灯后5分钟内不理睬小路上的车况,即使又有车辆驶入小路路口。上述主路上的
2、灯光显示,小路口的灯信号与之逻辑配合。2程序设计根据交通灯控制器的功能与要求,将其总体电路分为分频器、信号控制器两个模块。外部脉冲振荡器的频率选为32768kHz,经分频器分频得1Hz的信号,1Hz信号用做信号控制器的计数脉冲,用VHDL设计组成交通灯控制器的分频器、信号控制器两个模块,在MAX+plusⅡ平台上,编译VHDL程序,然后用原理图输入法形成总体框图。实验程序:LibraryIEEE;UseIEEE.Std_Logic_1164.All;UseIEEE.STd_Logic_Unsigned.All;EntityFrequency10HzIsPort (Clk20M:InStd
3、_Logic; Clk10Hz:OutStd_Logic );End;ArchitectureCountOfFrequency10HzIsSignalTout:IntegerRange0to;SignalClk:Std_Logic;Begin Process(Clk20M) Begin Ifrising_edge(Clk20M)then IfTout=then Tout<=0; Clk<=NotClk; ElseTout<=Tout+1; EndIf; EndIf; EndProcess; Clk10Hz<=
4、Clk;End;LibraryIEEE;UseIEEE.Std_Logic_1164.All;UseIEEE.STd_Logic_Unsigned.All;EntityFrequencyIsPort (Clk10Hz:InStd_Logic; Clk1Hz:OutStd_Logic);End;ArchitectureCountOfFrequencyIsSignalTout:IntegerRange0to4;SignalClk:Std_Logic;Begin Process(Clk10Hz) Begin Ifrising_edge(Clk10Hz)then IfTout=
5、4then Tout<=0; Clk<=NotClk; ElseTout<=Tout+1; EndIf; EndIf; EndProcess; Clk1Hz<=Clk;End;LibraryIEEE;UseIEEE.Std_Logic_1164.All;UseIEEE.Std_Logic_Unsigned.All;EntityControllerIsPort(Clock:InStd_Logic; Hold:InStd_Logic; CountNum:INIntegerRANgE0TO49; Flash:OutStd_Logic
6、; NumA,NumB:OutIntegerRange0To25; RedA,GreenA,YellowA:OutStd_Logic; RedB,GreenB,YellowB:OutStd_Logic);End;ARCHITECTUREBehaviorOFControllerISBEGINPROCESS(CLOCK) Begin Iffalling_edge(Clock)thenIfHold='1'then RedA<='1'; RedB<='1'; GreenA<='0'; GreenB<='0'; YellowA<='0';
7、 YellowB<='0'; Flash<='1'; Else Flash<='0'; IfCountNum<=19then NumA<=20-CountNum; RedA<='0'; GreenA<='1'; YellowA<='0'; Elsif(CountNum<=24)then NumA<=25-CountN
此文档下载收益归作者所有