Doctor
NOTAS:
1.
Para el curso y como opciones de remplazo, también pueden usarse los microcontroladores ATMega88A ó ATMega88PA
pues cubren y sobre pasan las características del ATMega8, pero también con una base para IC de 28 pines y 300 mil para
proteger sus terminales
2.
Si se desea hacer un programador por pareja paratrabajar en casa, también se necesitará comprar otro micro ATMega8 (NO
comprar remplazo) además de algunos componentes y materiales adicionales.
701 ASM para µC ATMEL (1° Parcial M8) v0.4
Página 1 de 37
SCS
El ATMega8 / 88 “por dentro” (diagrama a bloques)
Estos microcontroladores utilizan la arquitectura Harvard (RISC) y cada una de las instrucciones del programa (el cual quedar áen su memoria FLASH) se ejecutan por cada pulso de rel oj.
La mayoria de las instrucciones en el AVR tienen como base un formato de 16bits pero pueden combinarse dos localidades de
memoria para obtener una instrucción de 32bits.
ATMega8
701 ASM para µC ATMEL (1° Parcial M8) v0.4
Página 2 de 37
SCS
ATMega88
La ALU permite trabajar operciones del tipo l ógico y aritmético entreregistros o entre constantes y registros. Despues de cada
instrucción ejecutada, el registro de estados (“Status Register” ó SREG) se actualiza para reflejar información importante so bre
la operación que se acaba de realizar. NOTA: El SREG se explica más adelante en el tema “Registro de estados SREG”
El flujo del programa puede darse en forma lineal o con brincos co ndicionales e incondicionales,permitiéndole accesar a todo el
mapa de memoria.
Durante las interrupciones o llamadas a subru tina, el contador de programa (“Program Counter” o PC) se almacena en el
“Stack” (al final de la memoria RAM), por lo que siempre deberá inicalizarse el PC al inicio del programa cuando se pretenda
utilizar interrupciones o subrutinas.
El microcontrolador también cuenta con una serie de vectoresbien definidos para cada una de las interrupciones que puede
manejar y que deben definirse al principio del programa cuando se pretenda hacer uso de alguna de las interrupciones
disponibles.
701 ASM para µC ATMEL (1° Parcial M8) v0.4
Página 3 de 37
SCS
Las memorias del ATMega8 / 88:
Dibujar el diagrama electrónico para prender y apagar un LED manualmente con un PushButton, luego sudiagrama de flujo con una
subrutina de 1s, para explicarles cómo funciona el programa en FLASH y como se auxilia de la RAM al trabajar con subrutinas
Memoria RAM (SRAM)
En el programa y AVR Studio se define como “.DSEG”
Usada para datos o variables (8 bits) además de:
32 Registros de 8 bits para variables (de la $00 a $1F)
64 Registros de 8 bits para periféricos E/S (de la $20 a la $5F)
1024Bytes como Memoria RAM (de la $060 a la $45F)
Con un Stack Pointer (SP) y debe inicializarse siempre
señalando la última localidad de memoria
Memoria FLASH
En el programa y AVR Studio se define como “.CSEG”
Usada para el programa (instrucciones de 16 ó 32 Bits)
Inicia en la dirección $000 y termina en la dirección $FFF
Es decir: 4095 localidades x 16 bits (8K Bytes)
Resiste hasta 10,000ciclos de escritura/borrado
Con un Contador de programa (Program Counter o PC)
El PC inicia siempre señalando la primer localidad de memoria
B15
B8 B7
B0
PC
SP
$045E
$045F
Que los alumnos lean toda la información que sigue, pero yo me paso a la página 18 para trabajar con ellos p101 y p102
701 ASM para µC ATMEL (1° Parcial M8) v0.4
Página 4 de 37
SCSInicialización de la RAM
Cada vez que se requiera trabajar con subrutinas, es necesario inicializar la memoria RAM para “recordarle” al µC donde termina y
poder trabajar con el SP.
La inicialización se logra con los siguientes comandos:
LDI
OUT
LDI
OUT
R16,HIGH(RAMEND)
SPH,R16
R16,LOW(RAMEND)
SPL,R16
; Main program start
; Set Stack Pointer to top of RAM
Modos de direccionamiento...
Regístrate para leer el documento completo.