- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于FPGA的数字电子技术课程设计(以VHDL语言实现)
课题:交通信号灯
设计题目:
1.由主干道A和支干道B的汇合点形成十字交叉路口,在交叉路口处设有红绿黄三色信号灯。红灯亮禁止通行;绿灯亮允许通行;黄灯亮则让行驶到路口的车辆有时间停靠到禁止线外。用两位数码管显示当前主支干道所处的状态。红黄绿分别用R,Y,G表示。
2.主干道车辆较多,所以绿灯亮灯时间为50S;支干道亮绿灯时间设为30S。当主干道允许通行亮绿灯时则支干道亮红灯;支干道亮绿灯时也相反。每次由绿灯转变为红灯时,期间要亮5S的黄灯。
3.交通灯正常运行时,用四位数码管显示主干道和支干道的倒计时时间。
4.能实现系统总清0,清0后计数器由初始状态开始计数。
5.具有一定的扩展功能。
一.设计思路
1.根据设计题目要求可以得出交通信号灯控制器的设计用“状态法”来实现较好,因此先划分出交通灯显示时的几个较大的状态。设状态用S表示。
S0:主干道亮黄灯 支干道亮红灯 亮灯5S
S1:主干道亮红灯 支干道亮绿灯 亮灯30S
S2:主干道亮红灯 支干道亮黄灯 亮灯5S
S3:主干道亮绿灯 支干道亮红灯 亮灯50S
状态之间应该要能实现循环:
S0=S1=S2=S3=S0
2.然后再考虑在每个状态下要能够实现的功能。根据题目可知在每个状态下要能实现将交通灯的颜色变换以字母的形式显示在两位数码管上,每位各表示一条道路。在交通灯颜色输出的同时还要能够实现计数的输出,也就是各路灯转换前剩余的时间量。
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 IS
PORT(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
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 IS
VARIABLE SBCD,ADDBCD :STD_LOGIC_VECTOR(7 DOWNTO 0);
VARIABLE N:INTEGER RANGE 0 TO 8;
BEGIN
N:=0;SBCD:
IF BITHEN --当输入BIN大于十进制100时,输出为0
LOOP
IF BIN(N)=1 THEN --根据BIN的每一位选择加上对应的压缩型BCD码
CASE N IS
WHEN 0= ADDBCD:
WHEN 1= ADDBCD:=0
您可能关注的文档
- 三自由度绳驱动RCM机构设计.doc
- 暖通毕业设计说明.doc
- 硅铝酸盐复合基质全色荧光粉的制备及发光性能研究.doc
- 基于单片机的超声波测距系统的设计修改版.doc
- 基于单片机的LED广告牌的设计.doc
- 基于PLC实现的立体车库毕业设计额.doc
- 基于51单片机实现modbus协议通信单片机原理与应用课程设计论文.doc
- 基于Socket的聊天室(C#版).doc
- 基于EDA技术设计的一个简易的八音符电子琴.doc
- 基于ProE的转臂件冲压模具设计.doc
- 数列核心考点教师版.pdf
- 因式分解2解析.pdf
- 2024-2025学年湖北鄂东南省级示范高中教育教学改革联盟学校起点考试高二数学试卷-普通用卷.docx
- 八上开学考试数学试题.docx
- 精品解析:重庆市西南大学附属中学2023-2024学年七年级上学期数学期中模拟试题(解析版).pdf
- 四川省成都市第七中学2023-2024学年九年级上学期开学数学试题(原卷版).docx
- 精品解析:重庆市西南大学附属中学2023-2024学年七年级上学期数学期中模拟试题(原卷版).pdf
- TCRHA 055-2024 肝脏肿瘤3D可视化临床应用规范.pdf
- TCRHA 054-2024 高原红细胞增多症血液稀释疗法护理技术操作规程.pdf
- TCRHA 078-2024 眼前后节联合手术影像学检查及生物学测量方法.pdf
文档评论(0)