Вы находитесь на странице: 1из 632

V

e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

Copyright 2012 para Charles Borges de Lima e Marco Valrio Miorim Villaa.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
AGRADECMENTOS

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o


V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
O DSCPULO E O BALAO
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

xii
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
xiii
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

xiv
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
xv
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

xvi
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
xvii
PREFCO
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

xviii
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
xix
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

xx
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
1
1. NTRODUO
1.1 ATUALDADE
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

2
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
3
1.2 MCROPROCESSADORES
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

4

1
P/e//ne uma tcnica de hardware que permite a execuo em paralelo de operaes por part e da
CPU. As instrues so colocadas em um fila aguardando o moment o de sua execuo. Assim, pode-se
imaginar um si stema com regist radores organizados em cascat a e cujo funcionamento sincronizado
por um sinal de clock.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
5
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

6

2
Para um detalhamento completo ver: CARTER, Ni cholas, Camater Arch/tect are. 1 ed. New York:
McGraw Hil l, 2002.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
7
MULT 0,3 //multiplica o contedo do endereo 0 com o do endereo 2
//armazena o resultado no endereo 0.
LoAo A,0 //carrega o registrador A com o contedo do endereo 0
LoAo B,3 //carrega o registrador B com o contedo do endereo 2
MULT A,B //multiplica o contedo de A com o de B, o resultado fica em A
SToRE 0,A //armazena o valor de A no endereo 0
MoV P1,0xAA //escreve diretamente nos 8 pinos (P1) o valor binrio 10101010
LoAo A,0xAA //carrega o registrador A com o valor binrio 10101010
oUT P1,A //escreve o valor de A nos 8 pinos (P1)
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

8
1.3 TPOS DE MEMRAS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
9
1.4 MCROCONTROLADORES
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

10

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
11

Fabricante Stio na Internet Barram. FamIia Arquit. NcIeo
Analog
Device
www.analog.com 8 bits ADuC8xx CSC 8051
32 bits ADuC7xx RSC ARM7
32 bits ADuCRF101 RSC Cortex M3
Atmel www.atmel.com 8 bi ts AT89xx CSC 8051
8 bi ts AVR ( ATtiny - ATmega
- Xmega)
RSC AVR8
32 bits AT32xx RSC AVR32
32 bits SAM7xx RSC ARM7
32 bits SAM9xx RSC ARM9
32 bits SAM3xx RSC Cortex M3
Ci rrus
Logi c
www.ci rrus.com 32 bi ts EP73xx RSC ARM7
32 bits EP93xx RSC ARM9
Sil icon Labs www.si labs.com 8 bi ts C8051xx CSC 8051
Freescale www.freescal e.com 8 bits RS08xx CSC
8 bi ts HCS08xx CSC 6808
8 bi ts HC08xx - HC05 - HC11 CSC
16 bits S12x - HC12 - HC16 CSC
32 bits ColdFire CSC
32 bits 68K CSC 68000
32 bits K10-K70 RSC Cortex M4
32 bits MPC5xxx RSC Power Arch
32 bits PXxxx RSC Power Arch
Fuji tsu www.fujitsu.com 8 bi ts MB95xx CSC F
2
MC-8FX
16 bits MB90xx CSC F
2
MC-16FX
32 bits MB91xx RSC FR
32 bits FM3 RSC Cortex M3
Holtek www.hol tek.com 8 bi ts HT4x/5x/6x/8x/9x RSC
8 bi ts HT85F22x CSC 8051
32 bits HT32F125x RSC Cortex M3
nfineon www.infineon.com 8 bi ts C500 - XC800 CSC 8051
16 bits C116 - XC166 - XC2x00 CSC C116
32 bits TC11x RSC
TriCore Arch
Maxi m www.maxim-i c.com 8 bi ts DS 80/83/87/89xx CSC 8051
16 bits MAXQxx RSC MAXQ20
32 bits ZA9Lx RSC ARM9
32 bits MAXQxx RSC MAXQ30
32 bits USP RSC MPS 4kSD
Microchip www.mi crochip.com 8 bi ts PC 10/12/16/18 RSC
16 bits PC24 - dsPC RSC
32 bits PC32 RSC
M PS32 M4K
Nati onal
Semi c.
www.national .com 8 bi ts COP8 CSC COP8
NXP www.nxp.com 8 bi ts 80C51 CSC 8051
16 bits XA CSC
32 bits LPC 21/22/23/2400 RSC ARM7
32 bits LPC 29/31/3200 RSC ARM9
32 bits LPC 11/1200 RSC Cortex M0
32 bits LPC 13/17/1800 RSC Cortex M3
32 bits LPC 4300 RSC Cortex M4

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

12
Fabricante Stio na Internet Barram. FamIia Arquit. NcIeo
Renesas www.renesas.com 16 bits RL78 / 78k /R8C/M16C CSC
32 bits M32C - H8S- RX CSC
32 bits V850 - SuperH RSC SH
ST www.st.com 8 bi ts STM8 RSC STM8A
8 bi ts ST6/7 CSC
16 bits ST10 CSC
32 bits STR7 RSC ARM7
32 bits STR9 RSC ARM9
32 bits STM32F/W RSC Cortex M3
Texas
nstrument s
www.ti .com 16 bits MSP430 RSC
32 bits C2000 RSC
32 bits Stell aris ARM RSC Cortex M3
32 bits TMS570 RSC Cortex R4F
Toshi ba www.toshiba.com/taec 8 bi ts TMP 86/87/88/89xx CSC
16/32 bits TMP 91/92/93/94/95xx CSC
32 bits TMPA9xx RSC ARM9
32 bits TMPM3xx RSC Cortex M3
Zilog www.zi log.com 8 bi ts Z8xx/Z8Encore/eZ80xx CSC Z80
16 bits ZNEO (Z16xx) CSC
1.5 OS MCROCONTROLADORES AVR
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
13


3
Recentemente a ST Microelect roni cs lanou o STM8, um fort e concorrente, em termos de
desempenho, do AVR de 8 bi ts.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

14
1.6 A FAMLA AVR

4
Drystone um tipo de programa, chamado benchmark, desenvolvido para testar o desempenho de
processadores. O DMIPS obtido quando a pont uao obtida do Drystone dividi da por 1,757 (o
nmero de Drystone por segundo obtida de uma mqui na nominal de 1 MIPS - 1 Mi lho de Instrues
por Segundo).
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
15
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

16

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
17
2. O ATMEGA328

5
Os ATmega48/88/168/ 328 so i dnti cos com diferenas suti s, pri ncipalmente na quantidade de
memria di sponvel . A Atmel di sponibili za um nico manual para eles.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

18

6
Baat /aader um pequeno programa que pode ser escrit o no incio ou no final da memria de
programa e serve para que o microcontrolador gerencie a gravao de sua memri a. Para tal ,
necessrio uma interface de comunicao ext erna com o software de desenvolvimento. No AVR o
espao destinado ao boot loader fica no final da memri a de programa e a comunicao se d atravs
de um dos seus perifricos de comunicao, a USART.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
19
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

20
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
21
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

22
2.1 AS MEMRAS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
23

7
Li teralmente, a memri a SRAM no pode ser denominada memria de dados ou memri a de I/ O da
CPU, pois ela projetada para armazenar variveis temporrias do programa e no os regist radores de
I/O que possuem endereo fixo.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

24
End. Nome Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0x23 PINB P NB7 P NB6 PNB5 P NB4 P NB3 PNB2 P NB1 PNB0
0x24 DDRB DDB7 DDB6 DDB5 DDB4 DDB3 DDB2 DDB1 DDB0
0x25
PORTB
PORTB7 PORTB6 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0
0x26 PI NC - P NC6 P NC5 P NC4 P NC3 P NC2 P NC1 P NC0
0x27 DDRC - DDC6 DDC5 DDC4 DDC3 DDC2 DDC1 DDC0
0x28 PORTC - PORTC6 PORTC5 PORTC4 PORTC3 PORTC2 PORTC1 PORTC0
0x29
PI ND
P ND7 P ND6 PND5 P ND4 PND3 P ND2 P ND1 PND0
0x2A DDRD DDD7 DDD6 DDD5 DDD4 DDD3 DDD2 DDD1 DDD0
0x2B PORTD PORTD7 PORTD6 PORTD5 PORTD4 PORTD3 PORTD2 PORTD1 PORTD0
0x35 TIF R0 - - - - - OCF0B OCF0A TOV0
0x36
TIF R1
- - CF1 - - OCF1B OCF1A TOV1
0x37 TIF R2 - - - - - OCF2B OCF2A TOV2
0x3B PCI FR - - - - - PCF2 PCF1 PC F0
0x3C EI FR - - - - - - NTF1 NTF0
0x3D EI MSK - - - - - - NT1 NT0
0x3E GPI OR0 Registrador de /O de propsi to geral 0
0x3F EECR - - EEPM1 EEPM0 EER E EEMPE EEPE EERE
0x40 EEDR Registrador de dados da EEPROM
0x41 EEARL Byte menor do registrador de endereo da EEPROM
0x42 EEARH Byte mai or do regi strador de endereo da EEPROM
0x43 GTCCR TSM - - - - - PSRASY PSRSYNC
0x44 TCCR0A COM0A1 COM0A0 COM0B1 COM0B0 - - WGM01 WGM00
0x45 TCCR0B FOC0A FOC0B - - WGM02 CS02 CS01 CS00
0x46
TCNT0
Temporizador/Cont ador 0 (8 bit s) - Regi strador de cont agem
0x47 OCR0A Registrador de comparao de sa da A do Tempori zador/Cont ador 0
0x48 OCR0B Registrador de comparao de sa da B do Tempori zador/Cont ador 0
0x4A GPIOR1 Registrador de /O de propsi to geral 1
0x4B
GPI OR2
Registrador de /O de propsi to geral 2
0x4C SPCR SPE SPE DORD MSTR CPOL CPHA SPR1 SPR0
0x4D SPSR SPF WCOL - - - - - SP2X
0x4E SPDR Registrador de dados da SP
0x50 ACSR ACD ACBG ACO AC ACE ACC ACS1 ACS0
0x53 SMCR - - - - SM2 SM1 SM0 SE
0x54 MCUSR - - - - WDRF BORF EXTRF PORF
0x55
MCUCR
- BODS BODSE PUD - - VSEL VCE
0x57 SPMCSR SPME RWWSB - RWWSRE BLBSET PGWRT PGERS
SELFPRGEN
0x5D SPL SP7 SP6 SP5 SP4 SP3 SP2 SP1 SP0
0x5E SPH - - - - - SP10 SP9 SP8
0x5F SREG T H S V N Z C
0x60 WDT CSR WD F WD E WDP3 WDCE WDE WDP2 WDP1 WDP0
0x61 CLKPR CLKPCE - - - CLKPS3 CLKPS2 CLKPS1 CLKPS0
0x64 PRR PRTW PRT M2 PRT M0 - PRT M1 PRSP
PRUSART0
PRADC
0x66 OSCCAL Registrador de cal ibrao do oscilador
0x68 PCICR - - - - - PCE2 PCE1 PCE0
0x69 EI CRA - - - - SC11 SC10 SC01 SC00
0x6B PCMSK0 PCNT7 PCNT6 PCNT5 PCNT4 PCNT3 PCNT2 PCNT1 PCNT0
0x6C PCMSK1 - PC NT 14 PCNT13 PCNT12 PC NT11 PCNT10 PCNT9 PCNT8
0x6D PCMSK2 PCNT23 PCNT22 PCNT21 PCNT20 PCNT19 PCNT18 PCNT17 PCNT16
0x6E TI MSK0 - - - - - OC E0B OC E0A TO E0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
25
End. Nome Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0x6F TI MSK1 - - CE1 - - OCE1B OCE1A TOE1
0x70 TI MSK2 - - - - - OC E2B OC E2A TO E2
0x78 ADCL Registrador de dados do ADC, byte menor
0x79
ADCH
Registrador de dados do ADC, byte maior
0x7A ADCSRA ADEN ADSC ADATE ADF ADE ADPS2 ADPS1 ADPS0
0x7B ADCSRB - ACME - - - ADTS2 ADTS1 ADTS0
0x7C ADMUX REFS1 REFS0 ADLAR - MUX3 MUX2 MUX1 MUX0
0x7E DIDR0
- - ADC5D ADC4D ADC3D ADC2D ADC1D ADC0D
0x7F DIDR1 - - - - - - A N1D A N0D
0x80 TCCR1A COM1A1 COM1A0 COM1B1 COM1B0 - - WGM11 WGM10
0x81 TCCR1B CNC1 CES1 - WGM13 WGM12 CS12 CS11 CS10
0x82
TCCR1C
FOC1A FOC1B - - - - - -
0x84 TCNT1L Temporizador/Cont ador 1 (16 bits) - Registrador de contagem do byt e menor
0x85 TCNT1H Temporizador/Cont ador 1 (16 bits) - Registrador de contagem do byt e maior
0x86 ICR1L Temporizador/Cont ador 1 (16 bits) - Registrador de captura de ent rada, byte menor
0x87 ICR1H Temporizador/Cont ador 1 (16 bits) - Registrador de captura de ent rada, byte mai or
0x88 OCR1AL Temporizador/Cont ador 1 (16 bits) - Registrador da sa da de comparao A, byte menor
0x89 OCR1AH Temporizador/Cont ador 1 (16 bits) - Registrador da sa da de comparao A, byte maior
0x8A OCR1BL Temporizador/Cont ador 1 (16 bits) - Registrador da sa da de comparao B, byte menor
0x8B OCR1BH Temporizador/Cont ador 1 (16 bits) - Registrador da sa da de comparao B, byte maior
0xB0 TCCR2A COM2A1 COM2A0 COM2B1 COM2B0 - - WGM21 WGM20
0xB1 TCCR2B FOC2A FOC2B - - WGM22 CS22 CS21 CS20
0xB2 TCNT2 Temporizador/Cont ador 2 (8 bit s) - Regi strador de cont agem
0xB3 OCR2A Temporizador/Cont ador 2 (8 bit s) - Regi strador da sada de comparao A
0xB4 OCR2B Temporizador/Cont ador 2 (8 bit s) - Regi strador da sada de comparao B
0xB6 ASSR - EXCLK AS2 TCN2UB
OCR2AUB OCR2BUB
TCR2AUB TCR2BUB
0xB8 TWBR Registrador da t axa de bits da interface serial a dois fios - TW
0xB9 TWSR TWS7 TWS6 TWS5 TWS4 TWS3 - TWPS1 TWPS0
0xBA TWAR TWA6 TWA5 TWA4 TWA3 TWA2 TWA1 TWA0 TWGCE
0xBB TWDR Registrador de dados da interface serial a dois fios - TW
0xBC TWCR TWNT TWEA TWSTA TWSTO TWWC TWEN - TWE
0xBD TWAMR TWAM6 TWAM5 TWAM4 TWAM3 TWAM2 TWAM1 TWAM0 -
0xC0 UCSR0A
RXC0 TXC0 UDRE0 FE0 DOR0 UPE0 U2X0 MPCM0
0xC1 UCSR0B RXC E0 TXC E0 UDRE0 RXEN0 TXEN0 UCSZ02 RXB80 TXB80
0xC2 UCSR0C UMSEL01 UMSEL00 UPM01 UPM00 USBS0
UCSZ01
/UDORD0
UCSZ00 /
UCPHA0
UCPOL0
0xC4 UBRR0L Registrador da t axa de transmisso da USART, byt e menor
0xC5 UBRR0H - - - -
Registr ador da ta xa de t ransmisso da USART, b yte maior
0xC6 UDR0 Registrador /O de dados da USART
* Os endereos que no aparecem so reservados e foram suprimidos para no ocupar espao na tabela, em negrito os que
os seguem.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

26
2.1.1 O REGSTRADOR DE STATUS - SREG

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
27
Bit 7 6 5 4 3 2 1 0
SREG T H S V N Z C
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0

8
Um nibble = 4 bi ts, dois nibbles = 1 byt e.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

28
2.1.2 O STACK PONTER
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
29
Instruo Stack Pointer Descrio
PUSH
Decrementa 1 Um dado colocado na pilha (1 byte).
CALL
ICALL
RCALL
Decrementa 2 O endereo de retorno colocado na pilha quando uma chamada
de sub-rotina ou interrupo acontece (o endereo possui 2 bytes).
POP ncrementa 1 O dado do topo da pilha e retirado (1 byte).
RET
RETI
ncrementa 2 O endereo de retorno retirado da pilha quando se retorna de
uma sub-rotina ou interrupo (o endereo possui 2 bytes).
Bit 15 14 13 12 11 10 9 8
SPH - - - - SP11 SP10 SP9 SP8
SPL SP7 SP6 SP5 SP4 SP3 SP2 SP1 SP0
Bit 7 6 5 4 3 2 1 0
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial - - - - 1 0 0 0
1 1 1 1 1 1 1 1
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

30
2.2 DESCRO DOS PNOS
PI NOS DE ALIMENTAO
VCC
Tenso de alimentao.
AVCC
Pino para a tenso de alimentao do conversor AD. Deve ser externamente
conectado ao VCC, mesmo se o ADC no estiver sendo utilizado.
AREF
Pino para a tenso de ref erncia analgica do conversor AD.
GND
Terra.

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
31
PORTB
PB0
CP1 - entrada de captura para o Temporizador/Contador 1.
CLKO - sada de clock do sistema.
PCNT0 - interrupo 0 por mudana no pino.
PB1
OC1A - sada da igualdade de comparao A do Temporizador/Contador 1 (PWM).
PCNT1 - interrupo 1 por mudana no pino.
PB2
SS - pino de seleo de escravo da SP (Serial Peripheral Interface).
OC1B - sada da igualdade de comparao B do Temporizador/Contador 1 (PWM).
PCNT2 - interrupo 2 por mudana no pino.
PB3
MOS - pino mestre de sada e escravo de entrada da SP.
OC2A - sada da igualdade de comparao A do Temporizador/Contador 2 (PWM).
PCNT3 - interrupo 3 por mudana no pino.
PB4
MSO - pino mestre de entrada e escravo de sada da SP.
PCNT4 - interrupo 4 por mudana no pino.
PB5
SCK - pino de clock da SP.
PCNT5 - interrupo 5 por mudana no pino.
PB6
XTAL1 - entrada 1 do oscilador ou entrada de clock externa.
TOSC1 - entrada 1 para o oscilador do temporizador (RTC).
PCNT6 - interrupo 6 por mudana no pino.
PB7
XTAL2 - entrada 2 do oscilador.
TOSC2 - entrada 2 para o oscilador do temporizador (RTC).
PCNT7 - interrupo 7 por mudana no pino.
PORTC
PC0
ADC0 - canal 0 de entrada do conversor AD.
PCNT8 - interrupo 8 por mudana no pino.
PC1
ADC1 - canal 1 de entrada do conversor AD.
PCNT9 - interrupo 9 por mudana no pino.
PC2
ADC2 - canal 2 de entrada do conversor AD.
PCNT10 - interrupo 10 por mudana no pino.
PC3
ADC3 - canal 3 de entrada do conversor AD.
PCNT11 - interrupo 11 por mudana no pino.
PC4
ADC4 - canal 4 de entrada do conversor AD.
SDA - entrada e sada de dados da interface a 2 fios (TW - 2C).
PCNT12 - interrupo 12 por mudana no pino.
PC5
ADC5 - canal 5 de entrada do conversor AD.
SCL - clock da interface a 2 fios (TW - 2C).
PCNT13 - interrupo 13 por mudana no pino.
PC6
RESET - pino de inicializao.
PCNT14 - interrupo 14 por mudana no pino.

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

32
PORTD
PD0
RXD - pino de entrada (leitura) da USART.
PCNT16 - interrupo 16 por mudana no pino.
PD1
TXD - pino de sada (escrita) da USART.
PCNT17 - interrupo 17 por mudana no pino.
PD2
NT0 - entrada da interrupo ext erna 0.
PCNT18 - interrupo 18 por mudana no pino.
PD3
NT1 - entrada da interrupo ext erna 1.
OC2B - sada da igualdade de comparao B do Tempor izador/Contador 2 (PWM)
PCNT19 - interrupo 19 por mudana no pino.
PD4
XCK - clock externo de entrada e sada da USART.
T0 - entrada de contagem externa para o Temporizador/Contador 0.
PCNT 20 - interrupo 20 por mudana no pino.
PD5
T1 - entrada de contagem externa para o Temporizador/Contador 1.
OC0B - sada da igualdade de comparao B do Tempor izador/Contador 0 (PWM).
PCNT 21 - interrupo 21 por mudana no pino.
PD6
AN0 - entrada positiva do comparador analgico.
OC0A - sada da igualdade de comparao A do Tempor izador/Contador 0 (PWM).
PCNT 22 - interrupo 22 por mudana no pino.
PD7
AN1 - entrada negativa do comparador analgico.
PCNT 23 - interrupo 23 por mudana no pino.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
33
2.3 SSTEMA DE CLOCK
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

34
2.4 O RESET
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
35
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

36

9
Consultar o application not e do fabricant e, AVR042: AVR Hardware Design Considerations.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
37
2.5 GERENCAMENTO DE ENERGA E O MODO SLEEP
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

38
Si nais de clock ativos OsciIadores F ontes de wake-up (para 'despertar' )
Modos
SIeep
Idle X X X X X
2
X
3
X X X X X X
Reduo de
Ru do para o
ADC
X X X X
2
X
3
X X
2
X X X
Power-Down X
3
X X X
Power-Save X X
2
X
3
X X X X
St andby
1
X X
3
X X X
Extended
St andby
X
2
X X
2
X
3
X X X X

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
39
3. SOFTWARE E HARDWARE
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

40
3.1 A PLATAFORMA ARDUNO
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
41

10
Exist em vri os modelos de Arduinos, para maiores refernci as consult ar: www.arduino.cc.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

42
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
43
Arduino ATmega328 Arduino ATmega328 Arduino Atmega328
Analog In PORTC PORTD PORTB
A0 PC0 0 PD0 8 PB0
A1 PC1 1 PD1 9 PB1
A2 PC2 2 PD2 10 PB2
A3 PC3 3 PD3 11 PB3
A4 PC4 4 PD4 12 PB4
A5 PC5 5 PD5 13 PB5
6 PD6
7 PD7
3.2 CRANDO UM PROJETO NO AVR STUDO

11
Neste livro ut ilizado o AVR Studi o 5.1, que j instala t odas as ferrament as necessrias a
programao. Caso se ut ilize o AVR Studio 4 necessrio pri mei ro i nstal ar o WinAVR.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

44
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
45
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

46

12
O ato de compi lar gera um arquivo em assembl y. A gerao do arquivo *.hex ocorre no processo de
mont agem. Entretanto, neste li vro, dependendo do contexto, a palavra compilar pode ter sido
empregada como sinnimo para o processo completo de montagem.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
47
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

48
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
49
3.3 SMULANDO NO PROTEUS (SS)

13
O ISIS no apresenta os pinos de ali ment ao dos circui tos int egrados.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

50
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
51
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

52
3.4 GRAVANDO O ARDUNO
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
53
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

54
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
55
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

56
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
57
4. PROGRAMAO
14


14
Este captul o contou com a colaborao do prof. Leandro Schwarz.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

58
4.1 ALGORTMOS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
59
1. Zera o vetor oIGIToS; //DIGITOS[0]=0, DIGITOS[1]=0, DIGITOS[2]=0,
2. L o valor a ser convertido e salva em X;
3. Se X for maior gue 999 imprime erro e finaliza |passo 8), seno:
4. i = 0; //zera o contador auxiliar
5. oivide X por 10, guarda o resto em oIGIToS[i} e o inteiro em X;
6. i = i + 1; //incrementa o contador auxiliar
7. Se X for igual a zero, imprime oIGIToS e finaliza |passo 8), seno volta
ao passo 5.
8. Fim
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

60
4.1.1 ESTRUTURAS DOS ALGORTMOS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
61
PARA n oE 0 ATE 2 FAA //zera DIGITOS
DIGITOS[n]=0,
FIM_PARA
X = valor_conversao, //carrega o valor para converso em X
SE X>??? //se o valor for maior que ??? imprime erro e finaliza
Imprime Frro,
SENAo
i=0, //zera contador auxiliar
FAA
DIGITOS[i]=X%10, //divide X por 10 e guarda o resto em DIGITOS[i]
X=X/10, //salva em X o inteiro de X divido por 10
i=i+1, //incrementa o contador auxiliar
ENQUANTo X!=0 //enquanto X e diferente de zero repete o FAA
Imprime DIGITOS, //imprime o resultado
FIM_SE
FIM
4.2 FLUXOGRAMAS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

62
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
63
4.3 MQUNA DE ESTADOS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

64
4.4 O ASSEMBLY

15
Lembrar que todo mi crocont rolador um microprocessador, ver captulo 1.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
65
//PROGRAMA PARA PISCAR UM LFD LIGADO AO PINO PB5 DO ATMFGA228
.equ LFD = PB5 //LFD e o substituto de PB0 na programao
.ORG 0x000 //endereo na memoria flash de inicio de escrita do codigo
INICIO:
LoI R16,0xFF //carrega R16 com o valor 0xFF
oUT DDRB,R16 //configura todos os pinos do PORTB como saida
PRINCIPAL:
SBI PORTB,LFD //coloca o pino PB0 em 5 V
RCALL ATRASO //chama a sub-rotina de atraso
CBI PORTB,LFD //coloca o pino PB0 em 0 V
RCALL ATRASO //chama a sub-rotina de atraso
RJMP PRINCIPAL //vai para PRINCIPAL


16
Aps a inicializao do microcontrolador, os valores dos regi stradores de trabalho R0: R31 so
desconheci dos. Aqui, foram considerados zero para a simpli ficao do programa. Se necessrio, o
programador deve i nici ali z-l os.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

66
ATRASO: //sub-rotina de atraso
LoI R1?,0x02 //carrega R1? com o valor 0x02
volta:
oEC R17 //decrementa R17, comea com 0x00
BRNE volta //enquanto R17 > 0 fica decrementando R17
oEC R18 //decrementa R18, comea com 0x00
BRNE volta //enquanto R18 >0 volta a decrementar R18
oEC R1? //decrementa R1?
BRNE volta //enquanto R1? >0 vai para volta
RET //retorna da sub-rotina
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
67
4.5 PROGRAMAO C
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

68
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
69
4.5.1 NTRODUO
for(,,)
{
if(!tst_bit(PINB,BOTAO))
{
if(valor==0xF)
valor=0,
else
valor++,
DISPLAY = Tabela[valor],
_dela_ms(250),
}}
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

70
for(,,)
{
if(!tst_bit(PINB,BOTAO))
{
if(valor == 0xF)
valor = 0,
else
valor++,
DISPLAY = Tabela[valor],
_dela_ms(250),
}
}
int media, //uma varivel
int Media, //outra varivel
int MFDIA, //uma terceira varivel
int MeDiA, //varivel completamente diferente

17
O nmero de pal avras reservadas do padro ANSI C (C89)/C90 foi ampliada na verso ISO C (C99)
com o acrscimo de cinco palavras: _Bool, _Imaginary, _Complex, inline e restrict. Como o padro
C99 no completament e implementado em t odas as verses de compiladores, o C90 ser o padro
abordado nest e li vro.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
71
auto break case char
const continue default do
double else enum extern
float for goto if
int long register return
short signed sizeof static
struct switch typedef union
unsigned void volatile while
double pi, //declara a varivel pi
pi = 2.14, //atribui o valor do pi para a varivel pi

// Fste e um comentrio de apenas uma linha
/* Fste e um comentrio de mltiplas linhas,
o que permite escrever grandes quantidades
de texto, podendo-se explicar trechos complicados
do codigo ou especificar coisas que faltam ser
feitas */
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

72
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
73
DecIarao Bytes Variao
char 1 -128 a 127
int
*
2 -32.768 a 32. 767
float 4 1,2 x 10
-38
a 3, 4 x 10
+38
double 8 2,2 x 10
-308
a 1, 8 x 10
+308
DecIarao Bytes Variao
signed char 1 -128 a 127
unsigned char 1 0 a 255
short 2 -32. 768 a 32.767
short int
2 -32. 768 a 32.767
signed int 2 -32. 768 a 32.767
signed short 2 -32. 768 a 32.767
signed short int
2 -32. 768 a 32.767
unsigned int 2 0 a 65.535
unsigned short 2 0 a 65.535
unsigned short int
2 0 a 65.535
long 4 -2.147. 438.648 a 2.147.438.647
long int 4 -2.147. 438.648 a 2.147.438.647
signed long
4 -2.147. 438.648 a 2.147.438.647
signed long int 4 -2.147. 438.648 a 2.147.438.647
unsigned long 4 0 a 4.294. 967.295
unsigned long int
4 0 a 4.294. 967.295
long double
*
8 2, 2 x 10
-308
a 1, 8 x 10
+308
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

74
unsigned char a, b, resultado,
...
resultado = a + b,
float a = 6.7,
int b,
...
b = (int)a, //b ter o valor 6.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
75
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

76
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
77
Operador
Nome do
Operador
Funo Prece-
dncia
Associa-
tivi dade
| ) Priorizador de
operao.
Prioriza uma operao. Tambm
utilizado em funes.
1 esq. p/ dir.
[ } Elemento de matriz ndica um elemento de uma matriz
-> Ponteiro para
elemento de
estrutura
Retorna um elemento da estrutura
ou unio.
. Membro de estrutura Retorna um elemento da estrutura
ou unio.
! Negao lgica Retorna verdadeiro caso o
operando seja falso.
2 dir. p/ esq.
~ Complemento de um nverte todos os bits do operando.
++ ncremento Soma um ao operando.
--
Decremento Diminui um do operando.
- Menos unrio Retorna o operando negativo.
*
Unrio: ponteiro Retorna o valor do operando que
contm um endereo.
a Endereo (ponteiro) Retorna o endereo do operando
(varivel ou nome de funo).
sizeof
Tamanho do objeto Retorna o nmero de bytes do
operando na memria do sistema.
* Multiplicao Multiplica dois operandos.
3 esq. p/ dir.
/ Diviso Divide dois operandos.
Resto da diviso Retorna o resto da diviso entre
dois operandos inteiros.
+ Adio Adiciona dois operandos.
4 esq. p/ dir.
- Subtrao Subtrai dois operandos.
<<
Deslocamento
esquerda
Desloca os bits do operando x bits
esquerda.
5 esq. p/ dir.
>> Deslocamento
direita
Desloca os bits do operando x bits
direita.
< Menor que Retorna verdadeiro se o operando
da esquerda for menor que o
operando da direita.
6 esq. p/ dir.
<= Menor ou igual a Retorna verdadeiro se o operando
da esquerda for menor ou igual ao
operando da direita.
> Maior que Retorna verdadeiro se o operando
da esquerda for maior que o
operando da direita.
>= Maior ou igual a Retorna verdadeiro se o operando
da esquerda for maior ou igual ao
operando da direita.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

78
Operador
Nome do
Operador
Funo Prece-
dncia
Associa-
tivi dade.
== gualdade Retorna verdadeiro se o operando da
esquerda e da direita forem iguais.
7 esq. p/ dir.
!=
Desigualdade Retorna verdadeiro se o operando da
esquerda e da direita forem
diferentes.
a AND, bit a bit Lgica E entre os bits dos
operandos.
8 esq. p/ dir.
^ XOR, bit a bit Lgica OU EXCLUSVO entre os bits
dos operandos.
9 esq. p/ dir.
[ OR, bit a bit Lgica OU entre os bits dos
operandos.
10 esq. p/ dir.
aa AND lgico Retorna verdadeiro caso ambos os
operandos sejam verdadeiros.
11 esq. p/ dir.
[[ OR lgico Retorna verdadeiro caso um dos
operandos seja verdadeiro ou
ambos.
12 esq. p/ dir.
? Condicional Avalia a primeira expresso, caso
seja verdadeira, retorna o resultado
da segunda expresso. Sendo falsa
retorna o resultado da terceira.
13 dir. p/ esq.
= Atribuio O operando da esquerda recebe o
valor do operando da direita ou o
resultado de uma expresso.
14 dir. p/ esq.
, Vrgula (para
encadeamento de
expresses)
Realiza uma sequncia de
operaes dentro de uma atribuio 15 esq. p/ dir.
Forma compacta Forma normaI
a += b a = a + b
a -= b a = a - b
a *= b a = a * b
a /= b a = a / b
a %= b a = a % b
a := b a = a : b
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
79
Forma compacta Forma normaI
a |= b a = a | b
a ^= b a = a ^ b
a <<= b a = a << b
a >>= b a = a >> b
a = a + 1, => a++, ++a,
b = b 1, => b, b,
a = 2,
b = ++a;
b = 2 b = a++ b = 2 a
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

80
1 incluso de arquivos externos (bibliotecas de funes,
declaraes, dados).
2 definies de nomes e macros (para facilitar a escrita do
codigo).
2 declarao de variveis globais (disponiveis para qualquer
parte do programa).
4 declarao de prototipos de funes (declarao das
funes desenvolvidas).
5 programa principal - main|) (pode chamar uma ou mais
funes).
6 funes (podem ser escritas abaixo do main|) caso
declaradas antes dele).
void main()
{
while(1)
{
...
}
}
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
81
4.5.2 ESTRUTURAS CONDCONAS
if(<condio>)
{
<instrues>
}
else
{
<instrues>
}
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

82
if(<condio 1>)
{
if(<condio 2>)
{
<instrues>
}
else
{
<instrues>
}
}
else
{
if(<condio 2>)
{
<instrues>
}
else
{
<instrues>
}
}
if (x > )
max = x,
else
max = ,
max = x > ? x : ,

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
83
switch(<varivel>)
{
case <condio 1>: <instrues>
break,
case <condio 2>: <instrues>
break,
...
case <condio n>: <instrues>
break,
default: <instrues padro>
break,
}
4.5.3 ESTRUTURAS DE REPETO
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

84
while(<condio>)
{
<instrues>
}
while(1) //repete infinitamente
{
<instrues>
}
int numero = 0,
while(numero < 10) //repete 10 vezes
{
<instrues>
numero++,
}

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
85
do
{
<instrues>
}while(<condio>),//e necessrio o ponto e virgula aqui
for(<condio inicial>,<condio de parada>,<incremento de passo>)
{
<instrues>
}
int numero = 14,
int x,
for(x = 0,x < numero,x++) //x entre 0 e nmero
{
<instrues>
}
for( ,x < 50,x++) //x entre nmero e 50
{
<instrues>
}
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

86
int numero = 14,
int x,
for(x = 0, ,x++) //lao condicional
{
if(numero == x)
break,
<instrues>
}
int numero = 14,
int x,
for( ,x < numero, ) //lao condicional
{
if(numero == x)
break,
<instrues para modificar x>
}
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
87
<instrues 1>
repetir: //rotulo
<instrues 2>
if(<condio>)
goto repetir; //salto
4.5.4 DRETVAS DE PR-COMPLAO
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

88
#include <nome_do_arquivo.extenso>
#include nome_do_arquivo.extenso
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
89
#define nome_do_simbolo
#define nome_da_constante seu_valor
#define nome_da_macro(parmetros) expressao_equivalente
#undef nome_do_simbolo
#undef nome_da_constante
#undef nome_da_macro
#if expresso
codigo
#endif
#if expresso
codigo 1
#else
codigo 2
#endif
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

90
#if expresso 1
codigo 1
#elif expresso 2
codigo 2
#elif expresso 2
codigo 2
#else
codigo final
#endif
#ifdef simbolo
codigo
#endif
#ifndef simbolo
codigo
#endif
// Arquivo cabecalho.h
#ifndef CABFCALHO_H
#define CABFCALHO_H
codigo
#endif
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
91
4.5.5 PONTEROS
tipo *nome_ponteiro,
unsigned char *dados,
a = *dados, //a tem o valor do contedo dados apontado pelo ponteiro.
b = :dados, //b tem o valor do endereo da varivel dados.
4.5.6 VETORES E MATRZES

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

92
char teste[10], //aloca 10 posies de memoria char
char teste[ ]= Uma string, //inicializa a varivel de uma so vez
char teste[10]={U, m, a, , s, t, r, i, n, g},
//inicializa a varivel individualmente por posio.
int teste[2][4], //aloca 12 posies int da memoria
//inicializao da matriz
int teste[2][4]={{0xADFC, 0x0001, 0x245B, 0x102?},
{0xA88C, 0x0021, 0x0CB1, 0x122?},
{0x?80C, 0x1001, 0x2FDB, 0xAAAA}},
4.5.7 ESTRUTURAS
struct nome_estrutura //nome_estrutura ou variaveis_estrutura pode
{ //ser omitido (um ou outro)
tipo variavel_1,
tipo variavel_2,
...
tipo variavel_N,
}variaveis_estrutura,
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
93
struct cadastro
{
char nome[20],
char cidade[15],
unsigned char senha[2],
unsigned long int CFP,
}dados[20],//20 variveis dados com a estrutura cadastro

dados[0].nome = Fulano numero zero ,
dados[0].cidade = Florianopolis ,
dados[0].senha[0]=2,
dados[0].senha[1]=8,
dados[0].senha[2]=1,
dados[0].CFP = 88000,
4.5.8 FUNES
tipo_variavel_retorno nome_funcao(variveis de entrada)
{
comandos,
...
}
void atraso(int repet) //a funo recebe o nr. de repeties
{
for(unsigned int i=0, i<repet, i++), //executa o lao for
//repet vezes
}
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

94
float Fahr2Cels(float F) //converte uma valor de temperatura de
{ //Fahrenheit para graus Celsius
float C,
C = (F-22)/1.8,
return (C),
}
float valor, temp,
...
//declarao das funes empregadas
float leitura_sensor(),
float Fahr2Cels(float F),
...
void main()
{
valor = leitura_sensor(), //Fm algum lugar do programa existe uma
//funo que le um determinado sensor de
//temperatura e retorna o seu valor em
//Fahrenheit.
temp = Fahr2Cels(valor), //Converte o valor lido para graus Celsius e
//o escreve em temp.
... //O programa segue.
}
float leitura_sensor()
{
//aqui vai o codigo para a leitura do sensor
return (temp_F),
}
float Fahr2Cels(float F)
{
//aqui vai o codigo para a converso de unidades
return (C),
}
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
95
4.5.9 O MPORTANTSSMO TRABALHO COM BTS
DecimaI HexadecimaI Binri o
Bit 3
(MSB)
Bit 2 Bit 1 Bit 0
(LSB)
0 0x0 0b 0 0 0 0
1 0x1 0b 0 0 0 1
2 0x2 0b 0 0 1 0
3 0x3 0b 0 0 1 1
4 0x4 0b 0 1 0 0
5 0x5 0b 0 1 0 1
6 0x6 0b 0 1 1 0
7 0x7 0b 0 1 1 1
8 0x8 0b 1 0 0 0
9 0x9 0b 1 0 0 1
10 0xA 0b 1 0 1 0
11 0xB 0b 1 0 1 1
12 0xC 0b 1 1 0 0
13 0xD 0b 1 1 0 1
14 0xE 0b 1 1 1 0
15 0xF 0b 1 1 1 1
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

96
0x A 8
0b 1 0 1 0 1 0 0 0
0x F 0
0b 1 1 1 1 0 0 0 0
0x C 5
0b 1 1 0 0 0 1 0 1
MSB LSB
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
PORTD PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0
0b 1 0 1 0 1 0 0 0
0x A 8
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
97

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

98

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
99

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

100
if while
if(tst_bit(PIND,4))
{
Ao a ser executada se o pino PD4 estiver em 1 logico.
}
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
101
4.5.10 PRODUZNDO UM CDGO EFCENTE

18
Application not e: AVR035: Effi cient C Coding for AVR. Recomenda-se fortemente a sua lei tura.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

102
4.5.11 ESTRUTURAO E ORGANZAO DO PROGRAMA

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
103
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

104

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
105
5. PORTAS DE ENTRADA E SADA (/Os)

19
SBI = at iva um bit (col oca em 1). CBI = limpa um bit (coloca em 0).
20
Sempre que possvel deve-se utilizar a menor corrente. importante consul tar o manual do
fabricant e para a observao das caracterst icas elt ri cas do microcontrolador.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

106

21
Se algum pino no for uti lizado recomendado que o seu nvel lgico seja definido. Entradas com
nvel flut uante devem ser evi tadas para evi tar o consumo de corrente quando o pino no est iver sendo
empregado. Neste caso a Atmel recomenda a habili tao do pull -up (para maiores det alhes ver o
manual do fabri cante).
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
107
DDXn
*
PORTXn PUD
(no MCUCR)
I/ O PuII -
up
Comentri o
0 0 x Entrada No Alta impedncia (Hi-Z).
0 1 0 Entrada Sim
PXn ir f ornecer corrente se
ext ernamente for colocado
em nvel lgico 0.
0 1 1 Entrada No Alta impedncia (Hi-Z).
1 0 x Sada No
Sada em zero (drena
corrente).
1 1 x Sada No
Sada em nvel alto (f ornece
corrente).

*
X = B, C ou D; n = 0, 1, ... ou 7.
5.1 ROTNAS SMPLES DE ATRASO
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

108
.

22
Aps a inicializao do ATmega os valores dos registradores R0:R31 so indetermi nados, considera-
se zero para a si mplificao do programa. Caso seja necessrio que os registradores tenham um valor
conhecido, eles devem ser inicializados. Uma vez executada a sub-rotina de atraso e considerando-se
que os registradores empregados nela no so usados em outras partes do programa, eles sempre
estaro inicialment e em zero. Na dvida, os regist radores sempre devem ser inicial izados.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
109
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

110
for
unsigned int i, j;
for|i=256; i!=0; i--)
{
for|j=65535; j!=0; j--);
}
5.2 LGANDO UM LED
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
111

23
Ver nota de rodap de nmero 12 na pgina 46.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

112
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
113

24
Como o Arduino utili za um programa de boot l oader, ele emprega os pinos TXD e RXD para a
gravao da memria de programa (pinos PD0 e PD1). Quando no se uti liza a IDE do Arduino para a
gravao, esse pi nos devem ser configurados explicitamente pelo programador para serem pinos de I/O
genricos, caso contrrio os pinos no se comportaro como esperado (configurao default). Em C
necessrio acrescentar a segui nte linha de cdigo: UCSR0B = 0x00; //desabi lita RXD e TXD.
Importante: quando se grava o Arduino, os pinos 0 e 1 (PD0 e PD1) no devem est ar conect ados a
nenhum ci rcuito, caso cont rrio, poder haver erro de gravao. Se algum shield util izar os referidos
pinos, aconselhvel gravar pri mei ro o Ardui no e somente depois conect-l o.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

114

5.3 LENDO UM BOTO (CHAVE TCTL)
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
115
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

116
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
117
BOT O
LED1
NCALZAO DO
MCROCONTROLADOR
BOTO
PRESSONADO?
BOTO
SOLTO?
LED LGADO?
LGA LED
DESLGA LED
SM
NO
NO
NO
SM
SM
ATRASO
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

118
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
119
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

120
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
121
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

122
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
123
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

124
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
125
5.4 ACONANDO DSPLAYS DE 7 SEGMENTOS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

126
Dgito Anodo comum Catodo comum
gfedcba gfedcba
0 0b1000000 0x40 0b0111111 0x3F
1 0b1111001 0x79 0b0000110 0x06
2 0b0100100 0x24 0b1011011 0x5B
3 0b0110000 0x30 0b1001111 0x4F
4 0b0011001 0x19 0b1100110 0x66
5 0b0010010 0x12 0b1101101 0x6D
6 0b0000010 0x02 0b1111101 0x7D
7 0b1111000 0x78 0b0000111 0x07
8 0b0000000 0x00 0b1111111 0x7F
9 0b0011000 0x18 0b1100111 0x67
A 0b0001000 0x08 0b1110111 0x77
B 0b0000011 0x03 0b1111100 0x7C
C 0b1000110 0x46 0b0111001 0x39
D
0b0100001 0x21 0b1011110 0x5E
E 0b0000110 0x06 0b1111001 0x79
F 0b0001110 0x0E 0b1110001 0x71
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
127
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

128
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
129
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

130
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
131

25
Na verdade, criar um nmero puramente aleatrio difcil, o mais fcil um pseudoaleatrio. Neste
exerc cio, o objetivo no empregar as bibliot ecas padro do C. A i deia uti lizar o bot o para gerar o
evento de sort eio do nmero. Dessa forma, um contador pode ficar cont ando conti nuamente de 1 at 6
e, quando o boto for pressionado, um nmero da contagem ser seleci onado.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

132
5.5 ACONANDO LCDs 16 x 2
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
133
5.5.1 NTERFACE DE DADOS DE 8 BTS

26
Para uma melhor compreenso sobre o assunt o, consultar o manual do fabricant e do LCD
empregado.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

134
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
135
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

136
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
137
5.5.2 NTERFACE DE DADOS DE 4 BTS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

138

27
www. ekit szone.com. Existem out ros mdulos LCD disponveis no mercado, depende somente da
escolha do usuri o. Se desejado o circui to pode ser mont ado em uma mat riz de contatos.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
139
N C ALZAO LCD
HD44780 -4 BTS
ATRASO > 15 ms
RS R/W DB7 DB6 DB5 DB4
0 0 0 0 1 1
ATRASO > 4.1 ms
PULSO ENABLE
PULSO ENABLE
PULSO ENABLE
ATRASO > 100 us
F M
RS R/W DB7 DB6 DB5 DB4
0 0 0 0 1 0
PULSO ENABLE
RS R/ W DB7 DB6 DB5 DB4
0 0 0 0 1 0
PULSO ENABLE
RS R/ W DB7 DB6 DB5 DB4
0 0 N F * *
PULSO ENABLE
RS R/ W DB7 DB6 DB5 DB4
0 0 0 0 0 0
PULSO ENABLE
RS R/ W DB7 DB6 DB5 DB4
0 0 1 0 0 0
PULSO ENABLE
RS R/W DB7 DB6 DB5 DB4
0 0 0 0 0 0
PULSO ENABLE
RS R/W DB7 DB6 DB5 DB4
0 0 0 0 0 1
PULSO ENABLE
RS R/W DB7 DB6 DB5 DB4
0 0 0 0 0 0
PULSO ENABLE
RS R/W DB7 DB6 DB5 DB4
0 0 0 1 /D S
PULSO ENABLE

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

140
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
141

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

142
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
143
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

144
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
145
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

146
5.5.3 CRANDO NOVOS CARACTERES
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
147
Endereo base 0x40 0x48 0x50 0x58 0x60 0x68 0x70 0x78
Cdigo do caractere
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

148
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
149
5.5.4 NMEROS GRANDES
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

150
//==================================================================
unsigned char Nr_Grande[10][4] = {{0x01, 0x02, 0x4C, 0x00}, //nr. 0
{0x20, 0x7C, 0x20, 0x7C}, //nr. 1
{0x04, 0x05, 0x4C, 0x5F}, //nr. 2
{0x06, 0x05, 0x5F, 0x00}, //nr. 2
{0x4C, 0x00, 0x20, 0x02}, //nr. 4
{0x07, 0x04, 0x5F, 0x00}, //nr. 5
{0x07, 0x04, 0x4C, 0x00}, //nr. 5
{0x06, 0x02, 0x20, 0x02}, //nr. 7
{0x07, 0x05, 0x4C, 0x00}, //nr. 8
{0x07, 0x05, 0x20, 0x02}},//nr. ?
//==================================================================
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
151
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

152
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
153
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

154
5.6 ROTNAS DE DECODFCAO PARA USO EM
DSPLAYS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
155
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

156
//-------------------------------------------------------------------
// Decodificando um nmero decimal em seus digitos hexadecimais
//-------------------------------------------------------------------
unsigned char num = 112, //0x71
unsigned char digito1, digito0,
...
digito0 = num : 0b00001111, /*mascara os 4 bits mais
significativos, resultando no
primeiro digito (digito0 = 1)*/
digito1 = num >> 4, /*desloca o valor do nmero 4 bits
para a direita,
resultando no segundo digito (4 mais
significativos), digito1 = 7 */
...
//-------------------------------------------------------------------
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
157
6. NTERRUPES
6.1 NTERRUPES NO ATMEGA328
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

158
Vetor End. Fonte Definio da Interrupo Prioridade
1 0x00 RESET
Pino externo, Power-on Reset,
Brown-out Reset e Watchdog Reset
2 0x01 NT0 interrupo externa 0
3 0x02 NT1 interrupo externa 1
4 0x03 PCNT0 interrupo 0 por mudana de pino
5 0x04 PCNT1 interrupo 1 por mudana de pino
6 0x05 PCNT2 interrupo 2 por mudana de pino
7 0x06 WDT estouro do temporizador Watchdog
8 0x07 TMER2 COMPA igualdade de comparao A do TC2
9 0x08 TMER2 COMPB igualdade de comparao B do TC2
10 0x09 TMER2 OVF estouro do TC2
11 0x0A TMER1 CAPT evento de captura do TC1
12 0x0B TMER1 COMPA igualdade de comparao A do TC1
13 0x0C TMER1 COMPB igualdade de comparao B do TC1
14 0x0D TMER1 OVF estouro do TC1
15 0x0E TMER0 COMPA igualdade de comparao A do TC0
16 0x0F TMER0 COMPB igualdade de comparao B do TC0
17 0x10 TMER0 OVF estouro do TC0
18 0x11 SP, STC transferncia serial completa - SP
19 0x12 USART, RX USART, recepo completa
20 0x13 USART, UDRE
USART, limpeza do registrador de
dados
21 0x14 USART, TX USART, transmisso completa
22 0x15 ADC converso do ADC completa
23 0x16 EE_RDY EEPROM pronta
24 0x17 ANA_COMP comparador analgico
25 0x18 TW interface serial TW - 2C
26 0x19 SPM_RDY
armazenagem na memria de
programa pronta
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
159
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

160
Fndereo Codigo Comentrios
.ORG 0x00 ,diretiva do assembl para gravar
,o codigo abaixo no end. 0x00
0x00 RJMP INICIO ,desvia para o inicio do programa
0x01 RJMP FXT_INT0 ,interrup. externa 0
0x02 RJMP FXT_INT1 ,interrup. externa 1
0x02 RJMP PCINT0 ,interrup. 0 por mudana de pino
0x04 RJMP PCINT1 ,interrup. 1 por mudana de pino
0x05 RJMP PCINT2 ,interrup. 2 por mudana de pino
0x06 RJMP WDT ,estouro do temporizador Watchdog
0x07 RJMP TIM2_COMPA ,igualdade de comparao A do TC2
0x08 RJMP TIM2_COMPB ,igualdade de comparao B do TC2
0x0? RJMP TIM2_OVF ,estouro do TC2
0x0A RJMP TIM1_CAPT ,evento de captura do TC1
0x0B RJMP TIM1_COMPA ,igualdade de comparao A do TC1
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
161
0x0C RJMP TIM1_COMPB ,igualdade de comparao B do TC1
0x0D RJMP TIM1_OVF ,estouro do TC1
0x0F RJMP TIM0_COMPA ,igualdade de comparao A do TC0
0x0F RJMP TIM0_COMPB ,igualdade de comparao B do TC0
0x10 RJMP TIM0_OVF ,estouro do TC0
0x11 RJMP SPI_STC ,transferencia serial completa - SPI
0x12 RJMP USART_RX ,USART, recepo completa
0x12 RJMP USART_UDRF ,USART, limpeza do registr. de dados
0x14 RJMP USART_TX ,USART, transmisso completa
0x15 RJMP ADC ,converso do ADC completa
0x16 RJMP FF_RDY ,FFPROM pronta
0x17 RJMP ANA_COMP ,comparador analogico
0x18 RJMP TWI ,interface serial TWI
0x1? RJMP SPM_RDY ,memor. de armaz. de programa pronta
...
INICIO: ... ,codigo para o inicio, programa principal
FXT_INT0: ... ,codigo para a interrup. externa 0
...
Codigo (funo)

int main() {//aqui vai o programa principal }
ISR(INT0_vect) {//interrupo externa 0 }
ISR(INT1_vect) {//interrupo externa 1 }
ISR(PCINT0_vect) {//interrupo 0 por mudana de pino }
ISR(PCINT1_vect) {//interrupo 1 por mudana de pino }
ISR(PCINT2_vect) {//interrupo 2 por mudana de pino }
ISR(WDT_vect) {//estouro do temporizador Watchdog }
ISR(TIMFR2_COMPA_vect){//igualdade de comparao A do TC2 }
ISR(TIMFR2_COMPB_vect){//igualdade de comparao B do TC2 }
ISR(TIMFR2_OVF_vect) {//estouro do TC2} }
ISR(TIMFR1_CAPT_vect) {//evento de captura do TC1 }
ISR(TIMFR1_COMPA_vect){//igualdade de comparao A do TC1 }
ISR(TIMFR1_COMPB_vect){//igualdade de comparao B do TC1 }
ISR(TIMFR1_OVF_vect) {//estouro do TC1 }
ISR(TIMFR0_COMPA_vect){//igualdade de comparao A do TC0 }
ISR(TIMFR0_COMPB_vect){//igualdade de comparao B do TC0 }
ISR(TIMFR0_OVF_vect) {//estouro do TC0 }
ISR(SPI_STC_vect) {//transferencia serial completa - SPI }
ISR(USART_RX_vect) {//USART, recepo completa }
ISR(USART_UDRF_vect) {//USART, limpeza do registrador de dados }
ISR(USART_TX_vect) {//USART, transmisso completa }
ISR(ADC_vect) {//converso do ADC completa }
ISR(FF_RFADY_vect) {//FFPROM pronta }
ISR(ANALOG_COMP_vect) {//comparador analogico }
ISR(TWI_vect) {//interface serial TWI }
ISR(SPM_RFADY_vect) {//armazenagem na memoria de programa pronta }
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

162
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
163
6.2 NTERRUPES EXTERNAS
Bit 7 6 5 4 3 2 1 0
EICRA
- - - - SC11 SC10 SC01 SC00
L/Escreve L L L L L/E L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

164
ISC11 ISC10 Descrio
0 0
Um nvel baixo em NT1 gera um pedido de
int errupo.
0 1
Qualquer mudana lgica em NT1 gera um pedido
de int errupo.
1 0
Uma borda de decida em NT1 gera um pedido de
int errupo.
1 1
Uma borda de subida em NT1 gera um pedido de
int errupo.
ISC01 ISC00 Descrio
0 0
Um nvel baixo em NT0 gera um pedido de
int errupo.
0 1
Qualquer mudana lgica em NT0 gera um pedido
de int errupo.
1 0
Uma borda de decida em NT0 gera um pedido de
int errupo.
1 1
Uma borda de subida em NT0 gera um pedido de
int errupo.
Bit 7 6 5 4 3 2 1 0
EIMSK
- -
- - - - NT1 NT0
L/Escreve L L L L L L L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
Bit 7 6 5 4 3 2 1 0
EIFR - - - - - - NTF1 NTF0
L/Escreve L L L L L L L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
165
Bit 7 6 5 4 3 2 1 0
PCICR
- - - - - PCE2 PCE1 PCE0
L/Escreve L L L L L L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
Bit 7 6 5 4 3 2 1 0
PCIFR - - - - - PCF2 PCF1 PCF0
L/Escreve L L L L L L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
Bit 7 6 5 4 3 2 1 0
PCMSK0 PCNT7 PCNT6 PCNT5 PCNT4 PCNT3 PCNT2 PCNT1 PCNT0
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Val or nicial 0 0 0 0 0 0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

166
Bit 7 6 5 4 3 2 1 0
PCMSK1
-
PCNT14 PCNT13 PCNT12 PCNT11 PCNT10 PC NT 9 PCNT8
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Val or nicial 0 0 0 0 0 0 0 0
Bit 7 6 5 4 3 2 1 0
PCMSK2
PCNT23 PCNT22 PCNT21 PCNT20 PCNT19 PCNT18 PC NT17 PCNT16
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Val or nicial 0 0 0 0 0 0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
167
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

168
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
169
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

170
6.2.1 UMA NTERRUPO NTERROMPENDO OUTRA
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
171
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

172
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
173
7. GRAVANDO A EEPROM
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

174

28
A EEPROM possui um custo de fabricao caro comparado as out ras memri as do microcontrolador.
por isso que al guns mi crocont roladores de 32 bits conseguem competi r em preos com os 8 bits ao
no incorporar o processo de fabricao da EEPROM nos seus chi ps.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
175
FFPROM_escrita:
SBIC FFCR,FFPF ,espera completar um escrita previa
RJMP FFPROM_escrita
oUT FFARH, R18 ,escreve o end. (R18:R17) no registr. de end.
oUT FFARL, R17
oUT FFDR,R16 ,escreve o dado (R16) no registrador de dado
SBI FFCR,FFMPF ,escreve um logico em FFMPF
SBI FFCR,FFPF ,inicia a escrita colocando o bit FFPF em 1
RET
FFPROM_leitura:
SBIC FFCR,FFPF ,espera completar um escrita previa
RJMP FFPROM_leitura
oUT FFARH, R18 ,escreve o end.(R18:R17) no registr. de end.
oUT FFARL, R17
SBI FFCR,FFRF ,inicia leitura escrevendo em FFRF
IN R16,FFDR ,le dado do registrador de dados em R16
RET
void FFPROM_escrita(unsigned int uiFndereco, unsigned char ucDado)
{
while(FFCR : (1<<FFPF)), //espera completar um escrita previa
FFAR = uiFndereco, //carrega o endereo para a escrita
FFDR = ucDado, //carrega o dado a ser escrito
FFCR |= (1<<FFMPF), //escreve um logico em FFMPF
FFCR |= (1<<FFPF), //inicia a escrita ativando FFPF
}
unsigned char FFPROM_leitura(unsigned int uiFndereco)
{
while(FFCR : (1<<FFPF)),//espera completar um escrita previa
FFAR = uiFndereco, //escreve o endereo de leitura
FFCR |= (1<<FFRF), //inicia a leitura ativando FFRF
return FFDR, //retorna o valor lido do registrador de
//dados
}
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

176
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
177
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

178
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
179
8. TECLADO MATRCAL
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

180
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
181
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

182
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
183
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

184
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
185
9. TEMPORZADORES/CONTADORES
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

186
9.1 TEMPORZANDO E CONTANDO
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
187
9.2 MODULAO POR LARGURA DE PULSO - PWM
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

188
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
189
9.3 TEMPORZADOR/CONTADOR 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

190
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
191
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

192
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
193
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

194
9.3.1 REGSTRADORES DO TC0
Bit 7 6 5 4 3 2 1 0
TCCR0A
COM0A1 COM0A0 COM0B1 COM0B0 - - WGM01 WGM00
L/Escr. L/E L/E L/E L/E L L L/E L/E
Val or nic.
0 0 0 0 0 0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
195
COM0A1 COM0A0 Descri o
0 0 Operao normal do pino, OC0A desconectado.
0 1
Mudana do estado de OC0A na igualdade de
comparao.
1 0 OC0A limpo na igualdade de comparao.
1 1 OC0A ativo na igualdade de comparao.
COM0A1 COM0A0 Descri o
0 0 Operao normal do pino, OC0A desconectado.
0 1
WGM02 = 0: operao normal do pino, OC0A
desconect ado.
WGM02 = 1: t roca de estado do OC0A na
igualdade de comparao.
1 0
OC0A limpo na igualdade de comparao,
OC0A ativo no valor do TC mnimo (modo no
invert ido).
1 1
OC0A ativo na igualdade de comparao e
limpo no valor do TC mnimo (modo invertido).
COM0A1 COM0A0 Descrio
0 0 Operao normal do pino, OC0A desconectado.
0 1
WGM02 = 0: operao normal do pino, OC0A
desconect ado.
WGM02 = 1: t roca de estado do OC0A na igualdade de
comparao.
1 0
OC0A limpo na igualdade de comparao quando
a contagem crescente, e ativo na igualdade de
comparao quando a contagem decrescente.
1 1
OC0A ativo na igualdade de comparao quando a
contagem crescente, e limpo na igualdade de
comparao quando a contagem decrescente.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

196
COM0B1 COM0B0 Descrio
0 0 Operao normal do pino, OC0B desconectado.
0 1
Mudana do estado de OC0B na igualdade de
comparao.
1 0 OC0B limpo na igualdade de comparao.
1 1 OC0B ativo na igualdade de comparao.
COM0B1 COM0B0 Descrio
0 0 Operao normal do pino, OC0B desconectado.
0 1 Reservado.
1 0
OC0B limpo na igualdade de comparao, OC0B ativo
no valor do TC mnimo (modo no invertido).
1 1
OC0B ativo na igualdade de comparao e limpo no
valor do TC mnimo (modo invertido).
COM0B1 COM0B0 Descrio
0 0 Operao normal do pino, OC0B desconectado.
0 1 Reservado.
1 0
OC0B limpo na igualdade de comparao quando a
contagem crescente, e ativo na igualdade de comparao
quando a contagem decrescente.
1 1
OC0B ativo na igualdade de comparao quando a
contagem crescente, e limpo na igualdade de comparao
quando a contagem decrescente.
Modo WGM02 WGM01 WGM00 Modo de
Operao
TC
TOP AtuaIizao
de OCR0A
no vaIor:
SinaIizao
do bit TOV0
no vaIor:
0 0 0 0 Normal 0xFF mediata 0xFF
1 0 0 1
PWM com
fase corrigida
0xFF 0xFF 0x00
2 0 1 0 CTC OCR0A mediata 0xFF
3 0 1 1 PWM rpido 0xFF 0x00 0xFF
4 1 0 0 Reservado - - -
5 1 0 1
PWM com
fase corrigida
OCR0A
OCR0A
0x00
6 1 1 0 Reservado - - -
7 1 1 1 PWM rpido OCR0A 0x00 OCR0A
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
197
Bit 7 6 5 4 3 2 1 0
TCCR0B
FOC0A FOC0B - - WGM02 CS02 CS01 CS00
L/Escr. E E L L L/E L/E L/E L/E
Val or nic.
0 0 0 0 0 0 0 0
CS02 CS01 CS00 Descrio
0 0 0 Sem fonte de clock (TC0 parado).
0 0 1 clock/1 (prescaler=1) - sem prescaler.
0 1 0 clock/8 (prescaler = 8).
0 1 1 clock/64 (prescaler = 64).
1 0 0 clock/256 (prescaler = 256).
1 0 1 clock/1024 (prescaler = 1024).
1 1 0
clock externo no pino T0. Contagem
na borda de descida.
1 1 1
clock externo no pino T0. Contagem
na borda de subida.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

198
Bit 7 6 5 4 3 2 1 0
TIMSK0
- - - - -
OCE0B OCE0A TOE0
L/Escreve L L L L L L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
Bit
7 6 5 4 3 2 1 0
TIFR0 - - - - - OCF0B OCF0A TOV0
L/Escreve L L L L L L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
199
9.3.2 CDGOS EXEMPLO

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

200
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
201
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

202
9.4 TEMPORZADOR/CONTADOR 2

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
203
9.4.1 REGSTRADORES DO TC2
Bit 7 6 5 4 3 2 1 0
TCCR2A
COM2A1 COM2A0 COM2B1 COM2B0 - - WGM21 WGM20
L/Escr. L/E L/E L/E L/E L L L/E L/E
Val or nic.
0 0 0 0 0 0 0 0

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

204
COM2A1 COM2A0 Descri o
0 0 Operao normal do pino, OC2A desconectado.
0 1
Mudana do estado de OC2A na igualdade de
comparao.
1 0 OC2A limpo na igualdade de comparao.
1 1 OC2A ativo na igualdade de comparao.
COM2A1 COM2A0 Descri o
0 0 Operao normal do pino, OC2A desconectado.
0 1
WGM22 = 0: operao normal do pino, OC2A
desconect ado.
WGM22 = 1: t roca de estado do OC2A na
igualdade de comparao.
1 0
OC2A limpo na igualdade de comparao,
OC2A ativo no valor do TC mnimo (modo no
invert ido).
1 1
OC2A ativo na igualdade de comparao e
limpo no valor do TC mnimo (modo invertido).
COM2A1 COM2A0 Descrio
0 0 Operao normal do pino, OC2A desconectado.
0 1
WGM22 = 0: operao normal do pino, OC2A
desconect ado.
WGM22 = 1: t roca de estado do OC2A na igualdade de
comparao.
1 0
OC2A limpo na igualdade de comparao quando
a contagem crescente, e ativo na igualdade de
comparao quando a contagem decrescente.
1 1
OC2A ativo na igualdade de comparao quando a
contagem crescente, e limpo na igualdade de
comparao quando a contagem decrescente.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
205
COM2B1 COM2B0 Descri o
0 0 Operao normal do pino, OC2B desconectado.
0 1
Mudana do estado de OC2B na igualdade de
comparao.
1 0 OC2B limpo na igualdade de comparao.
1 1 OC2B ativo na igualdade de comparao.
COM2B1 COM2B0 Descri o
0 0 Operao normal do pino, OC2B desconectado.
0 1 Reservado.
1 0
OC2B limpo na igualdade de comparao,
OC2B ativo no valor do TC mnimo (modo no
invert ido).
1 1
OC2B ativo na igualdade de comparao e
limpo no valor do TC mnimo (modo invertido).
COM2B1 COM2B0 Descrio
0 0 Operao normal do pino, OC2B desconectado.
0 1 Reservado
1 0
OC2B limpo na igualdade de comparao quando
a contagem crescente, e ativo na igualdade de
comparao quando a contagem decrescente.
1 1
OC2B ativo na igualdade de comparao quando a
contagem crescente, e limpo na igualdade de
comparao quando a contagem decrescente.

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

206
Modo WGM22 WGM21 WGM20 Modo de
Operao
TC
TOP AtuaIizao
de OCR2A
no vaIor:
SinaIizao
do bit TOV2
no vaIor:
0 0 0 0 Normal 0xFF mediata 0xFF
1 0 0 1
PWM com
fase corrigida
0xFF 0xFF 0x00
2 0 1 0 CTC OCR2A mediata OCR2A
3 0 1 1 PWM rpido 0xFF 0x00 0xFF
4 1 0 0 Reservado - - -
5 1 0 1
PWM com
fase corrigida
OCR2A
OCR2A
anterior
0x00
6 1 1 0 Reservado - - -
7 1 1 1 PWM rpido OCR2A 0x00 OCR2A
Bit 7 6 5 4 3 2 1 0
TCCR2B
FOC2A FOC2B
- -
WGM22 CS22 CS21 CS20
L/Escr. E E L L L/E L/E L/E L/E
Val or nic.
0 0 0 0 0 0 0 0
CS22 CS21 CS20 Descrio
0 0 0 Sem fonte de clock (TC2 parado)
0 0 1 clock/1 (prescaler=1) - sem prescaler
0 1 0 clock/8 (prescaler = 8)
0 1 1 clock/32 (prescaler = 32)
1 0 0 clock/64 (prescaler = 64)
1 0 1 clock/128 (prescaler = 128)
1 1 0 clock/256 (prescaler = 256)
1 1 1 clock/1024 (prescaler = 1024)

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
207
Bit 7 6 5 4 3 2 1 0
TIMSK2 - - - - -
OCE2B OCE2A TOE2
L/Escreve L L L L L L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
Bit
7 6 5 4 3 2 1 0
TIFR2 - - - - - OCF2B OCF2A TOV2
L/Escreve L L L L L L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

208
Bit 7 6 5 4 3 2 1 0
ASSR - EXCLK AS2 TCN2UB OCR2AUB OCR2BUB TCR2AUB TCR2BUB
L/Escreve L L/E L/E L L L L L
Valor nicial 0 0 0 0 0 0 0 0
9.4.2 CDGO EXEMPLO

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
209
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

210

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
211
9.5 TEMPORZADOR/CONTADOR 1
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

212
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
213
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

214
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
215
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

216
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
217
9.5.1 REGSTRADORES DO TC1
Bit 7 6 5 4 3 2 1 0
TCCR1A COM1A1 COM1A0 COM1B1 COM1B0 - - WGM11 WGM10
L/Escr. L/E L/E L/E L/E L L L/E L/E
Val or
nici al
0 0 0 0 0 0 0 0
COM1A1/COM1B1 COM1A0/COM1B0 Descrio
0 0
Operao normal dos pinos, OC1A/OC1B
desconectados.
0 1
Mudana de OC1A/OC1B na igualdade de
comparao.
1 0
Limpeza de OC1A/OC1B na igualdade de
comparao (sada em nvel lgico baixo).
1 1
OC1A/OC1B ativos na igualdade de
comparao (sada em nvel lgico alto).
COM1A1/COM1B1 COM1A0/COM1B0 Descrio
0 0
Operao normal dos pinos, OC1A/OC1B
desconectados.
0 1
WGM13:0 = 14 ou 15: Mudana de OC1A
na igualdade de comparao, OC1B
desconectado (operao normal do pino).
Para os demais valores de WGM1,
OC1A/OC1B estaro desconectados
(operao normal dos pinos).
1 0
Limpeza de OC1A/OC1B na igualdade de
comparao, ativos no valor mnimo de
comparao (modo no invertido).
1 1
OC1A/OC1B ativos na igualdade de
comparao, limpos no valor mnimo de
comparao (modo invertido).
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

218
COM1A1/COM1B1 COM1A0/COM1B0 Descrio
0 0
Operao normal dos pinos, OC1A/OC1B
desconectados.
0 1
WGM13:0 = 9 ou 11: Mudana de OC1A na
igualdade de comparao, OC1B
desconectado (operao normal do pino).
Para os demais valores de WGM1,
OC1A/OC1B estaro desconectados
(operao normal dos pinos).
1 0
Limpeza de OC1A/OC1B na igualdade de
comparao quando a contagem
crescente, ativos no valor mnimo de
comparao quando a contagem
decrescente.
1 1
OC1A/OC1B ativos na igualdade de
comparao quando a contagem
crescente, limpos no valor mnimo de
comparao quando a contagem
decrescente.
Mo
do
WGM
13
WGM
12
WGM
11
WGM
10
Modo de operao do TC1 VaIor
TOP
AtuaIiz.
OCR1x
no vaIor
Bit
TOV1
ativo no
vaIor:
0 0 0 0 0 Normal 0xFFFF mediata 0xFFFF
1 0 0 0 1 PWM com fase corrigi da, 8 bi ts 0x00FF 0x00FF 0
2 0 0 1 0 PWM com fase corrigi da, 9 bi ts 0x01FF 0x01FF 0
3 0 0 1 1 PWM com fase corrigi da, 10 bi ts 0x03FF 0x03FF 0
4 0 1 0 0 CTC OCR1A mediata 0xFFFF
5 0 1 0 1 PWM rpi do, 8 bits 0x00FF 0 0x00FF
6 0 1 1 0 PWM rpi do, 9 bits 0x01FF 0 0x01FF
7 0 1 1 1 PWM rpi do, 10 bi ts 0x03FF 0 0x03FF
8 1 0 0 0 PWM com fase e freq. corrigi das CR1 0 0
9 1 0 0 1 PWM com fase e freq. corrigi das OCR1A 0 0
10 1 0 1 0 PWM com fase corrigi da CR1 CR1 0
11 1 0 1 1 PWM com fase corrigi da OCR1A OCR1A 0
12 1 1 0 0 CTC CR1 mediata 0xFFFF
13 1 1 0 1 Reservado - - -
14 1 1 1 0 PWM rpi do CR1 0 CR1
15 1 1 1 1 PWM rpi do OCR1A 0 OCR1A

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
219
Bit 7 6 5 4 3 2 1 0
TCCR1B CNC1 CES1 - WGM13 WGM12 CS12 CS11 CS10
L/Escr. L/E L/E L L/E L/E L/E L/E L/E
Valor
nicial
0 0 0 0 0 0 0 0
CS12 CS11 CS10 Descrio
0 0 0 Sem f onte de clock (TC1 parado).
0 0 1 clock/1 (prescaler = 1) sem prescaler.
0 1 0 clock/8 (prescaler = 8) .
0 1 1 clock/64 (prescaler = 64).
1 0 0 clock/256 (prescaler = 256).
1 0 1 clock/1024(prescaler = 1024).
1 1 0 Fonte de clock externa no pino T1 (contagem na
borda de descida).
1 1 1 Fonte de clock externa no pino T1 (contagem na
borda de subida).
Bit 7 6 5 4 3 2 1 0
TCCR1C FOC1A FOC1B - - - - - -
L/Escr. L/E L/E L L L L L L
Valor
nicial
0 0 0 0 0 0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

220
Bit 7 6 5 4 3 2 1 0
- - CE1 - -
OCE1B OCE1A TOE1
L/Escreve L L L/E L L L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
221
Bit
7 6 5 4 3 2 1 0
TIFR2 - - CF1 - - OCF1B OCF1A TOV1
L/Escreve L L L/E L L L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
9.5.2 CDGOS EXEMPLO
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

222
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
223
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

224
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
225
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

226
9.6 PWM POR SOFTWARE
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
227
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

228
9.7 ACONANDO MOTORES
9.7.1 MOTOR DC DE M PERMANENTE
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
229
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

230
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
231
9.7.2 MCRO SERVO MOTOR

29
Ci rcuito esquemti co, PCB e demais detalhes podem ser encont rados em
www.borgescorporati on.blogspot.com
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

232
0
20 ms 20 ms
Largura do pulso
0,5 ms at 2,5 ms
Giro do eixo = largura do pulso
0 = 0,5 ms
45 = 1,0 ms
90 = 1,5 ms
135 = 2,0 ms
180 = 2,5 ms
45
90
135
180
Vista frontal
do motor
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
233
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

234
9.7.3 MOTOR DE PASSO UNPOLAR
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
235
C
C B2
B1
A1
A2
A1
A2
B1
B2
C
A1
A2
B1
B2
a) b)
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

236
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
237
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

238
9.8 MDULO DE ULTRASSOM - SONAR
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
239
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

240
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
241
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

242
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
243
10. GERANDO MSCAS COM O
MCROCONTROLADOR
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

244
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
245

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

246
NOTA 4 [Hz] OCR1A 5 [Hz] OCR1A 6 [Hz] OCR1A 7[Hz] OCR1A
a (L)
440,0 18181 880,0 9090 1760,0 4544 3520,0 2272
a# (L#) 466,2 17159 932,4 8579 1864,7 4289 3729,4 2144
b (Si) 493,9 16197 987,8 8098 1975,7 4048 3951,3 2024
c (D) 523,3 15287 1046,6 7643 2093,2 3821 4186,5 1910
c# (D#) 554,4 14429 1108,8 7214 2217,7 3606 4435,5 1803
d (R) 587,4 13618 1174,8 6809 2349,7 3404 4699,5 1701
d# (R#) 622,4 12852 1244,8 6426 2489,5 3212 4979,1 1606
e (Mi) 659,4 12131 1318,8 6065 2637,7 3032 5275,3 1516
f (F) 698,7 11449 1397,3 5724 2794,6 2862 5589,2 1430
f# (F#) 740,2 10807 1480,4 5403 2960,8 2701 5921,8 1350
g (Sol) 784,3 10199 1568,2 5100 3137,1 2549 6274,1 1274
g# (Sol #)
830,9 9627 1661,9 4813 3323,7 2406 6647,4 1202
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
247
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

248
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
249
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

250
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
251

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

252
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
253
11. TCNCAS DE MULTPLEXAO

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

254
11.1 EXPANSO DE /O MAPEADA EM MEMRA
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
255
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

256
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
257
11.2 CONVERSO SERAL-PARALELO
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

258
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
259
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

260
11.3 CONVERSO PARALELO-SERAL
11.4 MULTPLEXAO DE DSPLAYS DE 7 SEGMENTOS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
261

30
Se o valor de VCC for mai or que a tenso de desli gament o (nvel lgico) na base dos transi stores
PNP, eles podero ficar di retament e polarizados e conduzir indevidamente. Transistores PNP
funci onam adequadamente quando a tenso de alimentao dos displ ays (VCC) for a mesma do circui to
digit al de control e, caso contrrio, t ransistores NPN devem ser util izados.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

262
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
263

31
Na seo 5.4, foram apresentados o displ ay de 7 segmentos e seus cdigos de decodificao (tab. 5.2).
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

264
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
265

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

266
11.5 UTLZANDO MAS DE UM LED POR PNO
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
267
Pi nos LEDs
PC0 PC1 PC2 1 2 3 4 5 6

0 0 0 0 0 0 0 0 0
0 1 Hi-Z 1 0 0 0 0 0
1 0 Hi-Z 0 1 0 0 0 0
Hi-Z 0 1 0 0 1 0 0 0
Hi-Z 1 0 0 0 0 1 0 0
0 Hi-Z 1 0 0 0 0 1 0
1 Hi-Z 0 0 0 0 0 0 1
0 0 1 0 0 1 0 1 0
0 1 0 1 0 0 1 0 0
0 1 1 1 0 0 0 1 0
1 0 0 0 1 0 0 0 1
1 0 1 0 1 1 0 0 0
1 1 0 0 0 0 1 0 1
1 1 1 0 0 0 0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

268
11.6 MATRZ DE LEDs

32
Exist em matrizes comerciais onde os LEDs so encapsulados em um nico bloco. Os formatos usuais
so: 7 5, 8 8 e 16 16.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
269
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

270

33
O 74HC595 suporta em torno de 8 mA por pi no, caso se desej e uma corrent e mai or, necessrio o
emprego de um driver de corrente, como por exemplo o ULN2803. Exi stem t ambm registradores de
deslocamento com capacidade bem maior de corrente, como o TPIC6B595.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
271
11.7 CUBO DE LEDS

34
Cubos comerciais podem ser encontrados em www.seekway.com.cn.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

272
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
273

35
Outro regi strador de deslocament o similar ao 74HC595, entretant o com menor capacidade para
suprir ou fornecer corrente.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

274
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
275

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

276
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
277
12. DSPLAY GRFCO (128 64 pontos)
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

278
Pi no Nome Descrio
1 VSS Terra.
2 VDD Tenso de aliment ao.
3 VO Tenso para o cont raste do LCD.
4 D/ Sinal de Dados/nstruo.
5 R/W Sinal de Leit ura/Escrit a.
6 E Sinal de habilitao.
7 DB0
Via de dados [0 -7]
Permitem t rs est ados
(0, 1 e alta impedncia).
8 DB1
9 DB2
10 DB3
11 DB4
12 DB5
13 DB6
14 DB7
15 CS1 Seleo da primeira met ade do LCD.
16 CS2 Seleo da segunda met ade do LCD.
17 Sinal de Reset.
18 VEE Tenso negativa para o LCD.
19 A Anodo do LED da iluminao de fundo.
20 K Catodo do LED da iluminao de fundo.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
279
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

280
In struo D/I R/ W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 Funo
Liga/ Desliga
LCD
0 0 0 0 1 1 1 1 1 0/1
Liga/ Desliga display. O st atus
interno e a RAM no so
afet ados.
(0 = desliga, 1 = li ga)
Aj usta
endereo
0 0 0 1 Endereo Y (0 - 63)
Aj usta o endereo Y no cont ador
de endereos Y.
Aj usta
Pgina
(endereo X)
0 0 1 0 1 1 1 Pgi na (0 - 7)
Aj usta o endereo X no
registrador de endereo X.
n cio da
linha do LCD
0 0 1 1 Linha de incio do Display (0 - 63)
ndica que os dados da RAM
devem ser most rados no t opo do
LCD.
St atus de
pronto
0 1 0 0 0 0 0
Ocupado: 0 = pronto para
receber i nf ormaes
1 = em operao.
Ligado = 1 / Desligado = 0
Reset : 0 = normal
1 = reset.
Escreve
dado no LCD
1 0 Dado para a escrita
Escreve dado (DB0: 7) na RAM
de dados do LCD. Aps a
escri ta, o endereo Y
incrementado aut omat icamente.
L dado do
LCD
1 1 Dado para a leitura
L dado (DB0:7) da RAM do
LCD.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
281
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

282
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
283
12.1 CONVERSO DE FGURAS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

284
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
285
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

286
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
287
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

288
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
289
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

290
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
291
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

292
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
293
12.2 USANDO O DSPLAY GRFCO COMO UM LCD 21 x 8
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

294
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
295
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

296
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
297
13. FORMAS DE ONDA E SNAS ANALGCOS

13.1 DSCRETZANDO UM SNAL
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

298
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
299
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

300
Tabela_seno = [127, 120, 122, 126, 140, 142, 146, 14?, 152, 155, 158, 161, 164,
167, 170, 172, 176, 17?, 182, 185, 187, 1?0, 1?2, 1?5, 1?8, 201,
202, 206, 208, 211, 212, 215, 217, 220, 222, 224, 226, 228, 220,
222, 222, 225, 227, 228, 240, 241, 242, 244, 245, 246, 247, 248,
24?, 250, 251, 252, 252, 252, 252, 254, 254, 254, 254, 255, 255,
254, 254, 254, 254, 252, 252, 252, 252, 251, 250, 250, 24?, 248,
247, 246, 244, 242, 242, 240, 22?, 227, 226, 224, 222, 221, 22?,
227, 225, 222, 221, 21?, 216, 214, 212, 20?, 207, 204, 202, 1??,
1?7, 1?4, 1?1, 18?, 186, 182, 180, 177, 175, 172, 16?, 166, 162,
160, 157, 154, 150, 147, 144, 141, 128, 125, 122, 12?, 125, 122,
11?, 116, 112, 110, 107, 104, 100, ?7, ?4, ?1, 88, 85, 82,
7?, 77, 74, 71, 68, 65, 62, 60, 57, 55, 52, 50, 47,
45, 42, 40, 28, 25, 22, 21, 2?, 27, 25, 22, 22, 20,
18, 17, 15, 14, 12, 11, 10, 8, 7, 6, 5, 4, 4,
2, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 1, 2, 2, 2, 4, 5, 6, 7, 8, ?,
10, 12, 12, 14, 16, 17, 1?, 21, 22, 24, 26, 28, 20,
22, 24, 27, 2?, 41, 42, 46, 48, 51, 52, 56, 5?, 61,
64, 67, 6?, 72, 75, 78, 81, 84, 87, ?0, ?2, 6, ??,
102, 105, 108, 111, 114, 118, 121, 124, 127],
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
301
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

302
13.2 CONVERSOR DGTAL-ANALGCO COM UMA REDE
R/2R
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
303
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

304
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
305
13.3 CONVERSOR DGTAL-ANALGCO COM UM SNAL
PWM

36
Ver o appli cati on not e da Microchip: D/A Conversion Using PWM and R-2R Ladders to Generate
Sine and DTMF Wavef orm. Para maiores detalhes sobre filt ros ver: NILSSON, James W.; RIEDEL,
Susan A. Circuitos Eltricos. 6 ed. Ri o de Janeiro: LTC, 2003. e SCHERZ, Paul. Pract/ca/
E/ ectran/cs far Inrentars. 2 ed. New York, McGraw Hill , 2007.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

306

37
Consultar PERTENCE Jr., Antni o. El etrnica Analgica - Ampli fi cadores Operacionais e Fi ltros
Ati vos. 7 ed. Porto Alegre: Artmed, 2012.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
307
13.4 SNAL PWM PARA UM CONVERSOR CC-CC (BUCK)
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

308
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
309
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

310
13.5 SNAL PWM PARA UM CONVERSOR CC-CA
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
311
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

312
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
313
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

314

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
315
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

316
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
317
14. SP
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

318
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
319
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

320
14.1 SP DO ATMEGA328
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
321
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

322
Pi no Direo, SPI Mestre Direo, SPI Escravo
MOS definido pelo usurio entrada
MSO entrada definido pelo usurio
SCK definido pelo usurio entrada
definido pelo usurio entrada
//========================================================================= //
//Funes para inicializar a SPI no modo Mestre e transmitir um dado //
//======================================================================== //
void SPI_Mestre_Inic()
{
DDRB = (1<<PB5)|(1<<PB2),//ajusta MOSI e SCK como saida, demais
//pinos como entrada
SPCR = (1<<SPF)|(1<<MSTR)|(1<<SPR0),//habilita SPI, Mestre,
//taxa de clock ckl/16
}
//--------------------------------------------------------------------------
void SPI_Mestre_Transmit(char dado)
{
SPDR = dado, //inicia a transmisso
while(!(SPSR : (1<<SPIF))),//espera a transmisso ser completada
}
//==========================================================================
//========================================================================= //
// Funes para inicializar a SPI no modo Fscravo e receber um dado //
//======================================================================== //
void SPI_Fscravo_Inic( )
{
DDRB = (1<<PB4),//ajusta o pino MISO como saida, demais pinos como entrada
SPCR = (1<<SPF),//habilita SPI
}
//---------------------------------------------------------------------------
char SPI_Fscravo_Recebe( )
{
while(!(SPSR : (1<<SPIF))),//espera a recepo estar completa
return SPDR, //retorna o registrador de dados
}
//===========================================================================
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
323
Bit 7 6 5 4 3 2 1 0
SPCR SPE SPE DORD MSTR CPOL CPHA SPR1 SPR0
L/Escr. L/E L/E L/E L/E L/E L/E L/E L/E
Valor
nicial
0 0 0 0 0 0 0 0
SPI2X SPR1 SPR0 Frequncia do SCK
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

324
Bit 7 6 5 4 3 2 1 0
SPSR SPF WCOL - - - - - SP2X
L/Escreve L L L L L L L L/E
Valor nicial 0 0 0 0 0 0 0 0

Bit 7 6 5 4 3 2 1 0
SPDR MSB LSB
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial
indefinido
X X X X X X X X
Configurao Borda do SCK Borda do SCK MODO SPI
CPOL = 0, CPHA = 0 amostragem (subida) ajust e (descida) 0
CPOL = 0, CPHA = 1 ajust e (subida) amostragem (descida) 1
CPOL = 1, CPHA = 0 amostragem (descida) ajust e (subida) 2
CPOL = 1, CPHA = 1 ajust e (descida) amostragem (subida) 3
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
325
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

326
14.2 SENSOR DE TEMPERATURA TC72
Temperatura VaIor binrio MSByte
*
/LSByte
**
+125 C
0111 1101 / 0000 0000
+25 C
0001 1001 / 0000 0000
+0,5 C
0000 0000 / 1000 0000
+0,25 C
0000 0000 / 0100 0000
0 C
0000 0000 / 0000 0000
-0,25 C
1111 1111 / 1100 0000
-25 C
1110 0111 / 0000 0000
-55 C
1100 1001 / 0000 0000
*
MSByte = Byte Mais Significati vo.
**
LSByte = Byte Menos Si gni fi cativo.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
327
Registrador
End.
Leitura
End.
Escrita
D7 D6 D5 D4 D3 D2 D1 D0
VaIor na
IniciaIiz.
Controle 0x00 0x80 0 0 0 OS
*
0 0 0 SHDN
**
0x05
Temperatura
LSByte
0x01 - 2
-1
2
-2
0 0 0 0 0 0 0x00
Temperatura
MSByte
0x02 - Si nal 2
6
2
5
2
4
2
3
2
2
2
1
2
0
0x00
*
OS = One-Shot (bit de converso nica).
**
SHDN = Shutdown (bit para desli gar o TC72, deix-l o em Standby, consumo de 1A).
Modo de Operao OS SHDN
Converso contnua 0 0
Desliga 0 1
Converso contnua 1 0
Converso nica 1 1

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

328
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
329
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

330
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
331
14.3 CARTO DE MEMRA SD/MMC
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

332
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
333
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

334
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
335
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

336
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
337
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

338
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
339
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

340
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
341

38
O termopar tipo K um sensor de temperatura composto por Chromel (90% de Nquel e 10% de
Cromo) e Alumel (95% de Nquel, 2% de Mangans, 2% de Alumni o e 1% de Si1cio). Os doi s
materiais so conectados e na sua juno gerada uma pequena diferena de potencial dependendo da
temperatura a que so submetidos. Fonte http:// pt.wiki pedia.org/ wi ki/Termopar.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

342
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
343
Bit de
Si naI
Leitura de 12 bi ts
da temperatu ra
Entrada
do termop ar
ID do
di sposi ti vo
Estado
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 MSB LSB 0 Tri-
St ate
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

344
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
345
15. USART
15.1 USART DO ATMEGA328
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

346
Modo de operao Equao para o cI cuIo
da taxa de transmi sso
Equao para o cIcuIo
do vaIor de UBRR0
Modo Normal Assncrono
(U2X0 = 0)
Modo de Velocidade Dupla
Ass ncrono (U2X0 = 1)
Modo Mest re Sncrono
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
347
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

348
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
349
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

350

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
351
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

352
Bit 7 6 5 4 3 2 1 0
UDR0
(Ieitura)
RXB[7:0]
UDR0
(escrita)
TXB[7:0]
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Valor
nicial
0 0 0 0 0 0 0 0

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
353
Bit 7 6 5 4 3 2 1 0
UCSR0A
RXC0 TXC0 UDRE0 FE0 DOR0 UPE0 U2X0 MPCM0
L/Escr. L L/E L L L L L/E L/E
Val or
nici al
0 0 1 0 0 0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

354
Bit 7 6 5 4 3 2 1 0
UCSR0B RXCE0 TXCE0 UDRE0 RXEN0 TXEN0 UCSZ02 RXB80 TXB80
L/Escreve L/E L/E L/E L/E L/E L/E L L/E
Val or nicial 0 0 0 0 0 0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
355
Bit 7 6 5 4 3 2 1 0
UCSR0C UMSEL01 UMSEL00 UPM01 UPM00 USBS0 UCSZ01 UCSZ00 UCPOL0
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Val or nicial 0 0 0 0 0 1 1 0
UMSEL01 UMSEL00 Modo de operao
0 0 assncrono
0 1 sncrono
1 0 reservado
1 1 SP mest re
UPM01 UPM00 Modo de Pari dade
0 0 Desabilit ado
0 1 Reservado
1 0 Habilitado, paridade par
1 1 Habilitado, paridade mpar
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

356
UCSZ02 UCSZ01 UCSZ00 Tamanho do Caractere
0 0 0 5 bits
0 0 1 6 bits
0 1 0 7 bits
0 1 1 8 bits
1 0 0 reservado
1 0 1 reservado
1 1 0 reservado
1 1 1 9 bits
UCPOL0 Mudana do Dado Transmi tido
(sada do pino TxD0)
Amostragem do Dado Recebi do
(entrada do pino RxD0)
0 borda de subida de XCK borda de descida de XCK
1 borda de descida de XCK borda de subida de XCK
Bit 15 14 13 12 11 10 9 8
UBRR0H - - - - UBRR[11:8]
UBRR0L UBRR[7:0]
Bit 7 6 5 4 3 2 1 0
L/Escreve L L L L L/E L/E L/E L/E
L/E L/E L/E L/E L/E L/E L/E L/E
Valor
nicial
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
357
15.2 USART NO MODO SP MESTRE

Equao para o cIcuIo
da taxa de transmi sso
Equao para o cIcuIo
do vaIor de UBRR0
UCPOL0 UCPHA0 Borda do SCK Borda do SCK MODO SPI
0 0 Amostragem (subida) Ajuste (descida) 0
0 1 Ajuste (subida) Amostragem (descida) 1
1 0 Amostragem (descida) Ajuste (subida) 2
1 1 Ajuste (descida) Amostragem (subida) 3
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

358
15.3 COMUNCAO ENTRE O MCROCONTROLADOR E
UM COMPUTADOR
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
359


39
O desempenho conseguido com um conversor seri al/ USB inferior ao da USB isoladament e.
Literalmente, a comuni cao no pode ser denominada USB, pois o protocol o e as taxas de t ransmi sso
so diferent es.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

360
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
361
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

362
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
363
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

364
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
365
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

366
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
367
15.4 MDULOS BSCOS DE RF
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

368
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
369
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

370
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
371
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

372
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
373
15.5 MDULO BLUETOOTH PARA PORTA SERAL
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

374
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
375
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

376
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
377
16. TW (TWO WRE SERAL NTERFACE) - 2C
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

378
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
379
16.1 2C NO ATMEGA328
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

380
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
381
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

382
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
383
16.2 REGSTRADORES DO TW
Bit 7 6 5 4 3 2 1 0
TWBR
TWBR7 TWBR6 TWBR5 TWBR4 TWBR3 TWBR2 TWBR1 TWBR0
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Val or nicial 0 0 0 0 0 0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

384
Bit 7 6 5 4 3 2 1 0
TWSR
TWS7 TWS6 TWS5 TWS4 TWS3 - TWPS1 TWPS0
L/Escreve L L L L L L L/E L/E
Valor nicial 1 1 1 1 1 0 0 0
TWPS1 TWPS0 VaIor do Prescaler
0 0 1
0 1 4
1 0 16
1 1 64
Bit 7 6 5 4 3 2 1 0
TWCR TWNT TWEA TWSTA TWSTO TWWC TWEN - TWE
L/Escreve L/E L/E L/E L/E L L/E L L/E
Valor nicial 0 0 0 0 0 0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
385
Bit 7 6 5 4 3 2 1 0
TWDR TWD7 TWD6 TWD5 TWD4 TWD3 TWD2 TWD1 TWD0
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial 1 1 1 1 1 1 1 1
Bit 7 6 5 4 3 2 1 0
TWAR TWA6 TWA5 TWA4 TWA3 TWA2 TWA1 TWA0 TWGCE
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial 1 1 1 1 1 1 1 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

386
16.3 USANDO O TW

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
387
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

388
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
389
Cdigo de
Status
(TWSR).
Bits de
prescaler
so 0.
Status da via
e da
interface de
Hardware
TWI
Resposta do Software de ControIe
Prxima ao do mduIo TWI
Para/do
TWDR
Para o TWCR
0x08
Uma condio
de incio foi
transmitida.
Carga do SLA+W
0 0 1 X SLA+W ser transmitido e um ACK ou
NO ACK recebido.
0x10
Uma condio
de repetio
de incio foi
transmitida.
Carga do SLA+W ou
SLA+R
0
0
0
0
1
1
X
X
SLA+W ser transmi tido e umACK ou
NO ACK recebido.
SLA+R ser transmitido. A lgica i r
mudar para o modo de recepo mestre.
0x18
SLA+W foi
transmitido e o
ACKfoi
recebido
Carga do byte de
dados ou
nenhuma ao
TWDR
0
1
0
1
0
0
1
1
1
1
1
1
X
X
X
X
O byte de dados ser transmitido e um
ACKou NO ACKrecebido.
Repetio da condio de incio.
A parada ser transmitida e o bit TWSTO
ser l impo.
Uma parada seguida de um i ncio sero
transmitidos e o bit TWSTO ser l impo.
0x20
SLA+W foi
transmitido e
um NO ACK
recebido
Carga do byte de
dados ou
nenhuma ao
TWDR
0
1
0
1
0
0
1
1
1
1
1
1
X
X
X
X
O byte de dados ser transmitido e um
ACKou NO ACKrecebido.
Repetio da condio de incio.
A parada ser transmitida e o bit TWSTO
ser l impo.
Uma parada seguida de um i ncio sero
transmitidos e o bit TWSTO ser l impo.
0x28
O byte de
dados foi
transmitido e o
ACKrecebido
Carga do byte de
dados ou
nenhuma ao
TWDR
0
1
0
1
0
0
1
1
1
1
1
1
X
X
X
X
O byte de dados ser transmitido e um
ACKou NO ACKrecebido.
Repetio da condio de incio.
A parada ser transmitida e o bit TWSTO
ser l impo.
Uma parada seguida de um i ncio sero
transmitidos e o bit TWSTO ser l impo.
0x30
O byte de
dados foi
transmitido e o
NO ACK
recebido
Carga do byte de
dados ou
nenhuma ao
TWDR
0
1
0
1
0
0
1
1
1
1
1
1
X
X
X
X
O byte de dados ser transmitido e um
ACKou NO ACKrecebido.
Repetio da condio de incio.
A parada ser transmitida e o bit TWSTO
ser l impo.
Uma parada seguida de um i ncio sero
transmitidos e o bit TWSTO ser l impo.
0x38
Perda de
control e no
SLA+W ou no
byte de dados
nenhuma ao
TWDR
0
1
0
0
1
1
X
X
A via TW ser liberada e o modo de
endereamento escravo no ser ativo.
Uma condio de i ncio ser enviada
quando a vi a ficar livre.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

390
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
391
Cdigo de
Status
(TWSR).
Bits de
prescaler
so 0.
Status da via e da
interface de
Hardware TWI
Resposta do Software de ControIe
Prxima ao do mduIo TWI
Para/do
TWDR
Para o TWCR
0x08
Uma condio de
incio foi transmiti da.
carga do SLA+R
0 0 1 X SLA+R ser transmiti do e umACK
ou NO ACKrecebido.
0x10
Uma condio de
repetio de inci o foi
transmitida.
carga do SLA+R ou
SLA+W
0
0
0
0
1
1
X
X
SLA+R ser transmitido e um ACK
ou NO ACKrecebido.
SLA+W ser transmi tido. Algica
ir mudar para o modo de
transmisso mestre.
0x38
Perda de controle no
SLA+R ou no bit
NO ACK
nenhuma ao
TWDR
0
1
0
0
1
1
X
X
A via TW ser liberada e o modo
de endereamento escravo no
ser ativo.
Uma condio de i ncio ser
enviada quando a via fi car livre.
0x40
SLA+R foi
transmitido e um
ACKrecebido
nenhuma ao
TWDR
0
0
0
0
1
1
0
1
O byte de dados ser recebido e
um NO ACK retornado.
O byte de dados ser recebido e
um ACKretornado.
0x48
SLA+R foi
transmitido e um
NO ACK recebido
nenhuma ao
TWDR
1
0
1
0
1
1
1
1
1
X
X
X
Repetio da condio de incio.
A parada ser transmitida e o bit
TWSTO ser limpo.
Uma parada seguida de um i ncio
sero transmitidos e o bit TWSTO
ser l impo.
0x50
O byte de dados foi
recebido e um ACK
retornado.
Leitura do byte de
dados
0
0
0
0
1
1
0
1
O byte de dados ser recebido e
um NO ACK retornado.
O byte de dados ser recebido e
um ACKretornado.
0x58
O byte de dados foi
recebido e um NO
ACKretornado.
Leitura do byte de
dados
1
0
1
0
1
1
1
1
1
X
X
X
Repetio da condio de incio.
A parada ser transmitida e o bit
TWSTO ser limpo.
Uma parada seguida de um i ncio
sero transmitidos e o bit TWSTO
ser l impo.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

392
Cdigo de
Status
(TWSR).
Bits de
prescaler
so 0.
Status da via e
da interface de
Hardware TWI
Resposta do Software de ControIe
Prxima ao do mduIo TWI
Para/do
TWDR
Para o TWCR
0x60
O prprio
endereo SLA+W
foi recebido e um
ACKretornado.
nenhuma ao TWDR
X
X
0
0
1
1
0
1
O byte de dados ser recebido e um
NO ACK retornado.
O byte de dados ser recebido e um
ACKretornado.
0x68
Perda de controle
como mestre no
SLA+R/W. O
prprio SLA+W foi
recebido e um
ACKretornado.
nenhuma ao TWDR
X
X
0
0
1
1
0
1
O byte de dados ser recebido e um
NO ACK retornado.
O byte de dados ser recebido e um
ACKretornado.
0x70
Uma chamada
geral de endereo
foi recebida e um
ACKretornado.
nenhuma ao TWDR
X
X
0
0
1
1
0
1
O byte de dados ser recebido e um
NO ACK retornado.
O byte de dados ser recebido e um
ACKretornado.
0x78
Perda de controle
como mestre no
SLA+R/W. A
chamada geral de
endereo foi
recebida e um
ACKretornado.
nenhuma ao TWDR
X
X
0
0
1
1
0
1
O byte de dados ser recebido e um
NO ACK retornado.
O byte de dados ser recebido e um
ACKretornado.

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
393
0x80
Endereado
previamente com
o prpri o SLA+W.
Um dado foi
recebido e um
ACKretornado.
Leitura do byte de dados
X
X
0
0
1
1
0
1
O byte de dados ser recebido e um
NO ACK retornado.
O byte de dados ser recebido e um
ACKretornado.
0x88
Endereado
previamente com
o prpri o SLA+W.
Um dado foi
recebido e um
NO ACK
retornado.
Leitura do byte de dados
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
Mudana para o modo no
endereado escravo. No
reconhecimento do prprio SLAou
GCA (General Call Address).
Mudana para o modo no
endereado escravo. O prprio SLA
ser reconhecido. GCA ser
reconhecido se TWGCE= 1.
Mudana para o modo no
endereado escravo. No
reconhecimento do prprio SLAou
GCA. Uma condio de i ncio ser
transmitida quando a via ficar l ivre.
Mudana para o modo no
endereado escravo. O prprio SLA
ser reconhecido. GCA ser
reconhecido se TWGCE= 1. Uma
condio de incio ser transmiti da
quando a vi a ficar livre.
0x90
Endereado
previamente pela
chamada geral.
Um dado foi
recebido e um
ACKretornado.
Leitura do byte de dados
X
X
0
0
1
1
0
1
O byte de dados ser recebido e um
NO ACK retornado.
O byte de dados ser recebido e um
ACK retornado.
0x98
Endereado
previamente pela
chamada geral.
Um dado foi
recebido e um
NO ACK
retornado.
Leitura do byte de dados
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
Mudana para o modo no
endereado escravo. No
reconhecimento do prprio SLAou
GCA.
Mudana para o modo no
endereado escravo. O prprio SLA
ser reconhecido. GCA ser
reconhecido se TWGCE= 1.
Mudana para o modo no
endereado escravo. No
reconhecimento do prprio SLAou
GCA. Uma condio de i ncio ser
transmitida quando a via ficar l ivre.
Mudana para o modo no
endereado escravo. O prprio SLA
ser reconhecido. GCA ser
reconhecido se TWGCE= 1. Uma
condio de incio ser transmiti da
quando a vi a ficar livre.
0xA0
Uma parada ou
repetio de inci o
foi recebida
enquanto ainda
endereado como
escravo.
Nenhuma ao
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
Mudana para o modo no
endereado escravo. No
reconhecimento do prprio SLAou
GCA.
Mudana para o modo no
endereado escravo. O prprio SLA
ser reconhecido. GCA ser
reconhecido se TWGCE= 1.
Mudana para o modo no
endereado escravo. No
reconhecimento do prprio SLAou
GCA. Uma condio de i ncio ser
transmitida quando a via ficar l ivre.
Mudana para o modo no
endereado escravo. O prprio SLA
ser reconhecido. GCA ser
reconhecido se TWGCE= 1. Uma
condio de incio ser transmiti da
quando a vi a ficar livre.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

394
.

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
395
Cdigo
de Status
(TWSR).
Bits de
prescaler
so 0.
Status da via e da
interface de
Hardware TWI
Resposta do Software de ControIe
Prxima ao do mduIo
TWI
Para/do
TWDR
Para o TWCR
0xA8
O prprio endereo
SLA+R foi recebido e
um ACKretornado.
carrega o byte de dados
X
X
0
0
1
1
0
1
O ltimo byte de dados ser
transmitido e um NO ACK deve
ser recebido.
O byte de dados ser transmitido
e umACK deve ser recebido.
0xB0
Perda de controle como
mestre no SLA+R/W. O
prprio SLA+R foi
recebido e um ACK
retornado.
carrega o byte de dados
X
X
0
0
1
1
0
1
O ltimo byte de dados ser
transmitido e um NO ACK deve
ser recebido.
O byte de dados ser transmitido
e umACK deve ser recebido.
0xB8
O byte de dados do
TWDR foi transmitido e
um ACKrecebido
carrega o byte de dados
X
X
0
0
1
1
0
1
O ltimo byte de dados ser
transmitido e um NO ACK deve
ser recebido.
O byte de dados ser transmitido
e umACK deve ser recebido.
0xC0
O byte de dados do
TWDR foi transmitido e
um ACKrecebido
nenhuma ao TWDR
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
Mudana para o modo no
endereado escravo. No
reconhecimento do prprio SLA
ou GCA.
Mudana para o modo no
endereado escravo. O prprio
SLAser reconhecido. GCA ser
reconhecido se TWGCE= 1.
Mudana para o modo no
endereado escravo. No
reconhecimento do prprio SLA
ou GCA. Uma condio de incio
ser transmitida quando a via
ficar livre.
Mudana para o modo no
endereado escravo. O prprio
SLAser reconhecido. GCA ser
reconhecido se TWGCE= 1. Uma
condio de incio ser
transmitida quando a via ficar
livre.
0xC8
ltimo byte de dados do
TWDR foi transmitido
(TWEA =0) e umACK
foi recebido.
nenhuma ao TWDR
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
Mudana para o modo no
endereado escravo. No
reconhecimento do prprio SLA
ou GCA.
Mudana para o modo no
endereado escravo. O prprio
SLAser reconhecido. GCA ser
reconhecido se TWGCE= 1.
Mudana para o modo no
endereado escravo. No
reconhecimento do prprio SLA
ou GCA. Uma condio de incio
ser transmitida quando a via
ficar livre.
Mudana para o modo no
endereado escravo. O prprio
SLAser reconhecido. GCA ser
reconhecido se TWGCE= 1. Uma
condio de incio ser
transmitida quando a via ficar
livre.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

396
16.4 RELGO DE TEMPO REAL DS1307
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
397
Bi t 0 1 2 3 4 5 6 7
segundos 10.segundos
mi nutos 10.mi nutos
CH
0
0
0
0
0
0
0 0
0
0 0
horas
10.h
10.h
A/P
12
24
0
di a
data 10.data
ms
10.
ms
ano 10.ano
0
RS1 RS0
0
SQWE
0 0
OUT
00 - 59
00 - 59
01 - 12
00 - 23
1 - 7
00 - 99
01 - 12
01-28/29
01-30/31
0x00
0x01
0x02
0x03
0x04
0x05
0x06
0x07
SEGUNDOS
MNUTOS
HORAS
DA
DATA
MS
ANO
CONTROLES
RAM
56 x 8
0x08
0x3F
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

398

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
399
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

400
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
401
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

402
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
403
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

404

40
A parte de tratamento de erros na comunicao no foi testada. A anli se exige o uso de equipamento
de medi o espec fi co.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
405
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

406
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
407
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

408
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
409
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

410

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
411
17. COMUNCAO 1 FO POR SOFTWARE

41
Na alimentao parasi ta, o CI al imentado pela via de dados, a qual deve ser mantida na t enso de
alimentao por um perodo de tempo suficiente para carregar um capaci tor int erno, permitindo o
funci onamento do CI quando a via de dados est iver em nvel lgico zero. Nesse modo de ali ment ao,
o pino de VCC deve ser ligado ao terra do ci rcuito.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

412
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
413
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

414
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
415
17.1 SENSOR DE TEMPERATURA DS18S20
Temperatura C Sada DigitaI Binria Sada DigitaI HexadecimaI
+85,0 0000 0000 1010 1010 0x00AA
+25,0 0000 0000 0011 0010 0x0032
+0,5 0000 0000 0000 0001 0x0001
0 0000 0000 0000 0000 0x0000
-0,5 1111 1111 1111 1111 0xFFFF
-25,0 1111 1111 1100 1110 0xFFCE
-55,0 1111 1111 1001 0010 0xFF92
Bytes Sada DigitaI Binria
EEPROM
0 Temperatura LSB (0xAA)
1 Temperatura MSB (0x00)
2 TH
*
ou byte 1 do usurio TH
*
ou byte 1 do usurio
3 TL
*
ou byte 2 do usurio TL
*
ou byte 2 do usurio
4 Reservado (0xFF)
5 Reservado (0xFF)
6 Count Remain (0x0C)
7 Count Per C (0x10)
8 CRC
*
TH e TL registradores de ajuste de disparo do al arme.

42
O DS18B20 possui resoluo ajustvel de 9 a 12 bits.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

416
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
417
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

418
Modo
Mestre
Dado (primeiro o LSB) Comentrios
Tx Reset O mestre executa o pulso de reset.
Rx Presena O DS18S20 responde com um pulso de presena.
Tx 0x55 O mestre envia o comando de igualdade da ROM.
Tx Cdigo de 64 bits O mestre envia o cdigo do DS18S20 em questo.
Tx 0x44 O mestre pede para comear a converso.
Tx
A linha DQ mantida em
VCC
O mestre aplica tenso na linha DQ durante o tempo
de converso.
Tx Reset O mestre executa o pulso de reset.
Rx Presena O DS18S20 responde com um pulso de presena.
Tx 0x55 O mestre envia o comando de igualdade da ROM.
Tx Cdigo de 64 bits O mestre envia o cdigo do DS18S20 em questo.
Tx 0xBE O mestre pede o comando para a leitura dos dados.
Rx 9 bytes de dados
O mestre l toda a memria e calcula o CRC. Se
houver uma igualdade o mestre continua, seno, a
operao de leitura deve ser repetida.
Modo
Mestre
Dado (primeiro o LSB) Comentrios
Tx Reset O mestre executa o pulso de reset.
Rx Presena O DS18S20 responde com um pulso de presena.
Tx 0xCC O mestre pede o comando para pular a ROM.
Tx 0x4E O mestre pede para escrever.
Tx 2 bytes de dados O mestre envia dois bytes para TH e TL.
Tx Reset O mestre executa o pulso de reset.
Rx Presena O DS18S20 responde com um pulso de presena.
Tx 0xCC O mestre pede o comando para pular a ROM.
Tx 0xBE O mestre pede o comando para a leitura dos dados.
Rx 9 bytes de dados
O mestre l toda a memria e calcula o CRC. Se
houver uma igualdade o mestre continua, seno uma
nova operao de leitura deve ser repetida.
Tx Reset O mestre executa o pulso de reset.
Rx Presena O DS18S20 responde com um pulso de presena.
Tx 0xCC O mestre pede o comando para pular a ROM.
Tx 0x48 O mestre pede para copiar TH e TL para a EEPROM
Tx
A linha DQ mantida em
VCC
O mestre aplica tenso na linha DQ durante o tempo
de converso.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
419
Modo
Mestre
Dado (primeiro o LSB) Comentrios
Tx Reset O mestre executa o pulso de reset.
Rx Presena O DS18S20 responde com um pulso de presena.
Tx 0xCC O mestre pede o comando para pular a ROM.
Tx 0x44 O mestre pede para comear a converso.
Tx
A linha DQ mantida em
VCC
O mestre aplica tenso na linha DQ durante o tempo
de converso.
Tx Reset O mestre executa o pulso de reset.
Rx Presena O DS18S20 responde com um pulso de presena.
Tx 0xCC O mestre pede o comando para pular a ROM.
Tx 0xBE O mestre pede o comando para a leitura dos dados.
Rx 2 ou os 9 bytes de dados
Os dois primeiros bytes so a temperatura. Se
desejado podem ser lidos os demais bytes, que
incluem, entre outros, os 2 bytes da EEPROM e a
identificao do componente (CRC).
Tx Reset
O mestre executa o pulso de reset aps ler o nmero
desejado de bytes, se for s temperatura, aps 2
bytes.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

420

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
421
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

422

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
423
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

424
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
425
18. COMPARADOR ANALGCO
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

426
Bit 7 6 5 4 3 2 1 0
ADCSRB
- ACME - - - ADTS2 ADTS1 ADTS0
L/Escreve L L/E L L L L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
Bit 7 6 5 4 3 2 1 0
ACSR ACD ACBG ACO AC ACE ACC ACS1 ACS0
L/Escreve L/E L/E L L/E L/E L/E L/E L/E
Valor nicial 0 0
N/A
0 0 0 0 0

43
N/A = No Aplicvel ou no disponvel (Not Applicable or Not Available).
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
427
ACI S1 ACIS0 Modo de interrupo
0 0 Subida ou descida do sinal de comparao.
0 1 Reservado.
1 0 Borda de descida do sinal de comparao.
1 1 Borda de subida do sinal de comparao.
Bit 7 6 5 4 3 2 1 0
DIDR1
- - - - - -
AN1D AN0D
L/Escreve L L L L L L L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

428
ACME ADEN MUX2.. 0 Entrada Negativa para o Comparador AnaI gi co
0 x xxx A N1
1 1 xxx A N1
1 0 000 ADC0
1 0 001 ADC1
1 0 010 ADC2
1 0 011 ADC3
1 0 100 ADC4
1 0 101 ADC5
1 0 110 ADC6 (somente nos encapsulament os TQFP e QFN/MLF)
1 0 111 ADC7 (somente nos encapsulament os TQFP e QFN/MLF)

44
O LDR (Li ght Dependent Resistor) um foto resistor empregado como sensor de luminosidade:
quanto maior a quantidade de luz que o at inge, menor a sua resistnci a.
45
Se o potencimetro for considerado como duas resistnci as separadas no ponto de ajuste, o circuito
de entrada para o comparador similar a chamada Ponte de Wheatst one. Com a vari ao de
temperatura os valores das resist ncias nessa ponte tendem a mudar. Entretanto, a vari ao percent ual
prati camente a mesma nos seus resistores, mant endo estvel a diferena de potencial dos pont os
medidos.
No circuit o da Fig. 18.2, dependendo da aplicao, pode ser empregado um resistor em srie com o
potenci met ro para melhorar a sensi bilidade do circuit o. Nesse caso, o potencimetro deve ser
confi gurado como resi stor varivel e o sinal de t enso obtido na conexo do potencimetro com esse
novo resistor.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
429
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

430
18.1 MEDNDO RESSTNCAS E CAPACTNCAS

46
Ver os appli cati ons not es da Microchip: Impl ementing Ohmmet er/ Temperature Sensor e Resistence
and Capacit ance Meter Using a PIC 16C622 ou PEREIRA, Fbio. Microcontroladores MSP430 -
Teoria e Prti ca. 1 ed. So Paul o: ri ca, 2005.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
431
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

432

47
O objetivo desta seo apresent ar o conceito que pode ser empregado para o clcul o do valor de um
capacit or. Os valores empregados no circuito podem ser diferentes de acordo com o programa utili zado.
No caso apresent ado, a tenso de 0,63 V deve ser provida por um circuito adequado.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
433
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

434
18.2 LENDO MLTPLAS TECLAS
48

48
Application not e da Microchip: Ti ps `n Tricks 8 pi n PIC Microcontrollers.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
435
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

436
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
437
19. CONVERSOR ANALGCO-DGTAL - ADC
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

438
.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
439
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

440
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
441
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

442
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
443
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

444
19.1 REGSTRADORES DO ADC
Bit 7 6 5 4 3 2 1 0
ADMUX REFS1 REFS0 ADLAR - MUX3 MUX2 MUX1 MUX0
L/Escreve L/E L/E L/E L L/E L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
REFS1 REFS0 SeIeo da Tenso de Referncia
0 0 AREF, tenso interna V
REF
desligada.
0 1 AVCC. Deve-se empregar um capacitor de 100 nF entre o pino
AREF e o GND.
1 0 Reservado.
1 1 Tenso interna de referncia de 1,1 V. Deve-se empregar um
capacitor de 100 nF entre o pino AREF e o GND.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
445
MUX3.. 0 Entrada
0000 ADC0
0001 ADC1
0010 ADC2
0011 ADC3
0100 ADC4
0101 ADC5
0110 ADC6
0111 ADC7
1000 Sensor int erno de temperat ura
1001-1101 reservado
1110 1,1 V (t enso f ixa para ref erncia)
1111 0 V (GND)
Bit 7 6 5 4 3 2 1 0
ADCSRA ADEN ADSC ADATE ADF ADE ADPS2 ADPS1 ADPS0
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Val or nicial 0 0 0 0 0 0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

446
ADPS2 ADPS1 ADPS0 Fator de Diviso
0 0 0 2
0 0 1 2
0 1 0 4
0 1 1 8
1 0 0 16
1 0 1 32
1 1 0 64
1 1 1 128
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
447
15 14 13 12 11 10 9 8
ADLAR=0 ADCH - - - - - - ADC9 ADC8
ADCL
ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADC0
Bit 7 6 5 4 3 2 1 0
L/Escreve L L L L L L L L
L L L L L L L L
Val or nicial 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
15 14 13 12 11 10 9 8
ADLAR=1 ADCH ADC9 ADC8 ADC7 ADC6 ADC5 ADC4 ADC3 ADC2
ADCL
ADC1 ADC0 - - - - - -
Bit 7 6 5 4 3 2 1 0
L/Escreve L L L L L L L L
L L L L L L L L
Valor ni cial 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Bit 7 6 5 4 3 2 1 0
ADCSRB
- ACME - - - ADTS2 ADTS1 ADTS0
L/Escreve L L/E L L L L/E L/E L/E
Val or nicial 0 0 0 0 0 0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

448
ADTS2 ADTS1 ADTS0 Fonte de di sparo
0 0 0 converso cont nua
0 0 1 comparador Analgico
0 1 0 int errupo Externa 0
0 1 1 igualdade de comparao A do TC0
1 0 0 estouro de contagem do TC0
1 0 1 igualdade de comparao B do TC1
1 1 0 estouro de contagem do TC1
1 1 1 event o de capt ura do TC1
Bit 7 6 5 4 3 2 1 0
DIDR0 - - ADC5D
ADC4D ADC3D ADC2D ADC1D ADC0D
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Val or nicial 0 0 0 0 0 0 0 0
19.2 MEDO DE TEMPERATURA
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
449
Temperatura - 45 C + 25 C + 85 C
Tenso 242 mV 314 mV 380 mV


49
Application not e da Atmel: AVR122: Cal ibration of the AVR's internal temperature reference.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

450
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
451
19.3 LENDO UM TECLADO MATRCAL
50

50
Application not e da Microchip: Ti ps `n Tricks 8 pi n PIC Microcontrollers.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

452
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
453
19.4 SENSOR DE TEMPERATURA LM35
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

454

51
A plat aforma Arduino no segue a recomendao da Atmel quanto ao uso do indutor li gado ao pi no
AVCC e do capacitor li gado ao pino AREF (ver circui to na fi g. 3.2).
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
455
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

456
19.5 SOBREAMOSTRAGEM
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
457

52
Application Note da At mel: AVR121: Enhanci ng ADC resol ution by oversampling.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

458
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
459
19.6 FLTRO DE MDA MVEL
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

460
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
461

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

462
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
463
20. MESCLANDO PROGRAMAO C COM
ASSEMBLY
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

464

53
O termo Assemblador no exist e na lngua portuguesa, a melhor t raduo seria: montador assembl y
(conversor do arquivo fonte assembly para o cdigo de mquina). O t ermo li gador corresponde a li nker
em ingl s, ele faz a conexo entre os arqui vos objeto, previament e compi lados, para um ni co arquivo
*.hex.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
465
20.1 USO DOS REGSTRADORES DO AVR
20.2 CONVENO NA CHAMADA DE FUNES
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

466
20.3 EXEMPLOS

54
Obs.: na verso uti lizada do AVR Studi o 5.1, o arquivo *.S aparece com o texto t ot al ment e em preto,
sem a dist ino de cores entre os termos da programao. Isto uma falha do AVR Studi o, mas no
int erfere no resul tado.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
467
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

468
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
469
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

470
20.4 O ARQUVO MAP
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
471
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

472
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
473
21. RTOS
21.1 NTRODUO
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

474
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
475
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

476
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
477
21.2 GESTO DE TAREFAS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

478
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
479
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

480
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
481

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

482
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
483
21.3 COMUNCAO E SNCRONZAO ENTRE
TAREFAS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

484
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
485
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

486
21.4 ALOCAO DNMCA DE MEMRA
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
487
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

488
21.5 BRTOS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
489
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

490
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
491
Programao ConvencionaI RTOS
Pode utilizar funes ou no. Cada funo no
pode conter um lao infinito.
Cada funo uma tarefa independente do RTOS,
com um lao infinito de execuo.
As tarefas so sequenciais, executadas no
programa principal dentro de um lao infinito. O
paralelismo que se consegue com o uso das
interrupes do microcontrolador.
As tarefas so concorrent e. O RTOS gerencia sua
execuo. Existe a sensao de paralelismo na
execuo e, ainda, as interrupes normais do
microcontroladores podem ser utilizadas.
O programa pode travar em alguma funo, como
por exemplo, quando existe um lao de espera que
nunca finalizado, pois a execuo do programa
sequencial.
O programa no trava em funes com laos de
espera. Se uma tarefa ficar presa, o RTOS vai
passar o controle para outra funo com o passar
do tempo.
Dependendo do problema, maior complexidade de
programao.
Menor complexidade de programao - melhor
estruturao.
Uso de menor quantidade de memria. Emprega mais memria, impacto maior na RAM.
Pode obter o mximo de desempenho, com a
utilizao constante da CPU para a execuo do
programa.
Perda de processamento na troca de contexto pela
CPU (overhead).
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

492
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
493
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

494

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
495
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

496
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
497
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

498
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
499
22. A DE DO ARDUNO
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

500
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
501
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

502

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
503
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

504
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
505
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

506
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
507
23. FUSVES E A GRAVAO DO ATMEGA328
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

508
23.1 OS FUSVES E BTS DE BLOQUEO
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
509
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
EXTENDED
HGH
LOW
LOCK BTS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

510
Bits do Byte
EXTENDED
Nr.
Bit
Descrio VaIor
Default
BODLEVEL2 2
Seleciona o nvel de tenso para reinicializao
caso a tenso de alimentao caia abaixo do valor
pr-determinado:
111 - desligado
110 - 1,8 V
101 - 2,7 V
100 - 4,3 V
1
BODLEVEL1 1
1
BODLEVEL0 0 1
Bits do
Byte HIGH
Nr.
Bit
Descrio VaIor Default
RSTDSBL 7 Seleo do pino PC6 como Reset ou /O
1 (no programado,
PC6 o pino de Reset)
DWEN 6 Habilita a depurao por debug Wire
1 (no programado)
SPEN 5
Habilita a programao serial 0 (programado, SP
habilitada)
WDTON 4 Watchdog sempre ligado 1 (no programado)
EESAVE 3
A memria EEPROM preservada quando
o chip f or apagado
1 (no programado,
EEPROM no
preservada)
BOOTSZ1
2
Define o tamanho da regio de boot loader:
00 - 2048 words, incio no endereo 0x3800
01 - 1024 words, incio no endereo 0x3C00
10 - 512 words, incio no endereo 0x3E00
11 - 256 words, incio no endereo 0x3F00
0
BOOTSZ0 1 0
BOOTRST 0
Define o endereo de incio de execuo do
programa aps a inicializao:
0 - endereo do boot loader
1 - incio da flash (0x0000)
1
Bits do
Byte LOW
Nr.
Bit
Descrio VaIor Default
CKDV8 7
Divide o clock de trabalho por 8
0 (programado)
CKOUT 6 Habilita o sinal de clock no pino CLKO 1 (no programado)
SUT1 5 Em conjunto com os bits CKSELx define o
tempo para a inicializao.
1
SUT0 4 0
CKSEL3 3 Seleo da fonte de clock:
0000 - sinal externo
0010 - fonte interna (RC) de 8 MHz
0011 - fonte interna (RC) de 128 kHz
010x - cristal externo de 32 kHz
011x - cristal ou ressonador externo (full swing)
1xxx - cristal ou ressonador externo (low power)
0
CKSEL2 2 0
CKSEL1 1 1
CKSEL0 0 0
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
511
Bit
Nr.
Bit
Descrio VaIor
Default
BLB12 5 Controlam o acesso a regio de aplicao (software) da flash atravs
das instrues LPM e SPM:
00: a instruo SPM no pode gravar na rea de apli cao. LPM
executado no boot loader no pode ler a rea de aplicao.
01: LPM executada no boot loader no pode ler a rea da aplicao.
10: a instruo SPM no pode gravar na rea de apli cao.
11: sem restries.
1
BLB11 4 1
BLB02 3 Controlam o acesso a regio do boot loader atravs das instrues
LPM e SPM:
00: a instruo SPM no pode gravar na rea de boot loader. LPM
executado na aplicao no pode ler a rea de boot loader.
01: LPM executada na aplicao no pode ler a rea do boot loader.
10: a instruo SPM no pode gravar na rea de boot loader.
11: sem restries.
1
BLB01 2 1
LB2 1
11 - acesso livre a flash, fusveis e lock bits.
10 - acesso bloqueado flash e aos fusveis.
00 - acesso bloqueado flash, fusveis e lock bits.
1
LB1 0 1
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

512
23.2 HARDWARE DE GRAVAO
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
513
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

514
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
515
.
23.3 O TEMPORZADOR WATCHDOG
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

516
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
517

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

518
Bit 7 6 5 4 3 2 1 0
MCUSR - - - - WDRF BORF EXTRF PORF
L/Escreve L L L L L/E L/E L/E L/E
Val or nicial 0 0 0 0 - - - -


55
Tal procedi ment o no foi adotado em nenhum programa dest e li vro.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
519
Bit 7 6 5 4 3 2 1 0
WDTCSR WDF WDE WDP3 WDCE WDE WDP2 WDP1 WDP0
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Val or nicial 0 0 0 0 - 0 0 0
WDTON
*
WDE WDIE Modo Ao no estouro
1 0 0 Parado Nenhuma
1 0 1 nterrupo
Desvio para o vetor de
interrupo
1 1 0 nicializao do sistema nicializao
1 1 1
nterrupo e nicializao
do sistema.
Desvio para o vetor de
interrupo, ento vai para o
modo de inicializao do
sistema.
0 x x nicializao do sistema nicializao

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

520
WDP3 WDP2 WDP1 WDP0 Nr. de cicIos do osciIador do WDT Tempo Iimite tpico
com VCC = 5V
0 0 0 0 2k -2048 16 ms
0 0 0 1 4k - 4096 32 ms
0 0 1 0 8k - 8192 64 ms
0 0 1 1 16k - 16384 0,125 s
0 1 0 0 32k - 32768 0,25 s
0 1 0 1 64k - 65536 0,5 s
0 1 1 0 128 k - 131072 1,0 s
0 1 1 1 256 k - 262144 2,0 s
1 0 0 0 512 k - 524288 4,0 s
1 0 0 1 1024 k - 1048576 8,0 s
- - - - demais valores reservados -
23.4 GRAVAO N-SYSTEM DO ATMEGA
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
521
Pi no Nome Comentri o
SCK Clock serial Clock de programao gerado pelo gravador (mestre).
MOS
Sada do mest re
entrada do escravo
Linha de comunicao do mest re (gravador) para o escravo
(microcontrolador a ser gravado).
MSO
Entrada do mest re
sada do escravo
Linha de comunicao do escravo (microcontrolador a ser
gravado) para o mestre (gravador).
GND Terra comum Mestre e escravo devem compart ilhar o mesmo terra.
RESET
Reset do
microcont rolador
Para habilitar a gravao In-System, o reset do
microcont rolador (escravo) deve ser mantido at ivo pelo
gravador.
VCC
Aliment ao do
microcont rolador
O gravador pode fornecer alimentao ao microcontrolador
ou utilizar a alimentao dest e na programao. Assim, o
microcont rolador pode operar em qualquer tenso.

56
Ver o appli cation note da Atmel: In-System Programming.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

522

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
523
24. CONSDERAES FNAS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

524
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
525
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

526
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
527

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

528
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
529
25. REFERNCAS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

530

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
531
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

532

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
533


V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

534
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
535

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

536
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
537
A. ASSEMBLY DO ATMEGA
A.1 NSTRUES DO ATMEGA
Mnem-
nico
Operan
-dos
Descrio Operao
Flags
INSTRUES ARITMTICAS E LGI CAS
ADD Rd, Rr Soma dois registradores Rd Rd + Rr Z, C, N, V, H 1
ADC Rd, Rr Soma dois registradores com Carry Rd Rd + Rr + C Z, C, N, V, H 1
ADW Rdl , K
Soma o valor imediato palavra (16
bi ts)
Rdh:Rdl Rdh:Rdl + K Z, C, N, V, S 2
SUB Rd, Rr Subtrai doi s registradores Rd Rd - Rr Z, C, N, V, H 1
SUB Rd, K Subtrai uma constante do registrador Rd Rd - K Z, C, N, V, H 1
SBC Rd, Rr Subtrai doi s registradores com Carry Rd Rd - Rr - C Z, C, N, V, H 1
SBC Rd, K
Subtrai constante de regi strador com
Carry
Rd Rd - K - C Z, C, N, V, H 1
SBW Rdl , K
Subtrai valor i medi ato da palavra (16
bi ts)
Rdh:Rdl Rdh:Rdl - K Z, C, N, V, S 2
AND Rd, Rr Lgica E entre registradores Rd Rd Rr Z, N, V 1
AND Rd, K Lgica E entre registrador e constante Rd Rd K Z, N, V 1
OR Rd, Rr Lgica OU entre registradores Rd Rd v Rr Z, N, V 1
OR Rd, K
Lgi ca OU entre registrador e
constante
Rd Rd v K Z, N, V 1
EOR Rd, Rr
OU EXCLUSVO entre registradores
Rd Rd Rr Z, N, V 1
COM Rd Complemento de um Rd 0xFF - Rd Z, C, N, V 1
NEG Rd Complemento de dois Rd 0x00 - Rd Z, C, N, V, H 1
SBR Rd, K Ativa bi t(s) no registrador Rd Rd v K Z, N, V 1
CBR Rd, K Li mpa bi t(s) no registrador Rd Rd (0xFF - K) Z, N, V 1
NC Rd ncrementa regi strador Rd Rd + 1 Z, N, V 1
DEC Rd Decrementa registrador Rd Rd - 1 Z, N, V 1
TST Rd Teste de zero ou negativo Rd Rd Rr Z, N, V 1
CLR Rd Li mpa registrador Rd Rd Rd Z, N, V 1
SER Rd Ativa registrador (todos os bits em 1) Rd 0xFF Nenhum 1
MUL Rd, Rr Mul ti pli ca sem si nal R1:R0 Rd Rr Z, C 2
MULS Rd, Rr Mul ti pli ca com si nal R1:R0 Rd Rr Z, C 2
MULSU Rd, Rr
Mul ti pli ca regi strador com sinal e sem
sinal
R1:R0 Rd Rr Z, C 2
FMUL Rd, Rr Mul ti pli cao fraci onria sem sinal R1:R0 (Rd Rr) << 1 Z, C 2
FMULS Rd, Rr Mul ti pli cao fraci onria com sinal R1:R0 (Rd Rr) << 1 Z, C 2
FMULSU Rd, Rr
Mul ti pli cao fraci onria de registrador
com sinal e sem sinal
R1:R0 (Rd Rr) << 1 Z, C 2
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

538
INSTRUES DE DESVIO
RJMP k Desvi o relati vo PC PC + k + 1 Nenhum 2
JMP Desvi o indireto para (Z) PC Z Nenhum 2
RCALL k Chama de sub-rotina PC PC + k + 1 Nenhum 3
CALL Chamada i ndi reta par a (Z) PC Z Nenhum 3
RET Retor no de sub-rotina PC STACK Nenhum 4
RET Retor no de interrupo PC STACK 4
CPSE Rd, Rr Compara, pul a se igual if(Rd=Rr) PC PC + 2 ou 3 Nenhum 1/ 2/ 3
CP Rd, Rr Compara Rd - Rr Z,N,V,C,H 1
CPC Rd, Rr Compara com Carry Rd - Rr - C Z,N,V,C,H 1
CP Rd, K
Compara registrador com valor
imediato
Rd - K Z,N,V,C,H 1
SBRC Rr, b
Pul a se o bit do registrador
estiver l impo (0)
if(Rr(b)=0) PC PC + 2 ou 3 Nenhum 1/ 2/ 3
SBRS Rr, b
Pul a se o bit do registrador
estiver ati vo (1)
if(Rr(b)=1) PC PC + 2 ou 3 Nenhum 1/ 2/ 3
SBC P, b
Pul a se o bit do registrador de
/O estiver li mpo (0)
if(P(b)=0) PC PC + 2 ou 3 Nenhum 1/ 2/ 3
SBS P, b
Pul a se o bit do registrador de
/O estiver ativo (1)
if(P(b)=1) PC PC + 2 ou 3 Nenhum 1/ 2/ 3
BRBS s, k
Desvia se o bi t de si nal izao de
status estiver ativo (1)
if(SREG(s)=1) PC PC + k + 1 Nenhum 1/ 2
BRBC s, k
Desvia se o bi t de si nal izao de
status estiver li mpo (0)
if(SREG(s)=0) PC PC + k + 1 Nenhum 1/ 2
BREQ k Desvi a se igual if(Z=1) PC PC + k + 1 Nenhum 1/ 2
BRNE k Desvi a se diferente if(Z=0) PC PC + k + 1 Nenhum 1/ 2
BRCS k
Desvia se o bi t de Carry estiver
ativo (1)
if(C=1) PC PC + k + 1 Nenhum 1/ 2
BRCC k
Desvia se o bi t de Carry estiver
li mpo (0)
if(C=0) PC PC + k + 1 Nenhum 1/ 2
BRSH k Desvi a se igual ou maior if(C=0) PC PC + k + 1 Nenhum 1/ 2
BRLO k Desvi a se menor if(C=1) PC PC + k + 1 Nenhum 1/ 2
BRM k Desvi a se negativo if(N=1) PC PC + k + 1 Nenhum 1/ 2
BRPL k Desvi a se posi ti vo if(N=0) PC PC + k + 1 Nenhum 1/ 2
BRGE k
Desvia se mai or ou igual , com
sinal
if(N V = 0) PC PC + k + 1 Nenhum 1/ 2
BRLT k
Desvia se menor que zero, com
sinal
if(N

V = 1) PC PC + k + 1 Nenhum 1/ 2
BRHS k
Desvia se o bi t sinali zador de
Carry auxi liar esti ver ativo (1)
if(H=1) PC PC + k + 1 Nenhum 1/ 2
BRHC k
Desvia se o bi t sinali zador de
Carry auxi liar esti ver limpo (0)
if(H=0) PC PC + k + 1 Nenhum 1/ 2
BRTS k
Desvia se o bi t sinali zador T
estiver ati vo (1)
if(T=1) PC PC + k + 1 Nenhum 1/ 2
BRTC k
Desvia se o bi t sinali zador T
estiver l impo (0)
if(T=0) PC PC + k + 1 Nenhum 1/ 2
BRVS k
Desvia se o bi t sinali zador de
estouro estiver ativo (1)
if(V=1) PC PC + k + 1 Nenhum 1/ 2
BRVC k
Desvia se o bi t sinali zador de
estouro estiver li mpo (0)
if(V=0) PC PC + k + 1 Nenhum 1/ 2
BRE k
Desvia se a interrupo estiver
habil itada
if(=1) PC PC + k + 1 Nenhum 1/ 2
BRD k
Desvia se a interrupo estiver
desabi litada
if(=0) PC PC + k + 1 Nenhum 1/ 2
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
539
INSTRUES PARA A TRANSFERNCIA DE DADOS
MOV Rd, Rr Movi mento entre registradores Rd Rr Nenhum 1
MOVW Rd, Rr Copia registrador de palavra Rd + 1:Rd Rr + 1:Rr Nenhum 1
LD Rd, K Carrega val or imediato Rd K Nenhum 1
LD Rd, X Carrega i ndi retamente Rd (X) Nenhum 2
LD Rd, X+
Carrega i ndi retamente com ps-
incremento
Rd (X), X X + 1 Nenhum 2
LD Rd, -X
Carrega i ndi retamente com pr-
decremento
X X - 1, Rd (X) Nenhum 2
LD Rd, Y Carrega i ndi retamente Rd (Y) Nenhum 2
LD Rd, Y+
Carrega i ndi retamente com ps-
incremento
Rd (Y), Y Y + 1 Nenhum 2
LD Rd, -Y
Carrega i ndi retamente com pr-
decremento
Y Y - 1, Rd (Y) Nenhum 2
LDD Rd, Y+q
Carrega i ndi retamente com
deslocamento
Rd (Y + q) Nenhum 2
LD Rd, Z Carrega i ndi retamente Rd (Z) Nenhum 2
LD Rd, Z+
Carrega i ndi retamente com ps-
incremento
Rd (Z), Z Z + 1 Nenhum 2
LD Rd, -Z
Carrega i ndi retamente com pr-
decremento
Z Z - 1, Rd (Z) Nenhum 2
LDD Rd, Z+q
Carrega i ndi retamente com
deslocamento
Rd (Z + q) Nenhum 2
LDS Rd, k Carrega di retamente da SRAM Rd (k) Nenhum 2
ST X, Rr Armazena indiretamente (X) Rr Nenhum 2
ST X+, Rr
Armazena indiretamente com ps-
incremento
(X) Rr, X X + 1 Nenhum 2
ST - X, Rr
Armazena indiretamente com pr-
incremento
X X - 1, (X) Rr Nenhum 2
ST Y, Rr Armazena indiretamente (Y) Rr Nenhum 2
ST Y+, Rr
Armazena indiretamente com ps-
incremento
(Y) Rr, Y Y + 1 Nenhum 2
ST - Y, Rr
Armazena indiretamente com pr-
incremento
Y Y - 1, (Y) Rr Nenhum 2
STD Y+q, Rr
Carrega i ndi retamente com
deslocamento
(Y + q) Rd Nenhum 2
ST Z, Rr Armazena indiretamente (Z) Rr Nenhum 2
ST Z+, Rr
Armazena indiretamente com ps-
incremento
(Z) Rr, Z Z + 1 Nenhum 2
ST - Z, Rr
Armazena indiretamente com pr-
incremento
Z Z - 1, (Z) Rr Nenhum 2
STD Z+q, Rr
Carrega i ndi retamente com
deslocamento
(Z + q) Rd Nenhum 2
STS k, Rr Carrega di retamente para SRAM (k) Rd Nenhum 2
LPM Carrega a memria de programa R0 (Z) Nenhum 3
LPM Rd, Z Carrega a memria de programa Rd (Z) Nenhum 3
LPM Rd, Z+
Carrega a memria de programa com
ps-incremento
Rd (Z), Z Z + 1 Nenhum 3
SPM Armazena a memri a de programa (Z) R1:R0 Nenhum -
N Rd, P Leitura de registrador de /O Rd P Nenhum 1
OUT P, Rr Escrita de registrador de /O P Rr Nenhum 1
PUSH Rr Coloca registrador na pil ha ( Stack) STACK Rr Nenhum 2
POP Rd Reti ra regi strador da pilha (Stack) Rd STACK Nenhum 2
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

540
INSTRUES DE BIT E TESTE DE BIT
SB P, b Ati va o bi t no registrador de /O /O(P,b) 1 Nenhum 2
CB P, b Li mpa o bi t do registrador de /O /O(P,b) 0 Nenhum 2
LSL Rd Desl ocamento lgico esquerda Rd(n+1) Rd(n), Rd(0) 0 Z, C, N, V 1
LSR Rd Desl ocamento lgico di reita Rd(n) Rd(n+1), Rd(7) 0 Z, C, N, V 1
ROL Rd
Rotao esquerda atravs do
Carry
Rd(0) C, Rd(n+1) Rd(n), C Rd(7) Z, C, N, V 1
ROR Rd Rotao direita atravs do Carry Rd(7) C, Rd(n) Rd(n+1), C Rd(0) Z, C, N, V 1
ASR Rd Desl ocamento ari tmtico direi ta Rd(n) Rd(n+1), n=0..6 Z, C, N, V 1
SWAP Rd Tr oca ni bbl es (4 bits)
Rd(3.. 0) Rd(7.. 4), Rd(7..4) Rd(3.. 0)
Nenhum 1
BSET s Ati va bit (flag) SREG(s) 1 SREG(s) 1
BCLR s Li mpa bi t (flag) SREG(s) 0 SREG(s) 1
BST Rr, b
Armazenagem do bi t do registrador
para o T
T Rr(b) T 1
BLD Rd, b Carga do bi t T para o registrador Rd(b) T Nenhum 1
SEC Ati va o Carry C 1 C 1
CLC Li ma o Carry C 0 C 1
SEN Ati va o bi t de negati vo N 1 N 1
CLN Li ma o bit de negativo N 0 N 1
SEZ Ati va o bi t de zero Z 1 Z 1
CLZ Li mpa o bi t de zero Z 0 Z 1
SE Habili ta a i nterrupo gl obal 1 1
CL Desabil ita interrupo global 0 1
SES Ati va o bi t de teste de si nal S 1 S 1
CLS Desati va o bi t de teste de sinal S 0 S 1
SEV
Ativa o bi t de estouro do
complemento de dois
V 1 V 1
CLV
Li mpa o bi t de estouro do
complemento de dois
V 0 V 1
SET Ati va o bi t T T 1 T 1
CLT Li mpa o bi t T T 0 T 1
SEH Ati va o bi t de Carry auxili ar H 1 H 1
CLH Li mpa o bi t de Carry auxili ar H 0 H 1
INSTRUES DE CONTROLE DA UNI DADE MICROCONTROLADA
NOP Nenhuma operao Nenhum 1
SLEEP Entra no modo sleep Consul tar manual do fabri cante Nenhum 1
WDR Reset do Watchdog Consultar manual do fabricante Nenhum 1
Ativao de bit significa coloc- lo em 1.
Limpeza de bit significa coloc-lo em 0.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
541
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

542
A.2 STATUS REGSTER
Bit 7 6 5 4 3 2 1 0
SREG T H S V N Z C
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
543
B. DSPLAY DE CRSTAL LQUDO 16 x 2 -
CONTROLADOR HD44780
B.1 PNAGEM

Pi no Funo Descrio
1 Alimentao VSS (GND)
2 Alimentao VCC
3 VEE
Tenso para ajuste do
contrast e do LCD
4 RS
Regist er Select : 1 = dado,
0 = instruo
5 R/W
Read/Writ e: 1 = leitura,
0 = escrit a
6 E
Enable: 1 = habilita,
0 = desabilita
7 DB0
Barramento
de
dados
8 DB1
9 DB2
10 DB3
11 DB4
12 DB5
13 DB6
14 DB7
15 LED+ (A)
Anodo do LED de
iluminao de fundo
16 LED - (K)
Catodo do LED de
iluminao de fundo
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

544
B.2 CDGOS DE NSTRUES
INSTRUO Descrio
Li mpa Di splay 0 0 0 0 0 0 0 0 0 1
Li mpa todo o displ ay e retorna o cursor
para a primeira posio da primeira
li nha.
1,6
ms
Retorno do
cursor
0 0 0 0 0 0 0 0 1 -
Retorna o cursor para a 1 coluna da
1 l inha. Retorna a mensagem
previamente desl ocada a sua posio
ori ginal.
1,6
ms
Fixa o modo
de Funciona-
mento
0 0 0 0 0 0 0 1 X S
Ajusta o sentido de desl ocamento do
cursor (X=0 p/ a esquerda, X=1 p/ a
di reita). Determi na se a mensagem
deve ou no ser desl ocada com a
entrada de um novo caractere (S = 1,
SM). Esta instruo tem efeito
somente durante a lei tura e escrita de
dados.
40 s
Controle do
Di splay
0 0 0 0 0 0 1 D C B
Li ga (D=1) ou desli ga di splay (D=0).
Li ga (C=1) ou desli ga cursor (C=0).
Cursor piscante (B=1) se C=1.
40 s
Desloca
cursor
ou mensagem
0 0 0 0 0 1 C R - -
Desloca o cursor (C=0) ou a
mensagem(C=1) para a di reita se R=1
ou esquerda se R=0. Desl oca sem
al terar o contedo da DDRAM
40 s
Fixa modo de
util izao do
mdulo LCD
0 0 0 0 1 Y N F - -
Comuni cao do mdulo com 8 bi ts
(Y=1) ou 4 bi ts (Y=0).
Nmero de l inhas: 1 (N=0) e 2 ou mais
(N=1). Matri z do caracter e: 57 (F=0)
ou 510 (F=1). Esta instruo deve ser
empregada na i nici ali zao.
40 s
Endereo da
CGRAM
0 0 0 1 Endereo da CGRAM
Fixa o endereo da CGRAM para
posterior envio ou l eitura de um dado
(byte).
40 s
Endereo da
DDRAM
0 0 1 Endereo da DDRAM
Fixa o endereo da DDRAM para
posterior envio ou l eitura de um dado
(byte).
40 s
Leitura do bit
de ocupado e
do contedo
de endereos
0 1
B
F
AC
L o contedo do contador de
endereos AC e o BF. O bi t 7 do BF
indica se a ltima operao foi
concluda (BF=0 concl uda, BF=1 em
execuo).
-
Escreve dado
na CGRAM/
DDRAM
1 0 Dado a ser gravado no LCD
Grava o byte presente nos pinos de
dados no l ocal apontado pelo contador
de endereos (posio do cursor).
40 s
L dado da
CGRAM/
DDRAM
1 1 Dado li do do mdul o
L o byte do local apontado pelo
contador de endereos (posio do
cursor).
40 s

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
545
Descrio Modo Cdigo Hexa
Controle do display Liga (sem cursor) 0x0C
Desliga 0x0A/0x08
Limpa display com retorno do cursor 0x01
Controle do cursor
Liga 0x0E
Desliga 0x0C
Desloca p/ a esquerda 0x10
Desloca p/ a direita 0x14
Retorno 0x02
Cursor piscante 0x0D
Cursor com alternncia 0x0F
Sentido de deslocamento do cursor
na entrada de um caractere
Para a esquerda 0x04
Para a direita 0x06
Deslocamento da mensagem na
entrada de um caractere
Para a esquerda 0x07
Para a direita 0x05
Deslocamento da mensagem
sem a entrada de caractere
Para a esquerda 0x18
Para a direita 0x1C
Endereo da primeira posio
do cursor
Primeira linha 0x80
Segunda linha 0xC0
B.3 ENDEREO DOS SEGMENTOS (DDRAM)
B.4 CONJUNTO E CDGO DOS CARACTERES
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

546
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
547
C. ERROS E AJUSTE DA TAXA DE
COMUNCAO DA USART
Taxa de
comunicao
(bps)
f
osc
= 1,0000 MHz f
osc
= 1,8432 MHz
U2X0=0 U2X0=1 U2X0=0 U2X0=1
UBRR0 Erro UBRR0 Erro UBRR0 Erro UBRR0 Erro
2400 25 0,2% 51 0,2% 47 0,0% 95 0,0%
4800 12 0,2% 25 0,2% 23 0,0% 47 0,0%
9600 6 -7,0% 12 0,2% 11 0,0% 23 0,0%
14,4 k 3 8,5% 8 -3,5% 7 0,0% 15 0,0%
19,2 k 2 8,5% 6 -7,0% 5 0,0% 11 0,0%
28,8 k 1 8,5% 3 8,5% 3 0,0% 7 0,0%
38,4 k 1 -18,6% 2 8,5% 2 0,0% 5 0,0%
57,6 k 0 8,5% 1 8,5% 1 0,0% 3 0,0%
76,8 k - - 1 -18,6% 1 -25,0% 2 0,0%
115,2 k - - 0 8,5% 0 0,0% 1 0,0%
230,4 k - - - - - - 0 0,0%
250 k - - - - - - - -
Mximo 62,5 kbps 125 kbps 115,2 kbps 230,4 kbps
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

548
Taxa de
comunicao
(bps)
f
osc
= 2,0000 MHz f
osc
= 3,6864 MHz
U2X0=0 U2X0=1 U2X0=0 U2X0=1
UBRR0 Erro UBRR0 Erro UBRR0 Erro UBRR0 Erro
2400 51 0,2% 103 0,2% 95 0,0% 191 0,0%
4800 25 0,2% 51 0,2% 47 0,0% 95 0,0%
9600 12 0,2% 25 0,2% 23 0,0% 47 0,0%
14,4 k 8 -3,5% 16 2,1% 15 0,0% 31 0,0%
19,2 k 6 -7,0% 12 0,2% 11 0,0% 23 0,0%
28,8 k 3 8,5% 8 -3,5% 7 0,0% 15 0,0%
38,4 k 2 8,5% 6 -7,0% 5 0,0% 11 0,0%
57,6 k 1 8,5% 3 8,5% 3 0,0% 7 0,0%
76,8 k 1 -18,6% 2 8,5% 2 0,0% 5 0,0%
115,2 k 0 8,5% 1 8,5% 1 0,0% 3 0,0%
230,4 k - - - - 0 0,0% 1 0,0%
250 k - - 0 0,0% 0 -7,8% 1 -7,8%
0,5 M - - - - - 0 -7,8%
Mximo 125 kbps 250 kbps 230,4 kbps 460,8 kbps
Taxa de
comunicao
(bps)
f
osc
= 4,0000 MHz f
osc
= 7,3728 MHz
U2X0=0 U2X0=1 U2X0=0 U2X0=1
UBRR0 Erro UBRR0 Erro UBRR0 Erro UBRR0 Erro
2400 103 0,2% 207 0,2% 191 0,0% 383 0,0%
4800 51 0,2% 103 0,2% 95 0,0% 191 0,0%
9600 25 0,2% 51 0,2% 47 0,0% 95 0,0%
14,4 k 16 2,1% 34 -0,8% 31 0,0% 63 0,0%
19,2 k 12 0,2% 25 0,2% 23 0,0% 47 0,0%
28,8 k 8 -3,5% 16 2,1% 15 0,0% 31 0,0%
38,4 k 6 -7,0% 12 0,2% 11 0,0% 23 0,0%
57,6 k 3 8,5% 8 -3,5% 7 0,0% 15 0,0%
76,8 k 2 8,5% 6 -7,0% 5 0,0% 11 0,0%
115,2 k 1 8,5% 3 8,5% 3 0,0% 7 0,0%
230,4 k 0 8,5% 1 8,5% 1 0,0% 3 0,0%
250 k 0 0,0% 1 0,0% 1 -7,8% 3 -7,8%
0,5 M - - 0 0,0% 0 -7,8% 1 -7,8%
1 M - - - - - - 0 -7,8%
Mximo 250 kbps 0,5 Mbps 460,8 kbps 921,6 kbps

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
549
Taxa de
comunicao
(bps)
f
osc
= 8,0000 MHz f
osc
= 11,0592 MHz
U2X0=0 U2X0=1 U2X0=0 U2X0=1
UBRR0 Erro UBRR0 Erro UBRR0 Erro UBRR0 Erro
2400 207 0,2% 416 -0,1% 287 0,0% 575 0,0%
4800 103 0,2% 207 0,2% 143 0,0% 287 0,0%
9600 51 0,2% 103 0,2% 71 0,0% 143 0,0%
14,4 k 34 -0,8% 68 0,6% 47 0,0% 95 0,0%
19,2 k 25 0,2% 51 0,2% 35 0,0% 71 0,0%
28,8 k 16 2,1% 34 -0,8% 23 0,0% 47 0,0%
38,4 k 12 0,2% 25 0,2% 17 0,0% 35 0,0%
57,6 k 8 -3,5% 16 2,1% 11 0,0% 23 0,0%
76,8 k 6 -7,0% 12 0,2% 8 0,0% 17 0,0%
115,2 k 3 8,5% 8 -3, 5% 5 0,0% 11 0,0%
230,4 k 1 8,5% 3 8,5% 2 0,0% 5 0,0%
250 k 1 0,0% 3 0,0% 2 -7,8% 5 -7,8%
0,5 M 0 0,0% 1 0,0% - - 2 -7,8%
1 M - - 0 0,0% - - - -
Mximo 0,5 Mbps 1 Mbps 691,2 kbps 1,3824 Mbps
Taxa de
comunicao
(bps)
f
osc
= 14,7456 MHz f
osc
= 16,0000 MHz
U2X0=0 U2X0=1 U2X0=0 U2X0=1
UBRR0 Erro UBRR0 Erro UBRR0 Erro UBRR0 Erro
2400 383 0,0% 767 0,0% 416 -0,1% 832 0,0%
4800 191 0,0% 383 0,0% 207 0,2% 416 -0,1%
9600 95 0,0% 191 0,0% 103 0,2% 207 0,2%
14,4 k 63 0,0% 127 0,0% 68 0,6% 138 -0,1%
19,2 k 47 0,0% 95 0,0% 51 0,2% 103 0,2%
28,8 k 31 0,0% 63 0,0% 34 -0,8% 68 0,6%
38,4 k 23 0,0% 47 0,0% 25 0,2% 51 0,2%
57,6 k 15 0,0% 31 0,0% 16 2,1% 34 -0,8%
76,8 k 11 0,0% 23 0,0% 12 0,2% 25 0,2%
115,2 k 7 0,0% 15 0,0% 8 -3,5% 16 2,1%
230,4 k 3 0,0% 7 0,0% 3 8,5% 8 -3,5%
250 k 3 -7,8% 6 5,3% 3 0,0% 7 0,0%
0,5 M 1 -7,8% 3 -7,8% 1 0,0% 3 0,0%
1 M 0 -7,8% 1 -7,8% 0 0,0% 1 0,0%
Mximo 921,6 kbps 1,8432 Mbps 1 Mbps 2 Mbps

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

550
Taxa de
comunicao
(bps)
f
osc
= 18,4320 MHz f
osc
= 20,0000 MHz
U2X0=0 U2X0=1 U2X0=0 U2X0=1
UBRR0 Erro UBRR0 Erro UBRR0 Erro UBRR0 Erro
2400 479 0,0% 959 0,0% 520 0,0% 1041 0,0%
4800 239 0,0% 479 0,0% 259 0,2% 520 0,0%
9600 119 0,0% 239 0,0% 129 0,2% 259 0,2%
14,4 k 79 0,0% 159 0,0% 86 -0,2% 173 -0,2%
19,2 k 59 0,0% 119 0,0% 64 0,2% 129 0,2%
28,8 k 39 0,0% 79 0,0% 42 0,9% 86 -0,2%
38,4 k 29 0,0% 59 0,0% 32 -1,4% 64 0,2%
57,6 k 19 0,0% 39 0,0% 21 -1,4% 42 0,9%
76,8 k 14 0,0% 29 0,0% 15 1,7% 32 -1,4%
115,2 k 9 0,0% 19 0,0% 10 -1,4% 21 -1,4%
230,4 k 4 0,0% 9 0,0% 4 8,5% 10 -1,4%
250 k 4 -7,8% 8 2,4% 4 0,0% 9 0,0%
0,5 M - - 4 -7,8% - - 4 0,0%
1 M - - - - - - - -
Mximo 1,152 Mbps 2,304 Mbps 1,25 Mbps 2,5 Mbps
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
551
D. CRCUTOS PARA O ACONAMENTO DE
CARGAS
D.1 A CHAVE TRANSSTORZADA
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

552

57
O estudo detalhado do transi stor est alm do escopo deste livro. Para mai ores detal hes ver:
BOYLESTAD, Robert L.; NASHELSKY, Louis. Dispositivos Eletrnicos e Teoria dos Circui tos. 8
ed. So Paulo: Prentice Hall, 2004.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
553
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

554
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
555
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

556
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
557

58
Deve ser empregado um diodo, denominado diodo de roda livre, paralelo bobina do rel, para evitar
dano ao transi stor durante o seu desl igamento. Isso necessri o porque no corte da corrent e de uma
bobina, aparece uma fora contra eletromotriz que induz uma tenso na bobina. Essa tenso possui
polari dade oposta de alimentao e sua magnitude pode ser elevada. Dest a forma, o diodo de roda
livre garante a desmagnetizao gradual do i ndutor (dissipao da energia acumul ada), grampeando a
tenso induzida em cerca de 0,7 V at que a corrente no indutor se anule.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

558
D.2 CRCUTOS NTEGRADOS PARA O SUPRMENTO DE
CORRENTES
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
559
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

560
D.3 ACOPLADORES PTCOS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
561
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

562

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
563
E. PROJETO DE PLACAS DE CRCUTO
MPRESSO - BSCO

E.1 UNDADE MPERAL E MTRCA

59
O circui to projetado no pode produzir int erferncia em out ros equi pamentos, nem sofrer
int erferncia externa, sendo que os nveis de rudo produzidos devem respeitar normas especfi cas.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

564
ImperiaI (poI egada) Mtrica (mm) Nome usuaI
1 25, 4 (2, 54cm) 1 inch pitch ou pitch
0, 2 5,08 0,2 inch pitch ou pitch
0, 1 2,54 100 mils ou 100 th (thou)
0, 05 1, 27 50 mils ou 50 t h (thou)
0, 01 0, 25 10 mils ou 10 t h (thou)
E.2 ENCAPSULAMENTOS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
565
E.2.1 COMPONENTES PTH
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

566
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
567
E.2.2 COMPONENTES SMD
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

568
E.3 PADS E VAS (PTH)
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
569
E.4 TRLHAS
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

570
Largura da tri Iha (cobre) Corrente [A] Corrente [A]
1 oz
*
2 oz
5 mils 0,5 0,7
10 mils 0,8 1,4
20 mils 1,4 2,2
30 mils 1,9 3,0
50 mils 2,5 4,0
100 mils 4,0 7,0

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
571
Tenso (DC ou AC de pico) Distncia entre triI has
0-30 V 0, 1 mm 8 mils
31-50 V 0,6 mm 25 mils
51-100 V 1,5 mm 60 mils
101-170 V 3,2 mm 150 mils
171-250 V 6,4 mm 300 mils
251-500 V 12, 5 mm 500 mils
E.5 REGRAS BSCAS DE DESENHO
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

572
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
573
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

574
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
575
E.6 PASSOS PARA O DESENHO DA PC
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

576
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
577
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

578
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
579
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

580
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
581
E.7 CONCLUSES

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

582
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
583
F. TABELAS DE CONVERSO
Caractere Dec Hex Caractere Dec Hex
NUL (Null char.) 0 00 SP (Space) 32 20
SOH (St art of Header) 1 01 ! 33 21
STX (St art of Text ) 2 02 " 34 22
ETX (End of Text) 3 03 # 35 23
EOT (End of Transmission) 4 04 $ 36 24
ENQ (Enquiry) 5 05 % 37 25
ACK (Acknowledgment) 6 06 & 38 26
BEL (Bell) 7 07 ' 39 27
BS (Backspace) 8 08 ( 40 28
HT (Horizont al Tab) 9 09 ) 41 29
LF (Line Feed) 10 0A * 42 2A
VT (Vert ical Tab) 11 0B + 43 2B
FF (Form Feed)
12 0C
,
44 2C
CR (Carriage Return) 13 0D - 45 2D
SO (Shift Out) 14 0E . 46 2E
SI (Shift In)
15 0F
/
47 2F
DLE (Data Link Escape) 16 10 0 48 30
DC1(XON)(Device Cont rol 1) 17 11 1 49 31
DC2 (Device Cont rol 2) 18 12 2 50 32
DC3 (XOFF)(Device Cont rol 3) 19 13 3 51 33
DC4 (Device Cont rol 4) 20 14 4 52 34
NAK (Neg. Acknowledgement) 21 15 5 53 35
SYN (Synchronous Idle) 22 16 6 54 36
ETB (End of Trans. Block) 23 17 7 55 37
CAN (Cancel) 24 18 8 56 38
EM (End of Medium) 25 19 9 57 39
SUB (Substitute) 26 1A : 58 3A
ESC (Escape) 27 1B ; 59 3B
FS (File Separator) 28 1C < 60 3C
GS (Group Separator) 29 1D = 61 3D
RS (Request to Send - Rec. Sep.) 30 1E > 62 3E
US (Unit Separator) 31 1F ? 63 3F
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

584
Caractere Dec Hex Caractere Dec Hex
@ 64 40 ` 96 60
A 65 41 a 97 61
B 66 42 b 98 62
C 67 43 c 99 63
D 68 44 d 100 64
E 69 45 e 101 65
F 70 46 f 102 66
G 71 47 g 103 67
H 72 48 h 104 68
I 73 49 i 105 69
J 74 4A j 106 6A
K
75 4B
k
107 6B
L 76 4C I 108 6C
M 77 4D m 109 6D
N
78 4E
n
110 6E
O 79 4F o 111 6F
P 80 50 p 112 70
Q 81 51 q 113 71
R 82 52 r 114 72
S 83 53 s 115 73
T 84 54 t 116 74
U 85 55 u 117 75
V 86 56 v 118 76
W 87 57 w 119 77
X 88 58 x 120 78
Y 89 59 y 121 79
Z 90 5A z 122 7A
[ 91 5B { 123 7B
/ 92 5C | 124 7C
] 93 5D } 125 7D
^ 94 5E ~ 126 7E
_ 95 5F DEL 127 7F

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
585
Dec. Hex. Bin. Dec. Hex. Bi n. Dec. Hex. Bin.
0 00 00000000 43 2B 00101011 86 56 01010110
1 01 00000001 44 2C 00101100 87 57 01010111
2 02 00000010 45 2D 00101101 88 58 01011000
3 03 00000011 46 2E 00101110 89 59 01011001
4 04 00000100 47 2F 00101111 90 5A 01011010
5 05 00000101 48 30 00110000 91 5B 01011011
6 06 00000110 49 31 00110001 92 5C 01011100
7 07 00000111 50 32 00110010 93 5D 01011101
8 08 00001000 51 33 00110011 94 5E 01011110
9 09 00001001 52 34 00110100 95 5F 01011111
10 0A 00001010 53 35 00110101 96 60 01100000
11 0B 00001011 54 36 00110110 97 61 01100001
12 0C 00001100 55 37 00110111 98 62 01100010
13 0D 00001101 56 38 00111000 99 63 01100011
14 0E 00001110 57 39 00111001 100 64 01100100
15 0F 00001111 58 3A 00111010 101 65 01100101
16 10 00010000 59 3B 00111011 102 66 01100110
17 11 00010001 60 3C 00111100 103 67 01100111
18 12 00010010 61 3D 00111101 104 68 01101000
19 13 00010011 62 3E 00111110 105 69 01101001
20 14 00010100 63 3F 00111111 106 6A 01101010
21 15 00010101 64 40 01000000 107 6B 01101011
22 16 00010110 65 41 01000001 108 6C 01101100
23 17 00010111 66 42 01000010 109 6D 01101101
24 18 00011000 67 43 01000011 110 6E 01101110
25 19 00011001 68 44 01000100 111 6F 01101111
26 1A 00011010 69 45 01000101 112 70 01110000
27 1B 00011011 70 46 01000110 113 71 01110001
28 1C 00011100 71 47 01000111 114 72 01110010
29 1D 00011101 72 48 01001000 115 73 01110011
30 1E 00011110 73 49 01001001 116 74 01110100
31 1F 00011111 74 4A 01001010 117 75 01110101
32 20 00100000 75 4B 01001011 118 76 01110110
33 21 00100001 76 4C 01001100 119 77 01110111
34 22 00100010 77 4D 01001101 120 78 01111000
35 23 00100011 78 4E 01001110 121 79 01111001
36 24 00100100 79 4F 01001111 122 7A 01111010
37 25 00100101 80 50 01010000 123 7B 01111011
38 26 00100110 81 51 01010001 124 7C 01111100
39 27 00100111 82 52 01010010 125 7D 01111101
40 28 00101000 83 53 01010011 126 7E 01111110
41 29 00101001 84 54 01010100 127 7F 01111111
42 2A 00101010 85 55 01010101
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

586
Dec. Hex. Bin. Dec. Hex. Bi n. Dec. Hex. Bin.
128 80 10000000 171 AB 10101011 214 D6 11010110
129 81 10000001 172 AC 10101100 215 D7 11010111
130 82 10000010 173 AD 10101101 216 D8 11011000
131 83 10000011 174 AE 10101110 217 D9 11011001
132 84 10000100 175 AF 10101111 218 DA 11011010
133 85 10000101 176 B0 10110000 219 DB 11011011
134 86 10000110 177 B1 10110001 220 DC 11011100
135 87 10000111 178 B2 10110010 221 DD 11011101
136 88 10001000 179 B3 10110011 222 DE 11011110
137 89 10001001 180 B4 10110100 223 DF 11011111
138 8A 10001010 181 B5 10110101 224 E0 11100000
139 8B 10001011 182 B6 10110110 225 E1 11100001
140 8C 10001100 183 B7 10110111 226 E2 11100010
141 8D 10001101 184 B8 10111000 227 E3 11100011
142 8E 10001110 185 B9 10111001 228 E4 11100100
143 8F 10001111 186 BA 10111010 229 E5 11100101
144 90 10010000 187 BB 10111011 230 E6 11100110
145 91 10010001 188 BC 10111100 231 E7 11100111
146 92 10010010 189 BD 10111101 232 E8 11101000
147 93 10010011 190 BE 10111110 233 E9 11101001
148 94 10010100 191 BF 10111111 234 EA 11101010
149 95 10010101 192 C0 11000000 235 EB 11101011
150 96 10010110 193 C1 11000001 236 EC 11101100
151 97 10010111 194 C2 11000010 237 ED 11101101
152 98 10011000 195 C3 11000011 238 EE 11101110
153 99 10011001 196 C4 11000100 239 EF 11101111
154 9A 10011010 197 C5 11000101 240 F0 11110000
155 9B 10011011 198 C6 11000110 241 F1 11110001
156 9C 10011100 199 C7 11000111 242 F2 11110010
157 9D 10011101 200 C8 11001000 243 F3 11110011
158 9E 10011110 201 C9 11001001 244 F4 11110100
159 9F 10011111 202 CA 11001010 245 F5 11110101
160 A0 10100000 203 CB 11001011 246 F6 11110110
161 A1 10100001 204 CC 11001100 247 F7 11110111
162 A2 10100010 205 CD 11001101 248 F8 11111000
163 A3 10100011 206 CE 11001110 249 F9 11111001
164 A4 10100100 207 CF 11001111 250 FA 11111010
165 A5 10100101 208 D0 11010000 251 FB 11111011
166 A6 10100110 209 D1 11010001 252 FC 11111100
167 A7 10100111 210 D2 11010010 253 FD 11111101
168 A8 10101000 211 D3 11010011 254 FE 11111110
169 A9 10101001 212 D4 11010100 255 FF 11111111
170 AA 10101010 213 D5 11010101

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
587
G. REGSTRADORES DE /O DO ATMEGA328
PORTs DE /O
PORTB - PORT B Data Register
Bit 7 6 5 4 3 2 1 0
PORTB PORTB7 PORTB6 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
DDRB - PORT B Data Direction Register
Bit 7 6 5 4 3 2 1 0
DDRB DDB7 DDB6 DDB5 DDB4 DDB3 DDB2 DDB1 DDB0
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
PINB - PORT B Input Pins Address
Bit 7 6 5 4 3 2 1 0
PINB PNB7 PNB6 PNB5 PNB4 PNB3 PNB2 PNB1 PNB0
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
Obs.: para os outros PORTs tem-se PORTC, DDRC, PNC, PORTD, DDRD e PND.
Configurao dos PORTs.
DDXn
*
PORTXn PUD (SFIOR) I/O PuII - up Comentrio
0 0 x Entrada No Alta impedncia.
0 1 0 Entrada Sim O pino pode fornecer corrente.
0 1 1 Entrada No PXn ir fornecer corrente se
externamente for colocado em
nvel lgico 0.
1 0 x Sada No Sada, nvel lgico baixo.
1 1 x Sada No Sada, nvel lgico alto.

*
X = B, C ou D; n = 0, 1, ... ou 7.
Obs.: o bit PUD desabilita o pull-up de todas as portas.

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

588
NTERRUPES EXTERNAS
EICRA - Extern Interrupt Control Register A
Bit 7 6 5 4 3 2 1 0
EICRA
- - - - SC11 SC10 SC01 SC00
L/Escreve L L L L L/E L/E L/E L/E
Valor nic. 0 0 0 0 0 0 0 0
Bits de configurao da forma das interrupes nos pinos NT1 e NT0.
ISC11 ISC10 Pedido de Interrupo ISC01 ISC00 Pedido de I nterrupo
0 0 Nvel baixo em NT1 0 0 Nvel baixo em NT0
0 1 Mudana lgica em NT1 0 1 Mudana lgica em NT0
1 0 Borda de decida em NT1 1 0 Borda de decida em NT0
1 1 Borda de subida em NT1 1 1 Borda de subida em NT0
EIMSK - External Interrupt Mask Register
Bit 7 6 5 4 3 2 1 0
EIMSK - - - - - - NT1 NT0
L/Escreve L L L L L L L/E L/E
Valor nic. 0 0 0 0 0 0 0 0
Bit = 1, interrupo habilitada, bit = 0, interrupo desabilitada.
EIFR - External Interrupt Flag Register
Bit 7 6 5 4 3 2 1 0
EIFR - - - - - - NTF1 NTF0
L/Escreve L L L L L L L/E L/E
Valor nic. 0 0 0 0 0 0 0 0
Os bits sinalizam a solicitao de uma interrupo, so limpos pela escrita de 1 lgico na sua posio.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
589
PCICR - Pin Change Interrupt Control Register
Bit 7 6 5 4 3 2 1 0
PCICR - - - - - PCE2 PCE1 PCE0
L/Escreve L L L L L L/E L/E L/E
Valor nic. 0 0 0 0 0 0 0 0
PCE0 = 1, habilita a interrupo por mudana nos pinos do PORTB (PCNT0:7); PCE1 = 1, nos pinos do
PORTC (PCNT8:14); PCE2 = 1, nos pinos do PORTD (PCNT16:23).
PCIFR - Pin Change Interrupt Flag Register
Bit 7 6 5 4 3 2 1 0
PCIFR - - - - - PCF2 PCF1 PCF0
L/Escreve L L L L L L/E L/E L/E
Valor nic. 0 0 0 0 0 0 0 0
Os bits sinalizam a solicitao de uma interrupo em um dos pinos do PORT: PCF0 para o PORTB,
PCF1 para o PORTC e PCF2 para o PORTD; so limpos pela escrita de 1 lgico na sua posio.
PCMSK0 -Pin Change Mask Register 0
Bit
7 6 5 4 3 2 1 0
PCMSK0 PCNT7 PCNT6 PCNT5 PCNT4 PCNT3 PCNT2 PCNT1 PCNT0
L/Escreve
L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial
0 0 0 0 0 0 0 0
PCMSK1 - Pin Change Mask Register 1
Bit
7 6 5 4 3 2 1 0
PCMSK1 - PCNT14 PCNT13 PCNT12 PCNT11 PCNT10 PCNT9 PCNT8
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial
0 0 0 0 0 0 0 0
PCMSK2 - Pin Change Mask Register 2
Bit
7 6 5 4 3 2 1 0
PCMSK2
PCNT23 PCNT22 PCNT21 PCNT20 PCNT19 PCNT18 PCNT17 PCNT16
L/Escreve
L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial
0 0 0 0 0 0 0 0
Bit = 1, interrupo habilitada no pino, desde que a interrupo esteja habilitada no PORT (ver PCCR).
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

590
T/C0
TIMSK0 - Timer/Counter 0 Interrupt Mask Register
Bit 7 6 5 4 3 2 1 0
TIMSK0 - - - - - OCE0B OCE0A TOE0
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
Bit = 1 - interrupo habilitada; bit = 0, interrup o desabilitada.
TOE0 - interrupo por estouro de contagem.
OCE0A, OCE0B - interrupes por coincidncia de comparao.
TIFR0 - Timer/Counter 0 Interrupt Flag Register
Bit 7 6 5 4 3 2 1 0
TIMSK0 - - - - - OCF0B OCF0A TOV0
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
Os bits sinalizam a solicitao de uma interrupo, so limpos pela escrita de 1 lgico na sua posio.
TCCR0A - Timer/Counter 0 Control Register A
Bit 7 6 5 4 3 2 1 0
TCCR0A COM0A1 COM0A0 COM0B1 COM0B0 - - WGM01 WGM00
L/Escreve L/E L/E L/E L/E L L L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
TCCR0B - Timer/Counter 0 Control Register B
Bit 7 6 5 4 3 2 1 0
TCCR0B FOC0A F OC0B - - WGM02 CS02 CS01 CS00
L/Escreve E E L L L/E L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
WGM02:0 - configurao do modo de operao do TC0.
COM0A1:0 e COM0B1:0 - configuram a ao nas sadas OC0A/OC0B de acordo com o modo escolhido.
FOC0A:B - Force Output Compare. Colocados em 1, uma comparao forada no mdulo gerador de
onda. As sadas so alteradas de acordo com os bits COM0A1:0 e COM0B1:0. Em zero nos modos PWM.
CS02:0 - seleo do prescaler.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
591
TCNT0 Timer/Counter 0 Register
Regist rador de 8 bit s onde realizada a contagem do TC0, pode ser lido ou escrito a
qualquer t empo.
OCR0A - Output Compare 0 Register A e OCR0B - Output Compare 0
Register B
Regist radores de Comparao de 8 bits
Seleo do clock para o TC0 Frequncia em OC0A [Hz]
CS02 CS01 CS00 Descrio Modo CTC
0 0 0 TC0 parado.
0 0 1 CLK
0 1 0 CLK/8 Modo PWM rpido
0 1 1 CLK/64
1 0 0 CLK/256
1 0 1 CLK/1024
Modo PWM com fase corrigida
1 1 0
Clock externo no pino
T0. Borda de descida.
1 1 1
Clock externo no pino
T0. Borda de subida.
Configurao do modo de operao do TC0.
Modo WGM02 WGM01 WGM00
Modo de
Operao
TOP
AtuaIizao
de OCR0
no vaIor:
SinaIizao
do bit TOV0
no vaIor:
0 0 0 0 Normal 0xFF mediata 0xFF
1 0 0 1
PWM com fase
corrigida
0xFF 0xFF 0x00
2 0 1 0 CTC OCR0A mediata 0xFF
3 0 1 1 PWM rpido 0xFF 0x00 0xFF
4 1 0 0 reservado - - -
5 1 0 1
PWM com fase
corrigida
OCR0A OCR0A 0x00
6 1 1 0 reservado - - -
7 1 1 1 PWM rpido OCR0A 0x00 OCR0A
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

592
Ao nas sadas OC0A/OC0B.
MODO NO PWM MODO PWM RPIDO MODO PWM FASE CORRIGIDA
DESCRIO DESCRIO DESCRIO
0 0
OC0A/OC0B
desconectado
0 0
OC0A/OC0B
desconectado
0 0
OC0A/OC0B
desconectado
0 1
nverte OC0A/OC0B
na comparao
0 1
nverte OC0A
na comparao*
0 1
nverte OC0A
na comparao*
1 0
OC0A/OC0B em
zero na comparao
1 0
OC0A/OC0B = 0
na comparao,
em 1 no final do
perodo
1 0
OC0A/OC0B = 0 na
comparao na
contagemcrescente,
OC0A/OC0B = 1 na
comparao na
contagemdecrescente.
1 1
OC0A/OC0B em al to
na comparao
1 1
OC0A/OC0B = 1
na comparao,
em 0 no final do
perodo
1 1
OC0A/OC0B =1 na
comparao na
contagemcrescente,
OC0A/OC0B=0 na
comparao na
contagemdecrescente.
* Vlido para WGM02 = 1, se WGM02 = 0: OC0A desconect ado. COM0B1:0 = 1 reservado.
T/C2
TIMSK2 - Timer/Counter 2 Interrupt Mask Register
Bit 7 6 5 4 3 2 1 0
TIMSK2 - - - - - OCE2B OCE2A TOE2
L/Escreve L L L L L L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
Bit = 1 - interrupo habilitada; bit = 0, interrup o desabilitada.
TOE2 - interrupo por estouro de contagem.
OCE2A, OCE2B - interrupes por coincidncia de comparao.
TIFR2 - Timer/Counter 2 Interrupt Flag Register
Bit 7 6 5 4 3 2 1 0
TIFR2 - - - - - OCF2B OCF2A TOV2
L/Escreve L L L L L L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
Os bits sinalizam a solicitao de uma interrupo, so limpos pela escrita de 1 lgico na sua posio.

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
593
TCCR2A - Timer/Counter 2 Control Register A
Bit 7 6 5 4 3 2 1 0
TCCR2A
COM2A1 COM2A0 COM2B1 COM2B0 - - WGM21 WGM20
L/Escr. L/E L/E L/E L/E L L L/E L/E
Val or nic.
0 0 0 0 0 0 0 0
TCCR2B - Timer/Counter 2 Control Register B
Bit 7 6 5 4 3 2 1
0
TCCR2B FOC2A FOC2B - - WGM22 CS22 CS21 CS20
L/Escr. E E L L L/E L/E L/E
L/E
Val or nic.
0 0 0 0 0 0 0
0
WGM22:0 - configurao do modo de operao do TC2.
COM2A1:0 e COM2B1:0 - configuram a ao nas sadas OC2A/OC2B de acordo com o modo escolhido.
FOC2A:B - Force Output Compare. Colocados em 1, uma comparao forada no mdul o gerador de
onda. As sadas so alteradas de acordo com os bits COM2A1:0 e COM2B1:0. Em zero nos modos PWM.
CS22:0 - seleo do prescaler.
TCNT2 - Timer/Counter 2 Register
Regist rador de 8 bit s onde realizada a contagem do TC2, pode ser lido ou escrito a
qualquer t empo.
OCR2A - Output Compare 2 Register A e OCR2B Output Compare 2
Register B
Regist radores de Comparao de 8 bits.
ASSR - Asynchronous Status Register
Bit 7 6 5 4 3 2 1 0
ASSR
- EXCLK AS2 TCN2UB OCR2AUB OCR2BUB TCR2AUB TCR2BUB
L/Escreve L L L L L L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
AS2 = 1: um cristal externo de 32,768 kHz nos pinos TOSC1 e TOSC2 fornece o sinal de clock ao TC2.
EXCLK = 1 e AS2 = 1, um clock externo entrada para o pino TOSC1.
TCNT2UB, OCR2AUB, OCR2BUB, TCR2AUB e TCR2BUB sinalizam a escrita nos registradores TCNT2,
OCR2B, OCR2A, TCCR2A e TCCR2B, respectivamente.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

594
Seleo do clock para o TC2 Frequncia em OC2A/ OC2B [Hz]
CS22 CS21 CS20 Descrio Modo CTC
0 0 0 TC2 parado.
0 0 1 CLK
0 1 0 CLK/ 8 Modo PWM rpido
0 1 1 CLK/ 32
1 0 0 CLK/ 64
1 0 1 CLK/ 128 Modo PWM com fase corrigida
1 1 0 CLK/ 256
1 1 1 CLK/ 1024
Configurao do modo de operao do TC2.
Modo WGM22 WGM21 WGM20
Modo de
Operao
TOP
AtuaIizao
de OCR2
no vaIor:
SinaIizao
do bit TOV2
no vaIor:
0 0 0 0 Normal 0xFF mediata 0xFF
1 0 0 1 PWM com
fase corrigida
0xFF 0xFF 0x00
2 0 1 0 CTC OCR2A mediata OCR2A
3 0 1 1 PWM rpido 0xFF 0x00 0xFF
4 1 0 0 reservado - - -
5 1 0 1 PWM com
fase corrigida
OCR2A
OCR2A
anterior
0x00
6 1 1 0 reservado - - -
7 1 1 1 PWM rpido OCR2A 0x00 OCR2A
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
595
Ao nas sadas OC2A/OC2B.
MODO NO PWM MODO PWM RPIDO MODO PWM FASE CORRIGIDA
DESCRIO DESCRIO DESCRIO
0 0
OC2A/OC2B
desconectado
0 0
OC2A/OC2B
desconectado
0 0
OC2A/OC2B
desconectado
0 1
nverte
OC2A/OC2B
na comparao
0 1
nverte OC2A
na comparao*
0 1
nverte OC2A
na comparao*
1 0
OC2A/OC2B em
zero na
comparao
1 0
OC2A/OC2B = 0 na
comparao,
em 1 no final do
perodo
1 0
OC2A/OC2B = 0 na
comparao na
contagemcrescente,
OC2A/OC2B = 1 na
comparao na
contagem
decrescente.
1 1
OC2A/OC2B em
alto na
comparao
1 1
OC2A/OC2B = 1 na
comparao,
em 0 no final do
perodo
1 1
OC2A/OC2B =1 na
comparao na
contagemcrescente,
OC2A/OC2B=0 na
comparao na
contagem
decrescente.
* Vlido para WGM02 = 1, se WGM02 = 0: OC2A desconect ado. COM0B1:0 = 1 reservado.
TC1
TIMSK1 - Timer/Counter 1 Interrupt Mask Register
Bit 7 6 5 4 3 2 1 0
TIMSK1 - - CE1 - - OCE1B OCE1A TOE1
L/Escreve L L L/E L L L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
Bit = 1 - interrupo habilitada; Bit = 0, interrupo desabilitada.
CE1 - interrupo por entrada de captura
TOE1 - interrupo por estouro de contagem.
OCE1A, OCE1B - interrupes por coincidncia de comparao.
TIFR1 Timer/Counter 1 Interrupt Flag Register
Bit 7 6 5 4 3 2 1 0
TIFR1 - - CF1 - - OCF1B OCF1A TOV1
L/Escreve L L L/E L L L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
Os bits sinalizam a solicitao de uma interrupo, so limpos pela escrita de 1 lgico na sua posio.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

596
TCCR1A - Timer/Counter 1 Control Register A
Bit 7 6 5 4 3 2 1 0
TCCR1A COM1A1 COM1A0 COM1B1 COM1B0 - - WGM11 WGM10
L/Escr. L/E L/E L/E L/E L L L/E L/E
Val or nic.
0 0 0 0 0 0 0 0
TCCR1B - Timer/Counter 1 Control Register B
Bit 7 6 5 4 3 2 1 0
TCCR1B CNC1 CES1 - WGM13 WGM12 CS12 CS11 CS10
L/Escreve
L/E L/E L L/E L/E L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
WGM13:0 - configurao do modo de operao do TC1.
COM1A1:0 e COM1B1:0 - configuram a ao nas sadas OC1A/OC1B de acordo com o modo escolhido.
CS12:0 - seleo do prescaler.
CNC1= 1, habilita o filtro de rudo do pino de captura CP1.
ICES1 = 1, evento de captura disparado por transio de 0 para 1 na entrada de captura; CES1 = 0, pela
transio de 1 para 0.
TCCR1C - Timer/Counter 1 Control Register C
Bit 7 6 5 4 3 2 1 0
TCCR1C FOC1A FOC1B - - - - - -
L/Escreve
L/E L/E L L L L L L
Valor nicial 0 0 0 0 0 0 0 0
FOC1A:B = 1, foram uma comparao no mdulo gerador de onda. As sadas so alteradas de acordo
com os bits COM1A1:0 e COM1B1:0. Em zero nos modos PWM.
TCNTH e TCNTL (TCNT1) - Timer/Counter 1 Register
Regist radores de 16 bit s onde realizada a contagem do TC1, H (High) e L (Low).
OCR1AH e OCR1AL (OCR1A) - Output Compare 1 Register A
Regist radores de comparao A de 16 bit s cada, H (high) e L (Low).
OCR1BH e OCR1BL (OCR1B) - Output Compare 1 Register B
Regist radores de comparao B de 8 bits cada, H (High) e L (Low).
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
597
ICR1H e ICR1L (ICR1) - Input Capture Register 1
Esses registradores so atualizados com o valor do TCNT1 cada vez que um evento
programado ocorre no pino CP1 (ou opcionalmente nos pinos do comparador analgico).
Tambm so empregados para definir o valor mximo de contagem (TOP).
Seleo do clock para o TC1 Frequncia em OC1A/ OC1B [Hz]
CS12 CS11 CS10 Descrio Modo CTC
Modo PWM rpido
Modo PWM com fase
corrigida
0 0 0 TC1 parado
0 0 1 CLK
0 1 0 CLK/8
0 1 1 CLK/64
1 0 0 CLK/256
1 0 1 CLK/1024
1 1 0
Clock externo no pino
T1. Borda de descida.
1 1 1
Clock externo no pino
T1. Borda de subida.
Configurao dos modos de operao do TC1.
Modo WGM13 WGM12 WGM11 WGM10
Modo de operao
do TC1
VaIor
TOP
AtuaIiz.
OCR1x
no vaIor
Bit
TOV1
ativo no
vaIor:
0 0 0 0 0 Normal 0xFFFF mediata 0xFFFF
1 0 0 0 1 PWM c/ fase corrigida,
8 bi ts
0x00FF 0x00FF 0
2 0 0 1 0 PWM c/ fase corrigida,
9 bi ts
0x01FF 0x01FF 0
3 0 0 1 1 PWM c/ fase corrigida,
10 bits
0x03FF 0x03FF 0
4 0 1 0 0 CTC OCR1A mediata 0xFFFF
5 0 1 0 1 PWM rpido, 8 bits 0x00FF 0 0x00FF
6 0 1 1 0 PWM rpido, 9 bits 0x01FF 0 0x01FF
7 0 1 1 1 PWM rpido, 10 bits 0x03FF 0 0x03FF
8
1 0 0 0
PWM c/ fase e freq.
corri gidas
CR1 0 0
9 1 0 0 1 PWM c/ fase e freq.
corri gidas
OCR1A 0 0
10 1 0 1 0 PWM c/ fase corrigi da CR1 CR1 0
11
1 0 1 1 PWM c/ fase corrigi da OCR1A OCR1A 0
12 1 1 0 0 CTC CR1 mediata 0xFFFF
13 1 1 0 1 Reservado - - -
14 1 1 1 0 PWM rpido CR1 0 CR1
15 1 1 1 1 PWM rpido OCR1A 0 OCR1A
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

598
Ao nas sadas OC1A/OC1B.
MODO NO PWM MODO PWM RPIDO MODO PWM FASE
CORRIGIDA
DESCRIO DESCRIO DESCRIO
0 0
OC1A/OC1B
desconectado
0 0
OC1A/OC1B
desconectado
0 0
OC1A/OC1B
desconectado
0 1
nverte
OC1A/OC1B
na comparao
0 1
nverte OC1Ana
comparao nos
modos 14 ou 15,
OC1B
desconectado*
0 1
nverte OC1Ana
comparao nos
modos 9 ou 11,
OC1B
desconectado*
1 0
OC1A/OC1B em
zero na
comparao
1 0
OC1A/OC1B = 0
na comparao,
em 1 no final do
perodo
1 0
OC1A/OC1B = 0
na comparao na
contagem
crescente,
OC1A/OC1B = 1
na comparao na
contagem
decrescente.
1 1
OC1A/OC1B em
alto na
comparao
1 1
OC1A/OC1B = 1
na comparao,
em 0 no final do
perodo
1 1
OC1A/OC1B =1 na
comparao na
contagem
crescente,
OC1A/OC1B=0 na
comparao na
contagem
decrescente.
* Nos demais modos OC1A e OC1B desconectados.
SP
SPCR SPI Control Register
Bit 7 6 5 4 3 2 1 0
SPCR SPE SPE DORD MSTR CPOL CPHA SPR1 SPR0
L/Escr. L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
SPIE = 1, interrupo habilitada; SPE = 1, SP habilitada; DORD = 1, transmite primeiro o LSB.
MSTR = 1, SP como mestre; SPR1 e SPR0, determinam a frequncia de SCK.
Quando CPOL = 1 (polaridade do clock), SCK alto quando inativo; quando CPOL = 0, SCK baixo
quando inativo.
O bit CPHA (fase do clock) determina se o dado amostrado na borda principal ou na decida do sinal
SCK.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
599
SPSR SPI Status Register
Bit 7 6 5 4 3 2 1 0
SPSR
SPF WCOL - - - - - SP2X
L/Escreve L L L L L L L L/E
Valor nicial 0 0 0 0 0 0 0 0
SPIF = 1, Transferncia Complet a; WCOL= 1, SPDR foi escrito durante uma transmisso.
SPI2X =1, frequncia de SCK duplicada.
SPDR - SPI Data Register
Bit 7 6 5 4 3 2 1 0
SPDR MSB LSB
L/Escr. L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial X X X X X X X X
Formato da transferncia de dados.
Configurao
Borda Princi paI Borda de Fuga MODO SPI
CPOL CPHA
0 0 Amost ragem (subida) Ajuste (descida) 0
0 1 Ajuste (subida) Amostragem (descida) 1
1 0 Amost ragem (descida) Ajuste (subida) 2
1 1 Ajuste (descida) Amostragem (subida) 3
Frequncia de operao para o modo mestre.
SPI2X SPR1 SPR0 Frequnci a do SCK
0 0 0 f
osc
/4
0 0 1 f
osc
/16
0 1 0 f
osc
/64
0 1 1 f
osc
/128
1 0 0 f
osc
/2
1 0 1 f
osc
/8
1 1 0 f
osc
/32
1 1 1 f
osc
/64
f
osc
= frequncia de operao da CPU.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

600
USART
UDR0 - USART I/O Data Register 0
Bit 7 6 5 4 3 2 1 0
UDR0 (Ieitura)
RXB[7:0]
UDR0 (escrita)
TXB[7:0]
L/Escreve L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
UCSR0A - USART Control and Status Register 0 A
Bit 7 6 5 4 3 2 1 0
UCSR0A RXC0 TXC0 UDRE0 FE DOR0 UPE0 U2X0 MPCM0
L/Escr. L L/E L L L L L/E L/E
Valor nicial 0 0 1 0 0 0 0 0
RXC0 = 1, recepo completa, limpo quando UDR lido.
TXC0 = 1, frame enviado, nenhum frame novo, limpo tambm pela escrita de 1.
UDRE0 = 1, UDR vazio, pronto para novo dado.
FE0 = 1, stop bit recebido = 0.
DOR0 = 1, UDR no foi lido e novo st art bit detectado.
PE0 = 1, erro de paridade no byte recebido.
U2X0 = 1, dobra a taxa no modo assncrono.
MPCM0 = 1, modo multiprocessador ativo.
UCSR0B - USART Control and Status Register 0 B
Bit
7 6 5 4 3 2 1 0
UCSR0B RXCE0 TXCE0 UDRE0 RXEN0 TXEN0 UCSZ02 RXB80 TXB80
L/Escr.
L/E L/E L/E L/E L/E L/E L L/E
Valor nicial
0 0 0 0 0 0 0 0
RXCIE0 = 1, habilita a interrupo por recepo completa.
TXCIE0 = 1, habilita a interrupo por transmisso completa.
UDRIE0 = 1, habilita a interrupo por UDR vazio.
RXEN0= 1, habilita a recepo da USART.
TXEN0 = 1, habilita a transmisso da USART.
RXB80/TXB80 = nono

bit recebido/transmitido.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
601
UCSR0C - USART Control and Status Register 0 C
Bit
7 6 5 4 3 2 1 0
UCSR0C UMSEL01 UMSEL00 UPM01 UPM00 USBS0 UCSZ01 UCSZ00 UCPOL0
L/Escr.
L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial
0 0 0 0 0 1 1 0
UMSEL01:0 - selecionam o modo de operao da USART.
UPM01:0 - selecionam o modo de paridade.
USBS0 = 1, dois bits de parada.
UCSZ01:0 - determinam o nmero de bits de um frame.
UCPOL0 - vlido para o modo sncrono, ajusta a relao entre a alterao do dado transmitido, a
amostragem do dado recebido e o clock sncrono.
Ajuste do modo de operao da USART.
UMSEL01 UMSEL00 Modo de operao
0 0 ass ncrono
0 1 sncrono
1 0 reservado
1 1 SP mestre
Ajuste do modo de paridade.
UPM01 UPM00 Modo de Paridade
0 0 desabilitado
0 1 reservado
1 0 habilitado, paridade par
1 1 habilitado, paridade mpar
Ajuste do Frame.
UCSZ02 UCSZ01 UCSZ00 Tamanho do Caractere
0 0 0 5 bits
0 0 1 6 bits
0 1 0 7 bits
0 1 1 8 bits
1 0 0 reservado
1 0 1 reservado
1 1 0 reservado
1 1 1 9 bits
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

602
Ajuste da polaridade do clock sncrono.
UCPOL0 Mudana do Dado
Transmitido
(sada do pino TxD0)
Amostragem do Dado Recebi do
(entrada do pino RxD0)
0 Borda de subida de XCK. Borda de descida de XCK.
1 Borda de descida de XCK. Borda de subida de XCK.
UBRR0L e UBRR0H - USART Baud Rate Registers
Bit 15 14 13 12 11 10 9 8
UBRR0H - - - - UBRR[11:8]
UBRR0L UBRR[7:0]
Bit 7 6 5 4 3 2 1 0
L/Escreve L/E L L L L/E L/E L/E L/E
L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Equaes para o clculo do registrador UBRR0 de taxa de transmisso.
Modo de operao Equao para o cIcuI o
da taxa de transmi sso
Equao para o cIcuIo
do vaIor de UBRR
Modo Normal Assncrono
(U2X0 = 0)
Modo de Velocidade
Dupla
Ass ncrono (U2X0 = 1)
Modo Mest re Sncrono
USART NO MODO SP
UCSR0C - USART MSPIM Control and Status Register 0 C
Bit 7 6 5 4 3 2 1 0
UCSR0C
UMSEL01 UMSEL00
- - -
UDORD0 UCPHA0 UCPOL
L/Escr.
L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial
0 0 0 0 0 1 1 0
UMSEL01:0 - selecionam o modo de operao da USART.
UDORD0 = 1, transmite primeiro o LSB.
UCPHA0 - determina se o dado amostrado na borda principal ou na de descida do sinal SCK.
UCPOL0 = 1 , SCK alto quando inativo; quando UCPOL0 = 0, SCK baixo quando inativo.
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
603
Equaes para calcular a t axa de transmisso da USART no modo SP mest re.
Equao para o cIcuIo
da taxa de transmisso
Equao para o cIcuIo
do vaIor de UBRR0
Formato da transferncia de dados.
Configurao
Borda Princi paI Borda de Fuga MODO SPI
UCPOL0 UCPHA0
0 0 Amost ragem (subida) Ajuste (descida) 0
0 1 Ajuste (subida) Amostragem (descida) 1
1 0 Amost ragem (descida) Ajuste (subida) 2
1 1 Ajuste (descida) Amostragem (subida) 3
TW
TWBR - TWI Bit Rate Register
Bit 7 6 5 4 3 2 1 0
TWBR TWBR7 TWBR6 TWBR5 TWBR4 TWBR3 TWBR2 TWBR1 TWBR0
L/Escr. L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
TWSR - TWI Status Register
Bit
7 6 5 4 3 2 1 0
TWBR TWBR7 TWBR6 TWBR5 TWBR4 TWBR3 TWBR2 TWBR1 TWBR0
L/Escr.
L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial
0 0 0 0 0 0 0 0
TWSR7:3 - refletem o estado do TW; TWBR1:0 - determinam o prescaler do TW.
Prescaler da t axa de bits do TW. Frequncia do TW em [Hz]
TWPS1 TWPS0
VaIor
do
Prescaler
0 0 1
0 1 4
1 0 16
1 1 64
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

604
TWCR - TWI Control Register
Bit
7 6 5 4 3 2 1 0
TWCR TWNT TWEA TWSTA TWSTO TWWC TWEN - TWE
L/Escr. L/E L/E L/E L/E L L/E L L/E
Valor nicial 0 0 0 0 0 0 0 0
TWINT - bit sinalizador de interrupo.
TWEA = 1, envia ACK; TWEA = 0, NACK.
TWSTA = 1, condio de incio.
TWSTO = 1, condio de parada.
TWWC = 1, tentativa de escrita em TWDR com TWNT = 0.
TWEN = 1, interface ativa.
TWIE = 1, interrupo habilitada.
TWDR - TWI Data Register
Bit 7 6 5 4 3 2 1 0
TWDR TWD7 TWD6 TWD5 TWD4 TWD3 TWD2 TWD1 TWD0
L/Escr. L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial 1 1 1 1 1 1 1 1
TWAR - TWI (Slave) Address Register
Bit
7 6 5 4 3 2 1 0
TWAR TWA6 TWA5 TWA4 TWA3 TWA2 TWA1 TWA0 TWGCE
L/Escr. L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial 1 1 1 1 1 1 1 0
TWA6:0 - constituem o endereo da unidade TW no modo escravo.
TWGCE = 1, habilita o reconhecimento de uma chamada geral no barramento TW.
COMPARADOR ANALGCO
ADCSRB - ADC Control and Status Register B
Bit
7 6 5 4 3 2 1 0
ADCSRB - ACME - - - ADTS2 ADTS1 ADTS0
L/Escr. L L/E L L L L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
ACME = 1, com o AD desligado o multiplexador do AD seleciona a entrada (-) do comparador. Com
ACME = 0, AN1 aplicado entrada (-).
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
605
ACSR - Analog Comparator Control and Status Register
Bit
7 6 5 4 3 2 1 0
ACSR ACD ACBG ACO AC ACE ACC ACS1 ACS0
L/Escr. L/E L/E L L/E L/E L/E L/E L/E
Valor nicial
0 0 N/A 0 0 0 0 0
ACD = 1, comparador desabilitado.
ACBG = 1, Vref aplicada entrada (+); ACBG = 0, AN0 em (+).
ACO - sada do comparador. ACI - bit sinalizador de interrupo. ACIE = 1, habilita interrupo.
ACIC = 1, captura habilitada.
ACIS1:0 - determinam qual evento dispara a interrupo do comparador analgico.
Ajuste dos bits AC S1 e AC S0.
ACI S1 ACIS0 Modo de interrupo
0 0 Subida ou descida do sinal de comparao.
0 1 Reservado.
1 0 Borda de descida do sinal de comparao.
1 1 Borda de subida do sinal de comparao.
DIDR1 - Digital Input Disable Register 1
Bit
7 6 5 4 3 2 1 0
DIDR1 - - - - - - AN1D AN0D
L/Escr. L L L L L L L/E L/E
Valor nicial
0 0 0 0 0 0 0 0
AIN1D/AIN0D = 1, uso do comparador analgico ; AN1D/AN0D = 0 pinos como /O.
Multiplexao da entrada negat iva do comparador analgico.
ACME ADEN MUX2..0 Entrada Negati va para o Comparador AnaI gi co
0 x xxx AN1
1 1 xxx AN1
1 0 000 ADC0
1 0 001 ADC1
1 0 010 ADC2
1 0 011 ADC3
1 0 100 ADC4
1 0 101 ADC5
1 0 110 ADC6 (nos encapsulamentos TQFP e QFN/MLF)
1 0 111 ADC7 (nos encapsulamentos TQFP e QFN/MLF)
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

606
ADC
ADMUX - ADC Multiplexer Selection Register
Bit
7 6 5 4 3 2 1 0
ADMUX
REFS1 REFS0 ADLAR - MUX3 MUX2 MUX1 MUX0
L/Escr. L/E L/E L/E L L/E L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
ADLAR = 1, resultado alinhado esquerda; ADLAR = 0, alinhado direita.
Seleo da t enso de referncia do ADC.
REFS1 REFS0 SeI eo da Tenso de Referncia
0 0 AREF, tenso int erna V
REF
desligada.
0 1 AVCC, com um capacit or ext erno de 100 nF entre o
pino AREF e o GND.
1 0 Reservado.
1 1 1, 1 V interno, com um capacitor ext erno de 100 nF
entre o pino AREF e o GND.
Seleo do canal de entrada.
MUX3.. 0 Entrada
0000 ADC0
0001 ADC1
0010 ADC2
0011 ADC3
0100 ADC4
0101 ADC5
0110 ADC6
0111 ADC7
1000 Sensor interno de t emperatura
1001-1101 reservado
1110 1, 1 V (tenso fixa para referncia)
1111 0 V (GND)
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
607
ADCL/ADCH - ADC Data Register
Bit
15 14 13 12 11 10 9 8
ADLAR=0
ADCH - - - - - - ADC9 ADC8
ADCL ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADC0

7 6 5 4 3 2 1 0
L/Escr.
L L L L L L L L

L L L L L L L L
Valor nicial 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0
Bit
15 14 13 12 11 10 9 8
ADLAR=1
ADCH ADC9 ADC8 ADC7 ADC6 ADC5 ADC4 ADC3 ADC2
ADCL ADC1 ADC0 - - - - - -

7 6 5 4 3 2 1 0
L/Escr.
L L L L L L L L
L L L L L L L L
Valor nicial 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
ADCSRA - ADC Control and Status Register A
Bit 7 6 5 4 3 2 1 0
ADSRA
ADEN ADSC ADATE ADF ADE ADPS2 ADPS1 ADPS0
L/Escr. L/E L/E L/E L L/E L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
ADEN = 1, ADC habilitado.
ADSC = 1, inicia a converso.
ADATE = 1, modo de auto disparo.
ADIF - bit sinalizador de converso completa.
ADIE = 1, interrupo habilitada.
Seleo da diviso de clock para o ADC.
ADPS2 ADPS1 ADPS0 Fator de Diviso
0 0 0 2
0 0 1 2
0 1 0 4
0 1 1 8
1 0 0 16
1 0 1 32
1 1 0 64
1 1 1 128
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

608
ADCSRB - ADC Control and Status Register B
Bit
7 6 5 4 3 2 1 0
ADCSRB - ACME - - - ADTS2 ADTS1 ADTS0
L/Escr. L L/E L L L L/E L/E L/E
Valor nicial 0 0 0 0 0 0 0 0
ADTS2:0 - se ADATE = 1 (registrador ADCSRA), o valor expresso pela combinao desses bits seleciona
a fonte para o disparo da converso; se ADATE = 0, esses bits no tm efeito.
Configuraes dos bits ADTS2: 0.
ADTS2 ADTS1 ADTS0 Fonte de disparo
0 0 0 Converso cont nua
0 0 1 Comparador Analgico
0 1 0 nt errupo Ext erna 0
0 1 1 gualdade de comparao A do TC0
1 0 0 Estouro de cont agem do TC0
1 0 1 gualdade de comparao B do TC1
1 1 0 Estouro de cont agem do TC1
1 1 1 Evento de captura do TC1
DIDR0 - Digital Input Disable Register 0
Bit
7 6 5 4 3 2 1 0
DIDR0 - - ADC5D ADC4D ADC3D ADC2D ADC1D ADC0D
L/Escr.
L/E L/E L/E L/E L/E L/E L/E L/E
Valor nicial
0 0 0 0 0 0 0
ADC5D:0D = 1, o pino correspondente entrada para o ADC; ADC5D:ADC0D = 0, pinos como /O.

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
609
H. ACRNMOS

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

610

V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o
611
V
e
r
s

o

d
e

A
v
a
l
i
a

o
B
a
i
x
a

r
e
s
o
l
u

o

612

Вам также может понравиться