Universidad Politécnica de Cartagena

Departamento de Electrónica, Tecnología de computadoras y Proyectos. Sistemas Electrónicos Digitales.

Ingeniero Técnico en Telecomunicación Especialidad Telemática

Universidad Politécnica de Cartagena
Departamento de Electrónica, Tecnología de computadoras y Proyectos. Sistemas Electrónicos Digitales.

Ingeniero Técnico en Telecomunicación Especialidad Telemática

Profesor: José Vera Saura (jose.veras@upct.es)

Capítulo 3: Software de los Capí 3 microcontroladores PIC16/17.

Profesor: José Vera Saura (jose.veras@upct.es)

Capítulo 3: Software de los Capí 3 microcontroladores PIC16/17.

Tema 7. Repertorio de Instrucciones de los microcontroladores PIC
• Repertorio RISC
– Instrucciones Simples y rápidas
• Ejecutadas en un solo ciclo de instrucción (excepto las de salto)

Tema 7. Repertorio de Instrucciones de los microcontroladores PIC
• Tipos de Formato
– Campo del código OP
• Para definir la operación a realizar por la instrucción.

– Instrucciones Ortogonales
• Cualquier intrucción para cualquier operando.

– Campo de los operandos (f y d)
• f: operando fuente • d: operando destino

– Longitud constante en instrucciones y datos
• en los PIC16X8X
– Instrucciones:14 bits – Datos: 8 bits

– Campo de operando inmediato o literal (k)
• k: bits que contienen el valor de un operando inmediato (literal).

– Campo que referencia a un bit (b)
• b: 3 bits que indican la posición de un bit concreto en un registro de 8 bits.
1

• Distinta longitud datos-intrucciones (arquitectura Harvard).

– Campo de dirección de salto (k)

2

Universidad Politécnica de Cartagena
Departamento de Electrónica, Tecnología de computadoras y Proyectos. Sistemas Electrónicos Digitales.

Ingeniero Técnico en Telecomunicación Especialidad Telemática

Universidad Politécnica de Cartagena
Departamento de Electrónica, Tecnología de computadoras y Proyectos. Sistemas Electrónicos Digitales.

Ingeniero Técnico en Telecomunicación Especialidad Telemática

Profesor: José Vera Saura (jose.veras@upct.es)

Capítulo 3: Software de los Capí 3 microcontroladores PIC16/17.

Profesor: José Vera Saura (jose.veras@upct.es)

Capítulo 3: Software de los Capí 3 microcontroladores PIC16/17.

Tema 7. Repertorio de Instrucciones de los microcontroladores PIC
• Grupos de instrucciones atendiendo al tipo de operación:
– – – – – Manejo de registros de tamaño byte (8 bits) Manejo de bits Manejo de valores inmediatos (literales) Saltos de control del flujo del programa. Funciones especiales

Manejo de registros de tamaño byte (8 bits)

3

4

Universidad Politécnica de Cartagena
Departamento de Electrónica, Tecnología de computadoras y Proyectos. Sistemas Electrónicos Digitales.

Ingeniero Técnico en Telecomunicación Especialidad Telemática

Universidad Politécnica de Cartagena
Departamento de Electrónica, Tecnología de computadoras y Proyectos. Sistemas Electrónicos Digitales.

Ingeniero Técnico en Telecomunicación Especialidad Telemática

Profesor: José Vera Saura (jose.veras@upct.es)

Capítulo 3: Software de los Capí 3 microcontroladores PIC16/17.

Profesor: José Vera Saura (jose.veras@upct.es)

Capítulo 3: Software de los Capí 3 microcontroladores PIC16/17.

Manejo de bits, valores inmediatos y op. Contro

Instrucciones desarrolladas

Notas 1: When an I/O register is modified as a function of itself ( e.g., MOVF PORTB, 1), the value used will be that value present on the pins themselves. For example, if the data latch is ’1’ for a pin configured as input and is driven low by an external device, the data will be written back with a ’0’. 2: If this instruction is executed on the TMR0 register (and, where applicable, d = 1), the prescaler will be cleared if assigned to the Timer0 Module. 3: If Program Counter (PC) is modified or a conditional test is true, the instruction requires two cycles. The second cycle is executed as a NOP.

5

•El alumno debe leer cada instrucción en la bibliografía.

6

1

Universidad Politécnica de Cartagena
Departamento de Electrónica, Tecnología de computadoras y Proyectos. Sistemas Electrónicos Digitales.

Ingeniero Técnico en Telecomunicación Especialidad Telemática

Universidad Politécnica de Cartagena
Departamento de Electrónica, Tecnología de computadoras y Proyectos. Sistemas Electrónicos Digitales.

Ingeniero Técnico en Telecomunicación Especialidad Telemática

Profesor: José Vera Saura (jose.veras@upct.es)

Capítulo 3: Software de los Capí 3 microcontroladores PIC16/17.

Profesor: José Vera Saura (jose.veras@upct.es)

Capítulo 3: Software de los Capí 3 microcontroladores PIC16/17.

Tema 8. Desarrollo de programas para los microcontroladores PIC16XXX
Instrucciones vs. diagrama de flujo
• movlw (Move literal to Work file) Mueve el literal k al acumulador • movwf (Move Work file to file) Mueve el acumulado al registro f.

Instrucciones vs. diagrama de flujo
• BTFSC (Bit Test File and Skip if Clear) se salta 1 instrucción si el bit b del registro f es cero. • BTFSS (Bit Test File and Skip if Set) salta 1 instrucción si el bit es 1.
btfsc PORTA,4 op_1 PORTB,7 sigue1 PORTB,7 btfss goto bsf goto Op_0 bcf PORTA,4 op_0 PORTB,7 sigue1 PORTB,7 8 goto bcf goto op_1 bsf

Bus de Datos

movlw movwf

b’11111’ TRISA

Sigue1 ……………………………………

7

Voluntario que escriba el código para btfss (0,2p)

Sigue1 ……………………………………

Universidad Politécnica de Cartagena
Departamento de Electrónica, Tecnología de computadoras y Proyectos. Sistemas Electrónicos Digitales.

Ingeniero Técnico en Telecomunicación Especialidad Telemática

Universidad Politécnica de Cartagena
Departamento de Electrónica, Tecnología de computadoras y Proyectos. Sistemas Electrónicos Digitales.

Ingeniero Técnico en Telecomunicación Especialidad Telemática

Profesor: José Vera Saura (jose.veras@upct.es)

Capítulo 3: Software de los Capí 3 microcontroladores PIC16/17.

Profesor: José Vera Saura (jose.veras@upct.es)

Capítulo 3: Software de los Capí 3 microcontroladores PIC16/17.

Ramificación múltiple

btfsc goto bcf goto op_1 bsf

PORTA,4 op_1 PORTB,7 sigue1 PORTB,7 btfsc bsf btfss bcf PORTA,4 PORTB,7 PORTA,4 PORTB,7 9

Sigue1 ……………………………………

Op? movfw Op addwf PCL,1 goto Acc0 goto Acc1 0 1 2 goto Acc2 RB = 101 RB = 47 RB = 38 Acc0 movlw .101 ;instrucciones Acción 0 movwf PORTB goto encuentro encuentro Acc1 movlw .47 ;instrucciones Acción 1 movwf PORTB goto encuentro Acc2 movlw .38 ;instrucciones Acción 2 movwf PORTB goto encuentro encuentro: ;sitio de encuentro luego de una de las acciones ............................... ;continuación del programa ...............................

3 RB = 26

10

Universidad Politécnica de Cartagena
Departamento de Electrónica, Tecnología de computadoras y Proyectos. Sistemas Electrónicos Digitales.

Ingeniero Técnico en Telecomunicación Especialidad Telemática

Universidad Politécnica de Cartagena
Departamento de Electrónica, Tecnología de computadoras y Proyectos. Sistemas Electrónicos Digitales.

Ingeniero Técnico en Telecomunicación Especialidad Telemática

Profesor: José Vera Saura (jose.veras@upct.es)

Capítulo 3: Software de los Capí 3 microcontroladores PIC16/17.

Profesor: José Vera Saura (jose.veras@upct.es)

Capítulo 3: Software de los Capí 3 microcontroladores PIC16/17.

Ramificación múltiple (otra forma)
movlw .0 xorwf Op,0 btfsc STATUS,Z goto Acción1 movlw .1 xorwf Op,0 btfsc STATUS,Z goto Acción2 movlw .2 xorwf Op,0 btfsc STATUS,Z goto Acción3 Acción1: ............................... ............................... goto encuentro Acción2: ............................... ; Verificación del contenido de OPCION con respecto a W ; Verificando la bandera Z ; Verificación del contenido de OPCION con respecto a W ; Verificando la bandera Z ; Verificación del contenido de OPCION con respecto a W ; Verificando la bandera Z ; instrucciones correspondientes a la Acción 1

movf Op,w call tabla movwf PORTB ................ ................ ................ tabla addwf PCL,f retlw .101 retlw .47 retlw .38 retlw .26

Consulta a tablas

; ; ; ;

Si Si Si Si

W W W W

=0 =0 =0 =0

se se se se

retorna retorna retorna retorna

con con con con

W= W= W= W=

101(decimal) 47 (decimal) 38 (decimal) 36 (decimal)

• Con la directiva DT (Define Tabla):
tabla addwf PCL,f
12

; instrucciones correspondientes a la Acción 2
11

DT .101, .47, .38, .26 ;

2

Universidad Politécnica de Cartagena
Departamento de Electrónica, Tecnología de computadoras y Proyectos. Sistemas Electrónicos Digitales.

Ingeniero Técnico en Telecomunicación Especialidad Telemática

Universidad Politécnica de Cartagena
Departamento de Electrónica, Tecnología de computadoras y Proyectos. Sistemas Electrónicos Digitales.

Ingeniero Técnico en Telecomunicación Especialidad Telemática

Profesor: José Vera Saura (jose.veras@upct.es)

Capítulo 3: Software de los Capí 3 microcontroladores PIC16/17.

Profesor: José Vera Saura (jose.veras@upct.es)

Capítulo 3: Software de los Capí 3 microcontroladores PIC16/17.

Otras Directivas del Ensamblador
• CBLOCK y ENDC
– CBLOCK: Define a Block of Constants – ENDC: End Constant Block
CBLOCK Op1 Op2 Result Op ENDC 0X0C

Ejercicio propuesto
Diseñar un circuito basado en un PIC16F84 (circuito eléctrico, diagrama de flujo y programa de control), capaz de controlar un intermitente posterior de bicicleta, con las siguientes especificaciones:
1 2 3 3 Control PIC16F84 Pulsador ON /OFF

1.Al pulsar, los diodos deben, los 3 a la vez, producir una intermitencia de 0,3 segundos, que será el tiempo de intermitencia para todos los casos. 2.Al pulsar de nuevo, los diodos deben encenderse secuencialmente, de manera que simule una rotación a la derecha: 1,2,3,1,2,3,1,2,...... 3.Al pulsar de nuevo, los diodos deben encenderse secuencialmente, de manera que simule una rotación a la izquierda: 3,2,1,3,2,1,3,2,...... 4.Al pulsar de nuevo, la rotación será según la serie: 1,2,3,2,1,2,3,2,1,2,..... 5.Al volver a pulsar, los diodos permanecerán apagados, y el sistema deberá consumir lo mínimo posible, para permitir una vida prolongada de las baterías. 6.En el estado anterior, si se vuelve a pulsar, entra de nuevo en el punto 1.
13 14

···

3