找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1598|回复: 11
收起左侧

51单片机核心板插上4位7段数码管模块后时序错误

[复制链接]
ID:1039067 发表于 2022-8-3 11:53 | 显示全部楼层 |阅读模式
本人这几天做了一个小制作  用STC32G12K128 单片机核心板  插上一个4位7段数码管  希望输出数字结果一直不能显示数字  数码管模块的驱动芯片是TM1637   STC单片机程序使用本论坛TM637.h 头文件  

附上逻辑分析仪时序图 如下 51hei图片20220803112304.png

本人制作的东西  照片如下 IMG_20220803_112832.jpg

我本人不知道如何查找问题了    希望大佬帮助指点一下
回复

使用道具 举报

ID:1039067 发表于 2022-8-3 11:57 | 显示全部楼层
我用逻辑分析仪单独测试核心板  不带数码管模块的情况下  时序图正常   正如上边我贴出来的 时序图的上半部分     插上数码管模块以后 又用逻辑分析仪测试一下   发现  时序图 完全错乱了    请问 是什么原因导致 的
我目前没有一点办法了   不知道如何进行下一步了    情大佬帮忙!!!!!!!感谢
回复

使用道具 举报

ID:161164 发表于 2022-8-3 13:03 | 显示全部楼层
引脚模式设好了吗?
回复

使用道具 举报

ID:1023753 发表于 2022-8-3 13:40 | 显示全部楼层
检查接线和端口定义,看下两个模块VCC电压是不是一样
回复

使用道具 举报

ID:68189 发表于 2022-8-3 14:37 | 显示全部楼层
STM8驱动TM1651时也遇到如上问题,使用51驱动正常。
回复

使用道具 举报

ID:505848 发表于 2022-8-3 15:37 | 显示全部楼层
如果引脚接线没有问题的话,在I2C的引脚上,尝试加上拉电阻,试试看看有没有效果
回复

使用道具 举报

ID:624769 发表于 2022-8-3 16:24 来自手机 | 显示全部楼层
tm1637需要470uf的电容,你加了没?电容太小带不动LED,就会造成1637时序错乱。
回复

使用道具 举报

ID:1039067 发表于 2022-8-3 16:58 | 显示全部楼层
haiyang201 发表于 2022-8-3 13:40
检查接线和端口定义,看下两个模块VCC电压是不是一样

TM1637  芯片 和STC单片机IO口 都是标准TTL电平   我查了   没问题啊
回复

使用道具 举报

ID:1039067 发表于 2022-8-3 16:59 | 显示全部楼层
lkc8210 发表于 2022-8-3 13:03
引脚模式设好了吗?

引脚模式设置的是准双向口  标准的弱上拉 强下拉  啊
回复

使用道具 举报

ID:1039067 发表于 2022-8-3 17:02 | 显示全部楼层
188610329 发表于 2022-8-3 16:24
tm1637需要470uf的电容,你加了没?电容太小带不动LED,就会造成1637时序错乱。

我用的5V开关电源输出端  自带的有1000UF  10V的电容   
回复

使用道具 举报

ID:1039067 发表于 2022-8-3 17:38 | 显示全部楼层
#include "STC32G.H"
#include "TM1637.H"
#include "intrins.h"

/******************************
函数说明:延时函数,STC_ISP软件给出 @12MHz 1T单片机
入口参数:us=延时微秒数
出口参数:无
******************************/
void Delay_US(unsigned int us)
{
   while(us--)
   {
                _nop_();
                _nop_();
                _nop_();
        }
}

void Delay500ms()                //@11.0592MHz
{
        unsigned char i, j, k;

        _nop_();
        _nop_();
        i = 22;
        j = 3;
        k = 150;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}


void main(void)
{
        WTST=0x00;
       
        P2M0=0x00;
        P2M1=0x00;
        //P2DR=0xFC;//增强驱动能力
       
        Delay_US(30);
       
        TM1637_display(0,0,0,0,1); //上电后默认显示00:00
        while(1)
        {
                Delay500ms();
                TM1637_display(3,4,5,7,1);
        }//while(1)结束
}//main函数结束
回复

使用道具 举报

ID:1039067 发表于 2022-8-15 10:06 | 显示全部楼层
我在网上又买了一个模块  插上以后 没有故障了  显示完全正常了
IMG_20220815_100058.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表