Está en la página 1de 5

Contador de personas con PIC 16F84

Este es un proyecto electrnico que les hice a unos estudiantes para una "Feria de la Ciencia" .Se trata de un circuito que esta diseado para contar las personas que pasan entre una foto celda y un haz de luz ,al tiempo que produce un pitido cada vez que el haz de luz es interrumpido ;Solo cuenta con un dgito ,as que no es muy til para una aplicacin real , pero es fcilmente ampliable. El cerebro del circuito es un microcontrolador PIC , el cual debe asegurars e de eliminar rebotes en la transicin de la seal ,de no contar ms de una vez cuando alguien permanece mucho tiempo frente el censor ,de llevar la cuenta de las veces que a sido excitado el censor , de generar el cdigo correspondiente a cada nmero en el display de 7 segmentos y de generar un pitido cada que ocurre un evento.

El programa

;contador de 0-9 de los objetos que pasen entre un rayo de luz y una foto celda ;Por Carlos Fernando Jimnez PUERTAB EQU 0X06 PUERTAA EQU 0X05 ESTADO EQU 0X03 OPTION1 EQU 0X01 INTC EQU 0X0B CONTADOR EQU 0X0C PCL EQU 0X02 W1 EQU 0X0D aux equ 0x0e goto INICIO ORG 4 goto INTERR INICIO MOVLW 0X0b MOVWF CONTADOR bsf ESTADO,5 ;BANCO1 movlw b'00000000' movwf PUERTAB ;PUERTA B COMO SALIDA movlw b'11111111' movwf PUERTAA ;PUERTA A COMO ENTRADA y salida BUCLE bcf ESTADO,5 ;BANCO0 btfsc PUERTAA,1 ;Esperamos que sea exitado el sensor GOTO BUCLE OK DECFSZ CONTADOR GOTO SALTO movlw D'10' movwf CONTADOR SALTO movfw CONTADOR subLw D'10' bcf ESTADO,5 ;BANCO0 call DISPLAY ;Buscamos el cdigo para el display xorlw b'11111111' ;Disaplay de nodo comn (debemos invertir todo) movwf PUERTAB ;Escribimos el display BSF ESTADO,5 ;BANCO1 movlw b'11010111' movwf OPTION1 bcf ESTADO,5

movlw 5 movwf OPTION1 ;cargamos el timer movlw b'10100000' ;INTERRUPCION DE TIMER PERMITIDA movwf INTC movlw 1 movwf W1 espera btfsc W1,0 goto espera pito movlw 200 ;pito movwf aux BSF ESTADO,5 ;BANCO1 movlw b'11010111' movwf OPTION1 bcf ESTADO,5 pito1 movlw 0xfe movwf OPTION1 ;cargamos el timer movlw b'10100000' ;INTERRUPCION DE TIMER PERMITIDA movwf INTC movlw 1 movwf W1 espera3 btfsc W1,0 goto espera3 bcf ESTADO,5 movfw PUERTAB xorlw b'10000000' movwf PUERTAB DECFSZ aux goto pito1 movwf PUERTAB andlw b'01111111' ;apagar el parlante movwf PUERTAB BUCLE1 bcf ESTADO,5 ;BANCO0 btfss PUERTAA,1 ;Esperamos que se quite el objeto del sensor GOTO BUCLE1 bcf ESTADO,5 ;Eliminacin del rebote movlw 5 movwf OPTION1 ;cargamos el timer movlw b'10100000' ;INTERRUPCION DE TIMER PERMITIDA movwf INTC

movlw 1 movwf W1 espera1 btfsc W1,0 goto espera1 goto BUCLE INTERR salto1 movlw b'10100000' movwf INTC movlw 0 MOVWF W1 RETFIE DISPLAY addwf PCL,1 retlw 0x3f retlw 0x06 retlw 0x5b retlw 0x4f retlw 0x66 retlw 0x6d retlw 0x7d retlw 0x07 retlw 0xff retlw 0xef end
Lista de materiales

tem PIC16F48 Cristal 4Mhz Capacitores 20pf Resistencias 220 ohm Resistencias 10K Potencimetro 50K Fotocelda Parlante Transistor 2N2222

Cantidad 1 1 2 8 3 1 1 1 1

Display 7 segmentos nodo comn

También podría gustarte