最新太原理工大学eda课程设计交通灯控制器.docx
《最新太原理工大学eda课程设计交通灯控制器.docx》由会员分享,可在线阅读,更多相关《最新太原理工大学eda课程设计交通灯控制器.docx(13页珍藏版)》请在冰点文库上搜索。
最新太原理工大学eda课程设计交通灯控制器
本科实验报告
课程名称:
CPLD/FPGA应用设计
课设题目:
交通灯控制器
交通灯控制器
一、设计要求
设计一个由一条主干道和一条支干道的十字路口的交通灯控制器,具体要求如下:
(1)主、支干道各设有一个绿、黄、红指示灯,两个显示数码管。
(2)主干道处于常允许通行状态,而支干道有车来才允许通行。
当主干道允许通行亮绿灯时,支干道亮红灯。
而支干道允许通行亮绿灯时,主干道亮红灯。
(3)当主、支道均有车时,两者交替允许通行,主干道每次放行45s,支干道每次放行25s,由亮绿灯变成亮红灯转换时,先亮5s的黄灯作为过渡,并进行减计时显示。
二、设计方案
1基本原理
(1)设置支干道有车开关SB。
(2)系统中要求有45秒、25秒和5秒三种定时信号,需要设计三种相应的计时显示电路。
计时方法为倒计时。
定时的起始信号由主控电路给出,定时时间结束的信号输入到主控电路。
(3)主控制电路的输入信号一方面来自车辆检测,另一方面来自45秒、25秒、5秒的定时到信号;输出有计时启动信号(置计数起始值)和红绿灯驱动信号。
(4)状态转移如图所示,用状态机描述。
状态转移图
(5)模块结构
模块结构图
2设计框图
交通灯控制器原理框图如下图所示,包括置数模块、计数模块、主控制器模块和译码器模块。
置数模块将交通灯的点亮时间预置到置数电路中,计数模块以秒为单位倒计时,当计数值减为零时,主控电路改变输出状态,电路进入下一个状态的倒计时。
其中,核心部分是主控制模块。
三、实验设备
计算机一台
操作系统:
WINDOWSXP
软件:
ispDesignEXPERTSystem
硬件:
1016E开发板
四、设计步骤
1打开ispEXPERT软件,建立一个新的工程JTD
单击菜单File→NewProject,输入工程路径,工程名
2建立VHDL文件
单击File→New菜单项,选择VHDLFile选项,单击OK按钮以建立VHDL文件,分别建立主控制器模块程序的vhd文件JTDKZ.vhd、计数器模块程序的vhd文件jsq.vhd、七段译码器程序的vhd文件yima7.vhd和主程序的vhd文件zhu.vhd。
a)主控制器模块
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYJTDKZIS
PORT(CLK,SB,cnt,RST:
INSTD_LOGIC;
en,MR,MY,MG,BR,BY,BG:
OUTSTD_LOGIC;
din:
outSTD_LOGIC_vector(7downto0));
ENDENTITYJTDKZ;
ARCHITECTUREARTOFJTDKZIS
TYPESTATE_TYPEIS(A,B,C,D);
SIGNALp_STATE,n_state:
STATE_TYPE;
BEGIN
reg:
PROCESS(CLK,rst)IS
BEGIN
ifrst='1'then
p_STATE<=A;
ELSIF(CLK'EVENTANDCLK='1')THEN
p_STATE<=n_state;
ENDIF;
endprocessreg;
com:
PROCESS(sb,cnt,p_state)
begin
CASEp_STATEIS
WHENA=>MR<='1';MY<='1';MG<='0';
BR<='0';BY<='1';BG<='1';
IF(SBANDcnt)='1'THEN
n_STATE<=B;din<="00000101";EN<='0';
ELSE
n_STATE<=A;din<="01000101";EN<='1';
ENDIF;
WHENB=>MR<='1';MY<='0';MG<='1';
BR<='0';BY<='1';BG<='1';
IFcnt='1'THEN
n_STATE<=C;din<="00100101";EN<='0';
ELSE
n_STATE<=B;din<="01000101";EN<='1';
ENDIF;
WHENC=>MR<='0';MY<='1';MG<='1';
BR<='1';BY<='1';BG<='0';
IFcnt='1'THEN
n_STATE<=D;din<="00000101";EN<='0';
ELSE
n_STATE<=C;din<="01000101";EN<='1';
ENDIF;
WHEND=>MR<='0';MY<='1';MG<='1';
BR<='1';BY<='0';BG<='1';
IFcnt='1'THEN
n_STATE<=A;din<="01000101";EN<='0';
ELSE
n_STATE<=D;din<="01000101";EN<='1';
ENDIF;
ENDCASE;
ENDPROCESScom;
ENDARCHITECTUREART;
b)计数器模块
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYjsqIS
PORT(en,RST:
INSTD_LOGIC;
Din:
INSTD_LOGIC_VECTOR(7DOWNTO0);
CLK:
INSTD_LOGIC;
Cnt:
OUTSTD_LOGIC;
QH,QL:
BUFFERSTD_LOGIC_VECTOR(3DOWNTO0));
ENDENTITYjsq;
ARCHITECTUREARTOFjsqIS
BEGIN
cnt<='1'WHEN(QH="0000"ANDQL="0000")ELSE'0';
PROCESS(CLK,en,RST)
BEGIN
IFRST='1'THEN
QH<="0100";QL<="0101";
ELSIFCLK'EVENTANDCLK='1'THEN
IFen='0'THEN
QH<=Din(7DOWNTO4);
QL<=Din(3DOWNTO0);
elsIFQL=0THEN
QL<="1001";
IFQH=0THEN
QH<="1001";
ELSE
QH<=QH-1;
ENDIF;
ELSE
QL<=QL-1;
ENDIF;
ENDIF;
ENDPROCESS;
ENDARCHITECTUREART;
c)7段译码器
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYyima7IS
PORT(A:
INSTD_LOGIC_VECTOR(3DOWNTO0);
LED7S:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
END;
ARCHITECTUREartOFyima7IS
BEGIN
PROCESS(A)
BEGIN
CASEAIS
WHEN"0000"=>LED7S<="1000000";
WHEN"0001"=>LED7S<="1111001";
WHEN"0010"=>LED7S<="0100100";
WHEN"0011"=>LED7S<="0110000";
WHEN"0100"=>LED7S<="0011001";
WHEN"0101"=>LED7S<="0010010";
WHEN"0110"=>LED7S<="0000010";
WHEN"0111"=>LED7S<="1111000";
WHEN"1000"=>LED7S<="0000000";
WHEN"1001"=>LED7S<="0010000";
WHENOTHERS=>LED7S<="1111111";
ENDCASE;
ENDPROCESS;
END;
d)顶层链接文件
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYJTDIS
PORT(CLK,SB,RST:
INSTD_LOGIC;
LED1,LED2,LED3,LED4,LED5,LED6:
OUTSTD_LOGIC;
SEG1:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);
SEG2:
OUTSTD_LOGIC_VECTOR(6DOWNTO0)
);
ENDJTD;
ARCHITECTUREBEHAVIORALOFJTDIS
SIGNALE:
STD_LOGIC;
SIGNALCN:
STD_LOGIC;
SIGNALDI:
STD_LOGIC_VECTOR(7DOWNTO0);
SIGNALYIMA1,YIMA2:
STD_LOGIC_VECTOR(3DOWNTO0);
COMPONENTJTDKZIS
PORT(CLK,SB,cnt,RST:
INSTD_LOGIC;
en,MR,MY,MG,BR,BY,BG:
OUTSTD_LOGIC;
din:
outSTD_LOGIC_vector(7downto0)
);
ENDCOMPONENT;
COMPONENTJSQIS
PORT(en,RST:
INSTD_LOGIC;
Din:
INSTD_LOGIC_VECTOR(7DOWNTO0);
CLK:
INSTD_LOGIC;
Cnt:
OUTSTD_LOGIC;
QH,QL:
BUFFERSTD_LOGIC_VECTOR(3DOWNTO0)
);
ENDCOMPONENT;
COMPONENTYIMA7IS
PORT(A:
INSTD_LOGIC_VECTOR(3DOWNTO0);
LED7S:
OUTSTD_LOGIC_VECTOR(6DOWNTO0)
);
ENDCOMPONENT;
BEGIN
U0:
JTDKZPORTMAP(CLK,SB,CN,RST,E,LED1,LED2,LED3,LED4,LED5,LED6,DI);
U1:
JSQPORTMAP(E,RST,DI,CLK,CN,YIMA1,YIMA2);
而手工艺制品是一种价格适中,不仅能锻炼同学们的动手能力,同时在制作过程中也能体会一下我国传统工艺的文化。
无论是送给朋友还是亲人都能让人体会到一份浓厚的情谊。
它的价值是不用金钱去估价而是用你一颗真诚而又温暖的心去体会的。
更能让学生家长所接受。
U2:
YIMA7PORTMAP(YIMA1,SEG1);
(3)个性体现U3:
YIMA7PORTMAP(YIMA2,SEG2);
服饰□学习用品□食品□休闲娱乐□小饰品□ENDBEHAVIORAL;
图1-1大学生月生活费分布3调试程序
§8-4情境因素与消费者行为2004年3月20日4引脚锁定
十字绣□编制类□银饰制品类□串珠首饰类□
2003年,全年商品消费价格总水平比上年上升1%。
消费品市场销售平稳增长。
全年完成社会消费品零售总额2220.64亿元,比上年增长9.1%。
5器件下载
6、波形仿真
二、资料网址:
据调查统计在对大学生进行店铺经营风格所考虑的因素问题调查中,发现有50%人选择了价格便宜些,有28%人选择服务热情些,有30%人选择店面装潢有个性,只有14%人选择新颖多样。
如图(1-5)所示7、硬件调试
(1)价格低
五、设计结果与分析
1、RST为复位信号,当RST=0时,显示器终止原来的计数变成00,RST=1时正常计数。
2、当SB=0时支路没车,主路一直有车通过,实验板上显示器一直从0到45秒变化。
当SB=1时,主,支干道均有车,两者交替允许通行,主干道每次放行45s,支干道每次放行25s,由亮绿灯变成亮红灯转换时,先亮5s的黄灯作为过渡,并进行减时显示。
六、设计总结