PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E...

26
PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR 1

Transcript of PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E...

Page 1: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR

1

Page 2: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

2

BUS DE CONTROL, BUS DE DIRECCIONES Y BUS DE DATOS

Al trabajar con un microcontrolador debemos tener a la mano el diagrama a bloques para darnos una idea general de los elementos que contiene.

Es importante reconocer algunas líneas que maneja información y que se les conoce como BUS, podemos notar tres:

• BUS DE PROGRAMA O DE CONTROL

• BUS DE DIRECCIONES

• BUS DE DATOS.

Page 3: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

3

CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADORInicio

Declaración de

librerías

Configuración del

procesador

Configuración de

puertos

Cuerpo del

programa principal

Ciclo

Ciclo

Declaración de

variables

Inicio del listado

de instrucciones

Page 4: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

4

CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADORInicio

Escritura de la palabra de configuración:

· Deshabilitar protección de memoria de código

· Deshabilitar protección de memoria de programa

· Deshabilitar BOR

· Configurar oscilador INTOSC con puerto digitales

Indicación del uso del PIC16F628A

Declarar variables

dato1 dirección 0x20

dato2 dirección 0x21

dato3 dirección 0x22

Deshabilitar los comparadores analógicos

Ciclo

Ciclo

Incluir archivo p16f628a.inc

Inicio del listado

de instrucciones

LIST P=16F628A

__CONFIG 0X3F30

RADIX HEX

INCLUDE <p16f628a.inc>

dato1 equ 0x20

dato2 equ 0x21

dato3 equ 0x22

ORG 0X00

InicioProgramaPrincipal

MOVLW 0x07

MOVWF CMCON

BSF STATUS,RP0

MOVLW 0X0F

MOVWF TRISA

MOVLW 0X00

MOVWF TRISB

BCF STATUS,RP0

CICLO

MOVFW PORTA

MOVWF PORTB

GOTO CICLO

END

Configurar RA0-RA3 como entradas

y RA4-RA7 como salidas

Configurar RB0-RB7 como salidas

PORTB = PORTA

Page 5: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

5

CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR

Inicio

Escritura de la palabra de configuración:

· Deshabilitar protección de memoria de código

· Deshabilitar protección de memoria de programa

· Deshabilitar BOR

· Configurar oscilador INTOSC con puerto digitales

Indicación del uso del PIC16F628A

Declarar variables

dato1 dirección 0x20

dato2 dirección 0x21

dato3 dirección 0x22

Deshabilitar los comparadores analógicos

Ciclo

Ciclo

Incluir archivo p16f628a.inc

Inicio del listado

de instrucciones

LIST P=16F628A

__CONFIG 0X3F30

RADIX HEX

INCLUDE <p16f628a.inc>

dato1 equ 0x20

dato2 equ 0x21

dato3 equ 0x22

ORG 0X00

InicioProgramaPrincipal

MOVLW 0x07

MOVWF CMCON

BSF STATUS,RP0

MOVLW 0X0F

MOVWF TRISA

MOVLW 0X00

MOVWF TRISB

BCF STATUS,RP0

CICLO

MOVFW PORTA

MOVWF PORTB

GOTO CICLO

END

Configurar RA0-RA3 como entradas

y RA4-RA7 como salidas

Configurar RB0-RB7 como salidas

PORTB = PORTA

Page 6: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

6

CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR

Inicio

Escritura de la palabra de configuración:

· Deshabilitar protección de memoria de código

· Deshabilitar protección de memoria de programa

· Deshabilitar BOR

· Configurar oscilador INTOSC con puerto digitales

Indicación del uso del PIC16F628A

Declarar variables

dato1 dirección 0x20

dato2 dirección 0x21

dato3 dirección 0x22

Deshabilitar los comparadores analógicos

Ciclo

Ciclo

Incluir archivo p16f628a.inc

Inicio del listado

de instrucciones

LIST P=16F628A

__CONFIG 0X3F30

RADIX HEX

INCLUDE <p16f628a.inc>

dato1 equ 0x20

dato2 equ 0x21

dato3 equ 0x22

ORG 0X00

InicioProgramaPrincipal

MOVLW 0x07

MOVWF CMCON

BSF STATUS,RP0

MOVLW 0X0F

MOVWF TRISA

MOVLW 0X00

MOVWF TRISB

BCF STATUS,RP0

CICLO

MOVFW PORTA

MOVWF PORTB

GOTO CICLO

END

Configurar RA0-RA3 como entradas

y RA4-RA7 como salidas

Configurar RB0-RB7 como salidas

PORTB = PORTA

Page 7: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

7

Palabra de configuración

Page 8: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

8

Palabra de configuración

Page 9: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

9

ARQUITECTURA HARVARD

La memoria de programa y la memoria de trabajo están separadas para optimizar el funcionamiento del microcontrolador.

Page 10: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

10

ORGANIZACIÓN DE LA MEMORIA DE PROGRAMA

En el PIC16F628A las instrucciones deben escribirse a partir de la localidad 000h de la memoria de programa. En el código lo indicamos mediante la directiva ORG 0x00.

Page 11: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

11

PUERTOSEl PIC16F628A se comunica con el exterior por medio de dos puertos: PORTA y PORTB.

Cada terminal (pin) de los puertos se puede configurar como entradas o como salidas de manera independiente, para esto se utilizan los registros TRISA y TRISB.

Page 12: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

12

ARQUITECTURA BASADA EN BANCOS DE REGISTROS (RAM) En el PIC16F628A en bancos de registros que está activo se elige mediante una combinación de los bits RP0 y RP1 del registro STATUS.

Page 13: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

13

BANDERAS

El registro STATUS también contiene las flagso banderas. Son tres bits que modifican su valor de acuerdo al resultado de las operaciones aritméticas y lógicas.

Las banderas son:

• Z = Zero

• DC = Digit Carry

• C = Carry (Acarreo)

Page 14: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

14

INSTRUCCIONES ORTOGONALES

Cualquier instrucción puede utilizar cualquier elemento de la arquitectura como fuente o destino.

Efectúa sus operaciones con dos operandos, uno que proviene del registro W (Work), y el otro que se encuentra en cualquier otro registro o del propio código de instrucción. El resultado puede ir a cualquier registro o al registro W

Page 15: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

15

INSTRUCCIONES ORIENTADAS A REGISTROS

Page 16: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

16

INSTRUCCIONES ORIENTADAS A REGISTROS

Page 17: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

17

INSTRUCCIONES ORIENTADAS A BIT

Page 18: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

18

INSTRUCCIONES ORIENTADAS A BIT

Page 19: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

19

INSTRUCCIONES PARA OPERACIONES CON LITERALES

Page 20: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

20

INSTRUCCIONES PARA OPERACIONES CON LITERALES

Page 21: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

21

INSTRUCCIONES

Page 22: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

22

INSTRUCCIONES

Page 23: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

23

INSTRUCCIONES

Page 24: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

24

INSTRUCCIONES

Page 25: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

25

INSTRUCCIONES

Page 26: PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR...4 CÓDIGO BÁSICO DE UN PROGRAMA EN ENSAMBLADOR I n ic io E s c ritu ra d e la p a la b ra d e c o n fig u ra c ió n : x D e s h a b ilita

26

INSTRUCCIONES