Um sistema com microcontrolador da família PIC possui a seguinte programação:
void interrupt();
void main()
{
RCON.IPEN = 1;
INTCON.GIE = 1;
INTCON.PEIE = 1;
INTCON.INT0IE = 1;
INTCON2.RBPU = 1;
INTCON2.INTEDG0 = 1;
ADCON1 = 0b00001111;
TRISB.RB0 = 1;
TRISD = 0b00000000;
PORTD = 0b10101010;
while(1);
}
void interrupt() {
if(PORTB.RB0 == 0) {
PORTD=~PORTD;
while(portb.rb0 == 0);
}
}
Como pode ser explicado o comportamento dos pinos de I/O deste sistema microcontrolado?
RB0 é uma entrada digital ativa em nível alto que através da interrupção inverte o estado de cada pino da Porta D, que são saídas digitais.
RB0 é uma entrada digital ativa em nível alto que através da interrupção inverte o estado apenas dos pinos correspondentes à RD1, RD3, RD5, e RD7, que são saídas digitais.
RB0 é uma entrada digital ativa em nível baixo que através da interrupção inverte o estado apenas dos pinos correspondentes à RD1, RD3, RD5, e RD7, que são saídas digitais.
RB0 é uma entrada digital ativa em nível baixo que através da interrupção inverte o estado de cada pino da Porta D, que são saídas digitais.