版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、下载可编辑实验四交通灯控制器设计一、实验目的1、学习与日常生活相关且较复杂数字系统设计;2、进一步熟悉 EDA 实验装置和 Quartus U 软件的使用方法;3、学习二进制码到 BCD 码的转换;4、学习有限状态机的设计应用。二、设计要求完成设计、仿真、调试、下载、硬件测试等环节,在型EDA 实验装置上实现一个由一条主干道和一条乡间公路的汇合点形成的十字交叉路口的交通灯控制器功能,具体要求如下:1、有 MR (主红)、 MY (主黄)、 MG(主绿)、 CR(乡红)、 CY (乡黄)、 CG(乡绿)六 盏交通灯需要控制;2、交通灯由绿转红前有4 秒亮黄灯的间隔时间,由红转绿没有间隔时间;3、
2、乡间公路右侧各埋有一个串连传感器,当有车辆准备通过乡间公路时,发出请求信号 S=1 ,其余时间 S=0;4、平时系统停留在主干道通行(MGCR 状态,一旦 S 信号有效,经主道黄灯4 秒(MYC R 状态后转入乡间公路通行( MRC )状态,但要保证主干道通行大于一 分钟后才能转换;5、一旦 S 信号消失,系统脱离MRC 状态,即经乡道黄灯4 秒( MRC )伏态进入 MGCR状态,即使 S 信号一直有效, MRC 状态也不得长于20 秒钟;6、控制对象除红绿灯之外,还包括分别在主干道和乡间公路各有一个两位十进制倒计时数码管显示。三、主要仪器设备1 、微机1 台2、 QuartusII 集成开
3、发软件1 套3、 EDA 实验装置1 套四、实验思路1、设计一个状态寄存器,控制六盏灯的亮与灭2、设计一个计时器,控制各状态的持续时间,计时器应满足以下要求:1 )当 S=1 ,且计数器已完成 60 计数时,计数器进入模 4 计数,随后进入模 20 计数,再进入模 4 计数,再回到模 60 计数2 )当计数器进行摸 20 计数时,一旦 S 变为 0,计数器立马进入模 4 计数,再进入模 60 计数3 )完成模 20 计数后,不论 S 为 0 或 1, 计数器进入模 4 计数,再进入模 60 计数4) 若计数器未完成模60 计数,不论 S 如何变话,计数器将继续进行模60 计数.专业 .整理 .
4、下载可编辑3、 设计一个译码显示电路,将计时器的八位 BCD 码转化为数码管可以显示的段位码通过动态扫描电路实现。4、设计一个分频器,将扫描频率分频为基准频率,提供计时器,状态器,译码显示的 钟控。5、 使用文本设计 4 个底层文件,并生成相应元器件,再使用原理图设计顶层文件五、实验步骤1、建立工作库文件夹和编辑设计文件1 ) 建立一个文件夹保存工程文件;2) 打开 Quartusll ,建立新的 VHDL 文件,再打开的页面下输入以下程序控制 6 盏灯的模块代码:LlBRARY lEEE;ENTlTY jtd lSPORT(clk,RESET,S:lN STD_LOGlC;COUNT:lN
5、STD_LOGlC_VECTOR(7 DOWNTO 0); MG,MY,MR,CG,CY,CR:OUT STD_LOGlC); END jtd;ARCHlTECTURE behav OF jtd lSTYPE jtdSTATE lS(mgcr,mycr,mrcg,mrcy);SlGNAL STATE:jtdSTATE;BEGlNPROCESS(RESET,STATE,clk, S)BEGlNlF RESET='1' THEN STATE<=mgcr;MG<='1'CR<='1'MY<='0'MR<=&
6、#39;0'CG<='0'CY<='0' ELSlF clk'EVENT AND clk='1' thenCASE STATE lSWHEN mgcr=>lF COUNT="00000001" AND S='1'THEN STATE<=mycr;MY<='1'CR<='1'MG<='0'MR<='0'CG<='0'CY<='0'ELSE ST
7、ATE<=mgcr;MG<='1'CR<='1'MY<='0'MR<='0'CG<='0'CY<='0' END lF; WHEN mycr=>lF COUNT="00000001" THENSTATE<=mrcg;MR<='1'CG<='1'MG<='0'MY<='0'CR<='0'CY<='0'
8、;ELSE STATE<=mycr;MY<='1'CR<='1'MG<='0'MR<='0'CG<='0'CY<='0' END lF; WHEN mrcg=>lF COUNT="00000001" OR S='0'THENSTATE<=mrcy;MR<='1'CY<='1'MY<='0'MG<='0'CR<='
9、;0'CG<='0'ELSE STATE<=mrcg;MR<='1'CG<='1'MG<='0'MY<='0'CR<='0'CY<='0' END lF; WHEN mrcy=>lF COUNT="00000001" THENSTATE<=mgcr;MG<='1'CR<='1'MR<='0'MY<='0'CY&
10、lt;='0'CG<='0'.专业 .整理 .下载可编辑ELSE STATE<=mrcy;MR<='1'CY<='1'MY<='0'MG<='0'CR<='0'CG<='0' END IF;END CASE;END IF;END PROCESS;END behav;控制数码管显示倒计时数并且输出:LIBRARY IEEE;ENTITY JISHU ISPORT(clk,S:IN STD_LOGIC;tim:OUT STD
11、_LOGIC_VECTOR(7 DOWNTO 0);END JISHU;ARCHITECTURE behav OF JISHU ISTYPE RGY IS(mgcr,mycr,mrcg,mrcy);SIGNAL STATE:RGY;BEGINPROCESS(clk)VARIABLE b:STD_LOGIC:='0'VARIABLE a:STD_LOGIC:='0'VARIABLE th,tl:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN-IF RESET='1' THEN STATE<=mgcr; th:="
12、;0000" ;tl:="0000"a:='0'b:='0' IF clk'EVENT AND clk='1' THENCASE STATE ISWHENmgcr => IF S='1'ANDb='1'THENSTATE<=mycr;a:='0'th:="0000"tl:="0100"b:='0'ELSIFS='0'ANDb='1'THENSTATE<=mg
13、cr;a:='1'th:="0000"tl:="0001"ELSEIF a='0' THEN th:="0110"tl:="0000"a:='1'elseIF NOT(th="0000" AND tl="0010") thenIF tl="0000" then tl:="1001"th:=th-1;else tl:=tl-1;END IF;ELSE th:="0000"
14、tl:="0001"a:='0'b:='1'END IF;END IF;END IF;WHEN mycr => IF a='0' THEN.专业.整理.th:="0000"tl:="0100"a:='1'elseIF NOT(th="0000" AND tl="0010") then下载可编辑tl:=tl-1;ELSE th:="0000"tl:="0001"a:='0'
15、STATE<=mrcg;END IF;END IF;WHEN mrcg =>IF S='1' THENIF a='0' THENth:="0010"tl:="0000"a:='1'elseIF NOT(th="0000" AND tl="0010") thenIF tl="0000" then tl:="1001"th:=th-1;else tl:=tl-1;END IF;ELSE th:="0000&qu
16、ot;tl:="0001"a:='0'STATE<=mrcy;END IF;END IF;ELSE a:='0'STATE<=mrcy;th:="0000"tl:="0100"END IF;WHEN mrcy =>IF a='0' THENth:="0000"tl:="0100"a:='1'elseIF NOT(th="0000" AND tl="0010") thentl:
17、=tl-1;ELSE th:="0000"tl:="0001"a:='0'STATE<=mgcr;END IF;END IF;END CASE;tim <= th & tl;END IF;end process;END behav;动态译码显示电路LIBRARY IEEE;PORT(CLK:IN STD_LOGIC;INPO:IN STD_LOGIC_VECTOR(7 DOWNTO 0);sl0,sl1,sl2:buffer STD_LOGIC;SEL:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
18、SG:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);.专业.整理.GW,SW: buffer STD_LOGIC_VECTOR(3 DOWNTO 0);END DISP;ARCHITECTURE behav OF DISP IS下载可编辑SIGNAL CNT8: STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL A : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINGW<=INPO(3 downto 0);SW<=INPO(7 downto 4);P3:PROCESS( CLK)BEGINIF CLK'EVEN
19、T AND CLK='1' THENIF CNT8<"001" THEN CNT8 <=CNT8+1;ELSE CNT8<=(OTHERS=>'0');END IF;END IF;SEL(0)<=sl0 ;SEL(1)<=sl1 ;SEL(2)<=sl2 ;CASE CNT8 ISWHEN "000" => sl2<='0'sl1<='1'sl0<='0'A<=GW;WHEN "001"
20、; => sl2<='0'sl1<='0'sl0<='1'A<=SW;WHEN OTHERS =>NULL;END CASE;END PROCESS ;P4:PROCESS(A)BEGINCASE A ISWHEN "0000" =>SG<="00111111" WHEN "0001" =>SG<="00000110"WHEN "0010" =>SG<="010110
21、11" WHEN "0011" =>SG<="01001111"WHEN "0100" =>SG<="01100110" WHEN "0101" =>SG<="01101101"WHEN "0110" =>SG<="01111101" WHEN "0111" =>SG<="00000111"WHEN "1000&quo
22、t; =>SG<="01111111" WHEN "1001" =>SG<="01101111"WHEN OTHERS=>NULL;END CASE;END PROCESS;END behav;分频器电路:LIBRARY IEEE;ENTITY FEN ISPORT ( CLK : IN STD_LOGIC;FOUT : OUT STD_LOGIC );.专业.整理.下载可编辑END;ARCHITECTURE one OF FEN ISSIGNAL FULL : STD_LOGIC;BEGINP_REG:
23、 PROCESS(CLK)VARIABLE CNT8 : STD_LOGIC_VECTOR(4 DOWNTO 0); -INPORTANTBEGINIF CLK'EVENT AND CLK = '1' THEN -512fe nIF CNT8 = "11111" THENCNT8 := "00000"-当 CNT8 计数计满时,输入数据D 被同步预置给计数器CNT8FULL <= '1'-同时使溢出标志信号FULL 输出为高电平ELSE CNT8 := CNT8 + 1;-否则继续作加1 计数FULL <
24、;= '0'-且输出溢出标志信号FULL 为低电平END IF;END IF;END PROCESS P_REG ;P_DIV: PROCESS(FULL)VARIABLE CNT2 : STD_LOGIC;BEGINIF FULL'EVENT AND FULL = '1' THENCNT2 := NOT CNT2;-如果溢出标志信号FULL 为高电平, D 触发器输出取反IF CNT2 = '1' THEN FOUT <= '1' ELSE FOUT <= '0'END IF;END IF;E
25、ND PROCESS P_DIV ;END;2、编译过程1 )输入完程序之后逐个编译2)逐个编译无错之后进行全程编译3、将以上模块生成元器件1 )控制 6 盏灯的模块 :2)控制数码管显示倒计时数的模块:.专业 .整理 .下载可编辑3)控制动态扫描显示的模块4)控制分频的模块FENCLK FOOTiLiitsti*G4、建立新的工程 ,将各个模块的元器件用原理图连接,进行编译原理图如下:: 口二口CXIH- 7. 0CLK F5JTIMP0.7. C田卩卫 Idlil kl l4HkBI. JBtaiilJBUBIilMBIil.lBJBIil Id?11II?U I SI L I二恥口 i一?:nstlP"EM!? ?asi i- -5、系统仿真1 )建立新的波形激励文件2 )在波形编辑器窗口添加节点3 )通过 Edit->End Time 来设定仿真结束时间4 )在 CLOC 窗口中设置 elk 的时钟周期为 10ns5)点击 save 保存6)通过 Tools 下的 Simulator Tools项进行仿真,然后观察输出波形仿真波形如下:.专业 .整理 .下载可编辑 ui2mla EfelkA.V1 1FA k
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 无抵押贷款合同样式
- 员工离职协议模板
- 配电室维护协议书
- 权威加工合同范文合辑
- 大学新生入学法律协议范文
- 全面服装代理合同范本
- 消防工程专业承包合同
- 广告位承包协议范本
- 美术作品购买协议范本2024年
- 个人税收居民证明委托申请
- 培训类项目立项评审指标体系
- 光伏组件支架及太阳能板安装施工方案54298
- 灾难救援现场的检伤分类方法
- 船舶管理知识考核题库与答案
- 《城市设计》2课件
- 初中体育与健康人教九年级(2023年修订) 田径初三跨栏教案
- 教科版科学五年级上册《摆的快慢》学习任务单
- 三年级数学上册课件-8.1分数的初步认识 - 人教版(共15张PPT)
- 车间注塑工艺表
- 摩托罗拉328-338系列写频软件教程
- 生活自理能力评价量表完整优秀版
评论
0/150
提交评论