Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

17/12/2011 #1


como programar el pic16f84a
hola amigos, tengo una duda que ya stoy en eso durant un par de dias,
tengo conectado un decodificador mt8870 a un pic16f84, el problema es el siguiente: codigo fuente
include"modedefs.bas"

TRISA=1

TRISB.1=0
TRISB.2=0
TRISB.3=0
TRISB.4=0

PORTB=0

PROGRAMA:

IF PORTA.1=0 AND PORTA.2=0 and PORTA.3=1 THEN
HIGH PORTB.1
LOW PORTB.2
ENDIF

IF PORTA.1=0 AND PORTA.2=1 AND PORTA.3=0 THEN
HIGH PORTB.2
LOW PORTB.1

ENDIF

IF PORTA.1=0 AND PORTA.2=1 AND PORTA.3=0 AND PORTA.4=1 THEN
PORTB=0
ENDIF


GOTO PROGRAMA

END
------------------------------
ps bien cuando lo arrabco lo conjela las entradas del mt8870, pero el mt8870 si el pic funciona correctamente, e incluso cuando al pic lo dejo en blanco si codigo grabado el mt8870 no tiene problemas, cuando metyo codigos como el anterior, ps se conjela y algunas salidas deldecoder se quedan prendidos, este es un problema para mi si pudieran darme una mano, o quisar hay otra forma de programar el pic les agradeceria mucho :
17/12/2011 #2


binperu dijo: Ver Mensaje
hola amigos, tengo una duda que ya stoy en eso durant un par de dias,
tengo conectado un decodificador mt8870 a un pic16f84, el problema es el siguiente: codigo fuente
include"modedefs.bas"

TRISA=1

TRISB.1=0
TRISB.2=0
TRISB.3=0
TRISB.4=0

PORTB=0

PROGRAMA:

IF PORTA.1=0 AND PORTA.2=0 and PORTA.3=1 THEN
HIGH PORTB.1
LOW PORTB.2
ENDIF

IF PORTA.1=0 AND PORTA.2=1 AND PORTA.3=0 THEN
HIGH PORTB.2
LOW PORTB.1

ENDIF

IF PORTA.1=0 AND PORTA.2=1 AND PORTA.3=0 AND PORTA.4=1 THEN
PORTB=0
ENDIF


GOTO PROGRAMA

END
------------------------------
ps bien cuando lo arrabco lo conjela las entradas del mt8870, pero el mt8870 si el pic funciona correctamente, e incluso cuando al pic lo dejo en blanco si codigo grabado el mt8870 no tiene problemas, cuando metyo codigos como el anterior, ps se conjela y algunas salidas deldecoder se quedan prendidos, este es un problema para mi si pudieran darme una mano, o quisar hay otra forma de programar el pic les agradeceria mucho :
Hola... prueba a ver si te funciona así:

Config OSC_XT,WDT_OFF,PWRTE_ON,CP_OFF
Declare Xtal = 4 ' si estas usando Xtal de 4Mhz

TRISA=%1111
TRISB=%00000


PORTB=0

PROGRAMA:

IF PORTA.1=0 AND PORTA.2=0 and PORTA.3=1 THEN ' los bit de los puertos arrancan
' desde 0 no desde 1 y el 8870 ' tiene 1 bit de salida de dato
' valido Pin 15 mas 4 bit de
' datos pines ' 11(Q1),12(Q2),13(Q3),14(Q4).

HIGH PORTB.1
LOW PORTB.2
ENDIF

IF PORTA.1=0 AND PORTA.2=1 AND PORTA.3=0 THEN
HIGH PORTB.2
LOW PORTB.1

ENDIF

IF PORTA.1=0 AND PORTA.2=1 AND PORTA.3=0 AND PORTA.4=1 THEN
PORTB=0
ENDIF


GOTO PROGRAMA

END

Saludos.

Ric.
17/12/2011 #3


include"modedefs.bas"

'-------------------
TRISA.0=1
TRISA.1=1
TRISA.2=1
TRISA.3=1
TRISA.4=1
'-------------------
TRISB.1=0
TRISB.2=0
TRISB.3=0
TRISB.4=0
'--------------------
A1 VAR PORTA.1
A2 VAR PORTA.2
A3 VAR PORTA.3
A4 VAR PORTA.4
A5 VAR PORTA.0
'--------------------
B1 VAR PORTB.1
B2 VAR PORTB.2
B3 VAR PORTB.3
B4 VAR PORTB.4
B5 VAR PORTB.5
B6 VAR PORTB.6
'------------------

CONT VAR BYTE
CONT=0

B1=0
B2=0
B3=0
B4=0
B5=0
B6=0
'-------------------------------------------------------------------


PROGRAMA:
IF A5=1 THEN
IF A1=0 AND A2=0 AND A3=1 AND A4=0 THEN 'ADELANTE
GOSUB ADELANTE
ENDIF

IF A1=1 AND A2=0 AND A3=0 AND A4=0 THEN 'ATRAS
GOSUB ATRAS
ENDIF

'---------------------------------------
'---------------------------------------

IF A1=0 AND A2=1 AND A3=0 AND A4=0 THEN 'IZQUIERDA
B3=0
B4=1
PAUSE 250
B3=0
B4=0

IF CONT=1 THEN
GOSUB ADELANTE
ENDIF
IF CONT=2 THEN
GOSUB ATRAS
ENDIF

ENDIF

IF A1=0 AND A2=1 AND A3=1 AND A4=0 THEN 'DERECHA
B3=1
B4=0
PAUSE 250
B3=0
B4=0

IF CONT=1 THEN
GOSUB ADELANTE
ENDIF
IF CONT=2 THEN
GOSUB ATRAS
ENDIF

ENDIF

'--------------------------------------
IF A1=0 AND A2=1 AND A3=0 AND A4=1 THEN 'STOP
CONT=0
GOSUB STOPP
ENDIF
'--------------------------------------
GOTO PROGRAMA
ELSE
IF CONT=1 THEN
GOSUB ADELANTE
ENDIF

IF CONT=2 THEN
GOSUB ATRAS
ENDIF

GOTO PROGRAMA
ENDIF


ADELANTE
B1=1
B2=0
CONT=1
RETURN

ATRAS:
B1=0
B2=1
CONT=2
RETURN

STOPP:
B1=0
B2=0
B3=0
B4=0
B5=0
B6=0
RETURN


END


..................................
gracias ricbevi, ya lo colucione con este codigo, pero le probare con el tuyo, de antemano gracias..
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.