Microcontroladores AVR Baseado no ATmega328 Prof. Eduardo G. Bertogna DAELN/UTFPR

Tamanho: px
Começar a partir da página:

Download "Microcontroladores AVR Baseado no ATmega328 Prof. Eduardo G. Bertogna DAELN/UTFPR"

Transcrição

1 1 Microcontroladores AVR Baseado no ATmega328 Prof. Eduardo G. Bertogna DAELN/UTFPR

2 2 Sistema Microprocessado Mínimo Microprocessador; Circuito de Clock; Circuito de Reset; Circuito de Seleção; Memória de Programa - Somente de Leitura, não-volátil; Memória de Dados - Leitura e Escrita, volátil Portas de Entrada e Saída; Fonte de Alimentação.

3 3 Visão Geral da Família AVR Desenvolvido em 1996, no Instituto de Ciência e Tecnologia da Noruega, por 2 estudantes: Alf-Egil Bogen e Vergard Wollan, sendo a sigla AVR para Advanced Virtual RISC; Possui arquitetura RISC de 8 bits com conceito Harvard, e pipeline de um nível garantindo assim o paralelismo; Conjunto de 133 instruções, a maioria sendo executadas em um único ciclo de clock; 32 registros de uso geral, todos conectados diretamente à ULA, permitindo que dois registros quaisquer sejam acessados em um único ciclo de clock ; Perto de 32 MIPS, com o clock máximo de 32 MHz: 1MIPS por MHz, 10x mais rápido que os microcontroladores de arquitetura CISC; Memória Flash ISP, ciclos de escrita/apagamento; Tensões de alimentação em alguns elementos entre 1,8V e 5,5V, e possibilidade de operação em baixo consumo; Eciência na geração de código, tanto em C como em assembly, comparável ao CISC; Grande suporte de hardware e software para o desenvolvimento, muitos destes de natureza livre e aberta.

4 4 Elementos da Família AVR tinyavr megaavr XmegaAVR Battery Management Automotive AVR Família AVR - tinyavr e megaavr tinyavr - Entre 6 e 20 pinos de E/S linhas, pequena área de memória Flash (1kB ou 2kB), poucos periféricos internos, ideal para aplicações de baixa complexidade, e baixo custo. megaavr -Entre 8kB e 256kB de memória Flash, entre 23 e 54 pinos de E/S, inúmeros periféricos internos: Canais de ADC, Canais de PWM, Comparador Analógico, Canais TWI/I2C, UART e SPI, ideal para as aplicações de média complexidade.

5 Componentes das Sub-Famílias tinyavr, e megaavr Modelo* tiny11 tiny12 tiny13 tiny15 tiny26 tiny28 tiny2313 mega8 mega8515 mega8535 mega16 mega162 mega32 mega64 mega128 mega48 mega88 mega168 mega256 Características Principais 1kB Flash, 1 T/C de 8bits, 6 Pinos de E/S. Idem ao tiny11, com 64B de EEPROM. Idem ao tiny12, com 64B de SRAM, e 4 ADC's. Idem ao tiny12, com 4 ADC's. 2kB Flash, 128B EEPROM, 128B SRAM, 2 T/C de 8bits, 16 Pinos de E/S, 11 ADC's de 8bits. 2kB Flash, 1 Timer/Counter de 8bits, 20 Pinos de E/S. 2kB Flash, 128B de EEPROM, 128B de SRAM, 2 T/C (1 de 8bits, 1 de 16bits), 18 Pinos de E/S, 1 Serial. 8kB Flash, 512B EEPROM, 512B SRAM, 3 T/C (2x8,1x16) 23 Pinos de E/S, 1 Serial, 3 PWM, 8 ADC' s, 8kB Flash, 512B EEPROM, 512B SRAM, 2 T/C (1x8,1x16) 35 Pinos de E/S, 1 Serial, 3 Canais de PWM Idem ao mega8515, com 2 Timer/Counter de 8bits, 4 Canais de PWM, 8 ADC's, e 32 Pinos de E/S. 16kB Flash, 1KB EEPROM, 1KB SRAM, 3 T/C (2x8,1x16) 32 Pinos de E/S, 1 Serial, 6 Canais de PWM, 8 ADC' s, Idem ao mega16, c/ 2 T/C de 16bits, 4 Canais de PWM, 2 Canais Seriais, 35 Pinos de E/S, porém sem ADC's. Idem ao mega16, c/ 32kB de Flash, 2kB SRAM, 4 PWM. 64kB Flash, 2kB EEPROM, 4kB SRAM, 4 T/C (2x8,1x16) 54 Pinos de E/S, 2 Serial, 8 Canais de PWM, 8 ADC's. Idem ao mega64, com 128kB Flash, 4kB EEPROM. 4kB Flash, 256B EEPROM, 512B SRAM, 3 T/C (2x8,1x16) 24 Pinos de E/S, 1 Serial, 5 Canais de PWM, 8 ADC's. Idem ao mega48, c/ 8kB Flash, 512B EEPROM, 1kB RAM. Idem ao mega88, c/ 16kB de Flash. Idem ao mega128, c/ 256kB Flash, 8kB SRAM, 16 PWM. 5

6 6 Ambientes de Desenvolvimento p/ AVR CodeVisionAVR - apenas desenvolvimento em C, sem simulador/depurador. Através de Wizard gera código automático, com as congurações dos registros sendo função da seleção de periféricos escolhidos, bastando inserir os trechos de código que o completam.

7 AVR Studio 4 e Atmel Studio 7 - desenvolvimento em assembly e C, com simulador/depurador. Freeware fornecido pela Atmel. AVR Studio. No desenvolvimento em C pode ser usado com o compilador GNU GCC WinAVR e com o AVR Toolchain da Atmel. 7

8 Núcleo da Arquitetura AVR RISC 8

9 9 Recursos do ATmega Instruções (maioria executada em 1 ciclo clock) 32 kb Memória Flash ISP ciclos de escrita B Memória SRAM B Memória EEPROM ciclos de escrita 32 Registros de 8 bits de uso geral 23 pinos de I/O programáveis individualmente 2 T/C de 8 bits, c/ prescaler separado e Modo de Comparação 1 T/C de 16 bits, c/ prescaler separado e Modos de Comparação e de Captura 6 Canais de PWM Contador de Tempo Real c/ oscilador independente Watchdog Timer c/ oscilador independente 6 Conversores A/D de 10-bits (8 ADCs em TQFP/MLF) Multiplicador por Hardware (2 ciclos de clock) 1 Comparador Analógico 1 Serial TWI compatível c/ I2C Philips 1 USART 1 SPI Master/Slave 2 Interrupções Externas e 23 Interrupções/Wake-Up de I/O 6 Modos de Baixo Consumo Detecção de Brown-out e Power-On Reset Oscilador RC Interno Calibrado Encapsulamentos DIP-28, TQFP-32, MLF-28 Tensões: 1,8V-5,5V Clock: 0-20 MHz

10 Arquitetura Interna do ATmega328 10

11 11 Pinagem do ATmega328 (DIP-28) Descrição dos Pinos do ATmega328 Vcc - Tensão de Alimentação de 1,8 a 5,5V GND - Referência. AVcc - Entrada da Tensão do Conversor A/D, devendo ser conectado externamente a Vcc. Se o ADC é usado deve ser conectado a Vcc via ltro passa-baixas. AREF - Entrada da Tensão de Referência do Conversor A/D

12 12 PORTAS B, C e D (PCINT0...PCINT22) - Todos os 23 pins de E/S das Portas B, C e D possuem a função alternativa de ativar uma interrupção na mudança de estado do respectivo pino, servindo assim como uma interrupção externa. PORTB (PB0...PB7) - Porta de 8 bits bidirecional de E/S. Cada pino desta porta possui uma função alternativa, ver tabela abaixo. Pinos Funções Alternativas PB0 CLK0 Saída de clock dividido ICP1 Entrada de Captura do T/C1 PB1 OC1A Saída Comparação A do T/C1 PB2 OC1B Saída Comparação B do T/C1 SS Seleção Master/Slave da SPI PB3 OC2A Entr. Inv. do Comp. Analógico MOSI Saída Output/Slave da SPI PB4 MISO Saída Input/Slave da SPI PB5 SCK Entrada de Clock da SPI PB6 XTAL1 Entrada Clock Externo 1 TOSC1 Entrada Clock T/C2 qdo Osc. RC PB7 XTAL2 Entrada Clock Externo 2 TOSC2 Entrada Clock T/C2 qdo Osc. RC

13 13 PORTC (PC0...PC6) - Porta de 7 bits bidirecional de E/S. Cada pino desta porta possui uma função alternativa, ver tabela a seguir. Pinos Funções Alternativas PC0...PC5 ADC0...ADC5 Entradas conversores A/D PC4 SDA Entrada/Saída de Dados da I2C PC5 SCL Entrada/Saída de Clock da I2C PC6 RESET Entrada de Reset PORTD (PD0...PD7) - Porta de 8 bits bidirecional de E/S. Cada pino desta porta possui uma função alternativa, ver tabela a seguir. Pinos Funções Alternativas PD0 RXD Entrada de Recepção Serial PD1 TXD Saída de Transmissão Serial PD2 INT0 Entrada Interrupção Externa INT0 PD3 INT1 Entrada Interrupção Externa INT1 OC2B Saída de Comparação B do T/C2 PD4 T0 Entrada Contagem do T/C0 XCK Entrada/Saída Clock Externo da USART PD5 T1 Entrada Contagem do T/C1 OC0B Saída de Comparação B do T/C0 PD6 AIN0 Entrada Positiva Comparador Analógico OC0A Saída de Comparação A do T/C0 PD7 AIN1 Entrada Negativa Comparador Analógico

14 14 Placas da Família Arduino AVR Pinagem do ATmega328p em relação Placa Arduino Uno/Nano Aduino - Pino ATmega328p Aduino - Pino ATmega328p D0 PD0 D8 PB0 D1 PD1 D9 PB1 D2 PD2 D10 PB2 D3 PD3 D11 PB3 D4 PD4 D12 PB4 D5 PD5 D13 PB5 D6 PD6 A0..A5 PC0...PC5 D7 PD7 VIN ARef

15 15 Placa Atmel Xplained328 Gravadores ISP

16 Sistema de Clock do ATmega328 Seleciona a fonte primária de clock de 5 fontes: Cristal Externo, Osc. RC Interno e Clock Externo. Fornece os sinais de clock derivados da fonte primária; 16

17 17 Sinais de clock derivados da fonte primária: Clk CPU Clk IO Clk Flash Clk ADC Clk ASY Núcleo AVR e RAM Módulo de E/S, T/C's, Canal SPI, e UART; Memória Flash, ativado junto c/ clock da CPU; Conversor A/D; T/C2 clock assíncrono Arbitra a ativação dos sinais de clock, acima, não necessariamente ativos simultaneamente, em razão dos modos de baixo consumo. Fontes de Sinal de Clock São 5 diferentes possibilidades para a fonte de geração de sinal de clock, listadas a seguir: Cristal/Ressonador Cerâmico Externo; Cristal de Baixa Freqüência Externo; Fonte de Clock Externa; Oscilador RC Interno de 128 khz; Oscilador RC Interno Calibrado.

18 18 Seleção da Fonte Primária de Clock - Fuse-bits CKSEL3...0 A fonte primária de clock é selecionada quando da programação do dispositivo, através dos fuse-bits CKSEL3...0: CKSEL3...0 Fonte de Clock Selecionada Cristal Externo Baixa Potência Cristal Externo Excursão Completa Cristal Externo de Baixa Frequência 0011 Oscilador RC Interno de 128 khz 0010 Oscilador RC Interno Calibrado 0000 Clock Externo Seleção default de fábrica é p/ Oscilador RC interno Obs: Maior atraso de inicialização (start-up time), possibilita usar qualquer métodos de gravação ISP disponível. Fontes Externas de Clock Cristal Quartz Oscilador - Figura (a) Pinos XTAL1/XTAL2: Entrada/Saída do amplicador inversor usado como oscilador interno. O cristal oscilador e dois capacitores, ou um ressonador cerâmico devem ser conectados conforme a gura (a). Fonte de Clock Externa - Figura (b) Pino XTAL1: Entrada de fonte de clock externa; Pino XTAL2: Não conectado, conforme gura (b).

19 19 Oscilador Interno Calibrado Quando se deseja minimizar o uso de componentes externos, e existe uma certa tolerância na precisão do sinal de clock; Por default 8 MHz a 25ºC e Vcc=3V ±10%, ou calibrado pelo usuário de 7,3 a 8,1 MHz ±1%; Precisão é dependente de temperatura e tensão de alimentação; Registro de Calibração OSCCAL permite ajustar a calibração do oscilador RC Interno, no Reset um valor associado ao byte de assinatura é carregado neste registro. Start-up do Oscilador Interno Calibrado Os tempos de inicialização do Oscilador RC Interno, é feita através dos fuse-bits SUT1 e SUT0: Start-up Time para Oscilador Interno (Vcc=5V) SUT0 Start-Up Time Adicional Recomen- SUT1 após Power-Down após Reset* dação 00 6 Clocks 14 Clks BOD Habilit Clocks 14 Clk + 4,1 ms Fonte Rápida 10 6 Clocks 14 Clk + 65 ms Fonte Lenta 11 Reservado

20 20 Circuito de Reset Faz a carga dos Registros de E/S com seus valores iniciais e carrega o PC com o vetor de Reset: 0000H; Após sua ativação, um atraso de tempo, Start-Up Time, é gerado conforme seleção dos fuse-bits CKSEL3...CKSEL0; A execução do programa inicia no endereço RESET, e uma instrução de desvio desvia a execução p/ a rotina principal. Modo de operação do Circ. de Reset, depende dos bits de controle: WDRF, BORF, EXTRF, e PORF, do Reg. MCUSR.

21 21 Fontes de Ativação do Reset Sinal de Ativação Externo: sinal de nível lógico baixo por mais de 50ns no pino de RESET; Power-On Reset: tensão Vcc abaixo da tensão limite de Power-On Reset (Power-On Threshold) - V P OT, tipicamente entre 1,4V e 2,3V; Watchdog Timer Reset: período programado no Temporizador Watchdog expira antes da instrução WDR ser executada, com o WDT habilitado; Brown-Out Reset: tensão Vcc abaixo de um valor limite, (Brown-Out Threshold) V BOT, c/ o detector de Brown-Out (BOD) habilitado pelo fuse bit BODEN. V BOT é selecionada pelo fuse-bit BODLEVEL: Programado - V BOT = 4, 0V Desprogramado, V BOT = 2, 7V. Por default BODEN estará desprogramado Bits BODSE e BODS no registro MCUCR permite desligar o circuito de BOD em modo Sleep.

22 22 Registro de e Status da CPU - MCUSR MCUSR WDRF BORF EXTRF PORF Bit PORF: Power-On Reset Flag, Sinalizador de Power-On Reset, setado no Power-On, e resetado somente por software; Bit EXTRF: External Reset Flag, Sinalizador de Reset Externo, setado no reset externo e resetado unicamente por software; Bit BORF: Brown-Out Reset Flag, Sinalizador de Brown-Out Reset, setado no reset por Brown-Out, e resetado por software ou Power-On; Bit WDRF: Watchdog Reset Flag, Sinalizador de Watchdog Reset, setado pelo reset do WDT, e resetado por software ou no Power-On.

23 23 Registro de Controle da CPU - MCUCR MCUCR - BODS BODSE PUD - - IVSEL IVCE Bit IVSEL: Interrupt Vector Selection, setado move os vetores de interrupção p/ o início do setor de boot; Bit IVCE: Interrupt Vector Change Enable, setado habilita a função do bit IVSEL. Resetado por hardware 4 ciclos de clock após ter sido setado, ou quando IVSEL é setado. Bit PUD: Pull-Up Disable, setado desabilita todos os pull-ups em todos os pinos das portas; Bit BODSE: BOD Sleep Enable, setado permite que o bit BODS desligue o circuito de detecção de Brown-out durante estado Sleep; Bit BODS: Deve ser setado para desligar o circuito de detecção de Brown-out durante estado alguns modos Sleep;

24 Modos de Baixo Consumo - Sleep Modes O modo de baixo consumo é ativado se o bit de Habilitação do Modo Sleep, SE=1 (registro SMCR), e uma instrução SLEEP for executada. Modo Idle - CPU é parada; - Periféricos e Interrupções continuam funcionando; - CPU retorna do modo Idle ao ocorrer uma destas interrupções; - Circuito de BOD não pode ser desativado neste modo. Modo Power-Down - Oscilador externo é parado; - Circuitos dos TWI, WDT, e Interrupções, permanecem funcionando; - Retorno do Power-Down através de uma interrupção destes circuitos, de um Reset externo, ou Reset por Brown-out. Modo Power-Save - Idêntico ao Power-Down, exceto que T/C2 continua ativo; - Adicionalmente, pode retornar deste modo por interrupções do T/C2; - Se o T/C2 não será usado recomenda-se o modo Power-Down. Modo Standby - Idêntico ao Power-Down, exceto que o oscilador externo se mantém funcionando; - Somente possível de ser usado com Cristal/Ressonador externo. Modo Standyby Extendido - Idêntico ao modo Power-Save, exceto que o oscilador externo se mantém funcionando. - Somente possível de ser usado com Cristal/Ressonador externo. 24

25 25 Reg. de Controle dos Modos de Sleep - SMCR SMCR SM2 SM1 SM0 SE Bit SE: Sleep Enable, setado bit permite que o ATmega328 entre em dos 5 modos de baixo consumo disponíveis após a execução da instrução SLEEP. Bits SM0...SM2: Modos Sleep, seleciona um dos 5 modos de operação sleep conforme tabela abaixo. Modos de Baixo Consumo SM2 SM1 SM0 Modo Modo Idle Redução de ruído do ADC Modo Power-down Modo Power-save Reservado Reservado Modo Standby Modo Standby extendido

26 26 Registro de Status da CPU - SREG SREG I T H S V N Z C Flag T: Bit de alocação temporária usado p/ teste em bits, através das instruções BLD e BST; Flag H: Half-Carry, vai-um do nibble inferior p/ o superior; Flag S: Indica o resultado: N V Flag V : Overow, indica se o byte sinalizado em complemento de 2, está na faixa de -127 a 128; Flag N: Resultado negativo em operação aritmética/lógica; Flag Z: Resultado zero em operação aritmética/lógica; Flag C: Ocorrência de vai-um, em uma operação aritmética/- lógica. Bit I: Setado p/ que qualquer fonte de interrupção possa ter efeito. Exemplo de declaração em C no WinAVR para habilitar e desabilitar interrupções: #i n c l u d e <a v r / i n t e r r u p t. h> // Arq. h e a d e r i n t e r r u p.... / * D e s a b i l i t a i n t e r r u p ç õ e s */ c l i ( ) ;... / * H a b i l i t a i n t e r r u p ç õ e s */ s e i ( ) ;

27 27 Stack Pointer - SPH/SPL Pilha: região da SRAM onde endereços de retorno de rotinas/rotinas de interrupção são guardados pela CPU qdo ocorre uma chamada de rotina/ou atendimento de um pedido de interrupção. Ao término da execução da rotina/rotina de interrupção, o endereço de retorno é buscado na pilha, e o programa retorna a execução do ponto onde estava antes da chamada de rotina/atendimento da interrupção. No ATmega328 o SP é designado por: SPH e SPL, e que respectivamente guardam o byte superior e o byte inferior do endereço da pilha. SPL/SPH devem ser sempre inicializados no início do programa principal, sempre que subrotinas e/ou interrupções são usadas A inicialização deverá conter um endereço acima de 0060H, que é o limite inferior da SRAM interna. Como prática comum o limite superior da SRAM é utilizado, uma vez que o endereço será decrementado em operações de escrita na pilha.

28 28 Organização de Memória do ATmega328 Memória SRAM A área de memória SRAM Interna de bytes aloca a área dos Registros de Uso Geral e de E/S, de forma contiguas, como na gura a seguir. R0 a R31 não se entrelaça com a área de SRAM que começa no endereço 001FH. R26 a R31, proporcionam aos pares ponteiros para acesso indireto à memória de dados, sendo denominados de registros X, Y, e Z.

29 29 Memória FLASH Memória Flash de 32 kb, organizada como 16 kw, instruções de 16 ou 32 bits, e PC de 14 bits. Programa Boot Loader, alocado na Seção de Boot, possibilita carga/descarga de código, por qualquer meio ou protocolo de comunicação disponível. Capacidade de autoprogração, atualização de aplicações, e até mesmo atuar na área do Boot Loader, modicando-se a si próprio, ou mesmo se apagando, caso não seja mais necessário.

30 30 Registros de E/S do ATmega328 Recursos Siglas Nome do Registro de E/S Sinalizadores SREG Status Register Stack Pointer SPH/SPL Stack Pointer Fonte de Reset MCUSR MCU Status Reg Brown-out MCUCR MCU Control Reg Clock do Sist. CLKPR Clock Prescaler Reg EIRCRA Ext. Interr. Control Reg A Interrupções Ext. EIMSK Ext. Interr. Mask Reg EIFR Ext. Interr. Flag Reg Interrupções TIFR0/1/2 T/Cs Interrupt Flag Regs dos Temp./Cont. TIMSK0/1/2 T/C Interr. Mask T/C0, 1 e 2 Temp./Cont.0 TCCR0A/TCCR0B T/C0 Control Register A e B T/C0 (8 bits) TCNT0 T/C0 Counter Register OCR0A/OCR0B T/C0 Output Comp. Reg A/B TCCR1A/B/C T/C1Control Reg. A/B/C Temp./Cont.1 TCNT1H/L T/C1 Reg. High/Low T/C1 (16 bits) OCR1A/B H/L Output Compare 1A/1B H/L ICR1H/L Input Capture 1 H/L TCCR2A/B T/C2 Control Reg. A/B Temp./Cont.2 TCNT2 T/C2 Reg. High/Low T/C2 (8 bits) OCR2A/B Output Compare 2A/1B ASSR Asyncronous Status Reg GTCCR General T/C Control Reg EEARH/EEARL EEPROM Address Registers EEPROM EEDR EEPROM Data Register EECR EEPROM Control Register SPCR SPI Control Register Canal SPI SPSR SPI Status Register SPDR SPI Data Register

31 31 Registros de E/S do ATmega328 (cont.) Recursos Siglas Nome do Registro de E/S Modos Sleep SMCR Sleep Mode Control Register Contr. Potência PRR Powe Reduction Register Watchdog Timer WDTCSR WDT Control & Status Reg UDRn UART Data Register Canais USART UCSRnA/B/C UART Control/Status Regs UCR UBRRnH/UBRRnL UART Control Register UART Baud Rate Registers Compar.Analóg. ACSR Analog Comp. Control/Status ADCL/H ADC Data Registers L/H Conversor A/D ADCSRA/B ADC Control/Status Reg A/B ADMUX TWBR TWCR ADC Multiplexer Selection Reg TWI Baud Rate Register TWI Control Register Canais TWI TWSR TWI Status Register Portas de E/S TWDR TWAR TWAMR PORTB PORTC PORTD DDRB TWI Data Register TWI Address Register TWI Address Mask Register Port B/C/D Data Regs B, C, e D DDRC Data Direction Registers DDRD PINB PINC PIND Input Pin Address Registers

32 32 Portas de Entrada e Saída São 3 as portas E/S do ATmega328 designadas como PORTB, PORTC e PORTD Sendo: PORTB de 8 bits, PORTC de 7 bits e PORTD de 8 bits 23 linhas de E/S que podem ser usadas como pinos de Entrada/Saída Digital de uso geral. Estas portas de E/S tem resistores de pull-up internos selecionáveis individualmente. Buers de saída podem de drenar até 40 ma. Os pinos contam ainda com diodos de proteção para Vcc e GND.

33 33 Registros Associados às Portas de E/S Registros de Direção de Dados - DDRB, DDRC, DDRD Registros de Dados - PORTB, PORTC, PORTD Pinos de Entrada das Portas - PINB, PINC, PIND Porta Sigla Nome/Função PORTB Dados Porta B B DDRB Direção de Dados B PINB Entrada do Pino B PORTC Dados Porta C C DDRC Direção de Dados C PINC Entrada do Pino C PORTD Dados Porta D D DDRD Direção de Dados D PIND Entrada do Pino D Registros de Direção de Dados (DDRX, X=B,C,D) DDXn=1 => PORTXn será congurado como Saída. DDXn=0 => PORTXn será congurado como Entrada. PUD=0 => PORTXn terá o resistor de pull-up conectado

34 34 Modos de Operação dos Pinos das Portas DDRXn PORTXn PUD Pull-UP Descrição da Operação (DDRX) (PORTX) Interno 0 0 x OFF Entrada em Alta Impedância ON Entrada fornecendo corrente em OFF Entrada em Alta Impedância 1 0 x OFF Saída drenando corrente 1 1 x OFF Saída fornecendo corrente PORTX e DDRX são do tipo R/W, enquanto os PINX são somente de leitura por serem registros de entrada de dados. Pino congurado como entrada - DDRXn=0, com PORTXn=1, terá seu pul-up ativado, desde que PUD=0 em MCUCR (default de PUD após o Reset - Pull-ups ativos). Se o bit PUD=1 (Pull-UP Disable de MCUCR), todos os resistores de Pull-Up serão desabilitados mesmo que DDRXn=0 e PORTXn=1. O pull-up também será desconectado ao se resetar o bit PORTXn quando entrada, ou congurar este pino como saída. Na condição de Reset, os pinos estarão em tri-state (pull-ups desativados), mesmo sem pulso de clock ativo. Logo após o Reset os pull-ups são reconectados por default (PUD=1). Entradas de pinos não usados não devem ser conectados a Vcc ou GND para evitar corrente excessiva se congurados acidentalmente como saída, para garantir isso os pull-ups devem ser deixados em ON (PUD=1).

35 35 Exemplo de Conguração dos Pinos de E/S O trecho de programa a seguir, congura os pinos PB0 e PB1 como saídas, e os pinos PB2 a PB7 como entradas, dene o estado dos pinos PB0, PB1, PB6 e PB7, e então lê o estado da porta B. Finalmente, escreve nos pinos PB0 e PB1, resetando PB0 e setando PB1. PB0 e PB1 são denidos como RELE 1 e RELE 2. #include <avr/io.h> // Arq. header p/ família AVR #define RELE_1 0 //Pino conectado ao relê 1 #define RELE_2 1 //Pino conectado ao relê 2 unsigned char i; // ou, ainda: uint8_t i; int main(void) { // Define Pinos PB0, PB1 como saídas, PB2 a PB7 entradas DDRB = (1<<DDB1) (1<<DDB0); // Define estado dos Pinos PB0, PB1, PB6 e PB7 em nível alto // e pinos PB2, PB3, PB4 e PB5 em nível baixo PORTB = (1<<PB7) (1<<PB6) (1<<PB1) (1<<PB0); // Leitura dos Pinos da Porta B i = PINB; // Leva pino PB0 para nível lógico 0 PORTB &= ~(1<<RELE_1); // Leva pino PB1 para nível lógico 1 PORTB = (1<<RELE_2); } return 0;

36 36 Sintaxe para Setar, Resetar, Complementar e Testar bits em registros Setando-se um bit de um registro: Aplicar a operação OR do registro alvo com uma máscara de bits montada com o operador de deslocamento à esquerda do c: <<, tendo o operando à esquerda o valor 1, e o operando à direita, o nr. de deslocamentos à esquerda correspondente à posição do bit no registro. Exemplo de como se setar o bit 2 (DDRB2) do registro DDRB: <<2 _. MSK Com a máscara MSK como operando da direita do OR, aplica-se este ao registro alvo: DDRB = (1<<DDB2); Resetando-se um bit de um registro: Aplicar a operação AND, ao invés de OR, do registro alvo com uma máscara de bits montada como explicado acima, porém complementada pelo operador de complementação do C: ~. Exemplo de como se resetar o bit 2 (DDRB2) do registro DDRB: ~(1<<2) _. MSK Com a máscara MSK como operando da direita do AND, aplica-se este ao registro alvo: DDRB &=~(1<<DDB2);

37 37 Setando-se mais de um bit de um registro: Aplicar a operação OR do registro alvo com múltiplos ORs das várias máscaras de bits correspondentes aos bits que se deseja setar. Exemplo de como se setar os bits 2 e 3 (DDRB2 e DDRB3) do registro DDRB: DDRB = (1<<DDB3) (1<<DDB2); Resetando-se um bit de um registro: Aplicar a operação AND do registro alvo com o complemento dos múltiplos ORs das várias máscaras de bits correspondentes aos bits que se deseja resetar. Exemplo de como se resetar os bits 2 e 3 (DDRB2 e DDRB3) do registro DDRB: DDRB &=~((1<<DDRB3) (1<<DDB2)); Complementando-se um bit de um registro: Aplicar a operação XOR do registro alvo com a máscara de bits correspondente ao bit que se deseja complementar. Exemplo de como se complementar o bits 2 (PORTB2) do registro PORTB: PORTB ^= (1<<PORTB2); Testando-se um bit de um registro: Aplica-se a operação AND do registro com a máscara de bits montada com o operador de deslocamento à esquerda como descrito antes. Exemplo de como se testar o bit 2 do port B: PINB & (1<<PIN2);

38 38 Macros para Setar, Resetar, Complementar e Testar bits Pode-se para efeito de clareza ou praticidade criar macros como as a mostradas a seguir: #define SetBit_Reg(Reg,Bit) (Reg =(1<<Bit)) #define ClrBit_Reg(Reg,Bit) (Reg&=~(1<<Bit)) #define CplBit_Reg(Reg,Bit) (Reg^=(1<<Bit)) #define TstBit_Reg(Reg,Bit) (Reg&(1<<Bit)) #define _BV(Bit) (1<<Bit) Controle de uxo usando teste de bit Espera que bit de um registro seja Setado ou Resetado: #define TstBit_Reg(Reg,Bit) (Reg&(1<<Bit))... while(tstbit_reg(pinb,0)==0);... // Loop é executado enquanto PB0=0 while(tstbit_reg(pinb,0)==1);... // Loop é executado enquanto PB0=1 Executa se bit de registro está Setado ou Resetado: #define TstBit_Reg(Reg,Bit) (Reg&(1<<Bit))... if(tstbit_reg(pinb,0)==0){ // Se PB0=0 executa o bloco entre { } } if(tstbit_reg(pinb,0)==1){ // Se PB0=1 executa o bloco entre { }... }

39 Exemplo 1: Uso das macros para testar bits. PD0=0 o pino PB5=0, se PD0=1 pino PB5=1. Enquanto pino #include <io.h> #include <delay.h> #define SetBit_Reg(Reg,Bit) (Reg =(1<<Bit)) #define ClrBit_Reg(Reg,Bit) (Reg&=~(1<<Bit)) #define CplBit_Reg(Reg,Bit) (Reg^=(1<<Bit)) #define TstBit_Reg(Reg,Bit) (Reg&(1<<Bit)) void main(void) { DDRB =(1<<DDB5); // Pino PB5 como saída PORTD =(1<<PORTD2); // Pull-up em PD2 while (1) { ClrBit_Reg(PORTB,5); while(tstbit_reg(pind,2)); // Espera Pino PD0 ir a 0 SetBit_Reg(PORTB,5); while(!tstbit_reg(pind,2)); // Espera Pino PD0 ir a 1 } } Exemplo 2: pisca LED em PB5 a cada 1,0 segundo usando a função delay ms(nr ms) da biblioteca delay.h. #include <io.h> #include <delay.h> #define SetBit_Reg(Reg,Bit) (Reg =(1<<Bit)) #define ClrBit_Reg(Reg,Bit) (Reg&=~(1<<Bit)) #define CplBit_Reg(Reg,Bit) (Reg^=(1<<Bit)) void main(void) { DDRB =(1<<DDB5); // Pino PB5 como saída while (1) { ClrBit_Reg(PORTB,5); delay_ms(1000); // Espera 1,0 segundo SetBit_Reg(PORTB,5); delay_ms(1000); // Espera 1,0 segundo } } 39

40 Estrutura Geral dos Pinos de E/S 40

41 41 Exemplo 3: neste exemplo há a mudança de estado do LED em PB5 cada vez que push button em PD2 é pressionado. #include <io.h> #include <delay.h> #define SetBit_Reg(Reg,Bit) (Reg =(1<<Bit)) #define ClrBit_Reg(Reg,Bit) (Reg&=~(1<<Bit)) #define CplBit_Reg(Reg,Bit) (Reg^=(1<<Bit)) #define TstBit_Reg(Reg,Bit) (Reg&(1<<Bit)) void main(void) { DDRB =(1<<DDB5); // Pino PB5 como saída PORTD =(1<<PORTD2); // Pull-up em PD2 while(1){ if(!tstbit_reg(pind,2)){ while(!tstbit_reg(pind,2)); // Espera liberar push-button delay_ms(100); // Atraso de 100 ms de debouncing CplBit_Reg(PORTB,5); }} // Complementa estado do LED em PB5 }

42 42 Interrupções no ATmega328 Vetor Endereço Fonte Denição 1 0x0000 RESET Reset Ext., Power-On Reset, 2 0x0002 INT0 Int. Externa no pino INT0 3 0x0004 INT1 Int. Externa no pino INT1 4 0x0006 PCINT0 Mudança estado pino Req x0008 PCINT1 Mudança estado pino Req x000A PCINT2 Mudança estado pino Req x000C WDT Watchdog Time-out 8 0x000E TIMER2 COMPA T/C2 Compare Match A 9 0x0010 TIMER2 COMPB T/C2 Compare Match B 10 0x0012 TIMER2 OVF T/C2 Overow 11 0x0014 TIMER1 CAPT T/C1 Evento de Captura 12 0x0016 TIMER1 COMPA T/C1 Compare Match A 13 0X0018 TIMER1 COMPB T/C1 Compare Match B 14 0X001A TIMER1 OVF T/C1 Overow 15 0x001C TIMER0 COMPA T/C0 Compare Match A 16 0x001E TIMER0 COMPB T/C0 Compare Match B 17 0x0020 TIMER0 OVF T/C0 Overow 18 0x0022 SPI, STC SPI Transfer. completa 19 0x0024 USART, RX USART Recep. completa 20 0x0026 USART, UDRE USART Reg. dados vazio 21 0x0028 USART, TX USART Transm. completa 22 0x002A ADC Conv. A/D completada 23 0x002C EE READY EEPROM Pronta 24 0X002E ANALOG COMP Comparador Analógico 25 0x0030 TWI 2-Wire serial interface 26 0x0032 SPM READY Memória Flash Pronta

43 43 Interrupções no ATmega328 (cont.) 26 fontes de interrupção, bit de Seleção de Vetores de Interrupção - IVSEL=1: vetores de interrup. no setor de programa; se IVSEL=0 estes ocupam início do setor de boot. Interrupções Externas Solicitadas pelos pinos INT0, INT1, ou PCINT0...23, funções alternativas de PORTD: PD2 (INT0) e PD3 (INT1), e PORTB, PORTC e PORTD (PCINT0...23). INT0 e INT1 podem ser ativadas por nível zero, mudança de estado, na borda de descida e subida, e PCINT quando ocorre uma mudança de estado. A seleção do modo de ativação de INT0 e INT1 é feita através do Reg. EICRA: bits ISC00/ISC01, para INT0; ISC11/ISC10, para INT1 Habilitadas/Mascaradas através dos bits INT0 e INT1 do Registro de Máscara de Interrupções - EIMSK, se o bit I do SREG=1 PCINT tem a seleção de ativação feita através do bit de controle PCIE0...2, do Registro PCICR. Quando a interrupção externa é atendida, o programa desvia p/ o vetor de interrupção correspondente, o bit I é resetado, assim como o respectivo bit dos registros EIFR e PCIFR. Pode-se deslocar os Vetores de Interrupção do inicio da memória Flash, p/ o inicio do setor de boot, através dos bits IVSEL e IVCE. Isso só será possível se o bit IVCE=1.

44 44 Reg. de Máscara de Interrup. Externa - EIMSK EIMSK INT1 INT0 Bits INT0, INT1: Setado habilita a interrupção externa correspondente, desde que o bit I do SREG esteja setado; Reg. de Controle de Interrup. Ext. A - EICRA Modo de Ativação das Interrupções Externas por nível, borda de descida, ou borda de subida. EICRA ISC11 ISC10 ISC01 ISC00 Bits ISC00/ISC01 e ISC10/ISC11: Interrupt Sense Control, aos pares seleciona o modo de ativação das interrupções externas INT0, e INT1, por nível, borda de descida, ou de subida. ISC01/ISC11 ISC00/ISC10 Ativação de INT0/INT1 0 0 Nível zero em INTn 0 1 Mudança de estado em INTn 1 0 Borda de descida em INTn 1 1 Borda de subida em INTn

45 45 Reg. de Sinalização de Interrup. Externa - EIFR EIFR INTF1 INTF0 Bits INTF0, INTF1: Interrupt Flag Bits 0 e 1, ou Sinalizadores de Interrupção, qdo o pino INT0 ou INT1 é ativado, o ag correspondente é setado, sendo resetado por hardware no atendimento da interrupção. Reg. de Controle de Interrupção da Mudança de Estado de Pino - PCICR PCICR PCIE2 PCIE1 PCIE0 Bits PCIE0, PCIE1 e PCIE2: Setados, desde que o bit I do SREG também esteja setado, habilitam as interrupçóes externas correspondentes aos pinos PCI0...7, PCI e PCI , respectivamente, quando estes pinos mudam de estado. A máscara de interrupção por mudança de estado é feita no registro PCMSK0, PCMSK1 e PCMSK2, para os pinos: PCI0...7, PCI e PCI , respectivamente.

46 46 Exemplo de uso das interrupções externas Controle da temperatura de um forno Sensores de temperatura ligados aos pinos de interrupção INT0 e INT1. Sensor de 120 C provoca interrupção INT0 e sensor de 100 C provoca a interrupção INT1. Quando o sensor associado ao pino INT0 é ativado, na borda de descida, então a temperatura do forno ultrapassou 120ºC, e o forno deve ser desligado, uma vez que a temperatura atingiu o seu valor máximo. Quando o sensor associado ao pino INT1 é ativado, na borda de descida, indicando que a temperatura do forno está abaixo de 100ºC, o forno deve ser ligado, por estar abaixo da temperatura limite inferior.

47 47 Código em C editado no CodeVision: #include <mega328p.h> #define ACIONADOR PORTB.0 // Definições de registros void inicializa(void); // Protótipo da função void main(void) { inicializa(); ACIONADOR=1; if(intf0==1) ACIONADOR=0; while (1); } // Inicializa periféricos // Inicia ligando o forno // Desliga forno se T>120 C // Espera ativação de sensores // Rotina de Interrupção Externa 0 ativada pelo sensor de 120 C interrupt [EXT_INT0] void ext_int0_isr(void) { ACIONADOR=0; // Desliga forno sensor 120 C ativo } // Rotina de Interrupção Externa 1 ativada pelo sensor de 100 C interrupt [EXT_INT1] void ext_int1_isr(void) { ACIONADOR=1; // Liga forno sensor 100 C ativo } void inicializa(void) { // Pino PB0 saída DDRB =(1<<DDB0); PORTB=0x00; PORTD =(1<<2) (1<<3); // Pull-ups nos pinos INT0 e INT1 // INT0 e INT1: Ativos na borda de descida EICRA=(1<<ISC11) (0<<ISC10) (1<<ISC01) (0<<ISC00); // Habilita INT0 e INT1 após I=1 (SREG) EIMSK=(1<<INT1) (1<<INT0); // Habilitação Global de Interrupções, I=1 #asm("sei") }

48 Interface com Módulo de LCD A conexão do LCD com o microcontrolador pode ser feita através de 4 bits de dados, utilizando os pinos D4 a D7 do LCD, ou em 8 bits de dados, utilizando os pinos D0 a D7. Além destes sinais de dados, 3 sinais de controle são usados: Habilitação (EN) - Ativo na borda de descida; Seleção de escrita ou leitura (RW) - 0: WR; 1: RD; Seleção de reg. de comando ou de dado (RS) - 0: cmd; 1: dado; Estes sinais de controle devem seguir uma temporização especíca. A pinagem de um LCD padrão Hitachi é apresentada na tabela, a seguir: Pino Sigla Função 1 GND Terra 2 Vcc Alimentação de +5V 3 Pot Terminal central do trimpot 4 RS Register Select - Seleção de Registro 5 RW Read/Write - Sinal de Leitura e Escrita 6 EN Enable - Sinal de Habilitação 7 D0 Sinal de dados D0 (LSB) 8 D1 Sinal de dados D1 9 D2 Sinal de dados D2 10 D3 Sinal de dados D3 11 D4 Sinal de dados D4 12 D5 Sinal de dados D5 13 D6 Sinal de dados D6 14 D7 Sinal de dados D7 (MSB) 48

49 49 Funções da Biblioteca alcd.h do Codevision void lcd init(unsigned char lcd columns) - Inicializa o controlador do LCD conforme tipo em nr de colunas; void lcd clear(void) - Limpa o LCD; void lcd gotoxy(unsigned char x, unsigned char y) - Posiciona cursor do LCD na posição x,y (x=0..39 e y=0..3); void lcd putchar(char c) - Escreve no LCD um caracter; void lcd puts(char *str) - Escreve string de caracteres no LCD; void lcd putsf(char ash *str) - Escreve no LCD string de caracteres localizada na memória Flash; void lcd putse(char eeprom *str) - Escreve no LCD string de caracteres localizada na memória EEPROM; unsigned char lcd read byte(unsigned char addr) - Lê da memória de caracteres; void lcd write byte(unsigned char addr, unsigned char data) - Escreve na memória de caracteres; Obs1: RS=RW=EN=0 selecionam escrita no registro de controle; Obs2: RS=1 e RW=EN=0 selecionam escrita no registro de dados; Obs3: Modo de operação do LCD: interface em 4.

50 Interface com LCD em 4 Bits no Codevision A mensagem que será apresentada é a clássica mensagem ALO MUNDO na 1ª linha e HELLO WORLD! na 2ª linha. Exemplo de código em C: /******************************************************* Chip: ATmega328P Clock: 16, MHz *******************************************************/ #include <mega328p.h> #include <alcd.h> // Protótipo da função inic() void inic(void); void main(void){ inic(); lcd_puts("alo MUNDO!"); // Escreve string na coluna 0 linha0 lcd_gotoxy(0,1); // Posiciona cursor na coluna 0 linha1 lcd_puts("hello WORLD!"); // Escreve string na coluna 0 linha1 while (1); } void inic(void){ // LCD Alfanumerico: inicialização // RS:PB4, RD:GND, EN:PB5, D4:PB0, D5:PB1, D6:PB2, D7:PB3 // Caracteres/linha: 16 lcd_init(16); // Inicializa o LCD conforme acima } 50

51 Interface LCD em 8 Bits com Shift Register Pode-se conectar o LCD ao ATmega328 em 8 bits utilizando um shift register 74HC164. Neste caso os pinos D0 a D7 do LCD são oriundo da saída do 74HC164, o qual recebe estes 8 bits de forma serial pela linha de dados (A) sincronizados com o clock (CLK). Os pinos de controle RS e EN do LCD são conectados a pinos disponíveis de uma das portas, e o RD aterrado. No exemplo a seguir, novamente a mensagem que será apresentada é a clássica mensagem ALO MUNDO na 1ª linha e HELLO WORLD! na 2ª linha. Exemplo de código em C: /******************************************************* Chip: ATmega328P Clock: 16, MHz *******************************************************/ #include <mega328p.h> #include "shift_reg.h" unsigned char msg1[]={"hello World"}; unsigned char msg2[]={"alo Mundo"}; void main(void){ lcd164_inic(); lcd164_puts(msg1); // Escreve string na coluna 0 linha0 lcd164_gotoxy(0,1); // Posiciona cursor na coluna 0 linha1 lcd164_puts(msg2); // Escreve string na coluna 0 linha1 while (1); } 51

52 52 Código do arquivo de cabeçalho shift reg.h: #include <io.h> #include <delay.h> // Definições p/ o Shift Register #define SHT_REG PORTC // Porta usada pelo #define DBIT PORTC0 // Pino de dados do #define CLK PORTC1 // Pino de clock do #define DBIT_HI SHT_REG = (1<<DBIT) // Macro seta bit de dado #define DBIT_LO SHT_REG &= ~(1<<DBIT) // Macro reseta bit de dado #define CLK_HI SHT_REG = (1<<CLK) // Macro seta bit de clock #define CLK_LO SHT_REG &=~ (1<<CLK) // Macro reseta bit de clock // Pinos conectados ao LCD #define CNTR PORTC #define RS PORTC2 #define EN PORTC3 #define EN_HI CNTR = (1<<EN) #define EN_LOW CNTR &=~(1<<EN) #define RS_CMD CNTR &=~(1<<RS) #define RS_DAT CNTR = (1<<RS) // Parâmetros de configuração do LCD #define CONFIG_LCD 0x38 #define LCD_ON 0x0E #define ENTRY 0x06 #define CLR_LCD 0x01 #define HOME 0x02 #define LIN1 0xC0 #define DISP_ON 0x0C #define DISP_OFF 0x08 // Função para deslocamento de bits via 74HC164 para envio ao LCD void shift_reg(unsigned char dado){ unsigned char i; CLK_HI; for(i=0;i<8;i++){ if((dado & 0x80)==0x80) DBIT_HI; else DBIT_LO; CLK_LO; CLK_HI; dado=dado<<1;} } // Função de envio de comando ao LCD void lcd164_cmd(unsigned char dado){

53 EN_HI; RS_CMD; shift_reg(dado); EN_LOW; delay_ms(5); } // Função de envio das palavras de controle ao LCD para sua inicia- // lização para funcionar em 8 bits void lcd164_inic(void){ DDRC =(1<<DDC3) (1<<DDC4) (1<<DDC5); DDRB =(1<<DDB2); PORTC=0; EN_LOW; RS_CMD; CLK_HI; lcd164_cmd(config_lcd); lcd164_cmd(config_lcd); lcd164_cmd(lcd_on); lcd164_cmd(entry); lcd164_cmd(clr_lcd); } // Função para limpar o LCD void lcd164_clear(){ EN_HI; RS_CMD; shift_reg(clr_lcd); EN_LOW; delay_ms(5); } // Função para posicionar cursor do LCD em certa posição void lcd164_gotoxy(unsigned char col,unsigned char lin){ unsigned char base,dado; if(lin==0 lin==1){ switch(lin){ case 0: base=0x80; break; case 1: base=0xc0; break; default: base=0;}} else return; if(col>15) return; EN_HI; RS_CMD; dado=base+col;

54 shift_reg(dado); EN_LOW; delay_ms(5); } // Função de escrita de caracter no LCD void lcd164_putchar(unsigned char dado){ EN_HI; RS_DAT; shift_reg(dado); EN_LOW; delay_ms(5); } // Função de escrita de string no LCD void lcd164_puts(unsigned char *s){ unsigned char i; for(i=0;s[i]!='\0';i++) lcd164_putchar(s[i]); } Interface com Teclado Matricial Uma varredura deve ocorrer escrevendo zero em uma das 3 colunas e então lendo-se o que há nas 4 linhas para vericar a linha/coluna ativa.

55 A mensagem Pressione tecla é apresentada na 1ª caracter da tecla na linha 2ª linha. linha e o #include <mega328p.h> #include <delay.h> #include <alcd.h> #define COL1 PORTD4 #define COL2 PORTD5 #define COL3 PORTD6 #define C1L1 0b #define C1L2 0b #define C1L3 0b #define C1L4 0b #define C2L1 0b #define C2L2 0b #define C2L3 0b #define C2L4 0b #define C3L1 0b #define C3L2 0b #define C3L3 0b #define C3L4 0b void inic(void); void le_tecla(void); void print(unsigned char tecla); void main(void) { inic(); lcd_puts("pressione tecla"); lcd_gotoxy(0,1); while(1){ le_tecla(); } } void le_tecla(void) { PORTD =(1<<COL1) (1<<COL2) (1<<COL3); PORTD&=~(1<<COL1); delay_ms(100); switch(pind){ case C1L1:print('1'); break;

56 case C1L2:print('4'); break; case C1L3:print('7'); break; case C1L4:print('*');}; PORTD =(1<<COL1); PORTD&=~(1<<COL2); delay_ms(100); switch(pind){ case C2L1:print('2'); break; case C2L2:print('5'); break; case C2L3:print('8'); break; case C2L4:print('0');}; PORTD =(1<<COL2); PORTD&=~(1<<COL3); delay_ms(100); switch(pind){ case C3L1:print('3'); break; case C3L2:print('6'); break; case C3L3:print('9'); break; case C3L4:print('#');}; PORTD =(1<<COL3); } void print(unsigned char tecla) { lcd_putchar(tecla); while((pind & 0x0F)!=0x0F); } void inic(void) { DDRD=0xF0; // Bits7..4=Saídas e Bits2..0=Entradas PORTD=0xFF; // Bits7..4=0 e Bits3..0=Pullup UCSR0B=0x00; // USART desabilitada lcd_init(16); // LCD tipo 16 caracters/linhas }

57 53 Interrupções dos Temporizadores/Contadores Interrupção por Overow: Quando o Registro de Contagem do T/C atinge o máximo valor de contagem; Interrupção por Comparação de Valores: Quando uma comparação entre o Registro de Contagem e o de Comparação, resulta verdadeiro; Interrupção por Captura de Valores: Quando o pino de Captura ICP é ativado, o valor de contagem corrente no Registro de Contagem, é capturado. Interrupção por Overow na Contagem Ocorre se a contagem no registro de contagem de 8 bits TCNT0 ou TCNT2, dos T/C0 e T/C2, ou no de 16 bits do T/C1 - TCNT1, alcança o valor máximo/mínimo de contagem, no caso: 255/0 ou 65535/0, respectivamente. O ag TOV0, TOV1 ou TOV2 do registro TIFR0, TIFR1 ou TIFR2, é setado em resposta à ocorrência do overow na contagem do T/C0, T/C1 ou T/C2, repectivamente. A interrupção deve ser habilitada setandos-se os bits: TOIE0, TOIE1 ou TOIE2 => T/C0, T/C1 ou T/C2 Registros TIMSK0, TMSK1 ou TMSK2, respectivamente; E bit de Habilitação Global de Interrupções, I=1.

58 54 Interrupção por Comparação de Valores Ocorre quando os conteúdos do Reg. de Saída de Comparação e do Registro de Contagem de um T/C se igualam: T/C Reg. Comparação Reg. de Contagem 0 OCR0A/OCR0B TCNT0 1 OCR1A(H/L)/OCR1B(H/L) TCNT1(H/L) 2 OCR2A/OCR2B TCNT2 As interrupções são individualmente habilitadas setando-se os respectivos bits de habilitação de cada T/C, de acordo com a tabela a seguir, devendo-se ainda, setar o bit I em SREG. T/C Bit Reg. de Máscara de Interrupção 0 OCIE0A/OCIE0B TIMSK0 1 OCIE1A/OCIE1B TIMSK1 2 OCIE2A/OCIE2B TIMSK2

59 O ags: OCF0A ou OCF0B do registro TIFR0, sinalizam a ocorrência da igualdade na comparação do T/C0 O ags: OCF1A ou OCF1B do registro TIFR1, sinalizam a ocorrência da igualdade na comparação do T/C1 O ags: OCF2A ou OCF2B do registro TIFR2, sinalizam a ocorrência da igualdade na comparação do T/C2 Interrupção por Captura de Valores Ocorre quando o pino ICP é ativado, levando à captura do valor de contagem corrente, no registro ICR1. Pode-se, ainda, utilizar a saída do comparador analógico como sinal de disparo para a captura. Em resposta, o ag ICF1 é setado, e caso a interrupção por captura esteja habilitada (bit TICIE1=1 em TIMSK, e I =1 em MCUCR), o programa desviará para o vetor de interrupção localizado em 0003.

60 55 Reg. de Máscara de Interrup. dos T/C's TIMSK0 OCIE0B OCIE0A TOIE0 TIMSK1 ICIE1 OCIE1B OCIE1A TOIE1 TIMSK2 OCIE2B OCIE2A TOIE0 Bits TOIE0, TOIE1 e TOIE2: Timer Overow Interrupt Enable dos T/C0, T/C1 e T/C2, setado habilita a interrupção do T/C correspondente por Overow na Contagem, desde que o bit I também esteja setado; Bits OCIE0A/B, OCIE1A/1B e OCIE2A/2B: Output Compare Interrupt Enable A e B dos T/C0, T/C1 e T/C2, setado habilita a interrupção do T/C correspondente, por Comparação de Valores A ou B, respectivamente, desde que o bit I também esteja setado; Bit ICIE1: Input Capture Interrupt Enable do T/C1, setado habilita a interrupção do T/C1 por Captura de Valores, desde que o bit I também esteja setado

61 56 Reg. de Sinaliz. de Interrup. dos T/C's TIFR0 OCF0B OCF0A TOV0 TIFR1 ICF1 OCF1B OCF1A TOV1 TIFR2 OCF2B OCF2A TOV2 Bit TOV 0, TOV 1 e TOV 2: Timer Overow Interrupt Flag do T/C1, setado por hardware quando ocorre Overow na Contagem do T/C1. Resetado por hardware no atendimento da interrupção; Bits OCF0A/B, OCF1A/B e OCF2A/B: Output Compare Interrupt Flag A e B dos T/C0, T/C1 e T/C2, setado por hardware na Comparação de Valores A ou B do respectivo T/C, quando verdadeira. Resetado por hardware no atendimento da interrupção; Bit ICF1: Input Capture Interrupt Flag do T/C1, setado na captura de valores via pino ICP. Resetado por hardware no atendimento da interrupção;

62 Temporizadores/Contadores - T/C's - T/C0 de 8 bits. - T/C2 de 8 bits. - T/C1 de 16 bits. Temporizador de Pré-Divisão de 10 bits Circuito comum aos 2 T/C's que faz a pré-divisão sinal de clock interno - CK, oriundo do circuito de clock, independentemente, obtendo-se: CK/8, CK/64, CK/256, ou CK/1024. Obs1: T0 e T1 não passam pelo bloco de pré-divisão, portanto a ação do Prescaler Timer se restringe a operação dos T/C's no modo temporizador. Obs2: Os bits de controle de Seleção de Clock: CS00:2 e CS10:2, são os responsáveis pela seleção da fonte do sinal de clock que será efetivamente enviado a cada T/C. 57

63 58 Temporizador/Contador 0 de 8 Bits Características Principais do T/C0: Temporizador/Contador de Eventos Bidirecional de 8 bits; Pré-Divisão (Prescaler) do clock da CPU de 10 bits; Unidade de Comparação de Valores c/ Recarga Automática; Gerador de Frequências; Saída PWM c/ Resolução de 8 bits; Duas fontes de interrupção: Overow e Comparação

64 Arquitetura Interna do T/C0 59

65 60 Registro de Contagem - TCNT0 É onde ocorre a contagem em 8 bits, podendo contar de forma crescente ou decrescente; Quando o valor de contagem chega em 255 (FFH), na contagem crescente, ou 0 (zero), na contagem decrescente, ocorre o Overow na contagem; Neste caso, bit de ag TOV0 é setado, e uma interrupção por Overow será requisitada, se previamente habilitada. T/C0 como Temporizador ou Contador Se a origem do sinal de clock é o Temporizador de Pre-Divisão, a operação do T/C0 será como Temporizador; Se a origem deste sinal de clock é o pino T0, a operação será como Contador de Eventos; A seleção do modo de operação, é feita através dos bits: CS02, CS01, e CS00, do Registro de Controle do T/C0 - TCCR0.

66 61 Modos de Operação do T/C0 Após selecionar a operação do T/C0 como: Temporizador (com um determinado fator de prescaler), ou Contador de Eventos (ativo na borda de descida ou subida), deve-se congurar, em seguida o modo de contagem em TCNT0, através dos bits de Seleção de Modo de Geração de Onda: WGM02, WGM01 e WGM00: Modo Normal: Contagem crescente até valor máximo (255), sem recarga automática; Modo CTC: Sigla de Clear Timer on Compare Match, onde a contagem crescente em TCNT0 ocorre até a comparação c/ o Reg. de Comparação - OCR0, resultar verdadeiro, quando TCNT0 é zerado, e o pino OC0 será setado, resetado, ou complementado, dependendo da programação efetuada previamente nos bits COM01/COM00; Modo PWM Rápido: Geração de sinal PWM no pino OC0, c/ frequências de PWM cerca de duas vezes mais altas, que no PWM Corrigido em Fase; PWM Corrigido em Fase: Geração de sinal PWM no pino OC0, onde se obtém um sinal PWM com fase corrigida, apesar de resultar em frequências menores que o modo anterior.

67 62

68 63 Registro de Controle do T/C0 - TCCR0A TCCR0A COM0A1 COM0A0 COM0B1 COM0B0 - - WGM01 WGM00 Bits COM0A1, COM0A0: Compare Output Mode, ou Modo de Saída de Comparação, seleciona o modo como o pino de saída OC0A se comportará. Modo de Ativação da Saida OC0A COM0A1 COM0A0 Modo Normal (WGM02...0=000) 0 0 OC0A Desconectado. 0 1 OC0A Muda de Estado na Comparação. 1 0 Reseta OC0A na Comparação. 1 1 Seta OC0A na Comparação. COM0A1 COM0A0 Modo PWM Rápido (WGM02...0=011) 0 0 OC0A Desconectado. 0 1 Reservado. 1 0 OC0A=0 na Comparação, 1 no valor MÁX. 1 1 OC0A=1 na Comparação, 0 no valor MÁX. COM0A1 COM0A0 PWM Fase Corrig. (WGM02...0=001) 0 0 OC0A Desconectado. 0 1 Reservado. 1 0 OC0A=0 na Comparação em contagem crescente, OC0A=1 na contagem decres. 1 1 OC0A=1 na Comparação em contagem crescente, OC0A=0 na contagem decres.

69 64 Bits COM0B1, COM0B0: Compare Output Mode, ou Modo de Saída de Comparação, seleciona o modo como o pino de saída OC0B se comportará. Modo de Ativação da Saida OC0B COM0B1 COM0B0 Modo Normal (WGM02...0=000) 0 0 OC0B Desconectado. 0 1 OC0B Muda de Estado na Comparação. 1 0 Reseta OC0B na Comparação. 1 1 Seta OC0B na Comparação. COM0B1 COM0B0 Modo PWM Rápido (WGM02...0=011) 0 0 OC0B Desconectado. 0 1 Reservado. 1 0 OC0B=0 na Comparação, 1 no valor MÁX. 1 1 OC0B=1 na Comparação, 0 no valor MÁX. COM0B1 COM0B0 PWM Fase Corrig. (WGM02...0=001) 0 0 OC0B Desconectado. 0 1 Reservado. 1 0 OC0B=0 na Comparação em contagem crescente, OC0=1 na contagem decres. 1 1 OC0B=1 na Comparação em contagem crescente, OC0B=0 na contagem decres.

70 Registro de Controle do T/C0 - TCCR0B TCCR0B FOC0A FOC0B WGM01 CS02 CS01 CS00 Bits CS02, CS01, CS00: Bits Clock Selection, selecionam a operação do T/C0, como Temporizador ou Contador de Eventos, o fator de prescaler (se no modo Temporizador), e o modo Contador de Eventos, a ativação do sinal T0 na borda de descida ou subida: CS02 CS01 CS00 Clock do Contador Para a contagem do T/C Clock proveniente do clock da CPU Clock = clock da CPU/ Clock = clock da CPU/ Clock = clock da CPU/ Clock = clock da CPU/ Clock = T0 na borda de descida Clock = T0 na borda de subida Bits WGM01, WGM00: Bits Wave Form Generator Mode, selecionam o modo de operação: Normal, PWM Rápido, PWM Corrigido em Fase, e CTC. WGM02..1 Modo TOP OCRx Update Normal (00->FF) 0xFF Imed PWM Corr. Fase 0xFF TOP CTC OCRA Imed PWM Rápido 0xFF BOTTOM Reservado PWM Corr. Fase OCRA TOP Reservado PWM Rápido OCRA BOTTOM 65

71 Bits FOC0A/B: Force Output Compare, quando setado, força a saída de comparação OC0 a produzir uma mudança, de acordo com o comportamento selecionado nos bits COM01, COM00, porém somente nos modos não PWM (bit WGM00=0). 66

72 67 Operação do T/C0 no Modo Normal - Timer Over- ow Seleção operação modo normal em TCCR0A: Bits WGM01/WGM00=00; Seleção do clock de contagem em TCCR0B: Bits CS00/CS01/ CS02=00; Contagem em TCNT0 de modo crescente, por Over- ow na Contagem; No Overow, o bit de ag TOV0 (Timer Overow 0) é setado no mesmo ciclo de clock em que a contagem vai a 0; Interrupção habilitada através do bit TOIE0 (Timer Overow Interrupt Enable), do Reg. TIMSK0; Desvio para o endeerço 0007 se o bit I=1 (Habilitação Global de Interrupções) e TOIE0=1. Quando da execução da rotina de interrupção o ag TOV0 é automaticamente resetado.

73 68 Exemplo: Piscando um Led a cada 1,0s via T/C0 Usando o T/C0, c/ clock de contagem: f clk /1024, p/ um cristal de 16,0MHz, o período de contagem do T/C0 caria: T clk = 0, 0625us.1024 = 64us Inicializando-se TCNT0 c/ 100, após 156 pulsos de contagem de 64us, TCNT0=255, e um pedido de interrupção do T/C0 por Overow na Contagem é gerado, isso após um tempo de: T=0,009984s = (156x64us) 10ms. A interrupção do T/C0, tendo sido habilitada através do registro TIMSK0, o programa desviará para o vetor de interrupção do T/C0, no endereço 0x010. Para se chegar a 1,0 segundo, bastará repetir 100 vezes a interrupção do T/C0, ou seja: T 10ms.100 = 1000ms = 1s. Após 100 repetições, um registro de contagem foi de 100 até 0, podendo-se mudar o estado do pino PB5 fazendo o LED piscar. Deve-se então, reiniciar o registro de contagem em 100, para repetir o processo ciclicamente.

LT36D Microcontroladores Notas de Aula Aulas 1 e 2

LT36D Microcontroladores Notas de Aula Aulas 1 e 2 1 LT36D Microcontroladores Notas de Aula Aulas 1 e 2 Prof. Eduardo G. Bertogna DAELN/UTFPR-Campo Mourão 2 Sistema Microprocessado Mínimo Microprocessador: Também chamada de CPU (Central Processing Unit),

Leia mais

LT36D Microcontroladores Notas de Aula Aula 5 e 6

LT36D Microcontroladores Notas de Aula Aula 5 e 6 1 LT36D Microcontroladores Notas de Aula Aula 5 e 6 Prof. Eduardo G. Bertogna DAELN/UTFPR-Campo Mourão 2 Interrupções no ATmega328 São 26 fontes de interrupção, bit de Seleção de Vetores de Interrupção

Leia mais

LT36D Microcontroladores Notas de Aula Aulas 3 e 4

LT36D Microcontroladores Notas de Aula Aulas 3 e 4 1 LT36D Microcontroladores Notas de Aula Aulas 3 e 4 Prof. Eduardo G. Bertogna DAELN/UTFPR-Campo Mourão 2 Organização de Memória do ATmega328 Memória SRAM Na memória SRAM de 2.048 bytes estão alocados

Leia mais

Sistema Digitais. Bacharelado de Informática UEM DIN - Prof. Elvio 2017

Sistema Digitais. Bacharelado de Informática UEM DIN - Prof. Elvio 2017 5197 - Sistema Digitais Bacharelado de Informática UEM DIN - Prof. Elvio 2017 Roteiro ATmega328 (Interrupções) ATmega328 (Interrupções Externas) ATmega328 (Portas de E/S) ATmega328 (Temporizador/Contador

Leia mais

Sistemas Microprocessados

Sistemas Microprocessados Sistemas Microprocessados satoutfpredubr http://pessoal.utfpr.edu.br/sato/ Temporizadores e Contadores do ATmega8 satoutfpredubr Sobre o material Essas transparências foram

Leia mais

Sistemas Embarcados:

Sistemas Embarcados: Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Sistemas Embarcados: Temporizadores e Contadores DCA0119 Sistemas Digitais Heitor Medeiros Florencio Temporizadores

Leia mais

Jadsonlee da Silva Sá

Jadsonlee da Silva Sá Introdução aos Sistemas Microcontrolados Jadsonlee da Silva Sá Jadsonlee.sa@univasf.edu.br www.univasf.edu.br/~jadsonlee.sa Introdução aos Sistemas Microcontrolados Assembly, C, java,... Circuito Reset

Leia mais

Sistemas Microprocessados

Sistemas Microprocessados Sistemas Microprocessados satoutfpredubr http://pessoal.utfpr.edu.br/sato/ Interrupções no ATmega8 satoutfpredubr Sobre o material Essas transparências foram baseadas no manual

Leia mais

Sistema Digitais. Bacharelado de Informática UEM DIN - Prof. Elvio 2016

Sistema Digitais. Bacharelado de Informática UEM DIN - Prof. Elvio 2016 5197 - Sistema Digitais Bacharelado de Informática UEM DIN - Prof. Elvio 2016 Roteiro ATmega328 (Relógio) ATmega328 (Modos Sleep) ATmega328 (Reset) ATmega328 (Watchdog) ATmega328 (Relógio) Fontes de relógio

Leia mais

Guia da Placa de desenvolvimento PD Mega16 N1

Guia da Placa de desenvolvimento PD Mega16 N1 Guia da Placa de desenvolvimento PD Mega16 N1 Este tutorial consiste mostrar detalhes de hardware da placa de desenvolvimento PD Mega16 N1, necessário para iniciar a programação e testes. Boa aprendizagem...

Leia mais

Programa Trainee 2012 Módulo 4 Microcontroladores AVR

Programa Trainee 2012 Módulo 4 Microcontroladores AVR Programa Trainee 2012 Módulo 4 Microcontroladores AVR Conteúdo 01 Arquitetura de microcontroladores AVR Mayara de Sousa Prof. Leandro Schwarz Tempo Estimado 2 h.a. Projeto de Placas de Circuito Impresso

Leia mais

Sistema Digitais. Bacharelado de Informática UEM DIN - Prof. Elvio v. 17a

Sistema Digitais. Bacharelado de Informática UEM DIN - Prof. Elvio v. 17a 5197 - Sistema Digitais Bacharelado de Informática UEM DIN - Prof. Elvio v. 17a Roteiro A Família AVR Introdução ao ATmega328 Características Gerais Memórias Família AVR AVR = Advanced Virtual RISC Fundadores

Leia mais

Microcontrolador 8051

Microcontrolador 8051 Microcontrolador 8051 Inicialmente fabricado pela INTEL, atualmente fabricado por várias empresas; Possui uma grande variedade de dispositivos, com diversas características, porém compatíveis em software;

Leia mais

Plano de Aula. 1 o semestre. Aula número 010 Interrupções Internas Timers. Uso de interrupções internas produzidas pelos timers

Plano de Aula. 1 o semestre. Aula número 010 Interrupções Internas Timers. Uso de interrupções internas produzidas pelos timers Diretoria de Curso Plano de Aula 1 o semestre Nome do curso Eng. Ciências da Computação + TI + TADS + Eng. Elétrica Nome da Unidade Curricular Microprocessadores e Microcontroladores Aula número 010 Tema

Leia mais

Sistemas Embarcados:

Sistemas Embarcados: Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Sistemas Embarcados: Microcontroladores DCA0119 Sistemas Digitais Heitor Medeiros Florencio Sistemas Embarcados

Leia mais

Descrição dos pinos de entrada e saída e de funções especiais. Descrição dos modos de acesso: individual e por porto

Descrição dos pinos de entrada e saída e de funções especiais. Descrição dos modos de acesso: individual e por porto Tópicos Descrição dos pinos de entrada e saída e de funções especiais Descrição dos modos de acesso: individual e por porto Acesso individual aos pinos Objetivos Compreender o que são periféricos em um

Leia mais

Microcontrolador 8051:

Microcontrolador 8051: Microcontrolador 8051: Fonte: CORRADI 2009 O Microcontrolador 8051: Começou a ser produzido no início da década de 80, pela Intel; Hoje é fabricado por várias empresas e com muitas variações; Atualmente,

Leia mais

Família de Microcontroladores AVR

Família de Microcontroladores AVR www.iesa.com.br 1 AVR é o nome dado a uma linha ou família de microcontroladores fabricada pela empresa Atmel nos Estados Unidos. A sigla AVR é em homenagem a dois estudantes de doutorado de uma universidade

Leia mais

Sistemas Microprocessados

Sistemas Microprocessados Sistemas Microprocessados satoutfpredubr http://pessoal.utfpr.edu.br/sato/ A satoutfpredubr Sobre o material Essas transparências foram baseadas no manual do ATmega8 da Atmel,

Leia mais

07/06/2015. Outras características importantes em Microprocessadores/Microcontroladores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

07/06/2015. Outras características importantes em Microprocessadores/Microcontroladores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Redução de Potência de Operação As versões CHMOS (89C51, 89S52, etc ) da família MCS-51 possuem dois modos de controle de redução de potência de operação do chip.

Leia mais

Disciplina : Microcontroladores AVR

Disciplina : Microcontroladores AVR Curso: Técnico em Automação Industrial Integrado ao Ensino Médio Disciplina : AVR Prof. Thiago Javaroni Prati Família AVR Os microcontroladores AVR da fabricante ATMEL são microcontroladores de 8 bits

Leia mais

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga Prof. Adilson Gonzaga Outras características importantes em Microprocessadores/Microcontroladores Redução de Potência de Operação As versões CHMOS (89C51, 89S52, etc ) da família MCS-51 possuem dois modos

Leia mais

Manual da Pinagem dos Microcontroladores BASIC Step 1 e M8 + Esquema de instalação do cabo

Manual da Pinagem dos Microcontroladores BASIC Step 1 e M8 + Esquema de instalação do cabo Manual da Pinagem dos Microcontroladores BASIC Step 1 e M8 + Esquema de instalação do cabo Pinagem Previous Top Next PWR - Alimentação (7-15V) GND - Terra PCO - Saída de comunicação com o PC PCI - Entrada

Leia mais

1.1 Noções básicas sobre interrupções em Microcontroladores

1.1 Noções básicas sobre interrupções em Microcontroladores Capítulo 1 Interrupções 1.1 Noções básicas sobre interrupções em Microcontroladores PIC Interrupções é obrigação em uma programação profissional. Quando um evento ocorrer, uma bandeira de interrupção será

Leia mais

EPAC Microcontroladores Organização do curso 30/8/2007

EPAC Microcontroladores Organização do curso 30/8/2007 EPAC 2007 Microcontroladores 8051 Thiago B. Ló Guilherme Galante Organização do curso 1. Parte I Introdução Visão Geral da família 8051 O circuito básico Atividades Práticas 2. Parte II Interrupções Contadores

Leia mais

Arquitetura do Microcontrolador Atmega 328

Arquitetura do Microcontrolador Atmega 328 Governo do Estado de Pernambuco Secretaria de Educação Secretaria Executiva de Educação Profissional Escola Técnica Estadual Professor Agamemnon Magalhães ETEPAM Arquitetura do Microcontrolador Atmega

Leia mais

Interrupção. Prof. Adilson Gonzaga

Interrupção. Prof. Adilson Gonzaga Interrupção Prof. Adilson Gonzaga Estrutura de Programação Assembly Programa Principal Chamada de Sub-rotina1 Programa Principal Chamada de Sub-rotina2 Sub-rotina1 Subrotina2 Programa Principal Chamada

Leia mais

Arquitetura e Organização de Computadores. Conjunto de Instruções da Arquitetura CompSim

Arquitetura e Organização de Computadores. Conjunto de Instruções da Arquitetura CompSim Arquitetura e Organização de Computadores Conjunto de Instruções da Arquitetura CompSim Agenda Introdução ao Arduino Arduino é: Plataforma eletrônica baseada em microcontrolador Especifcação aberta Utilizada

Leia mais

Introdução ao Uso do LCD Inteligente (Versão Preliminar) Por Gilson Yukio Sato. Introdução

Introdução ao Uso do LCD Inteligente (Versão Preliminar) Por Gilson Yukio Sato. Introdução Introdução ao Uso do LCD Inteligente (Versão Preliminar) Por Gilson Yukio Sato Introdução O display de cristal líquido (LCD) inteligente é bastante usado como dispositivo de interface entre o usuário e

Leia mais

Sistema Digitais. Bacharelado de Informática UEM DIN - Prof. Elvio 2016

Sistema Digitais. Bacharelado de Informática UEM DIN - Prof. Elvio 2016 5197 - Sistema Digitais Bacharelado de Informática UEM DIN - Prof. Elvio 2016 Roteiro TWI (Twin Wire Interface) Protocolo I 2 C Protocolo I 2 C (Inter-Integrated Circuit) foi desenvolvido pela Philips

Leia mais

Introdução aos microcontroladores Microcontroladores e microprocessadores Tecnologia em Manutenção Industrial

Introdução aos microcontroladores Microcontroladores e microprocessadores Tecnologia em Manutenção Industrial Introdução aos microcontroladores Microcontroladores e microprocessadores Tecnologia em Manutenção Industrial 1 Definição de microcontroladores É um circuito integrado que pode ser programado para realização

Leia mais

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga Prof. Adilson Gonzaga Temporização da CPU Todos os Microcontroladores da família MCS-51 têm um oscilador interno. Para uso deste oscilador deve-se conectar um cristal entre os pinos Xtal1 e Xtal2 da CPU.

Leia mais

SICILIANO TECNOLOGIA

SICILIANO TECNOLOGIA SICILIANO TECNOLOGIA Desenvolvimento de Projetos e Soluções www.sicilianotecnologia.com.br Manual da Placa Gravador AT89C51ED2-LP-RE2 - VER 1.0 Características: - Totalmente compatível com 8051; - Fácil

Leia mais

ARDUINO. Profº. Engº. Robson Dias Ramalho

ARDUINO. Profº. Engº. Robson Dias Ramalho ARDUINO Profº. Engº. Robson Dias Ramalho 3. Microprocessador (E/S) 4. Memória RAM (E/S) 5. Placa de vídeo (E/S) 8. Disco Rígido (E/S) 9. Mouse (Saída) 10. Teclado (E/S) 2. Placa mãe (barramento de dados)

Leia mais

Sistemas Embarcados:

Sistemas Embarcados: Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Sistemas Embarcados: Interrupções DCA0119 Sistemas Digitais Heitor Medeiros Florencio Tópicos Conceito de

Leia mais

1.2 Registradores relacionados as Interrupções. 3. TOSE Sentido da transição da borda do sinal aplicado am TMR0

1.2 Registradores relacionados as Interrupções. 3. TOSE Sentido da transição da borda do sinal aplicado am TMR0 Capítulo 1 Interrupções 1.1 O que são interrupções? Como o nome sugere interrompe a execução normal e exige atenção urgente da CPU. São eventos não previsíveis e assim não pode ser oferecido tempo de CPU

Leia mais

Interrupções do Interrupções Gabriel Kovalhuk. UTFPR DAELN - Tecnologia em Mecatrônica Industrial

Interrupções do Interrupções Gabriel Kovalhuk. UTFPR DAELN - Tecnologia em Mecatrônica Industrial Interrupções do 8051 Interrupções Interrupções do 8051 Evento aleatório à sequência normal do programa; Quando ocorre o evento, o programa é desviado para a função de atendimento da interrupção; O endereço

Leia mais

Sistemas Embarcados:

Sistemas Embarcados: Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Sistemas Embarcados: Interfaces de Entradas e Saídas DCA0119 Sistemas Digitais Heitor Medeiros Florencio

Leia mais

Suporta os microcontroladores: R. Leonardo da Vinci, Campinas/SP CEP F.: (19) Kit de Desenvolvimento ACEPIC 28

Suporta os microcontroladores: R. Leonardo da Vinci, Campinas/SP CEP F.: (19) Kit de Desenvolvimento ACEPIC 28 Suporta os microcontroladores: PIC16F870, PIC16F872, PIC16F873A, PIC16F876A, PIC16F886, PIC18F2420, PIC18F2520, PIC18F2525, PIC18F2620, PIC18F2455, PIC 18F2550 e outros com 28 pinos O Kit de desenvolvimento

Leia mais

Aula 10 Microcontrolador Intel 8051 Parte 1

Aula 10 Microcontrolador Intel 8051 Parte 1 Aula 10 Microcontrolador Intel 8051 Parte 1 SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Marcelo A. C. Vieira SEL 0415 Microcontroladores Grupo de Sistemas Digitais n Microcontrolador é o nome

Leia mais

INTRODUÇÃO: MICROCONTROLADORES

INTRODUÇÃO: MICROCONTROLADORES INTRODUÇÃO: MICROCONTROLADORES MICROCONTROLADOR X MICROPROCESSADOR Baixa capacidade de processamento Freq. Operação em MHz Custo de R$ 7,00 a 30,00 Aplicações mais restrita Alta capacidade de processamento

Leia mais

O Pino P2.7 não está sendo usado e cada Display mostrará valores de 0 a 9.

O Pino P2.7 não está sendo usado e cada Display mostrará valores de 0 a 9. Lista de Exercícios 2 Conceitos envolvidos: a) Interface serial RS232 b) Interface com Teclado Matricial c) Interface com Displays de 7 segmentos d) Interface com LCD e) Interface com Conversores A/D e

Leia mais

PSI3441 Arquitetura de Sistemas Embarcados

PSI3441 Arquitetura de Sistemas Embarcados PSI3441 Arquitetura de Sistemas Embarcados - Introdução à Plataforma Freedom KL25Z - Portas de Entrada e Saída Escola Politécnica da Universidade de São Paulo Prof. Gustavo Rehder grehder@lme.usp.br Prof.

Leia mais

Anatomia do Arduino Bootloader

Anatomia do Arduino Bootloader Anatomia do Arduino Bootloader Fábio Olivé (fabio.olive@gmail.com) Tópicos A plataforma Arduino A família Atmel AVR ATmega Padronização da configuração e uso do ATmega Detalhando o ATmega328P Especificações

Leia mais

UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015)

UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015) UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015) Interrupção e Contadores/Temporizadores Este texto apresenta uma

Leia mais

EL08D - MICROCONTROLADORES

EL08D - MICROCONTROLADORES Teclado Matricial Curso Técnico de Nível Médio Integrado Eletrônica - 8o Período Disciplina de Microcontroladores 2 (EL08D) 1º Sem 2016 Professor Gabriel Kovalhuk Email: kovalhuk@utfpr.edu.br Página pessoal:

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 2: Interrupções Externas e Relés Alunos: Matrícula:

Leia mais

Sistemas Digitais e Microcontrolados

Sistemas Digitais e Microcontrolados UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA CURSO DE ENGENHARIA INDUSTRIAL ELÉTRICA TECNOLOGIA EM AUTOMAÇÃO INDUSTRIAL Sistemas Digitais e Microcontrolados Contador/Temporizador

Leia mais

ELE Microprocessadores I

ELE Microprocessadores I ELE 1078 - Microprocessadores I AULA 13 Conjunto de Instruções do Microprocessador 8085A - Entrada e Saída (I/O) - 13.1 - Grupos de Instruções As instruções no 8085 são distribuídas em 5 grupos: Grupo

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 3: Temporizadores e Display LCD Alunos: Matrícula:

Leia mais

Prof. Adilson Gonzaga

Prof. Adilson Gonzaga Exemplo de Projeto com Microcontrolador MCS-51 Prof. Adilson Gonzaga Definições Iniciais: Microcontrolador Tamanho da Memória de Programa Interna define o tamanho da Memória de Programa Externa a ser utilizada.

Leia mais

Objetivos MICROCONTROLADORES HARDWARE. Aula 03: Periféricos. Prof. Mauricio. MICRO I Prof. Mauricio 1. Arquitetura de um Microcontrolador

Objetivos MICROCONTROLADORES HARDWARE. Aula 03: Periféricos. Prof. Mauricio. MICRO I Prof. Mauricio 1. Arquitetura de um Microcontrolador MICROCONTROLADORES HARDWARE 1 Prof. Mauricio Aula 03: Objetivos 2 Arquitetura de um Microcontrolador Unidade Central de Processamento Portas de Entrada e Saída Porta Serial Temporizador / Contador Conversor

Leia mais

Microcontroladores 8051

Microcontroladores 8051 Microcontroladores 8051 1. Microcontroladores Microcontrolador é o nome dado ao componente que incorpora em um só "chip" todos os elementos necessários a um microcomputador. Deve ter : CPU, Memória e Interfaces

Leia mais

Interrupção Externa. Capítulo 1. Noções básicas sobre interrupções em Microcontroladores PIC

Interrupção Externa. Capítulo 1. Noções básicas sobre interrupções em Microcontroladores PIC Capítulo 1 Interrupção Externa Noções básicas sobre interrupções em Microcontroladores PIC Seção 1.1 Interrupções é obrigação em uma programação profissional. Quando um evento ocorrer, uma bandeira de

Leia mais

Módulo de Cristal Líquido LCD

Módulo de Cristal Líquido LCD Módulo de Cristal Líquido LCD 1 Introdução Os módulos LCD são interfaces de saída muito utilizadas em sistemas microprocessados e microcontrolados. Estes módulos podem ser gráficos e alfanuméricos. Os

Leia mais

AULA 6 - INTRODUÇÃO AO ARDUINO Revisão de Eletrônica Digital e introdução aos Sistemas Computacionais.

AULA 6 - INTRODUÇÃO AO ARDUINO Revisão de Eletrônica Digital e introdução aos Sistemas Computacionais. AULA 6 - INTRODUÇÃO AO ARDUINO Revisão de Eletrônica Digital e introdução aos Sistemas Computacionais. 6.1 Objetivo: O objetivo desta aula é mostrar aos alunos o que é e como funciona o Arduino e seus

Leia mais

Sistemas Microcontrolados

Sistemas Microcontrolados Sistemas Microcontrolados Aula 5: Interrupções e Temporizadores Marco Jose da Silva mdasilva@utfpr.edu.br Interrupções Interrupção é um evento externo ao programa que provoca: A parada da sua execução;

Leia mais

Controladores do IBM-PC. Gustavo G. Parma

Controladores do IBM-PC. Gustavo G. Parma Controladores do IBM-PC Gustavo G. Parma IBM-PC baseado em ISA Sistema de interrupção do x86 Duas entradas de solicitação de interrupção NMI: Non-maskable interruption Erro de paridade da RAM Channel Check

Leia mais

Eletrônica Digital. Circuitos Lógicos Sequenciais PROF. EDUARDO G. BERTOGNA UTFPR / DAELN

Eletrônica Digital. Circuitos Lógicos Sequenciais PROF. EDUARDO G. BERTOGNA UTFPR / DAELN Eletrônica Digital Circuitos Lógicos Sequenciais PROF. EDUARDO G. BERTOGNA UTFPR / DAELN Circuitos Sequenciais vs Combinacionais Os circuitos lógicos combinacionais são aqueles em que suas saídas a qualquer

Leia mais

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES SEL 0415 Aula 11 Microcontrolador 8051 Parte 3 SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Marcelo A. C. Vieira SEL 415 INTERRUPÇÃO Estrutura de Interrupção do 8051 n 5 Fontes [ 2 Externas

Leia mais

Microcontroladores PIC16 - XM 116 -

Microcontroladores PIC16 - XM 116 - T e c n o l o g i a Microcontroladores PIC16 - XM 116 - Os melhores e mais modernos MÓDULOS DIDÁTICOS para um ensino tecnológico de qualidade. Microcontroladores PIC16 - XM 116 - INTRODUÇÃO O mundo da

Leia mais

Estrutura Básica de um Computador

Estrutura Básica de um Computador SEL-0415 Introdução à Organização de Computadores Estrutura Básica de um Computador Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira INTRODUÇÃO n Organização Æ implementação do hardware, componentes, construção

Leia mais

KIT DIDÁTICO PIC-2377

KIT DIDÁTICO PIC-2377 KIT DIDÁTICO PIC-77... Módulo PIC-77 Recursos internos da MCU Encapsulamento DIP40. 5 instruções (RISC). pinos de I/O configuráveis. 56 bytes de EEPROM para dados de 8 bits. 8k de memória flash para o

Leia mais

Aplicações Avançadas de Microprocessadores. Professor: Marco Shawn Meireles Machado

Aplicações Avançadas de Microprocessadores. Professor: Marco Shawn Meireles Machado Aplicações Avançadas de Microprocessadores Professor: Marco Shawn Meireles Machado Iniciação aos sistemas microcontrolados Objetivos da Aula: Descrever os itens que compõem uma CPU; Detalhar a estrutura

Leia mais

Kit de desenvolvimento ACEPIC PRO V3.0

Kit de desenvolvimento ACEPIC PRO V3.0 Kit de desenvolvimento ACEPIC PRO V3.0 O Kit de desenvolvimento ACEPIC PRO V3.0 foi desenvolvido tendo em vista a integração de vários periféricos numa só placa, evitando o uso de protoboards e facilitando

Leia mais

Família 8051 (introdução) 2011/1

Família 8051 (introdução) 2011/1 Família 8051 (introdução) 2011/1 Refresh Microprocessador vs. microcontrolador. Periféricos built-in. Single-chip computer 2 Objetivos Histórico Modelos da família original Principais características Diagrama

Leia mais

Aula 4. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura de um microcontrolador 8051

Aula 4. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura de um microcontrolador 8051 Aula 4 Engenharia de Sistemas Embarcados Prof. Abel Guilhermino Tópico: Arquitetura de um microcontrolador 8051 Cenário: Sistema de Controle de LEDs Sistema Embarcado Sistema Engenharia de Sistemas Embarcados

Leia mais

Projeto de Sistemas Embarcados

Projeto de Sistemas Embarcados Projeto de Sistemas Embarcados Pós-Graduação em Engenharia Elétrica Prof. Dr. Joselito A. Heerdt Joselito.heerdt@.udesc.br PLANEJAMENTO 1. Introdução 2. O projeto de sistemas 3. Projeto de hardware 4.

Leia mais

AAAA AAAA SEL Aplicação de Microprocessadores I. Aula 5 Temporização e Interrupção. Marcelo Andrade da Costa Vieira

AAAA AAAA SEL Aplicação de Microprocessadores I. Aula 5 Temporização e Interrupção. Marcelo Andrade da Costa Vieira SEL 0629 Aplicação de Microprocessadores I Aula 5 Temporização e Interrupção Marcelo Andrade da Costa Vieira Contagem de Tempo Contando tempo Existem 3 maneiras de contarmos tempo com os microcontroladores

Leia mais

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás Laboratório de Microprocessadores e Microcontroladores Experimento 2: Interrupções Externas e Relés Alunos: Matrícula:

Leia mais

Temporização Interrupções. Prof: Evandro L. L. Rodrigues. Rotinas de Atraso

Temporização Interrupções. Prof: Evandro L. L. Rodrigues. Rotinas de Atraso Temporização Interrupções Prof: Evandro L. L. Rodrigues Rotinas de Atraso Temporização da CPU Todos os Microcontroladores da família MCS-51 têm um oscilador interno. Para uso deste oscilador deve-se conectar

Leia mais

Organização de Memórias

Organização de Memórias Intel 8051 O Intel 8051 é um microcontrolador de 8 bits que pertence a família MCS-51 da Intel e foi lançado em 1977. É tido como o microcontrolador mais popular do mundo, pois é muito versátil e possui

Leia mais

Comércio e Manutenção de Produtos Eletrônicos. Mapeamento de memória e conexões do Controlador CP-WS13/8DI8DO-WIFI/OEM. Versão 2.

Comércio e Manutenção de Produtos Eletrônicos. Mapeamento de memória e conexões do Controlador CP-WS13/8DI8DO-WIFI/OEM. Versão 2. Comércio e Manutenção de Produtos Eletrônicos Manual CP-WS1 Mapeamento de memória e conexões do Controlador CP-WS13/8DI8DO-WIFI/OEM PROXSYS Versão 2.0 Agosto -2017 Controlador Industrial CP-WS1 Configurações

Leia mais

LCDs Inteligentes. LCD Inteligente. Gabriel Kovalhuk DAELN / UTFPR

LCDs Inteligentes. LCD Inteligente. Gabriel Kovalhuk DAELN / UTFPR LCD Inteligente LCD Display de Cristal Líquido; Dispositivo de saída, usado para mostrar informações do sistema; Os LCDs inteligentes possuem um controlador, que recebe as informações do sistema, processa

Leia mais

8051 Estudo de Caso. Prof. Carlos E. Capovilla - CECS/UFABC 1

8051 Estudo de Caso. Prof. Carlos E. Capovilla - CECS/UFABC 1 8051 Estudo de Caso Prof. Carlos E. Capovilla - CECS/UFABC 1 8051 - Características O 8051 é membro da família MCS-51, e constitui o núcleo de todos os dispositivos MCS-51. Diversos fabricantes produzem

Leia mais

of Arduino Slide: Bruno Aricó

of Arduino Slide: Bruno Aricó S of Arduino Slide: Bruno Aricó https://github.com/brunoarico/workshopneu https://goo.gl/rprngs O que veremos: Registradores; Interrupções Externas; Referência de tensão externa; EEPROM; Pequena oficina

Leia mais

9/3/2009. Aula 4. Engenharia de Sistemas Embarcados. Cenário: Sistema de Controle de LEDs

9/3/2009. Aula 4. Engenharia de Sistemas Embarcados. Cenário: Sistema de Controle de LEDs Cenário: Sistema de Controle de LEDs Sistema Embarcado Aula 4 Sistema Engenharia de Sistemas Embarcados Prof. Abel Guilhermino Tópico: Arquitetura de um microcontrolador 851 Engenharia de Sistemas Embarcados

Leia mais

Curso de Microcontroladores PIC 16F84A

Curso de Microcontroladores PIC 16F84A Curso de Microcontroladores PIC 16F84A João Neto Caetano Jnetcaetano@hotmail.com Marciel Gonçalves Azevedo Marcielgazevedo@hotmail.com Célio Rodrigues Pinto Treinamentos em geral, suporte a alunos universitários

Leia mais

Portas de entrada e saída; Interrupções; Interrupções externas; Temporizadores Contadores; Interface Serial

Portas de entrada e saída; Interrupções; Interrupções externas; Temporizadores Contadores; Interface Serial Periféricos Integrados do 8051 Portas de entrada e saída; Interrupções; Interrupções externas; Temporizadores Contadores; Interface Serial Periféricos Integrados do 8051 Portas de entrada e saída O 8051

Leia mais

Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina. Temporização Interrupções Rotinas de Atraso

Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina. Temporização Interrupções Rotinas de Atraso SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Temporização da CPU Todos os Microcontroladores da família MCS-51 têm um oscilador interno. Para uso deste oscilador deve-se conectar um cristal entre os pinos

Leia mais

CAPÍTULO 5. Interfaces I 2 C e SPI. Interface I 2 C. Interfaces e Periféricos 37

CAPÍTULO 5. Interfaces I 2 C e SPI. Interface I 2 C. Interfaces e Periféricos 37 Interfaces e Periféricos 37 CAPÍTULO 5 Interfaces I 2 C e SPI Interface I 2 C Nos anos 80 a Philips desenvolveu um novo padrão de barramento chamado I²C, cujo objetivo era facilitar a comunicação entre

Leia mais

Tutorial Microcontroladores AVR Atmega8

Tutorial Microcontroladores AVR Atmega8 Tutorial Microcontroladores AVR Atmega8 Instrumentação UnBall Engenharia Mecatrônica Universidade de Brasília Integrantes: José Oniram Limaverde João Vitor Vilela David Bevilaqua Heyder Araújo Tiago Silva

Leia mais

PLATAFORMA PARA ESTUDO EM PROGRAMAÇÃO DE MICROCONTROLADORES FAMÍLIA 8051

PLATAFORMA PARA ESTUDO EM PROGRAMAÇÃO DE MICROCONTROLADORES FAMÍLIA 8051 PLATAFORMA PARA ESTUDO EM PROGRAMAÇÃO DE MICROCONTROLADORES FAMÍLIA 8051 MODELO: EE0216 DESCRIÇÃO Plataforma de treinamento em microcontroladores família 8051 base em aço carbono e pés de borracha, pintura

Leia mais

Sistemas Digitais e Microcontrolados

Sistemas Digitais e Microcontrolados UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETROTÉCNICA CURSO DE ENGENHARIA INDUSTRIAL ELÉTRICA TECNOLOGIA EM AUTOMAÇÃO INDUSTRIAL Sistemas Digitais e Microcontrolados Contador/Temporizador

Leia mais

Interface Serial. Prof. Adilson Gonzaga

Interface Serial. Prof. Adilson Gonzaga Interface Serial Prof. Adilson Gonzaga Comunicação de Dados em Microprocessadores. Comunicação Paralela Tipos de Comunicação FONTE DADOS READY STROBE GND DESTINO Distância < 30 metros Amplificação complexa

Leia mais

PIC32 Uma Nova Tecnologia

PIC32 Uma Nova Tecnologia VITOR AMADEU SOUZA PIC32 Uma Nova Tecnologia Com base no modelo PIC32MX320F032H Programado em C pelo Compilador C32 Microchip Vitor Amadeu Souza 2010 by Cerne Tecnologia e Treinamento Ltda. 2010 by Vitor

Leia mais

C:\Users\House\Desktop\fluxo.c 1: /****************************************************************************** 2: * Objetivo: Este projeto visa

C:\Users\House\Desktop\fluxo.c 1: /****************************************************************************** 2: * Objetivo: Este projeto visa 1: /****************************************************************************** 2: * Objetivo: Este projeto visa monitorar uma tensão de um sensor e mostrar * 3: * e após a conversão necessária da escala

Leia mais

Prof. Dr. Rafael Traldi Moura Escola Politécnica da Universidade de São Paulo Departamento de Engenharia Mecatrônica e de Sistemas Mecânicos

Prof. Dr. Rafael Traldi Moura Escola Politécnica da Universidade de São Paulo Departamento de Engenharia Mecatrônica e de Sistemas Mecânicos Protocolos de Comunicação Prof. Dr. Rafael Traldi Moura 1 Escola Politécnica da Universidade de São Paulo Departamento de Engenharia Mecatrônica e de Sistemas Mecânicos Mecatrônica 2 Objetivo Para se evitar

Leia mais

Introdução à Plataforma ARDUINO

Introdução à Plataforma ARDUINO MINICURSO Introdução à Plataforma ARDUINO PET Mecatrônica/BSI Geruza M. Bressan O que é um microcontrolador (MCU)? É um computador em um chip Processador Memória Entrada/Saída Controla ações e funções

Leia mais

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos

Leia mais

Período Saulo O. D. Luiz

Período Saulo O. D. Luiz Sistemas Microcontrolados Período 2009.2 Aula 2 1 Saulo O. D. Luiz Roteiro Características de um Microcontrolador 2 Saulo O. D. Luiz Características de um Microcontrolador Microcontrolador de fabricantes

Leia mais

8051 PROGRAMAÇÃO EM C

8051 PROGRAMAÇÃO EM C 1 8051 PROGRAMAÇÃO EM C C E ASSEMBLY for-loop em C int z; for (z=255; z>0; z--) P1=z; loop em Assembly MOV R1,#255 ABC: MOV P1,R1 DJNZ R1,ABC 2 TIPOS DE DADOS (DATA TYPES) E ATRASOS (TIME DELAY) EM C DO

Leia mais

29/03/2017. Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina

29/03/2017. Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Temporização da CPU Todos os Microcontroladores da família MCS-5 têm um oscilador interno. Para uso deste oscilador deve-se conectar um cristal entre os pinos

Leia mais

Introdução ao Microcontrolador PIC

Introdução ao Microcontrolador PIC Introdução ao Microcontrolador PIC Nikolas Libert Aula 11 Eletrônica Digital ET52C Tecnologia em Automação Industrial Memórias Memórias Memória de dados Núcleo do μc Memória de código Normalmente os microcontroladores

Leia mais

Registros do 16F628A. Prof. Luiz Antonio Vargas Pinto Prof. Vargas

Registros do 16F628A. Prof. Luiz Antonio Vargas Pinto   Prof. Vargas Registros do 16F628A www.mikroe.com Prof. Luiz Antonio Vargas Pinto www.vargasp.com STATUS (03) STATUS (03) Após RESET Chave dos bancos STATUS (03) Bit 7: IRP - Seleção de banco de registradores 0 - seleciona

Leia mais

RTC Real Time Counter e Pinos do JM60

RTC Real Time Counter e Pinos do JM60 RTC Real Time Counter e Pinos do JM60 Disciplina: Aplicações Avançadas de Microprocessadores (AAM) Profa. Eduardo Henrique Couto Tópicos da aula: Modos de baixo consumo; RTC; Pinos do JM60; Pinos I/O de

Leia mais

Interrupções 8051 Porta Serial

Interrupções 8051 Porta Serial Interrupções 8051 Porta Serial Disciplina de Microcontroladores Prof. Ronnier Prof. Rubão Finalidade Introduzir ao aluno a ideia de que se possa interromper o programa, de forma temporária, e desta vez

Leia mais