Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Tokes

#81
Hola a todos:

Los molestaré con una pequeña pregunta:

Tengo un formulario. Dentro del formulario tengo un frame. Dentro del frame tengo unos cuantos shapes y unos cuantos textbox.

Ya sé como crear un objeto a partir de un arreglo. Ahora me pregunto:

¿Cómo le hago para crear objetos dentro de otro?

Si creo un frame, un shape y un textbox, éstos se crean por separado. ¿Cómo puedo crear un shape y un textbox dentro de un frame recién creado?

       Muchas gracias por su atención. Espero sus respuestas.
#82
Electrónica / Re: Tablas indexado de 8 bits.
28 Agosto 2010, 21:44 PM
Mira, aquí te dejo un código que utiliza una macro. En ese códgo sólo se toman en cuenta los valores de entrada que son válidos; los valores de entrada que no sean válidos conducirán a una alarma.

Código (asm) [Seleccionar]
; Decodificador
; Autor: TKS

LIST P=16F84A
INCLUDE <P16F84A.INC>
__CONFIG    _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC

CONSTANT E1=B'000', E2=B'001', E3=B'011', E4=B'111'
CONSTANT S1=B'01100001', S2=B'01100010', S3=B'00100100', S4=B'00001000'
CONSTANT ENTRADAS_VALIDAS=4

LEE_ACTIVA MACRO ENTRADA, SALIDA
LOCAL NO_ES
MOVF PORTA,W
ANDLW B'00000111'
XORLW ENTRADA
BTFSS STATUS,Z
GOTO NO_ES
MOVLW SALIDA
MOVWF PORTB
GOTO CICLO

NO_ES
ENDM

ORG 0
CLRF PORTB
BSF STATUS,RP0
MOVLW 0xFF
MOVWF TRISA
CLRF TRISB
BCF STATUS,RP0

CICLO
VARIABLE I
I=0
WHILE I<ENTRADAS_VALIDAS
LEE_ACTIVA E#V(I+1), S#V(I+1)
I+=1
ENDW
MOVLW B'00010000'
MOVWF PORTB
GOTO CICLO

END


Los valores de entrada válidos se declaran:

CONSTANT   E1=B'000', E2=...

Los valores de salida válidos se declaran:

CONSTANT   S1=B'01100001', S2=...

La cantidad de combinaciones de entrada válidas se declara:

CONSTANT   ENTRADAS_VALIDAS=4


La macro llamada LEE_ACTIVA contiene un código que lee el valor del PORTA y lo compara con un valor válido de entrada, especificado en el argumento ENTRADA. Si el PORTA es igual al valor ENTRADA, se envía al PORTB el correspondiente valor de salida, especificado en el argumento SALIDA, y posteriormente, regresa a la etiquet CICLO.

El bucle WHILE lo que hace es generar tantas veces el código de la macro como sea necesario, en este caso, 4 veces, ya que sólo hay 4 valores de entrada válidos.

Cada vez que se ejcute la macro, si el valor de PORTA coincide con el valor de entrada especificado, cargará un valor en PORTB y regresará a CICLO. Si el valor de PORTA no coincide con el valor de entrada especificado, brincará más adelante.

Por lo tanto, si el código llega a la parte:

           MOVLW      B'00010000'
           MOVWF      PORTB
           GOTO        CICLO

quiere decir que el PORTA no coincide con ningún valor de entrada válido, por eso activa la alarma.

Ahora, para el caso de las 8 entradas y las 256 combinaciones, supongamos que sólo 100 combinaciones són válidas. En ese caso sólo se declaran las 100 combinaciones de entrada y las 100 combinaciones de salida al principio del programa, además de declarar:

CONSTANT       ENTRADAS_VALIDAS=d'100'

Lo demás se queda igual. Eso es todo por el momento. Saludos.
#83
Electrónica / Re: Tablas indexado de 8 bits.
28 Agosto 2010, 19:34 PM
Hola, Meta:

Pues dependiendo de lo que se tenga que hacer será la implementación de la lógica. Si todas las 256 combinaciones son significativas, entonces habrá que implementar la tabla completa. Pero si no todas son significativas (condiciones no importa) entonces se puede hacer testeando bits individualmente.

Puedes explicar, si quieres, lo que deseas hacer con las 8 entradas, y tal vez se te pueda ayudar más.

                Saludos.
#84
andres_5:

A mí esa conversión me parece muy extraña. Yo le voy más a ésta:



      Eso es todo. Saludos.

P.D.1: Checa este enlace:

        http://www.planetronic.es/cables-adaptadores-serie-cable-serie-db9-db25-c-407_473_480.html

P.D.2: Asegúrate que tu puerto de 25 pines realmente sea serie.
#85
Aquí está un enlace para descargar Proteus 7.1, simulador de circuitos electrónicos:

http://rapidshare.com/files/415535086/Proteus_7.1.rar
#86
andres_5:

Por si no viste los links del comentario anterior:

Aquí un enlace a Microchip.com para descargar MPLAB IDE:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002

Te dejo un link de taringa que trae buenas descargas:

http://www.taringa.net/posts/downloads/833909/Ccs-PCWH-Compiler---Programar-PICs-en-C.html

Allí puedes descargar:

- PCWH - Es un compilador en lenguaje C para PICs. Aquí se editan los programas para PIC en lenguaje C y, para simularlos, se establece una conexión con MPLAB IDE a través del CCS ADDON.

- CCS ADDON - Este software establece una conexión entre MPLAB IDE y PCWH.

         Nos vemos.
#87
Para el buen andres_5:

Lamentablemente, las herramientas que yo conozco para programar microcontroladores trabajan en SO Windows.

Aquí un enlace a Microchip.com para descargar MPLAB IDE:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002

Te dejo un link de taringa que trae buenas descargas:

http://www.taringa.net/posts/downloads/833909/Ccs-PCWH-Compiler---Programar-PICs-en-C.html

Allí puedes descargar:

- PCWH - Es un compilador en lenguaje C para PICs. Aquí se editan los programas para PIC en lenguaje C y, para simularlos, se establece una conexión con MPLAB IDE a través del CCS ADDON.

- CCS ADDON - Este software establece una conexión entre MPLAB IDE y PCWH.

Con respecto a tu petición del grabador (la construcción) déjame ver si puedo conseguirte algo.

       Espero que te sirva. Nos vemos.
#88
Hola nuevamente:

CitarOSC1/CLK IN y OSC2/CLKOUT Estos pines son donde conectaremos el reloj externo, para que el microcontrolador disponga de algún tipo de temporización.

Bueno, debido a que Sr.Blanco mencionó algo sobre las terminales OSC1 y OSC2 daré un breve resumen sobre los osciladores más usados en los microcontroladores.

Tema: Osciladores típicos de los microcontroladores.

Estos son:

-   Oscilador RC. Este oscilador está compuesto por una red RC simple. Su ventaja es que es económico. Su desventaja es que no tiene mucha precisión en su temporizado.


Figura 2. Ejemplo de oscilador RC.

-   Oscilador basado en cristal de cuarzo o en resonador cerámico. Son muy estables y pueden ser de baja potencia (32 KHz) o de alta velocidad (4 MHz, 8 MHz, 12 MHz, etc.).


Figura 3. Conexión de un cristal de cuarzo a un microcontrolador.

-   Reloj externo. De este modo, la señal de sincronía del microcontrolador es brindada por un dispositivo externo (por ejemplo, un ne555).


Figura 4. Ejemplo de reloj externo.

Cabe aclarar que algunos microcontroladores tienen su oscilador interno integrado, además de la posibilidad de conectarles un oscilador externo.

Para el caso de los PIC, los osciladores a cristal de cuarzo y los resonadores cerámicos adquieren un determinado nombre según la frecuencia a la que se trabaje, de la siguiente manera:

Oscilador LP --> 32 KHz – 200 kHz
Oscilador XT --> 100 KHz – 4 MHz
Oscilador HS --> 4 MHz – 20 MHz

Y algo que también es muy importante aclarar es que la frecuencia de oscilación no es la misma que la frecuencia de las instrucciones. Para los PIC de la gama base y la gama media, y algunos de la gama alta, cada instrucción se ejecuta en 4 ciclos de reloj. Es decir, la frecuencia de las instrucciones es igual a ¼ de la frecuencia del oscilador. Así, si utilizamos un cristal de 4 MHz, la frecuencia de las instrucciones será igual a 1 MHz, por lo cual el ciclo de máquina es igual a 1 / 1 MHz = 1 microsegundo. Cada instrucción se ejecuta en 1 microsegundo.

Para lograr que el dispositivo a grabar trabaje con un determinado oscilador, hay que especificar dicho oscilador en la palabra de configuración. En lenguaje ensamblador esto se hace así:

   __CONFIG  _XT

Noten que __CONFIG lleva dos guiones bajos consecutivos. Esta directiva le indica al software ensamblador que debe grabarse una palabra en la zona de configuración del dispositivo. El argumento _XT indica que el microcontrolador va a trabajar con un oscilador de tipo XT (4 MHz). De manera similar para los otros tipos de osciladores.

En el compilador PCWH, de la compañía CCS, esto se especifica así:

   #fuses    XT

La directiva #fuses es equivalente a __config del ensamblador. En este caso también se indica un oscilador XT (noten que XT ya no lleva guión bajo).

Por el momento es todo. Saludos.
#89
Electrónica / Re: Hacer algo con la PS2 vieja.
27 Agosto 2010, 20:07 PM
Estimado Meta:

No sé las demás personas del foro, pero en lo personal no tengo conocimientos sobre las PS2. Por mi parte estaré buscando algún diagrama que pueda serte de utilidad y, si no lo encuentro, lo sentiré muchísimo. Tal vez en el foro de "Hardware" te puedan ayudar más.

Cambiando de tema, te agradezco mucho por el link que dejaste hacia los tutoriales.

         Saludos y que tengas suerte.
#90
Ahora sí Sr Blanco:

He probado su primer programa, "Encender un led", y sí funciona, pero lo mejor es que cuando un programa realiza un determinado proceso y después ya no tiene nada más que hacer (como es el caso de tu primer programa) entre en un ciclo infinito o entre en modo de bajo consumo.

Aquí le dejo su primer programa, pero con el final modificado:

Código (asm) [Seleccionar]
;ejercico 1
;encender un led en rb0
;pic 16f84
;oscilador 4MHz (Xtal)
;TTP Montaje
;10/09/2007
;Autor: Sr.blanco

status equ 03
porta equ 05
portb equ 06
trisa equ 85
trisb equ 86

list p= pic 16f84

reset org 0 ;saltar vector de ingreso
goto inicio

org 5
inicio bsf status,5 ;pasar a banco de memoria 1
movlw b'00000' ;cargar en W palabra de configuracion trisa
movwf trisa ;carga el trisa con el contenido de W.
movlw b'00000000' ;cargar en W palabra de configuracion trisb
movwf trisb ;cargar en trisb el contenido de W.
bcf status,5 ;pasar a banco de memoria 0.

limpio clrf porta ;limpio puerto a
clrf portb ;limpio puerto b

comenzar                 movlw       b'00000001'
movwf portb
duerme sleep ; Entra en modo de bajo consumo.
goto          duerme

end


       Gracias por tu aporte. Estaré echándole un vistazo a tus otros proramas.
       ¡¡Buen día!!