Atividades Complementares
Exames: Atividades Complementares. Pesquise 862.000+ trabalhos acadêmicosPor: Allanzito0 • 12/6/2013 • 973 Palavras (4 Páginas) • 734 Visualizações
Aula 4 -Tris A - Tris B
pag 40 Desbravando o pic
Memória de dados guardam os registradores de uso geral e os SFR de uso especifico
Primeira coisa que você vai notar é que ele é dividido em dois - Banco 0 e Banco 1. Banco 1 é usado para controlar o funcionamento real do PIC, por exemplo, para dizer ao PIC quais bits da Porta A são de entrada e quais são saída. Banco 0 é usado para manipular os dados. Um exemplo é a seguinte: Vamos dizer que nós queremos fazer um bit da Port A configurado como saida alta. Primeiro, precisamos ir ao Banco 1 para definir o bit particular, ou pino, na Porta A, como uma saída. Em seguida, voltar para o banco 0 e enviar uma lógica 1 (bit 1) para que o pino seja setado como alto.
Os registradores mais comuns no Banco 1 que vamos usar são STATUS, TRISA e TRISB. O STATUS permite-nos voltar para o banco 0, TRISA nos permite selecionar quais os pinos na Porta A são de saída e/ou de entrada, TRISB nos permite selecionar quais os pinos na Porta B são de saída e/ou de entrada.
Vamos dar uma olhada nesses três registradores.
STATUS
Para mudar do banco 0 ao Banco 1 usamos o registrador STATUS. Fazemos isso definindo o bit 5 do registrador STATUS para 1. Para voltar para o banco 0, definimos o bit 5 do registrador STATUS a 0. O registrador STATUS está localizado no endereço 03h (o "h" significa que o número está em hexadecimal).
TRISA e TRISB.
Estes estão localizados em endereços 85h e 86h, respectivamente. Para programar um pino para ser uma saída ou uma entrada, simplesmente enviar um 0 ou um 1 para o bit correspondente no registrador. Agora, isso pode ser feito em binário, ou em hexadecimal. Nós podemos usar ambos, porém o binário ajuda a visualizar a porta. Se você não está familiarizado com a conversão de binário para hexadecimal e vice-versa, basta usar uma calculadora científica.
Assim, na portA Temos 5 pinos e, portanto, 5 bits Se quiséssemos definir um dos pinos de entrada, Enviamos '1 'para o pino relevante. Se quiséssemos definir um dos pinos para uma saída, vamos definir o pino relevante para '0 '. Os bits são organizados exatamente da mesma maneira que os pinos, em outras palavras, bit 0 é RA0, o bit 1 é RA1, RA2 bit 2 é e assim por diante. Vamos dar um exemplo. Se quiséssemos definir RA0, RA3 e RA4 como saídas, e RA1 e RA2 como entradas, Enviamos este: 00110 (06h). Note que o bit zero é à direita, como mostrado:
portA Pinos RA4 RA3 RA2 RA1 RA0
Número de bits 4 3 2 1 0
Binário 0 0 1 1 0
O mesmo vale para TRISB.
PORTA e PORTB
Para enviar um dos nossos pinos para saída de alta, nós simplesmente precisamos enviar '1 ' para o bit correspondente registrador em nossa PORTA ou PORTB. O mesmo formato, como se segue para os registradores TRISA e TRISB. Para ler, se um pino esta com valor alto ou baixo em nossas portas, podemos realizar uma verificação para ver se o bit especial correspondente é definido como alto (1) ou ajustado para baixo (0).
Antes de dar um exemplo de código, Precisamos explicar mais dois registradores - w e f.
W
O registrador W é um registrador geral em que você pode colocar qualquer valor que você desejar. Depois de ter atribuído um valor W, você pode adicioná-lo a um outro valor, ou movê-lo. Se você atribuir outro valor para W, seu conteúdo é substituído.
Um código de exemplo.
Nós vamos dar-lhe um código de exemplo sobre o que acabou de aprender. Não tente compilar isso ainda, vamos fazer isso quando chegamos ao nosso primeiro programa. Estamos apenas tentando mostrar como os registradores acima são realmente programados e introduzir algumas instruções. Nós vamos configurar a Port A, como o exemplo acima.
Primeiro, precisamos de mudar de Banco 0 ao Banco 1. Fazemos isso definindo o registrador
...