Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

20/06/2011 #261


Que tal, primero agradezco a las personas que contribuyen y aportan a este gran foro, he aprendido y sigo aprendiendo mucho.

Ahora, desde hace unos meses comencé con esto de la programación de PIC´s y la verdad es muy interesante, ya leí la información que aqui han puesto y me he asesorado con otras personas sobre el tema.

Yo en lo particular, para realizar y compilar mi programa utilizo el software SOURCEBOOST y lo simulo en PROTEUS, para el tipo de prácticas que he realizado (sencillas) no he tenido problemas y en cuanto al programación, incluso compré un MASTERPROG de los que venden en Mercado Libre pero he tenido algunos problemas.

Bueno, una sencilla aportación que les dejo es esta: Es un programa que mediante un dip switch muestra 3 contadores (uno de 15 a 0, otro de 0 a 15 de 3 en 3 y uno mas de 0 a 9) el conteo se muestra en un display de 7 segmentos conectado al puerto B del PIC.

OJO: Utilicé el PIC16F84A pero es lo mismo para el PIC16F877A
Código PHP:
#include <system.h>

void main()
{
  
trisa 0x07;//Configura a RA0, RA1 y RA2 del puerto A como entradas 
  
trisb 0x00;//Configura el puerto B como salida
  
while(1)//Para que el programa se repita
         
{
           if(
porta==0)//Con esta condición se inicia el contador de 15 a 0
                      
{
                              
portb 0x71;//Se le asigna al puerto B el numero 15 letra F
                              
delay_ms(1000);
                              
portb 0x79;//numero 14 letra E
                              
delay_ms(1000);
                              
portb 0x5E;//número 13 letra D
                              
delay_ms(1000);
                              
portb 0x39;//número 12 letra C
                              
delay_ms(1000);
                              
portb 0x7C;//número 11 letra B
                              
delay_ms(1000);
                              
portb 0x77;//número 10 letra A
                              
delay_ms(1000);
                              
portb 0x67;//número 9 
                              
delay_ms(1000);
                              
portb 0x7F;//número 8
                              
delay_ms(1000);
                              
portb 0x07;//número 7
                              
delay_ms(1000);
                              
portb 0x7D;//número 6
                              
delay_ms(1000);
                              
portb 0x6D;//número 5
                              
delay_ms(1000);
                              
portb 0x66;//número 4
                              
delay_ms(1000);
                              
portb 0x4F;//número 3
                              
delay_ms(1000);
                              
portb 0x5B;//número 2
                              
delay_ms(1000);
                              
portb 0x06;//número 1
                              
delay_ms(1000);
                              
portb 0x3F;//número 0
                              
delay_ms(1000);
                       }
           if(
porta==1)//Con esta condición se inicia el contador de 0 a 15 de 3 en 3
                      
{
                              
portb 0x3F;
                              
delay_ms(1000);
                              
portb 0x4F;
                              
delay_ms(1000);
                              
portb 0x7D;
                              
delay_ms(1000);
                              
portb 0x67;
                              
delay_ms(1000);
                              
portb 0x39;
                              
delay_ms(1000);
                              
portb 0x71;
                              
delay_ms(1000);
                       }
           if(
porta==2)//Con esta condición se inicia el contador de 9 a 0
                      

                              
portb 0x67;
                              
delay_ms(1000);
                              
portb 0x7F;
                              
delay_ms(1000);
                              
portb 0x07;
                              
delay_ms(1000);
                              
portb 0x7D;
                              
delay_ms(1000);
                              
portb 0x6D;
                              
delay_ms(1000);
                              
portb 0x66;
                              
delay_ms(1000);
                              
portb 0x4F;
                              
delay_ms(1000);
                              
portb 0x5B;
                              
delay_ms(1000);
                              
portb 0x06;
                              
delay_ms(1000);
                              
portb 0x3F;
                              
delay_ms(1000);
                       }       
         }                                                     

Como apenas comienzo en esto mi programa está "paso a paso", supongo que debe haber formas más sencillas de hacerlo y en eso estoy, aprendiendo poco a poco.

Saludos desde Guanajuato México y espero les sirva
21/06/2011 #262

Avatar de snakewather

Hola y bienvenido ese soft, no lo habia oido se ve parecido a CCs y si hay otra manera puedes guardar el dato en una variable BYTE e incrementarla o -- en uno despues mostrarla en el puerto que quieras y sensar cuando alla llegado al valor deseado. se puede hacer con un FOR o ifs
21/06/2011 #263


Hola saludos atodos quiero dar las grasias atodos los q aportaron, me serviran de mucho ya q soy nuevo en el tema de microcontroladores, solo q ria saber si alguien conoce al gun tutorial de visual basic para acer interfaces con los pic por ejemplo con el pic16f877 se los agradeceria mucho,y sigan adelante con este tutorial.
10/08/2011 #264

Avatar de dannyy

amigos por favor alguien me podria decir, que es un verdadero enigma para mi sobre los pics:
porque pusieron al 16f877A comparadores analógicos, si tiene conversores de analógicos a digital
gracias de antemano

a lo q me refiero es:
porque o con que propósito pusieron los comparadores analógicos al pic 16f877a si con el conversor A/D puedo cumplir la misma función de comparar y tomar decisiones según
las necesidades.
o acaso hay funciones que el comparador analógico pueda cumplir y que el conversor A/D del pic no lo pueda hacer.
y si lo hubiera por favor hazme una lista de ellos, si no fuera mucha molestia
y si pudieras enseñarme sobre ese tema seria magnifico
por favor si fueras tan amable de sacarme de esa duda estaría muy agradecido
saludos
11/08/2011 #265

Avatar de thunder2

Bootloader para PIC16F877A
Hola a todos, he estado intentando la aplicación AN1310 de Microchip para microcontroladores que es un bootloader, combinado el circuito FT232RL, pero al ejecutarlo me da error de lectura. Obvio que quemando el bootloader en el PIC con un programador serial.
La pregunta es ¿Hay que configurar los fuses y cuales son?, agradezco cualquier respuesta.

Muchas gracias y saludos.
12/08/2011 #266


Yo tengo 15 dias que compre el cargador de pic por usb en Steren (680)y me funciono bien
nada mas que hay que tener cuidado con el pic que contiene
14/08/2011 #267

Avatar de snakewather

dannyy dijo: Ver Mensaje
amigos por favor alguien me podria decir, que es un verdadero enigma para mi sobre los pics:
porque pusieron al 16f877A comparadores analógicos, si tiene conversores de analógicos a digital
gracias de antemano

a lo q me refiero es:
porque o con que propósito pusieron los comparadores analógicos al pic 16f877a si con el conversor A/D puedo cumplir la misma función de comparar y tomar decisiones según
las necesidades.
o acaso hay funciones que el comparador analógico pueda cumplir y que el conversor A/D del pic no lo pueda hacer.
y si lo hubiera por favor hazme una lista de ellos, si no fuera mucha molestia
y si pudieras enseñarme sobre ese tema seria magnifico
por favor si fueras tan amable de sacarme de esa duda estaría muy agradecido
saludos
La idea es que con el A/D se puede tomar deciciones en base a un valor binario que equivale a un voltaje sensado,

y con los comparadores comparas un voltaje a un rango de voltajes pueden ser + o - y tambien se puede hacer inversamente.

thunder2 dijo: Ver Mensaje
Hola a todos, he estado intentando la aplicación AN1310 de Microchip para microcontroladores que es un bootloader, combinado el circuito FT232RL, pero al ejecutarlo me da error de lectura. Obvio que quemando el bootloader en el PIC con un programador serial.
La pregunta es ¿Hay que configurar los fuses y cuales son?, agradezco cualquier respuesta.

Muchas gracias y saludos.
Cheque la aplicacion asi rapidillo y Se me ocurrio que podria ser asi como te pongo en la imagen solo me queda duda del DEBUG
yo probaria habilitandolo y despues sin habilitar a ver que pasa.

jamirto dijo: Ver Mensaje
Yo tengo 15 dias que compre el cargador de pic por usb en Steren (680)y me funciono bien
nada mas que hay que tener cuidado con el pic que contiene
680 pesos se me hace mucho podrias poner una imagen o link y que pics te graba?
Imágenes Adjuntas
Tipo de Archivo: jpg boot 877A.jpg (77,5 KB (Kilobytes), 21 visitas)
14/08/2011 #268


Este es el linkhttp://www.steren.com.mx/_files/product.asp?d=3329&dt=2&p=2644
si es caro pero por mi desesperacion lo compre ya que el programdor jdm por puerto serial no tuve suerte talves configure mal los fuses dejame checarlo de nuevo y en una semana te digo que paso .este vale como 160 pesos
16/08/2011 #269

Avatar de thunder2

Gracias Snakeweather por tu respuesta y a ti jamirto, pero no tengo problemas con mi jdm, he programado PIC16F877A, PIC16F876A, PIC16F628A y PIC16F84A. Pero la imagen es clara para los fuses del programa para grabar el PIC pero en si, son los fuses del assembler que tiene el bootloader. Para que me entiendan, planeo utilizar el FT232RL como conversor USB - serial, para enviar los programas al estilo arduino.
Además como se dice en Colombia, el PIC16F877A es una berraquera para sacarte de problemas y deberas lo necesito para no desmontarlo y desmontarlo del programador jdm.

Gracias a todos y mil perdones por mi pregunta.

Si me sale esta adaptación, la subo al foro. Pero ello tiendo una tarjeta FT232RL parecida a la que hace sparkfun, ya que tendria que realizar el impreso para el PIC y el integrado SMD FT232RL. Por ahora lo estoy probando en el proto, pero nada de nada del bootloader.
24/08/2011 #270

Avatar de electronix

Hola esta intresante el foro ,Tambien quisiera aportar algo ,no soy muy experto en el tema pero si me gusta y me facina desubrir cada vez mas nuevas aplicaciones con estos dispositivos y todo lo relacionado.. me dare un tiempo para poder aportar alguito con todos los q amamos este maravilloso mundo....Hasta entonces colegas.

Saludos...
28/08/2011 #271

Avatar de snakewather

Que tal compañeros del Foro me da gusto que este Tuto sigue su curso Monitoreado por los que ya llevamos tiempo aqui y por los nuevos colegas que se integran, a aportar poco o mucho del conocimiento que tengan, en realidad lo que importa es que participen.

Asi sea algo pequeño Todo Gran Proyecto inicia con algo basico.

Sigan visitando el foro y si tienen proyectos ya hechos en ASM aunque sean simples ponganlos.

Podemos hacer un Compendio de Programas en ASM explicados para ponerlos como ejercicios anexos a este tutorial.


Espero sus aportaciones les cuento que tengo informacion sobre PBP para armar un buen tutorial ya sea con el 877 o con la nueva version pero falta redactarla y armarla bien para aumentar mas este tutorial pero eso sera mas adelante.
29/08/2011 #272

Avatar de Meta

Hola:

Si acaso para el 16F887, ya que el 16F877A no se fabrica si los conseguen es porque están hasta fin de existencias del stock.

Puedes leer a partir de la página 71 sobre estos temas en este manual.
http://electronica-pic.blogspot.com/...io-rapido.html

Hay otra persona que lo explica con más detalle.
Migrando a los Nuevos PIC Migrando hacia PIC16F88X

http://electronica-pic.blogspot.com/...ndo-hacia.html

Un saludo.
29/08/2011 #273

Avatar de snakewather

OK gracias Meta era lo que estaba pensando lo tomare en cuenta saludos desde el infinito jejejee

Muy buen material el que publicas en tu blog Felicidades!
30/08/2011 #274

Avatar de thunder2

Menos mal hay aqui un espacio para el honorable PIC16F877A, y su hermano menor el PIC16F876A. Pero lo he planteado antes en vez de utilizar el programador seria bueno hacerlo por bootloader, algo como el PIC18F2550 para pinguino.

gracias a todos.
30/08/2011 #275

Avatar de Meta

Puedes sacar código fuente del bootloader hasta módulos ya hechos que puedes ver por aquí.



http://www.microingenia.com/electron...p?id_product=2
31/08/2011 #276

Avatar de thunder2

Hola Meta, de casualidad es de Argentina la empresa? Y agradezco tu respuesta.

Sera mu caro el envio a Colombia?
01/09/2011 #277

Avatar de Meta

Murcia, España. Por lo que tengo entendido.
28/09/2011 #278


snakewather gracia por el aporte recien me inscribi a esta pagina y me parece muy interesante, tal vez me pueden dar un consejo tengo q hacer un proyecto para la universidad con el pic 16f877, tal vez me podrian aconsejar que proyecto hacer, gracias
01/10/2011 #279

Avatar de snakewather

dangoncres dijo: Ver Mensaje
snakewather gracia por el aporte recien me inscribi a esta pagina y me parece muy interesante, tal vez me pueden dar un consejo tengo q hacer un proyecto para la universidad con el pic 16f877, tal vez me podrian aconsejar que proyecto hacer, gracias

Hola y bienvenido todo depende de cuanto sepas de pics y tu material disponible, puedes hacer desde un control de luces nivel basico, un control de un motor o motores hasta una comunicacion PC-PIC o PIC- LCD-TECLADO para controlar algo. cuentame como andas en los pics que sabes hacer ya para poderte dar una opinion mas exacta.
20/10/2011 #280


Snakewather, primero que nada quiero felicitarte porque por personas como tu y otros sigue vivo este post por mas de 3 a~nos, estuve trabajando bastante con este pic hace algun tiemppo y desafortunadamente perdi todas mis librerias cuando se da~no mi disco duro, ahora me encuentro en un concurso de seguidores de linea y desidi utilizar el 16f877a, tenia pensado adquir los datos de los sensores(analogicos) mediante el 40106bcn, solo que los voltajes Vth y Vtl finalmente son demasiado grandes para mis mediciones, asi que decidi realizarlo mediante el convertidor analogico digital, recurro a ti porque me gustaria saber si tuvieras algun codigo o una idea que me pudiera servir, tanto para el acdc(manejo voltajes entre 0-1.9V) como para controlar el puente H( en este caso un lm293), te lo agradeceria enormemente y espero poder compartireste proyecto con uds. cuando lo tenga finalizado por si alguien mas se interesa en la robotica. Saludos
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.