ERM11
ERM11
ERM11
11.1 INTRODUCCION.
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.
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.
Figura 11.3.1.
figura 11.4.1.
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.
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
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
___________________________________________________________________
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.
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.
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
___________________________________________________________________
Figura 11.5.8
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
LIMPIAR BIT b DE f.
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.
___________________________________________________________________
1.6 CONCLUSION.
*
3 00000011
XOR
6 00000110
00000101
*
OPERACION LOGICA OR ENTRE DOS NUMEROS 13 Y 91
13 00000111
OR
91 10010000
93 10010011
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
23 00010111
AND
194 11000010
02 00000010
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
CAMPO
PAR PULSOS
SEGUN
NORMA
CAMPO
IMPAR
CAMPO
PAR
PULSOS
SEGUN
PICDREAM
CAMPO
IMPAR
16C84
SW2 SW1
MINUTOS HORA
FIG.11.3.1
*
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