找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机小车超声波舵机模块不知道为什么只有舵机转,小车不走

查看数: 2340 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-3-10 22:09

正文摘要:

大佬看看是不是代码有问题,已经卡这快一个星期了, #include<reg52.h> #include<intrins.h> #define uint  unsigned int #define uchar unsigned char sbit trig=P1^0; sbit echo=P2^0; ...

回复

ID:477107 发表于 2020-3-29 19:46
程序看上去没有明显错误,确定硬件也没有问题吗,接线也都是正确的?
ID:367369 发表于 2020-3-29 16:10
1145421628 发表于 2020-3-11 19:40
可我看很多资料都这么写啊!

小车不走肯定是程序死在某个地方了,安照你的代码问题应该出在ceju上面

示例代码可能有把ECHO初始化,然后超声波返回时对其进行改变,或者在中断中将其变化
看不到你得硬件很难分析;你的P20脚的电平必须在ceju();时01变化

sbit trig=P1^0;
sbit echo=P2^0;    //触发控制信号输入
sbit pwm=P2^6;     //回响信号输出

你得这些接的什么脚?可能是硬件接法问题
你得分析P20脚的电平到底怎么变的
ID:367369 发表于 2020-3-11 15:28
sbit echo=P2^0;    //触发控制信号输入

void ceju(void)
{
  while(!echo);   //当echo为零时等待
    TR0=1;          //开启计数
    while(echo);    //当echo为1计数并等待
  TR0=0;
  time=TH0*256+TL0;
  TH0=0;
  TL0=0;
  s=(time*1.7)/100;  //单位cm
}
P2^0脚的模式是怎样的  后面没看到echo 的变化
这里两个while 如果echo 值没有一直01变化
就必然会产生一个while(1)的死循环;程序就会死在这里
ID:702493 发表于 2020-3-11 09:55
我写了个小车移动的程序,里面没有关于超声波舵机的相关程序,只要插上超声波trig小车就不走,拔了走,求原因

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

Powered by 单片机教程网

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