Anda di halaman 1dari 3

CLASE DE INGENIERÍA ELECTRÓNICA 06/11/12

 Un microcontrolador ideal no debería consumir más de 200 mA.


 Los mecanismos que un microcontrolador activa generalmente mecanismos o dispositivos
de mayor potencia, por lo que es necesaria una fase de amplificación o interfase e
potencia entre estos 2 elementos. (Salvo sea un LCD u otro dispositivo que consuma
también baja potencia).
 Cada instrucción en un microcontrolador se ejecuta en un ciclo de reloj.

o Programación
Instrucciones básicas:
 LDI es una instrucción que carga un dato numérico a un registro
 LDI R16, $FF
o Inicio R16=$01
o LDI R16, $FF
o //ahora, R16 = $FF
 OUT
 DDRB es un registro que sirve para configurar puertos como entradas o
salidas.
 PORT es un registro que sirve principalmente para enviar datos, por
cualquiera de los 3 puertos (B,C o D). Se activan los pines del puerto que
se selecciona.
o LDI R16, $03
o OUT PORTC, R16
o //PORTC |0|0|0|0|0|0|1|1|
 IN es una instrucción que sirve para leer datos de ciertos pines y guardar
la data en un registro de propósito general.
o IN R16,PIND
o //Cuando se escribe PIN, se refiere a un puerto que ha sido
configurado como entrada.
o //Esta operación también se puede llamar “captura”.

 PIN es un registro que sirve para leer datos en cualquiera de los 3 puertos
 ANDI es una instrucción que sirve para enmascarar o filtrar solo un grupo
de bits.
o //Por ejemplo, se desean leer los 2 primeros bits de cierto byte,
entonces:
o //Supongamos que el registro 16 tenga el siguiente valor:
o // R16 = 11010111
o //Luego, sólo se desea saber el valor de los dos últimos bits, así:
o ANDI R16,00000011
o /O
o ANDI R16,$03
 CPI es una instrucción que sirve para comparar el dato de un registro de
propósito general con un dato. De se exitosa la comparación, se activará la
bandera de cero (z), y de no serlo, se quedará en cero.
o CPI R16,$03
o //Si tomamos el ejemplo anterior, Z será igual a 1. Si el registro
fuera 00000010, Z será igual a 0, puesto que la comparación no
fue exitosa.
 BREQ es una instrucción que sirve para hacer saltos, entre líneas de
código. BREQ salta si es igual. Se activa cuando el flag Z, es igual a:
o CPI R16,$03 //Z=1
o BREQ Lazo
o OUT PORTB,$03
o Lazo
o LDI R16,$0A
o //Lo que hace el código es comparar el registro 16 con $03. En el
ejemplo anterior, esta comparación da Z=1. Así, se activa luego
BREQ, que hace saltar el programa hasta el bloque Lazo.
 BRNE es una instrucción que sirve para hacer saltos. Salta cuando Z=0.
 NOPE es una instrucción que no hace nada. Se usa para hacer pasar los
ciclos de reloj sin que se hagan nada.
 RJMP es una instrucción que sirve para hacer saltos hacia una etiqueta, no
tiene ninguna condicicón, cuando se llega a esa línea de código, se genera
el salto.
o RJMP Lazo
 RCALL es una instrucción que sirve para llamar a una subrutina, por medio
de su etiqueta. El salto está dentro del programa principal, pero la
subrutina no. Abre una “ventana” en el programa principal.
o RCALL Sub_rutina
 Ejemplo:
o Inicio
o LDI R16,$0F
o OUT DDRC, R16
o //Configura 4 pines como salida y 4 como entrada
o LDI R16,$00
o OUT DDRB,R16
o //Configura todos los pines como entrada
o OUT PORTC,$02
o //Activa el bit 1 del puerto C
o OUT DDRD,$00
o //Configura el puerto D como entrada
o IN R15,PIND
o ANDI R15,$04
o //R15 = $00
o CPI R15,$04
o //Z=0

*Averiguar qué fenómeno ocurre cuando 2 transistores conectados entran en saturación.

Anda mungkin juga menyukai