Conteúdo Porque aprender Assembler?......................................................................................................................1 Curta e f ácil...........................................................................................................................................1 Veloz.....................................................................................................................................................1 Assembler é de f ácil aprendizado..........................................................................................................1 AVRs são ideais para se aprender assembler........................................................................................1 Teste!.....................................................................................................................................................2 Hardware para programação em Assembler AVR.....................................................................................3 A interface ISP da fam í llia ia de processadores AVR................................................................................3 Programador para a porta paralela do PC..............................................................................................3 Placas experimentais.............................................................................................................................4 Placa experimental com ATtiny13...................................................................................................4 Placa experimental com um AT90S2313/ATmega2313..................................................................5 Placas de programação comerciais para a famí lia lia AVR........................................................................6 STK200.............................................................................................................................................6 STK500.............................................................................................................................................6 AVR Dragon.....................................................................................................................................7 Ferramentas para programação assembly AVR ........................................................................................8 De um arquivo texto a palavras de instru ção para a memória flash......................................................8 O editor.............................................................................................................................................8 O assembler......................................................................................................................................9 Programando os chips.........................................................................................................................10 Simulação no studio............................................................................................................................11 Registrador...............................................................................................................................................13 O que é um registrador?......................................................................................................................13 Registradores diferentes......................................................................................................................14 Registradores ponteiros.......................................................................................................................14 Recomendação para uso dos registradores..........................................................................................15 Portas........................................................................................................................................................17 O que é uma Porta?..............................................................................................................................17 Deatlhes de portas relevantes do AVR................................................................................................18 O registrador de status como a porta mais utilizada............................................................................18 Detalhes das portas..............................................................................................................................19 SRAM......................................................................................................................................................20 Usando SRAM em linguagem assembler AVR .................................................................................20 O que é SRAM?..................................................................................................................................20 Para que propósitos posso usar a SRAM?...........................................................................................20 Como usar a SRAM?...........................................................................................................................20 Use of SRAM as stack.........................................................................................................................21 Definindo SRAM como pilha.........................................................................................................21 Uso da pilha....................................................................................................................................22 Bugs com a operação de pilhas.......................................................................................................22 Saltos e Desvios.......................................................................................................................................24 Controlando a execução seqüencial de um programa.........................................................................24 O que acontece durante um reset?..................................................................................................24 Execução linear do programa e desvios..............................................................................................25 Temporização durante a execução do programa.................................................................................25 Macros e execu ção do programa.........................................................................................................26 Subrotinas............................................................................................................................................26 Interrupções e a execu ção do programa..............................................................................................28 Cálculos....................................................................................................................................................30 Sistemas numéricos em assembler......................................................................................................30 Números positivos inteiros (bytes, palavras, etc.)..........................................................................30 Números com sinal (inteiros)..........................................................................................................30 Dí gitos gitos Codificados em Binário, BCD (Binary Coded Digits)......................................................30 BCDs compactados.........................................................................................................................31 Números em formato ASCII...........................................................................................................31 Manipulação de bits.............................................................................................................................31
Desloca e rotaciona..............................................................................................................................32 Somando, subtraindo e comparando....................................................................................................33 Conversão de formatos numéricos......................................................................................................35 Multiplicação.......................................................................................................................................35 Multiplicação decimal....................................................................................................................35 Multiplicação binária......................................................................................................................36 Programa em Assembler AVR.......................................................................................................36 Binary rotation................................................................................................................................37 Multiplicação no studio..................................................................................................................37 Divisão.................................................................................................................................................39 Divisão decimal..............................................................................................................................39 Binary division...............................................................................................................................39 Passos do programa durante a divisão............................................................................................40 Divisão no simulador......................................................................................................................40 Conversão numérica............................................................................................................................43 Frações decimais.................................................................................................................................43 Conversões lineares........................................................................................................................43 Exempl0 1: Conversor AD 8-bit para sa í da da decimal com ponto fixo.............................................44 Exemplo 2: Conversor AD de 10 bits com sa í da da decimal fixa.......................................................45 Anexo.......................................................................................................................................................46 Instruções ordenadas por função.........................................................................................................46 Lista de Diretivas e Instru ções em ordem alfab ética...........................................................................48 Diretivas de Assembler em ordem alfabética.................................................................................48 Instruções em ordem alfabética......................................................................................................48 Detalhes das Portas..............................................................................................................................50 Registrador de Status, Flags do Acumulador.................................................................................50 Ponteiro de pilha.............................................................................................................................51 SRAM e controle externo de interrupções......................................................................................51 Controle de Interrupção Externo.....................................................................................................52 Controle do Timer de Interrupção..................................................................................................52 Timer/Contador 0............................................................................................................................53 Timer/Contador 1............................................................................................................................54 Watchdog-Timer.............................................................................................................................55 EEPROM........................................................................................................................................56 Interface de Perif éricos Seriais (SPI)..............................................................................................56 UART.............................................................................................................................................57 Analog Comparator........................................................................................................................58 Portas E/S.......................................................................................................................................59 Portas, ordem alfabética......................................................................................................................59 Lista de abreviações............................................................................................................................60