我使用PIC16F883对IO口进行操作,我在PORTA送0x0f,怎么RA0,RA1,RA2,RA3的电压都只有1.6V呢? 请各位帮我诊断一下。初始化芯片程序如下:<br />void InitChip()<br />{<br /> STATUS = 0;<br /> CLRWDT();<br /> // init interrupt module<br /> INTCON = 0; // disable all interrupt<br /> PIE1 = 0; // disable interrupt<br /> PIE2 = 0;<br /> PIR1 = 0;<br /> PIR2 = 0;<br /> RBIE = 0;<br />// INTE = 0;<br /> INTE=0;<br /> // INT1IE=0;<br /> // INTCON2=0;<br />// INTCON3=0;<br /> // init power control register<br /> PCON = 0x03;<br /> RBPU = 0;<br /> IOCB = 0;<br /> <br /> //enable port B pullups, prescaler to watchdog<br /> // init timer0 module,prescalar set to 1:32<br /> // has done in OPTION_REG<br /> TMR0 = 0;<br /> T0CS =0;<br /> PSA = 0;<br /> PS2 = 1;<br /> PS1 = 0;<br /> PS0 = 0;<br /> // init TIMER1 module, <br /> // prescalar set to 1:8, turn off timer1<br /> T1CON = 0x30;<br /> TMR1H = 0;<br /> TMR1L = 0;<br /> // init TIMER2 module, <br /> // postscaler set to 1:5,prescalar set to 1:1, turn off timer1<br /> T2CON = 0X20; <br /> TMR2 = 0;<br /> PR2 = 150;<br /><br /> <br /> // init CCP module<br /> // disable ccp1 and ccp2<br /> CCP1CON = 0x30;<br /> CCP2CON = 0;<br />// CCP3CON = 0;<br /> // init ssp module<br /> // disable ssp<br /> SSPCON = 0;<br /> SSPCON2 = 0;<br /> SSPBUF = 0;<br /><br /> // init usart module<br /> SPBRG = 129; // 9600 baud rate<br /> TXSTA = 0x04; // 8 bit transmition, disable transmition<br /> RCSTA = 0x00; //disable usart receiver, 8 bit receive<br /> //init comparator register<br /> CM1CON0 = 0x03;<br /> CM2CON0 = 0x03;<br /> CM2CON1 = 0x00;<br /> VRCON = 0;<br /> SRCON = 0;<br /> //init comparator register<br /> PWM1CON = 0;<br /> //init ad module<br /> ADCON1 = 0x0f; // select RA0,RA1,RA3 as digital IO<br /> ADCON0 = 0;<br /> ANSEL = 0;<br /> ANSELH = 0;<br />// ADCON2 = 0;<br />}<br />IO操作如下<br /> TRISA = 0x10;<br /> PORTA = 0x0f;<br />麻烦各位了!谢谢!<br /> |
|