秒表是一种计时器,用于测量时间间隔的工具。它通常具有一个数字显示屏和一个或多个按钮,用于开始、停止和重置计时器。秒表可以精确地测量时间,通常以秒为单位,但有些也可以测量毫秒或微秒。它们被广泛用于体育比赛、科学实验、工业生产和其他需要精确计时的应用中。
那我们看看某宝卖的秒表长什么样?
别说还挺好看,但你有见过这种的吗?
说实话,不是很好看,但是它可以让你真切感受到秒表制作就是这么简单。
单片机制作秒表的原理如下:
-
硬件设计:需要一个计时器/计数器模块、一个显示模块和一个按键模块。计时器/计数器模块用于计时,显示模块用于显示计时结果,按键模块用于控制启动、停止和复位操作。
-
软件设计:通过编程控制单片机的IO口和计时器/计数器模块,实现秒表的功能。
具体步骤如下:
-
初始化:设置计时器/计数器模块为计数模式,配置计数器的计数频率。
-
按键检测:通过按键模块检测启动、停止和复位按钮的状态。
-
启动计时:当按下启动按钮时,开始计时器/计数器的计数。
-
停止计时:当按下停止按钮时,停止计时器/计数器的计数。
-
复位计时:当按下复位按钮时,将计时器/计数器的计数值清零。
-
显示计时结果:通过显示模块将计时器/计数器的计数值显示出来。
-
循环执行:重复执行2-6步,实现秒表的持续计时功能。
通过以上步骤,单片机可以实现秒表的功能。
以上看起来有点复杂,但是使用Micro:bit,这一切就很Easy。
Step 1 当按钮A被按下时
Step 2 增加一个变量用来存储运行时间
Step 3 增加一个模块,当按钮B被按下时
Step 4 再增加一个变量用来存储经过了多少时间
Step 5 将该变量的单位变为"秒"
保存,然后运行,可以看到按钮A按下时,秒表开始计时,当按钮B按下时,显示一共经过了多少秒。
附上Javscript的代码:
let start = 0
let elpased = 0
input.onButtonPressed(Button.A, function () {
start = input.runningTime()
})
input.onButtonPressed(Button.B, function () {
elpased = input.runningTime() - start
basic.showNumber(elpased / 1000)
})
附上Python的代码:
start = 0
elpased = 0
def on_button_pressed_a():
global start
start = input.running_time()
input.on_button_pressed(Button.A, on_button_pressed_a)
def on_button_pressed_b():
global elpased
elpased = input.running_time() - start
basic.show_number(elpased / 1000)
input.on_button_pressed(Button.B, on_button_pressed_b)