Hola amigo gracias por la ayuda! con respecto a lo del MPLAB, ya tengo el v7.6! Cuando tenga un rato libre me pongo a jugar con los codigos a ver si me sale algo
PD: Que lenguaje es?
PD: Que lenguaje es?
Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
luis_e dijo:Hola, anthony123 a tu programa le falta la parte en donde apaga el led, antes de agregar la instruccion goto INICIO agrega esto:
BCF PORTB,0
CALL RETARDO ; Llama a RETARDO
Por lo que veo a tu rutina de retardo le tendrias que cargar el valor en los contadores al incio del programa, despues de configurar el puerto B y cambiar de banco agrega lo siguiente:
MOVLW 80
MOVWF CONTADOR
MOVWF CONTADOR1
Tengo un programa que es para calcular retardos, es muy facil de usar y nos da todo el codigo en ensamblador para agregar al programa, lo unico que hay que hacer es indicar la frecuencia a la que corre el micro, indicar el tiempo del retardo y luego copiar y pegar, tambien hay que definir una o mas variables que necesita la rutina de retardo.
Este programa de anthony123 se puede usar en casi cualquier micro que tengo el puerto B.
jams2006 te recomiendo que empieces con un pic16f84 porque es uno de los micros mas faciles de usar y ademas podes encontrar toneladas de ejemplos en internet, libros, revistas, etc
Cualquier cosa avisen y les hago un programa para que parpadee un led o cualquier cosa.
Saludos y espero que les sirva el programa
#include <16f877a.h> // Seleccionar la librería del PIC
// Con la siguiente configuración el compilador usará los fuses requeridos.
#use delay(crystal = 4MHz)
void main (void) // Programa principal.
{
while (true) // Bucle del programa.
{
output_high(pin_b0); // RB0 = 1
delay_ms(500); // Retardo de 500 ms.
output_low(pin_b0); // RB0 = 0
delay_ms(200); // Retardo de 200 ms.
} // Fin del bucle.
} // Fin del programa.
#include <16f877a.h> // Seleccionar la librería del PIC
// Con la siguiente configuración el compilador usará los fuses requeridos.
#use delay(crystal = 4MHz)
#byte portb = getenv("SFR:PORTB") // Se define el puerto B
#bit led = portb.0 // Se define el bit 0 del puerto B
void main (void) // Programa principal.
{
set_tris_b(0b11111110); // RB0 como salida
while (true) // Bucle del programa.
{
led = 1; // RB0 = 1
delay_ms(500); // Retardo de 500 ms.
led = 0; // RB0 = 0
delay_ms(200); // Retardo de 200 ms.
} // Fin del bucle.
} // Fin del programa.
#include "C:\Users\juan\SkyDrive\Documentos\parpadeo_led.h"
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
// TODO: USER CODE!!
WHILE(TRUE){
output_high(pin_b0); // PIN_B0=1
delay_ms(25);
output_high(pin_b1); // PIN_B0=2
delay_ms(25);
output_low(pin_b0); // PIN_B0=1
delay_ms(25);
output_high(pin_b2); // PIN_B0=3
delay_ms(25);
output_low(pin_b1); // PIN_B0=1
delay_ms(25);
output_high(pin_b3); // PIN_B0=1
delay_ms(25);
output_low(pin_b2); // PIN_B0=1
delay_ms(25);
output_high(pin_b4); // PIN_B0=1
delay_ms(25);
output_low(pin_b3); // PIN_B0=1
delay_ms(25);
output_high(pin_b5); // PIN_B0=1
delay_ms(25);
output_low(pin_b4); // PIN_B0=1
delay_ms(25);
output_high(pin_b6); // PIN_B0=1
delay_ms(25);
output_low(pin_b5); // PIN_B0=1
delay_ms(25);
output_high(pin_b7); // PIN_B0=1
delay_ms(10);
output_low(pin_b6); // PIN_B0=1
delay_ms(10);
output_high(pin_b6); // PIN_B0=1
delay_ms(10);
output_low(pin_b7); // PIN_B0=1
delay_ms(10);
output_high(pin_b5); // PIN_B0=1
delay_ms(10);
output_low(pin_b6); // PIN_B0=1
delay_ms(10);
output_high(pin_b4); // PIN_B0=1
delay_ms(10);
output_low(pin_b5); // PIN_B0=1
delay_ms(10);
output_high(pin_b3); // PIN_B0=1
delay_ms(10);
output_low(pin_b4); // PIN_B0=1
delay_ms(10);
output_high(pin_b2); // PIN_B0=3
delay_ms(10);
output_low(pin_b3); // PIN_B0=1
delay_ms(10);
output_high(pin_b1); // PIN_B0=2
delay_ms(10);
output_low(pin_b2); // PIN_B0=1
delay_ms(10);
output_high(pin_b0); // PIN_B0=1
delay_ms(10);
output_low(pin_b1); // PIN_B0=1
delay_ms(10);
}
}
[COLOR=Red]#include[/COLOR] <[COLOR=SeaGreen]16[/COLOR]f877a.h> // Librería del microcontrolador
[COLOR=Red]#use[/COLOR] delay(crystal = 4MHz) // Frecuencia del oscilador (Incluye palabra de configuración)
[COLOR=Blue]void[/COLOR] main ([COLOR=Blue]void[/COLOR]) // Programa principal.
{
output_high(pin_b7); // RB7 = 1
delay_ms([COLOR=SeaGreen]500[/COLOR]); // Retardo de 500 ms.
[COLOR=Blue]while[/COLOR] (true) // Bucle infinito.
{
output_toggle(pin_b7); // Cambiar de estado RB7 (Toggle)
delay_ms([COLOR=SeaGreen]500[/COLOR]); // Retardo de 500 ms.
} // Fin del bucle.
}