Programas hechos en MPLAB

Tenias razón.
Descargue el mismo plugin tuyo. y lo complile con eso. y si me funcó.

Gracias.
OK. Que bien.
Como el entorno de desarrollo MPLAB es multi lenguaje,
hay que instalar el plugin adecuado para cada tipo de lenguaje de programación.

En lo personal prefiero usar MPLAB solo para programas en ensamblador.
Y para otros lenguajes con su propio IDE, que por default ya tienen su propio compilador.

Así se evitan muchos problemas.

Suerte.
 
algun programa en CCS usando:

goto

no puedo hacer arrancar el GOTO! me tira errores , saludos !
Para el CCS utiliza la conbinacion del
goto_address() y label_adress()

El help del CCS explica como se utiliza.

Caso aparte aunque funcione para varios PIC no sugiero utilizar el GOTO para el lenguaje C... no es que no se pueda, es más una mala practica.

Saludos
 
Buenas noches a todos. Tengo una duda.

Cómo poder utilizar el pwm y encender un led al mismo tiempo ?

Me explico: el pwm será controlado por 2 pulsadores, con uno aumenta y con el otro disminuye.

Y por otro lado utilizo un pulso que activa un led siempre y cuando el pulso este en 1 logico, si esta en 0 se apaga el led.

Bueno, quiero aumentar el pwm y al mismo tiempo prender el led. Pero en mi programa al simular en el proteus cuando mantengo prendido el led se bloquea totalmente el pwm. Y cuando dejo el led apagado se desbloquea el pwm y es ahi cuando únicamente puedo controlar el pwm a mi manera...

Esa es mi duda.

Gracias. Les dejo el programa.


Código:
#include <16f877a.h>
#fuses NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP 
#use delay(clock=4000000)

void main()
{
   int i = 0;
   setup_adc_ports(NO_ANALOGS);
   set_tris_c(0x00);         		
   set_tris_b(0xFF);           		
   disable_interrupts(GLOBAL); 	
  
   output_b(0x00); //CCP1
   setup_ccp1(CCP_PWM);
 
   setup_timer_2(T2_DIV_BY_16, 255, 1);
 
 
   while(1)
   {
      if (input(PIN_B0)&&(i<255))
      i++;
      {set_pwm1_duty(i);
         delay_ms(8);}

      if (input(PIN_B1)&&(i>0))
	  i--;
      {set_pwm1_duty(i);
         delay_ms(5);} 

    	if (input(PIN_B2)){
		output_high(PIN_C4); 
	    while (input(pin_B2));
        }    
		output_low(PIN_C4);
   }
}
 
Luno.
Ahí te envio corregido, el programa compila y prueba tal cual esta.:apreton:
Me cuentas..

Código:
//*****************************
#include <16f877a.h>
#fuses NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP 
#use delay(clock=4000000)

void main()
{
   int i = 0;
   setup_adc_ports(NO_ANALOGS);
   set_tris_c(0x00);               
   set_tris_b(0xFF);                 
   disable_interrupts(GLOBAL);    
  
   output_b(0x00); //CCP1
   setup_ccp1(CCP_PWM);
 
   setup_timer_2(T2_DIV_BY_16, 255, 1);
 
 
   while(1)
   {
      if (input(PIN_B0)&&(i<255))
      i++;
      {set_pwm1_duty(i);
         delay_ms(8);}

      if (input(PIN_B1)&&(i>0))
     i--;
      {set_pwm1_duty(i);
         delay_ms(5);} 

       if (input(PIN_B2))//{
      output_high(PIN_C4); 
       //while (input(pin_B2));
       // }    
       else
      output_low(PIN_C4);
   }
}
 
Última edición por un moderador:
Gracias COSMICO me ah valido la compilación y es como lo queria, muchas gracias.

Bueno en esta oportunidad, mi pc se ah malogrado y ahora estoy en una laptop, eh vuelto a instalar el proteus y el MPLab IDE v8.87 Pero tengo problemas en instalar el compilador C, ya que manejo ese lenguaje.

Anteriormente en este mismo post lo habia preguntado y me resulto bien en mi Pc. Ahora que estoy en una lap nueva eh intentado instalar el compilador 4 veces pero al final no resulto del todo bueno.

Y queria que me ayudaran como poder instalar el PCWHD Compiler .... uso un Windows Seven Started

 
Hola aquí nuevamente. y con buena cara :)

Finalmente se me hizo , luego de aún seguir con el intento al fin.



Ohhh cuando creia que todo andaba bien.... al compilar en el MPLAB todo Ok .... me mostró "BUILD SUCCEEDED" , sin embargo, al ir al proteus y cargar en archivo hex. Oh sorpresa no está, pero están estos 2 archivos (cheken en la foto encerrada en rojo). y bueno cargué el que pesa de 14KB ... y el programa Sí funciona lo cargó bien y cumple con todas las funciones.

Pero, necesitaba el archivo .hex para utilizarlo en un grabador de Pics Pickit2

Cómo hago ahora para generarlo ? ..... Gracias :)

Me olvidaba aqui esta la foto:
 
Última edición:
Hola amigos
Ya que estoy aprendiendo a programar pic con hi-tech , tengo planeado hacer un publik (8x32) con ayuda de un código de george.manson que me a servido mucho . El único problema que tengo es que esta diseñado para una matriz 8x8 y para extenderla toca hacer lo que dice el código

(si lo contrario se desea usar mas matrices esto
reducirá la velocidad y causara parpadeos o letras erróneas, para solucionar esto cuando mas matrices
se use la interrupción por timer0 se debe de acortar)
Pues la verdad no se donde modificar el timer para arreglar eso
Gracias por sus consejos
 

Adjuntos

hola duena tarde

soy muy nueva en esto perdon!!!!

pero quisiera saber como hacer el programa para un display rotativo que me muestre a pacman comiendo o algo asi para el pic 16f84 em mplab :( o que haga lo que sea


porfis!!!!!!!!!!!!!!!!!11

era carita triste jajajaja
 
hola duena tarde

soy muy nueva en esto perdon!!!!

pero quisiera saber como hacer el programa para un display rotativo que me muestre a pacman comiendo o algo asi para el pic 16f84 em mplab :( o que haga lo que sea


porfis!!!!!!!!!!!!!!!!!11

era carita triste jajajaja
Sabes programar??? cual lenguaje ASM , Basic, C??
 
Hola, les dejo un ejemplo de un programa y circuito en PROTEUS para aceder mediante pulsadores que tienen asignado un número cada uno a los numeros que están almacenados en tabla de memoria de programa, saludos.
 

Adjuntos

Hola amigos tengo el siguiente problema, visite el foro de george.manson.69 donde a puesto aplicaciones HID USB en proteus y descarge el archivo.
A la hora de la simulacion el puerto USB no funcionaba, entonces decidí investigar y me di con la sorpresa de que tenia que instalar los DRIVERS y eso hice. Pence que todo estaria correcto entoncs volvi a simular y mi Pc sonaba como cuando insertas una USB real y me salia el aviso de NUEVO DISPOSITIVO y luego me salia que mi dispositivo no funcionaria correctamente. La verdad noce que es lo que pasa si ya instale los drivers de Proteus que mas tengo que instalar para que funcione la simulacion.
Necesito ayuda porfavor.
Adjunto la carpeta del ejemplo y las imagenes del problema
 

Adjuntos

Los drivers que necesitas para ese programa se encuentran dentro de una carpeta de la instalación de CCS
En esta --> C:\Archivos de programa\PICC\Drivers\NT,2000,XP,VISTA,7

Muevo tu post aquí, ya qué en el post #109 fue donde george.manson.69 adjunto el programa que mencionas.

Suerte.
 
HOla amigo.. hice caso a lo que me dijiste C:\Archivos de programa\PICC\Drivers\NT,2000,XP,VISTA,7

Me salio 3 drivers ---> oem41, cdc_ntxpvista, cdc9xpt1.
Cuando instalo los dos primeros me dice que se instalo correctamente pero asi igual no funciona la simulacion en PROTEUS.. cuando instalo el ultimo me pide CCPORT y WDMMDMLD.VXD entoncs los descarge y los guarde en la misma carpeta DRIVERS de PICC, luego de aceptar lo que me pide me dice que no se pudo instalar.. Haber si me das una mano con este tema porfavor.. te lo agradeceria muchoo
Te adjunto la imagen de la instalacion del ultimo archivo.
 

Adjuntos

Saludos.
Pues a mi tampoco me funciona el proyecto, habría que ver si alguien sabe que pasa. :unsure:
Pero esta es la secuencia para la instalación de los drivers.

Al ejecutar la simulación en Proteus, aparece el mensaje de nuevo hardware encontrado,
y como los drivers no están instalados saldrá la ventana del asistente de instalación.
Capture_001.gif
Seleccionar Instalar desde una lista o ubicación específica. Y presionar Siguiente.

Capture_002.gif
Copiar y pegar la ruta de la carpeta en donde están los archivos (Drivers)
Ó presionar Examinar para buscar la carpeta manualmente.

Presionar siguiente, y comenzará la instalación.
Capture_003.gif

Al terminar la instalación debe aparecer esto.
Capture_004.gif
Instalación finalizada con éxito.

Y con eso quedarán instalados los drivers sin problemas.
Capture_005.gif

El problema que tengo para hacer funcionar el programa, es que no sé en que puerto debe estar el programa.

En la imagen que muestra george.manson.69, se ve en el puerto COM9, a mi no me funciona en ninguno.
Ver el archivo adjunto 22964

De la forma como describo la instalación, a mi no me produce ningún error.
Sin embargo se requiere qué alguien que ya uso ese programa nos muestre como configurarlo.

Suerte y hasta pronto.
 
Hola amigo george.manson.69.
Espero estés bien. Queria preguntarte como te fue con tu proyecto de memoria sd, pues tengo la necesidad
de meter unas claves de cuatro y seis digitos e una Sd, tengo tu ejemplo, lo he intentado con otros pero no logro ni hacerla funcionar.
Pruebo con el tuyo de hola mundo y te comento.
Un saludo.
 
\\ simple circuito con un pic16f887, que se trata de un teclado analogo, escribimos la contrasena o la podemos cambiar.

Código:
///////////////////////////////////////
//AUTOR:JORGE ARTURO RODRIGUEZ HERNANDEZ
//TITLE;CONTRASENA
//DATE:18/JUNIO/'09
///////////////////////////////////////

//CONFIGURACION///////////////////
#include<16f887.h>
#fuses INTRC_IO,NOWDT,NOLVP,MCLR,NOPROTECT,NOPUT
#use delay(clock=8000000)
#include<LCD.C>

int LEER_TECLADO;
int TECLADO[]={"0123456789#*"};
int UNO,DOS,TRES,CUATRO;
int UNO_P,DOS_P,TRES_P,CUATRO_P;
int GOA,i;

void config(void){	
		write_eeprom(0x04,1);
		write_eeprom(0x05,2);
		write_eeprom(0x06,3);
		write_eeprom(0x07,4);
		set_tris_a(0x01);
		set_tris_c(0x00);	
		setup_comparator(NC_NC_NC_NC);
		setup_adc(ADC_CLOCK_INTERNAL);
		setup_adc_ports(sAN0);
		output_low(PIN_C0);
		lcd_putc("\fCOMPILED ON\n");
		lcd_putc(__DATE__);
		delay_ms(2000);
}

ADC(int VALOR_ADC){
NO_PULSADO:
			delay_ms(10);
			VALOR_ADC=read_adc();
			if(VALOR_ADC>140){
				goto NO_PULSADO;
			}
			else if(VALOR_ADC<24){
				VALOR_ADC=1;
			}
			else if(VALOR_ADC<43){
				VALOR_ADC=2;
			}
			else if(VALOR_ADC<60){
				VALOR_ADC=3;
			}
			else if(VALOR_ADC<74){
				VALOR_ADC=4;
			}
			else if(VALOR_ADC<88){
				VALOR_ADC=5;
			}
			else if(VALOR_ADC<98){
				VALOR_ADC=6;
			}
			else if(VALOR_ADC<108){
				VALOR_ADC=7;
			}
			else if(VALOR_ADC<114){
				VALOR_ADC=8;
			}
			else if(VALOR_ADC<122){
				VALOR_ADC=9;
			}
			else if(VALOR_ADC<128){
				VALOR_ADC=0;
			}
			else if(VALOR_ADC<137){
				VALOR_ADC=10;
			}
			else if(VALOR_ADC<140){
				VALOR_ADC=11;
			}	

		return(VALOR_ADC);
}

void ESCRIBIR_PASSWORD(void){
			
		for(i=0;i<=3;i++){
			delay_ms(500);			
			LEER_TECLADO=ADC(LEER_TECLADO);
			write_eeprom(i,LEER_TECLADO);
			lcd_putc(TECLADO[LEER_TECLADO]);
		}
			delay_ms(500);
}

void CAMBIAR(void){
			lcd_putc("\fESCRIBE AHORA\n");
			ESCRIBIR_PASSWORD();

			UNO=read_eeprom(0x00);
			DOS=read_eeprom(0x01);
			TRES=read_eeprom(0x02);
			CUATRO=read_eeprom(0x03);
			
			write_eeprom(0x04,UNO);
			write_eeprom(0x05,DOS);
			write_eeprom(0x06,TRES);
			write_eeprom(0x07,CUATRO);
			lcd_putc("\fCAMBIADO");
			delay_ms(1000);
}

void CHEKAR(void){
			UNO=read_eeprom(0x00);
			DOS=read_eeprom(0x01);
			TRES=read_eeprom(0x02);
			CUATRO=read_eeprom(0x03);

			UNO_P=read_eeprom(0x04);
			DOS_P=read_eeprom(0x05);
			TRES_P=read_eeprom(0x06);
			CUATRO_P=read_eeprom(0x07);
}

void main(void){
		lcd_init();
		config();
AGAIN:
	do{
		lcd_putc("\fCHANGE->(*)\n");
		lcd_putc("ENTER-->(#)");
		
		GOA=ADC(GOA);
		switch (GOA){
			case 10:
					lcd_putc("\fPASSWORD:\n");
					ESCRIBIR_PASSWORD(); 
					goto CHEK;	
			case 11: 
					lcd_putc("\fESCRIBE EL\n");
					lcd_putc("PASSWORD 1ERO");
					delay_ms(800);
					lcd_putc("\fTYPE NOW\n");
					ESCRIBIR_PASSWORD();
					CHEKAR();
					if(UNO==UNO_P && DOS==DOS_P && TRES==TRES_P && CUATRO==CUATRO_P){
						lcd_putc("\fCORRECTO");
						delay_ms(1000);
						CAMBIAR();
					} 
					else
						lcd_putc("\fINCORRECTO");
						delay_ms(1000);
					break;
		}
	}while(TRUE);

CHEK:		CHEKAR();

			if(UNO==UNO_P && DOS==DOS_P && TRES==TRES_P && CUATRO==CUATRO_P){
					lcd_putc("\fCORRECTO");
					output_high(PIN_C0);
			}
			else
					lcd_putc("\fINCORRECTO");
			delay_ms(3000);
			output_low(PIN_C0);
			goto  AGAIN;
				
}


tengo un par de dudillas, ví que puíste compilar con un pic 16f887, con mplab lo hicíste? porque intento instalar el ccs etc pero no me funciona, me sale una X roja al lado y no puedo empezar un proyecto sobre ése dispositivo, podrias ayudarme?
como podría empezar un nuevo proyecto en mplab con un pic 16f887?

Gracias!
 
me sale una X roja al lado y no puedo empezar un proyecto sobre ése dispositivo
Cuando te sale una X es porque no se ha encontrado el archivo correspondiente.
Asegúrate de que los programas tengan la ruta correcta en el paso 2 del Project Wizard.
En este caso selecciona el programa correcto Ccsc.exe en la carpeta de instalación de PICC.

Suerte.
 
Arriba