数字逻辑电路课程设计路灯控制器汇总.docx
《数字逻辑电路课程设计路灯控制器汇总.docx》由会员分享,可在线阅读,更多相关《数字逻辑电路课程设计路灯控制器汇总.docx(12页珍藏版)》请在冰豆网上搜索。
数字逻辑电路课程设计路灯控制器汇总
《数字逻辑》课程设计
实验报告书
安徽工业大学计算机学院
题目
路灯控制器
姓名
周岑林
专业
网络工程
班级
114
学号
119074417
指导教师
申元霞
分数
2012年4月日
○1设计任务及要求
○2总体控制方案
○3控制电路设计
●3.1控制电路工作原理
●3.2控制电路设计原理
○4倒计时电路设计
●4.1具有同步置数功能的十进制减法计数器
●4.2主干道与支干道倒计时电路设计
○5倒计时电路设计
●5.1动态显示工作原理
●5.2动态显示及译码电路设计
○6总体电路设计
●6.1总体电路
●6.2电路工作说明
○7电路仿真调试
●7.1控制电路仿真调试
●7.2倒计时电路仿真调试
●7.3译码显示电路仿真调试
●7.4总体电路仿真调试,下载验证
○8改进意见及收获体会
○参考文献
●1设计任务及要求
设计一个用于十字路口的交通灯控制器。
能显示十字路口东西、南北两个方向的红、黄、绿的指示状态。
具有倒计时功能。
用两组数码管作为东西和南北方向的倒计时显示,主干道每次放行(绿灯)60秒,支干道每次放行(绿灯)45秒,在每次由绿灯变成红灯的转换过程中,要亮黄灯5秒作为过渡。
黄灯每秒闪亮一次。
●2总体控制方案
设主干道绿灯、黄灯、红灯分别为G1、Y1、R1;支干道绿灯、黄灯、红灯分别为G2、Y2、R2,并且均用0表示灭,1表示亮,则交通灯有如下四种输出状态:
状态
G1Y1R1
G2Y2R2
S0
00
100
001
S1
01
010
001
S2
10
001
100
S3
11
001
010
通过以上观察可发现:
当主干道或者支干道的倒计时计数值为01时,控制器将从当前状态转入下一个状态。
因此,计数值01可作为控制器状态转换的条件,同时也可产生同步置数信号,将下一状态的计数初值置入计数器。
●3控制电路设计
3.1控制电路工作原理:
4状态循环实现:
主干道和支干道信号灯的实现:
采用4位二进制计数器74161实现控制器的四个状态循环。
当倒计时计数值为01时T1=1,作为7161的计数使能信号。
3.2控制电路设计原理:
状态
QBQA
G1Y1R1
G2Y2R2
S0
00
100
001
S1
01
010
001
S2
10
001
100
S3
11
001
010
●4倒计时电路设计
4.1:
具有同步置数功能的十进制减法计数器:
由具有同步置数功能的十进制减法计数器实现。
LDN=1时:
通过卡诺图分别求解驱动方程D3D2D1D0
LDN=0时:
D3D2D1D0=DCBA
现态
次态
CP
LDN
Q3Q2Q1Q0
Q3Q2Q1Q0
(D3D2D1D0)
↑
1
1001
1000
1000
0111
0111
0110
0110
0101
0101
0100
0100
0011
0011
0010
0010
0001
0001
0000
0000
1001
0
XXXX
DCBA
=>
2.再将两片及联实现2为二进制减法计数器:
4.2主干道与支干道倒计时电路设计
当主干道或支干道减法计数器为01时,产生同步置数信号,将下一状态计数初值置入。
主干道预置数
支干道预置数
状态
D7D6D5D4
D3D2D1D0
D7D6D5D4
D3D2D1D0
S0
00
0000
0101
0000
0101
S1
01
0101
0000
0100
0101
S2
10
0000
0101
0000
0101
S3
11
1110
0000
0110
0101
●5.倒计时电路设计
5.1动态显示工作原理:
EDA实验板上一共有8个数码管,如果按照传统的数码管驱动方式,则需要8个七段译码器和64个I/O口进行驱动,这样就会浪费大量的资源。
所以最常见的数码管驱动电路为动态扫描显示。
数码扫描显示原理:
利用人眼的视觉暂留效应,把多个数码管按一定顺序进行点亮(显示)。
当点亮的频率(即扫描频率)不大时,人眼看到的是数码管一个个的依次点亮,然而扫描频率足够大时,看到的不再是一个一个的点亮,而是全部同时点亮。
共阴极数码管:
将每个数码管的公共端(阴极)分别接三-八译码器的输出,三-八译码器的输入为位选信号;将多个数码管的相同段接在一起,作为段码输入端。
5.2动态显示及译码电路设计:
七段译码:
--bcd-7seg
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
ENTITYbcd_7segIS
PORT(
in_data:
INSTD_LOGIC_VECTOR(3DOWNTO0);
out_data:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
);
ENDbcd_7seg;
ARCHITECTURErtlofbcd_7segIS
BEGIN
PROCESS(in_data)
BEGIN
CASEin_dataIS
WHEN"0000"=>out_data<="00111111";
WHEN"0001"=>out_data<="00000110";
WHEN"0010"=>out_data<="01011011";
WHEN"0011"=>out_data<="01001111";
WHEN"0100"=>out_data<="01100110";
WHEN"0101"=>out_data<="01101101";
WHEN"0110"=>out_data<="01111100";
WHEN"0111"=>out_data<="00000111";
WHEN"1000"=>out_data<="01111111";
WHEN"1001"=>out_data<="01100111";
WHENOTHERS=>out_data<="00000000";
ENDCASE;
ENDPROCESS;
ENDrtl;
●6.总体电路设计:
6.1总体电路:
6.2电路工作说明:
●7电路仿真调试:
7.1控制电路仿真调试:
7.2倒计时电路仿真调试:
7.3译码显示电路仿真调试:
7.4总体电路仿真调试,下载验证:
●改进意见及收获体会:
这次设计交通灯控制器历时1个多星期,由于使用的是我没有用过的maxplus2软件,所以在使用时无法熟练的运用其各项功能,为此也消耗了不少时间。
所以在做一件事情的时候还是要先把使用工具研究透彻,才能跟好的服务于研究。
所幸在最终还是比较满意的完成了这次课程设计,自己也对这门课程也有了更多的实践经验,纸上谈兵终究是不够的,多实践才能出真知。