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

Temas similares

04/02/2009 #1


Programacion de PIC16F877 a PIC16F877A
Podrian ayudarme con esto:

Tengo un programa para el PIC16F877 y este corre perfectamente bien, pero cuando este programa lo grabo en el PIC16F877A no corre. al parecer solo cambian algunos voltajes... alguien que tenga mas experiencia en esto me podria ayudar?

Muchas Gracias y saludos a todos.

Vicpower
07/02/2009 #2

Avatar de FRYCK

hola solo cambia las directivas del prosesador a 16f877a si tienes solo el .hex con el programa picdisam106 obtienes el codigo en ensamblador y con el mplab creas el proyecto y cambias prosesador con el que trabajas tanto en el codigo como en el mplab colocas 16f877a y compilas generando de nuevo tu codigo .hex
09/02/2009 #3


Muchas Gracias, Te agradesco tu ayuda.

Saludos.
20/02/2009 #4


Hola...........
Tengo un problema en una linea del programa que en el que estoy trabajando desde MPLAB
para un pic16f877a.......................... Y es que ne cesito complementar el puerto B y luego intercambiar su nebbles
comf portb,0
swap w,0
cuando hago el estimulo desde el mplab y al simular niega el puerto y lo guarda en w, pero al ejecutar swap w se queda en ceros en vez de cambiar los nebbles
Me pregunto que puede ser
20/02/2009 #5

Avatar de FRYCK

hola V. Avellaneda J tienes que utilizar un registro complementario
;***** VARIABLES
CBLOCK 0x20
acum_A ; variable momentánea
ENDC
cuerpo del programa
movf portb,w
movwf acum_A
comf acum_A,f
swapf acum_A,f
movf acum_A,w
movwf portb
07/03/2009 #6


Hola yo de nuevo
He estado camellando con el conversor AD del micro y tengo dudas sobre la justificacion del resultado (Regs ADRESL , H y el ADFM) y sobre los tiempos de addquisicion, puesto el registro de trabajo solo tiene 8 bits....................... Con mi implementacion solo puedo llegar a 255 ademas este toma una señal fija y el resultado varia en las unidades.
Me pregunto como se podria depurar................
Gracias
08/03/2009 #7

Avatar de FRYCK

Hola Avellaneda en este tutorial hay información sobre eso si sigue teniendo dudas publícalas miramos si te podemos colaborar .
El justificado de la conversión es la disposición de los datos en los registros luego de terminar la conversión ya que el adc de esta gama de micros es de 10 bit y cada registro tiene 8 bits se necesitan 2 registros ADRESL, ADRESH la escogencia de esto se hace por medio del bit ADFM que se encuentra en el registro ADCON1.
ADFM: Selecciona el formato del resultado de la conversión A/D
ADFM =1 => Pone en el registro ARDESH los seis bit de mayor peso a “0” (alineación a la derecha). Parte alta de la conversión en ceros “xxxxxxxx-xx000000” el valor máximo es 1023.

ADFM =0 => pone los 6 bit de menor peso del registro ADRESL a “0” (alineación a la
Izquierda). Parte baja de la conversión en ceros “000000xx-xxxxxxxx” el valor máximo es 255 utilizando solo el registro ADRESH y descartando ADRESL y 65535 utilizando ambos registros.

http://lc.fie.umich.mx/~ifranco/DATA..._PIC16F87X.pdf

la parte del tiempo de adquisicon la consigues aqui
http://www.ate.uniovi.es/fernando/Do...dulo%20_AD.pdf
espero le sirva
10/03/2009 #8


Hola yo de nuevo
Me preparo para un proyecto y a mi sub grupo le concierne comunicacion serial de un o dos pics con un Pc para control y visualizacion remota de un lazo cerrado un poco complejo.................
Bien me gustaria que me colaborara con algo de información previa y me ayuadara a resolver las dudas en el camino
Gracias
03/04/2012 #9


tengo un problema parecido al de vicpower..
el programa funciona correctamente, lo quemo y todo dice ok... pero cuando lo monto en el cto no me funciona..... monte un cto sencillo de encender y apagar un led para verificar si el problema era el cto o la programacion....
uso el pickit2 con cristal de 4mhz con el 16f877a
gracias por su colaboracion
10/05/2012 #10


Hola estoy armando un proyecto que mide magnitudes de fisicas, uso el timer del PIC16F77A, me costo mucho trabajo hacer mi proyecto q consta de un teclado matricial y una pantalla LCD 20x2; el programa lo elabore en lenguaje C usando el PCWHD complier CCS v.4.104; y para grabar el pic uso el WINPIC800 v. 3.64H; antes de hacer mi proyecto en fisico, decidi grabar programas simples como encender y apagar leds, controlar y mostrar mi nombre en LCD, sin embargo el programa grabado en el pIC no corre, he verificado mediante el WINPIC800 y el programa esta en el Micro, sin embargo en la practica el led solo queda encendido y en el lcd solo enciende y no pasa nada mas, verifique voltaje y todo bien, cambie de cristal el cual uso de 4 MHz XT, y nada use otoros micros el PIC16F84A y hize los programas de parapadeo de led y nada solo encienden los led y no hace nada mas; la configuracion del WINPIC800 para grabar el pic es la siguiente como se ve en la imagen

---------- Actualizado después de 8 minutos ----------

Hola estoy armando un proyecto que mide magnitudes de fisicas, uso el timer del PIC16F77A, me costo mucho trabajo hacer mi proyecto q consta de un teclado matricial y una pantalla LCD 20x2; el programa lo elabore en lenguaje C usando el PCWHD complier CCS v.4.104; y para grabar el pic uso el WINPIC800 v. 3.64H; antes de hacer mi proyecto en fisico, decidi grabar programas simples como encender y apagar leds, controlar y mostrar mi nombre en LCD, sin embargo el programa grabado en el pIC no corre, he verificado mediante el WINPIC800 y el programa esta en el Micro, sin embargo en la practica el led solo queda encendido y en el lcd solo enciende y no pasa nada mas, verifique voltaje y todo bien, cambie de cristal el cual uso de 4 MHz XT, y nada use otoros micros el PIC16F84A y hize los programas de parapadeo de led y nada solo encienden los led y no hace nada mas; la configuracion del WINPIC800 para grabar el pic es la siguiente como se ve en la imagen adjunta
Imágenes Adjuntas
Tipo de Archivo: png win800.png (52,8 KB (Kilobytes), 8 visitas)
Tipo de Archivo: jpg IMG00830.jpg (103,6 KB (Kilobytes), 6 visitas)
Tipo de Archivo: jpg IMG00829.jpg (104,8 KB (Kilobytes), 5 visitas)
10/05/2012 #11


Hola...no veo que estén todos los pienes de la alimentación conectados... a +5v Pines 11 y 32 y a GND Pines 12 y 31.

Saludos.

Ric.
10/05/2012 #12


Bueno, estoy 4 meses en esto de los microcontroladores, he aprendido a programarlos y simularlos en proteus, y recien comenze a la parte de grabacion y montaje de PICs, con respecto, a la conexion de las patillas 31 y 32, pues ya las habia conectado antes y es la misma situacion es como si el micro no tuviese programa, sin embargo al hacerle la prueba de lectura en la PC pues el programa esta ahi, adjunto fotos para q vean cuando conecto las patillas 31 y 32, ocurre la misma situacion el led enciende y no apaga y a veces no enciende, tengo q mover los condensadores del oscilador para q encienda. probare nuevamente cambiando por nuevos cristales, quizas los dos q tengo ya esten dañados.

el codigo para el LCD es:
#include <16F877A.h>
#use delay(clock=4000000)
#fuses HS,NOWDT,NOPUT,NOLVP,NOBROWNOUT,NOWRT,NOPROTECT
#include <lcd.c>

int i;

void main(void)
{
lcd_init();
while (1)
{
lcd_gotoxy(5,2);
lcd_putc("----TEST----");
delay_ms(3000);
}
}


--------------------------------------------------------------

para encender varios leds es:


#include <16F84A.h>

#use delay(clock=4000000)

#fuses HS,NOWDT,NOPUT,NOPROTECT

#byte port_b=0x06

int contador;

void main()
{

set_tris_b(0);

port_b=0;

while (true)

{
contador=0xff;
port_b=contador;

delay_ms(1000);

contador=0x00;
port_b=contador;

delay_ms(1000);

}
}



_______________________________

Espero me puedan ayudar de por que no puedo llevar a la practica mis programas... gracias
Imágenes Adjuntas
Tipo de Archivo: png 2.png (7,4 KB (Kilobytes), 11 visitas)
Tipo de Archivo: png 3.png (8,5 KB (Kilobytes), 10 visitas)
Tipo de Archivo: png 4.png (8,8 KB (Kilobytes), 9 visitas)
Tipo de Archivo: jpg 5.jpg (20,0 KB (Kilobytes), 11 visitas)
Tipo de Archivo: jpg IMG00779.jpg (35,7 KB (Kilobytes), 11 visitas)
Tipo de Archivo: jpg IMG00796.jpg (23,4 KB (Kilobytes), 10 visitas)
Tipo de Archivo: jpg IMG00797.jpg (23,1 KB (Kilobytes), 10 visitas)
Tipo de Archivo: jpg IMG00814.jpg (28,5 KB (Kilobytes), 11 visitas)
Tipo de Archivo: jpg IMG00815.jpg (23,9 KB (Kilobytes), 9 visitas)
Tipo de Archivo: jpg IMG00816.jpg (23,0 KB (Kilobytes), 9 visitas)
Tipo de Archivo: jpg IMG00835.jpg (22,4 KB (Kilobytes), 10 visitas)
Tipo de Archivo: jpg IMG00838.jpg (13,6 KB (Kilobytes), 9 visitas)
14/05/2012 #13


A los que me respondieron, gracias, logre hacer los grabados y mis circuitos ya funcionan, el error fue que yo usaba un oscilador XT y en mi programa lo hacia con HS, modifique ello y los programas funcionaron bien... saludos...
23/05/2012 #14


He completado un proyecto donde uso un LCD un Keypad y PIC16F877A y sensores, antes de armar el proyecto arme unos circuitos de practicas para obtener practica en montaje real de PIC asi que hice el de encender y apagar un led, funciono sin problemas, arme el de encender y apagar leds varios en secuencia y orden aleatorio y me funciono si problemas y ahora estoy queriendo probar con el LCD y me he quemado una pantalla de 20x2... les detallo el programa en CCS y les pongo unas imagenes y me digan que hago mal

Programa:

Código:
#include <16f877A.h>
#fuses XT, NOWDT
#fuses NOLVP
#fuses NOPROTECT
#use delay(clock=4000000)
#include <lcd.c>
#define LCD_DB4 PIN_D4 
#define LCD_DB5 PIN_D5 
#define LCD_DB6 PIN_D6 
#define LCD_DB7 PIN_D7 
#define LCD_E PIN_D0 
#define LCD_RS PIN_D1 
#define LCD_RW PIN_D2 

void main()
{
lcd_init();
printf(lcd_putc, "HOLA MUNDO");
}
las conexiones al LCD son las siguientes

(1) Vss --- Tierra
(2) Vdd --- 5 V
(3) Vee --- Potenciómetro o a Tierra
(4) DB4 --- RD1
(5) DB5 --- RD2
(6) DB6 --- RD0
(7 - 10) DB7 - DB10 no conectadas
(11) DB11 --- RD4
(12) DB12 --- RD5
(13) DB13 --- RD6
(14) DB14 --- RD7
(15) Anodo --- + 5V
(16) Catodo --- Tierra

Les adjunto las imágenes de Proteus y de las pruebas físicas...

Si alguien tiene experiencia grabando por favor digame que esta mal en mi ensamblado

Como observan en la simulación en proteus corre bien

mas imágenes he colgado aquí
PIC16F877A y LCD en montaje Real no funciona
Imágenes Adjuntas
Tipo de Archivo: jpg IMG00890.jpg (90,6 KB (Kilobytes), 8 visitas)
Tipo de Archivo: jpg IMG00888.jpg (94,0 KB (Kilobytes), 5 visitas)
Respuesta
¿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.