谁能帮我解决一下超声波模块程序问题

谁能帮我解决一下超声波模块程序问题,第1张

能理解初学者迫切希望解决程序问题。但你有没有想过你 问问题的方式 有问题?

超声波测距程序是两部分组成:超声波程序(外部中断+定时器),串口程序。

你这个程序是哪里不对?橡和编译错误?还是串口显示乱码?还是测量值不动?你应该根据具巧返体问题给出自己分析,梁宽盯得到是测量的问题,还是串口通信的问题。而不是笼统得说 “不对” 然后期待“大神”分分钟给你改程序然后就可以用了。手头没板子,只能帮你到这里。

#include <stdio.h>

#include <math.h>

#include <intrins.h>

#include "STC15Fxxxx.H"

#define uchar unsigned char

#define uint unsigned int

sbit Trig = P1^5

sbit Echo = P3^3

int time

int succeed_flag

uchar timel

uchar timeh

int i

void Uart1_SendChar(unsigned char Udat)

{

SBUF=Udat //将要发送的数据放入串口数据缓冲区

while(!TI) //等待发送完成

TI=0 //清零TI发送完成标记森竖梁

}

void main()

{

for (i=0i<30000i++)

SCON=0x50//0101 0000 模式1: 1 位起始位8 位数据 1 位停止位允许接收

AUXR &= 0xfb //定时器2时钟为Fosc/12,即12T

T2L=0xe8 //纤坦波特率9600 11.0592MHz

T2H=0xff

AUXR |=0x11 //串口选择定时器2作为波特率发生器,并且启此运动定时器

EX1=1

EA=1

Trig = 0

TMOD = 0X10//定时器1,16位工作方式

while(1)

{

EA=0

Trig=1

for(i=0i<10i++)

Trig=0

while(Echo==0)

succeed_flag = 0

EA=1

TH1=0

TL1=0

TR1=1

if(succeed_flag==1)

{

TR1=0

Uart1_SendChar(timeh)

Uart1_SendChar(timel)

succeed_flag=0

}

}

}

void exter() interrupt 2

{

timeh=TH1

timel=TL1

succeed_flag = 1

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12557186.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存