Bonjour,
avec un 16F84A, je cherche à afficher un segment d'un 7 segments à chaque fois que j'appuis sur un bouton relié à RB0.
j'ai autorisé l'interruption RBO mais le uC reste indifferent à mon appui ou pas:
Code:errorlevel -302 ; supprime l'alerte sur les banks ;******************************************************************* ; configuration du compilateur ;******************************************************************* list p=16F84 include <p16F84.inc> ;******************************************************************* ; configuration du registre d'état du microcontroleur ;******************************************************************* __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_OFF & _XT_OSC ;******************************************************************* ; definition des variables ;******************************************************************* cblock 0x0c ; adresse de debut de la RAM pour les variables temp0:1 temp1:1 index:1 sauvegarde_W:1 sauvegarde_S:1 endc ;******************************************************************* ; definition des macros ;******************************************************************* bank0 macro bcf STATUS,RP0 ; sélectionne la page0 bcf STATUS,RP1 endm bank1 macro bsf STATUS,RP0 ; sélectionne la page1 bcf STATUS,RP1 endm ;******************************************************************* ; Vecteur de reset ;******************************************************************* org 0x00 ; vecteur de reset goto debut ; sauter au programme principal ;******************************************************************* ; Vecteur d'interruption ;******************************************************************* org 0x04 ; vecteur d'interrruption goto interrupt ;******************************************************************* ; interruption ;******************************************************************* org 0x05 interrupt movwf sauvegarde_W swapf STATUS,W movwf sauvegarde_S bcf INTCON,2 incf index,1 swapf sauvegarde_S,w movwf STATUS swapf sauvegarde_W,1 swapf sauvegarde_W,w bsf INTCON,2 retfie ;******************************************************************* ; Programme principal ;******************************************************************* org 0x40 debut call init boucle movf index ;movlw 0x03 call table movwf PORTB goto boucle ;******************************************************************* ; initialisation ;******************************************************************* init bank1 movlw 0b00000000 ; movwf TRISA movlw 0b00000000 ; movwf TRISB ; movlw 0b00000000 ; movwf OPTION_REG movlw 0b10010000 ; movwf INTCON bank0 clrf PORTB ; clrf PORTA movlw 0x00 movwf index return ; ;******************************************************************** ; table de convertion ;******************************************************************** table addwf PCL,F ; incrémente le pointeur programme retlw b'11111110' retlw b'11111101' retlw b'11111011' retlw b'11110111' retlw b'11101111' retlw b'11011111' retlw b'10111111' retlw b'01111111' end ; fin du programme
-----