You are on page 1of 10

UNIVERSIDAD NACIONAL DEL CALLAO FIEE MICROCONTROLADORES DSPIC30F

PROGRAMACION DEL DSPIC


Grupo de instrucciones del microcontrolador DSPIC30f

1. Instrucciones de transferencia de datos


UNIVERSIDAD NACIONAL DEL CALLAO FIEE MICROCONTROLADORES DSPIC30F

2. INSTRUCCIONES ARITMETICAS

3. INSTRUCCIONES LOGICAS
UNIVERSIDAD NACIONAL DEL CALLAO FIEE MICROCONTROLADORES DSPIC30F

4. INSTRUCCIONES DE ROTACION Y DESPLAZAMIENTO

5. INSTRUCCIONES DE MANEJO DE BITS


UNIVERSIDAD NACIONAL DEL CALLAO FIEE MICROCONTROLADORES DSPIC30F

6. INSTRUCCIONES DE COMPARACION

7. INSTRUCCIONES DE SALTO
UNIVERSIDAD NACIONAL DEL CALLAO FIEE MICROCONTROLADORES DSPIC30F

8. INSTRUCCION DE STACK

9. INSTRUCCION DE CONTROL

10. INSTRUCCIONES DSP

ALGUNOS INSTRUCCIONES USANDO EN ENSAMBLADOR PARA DSPICS

MOV W0,W1
Mueve el contenido del registro W0 al registro W1.

Como se sabe un dspics está compuesto de 16 registros de trabajo desde W0, W1, W2... W15
de 16 bits de extensión de cada registro, por este esta instrucción se puede realizar entre
UNIVERSIDAD NACIONAL DEL CALLAO FIEE MICROCONTROLADORES DSPIC30F

registros de trabajo (registros W) y registros que disponga el dspic, también son válidas las
siguientes instrucciones:

MOV W1,W2 ; mueve el contenido de W1 a W2


MOV W5, TRISA ; mueve el contenido de W5 a TRISA
MOV W0,[W1] ; mueve el contenido de W0 a la dirección de memoria especificada W1

MOV WREG, 0x0100


Al registro W0 también se lo conoce como WREG por ende aquí estamos moviendo el
contenido de W0 a la dirección de memoria 0x0100

MOV 0x0102, W6
Mueve la palabra (16 bits) de la localización 0x0102 al registro W6.
MOV #0x0003,W0
Mueve un literal (un numero) al registro WEG=W0

ADD W0,[W4],W5
Sumo el contenido de W0 mas el contenido de la dirección de memoria especificado por W4 y
el resultado lo coloco en el registro de W5 , la suma es en forma de palabra ( 16 bits)

ADD 0x0106,WREG
Suma W0 al contenido de la dirección de memoria especificado por 0x0106 y lo coloco el
resultado en W0

ADD RAM100
Sumo el contenido de la dirección de memoria (variable) especificad por RAM100 al registro
W0 y el resultado lo deposito en la variable RAM100 mismo

PUSH.S
Guarda en la pila de datos el valor de W0, W1, W3, y del registro Status

PUSH W0
Guarda en la pila el valor de W0, esta instrucción es equivalente en lenguaje ensamblador con
mov a MOV W0,[W15++]

PUSH W8
Guarda en la pila de datos el valor de W8

POP.S
Retorna de la pila de datos el valor de W0, W1, W3, y del registro Status

POP W0
Retorna de la pila de datos el valor de W0, esta instrucción aquí descrita con mov es
equivalente a MOV [--W15],W0

BTSC SR,#Z
El BIT Z (zero) del registro estatus es cero? Si es salta una instrucción, sino continua con la
siguiente instrucción.

BSET PORTB,#3
Si el BIT 3 de la pórtico PORTB del Dspic30Fxxxx es 1? Si es salta una instrucción , sino continua
con la siguiente instrucción.
UNIVERSIDAD NACIONAL DEL CALLAO FIEE MICROCONTROLADORES DSPIC30F

MOV 0xFF00, W0
MOV WO, TRISB
Configuro los pines 15:8 del port B como entradas y los pines 7:0 del port B del dspic como
salida

LAC W1,A
Muevo el contenido de W1 al registro acumulador del DSPIC

MPY W4*W5,A
Multiplique W4*W5 y el resultado coloquelo en acumulador, esta instrucción se ejecuta en
dos ciclos de reloj , he aquí en donde entra en operación las ventajas y características del dspic

SAC.R A,W0
Guarda Acumulador al registro W0

SETM TRISA ; EQUIVALE A TRISA=0xFFFF

BCLR PORTA,#14 ; pongo a 0 logico el ,pin 14 del PORTA

COMANDOS EN MPLAB

.bss
Ensambla las variables a usarse
.bss
B1: .space4 ; cuatro bytes reservado para B1
B2: .space1 ; 1 byte reservado par B1
Count: .space 2 ; 2 bytes reservado para Count

También tenemos otro comando que es el:


.text
Es la sección donde va ir el código del programa en si.
.text
.global __reset
__reset:
MOV B1,W1
Loop:
Bra Loop ; equivalente a goto
Done:
.end
UNIVERSIDAD NACIONAL DEL CALLAO FIEE MICROCONTROLADORES DSPIC30F

POSIBLES CONFIGURACIONES DEL RELOJ DEL DSPIC

Sistema oscilador

Es el encargado de dar la señal de reloj a los elementos principales y auxiliares.


El dsPIC cuenta con tres osciladores primarios, uno secundario, dos osciladores internos, uno
externo y de un circuito PLL que sirve para elevar la frecuencia del oscilador interno.

Osciladores primarios

Son tres XLT, XT y el HS.


 XTL es un oscilador de cuarzo para un rango de frecuencias de 200 KHZ a 4 MHZ .
 XT es unoscilador de cuarzo o un resonador cerámico de 4 MHZ a 10 MHZ.
 HS es un oscilador de cristal de cuarzo de 10 MHZ a 25 MHZ.
Todos estos osciladores primarios emplean las patitas OSC1 y OSC2.

Reloj del sistema


Esquema general de funcionamiento del reloj del sistema
UNIVERSIDAD NACIONAL DEL CALLAO FIEE MICROCONTROLADORES DSPIC30F

La frecuencia a la que funciona el PIC (Fcy), es decir, a la que se ejecutan las


instrucciones, se calcularía según la siguiente expresión:
Fcy = (Fosc*PLL)/Post/4,
, donde:
 Fosc: Frecuencia del oscilador usado.
 PLL: Multiplicador que implica el preescaler.
 Post: Divisor que implica el
 4: Indica los ciclos necesarios para completar una instrucción (considerar que
no existe pipeline)

El reloj del sistema viene dado por la selección de una fuente de oscilación y una
configuración de la señal dada por éste.
 Tipos de osciladores:
 Interno: Disponible en el propio PIC.
 Externo: Generalmente instalado en la placa en donde se inserta el
PIC.
 Tratamientos posibles a la señal dada por el oscilador:
 Phase Locked Loop (PLL): Multiplica una señal de reloj (aumenta la
frecuencia).
 Programmable Clock Divider: Divide una señal de reloj (disminuye la
frecuencia).
 La selección del reloj y sus propiedades se guardan en los registros de
configuración del sistema (memoria de código).

Entrada/salida con puertos paralelos

 La E/S del PIC permite conectar éste a diversos dispositivos.


 Aunque los PIC suelen diponer de otros tipos de comunicación (RS232, SPI,
I2C, CAN, etc), los puertos de comunicación paralelos, o Parallel I/O (PIO) Ports,
son los más comunes.
 La mayoría de las pines (patillas) de un PIC pueden usarse como líneas de E/S,
aunque también pueden tener un uso específico en su conexión con diversos
periféricos.
 Las líneas de E/S se organizan en puertos para facilitar su identificación.
 El dsPIC30F4013 dispone de 40 líneas .

Cada puerto tiene tres registros para su operación

 Varios puertos con pines configurables individualmente como entrada o salida.


 Para el control cada puerto dispone de tres registros (latch):
TRISx = Permite la configuración de los pines del puerto como entrada o salida (1 =
Entrada, 0 = Salida). Por defecto (al arrancar) todos los pines son entradas.
PORTx = Contiene el valor sobre cada pin de entrada, permite la lectura de las
entradas.
LATx = Almacena el dato en cada pin de salida, permite la escritura en las salidas.
UNIVERSIDAD NACIONAL DEL CALLAO FIEE MICROCONTROLADORES DSPIC30F

Ejemplo de configuración

Problema propuesto
1. Programar el dsPIC para que al tener pulsado un bot´on X se mantenga encendido el
LED correspondiente X. Al soltar el bot´on se debe apagar el LED. Pueden tenerse
pulsados varios botones a la vez.

2. Programar el dsPIC para que los LEDs de 1 a 4 se enciendan siguiendo la siguiente


secuencia de forma continua: 1, 2, 3, 4, 3, 2, 1, 2, 3, 4, 3, 2, 1, . . . . Es decir, en cada
momento s´olo se encuentra encendido el correspondiente de la secuencia. Adem´as,
entre el encendido de uno y el del siguiente de la secuencia tiene que pasar 0.1
segundos.

You might also like