Foros de Electrónica

Comunidad de discusión sobre Automatización, Electrónica industrial, Microcontroladores y electrónica digital, Robótica, Domótica, Telemática, Tecnologías móviles, y muchos temas más.




Curso tutorial del PIC16F877


       



#31  
Alejandro Sherar
Ubicación: Va. Martelli, Bs. As., Argentina
Registrado: 07 Abr 2008
Mensajes: 709
citar
Hola "sangreaztk":
Veo que lo que has subido hasta ahora es para toda la familia 16X87X.
Está bueno tener lo básico a la vista.
Te comento que ando con el 876 pero pienso incursionar en el 877 en mi camino
hacia algo más potente.
Cuando entres en la parte específica del 877 seguro te seguiré más de cerca.
Por ahora ya me suscribí a este tema.
Saludos.

#32  Ejemplo en ensamblador
sangreaztk
Ubicación: México
Registrado: 02 Feb 2008
Mensajes: 87
citar
El primer ejemplo en ensamblador, es un programa fácil pero no estoy seguro de haberlo explicado muy bien, a los que tengan dudas pues pregunten.
Después pondré más ejemplos y luego pondré como usar el MPLAB.
Hasta luego kamaradas!

Nota: Si el archivo no tiene una buena presentación notifiquenmelo puesto que estoy usando OpenOficce y a veces no hay buena compatibilidad entre formatos.
Archivos Adjuntos

Este mensaje contiene archivos adjuntos, para verlos debes estar registrado.

#33  Ejemplo 0x01
sangreaztk
Ubicación: México
Registrado: 02 Feb 2008
Mensajes: 87
citar
Hola a todos!
Un documento más con un nuevo ejemplo!
Nos vemos Kamaradas!
Archivos Adjuntos

Este mensaje contiene archivos adjuntos, para verlos debes estar registrado.

#34  Yo coopero
fragmir
Ubicación: Mexico
Registrado: 18 Abr 2008
Mensajes: 35
citar
Hola yo copero con un sencillo codigo en mc18 de mplab para encender un led con un boton-
# include <p18f1320.h>
# include <delays.h>
# pragma config IESO=OFF, FSCM=OFF, OSC=HSPLL
# pragma config BORV=42, BOR=ON, PWRT=ON
# pragma config WDTPS=32768, WDT=OFF
# pragma config MCLRE=ON
# pragma config DEBUG=OFF
# pragma config LVP=OFF, STVR=OFF
# pragma config CP1=OFF, CP0=OFF
# pragma config CPD=OFF, CPB=OFF
# pragma config WRT1=OFF, WRT0=OFF
# pragma config WRTD=OFF, WRTB=OFF, WRTC=OFF
# pragma config EBTR0=OFF, EBTR1=OFF
# pragma config EBTRB=OFF
# define SW1 LATAbits.LATA0
# define D1 PORTBbits.RB0
//todas estas directivas son "fuses" del pic 18f1320, las cuales son necesarias para programar el pic.
void main(void ){

ADCON1=0b01111111;
TRISA=1;//porgramamos puerto A 1 input 0 output
LATA=0;//ponemos en 0 lógico el puerto A
TRISB=0;//puerto porgramado como salia
LATB=0;//ponemos en 0 el puerto B
INTCON2bits.RBPU=0;//Activamos resistencias de pull-up
while(1){ //bucle infinito
if(SW1==1){ //si se presiona el switch aqui se puede agregar un funcion para evitar el rebote pero
//por ahora solo trato de definir funciones muy basicas para que vean como es este rollo.
D1=1; //prendemos el led
}

Delay10KTCYx(10); //fucnion de delay es lo mas basico pero mas util usar interrupciones
D1=0; //apagamos el led
}

}//este programa esta funcionando y es demasiado sencillo, espero les sirva como inicio.
espero les sirva
un saludo

#35  
carloscm
Ubicación: TLAXCALA, MEXICO
Registrado: 08 Jul 2008
Mensajes: 6
citar
Tus anexos se me hacen interesante, pero hay muchas cosas que no se entienden muy bien, por ejemplo esta linea " INTCON2bits.RBPU=0;//Activamos resistencias de pull-up "a que se refiere esto? y en el que esta en word tambien, en que lenguaje esta? o como lo explicas?

#36  
carloscm
Ubicación: TLAXCALA, MEXICO
Registrado: 08 Jul 2008
Mensajes: 6
citar
Bueno aqui les dejo un programa el cual prende todo el puerto b en ruleta, es decir que prende un led y esta va de izquierda a derecha y resgresa, espero les sirva creo que es un poco mas facil de entender, se los dejo a su consideracion

// CARLOS


#include <16F877.h> // Def. el Micro a Usar
#fuses HS,NOWDT,NOPROTECT,NOLVP // Config. de los fusibles
#use delay(clock=10000000) // Velocidad Cristal
#int_rtcc

void Ini_puertos() // Procedimiendo Inicio el perifericos
{
output_high(PIN_B1); // Activamos a "1" el Pin (Colocamos 5Volts ó "1"Logico)
delay_ms(500); // Retardo en miliSegundos
output_low(PIN_B1); // Mandamos a Gnd (Cero Volts ó "0" Logico)
delay_ms(500); // Retardo en miliSegundos
output_high(PIN_B1); // Activamos a "1" el Pin (Colocamos 5Volts ó "1"Logico)
delay_ms(500); // Retardo en miliSegundos
output_low(PIN_B1); // Mandamos a Gnd (Cero Volts ó "0" Logico)
}

void main() // Programa Principal
{
Ini_puertos(); // Mando a traer la funcion que inicia perifericos

while(1) // Ciclo infinito
{
output_high(PIN_B0); // Activamos a "1" el Pin (Colocamos 5Volts ó "1"Logico)
delay_ms(1000); // Retardo en miliSegundos
output_low(PIN_B0); // Mandamos a Gnd (Cero Volts ó "0" Logico)


output_high(PIN_B1);
delay_ms(1000);
output_low(PIN_B1);

output_high(PIN_B2);
delay_ms(1000);
output_low(PIN_B2);

output_high(PIN_B3);
delay_ms(1000);
output_low(PIN_B3);

output_high(PIN_B4);
delay_ms(1000);
output_low(PIN_B4);

output_high(PIN_B5);
delay_ms(1000);
output_low(PIN_B5);

output_high(PIN_B6);
delay_ms(1000);
output_low(PIN_B6);

output_high(PIN_B7);
delay_ms(1000);
output_low(PIN_B7);

output_high(PIN_B6);
delay_ms(1000);
output_low(PIN_B6);

output_high(PIN_B5);
delay_ms(1000);
output_low(PIN_B5);

output_high(PIN_B4);
delay_ms(1000);
output_low(PIN_B4);

output_high(PIN_B3);
delay_ms(1000);
output_low(PIN_B3);

output_high(PIN_B2);
delay_ms(1000);
output_low(PIN_B2);

output_high(PIN_B1);
delay_ms(1000);
output_low(PIN_B1);
}

}




si alguein quiere el .hex se los puedo enviar.
sigamos con las aportaciones

#37  
fragmir
Ubicación: Mexico
Registrado: 18 Abr 2008
Mensajes: 35
citar
Ok refiriendome al codigo que yo puse, es lenguaje c que se programa con mplab con un compilador que se llama mcc 18 si no lo consigues yo te lo puedo subir al skydrive y de ahi te lo bajas.
Respecto a las resistencias de pull-up, son resistencias que se colocan entre una señal loigca y la fuente de alimentacion, y sirven simplemente para evitar una confusion entre un uno y un cero logico, solamente que con este pic y otros mas, no es necesario colocar esas resitencias sino que ya las trae colocadas internamente. Una ventaja no?

#38  
carloscm
Ubicación: TLAXCALA, MEXICO
Registrado: 08 Jul 2008
Mensajes: 6
citar
Ok, he escuchado de mplab, pero la verdad no he trabajado con el, te agradeceria que lo subieras y me pasaras el link para ver si nos podemos familiarizar, y por lo que veo tu ya estas con uno de la familia 18f, es un gran avance, en ese tipo de micros como activo la conexion usb?
sigamos adelante con las aportaciones

#39  
fragmir
Ubicación: Mexico
Registrado: 18 Abr 2008
Mensajes: 35
citar
Carlos no comprendo bien tu pregunta pero el dispositivo cuenta con puerto de recepcion y transmisión sincrona y asincrona, respecto a lo del usb no quisiera contestarte algo incorrecto.
Yo subiré hoy el mplab y todo eso al skydrive y seguro mañana posteo el link para todos.
Un saludo

#40  
carloscm
Ubicación: TLAXCALA, MEXICO
Registrado: 08 Jul 2008
Mensajes: 6
citar
Mi pregunta es como declaro para activar la conexion usb en la familia de los 18f, para poderse comunicar con la pc y viserversa. , por ejemplo en la familia de los 16f, es la que he ocupado y para activar la conexion serial, es <include>rs232..., pero ahora estoy empezando con los 18f y no se como activar el usb. si es mucho pedir haber si tambiensi tienes algun diagrama te lo agradeceria mucho
gracias por tu atencion

 Responder



 Otros temas de interés 
No hay mensajes nuevos Destacado: Programas de simulación y diseño de circuitos electrónicos
No hay mensajes nuevos chip PWM especifico
No hay mensajes nuevos Problema generado por programas Spyware y Adware
No hay mensajes nuevos Cargador para auto para IPOD ESPECIFICO
El tema está cerrado y no puedes editar mensajes o responder Programas de diseño de circuitos impresos

Foros de Electronica
|| Cuestiones Elementales de Electrónica || Fuentes de alimentacion || Circuitos de radio || Diseño de circuitos en general ||
|| Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión ||
|| Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos ||
Contacto | Acerca de | Ayuda | Normas de la Comunidad | Privacidad | Mapa de los foros
© Foros de Electrónica - Comunidad Internacional de Electrónicos