Escolar Documentos
Profissional Documentos
Cultura Documentos
Microprecessadores
Aula 07
Curso Engenharia de Controle e Automação
Universidade Paulista
PORTs
REGISTRADORES DE PORTAS
Existe um registrador chamado DDR que configura o sentido da porta se ela é de saida
(OUTPUT) ou de entrada (INPUT).
O Registrador PORT controla se a porta está no estado lógico alto (HIGH) ou baixo
(LOW).
O Registrador PIN que efetua a leitura das portas configuradas como INPUT pela função
pinMode()
REGISTRADORES DE PORTAS
Os Registradores DDR e PORT podem ser escritos e
lidos. Já o Registrador PIN só pode ser lido.
PORTD mapeado para as portas
digitais PD0 até PD7
REGISTRADORES DE PORTAS
Os Registradores DDR e PORT podem ser escritos e
lidos. Já o Registrador PIN só pode ser lido.
PORTB mapeado para as portas PB0 até PB7
Os dois bits mais altos (6 e 7) são dos
pinos do cristal e não são usados.
REGISTRADORES DE PORTAS
Os Registradores DDR e PORT podem ser escritos e
lidos. Já o Registrador PIN só pode ser lido.
PORTs
PORTs
DDRB
BIT 7 6 5 4 3 2 1 0
PIN - - 19 18 17 16 15 14
DDRC
BIT 7 6 5 4 3 2 1 0
PIN - - 28 27 26 25 24 23
DDRD
BIT 7 6 5 4 3 2 1 0
PIN 13 12 11 6 5 4 3 2
MANIPULANDO REGISTRADORES
Por exemplo: O bit 1 do registrador DDRB (DDB1) controlará o estado do pino PB1 e
consequentemente o pino 15 do ATMEGA 328P.
Peso / ordem
dos bits
MANIPULANDO REGISTRADORES
Manipulando Registradores
COMO DEFINIR UM PINO POR REGISTRADORES
Operadores bit a bit
No AVR algumas constantes podem ser definidas
Operador Descrição
& AND bit a bit
| OR bit a bit
^ XOR bit a bit
<< Shift para esquerda
>> Shift para esquerda
~ NOT bit a bit
Manipulando Registradores
DIREÇÃO DO REGISTRO DE DADOS DA PORT B
Peso / ordem
dos bits
Manipulando Registradores
DIREÇÃO DO REGISTRO DE DADOS DA PORT B
Peso / ordem
dos bits
DDRB = 0b0000010
1
Manipulando Registradores
DIREÇÃO DO REGISTRO DE DADOS DA PORT B
PORTB = 0b000000X0
/* Equivalente:
pinMode(15,OUTPUT);
digitalWrite(15,HIGH);
0x02; // PB1 (pino15) => 0000_00X0 */
Manipulando Registradores
DIREÇÃO DO REGISTRO DE DADOS DA PORT
Manipulando Registradores
DIREÇÃO DO REGISTRO DE DADOS DA PORT
PORTD é o Registrador dos estados das saídas.
Para que tenhamos nível lógico alto (5V) saindo nessas portas, devemos
configurar o Registrador DDRD como saída, ou através da função pinMode().
Exemplo de aplicação
Port B (PB7:0) 8 bits => 256
Para escrever no pino PB0 a referencia é:
0x01, equivalente ao pino14
Valor Binário (0000_0001)
void loop() {
PORTB = 0x01; // PB0 (pino14) => 0000_0001
}
(1) UNPROGRAMMED
CKSEL FUSES
void loop() {
PORTD = B00000100; //PORTD = 0x3C; //B00111100;
delay(1000); //Aguarda intervalo de tempo em milissegundos
PORTD = B00000000; //PORTD = 0x00; //B00000000;
delay(1000); //Aguarda intervalo de tempo em milissegundos
}
ATIVIDADE
Quando acionada as quatro sinalizações luminosas
devem oscilar a um intervalo igual a 1 segundo.
CONDIÇÕES DE CONSTRUÇÃO
O endereçamento das entradas e saídas deve ser
montado em apenas uma linha de instrução usando
direção do registro de dados, respectivamente, para
otimizar o espaço de memória flash do
microprocessador.
CONDIÇÕES DE ENTREGA
Diagrama elétrico (Proteus 7,8 )
Código (Bloco de notas)