Software">
Contador0a99 Jeziel Luis
Contador0a99 Jeziel Luis
Contador0a99 Jeziel Luis
CONTADOR 0 AL 99
MICROPROCESADORES
ELABORO
REVISOR
LIST P=16F887
INCLUDE "P16F887.INC"
ORG 0X00
BANKSEL PORTA ;
CLRF PORTA ;Init PORTA
BANKSEL ANSEL ;
CLRF ANSEL ;digital I/O
BANKSEL TRISA ;
MOVLW 0X00 ;Set RA<3:2> as inputs 00001000
MOVWF TRISA ;and set RA<5:4,1:
BANKSEL PORTB;
CLRF PORTB; Init PORTB
BANKSEL ANSELH;
CLRF ANSELH;
BANKSEL TRISE;
MOVLW 0X00;
MOVWF TRISB;
BANKSEL PORTA ;
START
CLRF RETARDO0;
CLRF RETARDO1;
CLRF RETARDO2;
CLRF MAXIMO;
CLRF CONTADOR;
CLRF CONTADOR2;
CLRF MAXIMO2;
RECET
MOVLW 0X0B;
MOVWF MAXIMO2;
CLRF CONTADOR;
INCF CONTADOR2;
MOVFW CONTADOR2;
SUBWF MAXIMO2,1;
BTFSS STATUS,2;
GOTO CONT2;
GOTO START;
CONT2
CALL SEGMENTOS;
MOVWF PORTB
GOTO SIGUE;
SIGUEMOVLW 0X0B;
MOVWF MAXIMO;
INCF CONTADOR;
MOVFW CONTADOR;
SUBWF MAXIMO,1;
BTFSS STATUS,2;
GOTO CONTI;
GOTO RECET;
TIEMPO
MOVLW 0X03;
MOVWF RETARDO2;
ETIQUETA3 MOVLW 0XFF;
MOVWF RETARDO1;
ETIQUETA2 MOVLW 0XFF;
MOVWF RETARDO0;
ETIQUETA1 DECFSZ RETARDO0,1;
GOTO ETIQUETA1;
DECFSZ RETARDO1,1;
GOTO ETIQUETA2;
DECFSZ RETARDO2,1;
GOTO ETIQUETA3;
RETURN
SEGMENTOS
ADDWF PCL,1 ; Si d=0: (W)+( PCL ) -->(W); Si d=1: (W)+( PCL ) -->( PCL )
RETLW b'00111111' ; Literal (b’00111111 ’) (d’063 ’) ( 0X3F ) --> (W): CERO
RETLW b'00111111' ; Literal (b’00111111 ’) (d’063 ’) ( 0X3F ) --> (W): CERO
RETLW b'00000110' ; Literal (b’00000110 ’) (d’006 ’) ( 0X06 ) --> (W): UNO
RETLW b'01011011' ; Literal (b’01011011 ’) (d’091 ’) ( 0X5B ) --> (W): DOS
RETLW b'01001111' ; Literal (b’01001111 ’) (d’079 ’) ( 0X4F ) --> (W): TRES
RETLW b'01100110' ; Literal (b’01100110 ’) (d’102 ’) ( 0X66 ) --> (W):
CUATRO
RETLW b'01101101' ; Literal (b’01101101 ’) (d’109 ’) ( 0X6D ) --> (W): CINCO
RETLW b'01111101' ; Literal (b’01111101 ’) (d’125 ’) ( 0X7D ) --> (W): SEIS
RETLW b'00000111' ; Literal (b’00000111 ’) (d’007 ’) ( 0X07 ) --> (W): SIETE
RETLW b'01111111' ; Literal (b’01111111 ’) (d’127 ’) ( 0X7F ) --> (W): OCHO
RETLW b'01100111' ; Literal (b’01100111 ’) (d’103 ’) ( 0X67 ) --> (W): NUEVE
END
SIMULACION EN PROTEUS
Ejemplos de Funcionamiento
Y asi sucesivamente
Hasta que el display del puerto B termina su contador y se reinicia a 0 para hacer el conteo
del 0 al 99
Nota: para ver el funcionamiento en tiempo real, checar video adjuntado en la plataforma.
O aquí https://www.youtube.com/watch?v=pFNmrHJ5eHg&feature=youtu.be
CONCLUSIONES