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

Temas similares

03/11/2010 #1

Avatar de vazko

una pregunta del pic 16f84A
Hola gente, espero que se encuentren bien.

Mi pregunta es como hago para cambiarle la velocidad a un circuito que tengo,
el circuito consta de un pic 16f84A el cual lo tengo programado para que muestre los numeros de 0 a 255 en binario; pero lo hace muy rapido... lo que quiero hacer es mermarle la velocidad a la secuencia.
como lo hago???
que tengo que editar???

Gracias. :-)
03/11/2010 #2


deberias poner el programa que esta corriendo en el microcontrolador para poder ayudarte. . .
Un saludo
03/11/2010 #3

Avatar de vazko

Hola Pablet,
ya tengo el cto montado en el software
yo uso el winpic800,
si tienes uno mejor me lo puedes sugerir.
gracias.
03/11/2010 #4

Avatar de el-rey-julien

para quemar o grabar el pic el winpic800 funciona bien,en linux podes usar el pikdeb ,
nomas ponele delay después de muestre el primer numero que retrase para que muestre el siguiente numero asi lo podes ver ,
como dijo pablet deverias postear el programa que estas usando así te podemos ayudar
el rey julien saluda

en display o en lcd miras el numero?
03/11/2010 #5

Avatar de snakewather

vazko dijo: Ver Mensaje
Hola Pablet,
ya tengo el cto montado en el software
yo uso el winpic800,
si tienes uno mejor me lo puedes sugerir.
gracias.
Hola Primero que nada en que estas programando asm, C, PBP u otro.
Para que puedas visualizar los datos tienes que poner un retardo entre el mostrado de un dato y el siguiente ejemplo.

suponiendo que es PBP.

PORTA = %00000001 'mando el dato 1 a porta
PAUSE 1000 'retardo de 1000 mseg = 1Seg
PORTA = %00000010
PAUSE 1000

Ya que si te quieres ahorrar tiempo y codigo porque tendrias que hacer esto hasta el 250
Podrias Mandar una constante al PORTA que empieze en uno y que se incremente en 1 hasta llegar a 250 esto se hace con un IF THEN o DO while.

espero te sirva sino postea tu programa y veremos que podemos hacer.
03/11/2010 #6

Avatar de vazko

aqui esta el programa, esta en ASM y en HEX.
los numeros se muestran en diodos.
pondre ext .rar para poder que me deje subir el archivo.
esta simulado en proteus.

Nota:
La extension de el archivo que dice "conteo proteus.rar" la extension real es .DSN
La extension de el archivo que dice "conteo_ASM.rar" la extension real es .ASM
La extension de el archivo que dice "conteo_HEX.rar" la extension real es .HEX

lo que quiero es que muestre el numero y espere minimo 1 seg para que pase a el siguiente led.
Archivos Adjuntos
Tipo de Archivo: rar conteo proteus.rar (76,0 KB (Kilobytes), 19 visitas)
Tipo de Archivo: rar conteo_ASM.rar (1,4 KB (Kilobytes), 10 visitas)
Tipo de Archivo: rar conteo_Hex.rar (325 Bytes, 6 visitas)
03/11/2010 #7

Avatar de fdesergio

Bueno una forma sencilla cambiando el xtal, si los retardos estan hechos en base a software, es lo mas facil, pero hay que probar si no se afecta algo mas, lo digo porque no especificas mas detalles del circuito, chauuuuuuuuu
03/11/2010 #8

Avatar de vazko

ya esta todo, adjunte el circuito simulado para que miren la funcion. fuera de eso esta el ASM y el HEX, donde se puede cambiar los valores de retardo... supongo...
03/11/2010 #9

Avatar de snakewather

vazko dijo: Ver Mensaje
aqui esta el programa, esta en ASM y en HEX.
los numeros se muestran en diodos.
pondre ext .rar para poder que me deje subir el archivo.
esta simulado en proteus.

Nota:
La extension de el archivo que dice "conteo proteus.rar" la extension real es .DSN
La extension de el archivo que dice "conteo_ASM.rar" la extension real es .ASM
La extension de el archivo que dice "conteo_HEX.rar" la extension real es .HEX

lo que quiero es que muestre el numero y espere minimo 1 seg para que pase a el siguiente led.



SEGUN TU EL ASM es este verdad:


; PicBasic Pro Compiler 2.42, (c) 1998, 2002 microEngineering Labs, Inc. All Rights Reserved.
PM_USED EQU 1

INCLUDE "16F84A.INC"

RAM_START EQU 0000Ch
RAM_END EQU 0004Fh
RAM_BANKS EQU 00001h
BANK0_START EQU 0000Ch
BANK0_END EQU 0004Fh
EEPROM_START EQU 02100h
EEPROM_END EQU 0213Fh

R0 EQU RAM_START + 000h
R1 EQU RAM_START + 002h
R2 EQU RAM_START + 004h
R3 EQU RAM_START + 006h
R4 EQU RAM_START + 008h
R5 EQU RAM_START + 00Ah
R6 EQU RAM_START + 00Ch
R7 EQU RAM_START + 00Eh
R8 EQU RAM_START + 010h
FLAGS EQU RAM_START + 012h
GOP EQU RAM_START + 013h
RM1 EQU RAM_START + 014h
RM2 EQU RAM_START + 015h
RR1 EQU RAM_START + 016h
RR2 EQU RAM_START + 017h
_X EQU RAM_START + 018h
_PORTL EQU PORTB
_PORTH EQU PORTA
_TRISL EQU TRISB
_TRISH EQU TRISA
INCLUDE "LAB001D.MAC"
INCLUDE "PBPPIC14.LIB"

MOVE?CB 000h, TRISB

LABEL?L _Inicio
MOVE?CB 000h, _X
LABEL?L L00001
CMPGT?BCL _X, 0FFh, L00002
MOVE?BB _X, PORTB
PAUSE?C 0C8h
NEXT?BCL _X, 001h, L00001
LABEL?L L00002
GOTO?L _Inicio

END

Este ASM tu no lo hiciste te lo compilo el Pic Basic PRO yo me refiero a que muestres tu programa que hiciste en Pic basic Pro el que tiene extencion .PBP ahi es donde se puede modificar para despues compilar bien.
SINO quieres ponerlo checa aqui: http://www.forosdeelectronica.com/f2...sic-pro-20658/
04/11/2010 #10

Avatar de vazko

en realidad yo no hice el ASM lo hizo el MPLAB, al igual que el HEX, tambien tengo el PBP,
y yo compilo con WinPic800, no uso el PicBasicPro, aunque si ustedes me sugieren que use ese compilador excelente, me dan los pasos basicos para programar ahi .
suelo compilar con HEX en el WinPiC800.
adjunto el archivo PBP
Archivos Adjuntos
Tipo de Archivo: rar Lab001d.rar (285 Bytes, 10 visitas)
04/11/2010 #11

Avatar de el-rey-julien

suelo compilar con HEX en el WinPiC800.
el winpic800 compila?????????????
el mio solo graba pic¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
04/11/2010 #12

Avatar de vazko

Hola snakewather,
estuve mirando el PicBasicPro y cuando voy a programar me saca un error que dice: "please reset the target microcontroller in order to access to bootloader process" , con otro compilador el "WinPic800" me lee el COM1 normalmente, y este PBP no me lo reconoce.
que puedo hacer???
gracias por tu colaboracion :-)
04/11/2010 #13

Avatar de vazko

el-rey-julien dijo: Ver Mensaje
el winpic800 compila?????????????
el mio solo graba pic¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
con que compilas ????

el-rey-julien dijo: Ver Mensaje
el winpic800 compila?????????????
el mio solo graba pic¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
con que compilas ????
04/11/2010 #14

Avatar de el-rey-julien

con mplab en window y con piklab en linux,
grabo en window con winpic800 y grabo en linux con pikdeb

grabar=quemar= cargar el programa ya compilado al micro
04/11/2010 #15

Avatar de snakewather

vazko dijo: Ver Mensaje
con que compilas ????



con que compilas ????
Mira hay que aclarar algunos detalles el PBP es un compilador que permite programar en lenguaje basic, el MPLAB tambien es un compilador y te permite programar en ASM, y el CCS tambien es un compilador que Te permite programar en C.

Ahora cuando tu escribes tu programa en cualquiera de estos a finalizar le das compilar para que te genere el .HEX .COD y otros archivos que son de errores posibles en tu progama bueno de todos el que mas nos importa es el .HEX ese es archivo en lenguaje maquina que se le metera al PIC que utilices.

Como se hace esto bueno Con el IC-PROG o el WinPIC800 que son programas para cargar=quemar=grabar el .HEX al PIC no son compiladores.

Bueno por otra parte en tu Progama te hacia falta declarar el tipo de oscilador a utilizar asi como los Puertos como IN/OUT ademas de modificar el retardo.

Ya esta Corrigido te lo ADJUNTO checalo ya lo probe simulado y fisicamente si no te funciona entonces es algo en tu circuito fisico.

Checa el Link del tutorial ese te servira mucho para mejorar tus programas.
Archivos Adjuntos
Tipo de Archivo: rar Lab001d_RELOAD.rar (9,0 KB (Kilobytes), 11 visitas)
05/11/2010 #16

Avatar de vazko

Muchas Gracias SnakeWather, me sirvio muchisimo!!

Snake tento una duda acerca de donde se configura el oscilador, yo lo coloco en XT ya que utilizo cristal, pero donde dice WDT - PWRT - CP ; que es eso y para que??? eso tiene que ver algo en el funcionamiento tambien??
05/11/2010 #17

Avatar de snakewather

vazko dijo: Ver Mensaje
Muchas Gracias SnakeWather, me sirvio muchisimo!!

Snake tento una duda acerca de donde se configura el oscilador, yo lo coloco en XT ya que utilizo cristal, pero donde dice WDT - PWRT - CP ; que es eso y para que??? eso tiene que ver algo en el funcionamiento tambien??
Esto lo haces en Winpic800 en la pestaña de config verdad bueno asi le hago yo tambien, explico al palomear uno dos tres etc casillas lo que estamos haciendo es establecer la palabra de configuracion del PIC, todos los pics tienen diferentes casillas a configurar.

ejemplo:

CP = si la palomeo equivale a poner 1 bit en CP de la palabra de configuracion y esto quiere decir que voy habilitar proteccion de codigo CP osea que si otros quieren leer tu PIC no van a leer nada jejejejej.

Y asi pasa con los demas BITS casillas, Existe otra forma de establecer la Palabra de configuracion y es escribiendola directamente al inicio de tu Programa en PBP,ASM o C.
Aunque a mi me gusta hacerlo directo en el winpic800 jejejeje.

Te adjunto un archivo para que te des una idea lo hizo un colega de aqui mismo trata de la palabra de configuracion en los 16F87xx pero igual te sirve CP0 y CP1 son como el equivalente a CP en el 16F84A.

Date una vuelta por aqui te serviran los archivos aunque son para el 16F877 las bases son lo mismo leelos bien y en menos de 5 dias te pones al tiro jajajaj.
Curso tutorial del PIC16F877
Archivos Adjuntos
Tipo de Archivo: rar configuration_word_16F87xx.rar (122,4 KB (Kilobytes), 10 visitas)
05/11/2010 #18

Avatar de vazko

jejejeje ta bueno eso de el CP para seguridad jejeje
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.