Curso tutorial del PIC16F877

Hola, estoy impresionada de lo que sabeis de microcontroladores. Yo la verdad sólo llevo unos meses estudiando este tema y sé bien poco.

Tengo un problema y me gustaría saber si alguien sabe que pasa:
Estoy programando un PIC16F877 con MPLAB con el programador PICSTART-Plus. Estoy probando un programa MUY sencillo que ponga una salida del micro a 1. El problema que tengo es que la salida se pone a 5V pero sólo durante unos segundos y luego se vuelve a poner a cero.

No se si el problema viene de los bits de configuracíon que los he puesto:
-OSC HS
-WDT Off
-PUT Off
-CP Off
-BODEN On
-LVP Enabled
-CPD off
-WRT_ENABLE Enabled

El programa que utilizo es tan sencillo como:

#include <16F877.H>

#define _16f877

#use delay(clock=20000000)

void main() {


do{
set_tris_b(0x00);

output_b(0xFF);

}while(TRUE);
}


En el circuito, por ahora, sólo he puesto:
-patitas 11 y 32 a 5v
-patitas 12 y 31 a 0v
-patitas 13 y 14: el cristal de 12 MHz con dos condensadores de 15pF.


Estaría muy agradecida si me pudiesen ayudar, no sé que mas probar!

Un saludo
 
Buenas tardes soy nuevo en el foro necesito programar en c , un controlador pid pero no se como hacerlo ya que soy nuevo en el manejo de los pics por favor si me pueden ayudar gracias.

Es que estoy haciendo un proyecto de un regulador de voltaje y este necesita de una señal rectificada que entra a un pin del micro ( la señal AC esta entre 0 y 5 voltios) al entrar se compara con el pwm, y dependiendo del voltaje vario el ancho del pwm pero necesito que se sincronocen las dos señales la de pwm y la rectificada. despues de esto ay que hacer un controlador pid en el tiempo de rectificacion osea aproximadamente 16 ms y todo esto para variar la corriente de una bobina de control que tiene un generador trifasico que es el que produce el voltaje. no se si me entiendan pero la idea del proyecto es q a medida que suba o baje el voltaje de salida senoidal con el microcontrolador producir una corriente DC mas grande o mas pequeña.


por favor colaborenme con esto gracias
 
Última edición:
hola, mi problema es que diseñe un circuito con el pic 16f877A, pero hoy cuando fui a comprarlo, me dijeron que estaba descontinuado, pero que el pic 16f887 era la misma cosa, que incluso en el programa que ya habia creado para el 16f877a me servia igual y solo era cambiar la referencia del pic... eso es cierto?? necesito ayuda urgente porque es para un trabajo de la U... que diferencias hay entre uno u otro?.. de antemano, gracias.
 
Las unicas diferencias que hay entre el pic 16f877 y el pic 16f877A es que el segundo posee dos comparadores y se lo puede conseguir en mas tipos de Packages.

si no has utilizado ningun comparador, los registros son iguales y el programa hecho para el pic 16f877A te servira para el 877

para explicarte mejor te anexo documento en pdf
 

Adjuntos

  • Diferencia%20PIC16F87xA.pdf
    119.2 KB · Visitas: 182
Última edición:
Una Pregunta Por que con Pic se puede hacer con un circuito Regulador de cd y otro PID con amplificadores para que quieres el PIC vas mostrar datos en LCD oquieres hacerlo automatico?
 
porque con amplificadores y haciendo analogo el circuito sale muy grande y siempre es complicado, tambien ay que mostrar el valor del pid en un lcd por estos quiero hacerlo con pic, estoy trabajando con un compilador que se llama mikrobasic ya que me lo recomendaron, no soy bueno programando en assembler por lo cual utilizo este compilador pero si ay alguno mas sencillo colaborenme con el compilador y con algo de programación.

No se si ay algun pic o dspic que tenga el pid incluido si ay alguno por fa ayudenme con estos.

gracias.
 
Hermano le agradezco la informacion que a biente tiene usted de suministrarnos, me ha sido muy util, ya que estoy iniciando en esto de la programacion de pic´s, con el 16f877a y tengo que realizar un programa con el que configure un puerto como entrada, otro como salida cargo el nible bajo con un numero y el alto con otro y mostrarlos por el puerto de salida, además otro que el alto sea la base y el bajo el exponente y mostrarlo en el de salida. le agradezco cualquier ayuda.
 
hola cheli, mira en asm una forma de generar un retardo es haciendo el llamado a una subrutina con la instruccion CALL y que luego esta cargue un valor a un registro despues irlo decrementando de 1 en 1 y asi hasta llegar a cero y regrese al programa despues de la intruccion CALL, a veces esto se tiene que hacer anidado para aumentar el tiempo de retardo pero, si no quieres batallar.

fijate en la 4 pagina de el tuto ahi hay un programita para hecer retardos y mas adelante hay informacion de como usarlo te recomiendo que descargues las dos partes del tuto ya que asi entenderas mejor lo que te digo!!!!!!!!!
 
Yo lo hago con el picdel pero luego copio y pego en el mplab y me da errores que no se solucionar y ahi me quedo, mira tu mismo

Error[113] C:\LAB DE MICRO\LED TITILANDO.ASM 49 : Symbol not previously defined (Demora_150ms)
Error[113] C:\LAB DE MICRO\LED TITILANDO.ASM 53 : Symbol not previously defined (Demora_150ms)
Error[113] C:\LAB DE MICRO\LED TITILANDO.ASM 66 : Symbol not previously defined (PDel0)
Error[113] C:\LAB DE MICRO\LED TITILANDO.ASM 68 : Symbol not previously defined (PDel1)
Error[113] C:\LAB DE MICRO\LED TITILANDO.ASM 70 : Symbol not previously defined (PDel2)
Error[113] C:\LAB DE MICRO\LED TITILANDO.ASM 72 : Symbol not previously defined (PDel2)
Error[113] C:\LAB DE MICRO\LED TITILANDO.ASM 74 : Symbol not previously defined (PDel1)
Error[113] C:\LAB DE MICRO\LED TITILANDO.ASM 76 : Symbol not previously defined (PDel0)


Como arreglo esto y que estoy haciendo mal?

Como Symbol previously defined todo ese poco de broma
 
Hola cheli lo que pasa con tu programa es que tines que definir los registros del retardo PDel0, PDel1, PDel0 hasta PDeln registros que tengas y tambien cuando llames al retardo con la instruucion CALL tiene que ser al mismo nombre de la entiqueta del retado en tu caso Demora_150ms

para dar de alta los registros se hace asi al principio de tu codigo:

LIST P=16F877
#INCLUDE <p16F877.INC>
PDel0 EQU 21H
PDel1 EQU 22H y asi sucesibamente segun los registros que tengas que dar de alta
 
Hola amigos todo lo leído hasta el momento me parece más que interesante, pues deseo controlar motores paso a paso con el PIC16F877 , programandolo en PIC C de CCS ó PCW q es lo mismo, y con una interfaz en VB.NET pero la verdad he investigado bastante del PIC pero a la programación no le encuentro como entrarle, espero saber mas de este tema me ha parecido muy interesante.

Ah yo tengo el instalador del CCS PCWH v4.023, mi e-mail: samael.sys@gmail.com
 
hola amigos les cuento q he iniciado tratando de entender la programación del pic16f877 y quiero encender un led; pero:unsure: me da error a la hora de simularlo en proteus, les dejo los archivos por si me quieren ayudar, se les agradece.

Saludos!!:)
 

Adjuntos

  • LED.rar
    61.1 KB · Visitas: 79
Atrás
Arriba