En el ejemplo RA1(L) pondrá a cero el bit 1 del puerto A, RA2(T) cambiará el
valor del bit 2 del puerto a y el resto de botones están sin definir.
También es posible crear secuencias síncronas por programa, en función del
tiempo.
Plantéese como ejercicio modificar el programa para sumar las entradas RA3RA0 y RB3-RB0 (todas pulsadores) en el registro 0x0c y poner las patas RA2, RA1 y
RB1 con valor 1.
5.3.2 Contar y visualizar
Además de las tan habituales instrucciones de salto (GOTO) y de rutina (GOSUB)
contamos con un tercer tipo de salto condicional muy especial, ya que sólo saltará una
línea. Las llamaremos de brinco, como traducción de skip. Estas instrucciones son
BTFSS registro,bit (que brincará en caso de que el bit valga 1) y BTFSC registro,bit
(que lo hará si es 0).
Otro problema al que nos enfrentaremos por primera vez es el del vector de reset y
el vector de interrupción. En la familia de los PIC16CXX2 el vector de reset (situación
del contador de programa en caso de reset) está situado en la dirección de programa
0x00 y el de interrupción en la 0x04. De este modo convendrá comenzar nuestros
programas en la dirección 0x05, y rellenar la dirección 0x00 con un simple salto a la
misma (GOTO 0x05).
Nos planteamos un nuevo problema: Crearemos un programa para un PIC16C84
funcionando a 4MHZ encargado de contar hasta 0x5f. Cuando lo alcance se detendrá
en un bucle no operativo. El valor del contador se visualizará en 8 diodos LED
conectados al puerto B.
La solución es el programa cuenta.asm, cuyo listado hallaremos en la página
siguiente.
55