Etape 2: Assemblage de codage
Prochaine étape : la chose de codage. Certains considèrent comme une bonne pratique pour effectuer un « Blink » pour tester les sorties PIC. Asuming que tout est ok et nous allons avoir une source stable de 5VDC, nous allons « brûler » ce microcontrôleur avec le code lié.
<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>
Cette routine d’interruption fonctionne avec et externe forte impulsion mis sur la broche RB0. Quand l’INT sa effectué, tous les deux des LEDs vont changer leur statut.
Nous allons ventilation le code :
La Routine de configuration juste configurer les ports, nous allons utiliser comme entrées et sorties
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
Puis activez le registre INTCON et définir l’état du port.
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
Enfin la routine INT qui changent de statut PORTB et désactivez l’interruption externe INT drapeau.
<p> BCF PORTB,4<br> BSF PORTB,5 BCF INTCON,1 RETFIE</p>
Essayez-le, changez-en pour effectuer toute autre action et profitez !