根据multisim的定时器课程教学设计.doc
.-目录1背景及意义22 设计原理及设计方案32.1设计原理32.2设计方案33 设计过程43.1基于multisim的设计43.1.1脉冲发生电路43.1.2 置数电路53.1.3计数电路63.1.4译码显示电路73.1.5警报电路93.1.6控制电路93.2基于VHDL的设计103.2.1建立工程103.2.2调试程序114运行结果及分析154.1基于multisim的结果及分析154.2基于VHDL的结果分析16总结17参考文献181背景及意义随着社会文明的进步和科学技术的发展,先进的电子技术在各个近代跨学科门类和技术领域占有不可或缺的核心地位。在我国现代化得建设的发展进程中,数字电子技术在国民经济和科学研究各个领域的应用也越来越广泛。而计时器恰恰是数字电子技术的一个重要组成部分,在许多的领域中计时器均得到普遍应用,诸如在体育比赛中,定时报警器,游戏中的倒计时器,交通信号灯,红绿灯,行人灯,还可以做时间提醒设备等,由此可见计时器在现代社会是何其重要。本设计为倒计时计时器,其作用范围在199s,具有直接清零,启动,暂停和连续以及具有光电报警功能,同时应用了气短数码管来显示时间。此计时器有了启动,暂停和连续功能,可以方便地实现断点计时功能,当计时器递减到零时,会发出光电报警信号。本设计完成中途计时功能,实现了在许多的特定场合进行实践追踪的功能,在社会生活也具有广泛的价值。2 设计原理及设计方案2.1设计原理我们可以用优先编码器74ls147来完成199秒的置数功能,用555时基电路构成的多谐振荡器来产生频率为1HZ的脉冲输出周期为1秒的方波脉冲,将该方波脉冲信号送到计数器74ls192的cp减计数脉冲端,在通过译码器74ls48把输入的8421BCD码经过内部作和电路“翻译”成七段(a,b,c,d,e,f,g)输出,显示十进制数,然后在适当的位置设置开关或控制电路即可实现计数器的清零,启动和暂停连续,译码显示电路与亮灯及光电报警灯功能。2.2设计方案通过初步设计,可以确定该系统应该包括置数电路,秒脉冲发生器,计数器,译码显示电路,时序控制电路,警报电路等6部分构成。其中置数电路,计时器和时序控制电路是该系统的主要部分。置数电路完成置数,计数器的主要功能是完成倒计时功能,而控制电路具有计数器的启动计数,暂停,连续计数等功能。为了满足系统的设计要求,在设计控制电路时,应正确处理各个信号的时序关系。在操作直接清零开关时,计时器清零,显示器显示零。当启动开关置1时,控制电路应封锁时钟信号cp,通过置数器置数,计数器完成置数功能,显示器显示所置的数。当启动开关置0时,计数器开始计数。当暂停,连续计数开关拨在暂停位置上,计数器停止计数,处于保持状态;当暂停,连续计数开关拨在连续计数的位置上,计数器继续递减计数。当计数器递减计数到0的时,封锁时钟信号cp,使计数器处于保持状态。系统设计框图如图2.1所示。译码显示计数器置数电路报警电路秒脉冲发生器控制电路 图2.13 设计过程3.1基于multisim的设计3.1.1脉冲发生电路用555集成电路组成多谐振荡电路为系统提供时钟秒脉冲,555定时器应用为多谐振荡电路时,当电源接头vcc通过电阻R1,R2向电容C充电,其上电压按指数规律上升,当u上升到2/3 Vcc,会使比较器C1输出翻转,输出电压为零,同时放电管T导通,电容C通过R2放电;当电容电压下降到1/3Vcc,比较器C2工作输出高电平,C放电终止,Vcc通过R1,R2又开始充电;周而复始,形成振荡。则其周期与放电时间有关,也就是与外接元件有关,不受电压电源变化影响。公式计算:T1=(R1+R2)C ln 2;T2=R2Cln2;振荡周期:T=T1+T2=0.7(R1+2R2)C=1(s)若取C=10uF,结合实际选取电阻为600,200。 图3.1 内部管脚图 图3.2N555多谐振荡电路图 3.1.2 置数电路置数电路利用74LS147优先编码器中优先级别高的信号排斥级别低的信号这一特点来置数,并将输出的编码输入到计数电路中,即完成置数功能。 (a) (b) 图3.3 74LS147管脚图 本次实验的置数电路可以按图3.4接: 图3.43.1.3计数电路本次课程设计中选用74LS192来实现减法的计数功能。图3.5是74LS192的管脚图。 (a) (b) 图3.574LS192具有下述功能:异步清零:CLR=1,Q3Q2Q1Q0=0000.异步置数:CLR=0,PL=0,Q0Q1Q2Q3=D0D1D2D3.保持:CLR=0,PL=1,UP=DOWN=1,Q0Q1Q2Q3保持原状态加计数:CLR=0,PL=1,UP-=CP,DOWN=1,Q0Q1Q2Q3按加法规律计数减计数:CLR=0,PL=1,DOWN=CP,UP=1,Q1Q2Q3Q4按减法规律计数按照课程设计任务书要求,需要计时在199秒内,所以设计中需要两个十进制的计数器。我们可以用两片74LS192来实现。计数电路中的两片加计数脉冲输入端都要接高电平,且要将低片位的借位信号加到高位片的减计数脉冲输入端。高位片的借位信号控制警报电路。具体接法如图3.6。 接入脉冲信号 图3.63.1.4译码显示电路译码电路的功能是将计数器的输出代码进行翻译,编程相应的数字。用于驱动LED七段数码管的译码器常用的又有74LS48。图3.6是74LS48的管脚图。图3.6图3.7是74LS8的真值表。图3.7本次实验译码显示电路按图3.8接。图3.83.1.5警报电路警报电路由二极管和蜂鸣器组成,利用二极管的单向导通性,当高位片变为0时,其借位端为低电平,则二极管导通,蜂鸣器发出响声,完成警报功能。本实验的警报电路按图3.9接。图3.93.1.6控制电路控制电路主要实现异步清零,异步置数,暂停连续计数等功能。具体电路图如下。图3.10总电路如图3.11所示: 图3.113.2基于VHDL的设计3.2.1建立工程点击File选中New Project Wizard,填入相应的工程名字,工程名字与实体名相同。如下图所示。图3.12连击两次Next,填入相应的参数,点击Finish即完成工程的建立,如图所示。图3.133.2.2调试程序(1)点击File,New,VHDL File,OK一个编辑窗口如图所示图3.14(2)在编辑框里填写如下程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count_30 isport(clk,clr:in std_logic;pld,enb:in std_logic;warn:out std_logic;s1,s0:out std_logic_vector(6 downto 0);d:in std_logic_vector(9 downto 0);s:in std_logic_vector(9 downto 0);end count_30;architecture a of count_30 issignal dd:std_logic_vector(3 downto 0);signal ss:std_logic_vector(3 downto 0);begin pro1:process(clk,clr,enb)variable tmpa:std_logic_vector(3 downto 0);variable tmpb:std_logic_vector(3 downto 0);variable tmpwarn:std_logic;beginif clr=1then tmpa:=0000;tmpb:=0000;tmpwarn:=0;elsif clkevent and clk=1thenif pld=1thenif d(9)=1then tmpb:=1001;elsif d(8)=1 then tmpb:=1000;elsif d(7)=1then tmpb:=0111;elsif d(6)=1then tmpb:=0110;elsif d(5)=1then tmpb:=0101;elsif d(4)=1then tmpb:=0100;elsif d(3)=1then tmpb:=0011;elsif d(2)=1then tmpb:=0010;elsif d(1)=1then tmpb:=0001;elsif d(0)=1then tmpb:=0000;end if;if s(9)=1then tmpa:=1001;elsif s(8)=1 then tmpa:=1000;elsif s(7)=1then tmpa:=0111;elsif s(6)=1then tmpa:=0110;elsif s(5)=1then tmpa:=0101;elsif s(4)=1then tmpa:=0100;elsif s(3)=1then tmpa:=0011;elsif s(2)=1then tmpa:=0010;elsif s(1)=1then tmpa:=0001;elsif s(0)=1then tmpa:=0000;end if; tmpwarn:=0;elsif enb=1thenif tmpa=0000thenif tmpb/=0000thentmpa:=1001;tmpb:=tmpb-1;elsetmpwarn:=1;end if;else tmpa:=tmpa-1;end if;end if;end if;ss=tmpa;dd=tmpb;warns1s1s1s1s1s1s1s1s1s1s1s0s0s0s0s0s0s0s0s0s0s0=0000000;end case;end process;end a;(3)存盘并进行编译,如图所示。图3.144运行结果及分析4.1基于multisim的结果及分析将555的输出端接到示波器上观察到的波形为一脉冲,其频率近似为一秒。基本符合课程设计中所需秒信号的要求。在电路完成后,将置数开关拨到有效,并置数为30s,显示器显示30字数。图4.1将置数开关拨到无效,则开始计数电路进行减计数,并在显示电路中显示相应的剩余时间,在此过程中电路的暂停、连续、清零等功能均得以实现。在倒计时为零时,二极管亮,蜂鸣器发出响声。4.2基于VHDL的结果分析对编译成功的程序进行仿真图4.2由仿真的波形图可知当enb为高电平时,clr清零端为高电平时,显示器显示零。当置数pld为高电平时,置数为30,则显示器显示30.当置数pld为低电平时,开始减计数。减为零时,warn为高电平有效。总结课程设计需要的是活学活用所涉及的知识。经过这次课程设计,才明白生产一电子产品是多么的不容易。里面的过程要求我要非常细心,要想设计并制作一个非常完美实用的数字电路,确实是一个不轻松的工作,不仅要有动手的能力,还要有灵活应用芯片理论的功能,为此需要阅读大量关于这方面的书籍。在本次的课程设计中通过自己选题,找材料,分析,设计等,掌握了一些软件的应用,为以后的学习垫下了铺垫。整个设计实现了从单一的理论知识到解决实际问题的转变。通过本次实验我最大的收获就是提高了自身的动手能力和培养了我寻求解决问题的能力。在设计中,我充分的应用我们所学的理论知识,例如:集成电路74LS系列、二极管、整时电路555等元件的应用。这次课程设计使我受益匪浅,在摸索该如何设计电路使之实现所需功能的过程中,特别有趣,培养了我的设计思维,同时也积极的请教了同学及老师,在他们的帮助下我也学到了很多。在让我体会到设计电路艰辛的同时,更让我体会到成功的喜悦和快乐。本次的实验也鞭策我要更加努力学习,并且有坚持不懈的精神!参考文献1 余孟尝. 数字电子技术基础简明教程. 北京:高等教育出版社,2006:142-4212 刘明. 电子线路综合设计实验教程. 天津:天津大学出版社,2007:100-2013 门宏. 555时基实用电路解读.北京:北京工业出版社,2009:49-102
收藏
编号:2610507
类型:共享资源
大小:566.46KB
格式:DOC
上传时间:2020-04-24
8
金币
- 关 键 词:
-
根据
依据
multisim
定时器
课程
教学
设计
- 资源描述:
-
.-
目录
1背景及意义 2
2 设计原理及设计方案 3
2.1设计原理 3
2.2设计方案 3
3 设计过程 4
3.1基于multisim的设计 4
3.1.1脉冲发生电路 4
3.1.2 置数电路 5
3.1.3计数电路 6
3.1.4译码显示电路 7
3.1.5警报电路 9
3.1.6控制电路 9
3.2基于VHDL的设计 10
3.2.1建立工程 10
3.2.2调试程序 11
4运行结果及分析 15
4.1基于multisim的结果及分析 15
4.2基于VHDL的结果分析 16
总结 17
参考文献 18
1背景及意义
随着社会文明的进步和科学技术的发展,先进的电子技术在各个近代跨学科门类和技术领域占有不可或缺的核心地位。在我国现代化得建设的发展进程中,数字电子技术在国民经济和科学研究各个领域的应用也越来越广泛。而计时器恰恰是数字电子技术的一个重要组成部分,在许多的领域中计时器均得到普遍应用,诸如在体育比赛中,定时报警器,游戏中的倒计时器,交通信号灯,红绿灯,行人灯,还可以做时间提醒设备等,由此可见计时器在现代社会是何其重要。
本设计为倒计时计时器,其作用范围在1~99s,具有直接清零,启动,暂停和连续以及具有光电报警功能,同时应用了气短数码管来显示时间。此计时器有了启动,暂停和连续功能,可以方便地实现断点计时功能,当计时器递减到零时,会发出光电报警信号。本设计完成中途计时功能,实现了在许多的特定场合进行实践追踪的功能,在社会生活也具有广泛的价值。
2 设计原理及设计方案
2.1设计原理
我们可以用优先编码器74ls147来完成1~99秒的置数功能,用555时基电路构成的多谐振荡器来产生频率为1HZ的脉冲输出周期为1秒的方波脉冲,将该方波脉冲信号送到计数器74ls192的cp减计数脉冲端,在通过译码器74ls48把输入的8421BCD码经过内部作和电路“翻译”成七段(a,b,c,d,e,f,g)输出,显示十进制数,然后在适当的位置设置开关或控制电路即可实现计数器的清零,启动和暂停\连续,译码显示电路与亮灯及光电报警灯功能。
2.2设计方案
通过初步设计,可以确定该系统应该包括置数电路,秒脉冲发生器,计数器,译码显示电路,时序控制电路,警报电路等6部分构成。其中置数电路,计时器和时序控制电路是该系统的主要部分。置数电路完成置数,计数器的主要功能是完成倒计时功能,而控制电路具有计数器的启动计数,暂停,连续计数等功能。为了满足系统的设计要求,在设计控制电路时,应正确处理各个信号的时序关系。在操作直接清零开关时,计时器清零,显示器显示零。当启动开关置1时,控制电路应封锁时钟信号cp,通过置数器置数,计数器完成置数功能,显示器显示所置的数。当启动开关置0时,计数器开始计数。当暂停,连续计数开关拨在暂停位置上,计数器停止计数,处于保持状态;当暂停,连续计数开关拨在连续计数的位置上,计数器继续递减计数。当计数器递减计数到0的时,封锁时钟信号cp,使计数器处于保持状态。
系统设计框图如图2.1所示。
译码显示
计数器
置数电路
报警电路
秒脉冲发生器
控制电路
图2.1
3 设计过程
3.1基于multisim的设计
3.1.1脉冲发生电路
用555集成电路组成多谐振荡电路为系统提供时钟秒脉冲,555定时器应用为多谐振荡电路时,当电源接头vcc通过电阻R1,R2向电容C充电,其上电压按指数规律上升,当u上升到2/3 Vcc,会使比较器C1输出翻转,输出电压为零,同时放电管T导通,电容C通过R2放电;当电容电压下降到1/3Vcc,比较器C2工作输出高电平,C放电终止,Vcc通过R1,R2又开始充电;周而复始,形成振荡。则其周期与放电时间有关,也就是与外接元件有关,不受电压电源变化影响。
公式计算:
T1=(R1+R2)C ln 2;
T2=R2Cln2;
振荡周期:T=T1+T2=0.7(R1+2R2)C=1(s)
若取C=10uF,结合实际选取电阻为600Ω,200Ω。
图3.1 内部管脚图 图3.2N555多谐振荡电路图
3.1.2 置数电路
置数电路利用74LS147优先编码器中优先级别高的信号排斥级别低的信号这一特点来置数,并将输出的编码输入到计数电路中,即完成置数功能。
(a) (b)
图3.3 74LS147管脚图
本次实验的置数电路可以按图3.4接:
图3.4
3.1.3计数电路
本次课程设计中选用74LS192来实现减法的计数功能。图3.5是74LS192的管脚图。
(a) (b)
图3.5
74LS192具有下述功能:
异步清零:CLR=1,Q3Q2Q1Q0=0000.
异步置数:CLR=0,PL=0,Q0Q1Q2Q3=D0D1D2D3.
保持:CLR=0,~PL=1,UP=DOWN=1,Q0Q1Q2Q3保持原状态
加计数:CLR=0,~PL=1,UP-=CP,DOWN=1,Q0Q1Q2Q3按加法规律计数
减计数:CLR=0,~PL=1,DOWN=CP,UP=1,Q1Q2Q3Q4按减法规律计数
按照课程设计任务书要求,需要计时在1~99秒内,所以设计中需要两个十进制的计数器。我们可以用两片74LS192来实现。计数电路中的两片加计数脉冲输入端都要接高电平,且要将低片位的借位信号加到高位片的减计数脉冲输入端。高位片的借位信号控制警报电路。具体接法如图3.6。
接入脉冲信号
图3.6
3.1.4译码显示电路
译码电路的功能是将计数器的输出代码进行翻译,编程相应的数字。用于驱动LED七段数码管的译码器常用的又有74LS48。图3.6是74LS48的管脚图。
图3.6
图3.7是74LS8的真值表。
图3.7
本次实验译码显示电路按图3.8接。
图3.8
3.1.5警报电路
警报电路由二极管和蜂鸣器组成,利用二极管的单向导通性,当高位片变为0时,其借位端为低电平,则二极管导通,蜂鸣器发出响声,完成警报功能。本实验的警报电路按图3.9接。
图3.9
3.1.6控制电路
控制电路主要实现异步清零,异步置数,暂停\连续计数等功能。具体电路图如下。
图3.10
总电路如图3.11所示:
图3.11
3.2基于VHDL的设计
3.2.1建立工程
点击File选中New Project Wizard,填入相应的工程名字,工程名字与实体名相同。如下图所示。
图3.12
连击两次Next,填入相应的参数,点击Finish即完成工程的建立,如图所示。
图3.13
3.2.2调试程序
(1)点击File,New,VHDL File,OK一个编辑窗口如图所示
图3.14
(2)在编辑框里填写如下程序
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity count_30 is
port(clk,clr:in std_logic;
pld,enb:in std_logic;
warn:out std_logic;
s1,s0:out std_logic_vector(6 downto 0);
d:in std_logic_vector(9 downto 0);
s:in std_logic_vector(9 downto 0));
end count_30;
architecture a of count_30 is
signal dd:std_logic_vector(3 downto 0);
signal ss:std_logic_vector(3 downto 0);
begin
pro1:process(clk,clr,enb)
variable tmpa:std_logic_vector(3 downto 0);
variable tmpb:std_logic_vector(3 downto 0);
variable tmpwarn:std_logic;
begin
if clr=1then tmpa:="0000";tmpb:="0000";tmpwarn:=0;
elsif clkevent and clk=1then
if pld=1then
if d(9)=1then tmpb:="1001";
elsif d(8)=1 then tmpb:="1000";
elsif d(7)=1then tmpb:="0111";
elsif d(6)=1then tmpb:="0110";
elsif d(5)=1then tmpb:="0101";
elsif d(4)=1then tmpb:="0100";
elsif d(3)=1then tmpb:="0011";
elsif d(2)=1then tmpb:="0010";
elsif d(1)=1then tmpb:="0001";
elsif d(0)=1then tmpb:="0000";
end if;
if s(9)=1then tmpa:="1001";
elsif s(8)=1 then tmpa:="1000";
elsif s(7)=1then tmpa:="0111";
elsif s(6)=1then tmpa:="0110";
elsif s(5)=1then tmpa:="0101";
elsif s(4)=1then tmpa:="0100";
elsif s(3)=1then tmpa:="0011";
elsif s(2)=1then tmpa:="0010";
elsif s(1)=1then tmpa:="0001";
elsif s(0)=1then tmpa:="0000";
end if;
tmpwarn:=0;
elsif enb=1then
if tmpa="0000"then
if tmpb/="0000"then
tmpa:="1001";
tmpb:=tmpb-1;
else
tmpwarn:=1;
end if;
else tmpa:=tmpa-1;
end if;
end if;
end if;
ss<=tmpa;dd<=tmpb;warn<=tmpwarn;
end process;
peo2:process(dd)
begin
case dd is
when"0000"=>s1<="0111111";
when"0001"=>s1<="0000110";
when"0010"=>s1<="1011011";
when"0011"=>s1<="1001111";
when"0100"=>s1<="1100110";
when"0101"=>s1<="1101101";
when"0110"=>s1<="1111101";
when"0111"=>s1<="0000111";
when"1000"=>s1<="1111111";
when"1001"=>s1<="1101111";
when others=>s1<="0000000";
end case;
end process;
process(ss)
begin
case ss is
when"0000"=>s0<="0111111";
when"0001"=>s0<="0000110";
when"0010"=>s0<="1011011";
when"0011"=>s0<="1001111";
when"0100"=>s0<="1100110";
when"0101"=>s0<="1101101";
when"0110"=>s0<="1111101";
when"0111"=>s0<="0000111";
when"1000"=>s0<="1111111";
when"1001"=>s0<="1101111";
when others=>s0<="0000000";
end case;
end process;
end a;
(3)存盘并进行编译,如图所示。
图3.14
4运行结果及分析
4.1基于multisim的结果及分析
将555的输出端接到示波器上观察到的波形为一脉冲,其频率近似为一秒。基本符合课程设计中所需秒信号的要求。
在电路完成后,将置数开关拨到有效,并置数为30s,显示器显示30字数。
图4.1
将置数开关拨到无效,则开始计数电路进行减计数,并在显示电路中显示相应的剩余时间,在此过程中电路的暂停、连续、清零等功能均得以实现。在倒计时为零时,二极管亮,蜂鸣器发出响声。
4.2基于VHDL的结果分析
对编译成功的程序进行仿真
图4.2
由仿真的波形图可知当enb为高电平时,clr清零端为高电平时,显示器显示零。当置数pld为高电平时,置数为30,则显示器显示30.当置数pld为低电平时,开始减计数。减为零时,warn为高电平有效。
总结
课程设计需要的是活学活用所涉及的知识。经过这次课程设计,才明白生产一电子产品是多么的不容易。里面的过程要求我要非常细心,要想设计并制作一个非常完美实用的数字电路,确实是一个不轻松的工作,不仅要有动手的能力,还要有灵活应用芯片理论的功能,为此需要阅读大量关于这方面的书籍。
在本次的课程设计中通过自己选题,找材料,分析,设计等,掌握了一些软件的应用,为以后的学习垫下了铺垫。整个设计实现了从单一的理论知识到解决实际问题的转变。通过本次实验我最大的收获就是提高了自身的动手能力和培养了我寻求解决问题的能力。在设计中,我充分的应用我们所学的理论知识,例如:集成电路74LS系列、二极管、整时电路555等元件的应用。这次课程设计使我受益匪浅,在摸索该如何设计电路使之实现所需功能的过程中,特别有趣,培养了我的设计思维,同时也积极的请教了同学及老师,在他们的帮助下我也学到了很多。在让我体会到设计电路艰辛的同时,更让我体会到成功的喜悦和快乐。本次的实验也鞭策我要更加努力学习,并且有坚持不懈的精神!
参考文献
[1] 余孟尝. 数字电子技术基础简明教程. 北京:高等教育出版社,2006:142-421
[2] 刘明. 电子线路综合设计实验教程. 天津:天津大学出版社,2007:100-201
[3] 门宏. 555时基实用电路解读.北京:北京工业出版社,2009:49-102
展开阅读全文
淘文阁 - 分享文档赚钱的网站所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。