首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

求助,51单片机编程,模数转换芯片ADC0804,采用中断读取,程序不能编译,求高人指点。

发布网友 发布时间: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;

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com