programaciÓn en lenguaje ensamblador...4 cÓdigo bÁsico de un programa en ensamblador i n ic io e...
TRANSCRIPT
![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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022070703/5e70b7630fced46c8702acba/html5/thumbnails/26.jpg)
26
INSTRUCCIONES