elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
14 Febrero 2012, 08:57  

+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica (Moderador: skapunky)
| | |-+  Introduccion a la programacion de PICS en lenguaje C (CCS)
0 Usuarios y 3 Visitantes están viendo este tema.
Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 Ir Abajo Respuesta Imprimir
Autor Tema: Introduccion a la programacion de PICS en lenguaje C (CCS)  (Leído 261,017 veces)
edivervizcay

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #150 en: 26 Junio 2009, 00:31 »

Buenas soy nuevo en el foro y en programacion en c para pics .

Quisiera saber si alguien puede ayudarme con una dificultad que tengo .

tengo un bootloader que me funciona de maravilla en asm , pero debo reservar de la memoria de programa las direcciones desde 0000 hasta 0003 y unas desde 1AAF hasta 1FFF la ultima parte no tengo problema usando:

#org 0x1AAF, 0x1FFF{}

ya lo  pude hacer , pero aun no puedo lograr que el compilador no me use las tres primeras direcciones y tambien requiero colocar dos instrucciones en esa parte , tambien la idea es recolocar o reorganizar la direccion de inicio del main{}.

agradezco cualquier ayuda.



En línea
Meta


Desconectado Desconectado

Mensajes: 2.275



Ver Perfil WWW
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #151 en: 14 Agosto 2009, 18:18 »

¿Pueden conseguir este libro aunque sea en inglés?

C# 2008 and .NET Programming for Electronic Engineers



En inglés

Este libro está dirigido a ingenieros y científicos que quieran aprender sobre el entorno .NET y la programación en C# o para los que estén interesados en comunicar hardware con un PC.

 

El libro cubre el entorno de desarrollo Visual Studio 2008, el sistema .NET y en el lenguaje de programación en C# desde de los tipos de datos y los flujos de programa hasta conceptos más avanzados incluyendo la programación orientada a objetos.

 

Continúa con la depuración de programas, el manejo de ficheros, bases de datos, comunicación por Internet y el trazado antes de pasar a comunicarse con el hardware empleando los puertos serie, paralelo y USB. Incluye el diseño del hardware para un osciloscopio sencillo utilizando el puerto paralelo y el manejo de entradas/salidas analógicas y digitales utilizando el puerto USB.

 

Se completa con muchos programas de ejemplo, ejercicios de autoevaluación y referencias a videos de ayuda. Los programas de ejemplo completos están disponibles así como apoyos a profesores universitarios en forma de presentaciones PowerPoint.

Fuente:
http://www.elektor.es/products/books/programming/c-2008-and-.net-programming-for-electronic.264379.951869.lynkx


En línea

zatman2184

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #152 en: 4 Septiembre 2009, 18:46 »

 :rolleyes:
hola mi nombre es francisco, y quiero saber y necesito saber sobre la comunicacion entre pic´s y de las librerias BEAN para control de hardware para un proyecto que estoy haciendo, por favor si tienen algo, haganmelo saber...
muchas gracias y espero su respuesta :laugh:
En línea
ikariam

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #153 en: 17 Octubre 2009, 06:33 »

por favor los que necesiten saber sobre comunicaion sobre radiofrecuencia y todo el codigo y su respectiva explicacion escribir al correo

ikariam.lew@hotmail.es

en menos de 5 horas estare dando respuesta a sus dudas gracias
En línea
eleazar83

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #154 en: 2 Noviembre 2009, 03:51 »

Hola Marco_recargado. mira me interesa el programa de:

////////////ESTE PROGRAMA UTILZA EL CIRCUITO DS1307 PARA MOSTRAR LA ////////////
//////////HORA EN TIEMPO REAL A TRAVEZ DE UNOS DISPLAY´S DE 7 SEGMENTOS/////////
//////////EL PROGRAMA PARA SIMULARLO EN PROTEUS SE LLAMA RELOJ TIEMPO REAL//////


y no veo el archivo .dns para simularlo en el proteus. Lo podrias subir porfa.

Bye.
En línea
eleazar83

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #155 en: 2 Noviembre 2009, 03:54 »

Insertar Cita
Hola Marco_recargado. mira me interesa el programa de:

////////////ESTE PROGRAMA UTILZA EL CIRCUITO DS1307 PARA MOSTRAR LA ////////////
//////////HORA EN TIEMPO REAL A TRAVEZ DE UNOS DISPLAY´S DE 7 SEGMENTOS/////////
//////////EL PROGRAMA PARA SIMULARLO EN PROTEUS SE LLAMA RELOJ TIEMPO REAL//////


y no veo el archivo .dns para simularlo en el proteus. Lo podrias subir porfa.

Bye.
En línea
Aglaia

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Urgente porfa
« Respuesta #156 en: 26 Noviembre 2009, 02:37 »

hola pues me ha gusta mucho lo que has subido
Esperaba que tal vez con la experiencia que tienes en pic c me pudieras ayudar con un problemilla que tengo
nose como comparar los puertos por ej q si el puerto a es mayor q el puerto b ponga en 1 el pin b7 o algo asi
he tratado de guardarlo en variables ej int8 variable=input_a() pero aunque compila al simularlo en proteus no hace nada ya queme el pic con el programa pero aun no pasa nada.
Estoy usando ciclos while y el pic q uso es el 16f877a
MIRA aca esta el programa, te agradeceria mucho que lo pudieras revisar me harias un gran favor... saludos

#include <16f877.h>
 #fuses XT, NOWDT, NOPROTECT, PUT, Brownout
 #use delay (clock = 4000000)
 #use fast_io(a)
 #use fast_io(b)
 #use fast_io(c)
 #use fast_io(d)

int8  a1;
int8  b1;
int8  c1;
int8  d1;
 
 // programa
 void main (void)
 
     {
 a1= input_a();
  b1= input_b();
  c1= input_c();
  d1= input_d();
    set_tris_a(0x3f);
    set_tris_b(0x3f);
    set_tris_c(0x3f);
    set_tris_d(0x3f);
while(true)
{
   
     while(a1 != b1)
     {
     
while(a1 < b1)
     {
   output_high(PIN_D7);
   output_low(PIN_D6);
   output_high(PIN_C7);
   output_low(PIN_C6);
     }
    while(a1 > b1)
     {
   output_low(PIN_D7);
   output_high(PIN_D6);
   output_low(PIN_C7);
   output_high(PIN_C6);
     }
     }
 
     do
     {
   output_high(PIN_D6);
   output_low(PIN_D7);
   output_low(PIN_C6);
   output_high(PIN_C7);
   //delay_ms(1000);
 
   
     }
      while(0);
   
       while(c1!= d1)
     {
     
while(c1 < d1)
     {
   output_high(PIN_D7);
   output_low(PIN_D6);
   output_high(PIN_C7);
   output_low(PIN_C6);
     }
     while(c1 > d1)
     {
   output_low(PIN_D7);
   output_high(PIN_D6);
   output_low(PIN_C7);
   output_high(PIN_C6);
     }
     }
   
     do
     {
   output_high(PIN_D6);
   output_low(PIN_D7);
   output_low(PIN_C6);
   output_high(PIN_C7);
   //delay_ms(1000);
 
   
   
     }
      while(0);
   }
}


     
En línea
trakxe

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #157 en: 4 Diciembre 2009, 21:34 »

Hola amigo, no se si aun te sirve la informacion como cuentas en tu programa si quieres compara lo que tienes en el  puerto solo ponlo dentro del while(true).
Asi quedaria:

#include <16f877.h>
#fuses XT, NOWDT, NOPROTECT, PUT, Brownout
#use delay (clock = 4000000)
#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)

int8  a1;
int8  b1;
int8  c1;
int8  d1;
 
 // programa
 void main (void)
 
     {
 
while(true)
{

a1= input_a();
b1= input_b();
c1= input_c();
d1= input_d();
set_tris_a(0x3f);
set_tris_b(0x3f);
set_tris_c(0x3f);
set_tris_d(0x3f);

  
     while(a1 != b1)
     {
    
while(a1 < b1)
     {
   output_high(PIN_D7);
   output_low(PIN_D6);
   output_high(PIN_C7);
   output_low(PIN_C6);
     }
    while(a1 > b1)
     {
   output_low(PIN_D7);
   output_high(PIN_D6);
   output_low(PIN_C7);
   output_high(PIN_C6);
     }
     }
  
     do
     {
   output_high(PIN_D6);
   output_low(PIN_D7);
   output_low(PIN_C6);
   output_high(PIN_C7);
   //delay_ms(1000);
  
  
     }
      while(0);
    
       while(c1!= d1)
     {
    
while(c1 < d1)
     {
   output_high(PIN_D7);
   output_low(PIN_D6);
   output_high(PIN_C7);
   output_low(PIN_C6);
     }
     while(c1 > d1)
     {
   output_low(PIN_D7);
   output_high(PIN_D6);
   output_low(PIN_C7);
   output_high(PIN_C6);
     }
     }
    
     do
     {
   output_high(PIN_D6);
   output_low(PIN_D7);
   output_low(PIN_C6);
   output_high(PIN_C7);
   //delay_ms(1000);
  
    
  
     }
      while(0);
   }
}

Prueba haber como te va... Saludos...
« Última modificación: 4 Diciembre 2009, 21:37 por trakxe » En línea
MARS1972

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #158 en: 2 Febrero 2010, 22:37 »

Necesito el compilador y el proteus si alguien me pudiera orientar como bajarlos, ya que cada que selecciono el vinculo en rapidshare me aparece un error.

Se los agradeceria muchisimo gracias. :huh:
En línea
MARCO_RECARGADO

Desconectado Desconectado

Mensajes: 75


Mas recargado que nunca


Ver Perfil WWW
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #159 en: 4 Febrero 2010, 21:55 »

Amigos estan actualizados los programas y subidos a tres servidores para que no haya ningun problema se encuentran en la primera pagina de este post, saludos
En línea

"Desde muy chico tuve que interrumpir mis estudios para ir a la escuela"  Gabriel García Márquez
Sourraund


Desconectado Desconectado

Mensajes: 1.247


The Lord of the World


Ver Perfil WWW
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #160 en: 18 Febrero 2010, 10:47 »

Hay algunas lecciones del post en los que no se pueden ver las imagenes de la simulación en el Proteus, hay algún modo de poder visualizarlas?

Saludos.
« Última modificación: 22 Febrero 2010, 11:49 por Sourraund » En línea

Ingredientes: Sal y disfuta.
Cómete el mundo.

http://www.sourraundweb.tk
Sourraund


Desconectado Desconectado

Mensajes: 1.247


The Lord of the World


Ver Perfil WWW
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #161 en: 24 Febrero 2010, 11:13 »

Cuando quiero usar un lcd, sea el ejemplo que sea, siempre me sale este error:
"DSIM model LCDALPHA.DLL failed to authorize - Missing or invalid Customer Key"

¿Alguien sabe como puedo solucionarlo?

Saludos y gracias.
En línea

Ingredientes: Sal y disfuta.
Cómete el mundo.

http://www.sourraundweb.tk
elektronische

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #162 en: 19 Marzo 2010, 03:51 »

Tengo un problema tratando de conectar un teclado de 4x3 a una LCD mediante un PIC 16F877A, no logro hacer que obtenga los datos del teclado, ajunto el código y el diagrama en ISIS, tal vez me puedan ayudar.

#include <16f877a.h>                      //PIC utilizado
#fuses HS,NOWDT,NOPROTECT,NOLVP           //Configuramos los fuses
#use delay (clock=4000000)                //Oscilador a 4Mhz
#INCLUDE "lcd.c"                         //Incluyo LCD.C
#INCLUDE "kbd.c" 


void lcd_mostrar(void);
char a;
#byte PORTD=0xF81
#define use_portb_kbd TRUE

void main(void)
{
   port_b_pullups(TRUE);
   kbd_init();
   lcd_init();
   lcd_mostrar();
}

void lcd_mostrar(void)
{
a=kbd_getc();
lcd_putc(a);

}

En línea
dNnYaU~

Desconectado Desconectado

Mensajes: 3



Ver Perfil
Re: Introduccion a la programacion de PICS en lenguaje C (CCS)
« Respuesta #163 en: 19 Abril 2010, 02:59 »

Buen día, antes que nada, me agrada este foro, recién lo he encontrado y hay mucha información valiosa gracias a los que se dan el tiempo de ayudar. aunque yo no cuento con suficiente tiempo si me gustaría aportar de lo poco que he hecho con PICs en CCS.
Bueno... por lo pronto quisiera comentarle aqui al colega y para todos aquellos que tengan el mismo problema o simplemente quieran agilizar el tiempo de programación con un LCD, me agradaría adjuntarles una librería que en lo personal no me ha dado problemas.

Así que aquí viene mi primer pregunta:

¿Como adjunto un archivo en este foro para compartir información?  :P
 

Cuando quiero usar un lcd, sea el ejemplo que sea, siempre me sale este error:
"DSIM model LCDALPHA.DLL failed to authorize - Missing or invalid Customer Key"

¿Alguien sabe como puedo solucionarlo?

Saludos y gracias.


En línea

INSPIRACION, MOTIVACION, RENOVACION,  ACTITUD,  CONFRONTACION, CONCENTRACION, CONOCIMIENTO... RESPIRA...                                                        "LO DE MAS... ES LO DE MENOS"-
                                                                               ~'dnny@u '~
tercules

Desconectado Desconectado

Mensajes: 1


Ver Perfil
problemas com 16f876a(CCS)
« Respuesta #164 en: 24 Junio 2010, 19:32 »

hola amigos quisiera que me den una mano con este codigo cual sera el  problema con el copilador:
codigo:
#include <16F876.H>                     
#fuses HS,XT,NOPUT,NOPROTECT,NOWDT           
#use delay(clock=8M)                         
#include <Flex_lcd.c>                           

#use fast_io(a)                             
#use fast_io(b)
#use fast_io(c

///****   DEFINIMOS NOMBRES A PUERTOS   ****///
#bit CENTENAS  = 0x06.4
#bit UNIDADES  = 0x06.5   
#bit SPEEDUP   = 0x06.6   
#bit SPEEDDOWN = 0x06.7

///****    VARIABLES GLOBALES  ***///
int  contador,stop,Duty,FlagRamp,
     mil,cen,dec,uni,
     uni2,dec2,cen2,mil2;

void reset()
{                                 
 mil=0; dec=0; cen=0; uni=0;                   
 uni2=0; dec2=0; cen2=0; mil2=0;
 contador=0;
 output_b(0x00);
 output_c(0x00);
 output_a(0x00);
 Stop=0;
 FlagRamp=0;
 Duty=0;
 set_pwm1_duty(0);                           //Borra la pantalla LCD
}
///****    FUNCIÓN PANTALLA DE ARRANQUE   ****///
void inicial()                                 
 {
 lcd_gotoxy(2,1); lcd_putc("BOBINADORA 3.0");   
 lcd_gotoxy(2,2); lcd_putc("INOXSTEEL 2009");
 delay_ms(3000);
 lcd_putc("\f");
 }

///****    FUNCIÓN FIN DE BOBINADO   ****///
void Fin()                                 
 {
 int i;
 for (i=0;i<5;i++)
 {
  lcd_putc("\f");
  delay_ms(300);
  lcd_gotoxy(5,1); lcd_putc("BOBINADO");
  lcd_gotoxy(4,2); lcd_putc("FINALIZADO");
  delay_ms(300);
 }
 lcd_putc("\f");
 reset();
 }

///****     INTERRUPCIÓN TIMER0    ****///
///      TIMER0 EN MODO CONTADOR       ///
/// LLEVA EL CONTEO POR SENSOR EXTERNO ///

#int_TIMER0
Void TIMER0_isr(void)                         
 {                                             
 contador=1;
 set_timer0(255);
 clear_interrupt(int_TIMER0);
 }
   
///****           INTERRUPCIÓN RB0           ****///
/// PUESTA EN MARCHA SI HAY CANTIDAD INTRODUCIDA ///

#int_EXT

void Start_isr(void)
  {
   if (uni!=0 || cen!=0)
    {lcd_putc("\f"); Stop=1;}
 
  clear_interrupt(int_EXT);
  }

///****       INTERRUPCIÓN RB4-RB7         ****///
/// TOMA LOS DATOS RECIBIDOS EN LOS PULSADORES ///
///    CENTENAS, UNIDADES, VELOCIDAD + Y -     /// 

#int_RB
Void Pulsadores_isr()
   {
   if (SPEEDUP==1)  if (duty<82) Duty+=4;
   if (SPEEDDOWN==1)if (duty>2) Duty-=4;
   if (CENTENAS==1) cen++;
   if (UNIDADES==1) uni++;
                                     
   if (uni>9) {dec++; uni=0;}             
   if (dec>9) dec=0;                   
   if (cen>9) {mil++; cen=0;}     
   if (mil>9) mil=0; 

   clear_interrupt(int_RB);
   }
 
///****       INTERRUPCIÓN TIMER1          ****///
/// SE ENCARGA DEL ARRANQUE SUAVE DEL MOTOR    ///
/// AL INICIAR EL BOBINADO - DE 0% A 50% VEL.  /// 

#int_TIMER1
Void SoftStart()
   {
    if (stop==1 && Duty<42 && FlagRamp==0)
       {Duty+=2; set_timer1(50000);}
   
    if (Duty==42) FlagRamp=1;
   }

///****FUNCIÓN PRINCIPAL****/// 

Void Main(Void)                               
  {
   int16 speed;
   speed=0;
   
   set_tris_a(0b110000);
   set_tris_b(0b11110001);
   set_tris_c(0b00000000);

   ///**** HABILITACIÓN Y AJUSTE DE INTERRUPCIONES****///
   enable_interrupts(int_EXT);
   enable_interrupts(int_TIMER0);
   enable_interrupts(int_TIMER1);
   enable_interrupts(int_RB);
   enable_interrupts(global);

   ext_int_edge(L_TO_H);
   setup_timer_0(RTCC_EXT_L_TO_H|RTCC_DIV_1);
   setup_timer_2(T2_DIV_BY_16,82,1);
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
   setup_ccp1(CCP_PWM);

   clear_interrupt(int_RB);
   clear_interrupt(int_EXT);
   clear_interrupt(int_RTCC);
   clear_interrupt(int_ccp1);

   reset();                                       

   lcd_init();                                       

   inicial();

while (true)
  {
///****BLOQUE PRINCIPAL DE PRESELECCIÓN****///
 
   if (stop==0)
   {
    lcd_gotoxy(1,1);  lcd_putc("INTRODUCE EL N");     
    lcd_gotoxy(15,1); lcd_putc(223);                         
    lcd_gotoxy(1,2);  lcd_putc("DE ESPIRAS");
    lcd_gotoxy(12,2); printf(lcd_putc,"%u",mil);                           
    lcd_gotoxy(13,2); printf(lcd_putc,"%u",cen);   
    lcd_gotoxy(14,2); printf(lcd_putc,"%u",dec);   
    lcd_gotoxy(15,2); printf(lcd_putc,"%u",uni);   
   }

///****BLOQUE EN FUNCIONAMIENTO****///

   if (Stop==1)
   { 
    lcd_gotoxy( 1,1); lcd_putc("BOBINANDO");
    delay_ms(20);
    lcd_gotoxy(11,1); printf(lcd_putc,"V.%03Lu",Speed);
    lcd_gotoxy(16,1); lcd_putc("%");
    lcd_gotoxy( 1,2); lcd_putc("ESPIRAS N");
    lcd_gotoxy(10,2); lcd_putc(223);
    lcd_gotoxy( 1,1); lcd_putc("         ");
    delay_ms(20);
    lcd_gotoxy(12,2); printf(lcd_putc,"%u",mil2);
    lcd_gotoxy(13,2); printf(lcd_putc,"%u",cen2);   
    lcd_gotoxy(14,2); printf(lcd_putc,"%u",dec2);   
    lcd_gotoxy(15,2); printf(lcd_putc,"%u",uni2);   
 
    set_pwm1_duty(duty);              //PWM para control de velocidad

    Speed = Duty;                     //Variable de % de velocidad en pantalla
    Speed = (( Speed * 100) / 82 );

    if (contador==1)                 
    {uni2++; contador=0;}                   
    if (uni2>9) {dec2++; uni2=0;}   
    if (dec2>9) {cen2++; dec2=0;}
    if (cen2>9) {mil2++; cen2=0;}

    if (mil2==mil && dec2==dec &&   
    cen2==cen && uni2==uni) 
   {Stop=0; lcd_putc("\f"); fin();} 
  }
 }
}
En línea
Páginas: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
INTRODUCCIÓN AL LENGUAJE C (BÁSICO). (ACTUALIZADO EL 14/12/04) « 1 2 »
Programación C/C++
Griph 17 38,233 Último mensaje 24 Junio 2005, 22:27
por N3wBy3
introduccion ala programacion
Electrónica
cldo 0 719 Último mensaje 23 Marzo 2006, 00:59
por cldo
Programacion de PICS
Electrónica
Zeroql 7 4,611 Último mensaje 16 Octubre 2011, 00:24
por CCStuamigo
Introducción al Lenguaje PERL
Scripting
Dr.SysCrack 0 537 Último mensaje 19 Noviembre 2007, 03:04
por Dr.SysCrack
Que es la programación de pics?
Electrónica
Raftrack 3 777 Último mensaje 2 Octubre 2011, 01:22
por skapunky
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines