Python 七段数码管计数器实现:从 00 到 99
以下是使用 Python 实现七段数码管计数器的参考代码,该程序可以从 00 开始计数到 99:
import RPi.GPIO as GPIO
import time
# GPIO 口定义
GPIOS = [[26, 19, 13, 6, 5, 11, 9], [21, 20, 16, 12, 7, 8, 25]]
# 数码管显示的数字
NUMS = [
[1, 1, 1, 1, 1, 1, 0], # 0
[0, 1, 1, 0, 0, 0, 0], # 1
[1, 1, 0, 1, 1, 0, 1], # 2
[1, 1, 1, 1, 0, 0, 1], # 3
[0, 1, 1, 0, 0, 1, 1], # 4
[1, 0, 1, 1, 0, 1, 1], # 5
[1, 0, 1, 1, 1, 1, 1], # 6
[1, 1, 1, 0, 0, 0, 0], # 7
[1, 1, 1, 1, 1, 1, 1], # 8
[1, 1, 1, 1, 0, 1, 1], # 9
]
# 初始化 GPIO 口
def init_gpio():
GPIO.setmode(GPIO.BCM)
for i in range(7):
GPIO.setup(GPIOS[0][i], GPIO.OUT)
GPIO.setup(GPIOS[1][i], GPIO.OUT)
# 数码管显示函数
def show_num(n):
for i in range(7):
GPIO.output(GPIOS[0][i], NUMS[n // 10][i])
GPIO.output(GPIOS[1][i], NUMS[n % 10][i])
# 清除数码管显示
def clear():
for i in range(7):
GPIO.output(GPIOS[0][i], 0)
GPIO.output(GPIOS[1][i], 0)
# 主函数
def main():
init_gpio()
try:
# 从 00 计数到 99
for i in range(100):
show_num(i)
time.sleep(1)
except KeyboardInterrupt:
pass
finally:
clear()
GPIO.cleanup()
if __name__ == '__main__':
main()
该程序定义了三个函数:init_gpio() 用于初始化 GPIO 口,show_num(n) 用于数码管显示数字,clear() 用于清除数码管显示。
在 main() 函数中,我们通过循环从 00 计数到 99,并调用 show_num(n) 函数显示数码管。在循环中,我们使用了 time.sleep(1) 函数来让程序休眠 1 秒钟,以便能够看到数码管显示的数字。
在 try 块中,我们通过 KeyboardInterrupt 异常来捕获用户的中断操作,以便在程序退出时清除数码管显示并关闭 GPIO 口。
最后,我们通过 if __name__ == '__main__': 判断语句来确保程序只在主程序中运行,而不是在其他模块中被引用。
注意: 该程序需要在 Raspberry Pi 上运行,并且需要连接七段数码管和 GPIO 引脚。你需要根据实际情况修改 GPIO 口定义以及其他相关配置。
原文地址: https://www.cveoy.top/t/topic/m31f 著作权归作者所有。请勿转载和采集!