You are on page 1of 11

Electricidad

Electrnica
Automatizacin.

Introduccin a la programacin de uC
en lenguaje Assembler
Docente: Braulio Martnez R.

Introduccin a la programacin de uC
Programacin en Lenguaje Assembly.

Registros de memoria y nombre de bits (Banco 0 uC)

Bit 5 del registro STATUS (RP0)

Introduccin a la programacin de uC
Programacin en Lenguaje Assembly.

Introduccin a la programacin de uC
Programacin en Lenguaje Assembly.
Algoritmo de programacin.
Identificar el dispositivo (PIC 16F84A)
Tipo de oscilador para implementacin (XT ,HS), configuraciones como
comunicacin serial o libreras de dispositivos (LCD, Teclado matricial)
Inicio Rutina Principal
Declaracin de puertos de entrada y salida.
Programacin del uC
Instrucciones y lgica.
Fin de la programacin.
Simulacin y pruebas
Implementacin.

Introduccin a la programacin de uC
Lista de instrucciones.

Introduccin a la programacin de uC
Consideraciones:

La letra f se utiliza para nombrar un registro, como el registro STATUS, PORTA,


PORTB, variables, etc.
La letra l indica un elemento literal. Un valor numerico
La letra w de utiliza para nombrar el registro acumulador, el registro
acumulador se utiliza para la programacin en lenguaje ensamblador, ya que esta
en constante contacto con los registros fsicos (pines o puertos de entrada o
salida), adems la mayora de las funciones van asociadas al acumulador.
A modo de ejemplo, Se necesita enviar el numero decimal 255 al puerto B.
Lo primero que se debe hacer es enviar el numero 255 al registro acumulador,
como queda almacenado, la prxima lnea de instruccin debe ser enviar el dato
del acumulador al puerto, en otras palabras.
Movlw 0xFF ; mover el dato 255 formato hexadecimal al acumulador.
Movwf PORTB; mover el dato del acumulador al puerto.

Introduccin a la programacin de uC
Programacin en Lenguaje Assembly.
BSF Bit Set f
Syntax: BSF f,b
Description: Bit 'b'
in register 'f' is set.
BSF STATUS,5

CALL Call Subroutine


Syntax: CALL k
Status Affected: None
Descripcin: Realiza la
llamada a una rutina de
programacin.

BCF Bit Clear f


BCF f,b
Description: Bit 'b' in
register 'f' is cleared.
BCF STATUS ,5

MOVWF Move W to
f

Syntax: MOVWF f
Description: Move
data from W

MOVLW Move Literal


to W

Syntax: MOVLW
MOVLW
OPERANDO1

Introduccin a la programacin de uC
Programacin en Lenguaje Assembly.
Ejemplo, disee un programa, en el cual la lectura del puerto A, se refleje en el puerto B.

Identificar el dispositivo (PIC 16F84A)


Tipo de oscilador para implementacin (XT ,HS), configuraciones como comunicacin serial o
libreras de dispositivos (LCD, Teclado matricial)
Inicio Rutina Principal (org 0)
Declaracin de puertos de entrada y salida.
Ingresar al banco de configuracin 1
Mover un 0 al puerto B para declararlo como salida.
Mover un 1 al puerto A para declararlo como entrada.
Salir del banco de configuracin.
Programacin del uC
Instrucciones y lgica.
mover la lectura del puerto a al acumulador
mover el valor almacenado en el acumulador al puerto b
Fin de la programacin.
Simulacin y pruebas
Implementacin.

Introduccin a la programacin de uC
Programacin en Lenguaje Assembly.
List P=16F84A
INCLUDE P16f84A.INC
org 0
Inicio
bsf STATUS,5
movlw 0x00
movwf TRISB
Movlw 0XFF
movwf TRISA
bcf STATUS,5

loop
movfw PORTA
movwf PORTB
goto loop
end

Declaracin de dispositivos o hardware a


utilizar.
INICIO DEL PROGRAMA (org 0 en
assembler y main () en programacin en
C).
Configuracin puertos de entrada o
salida, habilitacin comunicacin serial,
uso de libreras, entre otros.

Desarrollo de la programacin.

Termino del programa.

Introduccin a la programacin de uC
Programacin en Lenguaje Assembly.
List P=16F84A
INCLUDE P16f84A.INC
org 0
;Inicio de programa equivalente al main de programacin en c
Inicio
bsf STATUS,5 ;A travs del registro Status accedemos al banco 1
movlw 0x00 ;Mueve el valor 0x00 al registro acumulador
movwf TRISB ;Mueve el valor almacenado del acumulador al puerto B
movlw 0xFF ;Mueve el valor 0xFF al registro acumulador
movwf TRISA ;Mueve el valor almacenado del acumulador al puerto A
bcf STATUS,5 ;Me salgo del banco 1
loop
;Inicio de Rutina loop
movfw PORTA ;Mueve la lectura del puerto A al registro acumulador
movwf PORTB ;Mueve el valor almacenado en el acumulador al puerto B
goto loop
;Retorna hacia la instruccin loop.
end

Introduccin a la programacin de uC
Programacin en Lenguaje Assembly.
Ejercicio 1:
Realice un Proyecto en Mplab y posterior simulacin del ejemplo visto en
clases.
Ejercicio 2:
Realice un proyecto con un PIC 16F84A en lenguaje assembly en el cual todo lo
que este leyendo el puerto B se refleje en el puerto A.

You might also like