Programmation PIC16F84 : PORTA, PORTB, Comparaisons et TMR0
Initialisation du PORTA
· Initialisation du PORTA :
BCF STATUS,RP0BCF STATUS,RP1CLRF PORTABSF STATUS,RP0MOVLW 0x06MOVWF ADCON1MOVLW 0xCFMOVWF TRISA
Initialisation du PORTB
· Initialisation du PORTB :
BCF PORTB,7BCF PORTB,6BSF STATUS,RP0BCF TRISB,7BCF TRISB,6
Sauvegarde de W et du registre STATUS
· Sauvegarder W et STATUS :
MOVWF WtempSWAPF STATUS,WBCF STATUS,RP0BCF STATUS,RP1MOVWF STATUStempMOVF PCLATH,WMOVWF PCLATHtemp
Programme de 0x100 à WAIT
· De 0x100 à WAIT :
ORG 0x100MOVLW 0x10MOVWF PCLATHMOVF TECLA,WCALL TABLACLRF PCLATH
WAIT GOTO WAIT
ORG 0x1000
TABLA ADDWF PCL,FRETLW 0x01
…RETLW 0x0F
END
Comparaison Mayor et Menor o igual
· Mayor y Menor o igual :
MOVF NUM1,WSUBLW 'NUM2'BTFSS STATUS,CGOTO MAYORGOTO MENOR_O_IGUAL
Comparaison Menor et Mayor o igual
· Menor y Mayor o igual :
MOVLW 'NUM2'SUBWF NUM1,WBTFSC STATUS,CGOTO MAYOR_O_IGUALGOTO MENOR
Configuration du timer TMR0
· TMR0 :
BSF STATUS,RP0MOVLW b'xxxxxxxx'MOVWF OPTION_REGCLRF TRISDBCF STATUS,RP0MOVLW d'__'MOVWF TMR0CLRF PORTDMOVLW d'1'
Boucle de scrutation du drapeau TMR0
NO_FLAG BTFSS INTCON,T0IFGOTO NO_FLAGXORWF PORTD,FBCF INTCON,T0IFGOTO NO_FLAG