Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

ERM11

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 23

EDUCANDO AL REY MICRO. Nº11.

EN ESTE ARTICULO VAMOS A DARLE TODOS LOS DATOS PARA CONSTRUIR


UN GENERADOR DE SEÑALES PARA TV CONSTRUIDO CON UN PIC Y MUY
POCOS MATERIALES PERIFIRICOS. COMPLETAREMOS EL ARTICULO CON
ALGUNAS COMANDOS DEL SET DE HERRAMIENTAS DEL PIC QUE TODAVIA
NO HABIAMOS ANALIZADO.

ING. ALBERTO H. PICERNO


Ing. en Electrónica UTN - Miembro del cuerpo docente de APAE
E-mail picernoa@satlink.com

11.1 INTRODUCCION.

Un generador de escalas de grises para TV, adecuado para nuestra norma es un


instrumento infaltable en cualquier laboratorio de reparaciones o de aficionado al
electrónica. Su mayor utilidad la encontramos en el momento de ajustar los amplificadores
de vídeo de un TV, para que la imagen en la pantalla presente realmente una gradación
desde el negro al blanco pasando por una escala de grises medios.
Por lo común este ajuste se realiza con una imagen de un canal comercial, llevando
el control de saturación a mínimo (los técnicos más exquisitos tratan de hacer el ajuste al
comienzo de las transmisiones, con la emisión de una señal de barras de color). Muy pocos
poseen un generador de barras dado que no es imprescindible y cuesta algo así como 100
U$S.
Nosotros le proponemos que construya su propio generador con un costo
aproximado a los U$S 10. Quede claro que se trata de un generador de blanco y negro y no
de color, pero creemos que esto tiene solución porque justo con este proyecto vamos a
lanzar un concurso para estudiantes secundarios, universitarios y aficionados que
consistirán en modificar el proyecto agregándole una sección de color.
Terminado el concurso suponemos que usted va a tener una o varias versiones de un
generador de color en los posible binorma.
En sucesivos artículos el autor va a ir dando ayuditas sobre como agregar el color,
sobre todo en lo que respecta a las normas PAL y NTSC. A los concursantes le quedará la
tarea de modificar el programa y el hardware correspondiente.
En el próximo número junto con el comienzo del año lectivo daremos las bases del
concurso y los requisitos para la inscripción pero desde ya le adelantaremos que es solo
para socios del "Club de Saber Electrónica" así que los invitamos a asociarse recordándoles
que es una de las pocas cosas gratuitas que quedan en este mundo.

11.2 CARACTERISTICAS DEL GENERADOR.

Con la idea de fabricar este generador, comencé a navegar por Internet para ver que
existía al respecto. Mi intensión era modificar algún programa de reloj en pantalla o de
exhibición de caracteres.
Grande fue mi sorpresa cuando a la pregunta BAR + VIDEO + GENERATOR +
PIC en el buscador Yahoo, salió un resultado positivo; pique en el link y apareció un
proyecto llamado PICDREAM de los Sres. ALAN FORT y PETER KNIGHT, libre para el
dominio publico por Internet (FREE FOR PUBLIC DOMAIN BY INTERNET). Esto
significa que se puede bajar el programa de la red en forma gratuita.
Las características del generador de barras son las siguientes:
Líneas por cuadro 625
Cuadros por segundo 50
Entrelazado 2:1
Barras de gris 8
Pulsos de ecualización no posee
Tipo de PIC 16C84 o 16F84
Cristal 4 MHz.

A estas características se le debe agregar que el sistema posee un reloj en pantalla


de 4 dígitos que se pone en hora con dos pulsadores y una zona donde aparecen 7 dígitos
que caminan por la pantalla horizontalmente (en ingles se conocen como SCROLL
DIGIT). Es decir que la pantalla se ve como en la figura 11.2.1.

Figura 11.2.1.

Los autores aclaran que el programa esta basado en otro del Sr. ERIC SMITH'S a
los cuales se les cambiaron los códigos y los algoritmos ya que la versión original requería
un PIC 16C5X de la serie de 16 MHz que fue modificado para funcionar con el 16C84 de
solo 4 MHz.
El generador funciona en la norma CCIR de 625 líneas, con algunos cambios
insignificantes en los tiempos de duración de los pulsos que fueron aproximados al
microsegundo. El cambio más importante es la ausencia de pulsos de ecualización en la
mitad del trazado horizontal, pero hay que aclarar que los pulsos horizontales normales se
siguen produciendo aún durante el pulso de sincronismo y borrado vertical. En TVs muy
antiguos la falta de pulsos de ecualización puede provocar una perdida leve de entrelazado
que puede considerarse de poca importancia. Ver figura 11.2.2.

Figura 11.2.2.

11.3 CIRCUITO DEL GENERADOR DE BARRAS.

El circuito original lo mostramos en la figura 11.3.1 y es apto para conectarlo a un


circuito con una impedancia de entrada de 75 Ohm. No puede conectarse con un cable ya
que en este caso tanto la impedancia de salida del generador como la de entrada del
receptor de TV debe ser de 75 Ohm. Sin embargo ese esquema básico funciona y bastante
bien y es evidente que casi no tiene componentes externos.

Figura 11.3.1.

El agregado de un transistor BC549 permite agregar un control de nivel de salida y


una salida a impedancia constante de 75 Ohm con acoplamiento a capacitor. Ver figura
11.3.2.
Figura 11.3.2.

Si se desea un nivel de salida mayor y la posibilidad de inversión de vídeo se puede


utilizar un amplificador operacional de vídeo. Le proponemos al lector que utilice el
circuito inversor de vídeo del Nº 151 de saber electrónica con un resistor de 75 Ohm y un
electrolitico de 470 uF en serie con la salida de la pata 7.

11.4 COMO SE GENERAN LOS NIVELES DE SALIDA.

Volviendo al circuito de la figura 11.3.2 observamos que los resistores formadores


de vídeo R1 a R5 están conectados al puerto "A" del PIC (salvo R5 que esta conectado al
puerto "B"). Todos estos pines estarán declarados por el programa como patas de salida.
Por lo tanto sus tensiones pueden estar en 0 o en 5 V. Sin embargo la salida de vídeo tiene
escalones comprendidos entre 0 y 2 V aproximadamente. Esto se logra utilizando diferentes
valores de resistencia en R1 a R5.
Las especificaciones del instrumento indican que genera 8 barras que sumados al
nivel de borrado y al sincronismo hacen 10 valores diferentes de tensión de salida. Como
solo tenemos 5 salidas significa que el programa debe ser capaz de aplicar tensión a dos
salidas al mismo tiempo para así formar los necesarios 10 escalones. El autor considera que
debería aprovecharse el máximo de patas de puertos I/O del PIC16C84 que es de 13 patas
ya que con 10 patas de salida para formar el vídeo y dos de entrada para poner en hora el
reloj se simplificaría el programa y se facilitaría la inclusión de color.
¿El PIC generará una señal de vídeo negativa o positiva?. El PIC genera lo que
usted ordene. La pata de salida puede programarse para que este siempre en 5 V salvo en el
momento de emitirse un pulso o por lo contrario que este siempre en 0 V y cambie a 5 V en
el momento de emitir un pulso. Esto significa que puede generar tanto señal negativa como
positiva. Inclusive se podría realizar una inversión por programa a través de una pata de
entrada en 0 o 5 V. Ver figura 11.4.1.

figura 11.4.1.

11.5 EL PROGRAMA ORIGINAL DEL GENERADOR DE BARRAS.

El programa puede ser bajado del sitio del autor en:

www.thepicarchive.cwc.net/dtpa/picdrean.zip

El programa tiene una extensión de 25 paginas tamaño A4; pero casi la mitad de las
mismas están destinadas a definir los dígitos del reloj y de las letras del texto en
movimiento.
Las instrucciones utilizadas ya fueron vistas en otros artículos o por lo menos
fueron vistas algunas similares. Algunas que no fueron explicadas las aclararemos en este
articulo. De cualquier modo agregaremos a continuación una tabla con las 35 instrucciones
básicas del PIC diferenciadas como instrucciones dirigidas a registros, a bits o literales y de
control. Ver figura 11.5.1.
Figura 11.5.1.

A estas 35 operaciones nosotros le sumamos una mas que es la TRIS para


configurar puertos. Según Microchip esta instrucción es obsoleta pero la operación que la
reemplaza es muy difícil de usar y preferimos seguir utilizando TRIS.
La palabra nible utilizada en la tabla, hace referencia a las palabras digitales de 4
dígitos así como las de 8 dígitos son llamadas "BYTES" las de cuatro letras son llamadas
"NIBLES".
Las instrucciones dirigidas a registros que aún no aplicamos son las
correspondientes a las operaciones de suma y resta, a las operaciones lógicas y a las de
intercambios de nibles en un byte.

OPERACION SUMA DE REGISTROS.

Repasemos como esta compuesta una instrucción. En la segunda columna se


especifica el código de la operación, por ejemplo sumar, restar, incrementar y en la tercera
el o los operandos de la operación. La primer columna se reserva para las etiquetas en caso
que sean necesarios.
Recuerde que cuando usamos los nombres genéricos f, d, b, y k estos tienen el
siguiente significado.

f: cualquiera de los 48 registros reservados de la RAM


d: el registro de la operación. Si d vale 0 el resultado se guarda en el registro w si
vale 1 en el registro f especificado en la instrucción.
b: indica él numero de bit que modifica la operación.
k: representa un dato constante o "literal" o una dirección de memoria para un salto
(etiqueta).

Para recordar la operación suma de registros y completar nuestro tarjetero de


operaciones creamos el siguiente resumen.
___________________________________________________________________
ADDWF suma el contenido de un registro al contenido del registro W
___________________________________________________________________
Sintaxis ADDWF f, d
Operación W + F destino
Ciclos de instrucción 1
Ejemplo ADDWF SUM,0
Antes de la instrucción W = D"15" SUM = D"110"
Después de la instrucción W = D"125" SUM = D"110"
___________________________________________________________________

Este resumen significa lo siguiente: en la sintaxis se indica que siempre tendremos


la operación ADDWF acompañada de dos operandos el primero f significa que ese
operando puede ser cualquiera de las 48 posiciones de RAM reservadas. Antes de esta
operación se debe definir el nombre del operando con una operación equ por ejemplo SUM
EQU 06 es decir que en la posición de memoria 06 cargaremos la variable SUM. Luego
en una operación MOV se debe cargar un número en el registro SUM, en nuestro ejemplo
el decimal 110.
El segundo operando igual a 0 significa que el resultado de la operación se guardará
en el registro w. Si el segundo operando fuera 1 el resultado se guardaría en el registro
SUM.
En nuestro ejemplo asumimos que el registro w tenia guardado el decimal “15” y
que en la posición de memoria 06 estaba guardado el número decimal “110”. El resultado
de sumar w a SUM será el decimal 126 y se guardará en el registro w, en tanto que SUM
no cambiará. Si en el ejemplo se hubiera usado como segundo operando un 1 el resultado
de la suma se hubiera guardado en SUM y w no habría variado. En esta operación este
operando solo puede tener valores 0 o 1.
La operación se cumple en un solo ciclo, es decir que con un cristal de 4 MHz
(clock = 1 uS) la operación dura 1 uS exactamente.
¿Cuándo se usa la instrucción ADDWF?. Por ejemplo en el programa de una
maquina de sumar. Por medio de un teclado se carga un número por el puerto paralelo de
entrada y se guarda en una posición de memoria (W) al apretar la tecla enter; luego se
carga otro numero que se ubica en la posición de memoria MEMO1.- Cuando se pulsa la
tecla + se realiza la operación de sumar W y MEMO 01 guardando el resultado en MEMO1
y mostrándolo en el display. Si se ingresa un nuevo número queda aplicado a W y al pulsar
+ se realiza una suma encadenada.

OPERACIÓN LOGICA AND.

La operación lógica "AND" es aquella que cumple con la tabla de verdad de una
compuerta AND. Como sabemos las entradas deben ser altas para que la salida sea alta. Por
ejemplo en una AND de 3 entradas se cumple la tabla de verdad de la figura 11.5.2.

Figura 11.5.2

La operación lógica AND, entre dos números de 8 bits consiste en probar los bits de
igual peso de ambos números y colocar un 1 en el resultado cuando esos bits son 1.
Obviamente en caso contrario el bit del resultado será un 0. En la figura 11.5.3 se puede
observar un ejemplo para una mejor comprensión.

Figura 11.5.3

La tarjeta para memorizar la operación es la siguiente:


___________________________________________________________________
ANDWF operación lógica AND entre los registros W y F
___________________________________________________________________
Sintaxis ANDWF F,d
Operación w and f à destino
Ciclos de instrucción 1
Ejemplo ANDWF REG,1
Antes de la instrucción W = B "00010111"
REG = B "11000010"
Después de la instrucción W = B "00010111"
REG = B "00000010"
___________________________________________________________________

Recuerde que si el segundo operando hubiera sido cero el resultado de la operación


se guardaría en w y REG no cambiaría de valor.

BORRAR EL CONTENIDO DEL REGISTRO F.

Esta operación es muy simple, consiste en tomar uno de los 48 registros reservados
de la RAM que llamamos f y poner todos sus dígito en cero. La tarjeta correspondiente
seria:
___________________________________________________________________
CLRF Borra el contenido del registro "F"
___________________________________________________________________
Sintaxis CLRF f
Operación 00  f
Ciclos de instrucción 1
Ejemplo CLRF REG
Antes de la instrucción REG = H "3D"
después de la instrucción REG = 0
___________________________________________________________________

Una variante que no requiere mayores comentarios es CLRW que evidentemente


anula el binario cargado en el registro de trabajo w. La tarjeta correspondiente seria:
___________________________________________________________________
CLRW borra el contenido del registro W
___________________________________________________________________
Sintaxis CLRW
Operación 00  W
Ciclos de instrucción 1
Ejemplo CLRW
Antes de la instrucción W = 3B
Después de la instrucción W = 00
___________________________________________________________________

OPERACIÓN "OR" ENTRE W Y F.

Recuerde que la operación OR responde a la tabla de verdad de la compuerta OR.


Una sola de las entradas altas produce un alto en la salida. Por ejemplo en la figura 11.5.4
mostramos la tabla de verdad de una compuerta OR de 3 entradas y en la figura 11.5.5 la
operación OR entre los números 13 y 91 hexadecimales.

Figura 11.5.4 y 11.5.5

La tarjeta correspondiente se muestra a continuación.


___________________________________________________________________
IORWF operación lógica OR entre W y F
___________________________________________________________________
Sintaxis IORWF f, d
Operación w OR f  destino
Ciclos de instrucción 1
Ejemplo IORWF reg, 0
Antes de la instrucción reg = B "00000011"
W = B "10010000"
Después de la instrucción reg = B "00000011"
W = B "10010011"
___________________________________________________________________

Ya no es necesario aclarar que si el segundo operando es igual a 1 el resultado se


guardará en el registro REG y W no cambiará.

OPERACIÓN RESTAR W DE F.

Esta operación es similar a la suma pero teniendo en cuenta que el resultado puede
ser negativo. El signo del resultado no se puede ubicar en el mismo registro en donde se
ubica el resultado. Para esta función se utiliza el bit "C" del registro de estados que es igual
a 1 cuando el resultado es positivo o nulo y 0 cuando el resultado es negativo.
En la tarjeta correspondiente realizaremos tres ejemplos diferentes para que se
aprecie la diferencia en el signo del resultado y en la figura 11.5.6 mostramos las
operaciones matemáticas correspondientes a los ejercicios.

Figura 11.5.6.

Observe que a diferencia de los números naturales al restar binarios el resultado es


un número que se encuentra dos unidades por debajo de 28 = 256.
___________________________________________________________________
SUBWF resta w de f
___________________________________________________________________
Sintaxis SUBWF f,d
Operación f - w  destino
Ciclos de instrucción 1
EJEMPLO 1 Antes de la instrucción
Reg = 00000011 w = 00000010
Después de la instrucción C = 1
Reg = 00000001 w = 00000010

EJEMPLO 2 Antes de la instrucción


Reg = 00000010 w = 00000010
Después de la instrucción C = 1
Reg = 00000000 w = 00000010
EJEMPLO 3 Antes de la instrucción
Reg = 00000001 w = 00000010
Después de la instrucción C = 0
Reg = 11111101 w = 00000010
____________________________________________________________

OPERACIÓN INTERCAMBIAR NIBLES DE F.

Es una operación muy simple que consiste en intercambiar el primer nible por el
segundo. Ver figura 11.5.7.

figura 11.5.7.

La tarjeta correspondiente se puede observar a continuación:


___________________________________________________________________

SWAP intercambia el nible alto por el bajo.


___________________________________________________________________
Operación XXXX XXXX
Nible A Nible B

XXXX XXXX
Nible B Nible A
ciclos de instrucción 1
ejemplo SWAPF reg,0
Antes de la instrucción
Reg = 10100101 w=?
Después de la instrucción
Reg = 10100101 w = 01011010
___________________________________________________________________

OPERACIÓN LOGICA OR EXCLUSIVA.

La OR exclusiva es una OR modificada para que la salida permanezca baja cuando


todas las entradas están altas. La operación OR exclusive entre w y f puede observarse en la
figura 11.5.8.

Figura 11.5.8

La tarjeta correspondiente a la operación XOR es muy simple y similar a las


anteriores:
___________________________________________________________________
XORWF OPERACIÓN LOGICA OR ENTRE W Y F
___________________________________________________________________
Sintaxis XORWF f,d
Operación W XOR f  destino
Ciclos de repetición 1
Ejemplo XORWF reg, 1
Antes de la instrucción
Reg = B “00000011” w = B “00000110”
Después de la instrucción
Reg = B “00000101” w = B “00000110”

Así terminamos de ver las nuevas instrucciones dedicadas a los registros.


Prácticamente todas las instrucciones que se realizan entre dos registros tienen su
equivalente entre el registro W y un literal o constante que genéricamente llamamos K.
Como las instrucciones son similares solo vamos a realizar las tarjetas correspondientes sin
ninguna explicación ociosa.
___________________________________________________________________
ADDLW suma de un literal al registro w
___________________________________________________________________
Sintaxis ADDLW K
Operación W + K  W
Ciclos de instrucción 1
Ejemplo ADDLW H “4”

Antes de la instrucción
W = H “6” K = H “4”
Después de la instrucción
W = H “A” K = H “4”
___________________________________________________________________

___________________________________________________________________
ANDLW operación lógica AND entre un literal y W
___________________________________________________________________
Sintaxis ANDLW K
Operación W AND K  W
Ciclos de instrucción 1
Ejemplo ANDLW 5F

Antes de la instrucción W = A3
Después de la instrucción W = 03
___________________________________________________________________
___________________________________________________________________
SUBLW operación resta de un literal K al registro W
___________________________________________________________________
Sintaxis SUBLW K
Operación K-W  W
Ciclos de instrucción 1
Ejemplo SUBLW 02

Antes de la instrucción W=1 C=?


Después de la instrucción W = 1 C = 1
__________________________________________________________________
XORLW operación lógica XOR entre W y un literal
___________________________________________________________________
Sintaxis XORLW K
Operación W XOR K  W
Ciclos de instrucción 1
Ejemplo XORLW
Antes de la instrucción B “00101100”
W = B “10011000”
Después de la instrucción W = B “10110100”
___________________________________________________________________

Así terminamos de analizar las instrucciones dedicadas a los literales y de control.


Nos quedan aún analizar aquellas operaciones orientadas a los bits. Se trata de cuatro
operaciones que modifican un solo bit del Byte o que analizando un bit determinado
realizan una acción de salto.

LIMPIAR BIT b DE f.

Se emplea cuando se desea que un determinado bit de un byte necesita cambiarse de


1 a 0. Esto es habitual considerando que un byte puede comandar un puerto de salida
(encendido de leds). Si por alguna razón necesitamos que un led quede apagado podemos
emplear la instrucción BCF dirigida del bit correspondiente. Observemos la tarjeta de la
operación.
___________________________________________________________________
BCF Poner en cero el bit b del registro f
___________________________________________________________________
Sintaxis BCF f, b
Operación 0  f <b>
Ciclos de instrucción 1
Ejemplo BCF reg, 7
antes de la instrucción reg = B “10101110”
después de la instrucción reg = B “ 00101110”

La operación contraria de BCF es BSF en donde el bit señalado se fuerza al estado


alto. Por lo demás las instrucciones son enteramente similares.
___________________________________________________________________
BSF pone en 1 el bit b del registro f
___________________________________________________________________
Sintaxis BSF f, b
Operación 1  f <b>
Ciclos de instrucción 1
Ejemplo BSF reg, 7
Antes de la instrucción REG = B “01111000”
después de la instrucción REG = B “11111000”
___________________________________________________________________

Las ultimas dos instrucciones son las de control y salto. En ellas se analiza el estado
de un bit determinado y de acuerdo a su valor se saltea o no la siguiente sentencia. BTFSC
prueba el bit señalado y si es cero saltea la siguiente sentencia.

___________________________________________________________________
BTFSC prueba el bit b del registro f si es cero saltea una línea.
___________________________________________________________________
Sintaxis BTFSC f, b
Operación salta sí f <b> = 0
Ciclos de instrucción 1 o 2 si saltea
Ejemplo BTFSC reg, 2
GOTO INICIO
Resto del programa …………
Si el segundo bit de REG es cero sigue con el resto del programa.
Si el segundo bit de REG es uno va a inicio.
___________________________________________________________________

La instrucción que veremos BTFSS la complementaria de BTFSC. Con BTFSS el


salteo se produce sí el bit b del registro f esta en el estado alto.
___________________________________________________________________
BTFSS Prueba el bit b del registro f y salta una línea si está en 1.
___________________________________________________________________
Sintaxis BTFSS F, B
operación salta sí f <b> = 1
ciclos de instrucción 1 o 2 si hay salteo
ejemplo BTFSS reg, 3
GOTO INICIO
Resto de programa ……………
Si el tercer bit de reg es 1 sigue con el resto del programa.
Si el tercer bit de reg es 0 va a inicio.

1.6 CONCLUSION.

En este articulo le explicamos como construir un generador de barra de grises para


TV, que se utilizará como proyecto básico de nuestro concurso. También terminamos de
conocer el set de instrucciones del PIC 16C84 para que el lector complete su fichero de
instrucciones. Le aconsejamos fotocopiar las tarjetas y pegarlas sobre una cartulina dejando
una oreja con el nombre de la instrucción.
En el próximo articulo vamos a seguir completando nuestro laboratorio, ahora le
toca el turno a un frecuencímetro digital. También completaremos la información sobre el
concurso y daremos algunas ayudas para convertir el generador de barras de grises en
barras de color.
*
H "A5" 10100101 XXXX XXXX

SWAP INVERSION DE NIBLES

H "A5" 01011010 XXXX XXXX

FIG.11.5.7 OPERACION DE INVERSION DE NIBLES

*
3 00000011

XOR

6 00000110

00000101

FIG.11.5.8 OPERACION XOR


*
3 00000011 2 00000010 1 00000001
- - -
2 00000010 2 00000010 2 00000010

1 00000001 0 00000000 11111101

C=1 C=1 C=0

FIG.11.5.6 RESTA DE DOS NUMEROS BINARIOS

*
OPERACION LOGICA OR ENTRE DOS NUMEROS 13 Y 91

13 00000111
OR
91 10010000

93 10010011

FIG.11.5.5 RESULTADO DE LA OPERACION LOGICA AND


*

ENT. ENT. ENT. SAL.


1 2 3 1

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 1

1 0 0 1

1 0 1 1

1 1 0 1

1 1 1 1

FIG.11.5.4 TABLA DE VERDAD DE COMPUERTA


OR DE TRES ENTRADAS
*
OPERACION LOGICA AND ENTRE DOS NUMEROS 23 Y 194

23 00010111
AND
194 11000010

02 00000010

FIG.11.5.3 RESULTADO DE LA OPERACION LOGICA AND


*

ENT. ENT. ENT. SAL.


1 2 3 1

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 0

1 0 0 0

1 0 1 0

1 1 0 0

1 1 1 1

FIG.11.5.2 TABLA DE VERDAD DE COMPUERTA


AND DE TRES ENTRADAS
*

CAMPO
PAR PULSOS
SEGUN
NORMA
CAMPO
IMPAR

CAMPO
PAR
PULSOS
SEGUN
PICDREAM
CAMPO
IMPAR

FIG.11.2.2 MODIFICACION DE LOS PULSOS


*

FIG.11.4.1 INVERSION DE VIDEO POR SOFTWARE


*
MA1
D1
7805 R1 470
1N4001
+12 V VI V0
GND C4 MN1 R2 910
C3
1 µF 1 µF
1 RA2 RA1 18 R3 1K8
2 RA3 RA0 17
R4 1K
3 RA4 OSC1 16 SALIDA 75 OHMS
4 MCLR OSC2 15
5 14 R5 270
VSS VDD
6 RB0 RB7 13 X1
7 RB1 RB6 12
8 11 4 MHz C2
RB2 RB5 C1
9 10 22 pF 22 pF
RB3 RB4

16C84

SW2 SW1
MINUTOS HORA

FIG.11.3.1
*

INSTRUCCIONES ORIENTADAS A REGISTROS

ADDWF f, d SUMAR W Y F
ANDWF f, d AND ENTRE W Y F
CLRF f LIMPIAR f
CLRW LIMPIAR w
COMF f, d COMPLEMENTAR f
DECF f, d DECREMENTAR f
DECFSZ f, d DECREMENTAR F, SALTAR SI CERO
INCF f, d INCREMENTAR f
INCFSZ f, d INCREMENTAR f, SALTAR SI CERO
IORWF f, d OR ENTRE W Y f
MOVF f, d MOVER f
MOVWF f MOVER W A f
NOP NO OPERACION
RLF f, d ROTAR A LA IZQUIERDA
RRF f, d ROTAR A LA DERECHA
SUBWF f, d RESTAR W DE f
SWPF f, d INTERCAMBIAR NIBLES DE f
XORWF f, d OR EXCLUSIVA ENTR W Y f

INSTRUCCIONES ORIENTADAS A BITS

BCF f, b LIMPIAR BIT b DE f


BSF f, b ACTIVAR BIT b DE f
BTFSC f, b PROBAR BIT b DE f, SALTAR SI CERO
BTFSS f, b PROBAR BIT b DE f, SALTAR SI ES UNO

INSTRUCCIONES LITERALES DE CONTROL

ADDLW k SUMAR LITERAL k A w


ANDLW k AND ENTRE k Y w
CALL k LLAMAR SUBRUTINA
CLRWDT LIMPIAR WDT
GOTO k SALTA A DIRECCION k
IORLW k OR ENTRE k Y w
MOVLW k CARGAR A w CON LITERAL k
RETFIE RETORNAR DE INTERRUPCION
RETLW k RETORNAR Y CARGAR A w CON k
RETURN RETORNAR DE SUBRUTINA
SLEEP IR AL MODO DE BAJO CONSUMO
SUBLW k RESTARLE k A w
XORLW k OR EXCLUSIVA ENTRE k Y w

FIG.11.5.1 CONJUNTO DE INSTRUCCIONES DEL PIC16C84

También podría gustarte