void SET_OPA() { //用户根据需要修改寄存器 OPA0ADJ = 0B01111111; //调节模式,调节模式正端输入,失调电压调节位为FFH OPA0CON = 0B11000101; //使能OPA0,正端接地,负端接RB4,输出内部接滤波 //-------------------- while(1) { DelayXus(10); //一小段延时后检测输出 if(0X80 & OPA0ADJ) //运放输出是否翻转 break; else { OPA0ADJ--; //运放输出未翻转,递减调节位 if(!(0x1f & OPA0ADJ)) //是否调到了最小值 { OPA0ADJ = 0x10; //调不到零点,赋中间值 break; } } } OPA0ADJ &= 0x1f; //运放工作在正常模式 if(0x20 & OPA0ADJ) //避免溢出 { OPA0ADJ = 0x1f; } OPA0CON = 0B11111101; //运放所有端口接至相应IO }