




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于FPGA的数字电子技术课程设计(以VHDL语言实现) 课题:交通信号灯设计题目: 1.由主干道A和支干道B的汇合点形成十字交叉路口,在交叉路口处设有红绿黄三色信号灯。红灯亮禁止通行;绿灯亮允许通行;黄灯亮则让行驶到路口的车辆有时间停靠到禁止线外。用两位数码管显示当前主支干道所处的状态。红黄绿分别用R,Y,G表示。2.主干道车辆较多,所以绿灯亮灯时间为50S;支干道亮绿灯时间设为30S。当主干道允许通行亮绿灯时则支干道亮红灯;支干道亮绿灯时也相反。每次由绿灯转变为红灯时,期间要亮5S的黄灯。3.交通灯正常运行时,用四位数码管显示主干道和支干道的倒计时时间。4.能实现系统总清0,清0后计数器由初始状态开始计数。5.具有一定的扩展功能。一.设计思路1.根据设计题目要求可以得出交通信号灯控制器的设计用“状态法”来实现较好,因此先划分出交通灯显示时的几个较大的状态。设状态用S表示。S0:主干道亮黄灯 支干道亮红灯 亮灯5SS1:主干道亮红灯 支干道亮绿灯 亮灯30SS2:主干道亮红灯 支干道亮黄灯 亮灯5SS3:主干道亮绿灯 支干道亮红灯 亮灯50S状态之间应该要能实现循环: S0=S1=S2=S3=S02.然后再考虑在每个状态下要能够实现的功能。根据题目可知在每个状态下要能实现将交通灯的颜色变换以字母的形式显示在两位数码管上,每位各表示一条道路。在交通灯颜色输出的同时还要能够实现计数的输出,也就是各路灯转换前剩余的时间量。3.在实现了各个状态下的功能后就要考虑加上清0功能与紧急功能,清0也就是复位功能。在复位时实现系统清0,并且清0后计数器从初始状态开始计时,在此将S0状态视为初始状态。也就是清0完毕后系统进入S0状态。课题中将紧急功能设为两条路都显示红灯,并且计数器全置0。4.这些实现的功能都加入后就可以对所写的VHDL语言进行测试与仿真了。在其中实现对所写语言的改进和完善,并得到仿真图结合仿真图再进行修改。在得到合理的仿真图后就可以进行分频语言的添加和设计电路图的绘制了。5.根据所用的电路板的输入频率合理地设置分频数,完成分频语言的编写。然后根据语言生成器件,再按要求连接电路图。完成后按要求添加约束文件后就可以进行下载演示了。二.VHDL语言及注释LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;-取库ENTITY JTD ISPORT(CPIN,R,JJ:IN STD_LOGIC;SGL,SZL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);ST1C,ST2C:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) -建立输入输出端口);END ENTITY;ARCHITECTURE JGT OF JTD IS TYPE STATES IS(S0,S1,S2,S3); SIGNAL S:STATES; SIGNAL CP:STD_LOGIC; SIGNAL CPCT:INTEGER RANGE 0 TO 10000000; SIGNAL C:STD_LOGIC_VECTOR(7 DOWNTO 0);-辅助用十六进制计数 SIGNAL GL,ZL:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL T1C,T2C:STD_LOGIC_VECTOR(7 DOWNTO 0);-建立影子端口FUNCTION SAM (BIN:STD_LOGIC_VECTOR(7 DOWNTO 0)十六进制与BCD码转换函数RETURN STD_LOGIC_VECTOR ISVARIABLE SBCD,ADDBCD :STD_LOGIC_VECTOR(7 DOWNTO 0);VARIABLE N:INTEGER RANGE 0 TO 8;BEGINN:=0;SBCD:=00000000;IF BIN ADDBCD:=00000001; WHEN 1= ADDBCD:=00000010; WHEN 2= ADDBCD:=00000100; WHEN 3= ADDBCD:=00001000; WHEN 4= ADDBCD:=00010110; WHEN 5= ADDBCD:=00110010; WHEN 6= ADDBCD:=01100100; WHEN OTHERS= ADDBCD:=00000000; END CASE; SBCD:=SBCD+ADDBCD; IF SBCD(3 DOWNTO 0)1001 THEN -进行BCD码加法调整 SBCD:=SBCD+0110; END IF;END IF;N:=N+1;EXIT WHEN N=8;END LOOP;RETURN SBCD;ELSE RETURN 00000000;END IF;END FUNCTION SAM;BEGINPROCESS(CP,R)BEGIN IF R=1 THEN S=S0;C=X00; GL=100;ZL=100;T1C=X00;T2C=X00;-复位的实现 ELSIF CP=1 AND CP EVENT THEN IF JJ=1 THEN GL=100;ZL=100;T1C=X00;T2C IF C1 THEN C=C-1; ELSE S=S1;C=X1E;GL=100;ZL=001; T1C=X23;T2C1 THEN T1C1 THEN T2C IF C1 THEN C=C-1; ELSE S=S2;C=X05;GL=100;ZL=010; T1C=X05;T2C1 THEN T1C1 THEN T2C IF C1 THEN C=C-1; ELSE S=S3;C=X32;GL=001;ZL=100; T1C=X32;T2C1 THEN T1C1 THEN T2C IF C1 THEN C=C-1; ELSE S=S0;C=X05;GL=010;ZL=100; T1C=X05;T2C1 THEN T1C1 THEN T2C=T2C-1; END IF; END CASE; END IF; END IF;END PROCESS;PROCESS(GL,ZL,T1C,T2C)-影子端口的赋值BEGINSGL=GL;SZL=ZL;ST1C=SAM(T1C);ST2C=SAM(T2C);END PROCESS; PROCESS(CPIN,R)分频语言BEGINIF R=1 THEN CPCT=10000000;ELSIF CPIN=1 AND CPIN EVENT THEN IF CPCT=0 THEN CPCT=10000000;CP=NOT CP; ELSE CPCT=CPCT-1; END IF;END IF;END PROCESS;END JGT;LIBRARY IEEE; -所用的LCD模块的VHDL程序USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity JTDLCD is port (CPIN,R,BUSY :IN STD_LOGIC; EW,SN :IN STD_LOGIC_VECTOR(7 DOWNTO 0); EWRYG,SNRYG : IN STD_LOGIC_VECTOR(2 DOWNTO 0); CLK,RST,STROBE,OUTLINE : OUT STD_LOGIC; DATA : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); ADDR : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );end entity ;architecture JGT of JTDLCD is TYPE STATES IS (S0,S1,S2,S3,S4); SIGNAL S: STATES; SIGNAL LCDPT : INTEGER RANGE 0 TO 10; SIGNAL CPCT : INTEGER RANGE 0 TO 65535; SIGNAL CP: STD_LOGIC; SIGNAL ASCEW,ASCSN : STD_LOGIC_VECTOR(7 DOWNTO 0);beginPROCESS(CPIN,R)BEGINCLK=CPIN;IF R=1 THEN CPCT=65535;ELSIF CPIN=1 AND CPIN EVENT THEN IF CPCT=0 THEN CPCT=65535;CP=NOT CP; ELSE CPCTS2 - :Y: 转S3- ;N; NULL-S2:给出STROBE信号。转S1-S1,S2完成初始化固定显示的功能PROCESS(CP,R)BEGINIF R=1 THEN S=S0;LCDPT=0;RST S=S1;LCDPT=0;RST RST=0;STROBE=0; IF BUSY=0 THEN LCDPT=LCDPT+1; IF LCDPT=5 THEN S=S3; ELSE S S=S1;STROBE STROBE=0; IF BUSY=0 THEN IF LCDPT=10 THEN LCDPT=5; ELSE LCDPT=LCDPT+1; END IF; S STROBE=1;S NULL; END CASE;END IF; END PROCESS;-选择输出进程(LCDPT)-LCDPT=0,NULL- =14 显示EW SN E 45H,5 W57H,6 S53H,9 N4EH,10PROCESS(LCDPT)BEGINCASE LCDPT ISWHEN 0 = NULL;WHEN 1= DATA=01000101;ADDR=0101;OUTLINE DATA=01010111;ADDR=0110;OUTLINE DATA=01010011;ADDR=1001;OUTLINE DATA=01001110;ADDR=1010;OUTLINEDATA=0011&EW(7 DOWNTO 4);ADDR=0101;OUTLINEDATA=0011&EW(3 DOWNTO 0);ADDR=0110;OUTLINEDATA=ASCEW;ADDR=0100;OUTLINEDATA=0011&SN(7 DOWNTO 4);ADDR=1001;OUTLINEDATA=0011&SN(3 DOWNTO 0);ADDR=1010;OUTLINEDATA=ASCSN;ADDR=1000;OUTLINE NULL;END CASE;END PROCESS;PROCESS(EWRYG)BEGINCASE EWRYG ISWHEN 100 = ASCEW ASCEW ASCEW NULL;END CASE;END PROCESS;PROCESS(SNRYG)BEGINCASE SNRYG ISWHEN 100 = ASCSN ASCSN ASCSN NULL;END CASE;END PROCESS;end architecture JGT;三.仿真图形1.初始时的仿真图2.状态转换时的仿真图四.设计电路图所生成模块体及总电路连线CPIN:时钟信号输
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB 28895-2025防护服装抗油易去污防静电防护服
- 2025河南郑州市新密市国开投资集团有限公司招聘管理人员和专业技术人员9人模拟试卷附答案详解(完整版)
- 2025贵州丹寨县人民检察院招聘聘用制检察辅助人员模拟试卷附答案详解(突破训练)
- 2025广东深圳市优才人力资源有限公司招聘编外聘用人员1人(派遣至深圳市龙岗区机关事务管理局)考前自测高频考点模拟试题及答案详解参考
- 2025年甘肃省烟草专卖局(公司)招聘相关事宜模拟试卷及参考答案详解一套
- 2025福建福州市水路运输事业发展中心招聘编外人员1人模拟试卷完整答案详解
- 2025广东深圳大学人文学院李立教授团队博士后招聘1人考前自测高频考点模拟试题及参考答案详解1套
- 2025南华大学附属南华医院招聘62人(湖南)模拟试卷完整答案详解
- 2025年济宁嘉祥县事业单位公开招聘工作人员(教育类)(68人)考前自测高频考点模拟试题及答案详解(全优)
- 2025年中国环保涂料添加剂行业市场分析及投资价值评估前景预测报告
- 工业微生物育种学课件
- 火灾原因认定规则 XF1301-2016
- 中药人参课件
- 电教设备采购投标方案(技术方案)
- 场地无偿使用的协议书
- 《术后镇痛》课件
- 中国银行汕头分行与广发银行韶关分行、第三人珠海经济特区安然实业集团公司代位权纠纷案
- 新华字典第12版电子版
- 健康教育学-健康传播
- 常见“肩痛”诊断、鉴别诊断与治疗
- 冷水滩事业编招聘2022年考试《公共基础知识》真题及答案解析【完整word版】
评论
0/150
提交评论