求助51单片机超声波测距

**

自己暑假搞了搞单片机,但是被困在了oled不显示我测的实时数据,求帮忙

**(stc89c52rc芯片,hc-sr04超声波测距模块)
代码如下:

`#include
#include “OLED.h”
#include “HC-SR04.h”
#include “timer.h”
#include

sbit beep = P1^5;
unsigned char s;
unsigned long time = 0; //时间缓存变量
unsigned char ulCount; //要显示的变量
char cStr [ 3 ];
//函数声明
void count(void); //计算距离
void dis_distance(void); //显示距离

void delay(int ms)
{
int ii,jj;
if (ms<1) ms=1;
for(ii=0;ii for(jj=0;jj<500;jj++);
}

/* 计算测距 */
void count(void)
{
start_ranging(); //启动一次超声波
while(!Echo); //等待超声波模块输出IO拉高
TR0 = 1; //开启定时器计时
while(Echo); //等待超声波模块输出IO拉低
TR0 = 0; //关闭定时器计时

/* 计算距离 */
time = TH0 * 256 + TL0; //得到的时间
TH0 = 0; //定时计数器清零
TL0 = 0;

s= (time * 1.7) / 100; //算出来是CM
}

/* oled显示 */
void main(void)
{ unsigned char i=0;
InitTimer0();

while(1)
{
OLED_Init();
count();
beep=0;
OLED_Fill(0x00);
OLED_P14x16Ch(30,0,0);
OLED_P14x16Ch(44,0,1);
OLED_P14x16Ch(58,0,2);
OLED_P14x16Ch(72,0,3);
OLED_P14x16Ch(86,0,4);
OLED_P8x16Str(0,2,“distance”);
OLED_P8x16Str(110,2,“cm”);
OLED_P6x8Str(38,5,“shishang”);
OLED_P6x8Str(34,7,“2020-08-21”);
dis_distance();
delay(2000);

   } 

}

/* 显示距离 */
void dis_distance(void)
{
for (ulCount = 0; ulCount <= 1000000; ulCount ++)//循环显示该变量
{
sprintf ( cStr, “%3d”, s );
OLED_P8x16Str(70,2,cStr);
// delay(200);
}

}
`

各位大佬能帮忙看看哪里出问题了吗

你可能感兴趣的:(单片机,编程语言,c语言)