Está en la página 1de 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 extensin de cada registro, por este esta instruccin se puede realizar entre
UNIVERSIDAD NACIONAL DEL CALLAO FIEE MICROCONTROLADORES DSPIC30F

registros de trabajo (registros W) y registros que disponga el dspic, tambin son vlidas 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 direccin de memoria especificada W1

MOV WREG, 0x0100


Al registro W0 tambin se lo conoce como WREG por ende aqu estamos moviendo el
contenido de W0 a la direccin de memoria 0x0100

MOV 0x0102, W6
Mueve la palabra (16 bits) de la localizacin 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 direccin 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 direccin de memoria especificado por 0x0106 y lo coloco el
resultado en W0

ADD RAM100
Sumo el contenido de la direccin 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 instruccin 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 instruccin 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 instruccin, sino continua con la
siguiente instruccin.

BSET PORTB,#3
Si el BIT 3 de la prtico PORTB del Dspic30Fxxxx es 1? Si es salta una instruccin , sino continua
con la siguiente instruccin.
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 instruccin se ejecuta en
dos ciclos de reloj , he aqu en donde entra en operacin las ventajas y caractersticas 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

Tambin tenemos otro comando que es el:


.text
Es la seccin donde va ir el cdigo 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 seal 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 cermico 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 calculara segn la siguiente expresin:
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 instruccin (considerar que
no existe pipeline)

El reloj del sistema viene dado por la seleccin de una fuente de oscilacin y una
configuracin de la seal 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 seal dada por el oscilador:
Phase Locked Loop (PLL): Multiplica una seal de reloj (aumenta la
frecuencia).
Programmable Clock Divider: Divide una seal de reloj (disminuye la
frecuencia).
La seleccin del reloj y sus propiedades se guardan en los registros de
configuracin del sistema (memoria de cdigo).

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 comunicacin (RS232, SPI,
I2C, CAN, etc), los puertos de comunicacin paralelos, o Parallel I/O (PIO) Ports,
son los ms comunes.
La mayora de las pines (patillas) de un PIC pueden usarse como lneas de E/S,
aunque tambin pueden tener un uso especfico en su conexin con diversos
perifricos.
Las lneas de E/S se organizan en puertos para facilitar su identificacin.
El dsPIC30F4013 dispone de 40 lneas .

Cada puerto tiene tres registros para su operacin

Varios puertos con pines configurables individualmente como entrada o salida.


Para el control cada puerto dispone de tres registros (latch):
TRISx = Permite la configuracin 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 configuracin

Problema propuesto
1. Programar el dsPIC para que al tener pulsado un boton X se mantenga encendido el
LED correspondiente X. Al soltar el boton 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 solo se encuentra encendido el correspondiente de la secuencia. Ademas,
entre el encendido de uno y el del siguiente de la secuencia tiene que pasar 0.1
segundos.

También podría gustarte