Autor Tema: Problema en Contador de personas  (Leído 3538 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado natty182

  • PIC10
  • *
  • Mensajes: 4
Problema en Contador de personas
« en: 14 de Julio de 2008, 23:51:05 »
bueno se usa el Pic16f84
alli les va :


El codigo es el siguiente :

El programa

;contador de 0-9 de los objetos que pasen entre un rayo de luz y una foto celda

;Por Carlos Fernando Jiménez
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 código para el display
xorlw b'11111111' ;Disaplay de ánodo común (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 ;Eliminación 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



Pero me marca errores en el codigo por favor alguien que domine el tema ya que es mi proyecto final..

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Problema en Contador de personas
« Respuesta #1 en: 15 de Julio de 2008, 00:36:55 »
Hola, aquí está el código corregido, sintacticamente quedo bien
Me preocupa que sea tu "proyecto final" y no sabes como corregirlo, ya que solamente empleaste copy/paste ....
menos mal que no estudias medicina  :? :lol:  :mrgreen:
Además, veo que solo has estado en el foro por 18 minutos... es decir... no buscaste mucho la solución...

Código: ASM
  1. ;Por Carlos Fernando Jiménez (corregido TODOPIC)
  2.         LIST  P=16F84A
  3.         #INCLUDE "p16f84A.inc"
  4.         ERRORLEVEL      -302, -307      ;(NO FIGURAN LOS ERRORES DE CAMBIO DE PAGINA)
  5.  
  6. PUERTAB EQU 0X06
  7. PUERTAA EQU 0X05
  8. ESTADO EQU 0X03
  9. OPTION1 EQU 0X01
  10. INTC EQU 0X0B
  11. CONTADOR EQU 0X0C
  12. PCL EQU 0X02
  13. W1 EQU 0X0D
  14. aux equ 0x0e
  15.         goto INICIO
  16.         ORG 4
  17.         goto INTERR
  18.  
  19. INICIO MOVLW 0X0b
  20.         MOVWF CONTADOR
  21.         bsf ESTADO,5 ;BANCO1
  22.         movlw b'00000000'
  23.         movwf PUERTAB ;PUERTA B COMO SALIDA
  24.         movlw b'11111111'
  25.         movwf PUERTAA ;PUERTA A COMO ENTRADA y salida
  26. BUCLE bcf ESTADO,5 ;BANCO0
  27.         btfsc PUERTAA,1 ;Esperamos que sea exitado el sensor
  28.         GOTO BUCLE
  29. OK DECFSZ CONTADOR,F
  30.         GOTO SALTO
  31.         movlw D'10'
  32.         movwf CONTADOR
  33. SALTO movfw CONTADOR
  34.         subLw D'10'
  35.         bcf ESTADO,5 ;BANCO0
  36.         call DISPLAY ;Buscamos el código para el display
  37.         xorlw b'11111111' ;Disaplay de ánodo común (debemos invertir todo)
  38.         movwf PUERTAB ;Escribimos el display
  39.         BSF ESTADO,5 ;BANCO1
  40.         movlw b'11010111'
  41.         movwf OPTION1
  42.         bcf ESTADO,5
  43.         movlw .5
  44.         movwf OPTION1 ;cargamos el timer
  45.         movlw b'10100000' ;INTERRUPCION DE TIMER PERMITIDA
  46.         movwf INTC
  47.         movlw .1
  48.         movwf W1
  49. espera btfsc W1,0
  50.         goto espera
  51.  
  52. pito movlw .200 ;pito
  53.         movwf aux
  54.         BSF ESTADO,5 ;BANCO1
  55.         movlw b'11010111'
  56.         movwf OPTION1
  57.         bcf ESTADO,5
  58. pito1 movlw 0xfe
  59.         movwf OPTION1 ;cargamos el timer
  60.         movlw b'10100000' ;INTERRUPCION DE TIMER PERMITIDA
  61.         movwf INTC
  62.  
  63.         movlw .1
  64.         movwf W1
  65. espera3 btfsc W1,0
  66.         goto espera3
  67.         bcf ESTADO,5
  68.         movfw PUERTAB
  69.         xorlw b'10000000'
  70.         movwf PUERTAB
  71.         DECFSZ aux,f
  72.         goto pito1
  73.         movwf PUERTAB
  74.         andlw b'01111111' ;apagar el parlante
  75.         movwf PUERTAB
  76.  
  77. BUCLE1 bcf ESTADO,5 ;BANCO0
  78.         btfss PUERTAA,1 ;Esperamos que se quite el objeto del sensor
  79.         GOTO BUCLE1
  80.         bcf ESTADO,5 ;Eliminación del rebote
  81.         movlw .5
  82.         movwf OPTION1 ;cargamos el timer
  83.         movlw b'10100000' ;INTERRUPCION DE TIMER PERMITIDA
  84.         movwf INTC
  85.         movlw .1
  86.         movwf W1
  87. espera1 btfsc W1,0
  88.         goto espera1
  89.         goto BUCLE
  90.  
  91. INTERR
  92.  
  93. salto1
  94.  
  95.         movlw b'10100000'
  96.         movwf INTC
  97.         movlw 0
  98.         MOVWF W1
  99.         RETFIE
  100.  
  101. DISPLAY addwf PCL,F
  102.         retlw 0x3f
  103.         retlw 0x06
  104.         retlw 0x5b
  105.         retlw 0x4f
  106.         retlw 0x66
  107.         retlw 0x6d
  108.         retlw 0x7d
  109.         retlw 0x07
  110.         retlw 0xff
  111.         retlw 0xef
  112.         end
« Última modificación: 15 de Julio de 2008, 01:18:54 por todopic »
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado natty182

  • PIC10
  • *
  • Mensajes: 4
Re: Problema en Contador de personas
« Respuesta #2 en: 15 de Julio de 2008, 17:28:10 »
Todopic muchisimas gracias  :) :)
es mi proyecto de fin de ciclo, y menos mal que no soy medico si no imaginate..
ahora mira este problemita .. en el esquema dice transistor  2N3045 pero en la lista de materiales dice : Transistor 2N2222

Cual de los dos es ??
ah otra mira cuando voy a la electronica pido capacitores de 20pf y resulta que me dicen de cuanta intensidad  ?? por favor si me das una manita .. Te lo agradeceria toda la vida.


O si kieres subo una foto de como va kedando para que veas los componentes que utilixe ..
por favor contestame ya que el jueves lo presento..

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Problema en Contador de personas
« Respuesta #3 en: 15 de Julio de 2008, 19:08:03 »
Hola, el transistor del esquema, dice 2N3055 que es un transistor de potencia
para un pequeño parlante, y con la resistencia de colector que figura en el circuito, yo colocaria un BC337

Los capacitores, te preguntaran.. ¿de que tension? , los ceramicos mas comunes son de 50 voltios, normalmente, tenes que colocar una tension 3 veces mayor a la de alimentacion... es decir, mayor a 15 voltios

Suerte el Jueves!

¿no estudiaras electromedicina no?  :D :D :mrgreen:

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado natty182

  • PIC10
  • *
  • Mensajes: 4
Re: Problema en Contador de personas
« Respuesta #4 en: 15 de Julio de 2008, 22:35:01 »
 :-/ :-/ :-/ Gracias maestro  :-/ :-/ :-/
Como te lo podre agradecer . . .
Si kieres pasame la voz para pasarles todos los libros pic 16f84 ocn ejemplos resueltos ya que no les entienod pro qe yo estudio ing sistemas ..
Es posibles posterlos para que los demas los bajen dame la orden.
Saludos

Desconectado natty182

  • PIC10
  • *
  • Mensajes: 4
Re: Problema en Contador de personas
« Respuesta #5 en: 15 de Julio de 2008, 23:09:03 »
Todopic disculpa por la mediana o alta ignorancia pero tu codigo me muestra errores..
Seria muy atrevido si te pido que me envies el archivo .asm
por favor...

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Problema en Contador de personas
« Respuesta #6 en: 16 de Julio de 2008, 20:58:50 »
Hola, lo que pasa que al copiar el ejemplo anterior, te coloca los numeros de linea... aqui esta puro... y probado en mplab  :mrgreen:
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...