找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4032|回復(fù): 8
收起左側(cè)

求助,測(cè)距儀程序有一個(gè)錯(cuò)誤,怎么改,求大神幫助

[復(fù)制鏈接]
ID:350243 發(fā)表于 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
回復(fù)

使用道具 舉報(bào)

ID:350243 發(fā)表于 2018-6-14 15:56 | 顯示全部樓層
有沒(méi)有大佬在線指點(diǎn)迷津
回復(fù)

使用道具 舉報(bào)

ID:303383 發(fā)表于 2018-6-14 18:02 | 顯示全部樓層
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
回復(fù)

使用道具 舉報(bào)

ID:350754 發(fā)表于 2018-6-14 18:42 | 顯示全部樓層
小貓貓愛(ài)吃魚(yú) 發(fā)表于 2018-6-14 18:02
在頭文件后面加上

#define uchar unsigned char

這個(gè)方法她已經(jīng)試過(guò)了,沒(méi)有用,在前面加了頭文件也不管用,我們下午去問(wèn)老師的時(shí)候撞上了飯點(diǎn),老師要去接孩子放學(xué),顧不上我們,哈哈
回復(fù)

使用道具 舉報(bào)

ID:352144 發(fā)表于 2018-6-14 21:07 | 顯示全部樓層

在頭文件后面加上

#define uchar unsigned char
回復(fù)

使用道具 舉報(bào)

ID:234075 發(fā)表于 2018-6-14 22:56 | 顯示全部樓層
樓主不地道!截圖之前void后面有個(gè)uchar,你編譯出錯(cuò)后把這個(gè)刪了才截的圖,其實(shí)問(wèn)題就是uchar沒(méi)有定義!“她”沒(méi)試過(guò),你女朋友?有沒(méi)告訴她后面不能加“;”
回復(fù)

使用道具 舉報(bào)

ID:341045 發(fā)表于 2018-6-15 01:30 | 顯示全部樓層
//void  lcdWriteData();
回復(fù)

使用道具 舉報(bào)

ID:341045 發(fā)表于 2018-6-15 01:31 | 顯示全部樓層
93多余的,注釋掉       //void  lcdWriteData();
回復(fù)

使用道具 舉報(bào)

ID:164602 發(fā)表于 2018-6-15 08:35 | 顯示全部樓層
你抄的程序,抄掉了一個(gè)子函數(shù)!
就是第93行的void  lcdWriteData()
沒(méi)有這個(gè)函數(shù),像樓上說(shuō)的注釋掉,就會(huì)有其它的錯(cuò)。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表