Está en la página 1de 3

1

0  retlw b'0000110' . 8  retlw b'1101111' . Paso del Banco 1 al Banco 0  movlw b'0111111' . Contador2 equ 0x0E . Se coloca al inicio para asegurar ubicacion en Pagina.Pulsador .Pulsador . 3  retlw b'1100110' . Aqui comienza el micro. Registro utilizado en demora.**** Definicion de variables ****  Contador equ 0x0C . goto Inicio . Eliminamos Efecto rebote  btfss PORTB.1 . Definimos Pulsador como el bit 7.**** Tabla de conversion BCD a 7 Segmentos ****  . movfw Contador . 7  retlw b'1111111' . Testeamos nuevamente.**** Programa principal ****  . Cargamos valor recibido por Tabla en PORTB  btfsc PORTB.inc  __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC  . retlw b'0111111' . Origen del codigo de tabla. seguimos testeando. Comienza en cero. se resetea contador  retlw b'0111111' . retlw b'gfedcba' para display catodo comun  addwf PCL. call Demora_20ms . Llamamos tabla. movwf PORTB  clrf Contador  . seguimos testeando. goto Testeo . Salto a inicio de mi programa. list p=16F84A  #include P16F84A. Esperamos a que se suelte el pulsador -**- 2 . Testeamos si esta a 1 logico. Pasamos de Banco 0 a Banco 1. Se incrementa el contador del programa.1 .Pulsador . 5  retlw b'1111101' . movlw b'10000000' .**** Inicio del Micro ****  Reset org 0x00 . RB7 como entrada y los demas como salida. 2  retlw b'1001111' . pasamos contador a W  call BCD7SEG . 0   .**** Configuración de puertos ****  Inicio bsf STATUS. movwf TRISB  bcf STATUS.**** Testeo de Pulsador ****  Testeo  btfss PORTB. Si llega 10. movwf PORTB . Falsa Alarma. 6  retlw b'0000111' . 4  retlw b'1101101' .   . 1  retlw b'1011011' . Registro para almacenar conteo  Contador1 equ 0x0D . Registro utilizado en demora. No.RP0 . org 0x05 . incf Contador. en este caso sera para PORTB  . 9  clrf Contador . incrementamos contador. Se ha pulsado.RP0 . BCD7SEG: . Pulsador equ 7 . goto Testeo .

 goto Repeticion2 .1. goto Repeticion1 . 0x66. Si no es 0 repetimos ciclo.  . 0x7D.1 . No.Pulsador . 0x4F.1 .1 . 0x6D. clrf Contador 5. Testeamos nuevamente. 0x06. BCD7SEG: . DT 0x3F. goto $-1 . Se incrementa el contador del programa. goto Testeo . 0x07. Regresa de la subrutina.  movwf Contador2 . Iniciamos contador2  Repeticion2  decfsz Contador2. retlw 0x3F 3 . addwf PCL. volvemos a testear a que se suelte (**). --> btfss PORTA. 0xFF. Decrementa Contador2 y si es 0 sale.3. Si. retlw b'gfedcba' para display catodo comun 2.  end 1.Pulsador. decfsz Contador1. 0x5B. return . btfsc PORTB. Falsa alarma. Eliminamos efecto rebote. PCL . goto $-4 .  movwf Contador1 . Decrementa Contador1. 0x6F 4. Iniciamos contador1. Testeamos nuevamente.**** Demora ****  Demora_20ms  movlw 0xFF . Si no es cero repetimos ciclo. No. Repeticion1  movlw 0x19 . call Demora_20ms .