Paso 2: Montaje de codificación
Siguiente paso: la cosa de codificación. Algunas personas consideran una buena práctica para llevar a cabo un "parpadeo" para probar las salidas PIC. Asume que todo está bien y estamos teniendo una fuente de 5VDC estable, vamos a "quemar" ese microcontrolador con el código adjunto.
<p>list p=16F870<br>include "p16f870.inc"</p><p> ORG 00h GOTO INICIO</p><p> ORG 04h ;Comienzo de los registros para almacenar Instrucciones BCF PORTB,4 BSF PORTB,5 BCF INTCON,1 RETFIE</p><p> ORG 30h ;Final de los registros para almacenar Instrucciones</p><p>INICIO BSF STATUS,5 ;Cambio de Banco a 1 BCF STATUS,6 ;Cambio de Banco a 1 </p><p> BCF TRISB,5 ;RB5 Salida BCF TRISB,4 ;RB4 Salida BSF TRISB,0 ;RB0 Entrada BCF STATUS,5 ;Devuelve al Banco 0</p><p> BSF INTCON,7 ;Habilita las interrupciones BSF INTCON,4 ;Habilita Interrupciones externas RB0/INT </p><p> BCF PORTB,5 ; LED APAGADO BSF PORTB,4 ; LED ENCENDIDO</p><p>ARRIBA BTFSS PORTB,5 nop GOTO ARRIBA END</p>
Esta rutina de interrupción trabaja con e impulso alto externo en pin RB0. Cuando el INT su realizado, tanto de los LED van a cambiar su estado.
¡ El código de avería:
Rutina de configuración sólo configurar los puertos que vamos a utilizar como entradas y salidas
BSF STATUS,5 ;Bank 1º BCF STATUS,6 ;Bank 1 BCF TRISB,5 ;RB5 Output BCF TRISB,4 ;RB4 Output BSF TRISB,0 ;RB0 Input BCF STATUS,5 ;Bank 0
Habilitar el registro INTCON y establecer el estado del portb.
BSF INTCON,7 ;Enable Global Interrupt Routines BSF INTCON,4 ;Enable External interrupts RB0/INT BCF PORTB,5 ; LED OFF BSF PORTB,4 ; LED ON
Por último la rutina INT que cambiar estado PORTB y claro la interrupción externa INT bandera.
<p> BCF PORTB,4<br> BSF PORTB,5 BCF INTCON,1 RETFIE</p>
Pruébalo, cambiarla para realizar cualquier otra acción y disfrutar!