C8051F系列是增强型的51单片机,寄存器比较多,但为了保证最大性的与传统51单片机相兼容,所以采用了分页的形式,寄存器名字是一样的,但是处于不同的页中,所以在实际编写程序时就要先切换到具体的页中,然后再对寄存器进行操作。
#define ADC0START temppage=SFRPAGE;SFRPAGE=0X00;AD0BUSY=1; SFRPAGE=temppage
这一句宏定义实际上就是用于启动ADC0转换。
相当于以下的C语句:
UCHAR8 temppage=SFRPAGE;
SFRPAGE=0x00;
AD0BUSY=1;
SFRPAGE=temppage;
因为ADC0有四种启动方式,其中一种就是向AD0BUSY置1启动,这里采用了这种方式。
同时在进入时保存了先前的页寄存器,出来了还原了。
|