ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:64.77KB ,
资源ID:3503575      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3503575.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(交通灯实验报告.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

交通灯实验报告.docx

1、交通灯实验报告实验报告名称: 十字路口交通管理信号灯姓名:岳成学号:5100309669班级:F1003021日期:2012.4.4一、实验目的1、了解交通灯的状态转换规律,学会用硬件描述语言来建立交通灯的模块。2、利用该软件进行可编程逻辑器件设计,完成交通灯的逻辑仿真功能。3、使用编译器将设计实现,下载到JDEE-10实验箱上进行调试和验证所设计的十字路口交通管理信号灯的功能。二、实验要求1、用两组点阵分别表示主干道上和支干道上的红绿灯。红色点阵点亮时,表示红灯;绿色点阵点亮时,表示绿灯;红色和绿色点阵同时点亮时,表示黄灯。2、用2组数码管(共计4位)显示主、支路交通信号灯的倒计时。3、主干

2、道上绿灯亮的时间为8秒,闪烁3秒,黄灯亮的时间为2秒,红灯亮的时间为11秒。支干道上绿灯亮的时间为6秒,闪烁3秒,黄灯亮的时间为2秒,红灯亮的时间为13秒。4、主干道上绿灯亮和闪烁、黄灯亮共13秒,这时支干道上的红灯一直亮着。支干道上的绿灯亮6秒、闪烁3秒及黄灯亮2秒,主干道上的红灯亮11秒。5、主干道上绿灯亮的时间为8秒,数码管显示起始时间7秒,然后依次递减至0,绿灯闪烁3秒,黄灯亮的时间为2秒(这段时间数码管不显示)。支干道红灯亮的时间为13秒,数码管显示起始时间为12秒,然后依次递减至0。6、支干道上绿灯亮的时间为6秒,数码管显示起始时间5秒,然后依次递减至0,绿灯闪烁3秒,黄灯亮的时间

3、为2秒(这段时间数码管不显示),主干道红灯亮的时间为11秒,数码管显示起始时间为10秒,然后依次递减至0。三、设计方案1、对频率输入的考虑交通灯等所需的频率只有两种:1Hz和2Hz。利用4M频率经过20、21次分频后可得到。2、对交通灯控制部分的考虑利用24个状态作为一个周期,可采用真值表法进行列写。3、建一个七段译码的模块益以及一个点阵显示模块,根据真值表,确立24个状态。四、程序设计1、设计思路:首先,建一个24进制的计数器,每一次计数间隔均为一秒。对每一秒确立主干道以及支干道上点阵的状态(红灯亮、绿灯亮、绿灯闪烁、黄灯亮)、以及两组数码管上的显示时数(具体数字或熄灭)。其次进行分步实现:

4、对于点阵部分,以主干道交通灯为例,输入有时钟信号、二十四进制计数器的输出、红灯信号、绿灯信号、闪烁信号以及发光信号(常亮),输出有红灯显示和绿灯显示两部分。建立if语句的逻辑关系,根据输入产生相应的输出。如果输入信号表明此时为红灯显示时间,则输出部分红灯亮而绿灯灭;如果输入信号表明此时为黄灯显示时间,则输出部分红等绿灯都需要点亮;如果输入信号表明此时为红灯闪烁,则还需借助2Hz的时钟信号,当时钟为高电平,绿灯灭;反之则绿灯亮。对于数码管部分,以主干道交通灯为例,输入有二十四进制计数器的输出和2位时钟信号,因为主干道交通灯倒计时的状态仅仅与当前处在24个状态的哪一个相关。数码管采用扫描方式,因为

5、最多需要同时显示四位,则需要2位不同频率的高频的时钟信号。举例来说,当2种信号都为高电平是,则显示个位数据,同时选定第一个数码管,以此类推。最后对于本次实验暂不使用的二极管接上高电平使其熄灭。2、程序清单:24进制计数器count3.tdfsubdesigncount3(clk:input;q4.0:output;)variablecount4.0:dff;begincount.clk=clk;ifcount.q=23thencount.d=0;elsecount.d=count.q+1;endif;q=count;end;中央处理模块main.tdfsubdesignmain(incount

6、4.0:input;state2.0:output;out13.0:output;out23.0:output;out33.0:output;out43.0:output;tringle:output;digselect1:output;%总共要点亮四个数码管,两个作为主干道,两个作为支干道%digselect2:output;)begintableincount4.0=state2.0,out13.0,out23.0,out33.0,out43.0,tringle,digselect1,digselect2;h0=1,h0,h7,h1,h2,0,1,1;h1=1,h0,h6,h1,h1,0,

7、1,1;h2=1,h0,h5,h1,h0,0,1,1;h3=1,h0,h4,h0,h9,0,1,1;h4=1,h0,h3,h0,h8,0,1,1;h5=1,h0,h2,h0,h7,0,1,1;h6=1,h0,h1,h0,h6,0,1,1;h7=1,h0,h0,h0,h5,0,1,1;h8=2,h0,h0,h0,h4,1,0,1;%主干道绿灯开始闪烁%h9=2,h0,h0,h0,h3,1,0,1;hA=2,h0,h0,h0,h2,1,0,1;hB=3,h0,h0,h0,h1,0,0,1;%黄灯亮%hC=3,h0,h0,h0,h0,0,0,1;hD=4,h1,h0,h0,h5,0,1,1;%主干道

8、红灯亮%hE=4,h0,h9,h0,h4,0,1,1;hf=4,h0,h8,h0,h3,0,1,1;h10=4,h0,h7,h0,h2,0,1,1;h11=4,h0,h6,h0,h1,0,1,1;h12=4,h0,h5,h0,h0,0,1,1;h13=5,h0,h4,h0,h0,1,1,0;h14=5,h0,h3,h0,h0,1,1,0;h15=5,h0,h2,h0,h0,1,1,0;h16=6,h0,h1,h0,h0,0,1,0;h17=6,h0,h0,h0,h0,0,1,0;endtable;end;数码管编码模块digselector.tdfsubdesigndigselector(di

9、gselect1:input;%主干道交通灯显示使能信号%digselect2:input;%支干道交通灯显示使能信号%clk:input;%时钟输入%clk1:input;digin13.0:input;%主干道十位数字%digin23.0:input;%主干道各位数字%digin33.0:input;%支干道十位数字%digin43.0:input;%支干道个位数字%out3.0:output;%四个数码管的使能输入%digout13.0:output;%主干道的数字输入%)beginif!clkand!clk1anddigselect1thenout0=vcc;digout13.0=di

10、gin13.0;elsif!clkandclk1anddigselect1thenout1=vcc;digout13.0=digin23.0;elsifclkand!clk1anddigselect2thenout2=vcc;digout13.0=digin33.0;elsifclkandclk1anddigselect2thenout3=vcc;digout13.0=digin43.0;endif;end;8段译码器:7segment.tdfsubdesign7segment(i3.0:input;a,b,c,d,e,f,g,h:output;)begintablei3.0=a,b,c,d,

11、e,f,g,h;h0=0,0,0,0,0,0,1,1;h1=1,0,0,1,1,1,1,1;h2=0,0,1,0,0,1,0,1;h3=0,0,0,0,1,1,0,1;h4=1,0,0,1,1,0,0,1;h5=0,1,0,0,1,0,0,1;h6=0,1,0,0,0,0,0,1;h7=0,0,0,1,1,1,1,1;h8=0,0,0,0,0,0,0,1;h9=0,0,0,0,1,0,0,1;endtable;end;点阵显示编码模块state.tdfsubdesignstate(instate2.0:input;inputclk2.0:input;row8.1:output;outstate

12、16.1:output;green:output;red:output;)begincaseinstateiswhen1=tableinputclk2.0=row8.1,outstate16.1,green,red;%第一个状态,主干道绿灯亮,支干道红灯亮%h0=h1,hffff,0,0;h1=h2,hfffb,0,1;h2=h4,hffff,0,0;h3=h8,hffdd,1,0;h4=h10,hffff,0,0;h5=h20,hfffb,0,1;h6=h40,hffff,0,0;h7=h80,hffff,0,0;endtable;when2=tableinputclk2.0=row8.1,

13、outstate16.1,green,red;%第二个状态,主干道绿灯闪烁,支干道红灯亮%h0=h1,hffff,0,0;h1=h2,hfffb,0,1;h2=h4,hffff,0,0;h3=h8,hffdd,1,0;h4=h10,hffff,0,0;h5=h20,hfffb,0,1;h6=h40,hffff,0,0;h7=h80,hffff,0,0;endtable;when3=tableinputclk2.0=row8.1,outstate16.1,green,red;%第三个状态,主干道黄灯亮,支干道红灯亮%h0=h1,hffff,0,0;h1=h2,hfffb,0,1;h2=h4,hf

14、fdd,1,1;h3=h8,hffff,0,0;h4=h10,hffff,0,0;h5=h20,hfffb,0,1;h6=h40,hffff,0,0;h7=h80,hffff,0,0;endtable;when4=tableinputclk2.0=row8.1,outstate16.1,green,red;%第四个状态,主干道红灯亮,支干道绿灯亮%h0=h1,hffff,0,0;h1=h2,hfff7,1,0;h2=h4,hffff,0,0;h3=h8,hffff,0,0;h4=h10,hffdd,0,1;h5=h20,hfff7,1,0;h6=h40,hffff,0,0;h7=h80,hff

15、ff,0,0;endtable;when5=tableinputclk2.0=row8.1,outstate16.1,green,red;%第五个状态,主干道红灯亮,支干道绿灯闪烁.%h0=h1,hffff,0,0;h1=h2,hfff7,1,0;h2=h4,hffff,0,0;h3=h8,hffff,0,0;h4=h10,hffdd,0,1;h5=h20,hfff7,1,0;h6=h40,hffff,0,0;h7=h80,hffff,0,0;endtable;when6=tableinputclk2.0=row8.1,outstate16.1,green,red;%第六个状态,主干道红灯亮,

16、支干道黄灯亮%h0=h1,hffff,0,0;h1=h2,hffef,1,1;h2=h4,hffff,0,0;h3=h8,hffff,0,0;h4=h10,hffdd,0,1;h5=h20,hffef,1,1;h6=h40,hffff,0,0;h7=h80,hffff,0,0;endtable;endcase;end;输出模块expand.tdfsubdesignexpand(instate16.1:input;green:input;red:input;tringle:input;inputclk:input;%用来闪烁%dataout116.1:output;%输出红色%dataout21

17、6.1:output;%输出绿色%)beginiftringleandgreenand!redandinputclkthendataout116.1=hffff;dataout216.1=instate16.1;elsiftringleandgreenand!redand!inputclkthendataout116.1=hffff;dataout216.1=hffff;elsiftringleand!greenandredthendataout116.1=instate16.1;dataout216.1=hffff;elsiftringleand!greenand!redthendataou

18、t116.1=hffff;dataout216.1=hffff;elsif!tringleandgreenand!redthendataout116.1=hffff;dataout216.1=instate16.1;elsif!tringleand!greenandredthendataout116.1=instate16.1;dataout216.1=hffff;elsif!tringleandgreenandredthendataout116.1=instate16.1;dataout216.1=instate16.1;elsif!tringleand!greenand!redthenda

19、taout116.1=hffff;dataout216.1=hffff;endif;end;3、顶层逻辑设计图(管脚未锁定)五、调试过程应该说调试过程中遇到的最大困难就是让四位数码管正常显示了。虽然在之前的实验二中有遇到过数码管,但当时只是随着教材依样画葫芦,一知半解,范例也相对简单,只要显示两位即可。当时自己第一遍做的数码管也只能简单显示两位数字,一用上四位,立刻就乱套了,只有在主/支干道上亮黄灯即单独显示两位数字才正确。通过一遍又一遍翻阅教材,在了解数码管扫描显示方式后,我明白了只有一位高频时钟信号对于显示4位数字是不够的。所以我加了频率相近的高频时钟信号,使得在短时期内能顺利扫描4位。之

20、后的调试结果十分顺利,包括点阵的显示。虽然在编译过程中,遇到错误,但基本能按照系统提示及时找到错误的根源并改正。六、实验心得在数字电路实验课上,我们学习了运用AHDL语言进行简单的逻辑器件编程,并对其语法、功能、应用范围以及其与软件之间的关系有了初步的了解。俗话说,师傅领进门,修行在自身。相比实验教材上的三个验证性实验,大作业要求的设计部分有一定难度。考虑到想进一步提升对LED、点阵以及数码管的运用,我选择了实验四十字路口交通管理信号灯的控制。实验的基本要求与增强功能在此不在赘述。虽然在实践中碰了不少壁,走了许多弯路,但回过头来,觉得收益颇多,不论是纠错能力还是思维的严密性。是实践出真知,对于工科学生,在求学阶段多动手,多思考,哪怕是多遇到点困难也是非常重要的。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1