优秀毕业设计论文:基于EDA技术的智能交通信号灯的设计_第1页
优秀毕业设计论文:基于EDA技术的智能交通信号灯的设计_第2页
优秀毕业设计论文:基于EDA技术的智能交通信号灯的设计_第3页
优秀毕业设计论文:基于EDA技术的智能交通信号灯的设计_第4页
优秀毕业设计论文:基于EDA技术的智能交通信号灯的设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、毕业设计(论文)基于eda技术的智能交通信号灯的设计班级 09电子信息专业电子信息工程教学系机 电 系 指导老师摘要此设计是基于eda技术的智能交通信号灯的设计,利用max+plus ii软件 进行仿真,实现|字路口上红绿灯转换。利用倒计时显示对十字路口的信号灯进 行四个方向上而的状态转换,使各个方向上面的行人及车辆得到安全顺利的通 过。丁字路口的红绿灯指挥者行人和车辆的安全运行,实现红绿灯的自动指挥使 交通管理工作得到改善,也是城市交通管理工作自动化的重要标志z-o解决好 公路交通灯控制问题将是保障交通有序,安全,快捷运行的重耍环节。丹现在又 得交通灯信号控制系统都是单一的固定时序控制,不能

2、够根据实际交通状况进行 调节控制。eda小用vhdl语言设计交通信号灯控制系统,并在max+plus ii 系统对fpga/cpld芯片进行下载,犹豫生成的是集成化得数字电路,没有系统 设计小的接线问题,所以故障率低,可靠性高,而且体积非常小。关键词:交通信号灯eda vhdl目录摘要i1绪论ii1课程设计背景11.2基本功能11.3能实现特殊状态的功能12软件介绍2. 1eda技术概述12.2 max+plus ii简介22.3硬件描述语言vhdl3硬件电路设计43硬件电路模块框图43.2主控芯片简介5321 epf10k10lc84-4 主芯片,43.2.2 555 定时器53.2.3 卜

3、载器63.3硬件电路设计331数码管显示电路3.3.2红绿灯输岀电路3.3.3硬件电路图4功能模块vhdl语言设计8410k10模块图104.2各模块图的设计114.2.1控制模块114.2.2输出模块134.2.3分频模块154.2.4绿灯闪烁控制模块174.2.5扫描模块184.2.6译码模块194.2.7七段码模块18195系统安装调试及故障分析5系统安装调试195.2故障分析226结束语21致谢2526参考文献in1绪论1.1课程设计背景目前,随着科技与经济的发展,交通问题也日渐突出,全国大中小城市都普 遍存在着交通堵塞、秩序混乱的现象。如何解决城市交通问题已经成为群众的迫 切需求。城

4、由交通发展中存在的问题,其根本原因在于城市交通管理体制的不科 学。交通信号灯是交通信号中的重要组成部分,是道路交通的基本语言。“红灯 停、绿灯行、黄灯等一等”这句俗话家喻户晓。伴随着社会的发展以及人类水平 的提高,汽车数量在不断增加,eda技术的发展和应用领域也在不断的扩大与 深入,机械、电子、航空、海运、信息等领域的重要性日渐突出,利用eda技 术设计智能交通信号灯对交通灯进行智能化设计的需求更加的迫切。1.2基本功能能控制十字路口四个方向上的红、绿、黄灯的状态,用led灯表示当前交 通状态,用七段数码管显示当前交通状态剩余秒数。能实现正常的倒计时功能。 该交通灯的亮灭顺序如图2所示。图2.

5、1交通灯亮灭顺序图能实现总体清零功能,按下清零键后,系统实现总体清零,计数器由初始状 态计数,对应状态的指示灯亮。用vhdl语言设计符合上述要求的交通灯控制 器,并用层次化方法设计该电路。1.2能实现特殊状态的功能例如消防车、救护车等车辆通过时实现下列功能: 按下特殊状态键后,能实现特殊状态功能; 显示倒计时的七段数码管闪烁; 计数器停止计数并保持在原来的状态; 东西、南北路口均显示红灯状态; 特殊状态解除后能继续计数。2软件介绍2.1 eda技术概述电子设计技术的核心就是eda技术,eda是指以计算机为工作平台,融合 应用电子技术、计算机技术、智能化技术最新成果而研制成的电子cad通用软 件

6、包,主要能辅助进行三方面的设计工作,即ic设计、电子电路设计和pcb设 计。eda技术已有30年的发展历程,大致可分为三个阶段。70年代为计算机辅 助设il (cad)阶段,人们开始用计算机辅助进行ic版图编辑、pcb布局布线, 取代了手工操作。80年代为计算机辅助工程(cae)阶段。与cad相比,cae除 了有纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气 连接网络表将两者结合在一起,实现了工程设计。cae的主要功能是:原理图 输入,逻辑仿真,电路分析,自动布局布线,pcb后分析。90年代为电子系统 设计自动化(eda)阶段。eda技术在进入21世纪后,得到了更大的发展,

7、突出表现在以下几个方面: 使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能; 在仿真和设计两方面支持标准皱件描述语言的功能强大的eda软件不断推 出; 电子技术全方位纳入eda领域; eda使得电子领域各学科的界限更加模糊,更加互为包容; 更大规模的fpga和cpld器件的不断推出;基于eda工具的asic设计标准单元己涵盖大规模电子系统及ip核模块; 软皱件ip核在电子行业的产业领域、技术领域和设计应用领域得到进一步 确认; soc高效低成本设计技术的成熟。2.2 max+plus ii 简介altera公司推出的max+plus ii软件支持多种硬件描述语言,捉供fpga/cp

8、ld 的设计,仿真和烧写环境。max+plus ii界而友好、使用便捷,具冇原理图输入和 文本输入两种输入手段,以及波形与edif等格式文件,并支持这些文件的任意 混合设计。利用max+plusii自身配备的逻辑综合及芯片编程等功能,可将涉及 电路图或电路描述的程序变成基本的逻辑单元写入可编程芯片屮,作为as1c芯 片。2. 3硬件描述语言vhdl硕件描述语言是eda技术的重要组成部分,vhdl是作为电子设计主流硕 件的描述语言。vhdl语言具有很强大的电路描述和建模能力,能从多个层次对数字系统进 行建模和描述,从而大大简化了硕件设计任务,提高了设计效率的可靠性。用 vhdl进行电子系统设计的

9、一个很大的优点是设计者可以专心致力于其功能的 实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。3硬件电路设计3.1硬件电路模块硬件设计框图如图3.1所示。图3.1硬件设计框图各模块功能如下:(1) 主芯片flex10k10:主要进行交通智能信号灯的运行;(2) 74ls244:七段数码管驱动电路;(3) 七段数码管:显示倒计吋的秒数;(4) 138译码器:七段数码管译码电路;(5) 下载器:完成对整个程序的下载功能;(6) 555定吋器:提供flex 1 oki0基准信号。3.2主控芯片简介3.2.1 epf10k10lc84-4 主芯片(图 3.2)利用10k10芯片对智能

10、交通信号灯进行设计与制作oepf10k10lc84-4系列 器件是一种嵌入式的pld产品。它采用可重构的cmos sram单元,其结构集 成了实现通用多功能门列阵所需的全部特性。10k10系列器件的容量可达25万 门,能够高密度、高速度、高性能地将整个数字系统集成于单个器件中。每个 epf10k10器件包含一个嵌入式阵列和一个逻辑式阵列,每个器件的配置通常是 在系统上电时完成,通过存储一个altera串行prom中的配置数据,或者存 储一个由系统控制器提供的配置数据来实现。配置数据也能从系统rom或下载 器获得。输入信号曲1号clk引脚导入;26、41、46、68、82引脚都接地;25、 27

11、、28 引脚分别接 138 译码器的 a、b、c 端;38、39、47、48、49、50、51、 52 i/o引脚分别接驱动244的a8a1端;55、34、13、76引脚分别对应着下载端口的下载孔;31、32引脚也接地。m)wrn t|加零tutdotck高ikooa teu> oc« t>ritiatusdclkconf doniepn0k10lo4-4ws ars os cs rdymb® clkusr imt ixwi)bv ( i f de oedatao data1 data: data)data4data5data6丄限i皿丄賦山图 3.2 epf1

12、0k10lc84-4 主芯片3.2.2 555定时器多谐振荡器是能产生矩形波的一种自激振荡器电路,由于矩形波屮除基波外 述含冇丰富的高次谐波,故称为多谐振荡器。多谐振荡器没冇稳态,只冇两个暂 稳态,在自身因索的作用下,电路就在两个暂稳态之间来回转换,故乂称它为无 稳态电路。rl、r2和c1是外接定时元件,电路屮将高电平触发端(6脚)和低 电平触发端(2脚)并接后接到r2和c1的连接处,将放电端(7脚)接到r1,r2 的连接处。555定时器电路如图3. 3所示。图3.3 555定时器由于接通电源瞬间 电容c1来不及充电,电容器两端电压uc为低电平,小于 1/3vdd,故高电平触发端与低电平触发端

13、均为低电平输出vo为高电平,放电管 vt截止。这时,电源经rl、r2对电容c1充电,使电压uc按指数规律上升,当 uc上升到2/3vdd时,输出vo为低电平,放电管vt导通,把uc从1/3vdd上升 到2/3vdd这段时间内电路的状态称为第一暂稳态,其维持时间tph的长短与电 容的充电时间有关。充电时间常数t充=(r1+r2) *c。不难理解,接通电源后电路就在两个暂稳态z间来回翻转,则输出可得矩形波。电路一旦起振后,uc 电压总是在1/3vdd2/3vdd z间变化。对倒计时进行定时 rl、r2=47 q , cj=10 nf, c2=0.01 u f,计算 f= 1/0.7 (r1+2r2

14、) * c=1/0.7*141*10*106=1khzo 3.2.3下载器下载器电路图如图3.4所示。 ; wrtatua ftcowno ocuc cohf domenws nrs ncs cs rdyftbusy clkusr inrr.done dev.clk dev oedatao data idata2data)data* data5datao图3.4下载器pc机中编写的vhdl语言的程序通过下载屯路下载到fpga芯片,使电路实 现所需的功能。下载线需接1kq的上拉电阻。下载器标准并口 10针引脚定义如 表3.1所示。表3.1下载器标准并口 10针引脚定义引脚ps方式信号名描述1sc

15、lk时钟2gnd地3conf1g done配置控制4vcc电源5ncinfig配置控制67nstatus配置状态指示89datao数据(到器件)1()gnd地3.3硬件电路设计331数码管显示电路匸data66图3.5数码管显示电路74ls138为3线一8线译码器,当一个选通端(oe1)为高电平,另两个 选通端(/(oe2a)和/(oe2b)为低电平时,可将地址端(a、b、c)的二进制编 码在一个对应的输ipi端以低电平译hlo74ls244为3态8位缓冲器,一般用作总线驱动器。74ls244没有锁存的功 能。地址锁存器就是一个暂存器,它根据控制信号的状态,将总线上地址代码暂 存起來。该设计是

16、用來驱动数码管。数码管显示电路由八个共阴极的数码管所组成,数码管两两显示东西、南北 四个方向上面的信号灯的倒计时的秒数。8位数码管动态扫描显示,它将所有数码管的8个段线相应地并接在一起,并 接到74ls244芯片的y1到y8 口,控制字段输出。而各位数码管的共阴极由 74ls138的/y0到/y7來实现8位数码管的位输出控制。对于一组数码管动态扫 描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显 示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码 管工作,称为位码。由于各位数码管的段线并联,段码的输出对各位数码管来说 都是相同的。因此,在同一时刻如果各

17、位数码管的位选线都处于选通状态的话, 8位数码管将显示相同的字符。若要各位数码管能够显示出与木位相应的字符, 就必须采用扫描显示方式。即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位耍显示字符的字型 码。这样在同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的, 如此循环下去,就可以使各位数码管显示出将耍显示的字符。虽然这些字符是在 不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于数码管 具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼 的视觉印象就会是连续稳定地显示。"i护卡?l:|

18、1c=>6toled!c1i2 1 iply lee4丿0mov011 a /i6?0v3.3.2红绿灯输出电路iflvighdtd1 tdo tck tmstestled!liltih atsxo vovovovovogvog 器常8n图3.6红绿灯输出电路图i字路口的智能交通信号灯最普遍的就是红绿灯的造型,“红灯停、绿灯 行、黄灯等一等”,这句话家喻户晓。如图3. 6所示就是红绿灯的输出电路图,6 个led显示管分别表示南北、东西两个对应方向上而的红绿灯,六个led显示器 分别接主控芯片10k10的六个i/o 口。3.3.3硬件电路图由以上各部分的电路图可得到总的硬件电路图,如图3.

19、6所示。10k10主控芯片中,输入信号由1号clk引脚导入;26、41、46、68、82 引脚都接地;25、27、28引脚分别接138译码器的a、b、c端;38、39、47、 48、49、50、51、52 i/o 引脚分别接驱动 244 的 a8ai 端;55、34、13、76 引脚分别对应着下载端口的下载孔;31、32引脚也接地。74ls244对两个七段 数码管进行驱动、使其实现倒计时的显示功能,1、19、10引脚都接地;a1-a8 分别接10k10主芯片的3952 i/o 口 ; y1y8分别驱动七段数码管的a.dpo 138译码器的a、b、c端分别接10k10的25、27、28 i/o

20、口; 4、5、8引脚接 地;1号0e1引脚接电源vcc; y7-y0分别接8个数码管的com端。vii9-l|曲曲沙-log bt- -10# bse7wc二ojj1te:;:上二h9222222 ggv可 i|un#&&&&口图3.7硬件电路图4功能模块vhdl语言设计交通灯控制器的信号说明:reset:系统复位;elk:计时和闪烁频率;clkl:扫描频率;jinji:紧急情况既特殊状态信号,高电平代表紧急情况出现;state:状态变化信号,00代表东酋绿灯,南北红灯;01代表东西黄灯,南北红 灯;10代表东西红灯,南北绿灯;11代表东西红灯,南北黄灯; ji

21、anl,jian2:东西和南北方向的计数器减1信号;zhizhu l,zhizhu2:东西和南北方向计数器置数信号;rl,gl,yl:代表东西方向的红灯,绿灯和黄灯; r2,g2,y2:代表南北方向的红灯,绿灯和黄灯; ledl:代表东西方向的倒计时显示; led2:代表南北方向的倒计时显示。4. 1 10k10模块图10k10模块图如图4.1所示。主要由kzmk控制模块、scmk输出模块、smmk 扫描模块、fp分频模块、ymq译码器模块、qdmmk七段码模块、ldssmd绿灯闪烁 模块七个模块组成。由控制模块的reset和jinji、分频模块的clk_in 口输入信号;分频模块的 div_

22、outb>div_outa分别控制模块的elk和扫描模块的elk;控制模块的statejian zhizhu 1> zhizhu2分别对应输出模块的这四个口。控制模块的zhizhug 1 > zhuzhug2分别对应绿灯闪烁模块的这两个口 ;输出模 块的elk、jinji分别对应控制模块和绿灯闪烁模块的这两个口;输出模块的ledl、 led2分别对应扫描模块的dl、d2 li;输出模块的gl、g2分别与绿灯闪烁模块的 igl、ig2 口接;扫描模块的chout 口与七段码模块的qq 口相接;扫描模块的sei 对应着译码器的sei 口;输出模块的rl、r2、yl、y2和绿灯闪烁

23、模块的gl、g2 都加上非门后进行输出信号;译码器模块与七段码模块的q 口和w 口也为输出 信号。scmkreset匚器$tatc(1. t- rtktuirna clkzhizhu1jxnjizhizhu2zhizhu61zkhmxz30a1t1r24h1xnuxled17. .0zhizhu2lf02(7.0)smmk:clk1msct oaout(). .n01(?. . 0sel(2.«02(7. .0fp:clk.in oiv.outo 1oiv.outc -rl>oon-nzniznuc1rzwtzwuwulnuli"16231ldssnk4tzdj2yh

24、qscl(2. .0 q(7. .0图4. 1 10k10模块图4.2各模块图的设计共分为7个模块:控制模块、输出模块、分频模块、绿灯闪烁模块、扫描模 块、译码模块、七段码模块。4.2.1控制模块控制模块符号图如图4. 2所示。kzmkre se tstate c jl ou i anclkzhizhuxu x nu 1zhx zhu2zh x zhugxzh xzhugz图4. 2控制模块符号图通过对时钟的计数控制运行状态的改变,输出相应的状态变化信息、递减信 号和置数信号给输出模块进行显示同时输出绿灯闪烁控制信号给绿灯闪烁控制 模块;出现紧急情况时停止计数和状态的变化,解除紧急状态后继续原

25、来的运行 状态。由 reset 和 jinji 引脚输入信号,state、jian zhizhul> zhizhu2 输岀 端分别接输岀模块的这四个引脚,zhizhugl、zhizhug2分别接绿灯闪烁模块的 这两个相对应的引脚。vhdl源程序为:library ieee;use ieee.std_logic_l 164.all;use ieee.std_logic_unsigned.all;entity kzmk isport(reset,clkjinji:in std_logic;state:out std_logic_vector( 1 downto 0);jian.zhizhu

26、1 ,zhizhu2,zhizhug 1 ,zhizhug2:out std_logic);end kzmk;architecture a of kzmk issignal count:std_logic_vector(6 downto 0);signal jiantemp:std_logic;begin jian<=jiantemp and (not elk);statelabel:process(reset.clk)beginif reset=!or thencount<=n0000000n;state<=moon;elsif clkfevent and clk=t th

27、en讦 jinji二o then count<=count+l;jiantemp<=fr;elsif jinji=' 1 * then jiantemp<='0'end if;if count=0 then state<='roon;zhizhu 1 <=' 1 r;zhizhu2<=* t;elsif count=28 then state<=no 1n;zhizhu 1 <=f 1elsif count=33 then state<=n 1 on;zhizhu 1 <=f 1 ,;zhizh

28、u2<=1 t;elsif count=61 then state<=n 11h;zhizhu2<=' 1 *;elsif count=66 then count<=nooooooo" ;else zhizhu l<='0,;zhizhu2<='0' end if;if count>24 and count<27then zhizhug 1 <=' 1 'zhizhug2<='0,;elsif count>32 and count<60then zhizhu

29、g2<=' 1 'zhizhug 1 <='0'else zhizhug 1 <=,0,;zhizhug2<=l0,;end if;end if;end process statelabel;end a;422输出模块输出模块符号图如图4.3所示。scmkclkuinux stateu 1 an zhizhux zhi zhusrjlgx jloir21l.k o1 c 7 l.ed2c7.y2oj oj图4.3输出模块符号图在正常状态下通过控制模块输出的state状态信号,jian减信号和 zhizhul,zhizhu2置数信号控制东四

30、和南北方向的指示灯和计数显示:紧急状态下 通过jinji紧急信号,elk时钟信号处理紧急情况,东四和南北方向均输出红灯, 计数输出值停止倒计时并不断闪烁。由jinji端输入信号,由门、yl、r2、y2端 输出信号,其余的引脚分别和控制模块与扫描模块的对应引脚想接。vhdl源程序为;library ieee;use ieee.std_logic_l 164.all;use ieee.std_logic_unsigned.all;entity semk is port(clkjinji: in stdogic; state: in std_logic_vector( 1 downto 0);jia

31、n.zhizhu 1 ,zhizhu2: in std_logic;rl,gl,yl,r2,g2,y2: out stdjogic;ledl,led2: out stdogic_vector(7 downto 0);end scmk;architecture a of scmk issignal countl,count2: std_logic_vector(7 downto 0 );signal zhizhustate 1 ,zhizhustate2: std_logic_vector(7 downto 0 ); signal tg 1 ,tg2,tr 1 ,tr2,ty 1 ,ty2: s

32、td_logic;beginled 1 <=n00000000h when jinji二t and clk=,0, else count 1; led2<=n00000000h when jinji二t and clk=,0, else count2; tgl<='0' when state=n00" and jinjio1 else 'o'tyl<='0' when state=n01n and jinjio1 else 'o' trl<='0* when state(l)=l&#

33、39; or jinji='l' else 'o'tg2<='0' when state=n10" and jinjio1 else 'o' ty2<='0' when state=nll" and jinji='o, else 'o'tr2<='0* when state(l)='o' or jinji='l' else 'o'zhizhustatel<=m00010101" wh

34、en state=n00n else ”00000011” when state=h01" else ”0()011000”;zhizhustate2<="0001010ln when state二to” else ”00000011” when state=hhh else ”00011000”;label2:process(jian)beginif jian'event and jian= t then讦 zhizhu2= t or count2=l thencount2<=zhizhustate2;elsif count2(3 downto 0)=

35、"0000n then count2<=count2-7;else count2<=count2-l;end if;g2<=tg2;r2<=tr2;y2<=ty2;end if;end process label2;label 1:process(jian)beginif jian'event and jian= tthenif zhizhu 1 = 1 for count 1 = 1 thencount 1 <=zhizhustate 1;elsif count 1(3 downto 0)="()()()() then coun

36、t l<=count 1-7;else count 1 <=count 1 1;end if;gl<=tgl;rl<=trl;yl<=tyl;end if;end process label 1;end a;4.2.3分频模块分频模块符号图如图4. 4所示。fpjclk_indiv._outbdiv.outc:x图4.4分频模块符号图将吋钟信号经过分频得到所需要的信号。系统的动态扫描需要1hz的脉冲, 而系统时钟计时模块需要1hz的脉冲。分频模块主要为系统提供所需的时钟计 吋脉冲。该模块将1khz的脉冲信号进行分频,产生方波,作为系统吋钟计吋信 号。输入clk_i

37、n为1khz的信号,输出div_outb为1hz的信号,div_outc为250hz 信号。vhdl源程序为: library ieee; use ieee.std_logic_l 164.all;use ieee.std_logic_unsigned.all;entity fp eport (clk_in: in stdogic; div_outb,div_outc: out stdogic ); end fp;architecture a of fp issignal fre_nb:integer range 0 to 500;signal fre_nc:integer range 0 t

38、o 2;signal clk_tmpb: std_logic;signal clk_tmpc:std_logic; begindiv_outb<=clk_tmpb; div_outc<=clk_tmpc; process(clk_in) beginif falling_edge(clk_in) thenif fre_nb>499 thenfre_nb<=0;clk_tmpb<=not clk_tmpb;elsefre_nb<=fre_nb+1;end if;讦 fre_nc>2 thenfre_nc<=0;clk_tmpc<=not clk

39、_tmpc;elsefre_nc<=fre_nc+1;end if;end if;end process;end a;424绿灯闪烁控制模块绿灯闪烁控制模块符号图如图4.5所示。ldssmkc xx n ig 2x g 2图4.5绿灯闪烁模块符号图当满足绿灯闪烁条件时,绿灯闪烁。即当绿灯倒计时显示为3时开始进行闪 烁,zhizhugk zhizhug2> jinji> igl> ig2引脚分别和控制模块和输岀模块的引脚 相对应,gl、g2引脚取非后再进行输出信号。vhdl源程序为: library ieee;use ieee.std_logic_l 164.all;us

40、e ieee.std_logic_unsigned.all;entity ldssmk isport(clk,zhizhug 1 ,zhizhug2jinji:in std_logic; igl jg2:in stdogic;gl,g2:out stdjogic);end ldssmk;architecture a of ldssmk isbegin process(clk,zhizhug 1 ,zhizhug2) variable tgl:std_logic:=igl; variable tg2: std_logic: =ig2;beging 1 <=tg 1 and (not jin

41、ji); g2<=tg2 and (not jinji);if clkvent and elk二t thenif zhizhugl= lf then tgl:=not tgl; elsif zhizhug2=r then tg2:=not tg2; else tgl:=igl; tg2:=ig2;end if;end if;end process;end a;425扫描模块扫描模块符号图如图4. 6所示。smmkclkxre se tdaout3. . 0dl7. 0sel2. . 0d2q70a图4.6扌rd描模块符号图该模块用于产生对数码管的片选信号,可以根据控制信号,驱动交通灯以及

42、 倒计时数码管的显示。该模块首先是以一个case语句进行通道的选择,接着对 所选的通道进行动态扫描。clkl引脚是经过分频模块得到的脉冲信号,dk d2 引脚分别接输出模块的对应引脚,sel2.o引脚是位选信号,daout3.0接七段码 模块的qq3.o引脚。vhdl源程序为:library ieee;use ieee std_logic_ 1164.al 1;use ieee.stdogic_unsigned.all;use ieee.std_logic_arith.all;entity smmk isport(clkl,reset:in std_logic;dl,d2:in stdogic

43、_vector(7 downto 0); daout:out stdogic_vector(3 downto 0); sekout stdogic_vector(2 downto 0); end smmk;architecture fun of smmk issignal count:stdogic_vector(2 downto 0); beginsel<=count;process(clkl,reset)beginif (reset=,0,) then count<=n000n; elsif(clkrevent and clkl=t) then if(count>=n10

44、0n) then count<=nooo"elsecount<=count+l;end if;end if;case count iswhenh000n=>daout<=d 1 (3 downto 0); when"001 "=>daout<=d 1 (7 downto 4); when"010"=>daout<=d2(3 downto 0); whenh011 "=>daout<=d2(7 downto 4); when others=>null;end case;e

45、nd process;end fun;4.2.6译码模块译码模块符号图如图4.7所示。ymqoh qc toh图4.7译码模块符号图此模块是译码模块,将从扫描模块输出的8421 bcd码进行译码分析显示, sel2.o引脚接扫描模块输出的位选信号sel2.o,然后再由q7.o引脚进行输出。 vhdl源程序为:library ieee;use ieee.stdogic_l 164.all;use ieee.stdogic_unsigned.all;entity ymq isport(sel:in std_logic_vector(2 downto 0);q:out stdogic_vector(

46、7 downto 0);end ymq;architecture a of ymq isbeginq<=" 11111110" when sel=0 else”11111101“ when sel=l elsetill 1011” when sel=2 elset1110111” when sel=3 else”11111111”;end a;4.2.7七段码模块七段码模块符号图如图4.8所示。qdmmk图4. 8七段码模块符号图该模块将输入数据即8421 bcd码转换为七段数码管需要的段码数据。vhdl源程序为: library ieee;use ieee.std_

47、logic_1164.all;use ieee.std_logic_unsigned.all;entity qdmmk isport(qq:in stdogic_vector(3 downto 0); w:out std_logic_vector(6 downto 0); end qdmmk;architecture fun of qdmmk isbegin w<=n 1111110” when qq=noooon else ”0110000” when qq=h0001n else ”1101101” when qq=n0010" else "lllloor* wh

48、en qq=n00hn else ”0110011” when qq=”0100” else ”1011011” when qq=”0101” else "lolllir* when qq=,0110n else "1110000” when qq=”0111 “ else ”1111111” when qq=h1000m else ”1111011” when qq=n1001n else ”1110111” when qq=n1010n else ”0011111” when qq二t011” else ”1001110” when qq="1100h els

49、e ”0111101” when qq=”1101” else ”1001111” when qq=n1110m else ”1000111” when qq=”llll” ; end fun;5系统安装调试及故障分析5.1系统安装调试首先使用软件选择对应的试验箱芯片:assign»device选择flex 10k » epf 10k 10lc84-3,点击 ok。选择assign » pin/location/chip»node name设置各个引脚注明输入与输 出o名称类型引脚号elkinput1 jmjiinput72resetinput71sel2.ooutput252728w6.ooutput39474849505152yl,y2,rl,r2,gl,g2output161718192021通过硬件下载,该电路可以完成硬件实现,芯片管脚定义可以直接用编辑 文件。完成管脚定义后选择器件,编译后进行下载。通过对每一模块的仿真和下载,可以实现各个模块的逻辑功能,验证了各个 模块的正确性。在智能交通信号灯系统的7个模块屮,重点在于控制模块,输 出模块,分频模块,扫描模块。智能交通信号灯系统的设计已全部完成,能按预期的效果进行东南西北四个 方向上的红绿灯

温馨提示

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

评论

0/150

提交评论