You are on page 1of 9

UNIVERSIDAD NACIONAL DEL CALLAO FIEE MICROCONTROLADORES DSPIC30F

Programación

INSTRUCCIONES 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.
UNIVERSIDAD NACIONAL DEL CALLAO FIEE MICROCONTROLADORES DSPIC30F

Como se sabe un dspics esta 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
registros de trabajo ( registros W) y registros que disponga el dspic, también son validas 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
UNIVERSIDAD NACIONAL DEL CALLAO FIEE MICROCONTROLADORES DSPIC30F

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.

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

CONFIGURACION PARA GRABAR LOS DsPIC

;..............................................................................
;Configuration bits:
;..............................................................................
config __FOSC, CSW_FSCM_OFF & XT_PLL4 ;use cristal oscilador con el 4x PLL
config __FWDT, WDT_OFF ;Desabilitado Watchdog Timer
config __FBORPOR, PBOR_ON & BORV_27 & PWRT_16 & MCLR_EN
;Set Brown-out Reset voltage and
UNIVERSIDAD NACIONAL DEL CALLAO FIEE MICROCONTROLADORES DSPIC30F

;and set Power-up Timer to 16msecs


config __FGS, CODE_PROT_OFF ;Desabilitado protecion de codigo

POSIBLES CONFIGURACIONES DEL RELOJ DEL DSPIC

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


 TRISx: Indica la dirección de los datos (1 entrada y 0 salida)
 PORTx: Lee el nivel lógico de la línea en cuestión.
 LATx: Lee el valor del latch del puerto.
 Accediendo a los bits individuales de estos registros se puede acceder a una
línea concreta de I/O.
Por ejemplo, el bit 15 del registro LATA permite leer el valor de la línea 15 del
puerto A.

You might also like