发布网友 发布时间:2022-04-26 22:34
共2个回答
热心网友 时间:2023-11-10 19:29
init();
uchar aa,aa1,aa2,aa3,adval;这里有问题,目前很多51单片机的编译器还不支持某些C99的特性,所有变量必须在程序或者函数的开始声明,才能使用
void int0() interrupt 0
{
P0=0xff;
adrd=1;
_nop_();
adrd=0;
_nop_();
adval=P0; ;这个变量没有定义,你在主函数中定义的adval只能在主函数中使用,要在这里使用,就把adval定义为全局变量
adrd=1;
}
热心网友 时间:2023-11-10 19:30
void main()
{
init();
uchar aa,aa1,aa2,aa3,adval;
aa1=aa2=aa3=0;
adcs=0;
问题出在这里,C语言不是C++,一个函数里,你如果要定义变量,必须定义在这个函数最开始,然后才能做其他的事情,你这个main函数,是先调用 init();再定义的变量,这在C语言里不允许,所以,如下修改:
void main()
{
uchar aa,aa1,aa2,aa3,adval;
init();
aa1=aa2=aa3=0;
adcs=0;