当前位置:文档之家› 篮球比赛24秒计时器的设计

篮球比赛24秒计时器的设计

赣南师院
物理与电子信息学院数字电路课程设计报告书
姓名:
班级:电子信息工程09级
学号:
时间:2011年 6 月15日
图1-1 24秒计时器系统设计框图
1.2 单元电路设计
1.2.1秒脉冲发生器
用555与74LS161集成电路组成多谐振荡电路为系统提供时钟秒脉冲。

555定时器应用为多谐振荡电路时,当电源接通Vcc通过电阻R1、R2向电容C充电,其上电压按指数规律上升,当u上升至2/3Vcc,会使比较器C1输出翻转,输出电压为零,同时放电管T导通,电容C通过R2放电;当电容电压下降到1/3Vcc,比较器C2工作输出电压变为高电平,C放电终止,Vcc通过R1、R2又开始充电;周而复始,形成振荡。

则其振荡周期与充放电时间有关,也就是与外接元件有关,不受电源电压变化影响。

公式计算:
T1=(R1+R2)Cln2;
T2=R2Cln2;
振荡周期T = T1+T2=0.7 ( R1 + 2R2) C =0.1 (s)
若取C=10μF,结合实际选取电阻为R1=5.1K,R2=4.7K
再通过74LS161计数产生秒脉冲
图1-2 555多谐振荡电路图
1.2.2 计数电路
计数电路选用两片中规模集成电路74LS192进行设计,74LS192是十进
制计数器,具有“异步清零”和“异步置数”功能,且有进位和借位输出端。

两片74LS192构成预置数的三十进制递减计数器,计数器十位接成三进制,计数器个位接成十进制,置数端A、B、C、D通过开关接高低电平,若接高电平可进行其他置数;此计数器预置数为(0001 1000)=(24)10,只有当低位端发出错位脉冲,高位计数器才做减计数。

1片74LS192构成1秒减计数电路(即个位)。

74LS192的引脚图和功能表如图所示。

它的计数原理是:使加计数脉冲信号引脚CPu=1,计数脉冲加入个位74LS192引脚CP D脚,当减计数到零时,个位74LS192的CO端发出错位脉冲,使十位计数器减计数,当高、低位计数器处于全零时,CPD(DWN)端的输入时钟脉冲作用下,计数器再次进入下次循环减计数。

图1-3 74LS192引脚图
表1 74LS192功能表
输出输入
MR LD CP U CP D P3P2P1P0 Q3Q2Q1Q0
1 X X X X X X X 0 0 0 0
0 0 X X d c b a d c b a
0 1 ↑ 1 X X X X 加计数
0 1 1 ↓X X X X 减计数
1.2.3 译码显示电路
此模块主要是由74LS48译码器和共阴极七段LED显示器组成,通过计数器加到译码器,从而实现共阴极七段LED显示器从30递减到零的计数显示功能。

1、74LS48是七段显示译码器,其管脚图如下图2-3所示。

现将各管脚功能介绍一下:
图1-5 共阴极七段LED显示器管脚图
1.2.4 报警电路
报警电路,经过74LS00的一个高电平促使发出光报警,当复位时警报停止。

电路图2-5所示。

图1-6 报警电路
1.2.5 控制电路
控制电路是24S倒计时设计的核心,电路如图2-6。

当复位开关闭合时,触发器置低电平,送至74LS192的LD端和UP端,计数器的LD=0,计数器预置数,反之,计数器启动处于计数工作状态。

图(a)开关SW1控制计数器的暂停/计数。

74LS11输出端接74LS192(2)的DWN端。

当SW1下合时,触发器输出低电平,与十位74LS192(1)的13脚BO端输出的高电平和555定时器输出的时钟脉冲一起通过2与门,使得2与门输出低电平,送至74LS192(2)的4脚DWN端,令计数器停止工作,显示器上保持原来的数不变;当SW1上合时,74LS00门电路打开,脉冲信号送入计数器的减脉冲输入端,计数器继续累计计数。

图2-6 暂停/继续工作电路
1.2.6 开关设置
为了方便控制操作,灵活更改预置数范围,本设计使用了几个开关,其实际效用见表2所示。

表2开关设置一览表开关名称实际效用置数/启动切换开关,清零/工作切换开关,暂停/继续切换开关,十位置数切换开关和光电报警停止开关。

表2 开关设置一览表
开关名称实际效用
复位开关置数/启动切换开关
SW1 暂停/继续切换开关
1.3 整体电路图
根据以上各个模块分析得出整体电路图,如图1-10所示。

图1-10
实验仿真结果如下:
通过Proteus 7.7的仿真,可以很好的看到从24到00的计数,通过SW1可控制计数的暂停与继续,复位开关控制启动与复位,当计数到00时,发光二极管发光报警。

2、软件实验原理
用VHDL语言编写程序,能实现倒计时计数,暂停,清零等功能,其中要编好七段显示管的程序,使其能在实验箱上正常显示。

library ieee ;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity djs is
port (clk,cln,en,ldn:in std_logic;
d:in std_logic_vector(3 downto 0);
display:out std_logic_vector(6 downto 0);
sel:out std_logic_vector (1 downto 0);
co:out std_logic);
end;
architecture one of djs is
signal cqs :std_logic_vector(3 downto 0):="0010";
signal cqg :std_logic_vector(3 downto 0):="0100";
when "0100"=>Disp_Decode<="1100110"; --'4'
when "0101"=>Disp_Decode<="1101101"; --'5'
when "0110"=>Disp_Decode<="1111101"; --'6'
when "0111"=>Disp_Decode<="0000111"; --'7'
when "1000"=>Disp_Decode<="1111111"; --'8'
when "1001"=>Disp_Decode<="1101111"; --'9'
when others=>Disp_Decode<="0000000"; --全灭
end case;
end process;
end ;
实验仿真结果如下图所示:
图2-1
四、调试方法与数据
1、把自己的源程序拷到实验室的电脑上,在电脑上进行编译,仿真,管脚分配,一切没问题后,选好芯片下载到实验箱上。

2.、管脚分配时,清零端,使能控制端,置数端全部接拨挡开关K1,K2,K3,co接led显示器,输出接两个相连的数码管用于显示数字,k5,k6,k7,k8接拨挡开关用于个位置数。

3、点击下载,下载成功后,把实验箱上的频率调到1khz,使拨挡开关k1=0,k2=1,k3=1,数码管上将会显示24,并以一秒的频率递减,当递减为00时,led显示器灯亮,并且一秒钟后变成24继续递减,当k2=0时,数码管的数字将会保持不变,k2=1后数码管的数字继续递减。

当k1=1时,数码管上的数字全部变为00,并且led显示器灯亮,k1=0后,可以继续递减计数。

把k3=0后,可以对数码管进行个位计数,由k5,k6,k7,k8四个开关控制,要置数1时,分别把开关调成0001,置数7时,调成0111,以此可以进行置数。

赣南师范学院2010--2011学年第二学期数字电路课程设计行政班级电子信息工程09级学号姓名
选课班级电子信息工程09级任课教师杨汉祥成绩_________。

相关主题