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

Temas similares

20/06/2014 #1


Pic 18f452, ayuda para programar el primero
buen dia, tengo una pregunta. Puedo pasar el código de un pic16f84a a un 18f452 normal? cual es la diferencia?
realice el siguiente código:
void main() {
TRISA=0x00;
TRISB=0x00;
//PORTB=0;
while(1)
{
if (PORTA.F0==1)
{
PORTB.F0=1;
PORTB.F1=0;
}
else
{
if (PORTA.F0==0)
{
PORTB.F0=0 ;
PORTB.F1=1;
}
}
}
}

pero en simulación proteus lla no me hace nada.
pueden decirme aque se debe.
saludos ...
20/06/2014 #2

Avatar de ByAxel

Hola.
Configuración y depende del lenguaje... me parece que es MikroC pero te digo que de un 16F a un 18F hay gran diferencia.

Ahi falta:

- Fuses: Principalmente el tipo de oscilador y hay otros tipos... entre otras cosas importentes [ Ver hoja de datos ] y configurar en el compilador.

- Registros de configuración: Aparte de los registros TRISx, los puertos suelen tener más funciones que solo pines de I/O digital. Por ejemplo el puerto A tambien trabaja como entrada análoga... es necesario desactivar si quieres que sea digital [ Ver hoja de datos ].

- Para escribir en un puerto se usa los registros LATx y para leer los PORTx... es diferente a los 16F...

Eso sería lo básico...
Saludos.
30/06/2014 #3


Pic 18f452, ayuda para programar el primero
buen dia, necesito programa sencillo que prenda y apague un led
con el pic 18f452. lo programo pero en proteus no me hace bien
la simulación.
abajo se muestra.
será también algo del oscilador?

void main() {
TRISA=0xFF;
TRISD=0x00;
TRISC=0x00;

while(1)
{
if (PORTA.F1==1)

PORTD.F1=1;
if (PORTA.F1==0)
PORTD.F1=0;
} ...
30/06/2014 #4

Avatar de TRILO-BYTE

y si usas if else?
en casos asi es mejor hacer uso del else en lugar de otro if
30/06/2014 #5
Moderador

Avatar de D@rkbytes

El puerto A del PIC18F452 tiene conversores ADC y para que puedas usar el puerto A como digital I/O necesitas configurar el registro ADCON1

Por ejemplo así:
ADCON1 = 0x07;

Si no realizas esta configuración no podrás realizar esa comparación de estados lógicos.
Y como dice TRILO-BYTE, es mejor que uses un ELSE en lugar de otro IF.
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.