以下是使用 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 口定义以及其他相关配置。

Python 七段数码管计数器实现:从 00 到 99

原文地址: https://www.cveoy.top/t/topic/m31f 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录