



























Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Microcontrolador ATmega328P. Microcontrolador de 8 bits. Baseado em um processador AVR RISC (Reduced Instruction Set. Computing).
Tipologia: Resumos
1 / 35
Esta página não é visível na pré-visualização
Não perca as partes importantes!




























Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Rafael Ferrari
2
Microcontrolador de 8 bits. Baseado em um processador AVR RISC ( Reduced Instruction Set Computing ). Arquitetura Harvard (memórias de programa e dados independentes). 32kB de memória flash para armazenamento de programas. 2kB de memória RAM estática para armazenamento de dados. 1kB EEPROM para armazenamento não-volátil. 23 linhas de entrada/saída de propósito geral (GPIO). 32 registradores de propósito geral. 3 temporizadores/contadores. USART ( Universal Synchronous/Asynchronous Receiver Transmitter ). Porta serial I^2 C ( Inter-Integrated Circuit ), também chamada de TWI ( Two Wire Interface ). Porta serial SPI ( Serial Peripheral Interface ). 6 canais de 10 bits para conversão A/D.
As portas de entrada e saída de propósito geral ( General- Purpose Input/Output - GPIO) são provavelmente os componentes dos microcontroladores mais empregados em sistemas embarcados. GPIOs são linhas digitais conectadas aos pinos externos do microcontrolador usadas no controle e acionamento de dispositivos (LEDs, botões, motores, etc). Cada GPIO pode ser configurada independentemente como um pino de entrada ou de saída. Via software , pode-se escrever um nível 0 ou um nível 1 em uma GPIO de saída ou pode-se ler valores digitais em uma GPIO de entrada.
Data Direction Register (DDR) Registrador de dados
O microcontrolador Atmega328P possui 23 linhas GPIO, divididas entre três portas: Porta B: 8 linhas Porta C: 7 linhas Porta D: 8 linhas Cada porta possui três registradores: DDR x : define a direção da porta (“ 0 ” entrada, “ 1 ” saída). PORT x : armazena o dado de saída. PIN x : armazena o dado de entrada amostrado. (OBS: x = B, C ou D) Os registradores são mapeados em memória e podem ser acessados através de operações de leitura e escrita em memória.
Endereços dos registradores
Usando ponteiros : // criar o ponteiro e atribuir o endereço do registrador unsigned char portB_DDR; portB_DDR = (unsigned char) 0x24; // Leitura do conteúdo armazenado no registrador DDRB unsigned char dado; dado = (*portB_DDR); // Escrita *portB_DDR = 0xFF; // todos os bits são de saída // Alterando somente o bit 5 #define BIT5_MASK 0x20 // 0010 0000 // atribuir nível baixo ao bit 5 portB_DDR = (portB_DDR) & (~BIT5_MASK); // atribuir nível alto ao bit 5 portB_DDR = (portB_DDR) | BIT5_MASK;
Usando variáveis predefinidas:
// Leitura do conteúdo armazenado no registrador DDRB dado = DDRB; // DDRB corresponde a um ponteiro para 0x
// Escrita DDRB = 0xFF; // todos os bits são de saída // Alterando somente o bit 5
// atribuir nível baixo ao bit 5 DDRB = DDRB & (~BIT5_MASK); // atribuir nível alto ao bit 5 DDRB = DDRB | BIT5_MASK;
Na IDE do Arduino, as variáveis predefinidas geralmente seguem a nomenclatura adotada no datasheet (DDRB, PORTB, PINB, etc).