Autor Tema: Duda en programacion C para el 8051F040  (Leído 2082 veces)

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

Desconectado NiponWar

  • PIC10
  • *
  • Mensajes: 13
Duda en programacion C para el 8051F040
« en: 15 de Diciembre de 2006, 17:03:57 »
Hola a todos.

Hoy he empezado a estudiar este micro, lo vamos a programar en C y me ha surgido una duda en un codigo. Aqui os lo dejo.

El ejemplo no es mas que el encendido de un LED con una entrada INP (1^6) y una salida LED (3^7).

#include "8051F040.c"
sbit INP=P3^7;
sbit LED=P1^6;
void PORT_init();
void main()
{
WDTCN=0xde;
WDTCN=0xad;
PORT_init();
LED=1;
while(1)
{
While(INP==0);
LED!=LED;
while(INP!=0);
}
}
void PORT_init()
{
SFRPAGE=CONFIG_PAGE;
XBR2=0x40;
PIMDOUT|=ox40;
}


Lo que me gustaria si fuese posible es que alguien me explicase el codigo linea a linea, aunque me conformaria con la parte de los bucles while que es lo que peor veo.

saludos.




Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Duda en programacion C para el 8051F040
« Respuesta #1 en: 15 de Diciembre de 2006, 20:28:43 »
Buenas!!! el código
Código: C
  1. #include "8051F040.c"           ///libreria donde se define los registros del microcontrolador a usar
  2. sbit INP=P3^7;                     ///Defino pin de entrada
  3. sbit LED=P1^6;                    ///defino pin de salida
  4.  
  5. void PORT_init();                  ///declaracion de funcion
  6.  
  7. void main()
  8. {
  9. WDTCN=0xde;                    ///wacht-dog...
  10. WDTCN=0xad;                    ///...OFF
  11.  
  12. PORT_init();                       ///llama a la funcion definida
  13.  
  14. LED=1;                             ///Led ON inicialmente
  15.  
  16. while(1)                            ///bucle...
  17. {
  18. While(INP==0);                ///¿Se ha presionado el pulsador? (espera a que se presione el pulsador)
  19. LED!=LED;                       ///SI -> complementa el estado del led
  20. while(INP!=0);                 ///En caso de estar el pulsador presionado, espera hasta que deje de estarlo
  21. }                                     ///...infinito
  22. }
  23.  
  24. void PORT_init()                ///funcion que configura el micro
  25. {
  26. SFRPAGE=CONFIG_PAGE;
  27. XBR2=0x40;
  28. PIMDOUT|=0x40;              ///pin P1^6 de salida
  29. }

Un gran micro  :mrgreen:


Suerte!!! ;)
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado NiponWar

  • PIC10
  • *
  • Mensajes: 13
Re: Duda en programacion C para el 8051F040
« Respuesta #2 en: 15 de Diciembre de 2006, 20:40:38 »
primero decirte que muchas gracias.

segundo, igual meto la pata, pero... te ha enseñado bien el linares ehhhh.

saludos.

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Duda en programacion C para el 8051F040
« Respuesta #3 en: 15 de Diciembre de 2006, 20:48:29 »
Jeje no fue exactamente él, pero el micro que habeis seleccionado para la asignatuda de Informatica Industrial es muy potente, aunque por desgracia, me parece que no vereis más allá de configurar los puertos de E/S, A/D y poco más, cuando este micro posee, entre muchas cosas el periférico bus CAN 2.0B e incluso un sensor de temperatura interno multiplexado.

En fín, lo dicho, un gran micro.

PD: Suerte con el trabajo de VHDL.  :mrgreen:



Feliz Navidad!!! ;)
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte