标题: 求助,测距仪程序有一个错误,怎么改,求大神帮助 [打印本页]

作者: 爱微笑的小不点    时间: 2018-6-14 15:46
标题: 求助,测距仪程序有一个错误,怎么改,求大神帮助
#include"reg51.h"
#include"intrins.h"
sbit lcdrs=P3^5;
sbit lcdrw=P3^6;
sbit lcden=P3^7;
sbit Trig=P2^6;
sbit Echo=P2^7;
bit flag=0;
unsigned char num[ ]="0123456789";
unsigned char dis1[ ]="The Distance is:";
unsigned char dis2[ ]="Error!";
unsigned int diistance;
//ÑÓʱº¯Êý
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
  for(y=400;y>0;y--);
}
//LCDдָÁÊý
void lcdWriteCmd(unsigned char  cmd)
{
lcdrs=0;
P1=cmd;
delay(1);
lcden=1;
delay(1);
lcden=0;
}
//дÊý¾Ýº¯Êý
void lcdWriteDate(unsigned char dat)
{
lcdrs=1;
P1=dat;
delay(20);
lcden=1;
delay(20);
lcden=0;
}
//LCDÇåÆÁº¯Êý
void clear()
{
lcdWriteCmd(0x01);
delay(5);
}
//LCD³õʼ»¯º¯Êý
void lcdInit()
{
lcden=0;
lcdWriteCmd(0x38);
lcdWriteCmd(0x0f);
lcdWriteCmd(0x06);
clear();
lcdWriteCmd(0x80);
}
//LCDÏÔʾ¾àÀ뺯Êý
void lcdDisplay(unsigned int temp)
{
unsigned int i;
for(i=0;i<17;i++)
{
   lcdWriteCmd(dis1[i]);
  }
lcdWriteCmd(0x80+0x40);
lcdWriteCmd(num[temp/100]);
lcdWriteCmd(num[temp/10%10]);
lcdWriteCmd(num[temp%10]);
lcdWriteCmd('c');
lcdWriteCmd('m');
delay(400);
clear();
}
//&sup3;&not;&Eacute;ù&sup2;¨&sup2;&acirc;&frac34;à&AElig;&ocirc;&para;&macr;&ordm;&macr;&Ecirc;&yacute;
void start()
{
int i;
Trig=1;
for(i=0;i<20;i++)
{
  _nop_();
  }
Trig=0;
}
//&frac34;à&Agrave;&euml;&frac14;&AElig;&Euml;&atilde;&Oacute;&euml;&Iuml;&Ocirc;&Ecirc;&frac34;&ordm;&macr;&Ecirc;&yacute;
void  lcdWriteData();
void count()
{
unsigned int i,distance,falseValue,time,timeH,timeL;
timeH=TH0;
timeL=TL0;
TH0=0;
TL0=0;
time=time*256+timeL;
distance=time*1.7/100;
if(distance<10||distance>200||flag==0)
{
  flag=1;
  falseValue=888;
  lcdWriteCmd(0x80);
  for(i=0;i<7;i++)
  {
   lcdWriteData(dis2[i]);
    }
  delay(200);
  clear();
  lcdDisplay(falseValue);
  }
else
{
  lcdDisplay(distance);
  }
}
//&Ouml;÷&ordm;&macr;&Ecirc;&yacute;
void main()
{
  lcdrw=0;
while(1)
{
  lcdInit();
  TMOD=0x11;
  TH0=0;
  TL0=0;
  Trig=0;
  Echo=0;
  start();
  while(!Echo);
  TR0=1;
  while(Echo);
  TR0=0;
  count();
  delay(200);
   }
}

捕获.PNG (37.17 KB, 下载次数: 67)

捕获.PNG

作者: 爱微笑的小不点    时间: 2018-6-14 15:56
有没有大佬在线指点迷津

作者: 小猫猫爱吃鱼    时间: 2018-6-14 18:02
在头文件后面加上

#define uchar unsigned char

作者: huida1999    时间: 2018-6-14 18:42
小猫猫爱吃鱼 发表于 2018-6-14 18:02
在头文件后面加上

#define uchar unsigned char

这个方法她已经试过了,没有用,在前面加了头文件也不管用,我们下午去问老师的时候撞上了饭点,老师要去接孩子放学,顾不上我们,哈哈
作者: 546uyiyui    时间: 2018-6-14 21:07

在头文件后面加上

#define uchar unsigned char
作者: zhb2004xp    时间: 2018-6-14 22:56
楼主不地道!截图之前void后面有个uchar,你编译出错后把这个删了才截的图,其实问题就是uchar没有定义!“她”没试过,你女朋友啊?有没告诉她后面不能加“;”
作者: lzts88    时间: 2018-6-15 01:30
//void  lcdWriteData();
作者: lzts88    时间: 2018-6-15 01:31
93多余的,注释掉       //void  lcdWriteData();
作者: HC6800-ES-V2.0    时间: 2018-6-15 08:35
你抄的程序,抄掉了一个子函数!
就是第93行的void  lcdWriteData()
没有这个函数,像楼上说的注释掉,就会有其它的错。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1