用电器电源自动控制电路的电子自动化实现 左函未Word文档下载推荐.docx

上传人:b****4 文档编号:17561855 上传时间:2022-12-07 格式:DOCX 页数:14 大小:142.06KB
下载 相关 举报
用电器电源自动控制电路的电子自动化实现 左函未Word文档下载推荐.docx_第1页
第1页 / 共14页
用电器电源自动控制电路的电子自动化实现 左函未Word文档下载推荐.docx_第2页
第2页 / 共14页
用电器电源自动控制电路的电子自动化实现 左函未Word文档下载推荐.docx_第3页
第3页 / 共14页
用电器电源自动控制电路的电子自动化实现 左函未Word文档下载推荐.docx_第4页
第4页 / 共14页
用电器电源自动控制电路的电子自动化实现 左函未Word文档下载推荐.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

用电器电源自动控制电路的电子自动化实现 左函未Word文档下载推荐.docx

《用电器电源自动控制电路的电子自动化实现 左函未Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《用电器电源自动控制电路的电子自动化实现 左函未Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。

用电器电源自动控制电路的电子自动化实现 左函未Word文档下载推荐.docx

3设计思想

首先分析题目要求,我从中得到下面几点内容:

1.用电器可以自动开启30s,然后就会自动关闭30s,如此周而复始,同时要有状态的显示—〉所以这里需要用到一个30进制的计数器,且有一个输出端表示用电器的工作状态。

2.题目要求随时都可以采用自动控制方式对用电器进行控制,即:

通过手动使用器由运行转换到停止或由停止转换到运行—〉因此必须有一个输入端用作开关来对用电器进行工作状态的控制。

3.定时信号的设计,且要有分秒的倒计时显示—〉首先必须得用到减法计数器,用减法计数器来做成”分”和”秒”;

另外很重要的是要用到扫描电路,用以显示倒计时。

此定时信号是用来控制整个电路的工作时间。

4.当然,在这其中不免会用到一些触发器、与非门、或非门、与门、或门、非门等。

5.在设计的时候可以首先把整个电路分成若干个小模块,如果先把小模块设计出来,那么整个电路就不成问题了。

4设计方案

将整个器件设计变为三个模块,即30计数器,计时器和显示模块

计数的设计

(一)30计数器

因为现成的计数器只有十进制计数器74160和十六进制计数器74161,要想做一个30进制的计数器,需要用两片计数器。

这里,我利用两片十进制计数器74160来构成一个30进制计数器。

依据如下:

把第一片74160的四位输出端接成1001(即十进制中的9),另一片接成0010(即十进制中的2),然后把第一片的进位输出端C接到第二片的使能控制端EP和ET上,每当第一片计成9(1001)时C变为1,下一个CP信号到达时第二片为计数工作状态,计入1,而当第一片计成0(0000),它的C端回到低电平;

第一片的EP

和ET接高电平恒为1,始终处于计数工作状态。

这样就构成了30进制计数器。

另外,还要有一个输出端是用来表示用电器工作状态的,我用到了一个JKFF、非门、与门。

具体的逻辑电路如下图所示:

 

图1

图形说明:

(1)此图是采用整体置数法接成的30进制计数器。

首先需将两片74160接成百进制计数器,然后将电路的29状态译码产生0信号,把此0信号和一个表示开关的输入端相“与”的结果(以下均称为”A”)同时加到两片74160的LD端(即LD非端),当下一个计数脉冲(第30个计数脉冲)到达时,将0000同时置入两片74160中,从而得到30进制计数器。

(2)JKFF在J=K=1时,输出波形不断翻转。

将“A”作为JKFF的CP信号,则输出端会0、1、0、1……这样循环,将此输出连接到某一指示灯上,若出现“灭”与“亮”每隔30秒交替的现象,就说明该用电器的工作状态为:

自动开启30s,然后自动进入关闭状态。

(3)该逻辑图中的CP信号设为CP

该模块的仿真波形图如下所示

图2

图形说明:

(1)KaiGuan一栏表示开关的状态:

0表示关闭,1表示打开。

7表示用电器的状态:

0表示停止,1表示运行。

20表示计数的高位(即十位),一直按照0、1、2……循环。

10表示计数的低位(即个位),一直按照0、1、2、3、4、5、6、

7、8、9、0……循环。

(2)当开关保持状态1不变,20由2变为0时,7会自动改变状态进行翻转。

这说明用电器运行30s和停止30s是自动循环的。

(3)在任意时刻,若手动开关改变其状态,则用电器的状态也会翻转,并且重新开始计时30s。

结论:

通过对逻辑电路进行仿真,从波形图上可以看出,此逻辑电路的设计是正确的,符合题目要求。

定时的设计

题目要求有分秒的定时,且为倒计时,所以必然会用到减法计数器。

74168为十进制同步加减计数器,当U/DN=0时,它可以做减法计数。

不妨把时间定时为5分钟,即数码管上倒计时的时间显示为从5分59秒开始,到0分00秒结束。

这里要用到3片74168。

另外,还须有T触发器、或门、或非门、与门、非门等。

图3

(1)首先,74168做减法计数,U/DN=0,要把它接地。

(2)秒的定时为0~59s需要用到两片74168,因为是倒计时,和一般的情况稍有差别,所以应该把八个输出端用一个或门译成0后加到LD非端,且第一片和第二片的输入端D0~D3应分别译成1001、0101(即十进制中的9、5)。

还要把秒的借位输出作为分的脉冲信号,这样,当秒减够60后,分会自动减1。

依据同样的道理,分的定时只需一片74168即可,同时把四个输出端用或门译成0加到LD非端,输入端D0~D3译成0101(即十进制中的5)。

这样,就把时间的的初始值置为0分00秒,而后马上回到5分59秒,这就开始了倒计时。

(3)为了使倒计时计到0分00秒的时候自动停止而不至于循环,所以这里需要对控制秒的脉冲信号加上一些限制。

用到了或非门、与门、非门,还有T触发器,具体连线见图中所示。

(4)该逻辑图中的CP信号设为CP2。

该模块的仿真波形图如下所示:

图4

(1)b(4~1)表示“分”由5自减到0;

(2)a[8~5]表示“秒”的高位有5自减到0;

Q[4~1]表示“秒”的低位由9自减到0。

(3)从整个图形可以看出:

时间由5分59秒开始,一秒一秒的自减到0分0秒。

结论:

扫描电路的设计

由于只用到3个数码管,所以地址端只需S0、S1即可,体现在试验箱上就是有4个数码管。

用到一片74161,将其接成4进制;

还用到四片74151双8选一数据选择器;

另需一片7449BCD--七段显示译码器。

具体的逻辑电路如下页图所示:

图5

(1)74161的输出端QA、QB分别作为数码管的地址端S0、S1和74151

的地址端A、B。

(2)两片74151的32个输入端分别称为1~32;

74151的四个输出端

分别作为7449的输入端;

7449的输出端OA~OG分别称为a~g。

(3)该逻辑电路的CP信号设为CP3,

图6

有图可知电路的设计是正确的。

将上述三个模块组合到一起,就构成了整个的逻辑电路,如下图所示:

图7

总逻辑电路的仿真模型为

图8

通过对逻辑电路进行仿真,从波形图上可以看出,用电器每隔30秒就会自动改变一下状态,且可以随时由KaiGuan改变状态,数码管上的数字显示是:

5分59秒~0分00秒,此逻辑电路符合题目要求,其设计是正确的。

5底层元器件的生成程序

5.1BCD-7段数码管显示译码器电路

library 

ieee;

use 

ieee.std_logic_1164.all;

entity 

bcd71 

is 

port(d:

in 

std_logic_vector(3 

downto 

0);

led:

out 

std_logic_vector(6 

0));

end 

bcd71;

architecture 

arch 

of 

begin 

led<

"

1111110"

when 

d="

0000"

else 

0110000"

0001"

1101101"

0010"

1111001"

0011"

0110010"

0100"

1011011"

0101"

1011111"

0110"

1110000"

0111"

1111111"

1000"

1111011"

1001"

0000000"

;

arch;

5.2MUX8

ieee.std_logic_signed.all;

ieee.std_logic_unsigned.all;

mux8_12 

is

port(d0,d1,d2,d3,d4,d5,d6,d7:

std_logic;

g:

a2,a1,a0:

y:

std_logic);

mux8_12;

one 

signala:

std_logic_vector(2 

begin

a<

=a2&

a1&

a0;

process(a,g,d0,d1,d2,d3,d4,d5,d6,d7)

if 

g='

0'

then 

y<

='

else

case 

when"

000"

=>

=d0;

001"

=d1;

010"

=d2;

011"

=d3;

100"

=d4;

101"

=d5;

110"

=d6;

111"

=d7;

others=>

case;

if;

process;

one;

5.360进制计数器

libraryieee;

--调用ieee库

useieee.std_logic_1164.all;

--使用ieee库中的1164包

useieee.std_logic_unsigned.all;

--使用ieee库中的无符号包

entitycntm60is

port(ci:

instd_logic;

--来至低级的进位

nreset:

--清零端

load:

--置数端

d:

instd_logic_vector(7downto0);

--与置数端对应的数据输入端

clk:

--时钟端

co:

outstd_logic;

--进位输出端

qh:

bufferstd_logic_vector(3downto0);

--计数器的高位输出端

ql:

bufferstd_logic_vector(3downto0));

--计数器的低位输出端

endcntm60;

architecturebehaveofcntm60is

co<

1'

when(qh="

andql="

andci='

)else'

process(clk,nreset)

begin

if(nreset='

)then

qh<

="

ql<

elsif(clk'

eventandclk='

if(load='

=d(7downto4);

=d(3downto0);

elsif(ci='

if(ql=9)then

if(qh=5)then

else

=qh+1;

endif;

=ql+1;

endprocess;

endbehave;

5.4十进制计数器

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYcnt10IS

PORT(

CLK:

INSTD_LOGIC;

LOAD,CLR:

--CLR:

清除数据

EN:

--信号使能

DATAIN:

INSTD_LOGIC_VECTOR(3DOWNTO0);

--输入的4位数据

Q:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

--输出的4位数据

CARRY_OUT:

OUTSTD_LOGIC--数据装载

);

ENDcnt10;

ARCHITECTURErtlOFcnt10IS

SIGNALTMP:

STD_LOGIC_VECTOR(3DOWNTO0);

--链接输入输出

BEGIN--数据的信号

PROCESS(CLK,LOAD,CLR,EN)

BEGIN

IFCLR='

THEN--当CLR高电平,数据变为0000

TMP<

="

ELSIFLOAD='

THEN--否则装载输入的数据

=DATAIN;

ELSIFCLK'

EVENTANDCLK='

THEN--上升沿时,执行10进制减法

IFEN='

THEN

IFTMP="

THEN--0跳转到9

ELSE--自动减1

=TMP-'

ENDIF;

THEN

CARRY_OUT<

--COOK<

=CARRY_OUT

ELSE

ENDPROCESS;

Q<

=TMP;

ENDrtl;

5.5JK

cnt16 

port(clk,clr,enb,control:

cout:

coh:

cnt16;

process 

(clk,clr,enb,control)

variable 

co 

:

clr='

co:

elsif 

rising_edge(clk) 

enb='

control 

'

15 

=co+1;

co>

=co-1;

1111"

co=15 

cout<

coh<

=co;

architecture;

6硬件实验结果

对总的逻辑电路进行编译下载后,在试验箱上连线,观察到如下现象:

表示用电器工作状态的指示灯每隔30s就会自动“亮”或“灭”,用高低电平当作开关来控制电路,也可以实现用电器状态的自动转换;

数码管上的时间显示为000、559、558……000。

硬件实验的结果完全符合题目要求,说明此逻辑电路的设计是完全正确的。

7心得体会

当我刚刚拿到题目的时候,感觉特别难,一点思路都没有,对此软件

的掌握也不是太熟练,后来,经过自己进一步的仔细琢磨、认真思考以及刻苦练习,慢慢地有了点眉目。

然后我就一点一点的设计电路,最后再进行模块组合,把整个设计思路连接起来成为了一个整体的数字电路。

当然在这其中也有过不少的错误,我仔细查看电路找错误,通过一次又一次的不断修改与仿真,我的电路一步步趋于完善,我也正一步步走向成功,当我波形仿真后,完全符合题目的各个要求,经过老师的验收,我顺利通过了这次为期两周的EDA课程设计。

经过这次课程设计,我发现自己还有很多不足,对数字电路某些内容的掌握不是太熟练,在逻辑电路设计方面欠佳;

同时,在课程设计的过程中,我也学会不少新的知识,扩展了自己的知识面,培养了亲自动手实践的能力,并且也对以前已经学过的知识进行了巩固练习。

我又一次深深体会到了知识的力量,感受到在知识海洋里遨游是一件多么愉快的事情。

从中我也悟出了一些道理:

人是不可以满足的!

我深信,经过刻苦学习,我一定可以掌握更多的科学知识。

在此,我深深地感谢每一位老师!

8参考文献

[1]赵全利.《EDA技术及应用教程》

[2]韩力群.《人工神经网络理论、设计及应用》第二版.化学工业出版社,1990.1 

[3]闻新,周露,李翔,张宝伟.《MATLAB神经网络仿真与应用》.科学出版社,2003.7

[4]邹彦.《EDA技术与数字系统设计》.电子工业出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 城乡园林规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1