Python 实现两位数计数器 - 基于七段数码管

本程序利用 Python 语言,结合七段数码管的字形数据,设计并实现一个两位数计数器程序。该程序能够从 00 开始,依次计数到 99。

代码实现

import RPi.GPIO as GPIO
import time

# 定义数字 0-9 的字形
num = [[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 口
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(17, GPIO.OUT)
GPIO.setup(18, GPIO.OUT)
GPIO.setup(27, GPIO.OUT)
GPIO.setup(22, GPIO.OUT)
GPIO.setup(23, GPIO.OUT)
GPIO.setup(24, GPIO.OUT)
GPIO.setup(25, GPIO.OUT)

# 共阴极数码管显示函数
def show(num):
    GPIO.output(17, num[0])
    GPIO.output(18, num[1])
    GPIO.output(27, num[2])
    GPIO.output(22, num[3])
    GPIO.output(23, num[4])
    GPIO.output(24, num[5])
    GPIO.output(25, num[6])

# 显示两位数函数
def show_num(n):
    n1 = n // 10
    n2 = n % 10
    for i in range(50):
        show(num[n1])
        time.sleep(0.001)
        show(num[n2])
        time.sleep(0.001)

# 计数函数
def count():
    for i in range(100):
        show_num(i)

# 主函数
if __name__ == '__main__':
    count()
    GPIO.cleanup()

代码说明

  1. 字形定义: 程序首先定义了数字 0-9 的字形数据,每个数字对应一个长度为 7 的列表,列表中的每个元素表示七段数码管的对应段是否点亮 (1 表示点亮,0 表示熄灭)。
  2. GPIO 口定义: 程序定义了树莓派上的 GPIO 口,并设置为输出模式。GPIO 口的具体编号可能因树莓派型号和连接方式而异。
  3. 显示函数: show(num) 函数用于控制七段数码管显示指定的数字。该函数根据传入的数字列表,逐个控制对应 GPIO 口的输出状态。
  4. 两位数显示函数: show_num(n) 函数用于显示两位数。该函数将输入的两位数分解为十位和个位,然后循环调用 show() 函数分别显示十位和个位。
  5. 计数函数: count() 函数用于实现计数功能。该函数循环遍历从 0 到 99 的所有数字,并调用 show_num() 函数显示每个数字。
  6. 主函数: 主函数 if __name__ == '__main__': 部分调用 count() 函数执行计数过程,并最后清理 GPIO 口。

使用说明

  1. 将代码保存为 Python 文件 (例如 counter.py)。
  2. 确保树莓派已安装 RPi.GPIO 库,可以使用 pip install RPi.GPIO 命令安装。
  3. 连接七段数码管到树莓派的 GPIO 口,并确保连接方式正确。
  4. 在树莓派终端中运行 Python 文件:python counter.py。

注意事项

  • 请根据您的树莓派型号和连接方式,修改代码中 GPIO 口的编号。
  • 代码中使用了 time.sleep() 函数控制显示速度,您可以根据需要调整延时时间。
  • 该程序仅演示了基本的计数功能,您可以根据需要对其进行扩展,例如添加显示时间、温度等信息。
Python 实现两位数计数器 - 基于七段数码管

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

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