c51程序调用不了头文件啊

2019-03-24 18:16发布

写了一个很简单的程序,不知道为什么调用不了头文件啊程序贴上

#include <reg51.h>
#include <absacc.h>

#define uchar unsigned char

main()
{
        uchar cont;
        uchar i;
        bit wrong=0;
        P1^7=0;
        P1^6=0;
        cont=0x8000;
        i=20;
        while(i--)
        {
                xbyte[cont]=0x88;
                cont++;
  }
        cont=0x8000;
        i=20;
        while(i--)
        {
                if(xbyte[cont]!=0x88)
                {
                        wrong=1;
    }
                cont++;
  }
        while(1)
        {
                if(wrong)
                        P1^7=0;
                else
                        P1^6=0;
  }
}


错误也写上,见图
捕获.PNG
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
jiaolvming
1楼-- · 2019-03-26 02:16
 精彩回答 2  元偷偷看……
MrKingMCU
2楼-- · 2019-03-26 03:31
你得开发环境里有这个头文件吗????换个#include<reg52.h>试试,还有I/O口用sibt定义之后再用,如LED=P1^6;然后LED=1;xbyte这个数组没有定义
lcofjp
3楼-- · 2019-03-26 06:21
jiaolvming 发表于 2014-6-3 21:26
现在就是那个扩展ram的xbyte用不了,这个东西本来是写在absacc.h里面的,现在调用不了,就报错显示没有定 ...

好像是你的用法不对吧,xbyte是用来做修饰变量类型的吧,例如:xbyte unsigned char *p = (unsigned char *)0x8000;
p[0] = 0x01;
你那样用明显就是语法错误,你确实没声明那样一个数组。
jiaolvming
4楼-- · 2019-03-26 12:12
 精彩回答 2  元偷偷看……
lcofjp
5楼-- · 2019-03-26 12:57
lcofjp 发表于 2014-6-3 21:30
好像是你的用法不对吧,xbyte是用来做修饰变量类型的吧,例如:xbyte unsigned char *p = (unsigned char ...

我好像说的不对,因为我不懂51,就是说这么个意思,你可以找找别人的例子参考一下,或者看看编译器手册的说明。
lcofjp
6楼-- · 2019-03-26 16:53
lcofjp 发表于 2014-6-3 21:33
我好像说的不对,因为我不懂51,就是说这么个意思,你可以找找别人的例子参考一下,或者看看编译器手册的 ...

不好意思,是我说错了,你把xbyte改成大写试试呢?

一周热门 更多>