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

Temas similares

10/10/2012 #441
Moderador

Avatar de D@rkbytes

lalog861 dijo: Ver Mensaje
Hola que tal buen día,
alguien me podría apoyar para poder definir el oscilador externo en el pic16f883.
¿Cuando te refieres a usar oscilador externo, a que tipo te refieres?
Hay externo con cristal XT, HS (High Speed), con resonador, R/C y fuente de reloj externa.

Los tipos de palabra de configuración desde el 16F882 hasta el 16F887 son los mismos.
Esta es una configuración clásica con cristal.
Código:
Config1 XT_OSC,LVP_OFF,FCMEN_ON,IESO_OFF,BOR_OFF,CPD_OFF,CP_OFF,MCLRE_ON,PWRTE_ON,WDT_OFF
Config2 WRT_OFF,BOR21V
Para otras configuraciones, estas son las disponibles.
Config1 LP_OSC, Etc,Etc. (Oscilador con resonador de baja frecuencia. Hasta 200KHz.)
Config1 XT_OSC, Etc,Etc. (Oscilador a Xtal. Hasta 4MHz.)
Config1 HS_OSC, Etc,Etc. (Oscilador a Xtal. Hasta 20MHz.)
Config1 EXTCLK_OSC, Etc,Etc. (Oscilador Digital Externo)
Config1 INTRC_OSC_NOCLKOUT,Etc,Etc. (Oscilador R/C Interno. Sin salida de reloj)
Config1 INTRC_OSC_CLKOUT,Etc,Etc. (Oscilador R/C Interno. Con salida de reloj)
Config1 RC_OSC_NOCLKOUT,Etc,Etc. (Oscilador R/C Externo. Sin salida de reloj)
Config1 RC_OSC_CLKOUT,Etc,Etc. (Oscilador R/C Externo. Con salida de reloj)

Como puedes ver, son 8 tipos diferentes para la selección del oscilador.
El uso del registro OSCCON es sobre todo para cuando se usa el oscilador interno del PIC.
Un ejemplo de configuración para 8MHz estable, sería de esta manera...
OSCCON = %01110101
La información de configuración del registro OSCCON y más información esta en la hoja de datos.

Si deseas utilizar los puertos A y B como digitales, debes establecer los registros ANSEL y ANSELH en 0
ANSEL = 0 ; Puerto A Digital I/O
ANSELH = 0 ; Puerto B Digital I/O

Espero esta información te sea de utilidad.

Suerte.
10/10/2012 #442


Gracias por responder!!!!

Carptroya: el código que me enviaste lo probé en el pic y no me funciono, en la simulación si enciende el led, pero en físico no, se queda encendido el led en porta.0
Sobre el código al quererlo compila no me deja me arroja un error (Anexo error 1)

D@rkbytes: Puse el código pero me arroja unos errores al compilar, me apareció también con el código que me paso Carptroya, no se si tenga algún problema o realice mal algo..
(Anexo error 2)

Saludos y gracias.
11/10/2012 #443
Moderador

Avatar de D@rkbytes

lalog861 dijo: Ver Mensaje
D@rkbytes: Puse el código pero me arroja unos errores al compilar, me apareció también con el código que me paso Carptroya, no se si tenga algún problema o realice mal algo..
(Anexo error 2)
Saludos.
En el programa que subió carptroya, la palabra de configuración esta escrita en lenguaje ensamblador.
Las configuraciones que publique, están como se deben escribir en Proton.

Si te fijas bien, veras que se usa Config1 y Config2 para declarar las palabras de configuración.
Y tu estas escribiendo solamente Config en las dos palabras.

Ahora, compilando el programa de carptroya, no te debe producir error.
Si te produce error, debes actualizar la versión del programa que estas usando.

Suerte.
16/10/2012 #444


Muchas gracias por le apoyo
20/10/2012 #445


Que tal, buen dia señores..

alguien sabra porque me marca este warning al compilar el archivo, el error aparece con la version 2.0, antes tenia la 1.4 y no me aparecía el warning......
el mismo programa con la versión 1.4 no aparece nada..pero la cambie porque la 1.4 no me marcaba error con los fuses y ya con la 2.0 no..pero ahora marca este warning..


saludos

Me falto el error......
Imágenes Adjuntas
Tipo de Archivo: png error.png (37,9 KB (Kilobytes), 34 visitas)
20/10/2012 #446


lalog861 dijo: Ver Mensaje
Que tal, buen dia señores..

alguien sabra porque me marca este warning al compilar el archivo, el error aparece con la version 2.0, antes tenia la 1.4 y no me aparecía el warning......
el mismo programa con la versión 1.4 no aparece nada..pero la cambie porque la 1.4 no me marcaba error con los fuses y ya con la 2.0 no..pero ahora marca este warning..


saludos

Me falto el error......
Lo que te avisa el compilador que los comandos son viejos y pueden ser eliminados en las versiones mas nuevas. Consulta la ayuda de tú versión y que comandos hacen lo mismo que los que estas usando en este momento.
Supongo que lo hacen con el fin de que si cambias a una nueva versión tus programas aun sean compila bles/portables aunque yo tengo la 3.5.2.7 y todavía aparecen.
Saludos.

Ric.
21/10/2012 #447


Revisando la ayuda, la instruccion read se remplaza por lread cread y restore creo que no..
le intente emigrar el programa a estas instrucciones pero no me funciono..

intento hacer una matriz de led 8x8. tome la ayuda de una pagina "neoteo.com" ahi viene este programa...

Me podrian echar la mano en emigrar este programa sin utilizar la instruccion restore por lo que me aparece de error.... le intente pero no me salio

saludos,

Se me paso subir el archivo
Archivos Adjuntos
Tipo de Archivo: rar 8x8_matriz.rar (805 Bytes, 81 visitas)
21/10/2012 #448


lalog861 dijo: Ver Mensaje
Revisando la ayuda, la instruccion read se remplaza por lread cread y restore creo que no..
le intente emigrar el programa a estas instrucciones pero no me funciono..

intento hacer una matriz de led 8x8. tome la ayuda de una pagina "neoteo.com" ahi viene este programa...

Me podrian echar la mano en emigrar este programa sin utilizar la instruccion restore por lo que me aparece de error.... le intente pero no me salio

saludos,

Se me paso subir el archivo
No se por que quieres cambiar los comandos si lo que te esta dando es una advertencia solamente pero al menos en mi versión lo compila correctamente y genera el archivo a cargar los cuales adjunto(tuve que modificar solamente la linea Read = Letra y quitarle el signo igual).
Por otro lado acostumbra a adjuntar las reformas que has echo y no te funcionaron por que no todos tomamos las cosas desde el mismo punto de vista.
Saludos.
Ric.
Archivos Adjuntos
Tipo de Archivo: zip 8x8Matriz.zip (1,4 KB (Kilobytes), 66 visitas)
23/10/2012 #449


Que tal ricbevi,

lo que pasa es que en la simulación en proteus veía unos mensajes con unas instrucciones que con la version anterior no me aparecian...pero con lo que me comentaste me anime armar la matriz en físico y me funciono a la perfección,,,

Gracias por el apoyo, saludos!!!!
28/12/2012 #450

Avatar de mendek

que tal compañeros del foro, he estado buscando acerca de como hacer un cronometro en proton pero no tenido mucha suerte, lo que he hecho es poner algunas instrucciones para pintar el resultado en un LCD pero los pulsos de reloj necesarios para cada instrucción se van acumulando y no queda nada preciso, por ahí vi que seria mas correcto utilizar el tmr0 pero la verdad es que tampoco encontré información clara acerca de eso, alguien que me pueda proporcionar información , desde ya muchas gracias
28/12/2012 #451
Moderador

Avatar de D@rkbytes

mendek dijo: Ver Mensaje
que tal compañeros del foro, he estado buscando acerca de como hacer un cronometro en proton pero no tenido mucha suerte, lo que he hecho es poner algunas instrucciones para pintar el resultado en un LCD pero los pulsos de reloj necesarios para cada instrucción se van acumulando y no queda nada preciso, por ahí vi que seria mas correcto utilizar el tmr0 pero la verdad es que tampoco encontré información clara acerca de eso, alguien que me pueda proporcionar información , desde ya muchas gracias
Saludos.
Este ejemplo está escrito en PICBasic, pero si ya conoces algo de Proton no te será difícil entenderlo.
Proton usa PICBasic como lenguaje de programación, pero con otra sintaxis.
Así que si deseas migrar el ejemplo a Proton tampoco te resultará difícil hacerlo.

Cronómetro

Suerte.
03/01/2013 #452

Avatar de mendek

Bueno gracias D@rkbytes quizás fui algo lejos, ya vi el ejemplo y pensé que debería empezar con ejemplos mas fáciles para enseñarme a usar el TMR0 y no se si alguien tenga algún ejemplo de como encender y apagar un led, tan simple como eso pero no se hacerlo con el TMR0, desde ya gracias.
03/01/2013 #453
Moderador

Avatar de D@rkbytes

mendek dijo: Ver Mensaje
Bueno gracias D@rkbytes quizás fui algo lejos, ya vi el ejemplo y pensé que debería empezar con ejemplos mas fáciles para enseñarme a usar el TMR0 y no se si alguien tenga algún ejemplo de como encender y apagar un led, tan simple como eso pero no se hacerlo con el TMR0, desde ya gracias.
Saludos nuevamente mendek.
No sé si ya viste este ejemplo, se trata del incremento del TMR0 por el pin RA4 (T0CKI)
A estas horas del partido ya es para tratar con ejemplos un poco más avanzados con el TMR0.
Pero déjame hacer una recopilación de algunos proyectos que tengo, y posteriormente los subiré.

;******************************** 08/01/2013 *********************************
Para no crear otro post, aquí mismo adjunto los programas de ejemplo usando el TMR0
Vienen mezclados, pero son para lenguaje PICBasic.
Nota: Incluí dos ejemplos para Amicus18, que vendría siendo el Proton para PIC18
Por lo tanto esos programas deben ser compilados con Amicus18 IDE
Aquí unos archivos que ya había subido al Foro.
Tutorial TMR0 (PDF)
Los Timers del PIC16F84A (RAR)

Hasta pronto. Feliz y Prospero Año 2013 a todos.
Archivos Adjuntos
Tipo de Archivo: rar Amicus18 TRM0.rar (8,8 KB (Kilobytes), 47 visitas)
Tipo de Archivo: rar Amicus18 TRM1.rar (8,8 KB (Kilobytes), 35 visitas)
Tipo de Archivo: rar Count_Display.rar (18,6 KB (Kilobytes), 58 visitas)
Tipo de Archivo: rar INT_CLOCK.rar (15,2 KB (Kilobytes), 62 visitas)
Tipo de Archivo: rar TMR0_INT.rar (11,6 KB (Kilobytes), 55 visitas)
10/01/2013 #454


buenas tardes, muchas gracias por ofrecer tus conocimientos gracias a ello he hecho mis programitas bien bonitos, jeje.

hoy me dirijo a ti para hacerte una pregunta, estoy haciendo un semaforo con pic16f877 y quiero que cuando este en verde genere un sonido en otro puerto donde este un buzzer, como hago que suene? con decirle por ejemplo PORTA.1=1 es suficiente?? o es algun tipo de libreria como sound, frecuency?? De ante mano muchas gracias.

ah se me olvido otra cosita, quiero hacer un control para encender el semaforo, disculpa mi abuso, como lo haria?? jiji gracias.
10/01/2013 #455
Moderador

Avatar de D@rkbytes

sydjoe dijo: Ver Mensaje
buenas tardes, muchas gracias por ofrecer tus conocimientos gracias a ello he hecho mis programitas bien bonitos, jeje.

hoy me dirijo a ti para hacerte una pregunta, estoy haciendo un semaforo con pic16f877 y quiero que cuando este en verde genere un sonido en otro puerto donde este un buzzer, como hago que suene? con decirle por ejemplo PORTA.1=1 es suficiente?? o es algun tipo de libreria como sound, frecuency?? De ante mano muchas gracias.

ah se me olvido otra cosita, quiero hacer un control para encender el semaforo, disculpa mi abuso, como lo haria?? jiji gracias.
Supongo que te refieres a mi...
Bien, pues con respecto a tus preguntas...
Si solo quieres activar un buzzer, así como lo describes basta, PORTX.X = 1
Lo puedes controlar con un transistor simplemente.
Si quieres generar sonidos, si debes utilizar la función SOUND
SOUND Pin,[Note,Duration{,Note,Duration...}]

Hace tiempo subí un ejemplo de un semáforo, quizá te pueda servir para darte una idea.
Semáforo con PIC12X508

Suerte.
10/01/2013 #456


D@rkbytes dijo: Ver Mensaje
Supongo que te refieres a mi...
Bien, pues con respecto a tus preguntas...
Si solo quieres activar un buzzer, así como lo describes basta, PORTX.X = 1
Lo puedes controlar con un transistor simplemente.
Si quieres generar sonidos, si debes utilizar la función SOUND
SOUND Pin,[Note,Duration{,Note,Duration...}]

Hace tiempo subí un ejemplo de un semáforo, quizá te pueda servir para darte una idea.
Semáforo con PIC12X508

Suerte.
Jeje muchas gracias, se me olvido colocar a quien me refería, pero muchas gracias tu semáforo esta mucho mejor que el mio jajajaja (claro Estoy comenzando a programar... ), cuando lo termine lo subo para que me feliciten tambien, ademas le voy agregar un control remoto para encenderlo espero poder hacerlo sin preguntar. Saludos
11/01/2013 #457


D@rkbytes dijo: Ver Mensaje
Supongo que te refieres a mi...
Bien, pues con respecto a tus preguntas...
Si solo quieres activar un buzzer, así como lo describes basta, PORTX.X = 1
Lo puedes controlar con un transistor simplemente.
Si quieres generar sonidos, si debes utilizar la función SOUND
SOUND Pin,[Note,Duration{,Note,Duration...}]

Hace tiempo subí un ejemplo de un semáforo, quizá te pueda servir para darte una idea.
Semáforo con PIC12X508

Suerte.
HOLA D@rkbytes como estas? oye no se que sucede ayer hice este programa y funciona perfecto "device 16f877", luego hoy me puse a hacer lo del semáforo que te mencione anteriormente y no funciona, inclusive usando parte del otro programa y nada el pulsador no funciona, solo funciona cuando asigno que el pulsador sea igual a 1 y que encienda el led, pero al colocarle luego del "then" delayms 100 deja de funcionar . Que estaré haciendo mal?? o que estará pasando?? de ante mano gracias.
Archivos Adjuntos
Tipo de Archivo: rar semaforo.rar (8,4 KB (Kilobytes), 50 visitas)
Tipo de Archivo: rar device 16f877 (2).rar (21,3 KB (Kilobytes), 47 visitas)
11/01/2013 #458
Moderador

Avatar de D@rkbytes

sydjoe dijo: Ver Mensaje
HOLA D@rkbytes como estas? oye no se que sucede ayer hice este programa y funciona perfecto "device 16f877", luego hoy me puse a hacer lo del semáforo que te mencione anteriormente y no funciona, inclusive usando parte del otro programa y nada el pulsador no funciona, solo funciona cuando asigno que el pulsador sea igual a 1 y que encienda el led, pero al colocarle luego del "then" delayms 100 deja de funcionar . Que estaré haciendo mal?? o que estará pasando?? de ante mano gracias.
Saludos.
Prueba entonces así...
Código:
Device 16F877

Config HS_OSC,WDT_OFF,PWRTE_ON,LVP_OFF,BOREN_OFF

Xtal=20

TRISD = 0
TRISB = 1

PORTD = 0

Dim a As Byte

All_Digital = 1

Inicio:
    If PORTB.0=1 Then
Bucle:
    DelayMS 400
    PORTD.0=1
    PORTD.1=1
    DelayMS 200
    PORTD.0=0
    PORTD.1=0
    DelayMS 600
    PORTD.2=1
    PORTD.3=1
    DelayMS 200
    PORTD.2=0
    PORTD.3=0
    DelayMS 400
    PORTD.4=1
    PORTD.5=1
    DelayMS 200
    PORTD.4=0
    PORTD.5=0
    DelayMS 600
    PORTD.0=1
    PORTD.1=1
    DelayMS 200
    PORTD.0=0
    PORTD.1=0
    DelayMS 600
    PORTD.2=1
    PORTD.3=1
    DelayMS 200
    PORTD.2=0
    PORTD.3=0
    DelayMS 400
    PORTD.4=1
    PORTD.5=1
    DelayMS 200
    PORTD.4=0
    PORTD.5=0
    DelayMS 600
    GoTo Bucle
    Else
    GoTo Inicio
    EndIf
    End
Te recomiendo que no solo te refieras a una sola persona, si tu caso lo pueden resolver otras más.
De esta manera podrás recibir colaboración y opiniones de otras personas.

Suerte.
11/01/2013 #459


Ok gracias, saludos a todos
27/01/2013 #460


Hola. estoy desarrollando un proyecto para medir temperatura utlizando un lm35 y PIC 16f877a.
soy nuevo en esto y es i primer proyecto. quisiera saber como cambio el estado de un puerto. por ejemplo tengo un el portc.5 = 0 y quiero ponerte un switch que al apretarlo me coloque ese mismo puerto en 1 y asi prender un led para decir que mi lm35 esta funcionando. o si hay otra forma de hacerlo

si alguien me pudiera ayudar estaria muy agradecido
¿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.