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

Post on 14-Mar-2020

2 views 0 download

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

PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR

1

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.

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

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

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

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

7

Palabra de configuración

8

Palabra de configuración

9

ARQUITECTURA HARVARD

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

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.

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.

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.

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)

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

15

INSTRUCCIONES ORIENTADAS A REGISTROS

16

INSTRUCCIONES ORIENTADAS A REGISTROS

17

INSTRUCCIONES ORIENTADAS A BIT

18

INSTRUCCIONES ORIENTADAS A BIT

19

INSTRUCCIONES PARA OPERACIONES CON LITERALES

20

INSTRUCCIONES PARA OPERACIONES CON LITERALES

21

INSTRUCCIONES

22

INSTRUCCIONES

23

INSTRUCCIONES

24

INSTRUCCIONES

25

INSTRUCCIONES

26

INSTRUCCIONES