标题: 求TM1650驱动代码,包括按键程序 [打印本页]

作者: 1314love    时间: 2024-9-3 14:10
标题: 求TM1650驱动代码,包括按键程序
谢谢大家

作者: xiaobendan001    时间: 2024-9-3 15:19
论坛搜索试试
作者: xiaobendan001    时间: 2024-9-3 17:00
http://www.51hei.com/bbs/dpj-134592-1.html
作者: xiaobendan001    时间: 2024-9-3 17:00
http://www.51hei.com/bbs/dpj-42984-1.html
作者: 飞云居士    时间: 2024-9-3 18:32
#include <Wire.h>

#define TM1650_ADDRESS 0x24

byte displayData[4] = {0};  // 存储显示的数据

void setup() {
  Wire.begin();  // 初始化I2C通信
  TM1650_init(); // 初始化TM1650显示模块
  pinMode(2, INPUT_PULLUP);  // 设置引脚2为输入,并启用上拉电阻
}

void loop() {
  // 更新显示数据
  displayData[0] = 1;  // 第一位显示1
  displayData[1] = 2;  // 第二位显示2
  displayData[2] = 3;  // 第三位显示3
  displayData[3] = 4;  // 第四位显示4
  
  TM1650_display();  // 显示数据
  
  // 检测按键状态
  if (digitalRead(2) == LOW) {
    // 按键按下
    delay(50);  // 延迟一段时间以消除按键抖动
    if (digitalRead(2) == LOW) {
      // 确认按键按下
      // 执行相应的操作
    }
  }
}

// 初始化TM1650显示模块
void TM1650_init() {
  Wire.beginTransmission(TM1650_ADDRESS);
  Wire.write(0x48);  // 发送初始化命令
  Wire.endTransmission();
}

// 显示数据
void TM1650_display() {
  Wire.beginTransmission(TM1650_ADDRESS);
  Wire.write(0x34);  // 发送显示命令
  
  for (int i = 0; i < 4; i++) {
    Wire.write(displayData[i]);  // 发送每一位的数据
  }
  
  Wire.endTransmission();
}
代码使用了Arduino的Wire库来进行I2C通信。在setup()函数中,我们初始化了I2C通信和TM1650显示模块,并且设置了引脚2为输入,并启用上拉电阻。在loop()函数中,我们更新了显示数据,并调用TM1650_display()函数来显示数据。然后,我们通过检测引脚2的状态来判断按键是否按下,如果按下,则执行相应的操作。
作者: chxelc    时间: 2024-9-4 10:01
STC8G驱动TM1650的例程,有原理图和PCB图(截图,非原文件)供参考。

TM1650数码管显示及按键扫描 STC8G.rar

490.56 KB, 下载次数: 9


作者: newlined    时间: 2024-9-4 16:47
我以前从网上下载的程序,找不到出处了。

tm1639.rar

3.04 KB, 下载次数: 4


作者: newlined    时间: 2024-9-5 11:53
飞云居士 发表于 2024-9-3 18:32
#include

#define TM1650_ADDRESS 0x24

飞云居士,您好,TM1650用的不是标准的IIC通信,您发的这个程序,它是不是也是用单片机的某几个管脚,加延时程序,以支持TM1650的通信协议?再就是我没有用过Arduino,按照这个关键字搜索,也没有找到Wire库,您可以发个链接吗?谢谢。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1