数电课程设计报告交通灯文档格式.docx
- 文档编号:16240524
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:15
- 大小:116.26KB
数电课程设计报告交通灯文档格式.docx
《数电课程设计报告交通灯文档格式.docx》由会员分享,可在线阅读,更多相关《数电课程设计报告交通灯文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
(4)主干道方向红灯亮,支干道方向黄灯亮。
支干道不通车,时间为5秒
(5)返回
(1),继续运行。
2.单元电路设计(或仿真)与分析
详细介绍各单元电路的选择、设计及工作原理分析、仿真,并介绍有关参数的计算及元器件参数的选择等。
要实现上述交通信号灯的自动控制,则要求控制电路由时钟信号发生器、计数器、主控制器、信号灯译码驱动电路和数字显示译码驱动电路几部分组成。
(1)主控制器。
十字路口车辆运行情况只有4种可能:
1、设开始时主干道通行,支干道不通行,在这种情况下主绿灯和支红灯亮,持续时间为45秒;
2、45秒后,主干道不通行,支干道不通行,这种情况下主黄灯和支红灯亮,持续时间为5秒;
3、5秒后,主干道不通行,支干道通行,这种情况下主红灯和支绿灯亮,持续时间为25秒。
4、25秒后,主干道仍不通行,支干道停车,这种情况下主红灯和支黄灯亮,持续时间为5秒。
5秒后又回到第一种情况,如此重循环反复。
因此,要求主控制器也有4种状态,设这4种状态依次为:
Q0、Q1、Q2、Q3。
状态转换如图。
设Q0=00,Q1=01,Q2=11,Q3=10,实现这4个状态的电路,可用一片4位二进制同步加计数器74161和两片74151数据选择器来实现这四个状态。
可以用输出端S1和S0来表示这四种状态。
(2)计数器。
计数器实现的是倒计数,可采用74190来实现。
一般显示为红灯的时时,即停车时间。
当状态为Q2和Q3时主干道的红灯亮,主干道的红灯为50秒;
当状态为Q0和Q1时支干道的红灯亮,支干道的红灯为30秒。
输入1HZ的CP脉冲,即每隔1秒计数器计一次。
(3)控制信号灯的译码电路。
主控制器的4种状态分别要控制主、支干道红、黄、绿灯的亮与灭。
这四种状态可由S1和S0两种状态来实现。
(4)振荡及分频器―――秒脉冲产生电路
数字电子钟应具有标准的时间源,用它产生频率稳定的1HZ脉冲信号,称为秒脉冲,由于它直接影响到计时器走时的准确度,因此采用石英晶体振荡器,并经多级分频电路后获得秒脉冲信号。
采用石英晶体振荡器经计数器分频后产生时基信号的电路。
从电路的体积、成本以及分频方便考虑,数字计时器通常采用石英晶体振荡频率为32768HZ,经过十五级二分频电路,便可得到频率为1HZ的秒脉冲信号。
具体电路如图所示,它选用一片CMOS集成电路74LS161(16位二进制计数器)和一片CT74L174D触发器组成。
(5)电路连接图
3.电路的安装与调试
(1)组装调试秒脉冲电路。
(2)进行定时电路的组装和调试。
当输人1Hz的时钟脉冲信号时,要求电路能进行增计时,当增计时到25时,能输电有效的定时时间到信号。
(3)调试交通灯控制器以及显示部分。
(4)判断各部分电路之间的时序配合关系。
然后检查电路各部分的功能,使其满足设计要求。
(5).数字电路与逻辑设计的课程学习过程中,过多的偏重于电路逻辑功能的设计,考虑其实际实现则较少,比如芯片的稳定性、带载能力,工作环境等问题在设计中都没有考虑,很多设计在实验室环境下虽然可以正常工作,但不适宜投入生产。
(6).排除故障的能力和设计电路的能力同样重要。
在此次课程设计中,很多同学在设计和连接电路上花费的时间并不多,但却把大量的时间耗费在检查故障上,经常还会因为查不出故障或无法解决故障重新连接电路。
我觉得在日常生活和实际生产中,需要解除故障的地方远比设计电路要多,从一次实验中发现故障,逐步摸索排除故障的方法和技巧是极为重要的。
我在排除电路的故障中逐步掌握了电平高低的检测技巧和根据信号流向检查故障的方法,并对万用表的使用技巧有了更深入的实践和学习。
最终调试如下:
接上电源,便可以进行交通灯控制系统的仿真,电路默认把通车时间设为25秒,甲车道方向绿灯亮,行人车辆都可自由通行;
乙车道方向车道的红灯亮,车辆禁止通行。
时间显示器从预置的0秒,以每秒增1,增到25到0时,甲道的绿灯转换为黄灯,其余灯都不变。
从增至5秒又到0后时甲车道的黄灯转换为红灯;
乙车道的红灯转换为绿灯。
如此循环下去。
四.心得体会、存在问题和进一步的改进意见等
开始拿到题目的时候,不知道怎么去做,因为已经有半年没看数电了,自己对这门课的设计都不是很会,对很多的芯片的功能都不是很清楚,而且还要带一个专升本的同学去做这个设计,所以做得特别认真。
从收集资料到仿真在到做实物一共用了半个月的时间。
在做面包板板的时候,花了很长的时间去布线,由于芯片太多,线很乱不得不手动布线,一共用了一天的时间才做好。
通过这次课程设计,加强了我动手、思考和解决问题的能力.现在设计已经做好了,但是控制器控制信号灯不是很好。
虽然花了很多的时间,但学到了很多东西。
做课程设计的时候,自己把整个书本都看了几遍,增强了自己对知识的理解,很多以前不是很懂的问题现在都已经一一解决了。
在课程设计的过程中,我想了很多种方案,对同一个问题(像计数器的接法)都想了很多种不同的接法,运用不同的芯片进行了比较,最后还是采取了上面的方法进行连接。
5.程序
VHDL1
--FilenameJTDLCD
--目的:
在LCD上按格式显示交通灯的2个2位BCD码,红绿黄
--输入:
EW[7..0]、SN[7..0]东西、南北向的2个2位BCD码
--EWRYG[2..0]、SNRYG[2..0]东西南北的红绿灯信号,顺序为红黄绿
--CPIN时钟脉冲输入按10MHz设计;
复位R
--注意:
每个总线形式的输入均为LOGIC_VECTOR形式,因此,相应电路的输出要定义为LOGIC
--VECTOR形式,整型形式不能使用。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
entityJTDLCDis
port(CPIN,R,BUSY:
INSTD_LOGIC;
EW,SN:
INSTD_LOGIC_VECTOR(7DOWNTO0);
EWRYG,SNRYG:
INSTD_LOGIC_VECTOR(2DOWNTO0);
CLK,RST,STROBE,OUTLINE:
OUTSTD_LOGIC;
DATA:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);
ADDR:
OUTSTD_LOGIC_VECTOR(3DOWNTO0)
);
endentity;
architectureJGTofJTDLCDis
TYPESTATESIS(S0,S1,S2,S3,S4);
SIGNALS:
STATES;
SIGNALLCDPT:
INTEGERRANGE0TO10;
SIGNALCPCT:
INTEGERRANGE0TO65535;
SIGNALCP:
STD_LOGIC;
SIGNALASCEW,ASCSN:
STD_LOGIC_VECTOR(7DOWNTO0);
begin
PROCESS(CPIN,R)
BEGIN
CLK<
=CPIN;
IFR='
1'
THEN
CPCT<
=65535;
ELSIFCPIN='
ANDCPIN'
EVENTTHEN
IFCPCT=0THEN
CP<
=NOTCP;
ELSE
=CPCT-1;
ENDIF;
ENDIF;
ENDPROCESS;
--分频为500US周期
--主进程:
拟采用500us时钟,即在500us后完成状态转换,修改LCDPT指针
--S0:
初始状态,在R=1时,处于S0状态,LCDPT=0
--流程:
输出rst=1,转S1
--S1:
输出RST=0;
判断BUSY=0?
:
Y:
LCDPT+1;
LCDPT到固定最后?
:
N:
->
S2
--:
转S3
--;
N;
NULL
--S2:
给出STROBE信号。
转S1
--S1,S2完成初始化固定显示的功能
PROCESS(CP,R)
S<
=S0;
LCDPT<
=0;
RST<
='
;
ELSIFCP='
ANDCP'
CASESIS
WHENS0=>
=S1;
WHENS1=>
RST<
0'
STROBE<
IFBUSY='
LCDPT<
=LCDPT+1;
IFLCDPT=5THEN
=S3;
=S2;
WHENS2=>
--S3~S4完成扫描显示功能
--S3:
BUSY=0?
LCDPT循环+1,转S4
--S4:
给出STROBE信号,转S3
WHENS3=>
STROBE<
IFLCDPT=10THEN
=5;
=S4;
WHENS4=>
S<
WHENOTHERS=>
NULL;
ENDCASE;
ENDPROCESS;
--选择输出进程(LCDPT)
--LCDPT=0,NULL
--=1~4显示EWSNE45H,5W57H,6S53H,9N4EH,10
PROCESS(LCDPT)
CASELCDPTIS
WHEN0=>
WHEN1=>
DATA<
="
01000101"
ADDR<
0101"
OUTLINE<
WHEN2=>
01010111"
0110"
WHEN3=>
01010011"
1001"
WHEN4=>
01001110"
1010"
--LCDPT=5,6EWBCD码EH,5EL,6
--LCDPT=7EW红绿灯R,4
--LCDPT=89SNBCD码SH,9SL,10
--LCDPT=10SN红绿灯。
G,8R52H;
Y59H;
G47H
WHEN5=>
DATA<
0011"
&
EW(7DOWNTO4);
WHEN6=>
EW(3DOWNTO0);
WHEN7=>
=ASCEW;
0100"
WHEN8=>
SN(7DOWNTO4);
WHEN9=>
SN(3DOWNTO0);
WHEN10=>
=ASCSN;
1000"
WHENOTHERS=>
ENDCASE;
PROCESS(EWRYG)
CASEEWRYGIS
WHEN"
100"
=>
ASCEW<
01010010"
010"
01011001"
001"
01000111"
PROCESS(SNRYG)
CASESNRYGIS
ASCSN<
endarchitectureJGT;
JIAOTONGDENG
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityJIAOTONGDENGis
port(CP,RS,SPE:
INSTD_LOGIC;
EWRYG,SNRYG:
OUTSTD_LOGIC_VECTOR(2DOWNTO0);
EW,SN:
OUTSTD_LOGIC_VECTOR(7DOWNTO0)
endJIAOTONGDENG;
architectureJGTofJIAOTONGDENGIS
TYPESTATESIS(S0,S1,S2,S3);
SIGNALS:
STATES;
SIGNALA1,A2,B2:
--BCD转换输入信号
SIGNALC1,C2,C3:
SIGNALA2RYG,A3RYG,B2RYG,B3RYG:
STD_LOGIC_VECTOR(2DOWNTO0);
--BCD码显示在LCD上的信息
FUNCTIONSAM(BIN:
STD_LOGIC_VECTOR(7DOWNTO0))--2位16进制转2位BCD码函数
RETURNSTD_LOGIC_VECTORIS
VARIABLESBCD,ADDBCD:
STD_LOGIC_VECTOR(7DOWNTO0);
--定义BCD转换码中间变量
VARIABLEN:
INTEGERRANGE0TO8;
SBCD:
00000000"
IFBIN<
"
01100100"
THEN--当输入BIN大于十进制100时,输出为0
LOOP
IFBIN(N)='
THEN--根据BIN的每一位选择加上对应的压缩型BCD码
CASENIS
WHEN0=>
ADDBCD:
00000001"
WHEN1=>
00000010"
WHEN2=>
00000100"
WHEN3=>
00001000"
WHEN4=>
00010110"
WHEN5=>
00110010"
WHEN6=>
SBCD:
=SBCD+ADDBCD;
IFSBCD(3DOWNTO0)>
THEN--进行BCD码加法调整
=SBCD+"
=N+1;
EXITWHENN=8;
ENDLOOP;
RETURNSBCD;
ELSE
RETURN"
ENDFUNCTIONSAM;
PROCESS(CP,RS,SPE)
IFRS='
A1<
=X"
00"
A2RYG<
B2RYG<
A2<
B2<
--颜色及所对应的代码赋值
IFSPE='
C1<
=A1;
C2<
=A2;
C3<
=B2;
IFA1>
0THEN
A2<
ELSEA1<
=C1;
=C2;
=C3;
WHENS0=>
=A1-1;
=A3RYG;
=B3RYG;
=A2-1;
B2<
=B2-1;
1D"
A3RYG<
B3RYG<
22"
--转次态S1,主红支绿倒计30s
WHENS1=>
04"
--转次态S2,主红次黄倒计5s
WHENS2=>
31"
A3RYG<
36"
--转次态S3,主绿次红倒计50s
WHENS3=>
--转次态S0,主黄支红倒计5s
PROCESS(A2,B2)
EW<
=SAM(A2);
SN<
=SAM(B2);
PROCESS(A2RYG,B2RYG)
EWRYG<
=A2RYG;
SNRYG<
=B2RYG;
ENDJGT;
TEST
LibraryIEEE;
UseIEEE.std_logic_1164.all;
UseIEEE.std_logic_textio.all;
UseSTD.textio.all;
------------------------------------------------------------
entityTestjiaotongdengis
endTestjiaotongdeng;
architecturestimulusofTestjiaotongdengis
fileRESULTS:
TEXTopenWRITE_MODEis"
results.txt"
procedureWRITE_RESULTS(
CP:
std_logic;
EW:
std_logic_vector(7downto0);
EWRYG:
std_logic_vector(2downto0);
RS:
SN:
SNRYG:
SPE:
std_logic
)is
variablel_out:
line;
begin
write(l_out,now,right,15);
write(l_out,CP,right,2);
write(l_out,EW,right,9);
write(l_out,EWRYG,right,4);
write(l_out,RS,right,2);
write(l_out,SN,right,9);
write(l_ou
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告 交通灯