篮球竞赛24秒计时器的设计(附源文件)

1、设计题目及要求:

1、设计题目

利用数字集成电路设计一个篮球竞赛24秒倒计时器。

2、设计要求

(1)基本要求

①具有显示24秒倒计时功能;

②设置外部操作开关,控制计时器的直接清零、启动和暂停/连续功能;

③在直接清零时,要求数码显示器灭灯;

④计时器为24秒递减计时,计时间隔为1秒;

⑤计时精度:小于1‰。

⑥计时器递减计时到零时,数码显示器不能灭灯,同时发出光电报警信号。

(2)设计任务及目标

①根据原理图分析各单元电路的功能

②熟悉电路中所用到的各集成块的管脚及其功能

③进行电路的装接、调试、直到电路能达到规定的设计要求

④写出完整、详细的课程设计报告

(3)主要参考器件

①555晶体定时器

②74LS74双D触发器

③74LS47译码器

④74192双时钟十进制计数器

2、设计思路:

3、Multisim仿真原理图:

4、AD原理图:

5、实物图:

附上全套资料,都由本人设计,欢迎享用,欢迎指正(仅供参考),别忘了点个赞再走哟!

链接:https://pan.baidu.com/s/1qA_Yr_Tw_rLq7ehsAvtv2Q 
提取码:9905

  • 21
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
设计基于STC89C51/52(与AT89S51/52、AT89C51/52通用,可任选)单片机,可实现篮球比赛时间倒计时、24倒计时、100和60倒计时、)比赛时间、24倒计时和比赛节数等功能,内文档说明。 (1)时钟模块 时钟模块用于实现篮球比赛时间倒计时(计时精度为0.1)、24倒计时、100和60倒计时。 (2)按键模块 按键模块共需要9个按键开关,其中8个半径为4厘米圆形按键分别为:减一分钟、加一分钟、启动/继续、暂停、5分钟、节数、60、100;1个手握式开关24位复位键,每个按键可随意摆放,方便操作。 (3)显示模块 显示模块中显示屏采用LED数码管显示屏,正方体四面显示屏上每面显示屏包含25厘米的8个七段数码管,1个数码管显示比赛的节数为第一行,5个数码管显示比赛时间为第二行,2个数码管显示24为第三行。正方形显示屏包含15厘米的3个七段数码管,用于显示100或60。 (4)声音模块 声音模块中有6个音响串联,可实现比赛开始时发出短哨声、每小节比赛结束发出笛声、24倒计时递减到零时发出长哨声。 (5)控制器 控制器中有4个存储器,分别存储比赛时间倒计时、24倒计时、100和60倒计时。控制器不断地从时钟模块中提取时钟信号与存储器相比较,使存储器中时间以0.1递减并同时在显示模块中显示时间倒计时。控制器随时监视着按键模块和时钟模块,当有按键按下,控制器接受到按键模块后控制时钟模块和控制存储器,并同时通过控制器在显示模块中显示时间和比赛节数;当存储器中的时间到达特殊的时间点时,由控制器来调出相对应的音频并在声音模块中发出声音。
课程设计要求: 设计一个篮球竞赛30计时器,能够实现以下功能: 1. 显示剩余时间 2. 开始计时 3. 暂停计时 4. 重置计时 5. 在倒计时结束时发出提示音 6. 能够设置计时器的时长 设计思路: 1. 首先需要一个计时器的框架,可以使用Python的Tkinter库来实现。 2. 界面设计可以参考篮球比赛的场景,可以在界面上加入篮球场地的背景,以及篮球场地上的计时器。 3. 在计时器的框架中,需要设计一个计时器类,包含以下方法: - start_timer():开始计时 - pause_timer():暂停计时 - reset_timer():重置计时 - set_time():设置计时器的时长 - check_time():检查剩余时间,如果时间为0,发出提示音并停止计时。 4. 在界面上添加按钮,分别对应开始、暂停、重置、设置计时器时长等操作。 5. 在界面上添加一个文本框,用于显示剩余时间。 6. 在界面上添加一个声音播放器,用于在倒计时结束时发出提示音。 代码实现: 以下是一个Python实现的篮球竞赛30计时器的示例代码: ```python import tkinter as tk import time import winsound class Timer: def __init__(self, time_limit): self.time_limit = time_limit self.start_time = 0 self.paused_time = 0 self.paused = False def start_timer(self): if self.paused: self.start_time = time.time() - self.paused_time self.paused = False else: self.start_time = time.time() self.update_timer() def pause_timer(self): self.paused_time = time.time() - self.start_time self.paused = True def reset_timer(self): self.start_time = 0 self.paused_time = 0 self.paused = False self.update_timer() def set_time(self, time_limit): self.time_limit = time_limit self.reset_timer() def check_time(self): if self.start_time == 0: return remaining_time = self.time_limit - (time.time() - self.start_time) if remaining_time <= 0: self.pause_timer() self.start_time = 0 winsound.PlaySound('alert.wav', winsound.SND_FILENAME) else: self.update_timer() def update_timer(self): remaining_time = self.time_limit - (time.time() - self.start_time) if remaining_time < 0: remaining_time = 0 minutes = int(remaining_time / 60) seconds = int(remaining_time % 60) self.timer_label.configure(text='{0:02d}:{1:02d}'.format(minutes, seconds)) self.timer_label.after(100, self.check_time) class BasketballTimer: def __init__(self, master): self.master = master master.title('篮球竞赛30计时器') master.geometry('400x300') master.resizable(False, False) self.timer = Timer(30) self.background_image = tk.PhotoImage(file='basketball_court.png') self.background_label = tk.Label(master, image=self.background_image) self.background_label.place(x=0, y=0) self.timer_label = tk.Label(master, text='00:30', font=('Helvetica', 36), bg='white', fg='black') self.timer_label.place(x=170, y=70) self.start_button = tk.Button(master, text='开始', width=10, command=self.timer.start_timer) self.start_button.place(x=50, y=220) self.pause_button = tk.Button(master, text='暂停', width=10, command=self.timer.pause_timer) self.pause_button.place(x=150, y=220) self.reset_button = tk.Button(master, text='重置', width=10, command=self.timer.reset_timer) self.reset_button.place(x=250, y=220) self.time_entry = tk.Entry(master, width=10) self.time_entry.insert(0, '30') self.time_entry.place(x=170, y=140) self.set_time_button = tk.Button(master, text='设置时间', width=10, command=self.set_time) self.set_time_button.place(x=170, y=170) self.timer.check_time() def set_time(self): try: time_limit = int(self.time_entry.get()) except ValueError: return self.timer.set_time(time_limit) root = tk.Tk() app = BasketballTimer(root) root.mainloop() ``` 在这个示例代码中,我们使用了Tkinter库来实现计时器的界面,使用了time库来进行计时,使用了winsound库来发出提示音。同时,我们还实现了一个Timer类来管理计时器的状态和计时操作,以及一个BasketballTimer类来管理界面和用户的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值