找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

诚心求解答!关于利用stc15单片机制作俯卧撑计数装置的问题

查看数: 3113 | 评论数: 12 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-11-15 15:24

正文摘要:

楼主单片机小白一名。正在学习stc15w4k32s4这一款单片机。目前想利用超声波传感器做一个俯卧撑计数的装置。但是遇到了种种问题,经过长时间的调试仍未好转,诚心求大佬解答! 项目具体描述如下:stc15单片机与两个H ...

回复

ID:342954 发表于 2020-11-17 09:42
查硬件,检查电源,和单片机复位脚
ID:89515 发表于 2020-11-17 09:41
把液晶屏换为串行通信嘛,这样数据线只有一条,并行线太多太长接触不良都有可能出现问题,而且不好找。就你的这个实验用红外对管不是更好做吗?
ID:426861 发表于 2020-11-17 09:31
软件先只放一个功能的,然后测试硬件电路,只到调通了再调下一个,不要一起测试
ID:367934 发表于 2020-11-17 09:11
系统都是由简单到复杂,想要知道问题出在哪里可以做一下简单的测试。
1.找个万用表测试一下电压是否正常。可能是电压问题。接错或者反接一点机率会导致整个系统出问题。
2.程序下载。测试测试单片机是否出问题。如果没有进行下一步。
3.找一个简单的串口例程测试单片机是否有问题。或者把现在的程序把其他的功能先屏蔽掉,保留最简单的串口通信程序。测试看有没有问题。如果没有进行下一步。
4.测试超声波传感器,使用串口可以进行测试。就这样一步一步的把所有外设调试通过就好了。
ID:736475 发表于 2020-11-16 23:15
郑汉松 发表于 2020-11-16 10:57
1,你要用printf的话,串口初始化要加上 TI = 1;
2,while(Echo1==0);这里最好改成 while(Echo1==0 && TR ...

Timer0 function()
{
        static key_count=0;
        static display_count=0;
         key_count++;
        display_count++;
        if(key_count==10)
                {
                        key_count=0;
                        keyflag=1;
                }
        if(display_count==3)
                {
                        display_count==0;
                        display();
                }
}
类似于这样
ID:736475 发表于 2020-11-16 22:59
郑汉松 发表于 2020-11-16 10:57
1,你要用printf的话,串口初始化要加上 TI = 1;
2,while(Echo1==0);这里最好改成 while(Echo1==0 && TR ...

可以用一个定时器来进行分频,轮流触发超声波和液晶吗?
ID:736475 发表于 2020-11-16 22:52
郑汉松 发表于 2020-11-16 10:57
1,你要用printf的话,串口初始化要加上 TI = 1;
2,while(Echo1==0);这里最好改成 while(Echo1==0 && TR ...

非常感谢有耐心帮我看代码!
ID:736475 发表于 2020-11-16 22:52
liuzx66 发表于 2020-11-15 18:44
绝大多数情况下单片机无法正常工作,意思就是有时候是可以正常工作的。这种问题就是线路连接的问题

确实,我也怀疑是线路的问题!因为我的线路全暴露在外面,我得考虑换一下杜邦线然后把他们焊在一起
ID:736475 发表于 2020-11-16 22:51
51hei**1140 发表于 2020-11-15 16:39
你好!
首先把你的接线先整理一遍吧,接插件用的太多了,很容易造成断路;
具体功能的实现,可以进行交流 ...

谢谢!
ID:160500 发表于 2020-11-15 18:44
绝大多数情况下单片机无法正常工作,意思就是有时候是可以正常工作的。这种问题就是线路连接的问题
ID:648281 发表于 2020-11-15 16:39
你好!
首先把你的接线先整理一遍吧,接插件用的太多了,很容易造成断路;
具体功能的实现,可以进行交流,软硬件工程可以帮你完成。
ID:514901 发表于 2020-11-15 15:24
1,你要用printf的话,串口初始化要加上 TI = 1;
2,while(Echo1==0);这里最好改成 while(Echo1==0 && TR0 == 1);超时判断,因为如果超声模块接收不到回声,就会一直卡在while(Echo1==0);循环里面导致单片机卡死。
3,建议先单独测试LCD屏幕能不能正常工作,再加上其他代码,同理其他模块得先确保能单独工作的情况下,再把所有程序集成在一起。
4,超声波测量周期建议100MS以上,否则会影响超声波的下次测量结果,建议开个定时器来触发超声波测距

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

Powered by 单片机教程网

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