资源描述
四 川 机 电 职 业 技 术 学 院
实 训 报 告
实训名称: 十字路口交通灯控制器
实训班级: 高14电子6班
学生姓名: 杜 超
指导教师: 张 国 勤
实训时间: 2016年6月20日 至 2016年7月1日
目 录
一、 安全教育 3
二、 实验项目 4
总 结 15
一、 安全教育
为了实习的顺利完成,确保人身,设备安全,并同时培养学生严谨、踏实,求实的科学作风以及爱护国家财产的优良品质,制定本实习守则。
一. 实习前应进行充分预习,认真阅读实习指导书,明确实习任务要求,掌握实习原理,拟定好实习方案,教师应对预习情况进行检查。
二. 进入实习室衣着整洁,穿戴好劳保用品,保持安静,严禁喧哗吸烟、吃零食、随地吐痰、保持良好的卫生环境。
三. 使用仪器设备前,应清点实习用品,熟悉其性能及操作方法,使用时严格守操作规程。
四. 实习过程中,注意实习安全,避免造成人身,设备事故。非实习课所用仪器不得擅自动用。
五. 应以严肃科学的态度进行实训,注意观察现象,认真记录实习的数据,遵守实习结果。
六. 实习过程中若发生事故,应主动写事故分析报告,总结实习,吸取教训。
七. 实习器材在实习中若有损坏,丢失,按照《仪器设备损坏,遗失赔偿制度》进行。
八. 实习结束后,要做好实习登记,并经老师签字认可。
九. 离开实习室前,应整理好仪器设备,断开电源,并做好实习室卫生后方可离开。
十. 实习完成后,应按要求认真填写实习报告,独立完成并按时上交。
二、 实验项目
项目 十字路口交通灯控制器
一·实训目的
1.熟练使用Quartus Ⅱ软件采用原理图与VHDL文本输入相结合的方法自顶向下模块化设计数字电路
2.能使用Quartus Ⅱ软件将VHDL程序生成可供原理图调用的元件
3.能使用Quartus Ⅱ软件对设计中多个设计文件进行单独综合、仿真、调试
4.了解有限状态机的概念及一般结构
5.了解有限状态机的作用及优点
6.熟悉使用VHDL语言设计状态机
二. 所需仪器及设备
计算机与Quartus Ⅱ工具软件、PLD实验箱。
三. 实训原理
交通灯的工作原理: 整个系统采用自顶层向下的模块设计方法,将系统划分为Moore状态机,数码管动态扫描,数码管译码三个模块,首先用VHDL编写个模块,然后用顶层原理图将各功能模块接起来。确定状态数量,状态转移条件和各状态输出信号的赋值。
状态机是一种具有指定数目的状态概念机,他在某个指定的时刻仅处于一个状态,状态的改变是对输入事件的响应。状态机的基本要素有3个:状态,输入条件和输出。
交通灯的原理图如下:
图1.1 示意图
图1.2 交通灯控制器的硬件连接图
图1.3 系统总体结构图
图1.4 交通灯状态转换图
表1.1 状态表
主干道
支干道
状态
红
黄
绿
红
黄
绿
0
0
1
1
0
0
S0
0
1
0
1
0
0
S1
1
0
0
0
0
1
S2
1
0
0
0
1
0
S3
交通灯的程序如下:
1.数码管动态扫描
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ds IS
PORT(
CLK_SCAN:IN STD_LOGIC;
tl_nb:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
th_nb:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
tl_dx:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
th_dx:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
COUNT_OUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));
END ds;
ARCHITECTURE behav OF ds IS
SIGNAL SEL_BIT: STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
PROCESS(CLK_SCAN)
Begin
IF CLK_SCAN'EVENT AND CLK_SCAN='1'THEN
IF SEL_BIT="011"THEN
SEL_BIT<="000";
ELSE
SEL_BIT<=SEL_BIT+1;
END IF;
END IF;
END PROCESS;
WITH SEL_BIT SELECT
COUNT_OUT<=th_nb WHEN"011",
tl_nb WHEN"010",
th_dx WHEN"001",
tl_dx WHEN"000",
"0000"WHEN OTHERS;
SEL<=SEL_BIT;
END behav;
图1.5 数码管动态扫描仿真图
2,Moore状态机
LIBRARY IEEE;
USE IEEE.Std_Logic_1164.ALL;
USE IEEE.Std_Logic_Arith.ALL;
USE IEEE.Std_Logic_Unsigned.ALL;
ENTITY jtd_moore IS
PORT(clk:in Std_Logic;
rst:in Std_Logic;
tl_nb,th_nb,tl_dx,th_dx:out integer range 0 to 9;
led:out Std_Logic_Vector(5 downto 0));
END ENTITY;
ARCHITECTURE behav OF jtd_moore IS
type state_type IS(S0,S1,S2,S3);
signal state:state_type:=S0;
signal flag1,flag2:Std_Logic:='0';
signal A,B:integer range 0 to 34;
BEGIN
p1:PROCESS(rst,clk)
BEGIN
IF rst='0'THEN
state<=S0;
flag1<='0';
flag2<='0';
ELSIF(clk'event and clk='1')THEN
CASE state IS
WHEN S0=>IF flag1='0'THEN
A <=29;
B<=34;
flag1<='1';
flag2<='1';
ELSE
IF A=1 THEN
A<=0;
B<=5;
state<=S1;
flag1<='0';
ELSE
A<=A-1;
B<=B-1;
END IF;
END IF;
WHEN s1=> IF flag1='0'THEN
A<=4;
B<=4;
flag1<='1';
flag2<='1';
ELSE
IF A=1 THEN
A<=0;
B<=0;
state<=S2;
flag2<='0';
ELSE
A<=A-1;
B<=B-1;
END IF;
END IF;
WHEN S2=> IF flag2='0'THEN
A<=24;
B<=19;
flag1<='1';
flag2<='1';
ELSE
IF B=1 THEN
B<=0;
A<=5;
state<=S3;
flag2<='0';
ELSE
B<=B-1;
A<=A-1;
END IF;
END IF;
WHEN s3=> IF flag2='0'THEN
A<=4;
B<=4;
flag1<='1';
flag2<='1';
ELSE
IF B=1 THEN
A<=0;
B<=0;
state<=S0;
flag1<='0';
ELSE
A<=A-1;
B<=B-1;
END IF;
END IF;
END CASE;
END IF;
END PROCESS p1;
p2:PROCESS(state)
BEGIN
CASE state IS
WHEN S0=>led<="001100";
WHEN S1=>led<="010100";
WHEN S2=>led<="100001";
WHEN S3=>led<="100010";
END CASE;
END PROCESS p2;
th_nb<=A/10;
tl_nb<=A rem 10;
th_dx<=B/10;
tl_dx<=B rem 10;
END behav;
图1.6 Moore状态机仿真图
3.数码管显示
LIBRARY IEEE;
USE IEEE.Std_Logic_1164.ALL;
USE IEEE.Std_Logic_Arith.ALL;
USE IEEE.Std_Logic_Unsigned.ALL;
ENTITY qi IS
PORT (
swd:in Std_logic_vector(3 downto 0);
seg:out Std_logic_vector(6 downto 0)
);
END qi;
ARCHITECTURE a of qi is
BEGIN
WITH swd SELECT
Seg <= "1111110" WHEN"0000",
"0110000" WHEN"0001",
"1101101" WHEN"0010",
"1111001" WHEN"0011",
"0110011" WHEN"0100",
"1011011" WHEN"0101",
"1011111" WHEN"0110",
"1110000" WHEN"0111",
"1111111" WHEN"1000",
"1111011" WHEN"1001",
"0000000" WHEN others;
END
图1.7 数码管显示仿真图
四.实训步骤
1.顶层设计
2.各子模块设计
(1)Moore状态机
(2)动态扫描模块scan
(3)数码管显示译码seg7
3.创建工程
4.建立编辑VHDL设计文件
5.子模块单独编译、仿真
6.管脚分配、器件编程、电路调试、故障分析及排除
表1.2 管脚分配
开发板板载资源
开发板原理图标号
芯片管脚
端口
备注
时钟源
CLK1
2
clk_scan
250~256kHZ
CLK2
3
Clk
1~16Hz
按键
S1
23
Res
复位
发光二极管
D1
4
LED5
绿
D2
5
LED4
黄
D3
6
LED3
红
D4
7
LED2
绿
D5
8
LED1
黄
D6
11
LED0
红
数码管段选
a
18
Seg6
b
17
Seg5
c
16
Seg4
d
15
Seg3
e
14
Seg2
f
13
Seg1
g
12
Seg0
数码管位选
Sbit3
21
Sel2
最高位C
Sbit2
20
Sel1
中间位B
Sbit1
19
Sel0
最低位A
数字电子钟的仿真图如下:
1.状态S0
图1.8 实物图
2.状态S1
图1.9 实物图
3.状态S2
图1.10 实物图
4.状态S3
图1.11 实物图
五.器件编程
管脚分配完成后,再次对设计进行全编译。连接好开发板,将程序下载到芯片中,完成器件编程。
六.电路调试
(1)根据项目需要,将跳线J12,J13调整到合理的位置,J13设置使输出频率为1HZ,J12设置使输出频率为250Hz以上。
(2)接通电源,观察LED显示是否符合交通灯要求,数码管是否能进行倒计时显示,记到0时,LED是否发生变化
七.故障分析排除
(1)交通灯倒计时第2轮时倒计时时间错误,S3到S0的状态编写错误,改正flag2,使倒计时恢复正常。
总 结
为期2周的《十字路口交通灯控制器》实训圆满结束。通过这eda实习,我不仅加深了对eda理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。
安全是一切之本,对于我们这次实训,用电安全格外重要。第一天老师就对我们进行了安全教育,实验室中的安全事项,生活中高压电的危险,在漏电时如何保护自身安全。
我们学习使用了Quartus软件用于原理图的绘制和仿真,VHDL编写和编译,我们了解一些元器件的功能,知道了如何生成符号。
这次eda实训让我感觉收获颇多,在这次实训中我不仅巩固了以前学习的知识,而且还学习到了怎样运用eda设计Moore状态机,动态扫描,数码显示模块,在整个过程中,加强了我的动手能力,同时也提高了我们的思考能力,在写程序的同时还要学会改写程序,根据错误的地方修改程序。
在这次课程设计中,我们运用到了以前所学的专业课知识,如:模拟和数字电路知识等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。
实 训 成 绩 统 计 表
序号
考核项目
考核权重
得分
1
安全考核
6%
2
实训报告
36%
3
劳动纪律
18%
4
实训考试
40%
总考核分
教师评语:
教师签名:
年 月 日
若想一路顺风,请你开心度时光,永葆云淡风轻。如果遇事解不开心结,过分地追求完美,一味地与自己较真,只会伤心劳神。
万事随缘莫计较,唯求淡泊与安宁。淡然得与失,珍惜人间情。与其和自己过不去,不如顺其自然,潇潇洒洒过一生。
若想一路顺风,请别拿别人的错误惩罚自己。看得开才会快乐,放得下才会轻松。胸怀要大度,凡事能接纳,对人能包容。
遇有不顺心的人和事,切不可小肚鸡肠,怀恨在胸。你这里恼怒填胸,可惹你生气的人早已满面春风,试想,你何必再纠结、郁闷、怨言声声!
若想一路顺风,请你用微笑掩埋苦痛。客观事实证明,人生有失就有得,得和失总是相辅相成。
不要感叹自己不幸运,不要抱怨老天不公平,得到的我们感到欣慰,失去的我们一身轻松。痛苦惋惜无济于事,坦然洒脱一路顺风!
若想一路顺风,请你修炼豁达心,大度才能包容。忍一时风平浪静,退一步海阔天空。懂得谦让和谅解,胸襟宽阔人尊敬。磕磕绊绊全甩弃,和睦相处快乐生。
要善待他人,即使路径狭窄,也要留一步与人行。拿得起,放得下,才是人生的真性情。
若想一路顺风,请你把自己的心态好好调整。细节决定成败,心态决定人生,拥有怎样的心态,就会有怎样的生活和心情。
面对困难和挫折,勇于挑战自我,就没有过不去的坎儿,就没有超越不了的山峰,就没有走不出去的困境,就会迎来风雨之后的彩虹!拥有一个良好的心态,就能乐观开朗地面对生活和人生。
若想一路顺风,请你懂得感恩和尊重。人生在世,就应该懂得感恩,感恩有父母的爱,感恩有亲人的疼,感恩有同事的帮,感恩有朋友同行,感恩有美妙的乐声,感恩有美丽的风景。
你如果懂得了感恩,也就拥有了别人的爱,也就赢得了别人的真诚和尊重!
若想一路顺风,请你清除羡慕、嫉妒、恨。尽管羡慕是人们的本能,但过于羡慕别人的人,一直都在追逐着别人的梦。
嫉妒和恨,更是一剂心灵的毒药,是一种扭曲的心理,我们应该懂得欣赏别人,将别人的优秀看在眼里,记在心中,让他人激励自己前行。
若想一路顺风,请你学会释放,不要钻进死胡同。生活纷繁,不要被困境和失败糟糕了心情。
生命,也有不能承受之重,要学会放下和释重,不能苦苦支撑。让心灵的阳光,冲破压抑的云层,让我们时刻保持着好心情!
人生途中,愿你一路顺风!
若想一路顺风,请你开心度时光,永葆云淡风轻。如果遇事解不开心结,过分地追求完美,一味地与自己较真,只会伤心劳神。
万事随缘莫计较,唯求淡泊与安宁。淡然得与失,珍惜人间情。与其和自己过不去,不如顺其自然,潇潇洒洒过一生。
若想一路顺风,请别拿别人的错误惩罚自己。看得开才会快乐,放得下才会轻松。胸怀要大度,凡事能接纳,对人能包容。
遇有不顺心的人和事,切不可小肚鸡肠,怀恨在胸。你这里恼怒填胸,可惹你生气的人早已满面春风,试想,你何必再纠结、郁闷、怨言声声!
若想一路顺风,请你用微笑掩埋苦痛。客观事实证明,人生有失就有得,得和失总是相辅相成。
不要感叹自己不幸运,不要抱怨老天不公平,得到的我们感到欣慰,失去的我们一身轻松。痛苦惋惜无济于事,坦然洒脱一路顺风!
若想一路顺风,请你修炼豁达心,大度才能包容。忍一时风平浪静,退一步海阔天空。懂得谦让和谅解,胸襟宽阔人尊敬。磕磕绊绊全甩弃,和睦相处快乐生。
要善待他人,即使路径狭窄,也要留一步与人行。拿得起,放得下,才是人生的真性情。
若想一路顺风,请你把自己的心态好好调整。细节决定成败,心态决定人生,拥有怎样的心态,就会有怎样的生活和心情。
面对困难和挫折,勇于挑战自我,就没有过不去的坎儿,就没有超越不了的山峰,就没有走不出去的困境,就会迎来风雨之后的彩虹!拥有一个良好的心态,就能乐观开朗地面对生活和人生。
若想一路顺风,请你懂得感恩和尊重。人生在世,就应该懂得感恩,感恩有父母的爱,感恩有亲人的疼,感恩有同事的帮,感恩有朋友同行,感恩有美妙的乐声,感恩有美丽的风景。
你如果懂得了感恩,也就拥有了别人的爱,也就赢得了别人的真诚和尊重!
若想一路顺风,请你清除羡慕、嫉妒、恨。尽管羡慕是人们的本能,但过于羡慕别人的人,一直都在追逐着别人的梦。
嫉妒和恨,更是一剂心灵的毒药,是一种扭曲的心理,我们应该懂得欣赏别人,将别人的优秀看在眼里,记在心中,让他人激励自己前行。
若想一路顺风,请你学会释放,不要钻进死胡同。生活纷繁,不要被困境和失败糟糕了心情。
生命,也有不能承受之重,要学会放下和释重,不能苦苦支撑。让心灵的阳光,冲破压抑的云层,让我们时刻保持着好心情!
人生途中,愿你一路顺风!
展开阅读全文