




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安工业大学北方信息工程学院课程设计报告课 程 数字系统设计 题 目 十字路口交通灯控制器的设计 专 业 通信工程 班 级 学 号 姓 名 2012年 6 月 23 日目录一、设计目的2二、设计要求和任务2设计任务:2三、方案论证2四、VHDL语言程序描述3五、对VHDL语言进行处理7六、硬件仿真7七、心得体会1010一、设计目的利用MaxplussII平台的VHDL语言设计一个十字交叉路口的交通灯控制器,要求主干道和支道持续的时间各不相同,并能够用倒计时的形式显示。二、设计要求和任务设计任务:有一条主干道和一条支干道的汇合点形成十字交叉路口,主干道为东西向,支干道为南北向。为确保车辆安全,迅速地通行,在交叉道口的每个入口处设置了红、黄、绿3种信号灯(可利用实验板上的LED显示灯表示交通状态,其中O1、O2、O3分别表示主干道红、黄、绿灯,O6、O7、O8分别表示支干道红、黄、绿灯)。要求:(1)主干道绿灯亮时,支干道红灯亮,反之亦然,两者交替允许通行,主干道每次放行35s,支干道每次放行25s。每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,时间为5s。(2)利用七段数码显示器,实现正常的倒计时显示功能(用数码管1和数码管2显示主干道倒计时时间,用数码管4和数码管5显示支干道倒计时时间)。(3)能实现总体清零功能:计数器由初始状态开始计数,对应状态的指示灯亮。三、方案论证图1交通灯控制器原理图交通灯控制器原理框图如图1所示,包括置数模块、计数模块、主控制器模块和译码器模块。置数模块将交通灯的点亮时间预置到置数电路中,计数模块以秒为单位倒计时,当计数值减为零时,主控电路改变输出状态,电路进入下一个状态的倒计时。其中,核心部分是主控制模块,他负责整个交通灯的运行状态。表1 交通灯控制器的状态转换表状态主干道支干道时间1(00)绿灯亮红灯亮35s2(01)黄灯亮红灯亮5s3(10)红灯亮绿灯亮25s4(11)红灯亮黄灯亮5s(1)控制器模块设计依设计要求,可画出交通灯点亮规律的状态转换表,如表1所示。根据状态图进行主控制器的设计。(2)译码模块由于系统要进行35s,5s,25s三种定时,可以采用一个置数模块由主控模块输出的信号控制定时时间的选择。(3)定时计数器采用倒序计时的方式,由主控模块输出的信号控制定时的开始,定时时间结束时输出定时时间结束信号到主控模块,通过主控模块控制交通灯的亮、灭。(4)译码模块把计数器输出的信号分别进行译码,由数码管显示当前计数。四、VHDL语言程序描述-主干道放行35秒,支干道放行25秒,黄灯过渡时间为5秒的程序示例library ieee; -库说明use ieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entity jiaotongdeng is -实体名称 port( clk_in:instd_logic; -端口定义:时钟信号rst:instd_logic;复位信号light:outstd_logic_vector(7 downto 0);指示灯显示 LED7S0:out STD_LOGIC_VECTOR(6 downto 0); -支干道十位数 LED7S1:out STD_LOGIC_VECTOR(6 downto 0); -支干道个位数 LED7S2:out STD_LOGIC_VECTOR(6 downto 0); -主干道十位数 LED7S3:out STD_LOGIC_VECTOR(6 downto 0) -主干道个位数 );endjiaotongdeng;architecture arc of jiaotongdeng is -结构体 type states is(green_red,yellow_red,red_green,red_yellow); -定义了一个新的类型signalstate:states; signal nextstate:states:=green_red; -定义下一状态 signal data0:integer range 0 to 3; -支干道十位初始值范围 signal data1:integer range 0 to 9; -支干道个位初始值范围 signal data2:integer range 0 to 3; -主干道十位初始值范围 signal data3:integer range 0 to 9; -主干道个位初始值范围signalclock_buffer:std_logic; signal count_time:integer range 0 to 1999999; -时钟技术范围signalclk:std_logic; signal sec0:integer range 0 to 3; -支干道十位显示值范围 signal sec1:integer range 0 to 9; -支干道十位显示值范围 signal sec2:integer range 0 to 3; -主干道十位显示值范围 signal sec3:integer range 0 to 9; -主干道十位显示值范围beginfrequent:process(clk_in) -分频程序beginifclk_inevent and clk_in=1 then if count_time=1999999 then -2M翻转一次count_time=0;clock_buffer=not clock_buffer;elsecount_time=count_time+1;end if;end if;clk=clock_buffer; -输出为1HZ的频率end process;light_statment:process(rst,state) -交通信号灯的显示状态,及状态转换、初始值的设置beginif rst=0 then lightlight=11011011; -主干道绿灯亮,支干道红灯亮(状态一)nextstate=yellow_red; -下一状态为主干道黄灯亮,支干道红灯亮(状态二) data2=0;-下一状态的初始值设置 data3=4; data0=0;data1light=10111011; -主干道黄灯亮,支干道红灯亮(状态二)nextstate=red_green; data2=2; data3=9;data0=2;data1light=01111110; -主干道红灯亮,支干道绿灯亮(状态三)nextstate=red_yellow; data2=0; data3=4;data0=0;data1light=01111101; -主干道红灯亮,支干道黄灯亮(状态四)nextstate=green_red; data2=3; data3=4; data0=3;data1=9;end case;end if;end process;time:process(rst,clk) -记时状态beginifrst=0 then sec0=3;sec1=9;sec2=3;sec3=4; state=green_red; -数码管的初始值,初始状态elsif (rising_edge(clk)then if(sec0=0 )and(sec1=0) )or (sec2=0 )and(sec3=0)then -若支干道十位为0,个位为0或者主干道十位为0,个位为0就跳转到下一个状态state=nextstate; sec2=data2;sec3=data3; -数码管置下一状态的初始值 sec0=data0;sec1=data1;elsesec1=sec1-1; -支干道个位减一sec3=sec3-1; -主干道个位减一 if(sec2/=0)and(sec3=0)then -主干道十位不为0,个位为0则十位减一,个位附为9 sec2=sec2-1; sec3=9;end if; if (sec0/=0)and(sec1=0)then -支干道十位不为0,个位为0则十位减一,个位附为9 sec0=sec0-1; sec1 LED7S0 LED7S0 LED7S0 LED7S0 LED7S0 LED7S1 LED7S1 LED7S1 LED7S1 LED7S1 LED7S1 LED7S1 LED7S1 LED7S1 LED7S1 LED7S2 LED7S2 LED7S2 LED7S2 LED7S2 LED7S3 LED7S3 LED7S3 LED7S3 LED7S3 LED7S3 LED7S3 LED7S3 LED7S3 LED7S3 83,rst-1,LED7S0006-69、70、73、74、75、76、77LED7S1016-60、61、63、64、65、67、68LED7S2026-18、20、21、22、24、25、27LED7S3036-9、10、11、12、15、16、17Light07-58、57、56、55、54、52、51、50(3) 编译:选取窗口菜单File-Project-Save&Compile,即可进行编译,编译完成后的提示信息如图6所示。图6 编译完成后的提示信息(4) 烧写:(a) 启动pof2jed.exe程序,将编译后生成的pof文件转换成jed文件,如图7所示进行设置。设置完毕,点击“Run”按钮。图7 pof文件转换成jed文件(b) 硬件连接:插上电源,下载线一端连接计算机并口端,一端接硬件板上的JTAG端口。为了进行绝缘,在板子下面垫上一张白纸。电源插好以后,POWER灯(红灯)亮。(c) 启动Atmel ISP.exe程序,将转换好的jiaotongdeng.jed文件下载到实际硬件中去。点击File-New,弹出的对话框“Enter Number of :1”,点击OK按钮。在弹出的对话框中按如图8所示进行设置,在JTAG中选择“Program/Verify”,Device选择“ATF1508AS”,Jedec选择刚刚转换好的jiaotongdeng.Jed,点击OK按钮。在PORT中选择所连接的计算机并口号,在Cable types选择下载线的种类为ByteBlaster。一切设置完毕后,点击Run按钮开始烧写,在烧写过程中,硬件板上的PROG灯(绿灯)会一直闪烁,烧写完毕后绿灯熄灭
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年东营市“英才进广饶”(教师类)事业单位引进人才招聘(31人)模拟试卷完整参考答案详解
- 2025年福建省莆田华侨职业中专学校校聘教师招聘1人模拟试卷附答案详解(突破训练)
- 2025年临沂兰山区教育和体育局部分事业单位公开招聘教师(55名)模拟试卷及答案详解(必刷)
- 2025年潍坊护理职业学院公开招聘控制总量工作人员(30人)模拟试卷及完整答案详解一套
- 2025年丽水市人民医院引进高层次人才69人模拟试卷(含答案详解)
- 2025贵州遵义市务川自治县应急管理局、林业局和医保局招聘城镇公益性岗位人员3人考前自测高频考点模拟试题完整答案详解
- 2025年神木市孙家岔九年制学校教师招聘(4人)考前自测高频考点模拟试题含答案详解
- 2025年西夏区自治区级公益性岗位招聘考前自测高频考点模拟试题及答案详解(名校卷)
- 2025广东广州市中级人民法院招聘劳动合同制审判辅助人员46人考前自测高频考点模拟试题及1套参考答案详解
- 2025北京银行社会招聘模拟试卷及答案详解一套
- 过滤式消防自救呼吸器
- 应急救援技术专业教学标准(中等职业教育)2025修订
- 布洛芬药物分析关键要点
- 【新】2025国职游泳教练考试题库(120题完整版)
- 国家储备林建设项目可行性研究报告
- 2025年中央一号文件高频重点考试题库150题(含答案解析)
- 海豚的基础知识
- 交通事故责任认定书复议申请书
- 《药包材变更研究技术指南》(T-CNPPA 3009-2020)
- 《参红通络方对不稳定性心绞痛生化指标影响的临床研究》
- 中华民族共同体概论讲稿专家版《中华民族共同体概论》大讲堂之 第五讲 大一统与中华民族的初步形成(秦汉时期)
评论
0/150
提交评论