欢迎来到天天文库
浏览记录
ID:49659014
大小:216.50 KB
页数:15页
时间:2020-03-03
《电子技术课程设计1.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、电子技术课程设计——十字交通灯一课题要求1南北方向绿灯30s,东西方向20s,黄灯间隔时间5s,且可显示当前时间2转向灯控制时间一律为20s3对1和2中时间均可程序外控制。二课题分析南北方向为绿灯时,东西方向为红灯,当30秒后,南北方向变为黄灯,东西方向仍然为红灯;再过5秒,南北方向变为红灯,东西方向产生20秒的绿灯和5秒的黄灯。此过程共用去30+5+20+5=60秒。接着四个方向的转向灯斜对称,各产生20秒的转向绿灯,共用去20*4=80秒,故十字交通灯一个循环用费时140秒。这就是十字交通灯的
2、工作过程。(题中各时间可通过按键修改)三设计思路共12个灯。每个方向的中间的灯作为直路交通灯,有红黄绿三种颜色,南北对称,东西对称。每个方向两边的灯为转向灯,有红绿两种颜色,南北斜对称,东西斜对阵,红灯不可转向,绿灯可转向。以此为依据,以时间的顺序完成十字交通灯的内容,具体程序可见各模块详解。四系统流程图计数器计数从0到TG1,东西方向中间绿灯,南北方向中间红灯从TG1到TY1,东西方向中间黄灯,南北方向中间红灯从TY1到TG2,东西方向红灯,南北方向绿灯从TG2到TY2,东西方向红灯,南北方向黄
3、灯从TY2到T1、T1到T2、T2到T3、T3到140,转向灯从第一到第四依次变为绿灯,南北、东西方向中间均为红灯。计数器清零五模块分析1计数模块LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYCOUNTERISPORT(CLOCK:INSTD_LOGIC;RESET:INSTD_LOGIC;COUNT:BUFFERINTEGERRANGE0TO139);——以140为周期END;的计数器ARCHITECTUREONEOFCOUNTERISBEGINPRO
4、CESS(CLOCK)BEGINIFRESET='1'THENCOUNT<=0;ELSIFRISING_EDGE(CLOCK)THENIFCOUNT=139THENCOUNT<=0;ELSECOUNT<=COUNT+1;ENDIF;ENDIF;ENDPROCESS;END;此模块主要完成以140秒为周期的计数功能,通过此计数器的数值来控制各灯的亮灭情况。以下是此模块的仿真结果。此截图反映的两个周期计数的中间部分,由此可见计数器在时钟上升沿计数,从0到139,为仿真方便,时钟信号周期较小,若时钟信号
5、频率为1HZ,则可完成140秒的计数功能。2显示模块第一部分:分位器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYFENWEIISPORT(CLOCK:INSTD_LOGIC;INPUT:ININTEGERRANGE0TO35;SEC1:OUTINTEGERRANGE0TO9;——SEC1为十位SEC2:OUTINTEGERRANGE0TO9);——SEC2为个位END;ARCHITECTUREONEOFFENWEIISSIGNALM1,M2:INTEG
6、ERRANGE0TO9;BEGINPROCESS(INPUT,CLOCK)BEGINIFFALLING_EDGE(CLOCK)THENIFINPUT>=30THENM1<=30;——分情况将输M2<=INPUT-30;入分为十位和个位ELSIFINPUT>=20THENM1<=2;M2<=INPUT-20;ELSIFINPUT>=10THENM1<=1;M2<=INPUT-10;ELSEM1<=0;M2<=INPUT;ENDIF;ENDIF;ENDPROCESS;SEC1<=M1;SEC2<=M2
7、;END;此部分主要完成将各灯的剩余时间分成十位和个位分别接到七段译码显示器上显示。以下为此部分仿真波形:这3幅图分别反映了输入为6,16,26时的分位器的工作情况,SEC1为十位,SEC2为个位,由图可见分位器工作正常。第二部分:七段译码显示器LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYDISPLAY7ISPORT(INPUT:ININTEGERRANGE0TO9;OUTPUT:OUTST
8、D_LOGIC_VECTOR(6DOWNTO0));ENDDISPLAY7;ARCHITECTUREONEOFDISPLAY7ISBEGINPROCESS(INPUT)BEGINCASEINPUTISWHEN0=>OUTPUT<="0111111";WHEN1=>OUTPUT<="0000110";WHEN2=>OUTPUT<="1011011";WHEN3=>OUTPUT<="1001111";WHEN4=>OUTPUT<="1100110";WHEN5=>OUTPUT<="11
此文档下载收益归作者所有