C51单片机 编程时已经位声明了 怎么到函数里还是未定义? 新手,求解!!

#define _MAIN_H

#include <reg52.h>
#include<intrins.h>
#define LcdDataPort P2 //数据端口

#ifndef UCHAR_DEF
#define UCHAR_DEF
typedef unsigned char uchar;
#endif

sbit Reset = P0^0; //复位
sbit RS = P0^1; //指令数据选择
sbit E = P0^2; //指令数据控制
sbit CS1 = P0^4; //左屏幕选择,低电平有效
sbit CS2 = P0^5; //右屏幕选择
sbit RW = P0^3; //读写控制
sbit busy = P2^7; //忙标志
sbit DQ = P1^7;

void Init_DS18B20()
{
unsigned char x=0;
DQ = 1; //DQ复位
delay(8); //稍做延时
DQ = 0; //单片机将DQ拉低
delay(80); //精确延时 大于 480us
DQ = 1; //拉高总线
delay(14);
x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
delay(20);
return 0;
}

2.C(167): error C202: 'DQ': undefined identifier
2.C(169): error C202: 'DQ': undefined identifier
2.C(171): error C202: 'DQ': undefined identifier
2.C(173): error C202: 'DQ': undefined identifier
2.C(186): error C202: 'DQ': undefined identifier

你好,我将你的程序放在keil中编译并未出现上述错误,请再重新新建工程重新编译一下。请注意最后一句return 0;是不对的,因为函数类型为void类型,无返回值。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-02

    程序没有主函数void main(void){while(1){;}}

    void Init_DS18B20()函数定义为无返回型,return 0;中要把0去掉.

第2个回答  2013-06-02
有没有include进来?追问

include进来?? 什么意思啊。。

第3个回答  2013-06-02
一片混乱啊
相似回答