Autor Tema: Tengo un problema no lee el pin de ningun puerto bien  (Leído 1406 veces)

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

Desconectado wedge550

  • PIC10
  • *
  • Mensajes: 10
Tengo un problema no lee el pin de ningun puerto bien
« en: 18 de Abril de 2011, 00:36:02 »
El problema es este al estar en la rutina ATOTAL no me lee ningun pin y solo lee si mantengo precionado la tecla 1 del teclado matricial... pero no me explico xq y otra cosa más el ciclo for en la rutina sirena no esta funcionando alguien me puede ayudar o decirme q es lo q pasa... gracias

aqui esta el codigo lo estoy compilando en microcode studio picbasic pro2.6

DEFINE LCD_DREG PORTD 'LCD data port
DEFINE LCD_DBIT 4 'LCD data starting bit 0 or 4
DEFINE LCD_RSREG PORTD 'LCD register select port
DEFINE LCD_RSBIT 2 'LCD register select bit
DEFINE LCD_EREG PORTD 'LCD enable port
DEFINE LCD_EBIT 3 'LCD enable bit
DEFINE LCD_BITS 4 'LCD bus size 4 or 8
DEFINE LCD_LINES 2 'Number lines on LCD
DEFINE LCD_COMMANDUS 2000 'Command delay time in us
DEFINE LCD_DATAUS 50 'Data delay time in us

ADCON1=%0110
TRISA = %11111111
TRISC = %11111010


NUMERO VAR BYTE
KEY1 VAR BYTE
KEY2 VAR BYTE
KEY3 VAR BYTE
KEY4 VAR BYTE

I VAR BYTE
R VAR BYTE
BIP VAR PORTC.2
'DOOR VAR PORTC.4

A VAR PORTB.4
B VAR PORTB.5
C VAR PORTB.6
D VAR PORTB.7

UNO VAR PORTB.0
DOS VAR PORTB.1
TRES VAR PORTB.2
CUATRO VAR PORTB.3

SEN1 VAR PORTC.1
SEN2 VAR PORTA.0

INICIANDO:

    HIGH BIP
    PAUSE 500
    LOW BIP
    LCDOUT $FE, 1   
    LCDOUT $FE, 2, "1) TOTAL"
    LCDOUT $FE, $C0, "2) PARCIAL"
   

GOTO TECLAUNO

BARRIDO:
LOW A
IF UNO=0 THEN NUMERO=1 :RETURN
IF DOS=0 THEN NUMERO=2 :RETURN
IF TRES=0 THEN NUMERO=3 :RETURN
IF CUATRO=0 THEN NUMERO=10 :RETURN

HIGH A
LOW B
IF UNO=0 THEN NUMERO=4 :RETURN
IF DOS=0 THEN NUMERO=5 :RETURN
IF TRES=0 THEN NUMERO=6 :RETURN
IF CUATRO=0 THEN NUMERO=11 :RETURN

HIGH B
LOW C
IF UNO=0 THEN NUMERO=7 :RETURN
IF DOS=0 THEN NUMERO=8 :RETURN
IF TRES=0 THEN NUMERO=9 :RETURN
IF CUATRO=0 THEN NUMERO=12 :RETURN

HIGH C
LOW D
IF UNO=0 THEN NUMERO=14 :RETURN
IF DOS=0 THEN NUMERO=0 :RETURN
IF TRES=0 THEN NUMERO=15 :RETURN
IF CUATRO=0 THEN NUMERO=13 :RETURN

HIGH D
PAUSE 10
GOTO BARRIDO
'-------------------
PTECLA:
HIGH BIP
PAUSE 100
LOW BIP
ESPACIO:
IF UNO=0 THEN ESPACIO
IF DOS=0 THEN ESPACIO
IF TRES=0 THEN ESPACIO
IF CUATRO=0 THEN ESPACIO
PAUSE 25
RETURN
'-------------------
TECLAUNO:
GOSUB BARRIDO
GOSUB PTECLA
'LCDOUT $FE, $C0, DEC NUMERO
IF NUMERO = 1 THEN TOTAL'TECLADOS
GOTO TECLAUNO

TECLADOS:
GOSUB BARRIDO:GOSUB PTECLA
LCDOUT, DEC NUMERO
'IF NUMERO = 2 THEN TECLATRES
'GOTO FALSO1



TOTAL:
LCDOUT $FE, 1
TOTAL1:
    LCDOUT $FE, 2,   "     TOTAL"
    LCDOUT $FE, $C0, "1) ON   3) SALIR"
GOSUB BARRIDO
GOSUB PTECLA
'LCDOUT $FE, $C0, DEC NUMERO
IF NUMERO = 1 THEN CLAVEIN1'TECLADOS
'IF NUMERO = 2 THEN CLAVEOUT1
IF NUMERO = 3 THEN INICIANDO


goto TOTAL1


CLAVEIN1:
LCDOUT $FE, 1
CLAVEIN11:
    LCDOUT $FE, 2, "INGRESE CLAVE"
DAT1:
NUMERO=16 
GOSUB BARRIDO
GOSUB PTECLA
KEY1 = NUMERO
IF KEY1 < 16 THEN DAT2
GOTO DAT1


DAT2:
LCDOUT $FE, $C0, DEC KEY1
NUMERO=16 
GOSUB BARRIDO
GOSUB PTECLA
KEY2 = NUMERO
IF KEY2 < 16 THEN DAT3
GOTO DAT2

DAT3:
LCDOUT, DEC KEY2
NUMERO=16 
GOSUB BARRIDO
GOSUB PTECLA
KEY3 = NUMERO
IF KEY3 < 16 THEN DAT4
GOTO DAT3

DAT4:
LCDOUT, DEC KEY3
NUMERO=16 
GOSUB BARRIDO
GOSUB PTECLA
KEY4 = NUMERO
IF KEY4 < 16 THEN CLAVFIN
GOTO DAT4

CLAVFIN:
LCDOUT, DEC KEY4
PAUSE 1000
GOTO ALARMATOTAL

ALARMATOTAL:
LCDOUT $FE, 1
LCDOUT $FE, 2, "ACTIVADO"
PAUSE 5000     'TIEMPO PARA SALIR DE LA CASA
LCDOUT $FE, 1

ATOTAL:

    LCDOUT $FE, 2, "  PRESIONE * "
    LCDOUT $FE, $C0, "  PARA SALIR "
gosub SENSAR
GOSUB BARRIDO
GOSUB PTECLA

IF NUMERO = 14 THEN CLAVEOUT1'TECLADOS

GOTO ATOTAL



CLAVEOUT1:
LCDOUT $FE, 1
CLAVEOUT11:
    LCDOUT $FE, 2, "INGRESE CLAVE"
DATOUT1:
NUMERO=16 
GOSUB BARRIDO
GOSUB PTECLA
IF NUMERO = KEY1 THEN DATOUT2
GOTO MDAT2


DATOUT2:
LCDOUT $FE, $C0, DEC KEY1
NUMERO=16 
GOSUB BARRIDO
GOSUB PTECLA
IF NUMERO = KEY2 THEN DATOUT3
GOTO MDAT3

DATOUT3:
LCDOUT, DEC KEY2
NUMERO=16 
GOSUB BARRIDO
GOSUB PTECLA
IF NUMERO = KEY3 THEN DATOUT4
GOTO MDAT4

DATOUT4:
LCDOUT, DEC KEY3
NUMERO=16 
GOSUB BARRIDO
GOSUB PTECLA
IF NUMERO = KEY4 THEN CLAVOUTFIN
GOTO MDATSALIR

CLAVOUTFIN:
LCDOUT, DEC KEY4
PAUSE 1000
LCDOUT $FE, 1, "DESACTIVADO"
PAUSE 1000
I=0
GOTO TOTAL





MDAT2:
LCDOUT $FE, $C0, DEC NUMERO 
MDAT22:
NUMERO=16
GOSUB BARRIDO
GOSUB PTECLA
IF NUMERO < 16 THEN MDAT3
GOTO MDAT22

MDAT3:
LCDOUT, DEC NUMERO
MDAT33:
NUMERO=16
GOSUB BARRIDO
GOSUB PTECLA
IF NUMERO < 16 THEN MDAT4
GOTO MDAT33

MDAT4:
LCDOUT, DEC NUMERO
MDAT44:
NUMERO=16
GOSUB BARRIDO
GOSUB PTECLA
IF NUMERO < 16 THEN MDATSALIR
GOTO MDAT44

MDATSALIR
LCDOUT, DEC NUMERO
PAUSE 1000
LCDOUT $FE, 1, "ERROR"
PAUSE 1000
GOTO CLAVEOUT1



SIRENA:
LCDOUT $FE, 1
for i=1 to 3000
lCDOUT $FE, 2, "PRESIONE * "
LCDOUT $FE, $C0, "PARA SALIR "
GOSUB BARRIDO
GOSUB PTECLA
'LCDOUT $FE, $C0, DEC NUMERO
IF NUMERO = 14 THEN CLAVEOUT1'TECLADOS

next i
GOTO CHILLAR

CHILLAR:
    HIGH BIP
    PAUSE 500
    LOW BIP
    PAUSE 500
GOTO CHILLAR


SENSAR:
PAUSE 100

IF SEN1 = 1 THEN SIRENA
IF SEN2 = 1 THEN SIRENA
RETURN


END

Desconectado banistelrroy

  • PIC10
  • *
  • Mensajes: 29
Re: Tengo un problema no lee el pin de ningun puerto bien
« Respuesta #1 en: 11 de Mayo de 2011, 01:40:11 »
podrias enviar el proyecto en proteus para revisarlo

Desconectado banistelrroy

  • PIC10
  • *
  • Mensajes: 29
Re: Tengo un problema no lee el pin de ningun puerto bien
« Respuesta #2 en: 11 de Mayo de 2011, 01:41:51 »
explica que es lo que debe hacer tu proyecto