求解中斷5是,難道不是串口中斷嗎?還有sfr是如何調用特殊寄存器
sfr P1ASF=0X9D; //P1口模擬功能控制寄存器
sfr ADC_CONTR=0XBC; //ADC控制寄存器
sfr ADC_RES=0XBD; //AD轉換結果存放
sfr ADC_RESL=0XBE; //AD轉換結果存放
sfr AUXR1=0XA2;
void ADinit()
{
P1ASF=0x01; //P1^0口作為AD輸入口
ADC_CONTR=0x20; //P1^0口作為AD輸入口,360個時鐘周期轉換一次
AUXR1=0x00; //高八位存放于ADC_RES,低二位存放于ADC_RESL
IE=0XA0; //開總中斷允許AD中斷
}
void ADser() interrupt 5
{
temp=(ADC_CONTR|0X10)<<4; //此時ADC_FLAG的值被移入CY位;
ADC_CONTR=0xC0; //轉換完成,將ADC_FLAG清零
resulth=ADC_RES; //讀取高8位值
result=(unsigned int)(resulth*50/255);
//把ADC_RES的值以點亮小燈的形式顯示出來
}
|