EDA技术实验内容交通灯74ls138与门等Word文档下载推荐.docx
- 文档编号:8511637
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:14
- 大小:18.37KB
EDA技术实验内容交通灯74ls138与门等Word文档下载推荐.docx
《EDA技术实验内容交通灯74ls138与门等Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《EDA技术实验内容交通灯74ls138与门等Word文档下载推荐.docx(14页珍藏版)》请在冰点文库上搜索。
PORT(CLK,RST,EN:
INSTD_LOGIC;
CO:
OUTSTD_LOGIC;
CQ:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDCOUNT;
ARCHITECTUREONEOFCOUNTIS
BEGIN
PROCESS(CLK,RST,EN)
VARIABLECQ1:
STD_LOGIC_VECTOR(3DOWNTO0);
IFRST=‘1’THENCQ1:
=(OTHERS=>
‘0’);
ELSIFCLK’EVENTANDCLK=‘1’THEN
IFEN=‘1’THEN
IFCQ1<
15THENCQ1:
=CQ1+1;
ELSECQ1:
=(OTHERS=>
‘0’)
ENDIF;
ENDIF;
IFCQ1=15THENCO<
=‘1’;
ELSECO<
=‘0’;
CQ<
=CQ1;
ENDPROCESS;
ENDONE;
4扫描显示电路设计
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYSCAN_LEDIS
PORT(CLK:
INSTD_LOGIC;
SG:
OUTSTD_LOGIC_VECTOR(6DOWNTO0);
--段控制信号输出
BT:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
--位控制信号输出
END;
ARCHITECTUREoneOFSCAN_LEDIS
SIGNALCNT8:
STD_LOGIC_VECTOR(2DOWNTO0);
SIGNALA:
INTEGERRANGE0TO15;
P1:
PROCESS(CNT8)
BEGIN
CASECNT8IS
WHEN"
=>
BT<
="
00000001"
;
A<
=1;
00000010"
=3;
00000100"
=5;
00001000"
=7;
00010000"
=9;
00100000"
=11;
01000000"
=13;
10000000"
=15;
WHENOTHERS=>
NULL;
ENDCASE;
ENDPROCESSP1;
P2:
PROCESS(CLK)
IFCLK'
EVENTANDCLK='
1'
THENCNT8<
=CNT8+1;
ENDPROCESSP2;
P3:
PROCESS(A)–-译码电路
BEGIN
CASEAIS
WHEN0=>
SG<
0111111"
WHEN1=>
0000110"
WHEN2=>
1011011"
WHEN3=>
1001111"
WHEN4=>
1100110"
WHEN5=>
1101101"
WHEN6=>
1111101"
WHEN7=>
0000111"
WHEN8=>
1111111"
WHEN9=>
1101111"
WHEN10=>
1110111"
WHEN11=>
1111100"
WHEN12=>
0111001"
WHEN13=>
1011110"
WHEN14=>
1111001"
WHEN15=>
1110001"
WHENOTHERS=>
ENDCASE;
ENDPROCESSP3;
5.正弦信号发生器
ENTITYsinIS
PORT(clk:
INSTD_LOGIC;
DOUT:
OUTINTEGERRANGE255DOWNTO0);
ENDENTITYsin;
ARCHITECTUREbehaveOFsinIS
SIGNALQ:
INTEGERRANGE63DOWNTO0;
PROCESS(clk)
IF(CLK'
EVENTANDclk='
)THEN
Q<
=Q+1;
ENDPROCESS;
PROCESS(Q)
CASEQIS
WHEN00=>
DOUT<
=255;
WHEN01=>
=254;
WHEN02=>
=252;
WHEN03=>
=249;
WHEN04=>
=245;
WHEN05=>
=239;
WHEN06=>
=233;
WHEN07=>
=225;
WHEN08=>
=217;
WHEN09=>
=207;
WHEN10=>
=197;
WHEN11=>
=186;
WHEN12=>
=174;
WHEN13=>
=162;
WHEN14=>
=150;
WHEN15=>
=137;
WHEN16=>
=124;
WHEN17=>
=112;
WHEN18=>
=99;
WHEN19=>
=87;
WHEN20=>
=75;
WHEN21=>
=64;
WHEN22=>
=53;
WHEN23=>
=43;
WHEN24=>
=34;
WHEN25=>
=26;
WHEN26=>
=19;
WHEN27=>
=13;
WHEN28=>
=8;
WHEN29=>
=4;
WHEN30=>
=1;
WHEN31=>
=0;
WHEN32=>
WHEN33=>
WHEN34=>
WHEN35=>
WHEN36=>
WHEN37=>
WHEN38=>
WHEN39=>
=24;
WHEN40=>
WHEN41=>
WHEN42=>
WHEN43=>
WHEN44=>
WHEN45=>
WHEN46=>
WHEN47=>
WHEN48=>
WHEN49=>
WHEN50=>
WHEN51=>
WHEN52=>
WHEN53=>
WHEN54=>
WHEN55=>
WHEN56=>
WHEN57=>
WHEN58=>
WHEN59=>
WHEN60=>
WHEN61=>
WHEN62=>
WHEN63=>
WHENOTHERS=>
NULL;
ENDCASE;
ENDPROCESS;
ENDARCHITECTUREbehave;
6.A/D采样控制电路ADC0809
ENTITYadc0809IS
PORT(ina:
INSTD_LOGIC_VECTOR(7DOWNTO0);
--0809的8位转换数据输出
CLK,EOC:
--CLKxitong工作时钟
ALE,ck,OE:
--ck是0809de工作时钟
adda,addb,addc:
outstd_logic;
outa:
OUTSTD_LOGIC_VECTOR(13DOWNTO0));
ENDadc0809;
ARCHITECTUREbehavOFadc0809IS
signalfp:
std_logic_vector(3downto0);
signalf:
std_logic;
TYPEstatesIS(st0,st2,st3,st4,st5,st6);
--定义各状态子类型
SIGNALcurrent_state,next_state:
states:
=st0;
SIGNALREGL:
STD_LOGIC_VECTOR(7DOWNTO0);
SIGNALLOCK:
STD_LOGIC;
--转换后数据输出锁存时钟信号
ADDA<
='
0'
addb<
='
addc<
process(CLK)
begin
if(CLK'
eventandCLK='
)then
iffp="
1100"
then
fp<
0000"
f<
=notf;
else
=fp+1;
endif;
endprocess;
ck<
=f;
PRO:
PROCESS(current_state,EOC)BEGIN--规定各状态转换方式
CASEcurrent_stateIS
WHENst0=>
ALE<
OE<
LOCK<
next_state<
=st2;
WHENst2=>
=st3;
WHENst3=>
IF(EOC='
)THENnext_state<
--测试EOC的下降沿
ELSEnext_state<
=st4;
ENDIF;
WHENst4=>
--测试EOC的上升沿,=1表明转换结束
=st5;
--继续等待
WHENst5=>
=st6;
WHENst6=>
=st0;
ENDPROCESSPRO;
PROCESS(f)
IF(f'
EVENTANDf='
)THEN
current_state<
=next_state;
--在时钟上升沿,转换至下一状态
--由信号current_state将当前状态值带出此进程,进入进程PRO
PROCESS(LOCK)--此进程中,在LOCK的上升沿,将转换好的数据锁入
IFLOCK='
ANDLOCK'
EVENTTHENREGL<
=ina;
ENDPROCESS;
withREGL(3downto0)select
outa(6downto0)<
0110000"
when"
0001"
--1
"
0010"
--2
0011"
--3
0110011"
0100"
--4
0101"
--5
1011111"
0110"
--6
1110000"
0111"
--7
1000"
--8
1111011"
1001"
--9
1010"
--A
0011111"
1011"
--b
1001110"
--c
0111101"
1101"
--d
1110"
--e
1000111"
1111"
--f
1111110"
whenothers;
--0
withREGL(7downto4)select
outa(13downto7)<
ENDbehav;
7.交通灯控制器
计数器的程序
LibraryIeee;
UseIeee.Std_Logic_1164.All;
EntityCounterIs
Port
(Clock:
InStd_Logic;
Reset:
Hold:
Countnum:
BufferIntegerRange0To49);
End;
ArchitectureBehaviorOfCounterIs
Begin
Process(Reset,Clock)
Begin
IfReset='
Then
Countnum<
ElsifRising_Edge(Clock)Then
IfHold='
Then——当出现紧急情况时,计数器暂停计数
=Countnum;
Else
IfCountnum=49Then
Countnum<
Else
=Countnum+1;
EndIf;
EndIf;
EndProcess;
1控制器的程序
EntityControllerIs
InIntegerRange0To49;
——前级计数器的计数值
Numa,Numb:
OutIntegerRange0To25;
——倒计时数值的计数值
Reda,Greena,Yellowa:
OutStd_Logic;
——控制东西方向红黄绿灯的亮灭
Redb,Greenb,Yellowb:
——控制南北方向红黄绿灯的亮灭
Flash:
OutStd_Logic);
——用以指示七段数码管显示数字的闪烁
ArchitectureBehaviorOfControllerIs
Process(Clock)
IfFalling_Edge(Clock)Then——计数器是上升沿改变计数值,此处下降沿读取
IfHold='
Then
Reda<
Redb<
Greena<
Greenb<
Yellowa<
Yellowb<
Flash<
IfCountnum<
=19Then
Numa<
=20-Countnum;
——计数器东西方向倒计时
Elsif(Countnum<
=24)Then
=25-Countnum;
=50-Countnum;
IfCountnum<
=24Then——计数器南北方向倒计时
Numb<
ElsifCountnum<
=44Then
=45-Countnum;
EndProcess;
分位电路程序
EntityFenweiIs
Port(Numin:
InIntegerRange0To25;
Numa:
OutIntegerRange0To2;
Numb:
OutIntegerRange0To9);
ArchitectureBehaviorOfFenweiIs
Process(Numin)
IfNumin>
=20Then
=2;
=Numin-20;
ElsifNumin>
=10Then
=Numin-10;
=Numin;
.4.1七段译码电路的程序
EntityDisplayoneIs
Port(
Clock:
InStd_Logic;
Flash:
Qin:
InStd_Logic_Vector(3Downto0);
Display:
OutStd_Logic_Vector(0To6)
);
ArchitectureDecoderOfDisplayoneIs
SignalTimeout:
IntegerRange0To63;
IfRising_Edge(Clock)Then
IfFlash='
Timeout<
IfTimeout=63Then
=Timeout+1;
IfTimeout<
31Then
CaseQinIs
When"
Display<
=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 技术 实验 内容 交通灯 74 ls138 与门
![提示](https://static.bingdoc.com/images/bang_tan.gif)