Foros
Nuevos mensajes
Buscar en foros
Novedades
Nuevos mensajes
Nuevos recursos
Última actividad
Recursos
Últimas revisiones
Buscar recursos
Acceder
Registrarse
Novedades
Buscar
Buscar
Buscar sólo en títulos
De:
Nuevos mensajes
Buscar en foros
Menú
Acceder
Registrarse
Install the app
Instalar
Diseño digital
Microcontroladores y sistemas embebidos
Problema con contador y PIC16F887 - (Ensamblador)
JavaScript está desactivado. Para una mejor experiencia, por favor, activa JavaScript en el navegador antes de continuar.
Estás usando un navegador obsoleto. No se pueden mostrar este u otros sitios web correctamente.
Se debe actualizar o usar un
navegador alternativo
.
Responder al tema
Mensaje
[QUOTE="Nubia1004, post: 1166546, member: 447673"] Buenas. Estoy haciendo un código sencillo donde: 1. Se asigna un valor a un DIP-SW 2. Se debe activar un pulsador NA 3. Se deben mostrar los valores asignados en 2 diplays 7 segmentos. Al activar el pulsador 1 o 2 veces se deben mostrar los valores en los display la tercera vez, se debe borrar todo. Mi problema está en que pregunto por el estado del pulsador, y luego asigno .3 a un contador que decremento hasta que llegue a 0 y borre todo, pero no está llegando a cero. ¿Alguna idea? Estoy empezado con esto de la programación en ensamblador, así que su ayuda será de gran utilidad. Estoy trabajando con el PIC16F887 Más o menos así es lo que tengo: [php] list P=16F887 #include p16f887.inc __CONFIG _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC __CONFIG _CONFIG2, _WRT_OFF & _BOR21V CBLOCK 20H VALOR VALOR1 CONTNA CONT1 CONT2 ENDC ORG 0 BANKSEL ANSEL CLRF ANSEL CLRF ANSELH BANKSEL TRISA MOVLW B'11111111' MOVWF TRISA MOVWF TRISB CLRF TRISC CLRF TRISD BANKSEL PORTA CLRF PORTA CLRF PORTB CLRF PORTC CLRF PORTD INICIO BTFSS PORTB,0 GOTO INICIO MOVLW .3 MOVWF CONTNA DECFSZ CONTNA GOTO MOSTRAR GOTO BORRAR ;SI SE PULSO NA MOSTRAR MOVFW PORTA ;MANDAR BITS DEL DIPS8 A LOS PINES ANDLW 0x0F ;PARA SOLO USAR LOS 4BITS MAS BAJOS(CONTROLAR DISPLAY1) CALL TABLA ;ASIGNAR VALORES SEGUN LA ENTRADA DE 4BITS MOVWF PORTC ;MOVER AL DISPLAY 1 MOVFW PORTA ;MANDAR BITS DEL DIPS8 A LOS PINES ANDLW 0xF0 ;PARA SOLO USAR LOS 4BITS MAS ALTOS(CONTROLAR DISPLAY2) MOVWF VALOR ;GUARDO EL VALOR DE LA ENTRADA SWAPF VALOR,W ;INTERCAMBIO VALORES DE LOS BITS DE ALTA Y LOS DE BAJA CALL TABLA ;SELECCIONAR NUMERO MOVWF PORTD ;MOVER AL DISPLAY 2 GOTO INICIO BORRAR CLRF PORTA CLRF PORTC CLRF PORTD GOTO INICIO TABLA ADDWF PCL,F RETLW B'00111111' ; 0 3F RETLW B'00000110' ; 1 06 RETLW B'01011011' ; 2 5B RETLW B'01001111' ; 3 4F RETLW B'01100110' ; 4 66 RETLW B'01101101' ; 5 6D RETLW B'01111101' ; 6 7D RETLW B'00000111' ; 7 07 RETLW B'01111111' ; 8 7F RETLW B'01100111' ; 9 67 RETLW B'01110111' ; A 77 RETLW B'01111100' ; B 7C RETLW B'00111001' ; C 39 RETLW B'01011110' ; D 5E RETLW B'01111001' ; E 79 RETLW B'01110001' ; F 71 END[/php] [/QUOTE]
Verificación
Responder
Diseño digital
Microcontroladores y sistemas embebidos
Problema con contador y PIC16F887 - (Ensamblador)
Arriba