• Sábado 27 de Abril de 2024, 04:53

Mostrar Mensajes

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


Temas - Meta

Páginas: 1 2 [3] 4
51
C# / MonoDevelop C#
« en: Martes 14 de Octubre de 2008, 15:19 »
Hola:

Tengo el openSUSE 11.0 y utilizo el MonoDevelop que tiene en el DVD. En el Visual C# Express 2008 de Windows, creo un nuevo proyecto y elijo "Aplicación de Windows Form". En Linux veo que tiene varias cosas y no se cual es su equivalente.

En la barra de herramientas, arriba, pulso Archivo, Nueva solución..., sale un ventana y en ella elijo, C#, entre ellas hay 4 cosas:

- Proyecto de consola
- Proyecto vacío
- Proyecto Gtk# 2.0
- Librería


Aquí sólo se que debo utilizar uno de estos dos:

- Proyecto vacío
- Proyecto Gtk# 2.0


¿Cuál de los dos es el equivalente de Visual C# Express para empezar hacer un proyecto?

Un cordial saludos.

52
Microcontroladores / MPLAB muy antiguo que no encuentro.
« en: Miércoles 8 de Octubre de 2008, 17:24 »
Hola:

Tengo un portaltil en el cual ni se cual  es (por ahora) que me regalaron. Tiene puerto paraleo y 2 puerto serie. Arranca según me dijeron el MS-DOS. Se que es de la época cuando casi nadie sabía que es eso desde entonces. (Algunos ni saben lo que es hoy en día).

Estoy buscando en estos momentos un MPLAB de MS-DOS que fue el primero que se creó. Cuiadado una cosa, hay varias versiones, la primera que vi sino recuerdo mal es del 1999, vi otro por ahí del 2001 y el máximo que he visto la versión más actual fue la 2003. Me gustaría encontrar la última posible.

¿Alguien posee ese baúl de los recuerdos?

Un cordial saludos.

53
HTML / Introducir manual pdf como si fuera youtube
« en: Martes 7 de Octubre de 2008, 11:59 »
Hola:

Quiero poner estos manuales en pdf en el foro como si fuera vídeos  de yotube, pero no logro hacerlo.

http://www.slideshare.net/Metaconta/min ... sentation/

http://www.slideshare.net/Metaconta/win ... on-592892/

Aunque al  lado te pone estos enlaces, pero no me funciona.
Código: Text
  1.  
  2. <div style="width:425px;text-align:left" id="__ss_592892"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/Metaconta/winpic800-presentation-592892?type=powerpoint" title="Winpic800">Winpic800</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=winpic800-1221131109358137-9&stripped_title=winpic800-presentation-592892" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=winpic800-1221131109358137-9&stripped_title=winpic800-presentation-592892" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View SlideShare <a style="text-decoration:underline;" href="http://www.slideshare.net/Metaconta/winpic800-presentation-592892?type=powerpoint" title="View Winpic800 on SlideShare">presentation</a> or <a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint">Upload</a> your own. (tags: <a style="text-decoration:underline;" href="http://slideshare.net/tag/manual">manual</a> <a style="text-decoration:underline;" href="http://slideshare.net/tag/winpic800">winpic800</a>)</div></div>
  3.  
  4.  
Hay otro:
Código: Text
  1.  
  2. [slideshare id=592892&doc=winpic800-1221131109358137-9&w=425]
  3.  
  4.  

Un ejemplo claro de cómo lo quiero es que sea algo similar al de esta web aquí.
Un cordial saludos.

54
Microcontroladores / Puerto serie RS232 sustituirlo por USB
« en: Martes 7 de Octubre de 2008, 11:25 »
Hola:

Quiero pasar esto del vídeo del puerto serie RS232 a USB, es decir, que en vez de utilizar el puerto serie RS232 como hice en este vídeo mostrado abajo, lo mismo pero en USB. Dicen que el PIC que tiene ya USB incorporado es el 18F2550 o otros. Da igual que sea el USB 1.1 o el 2.0, pero que funcione.

No entiendo el protocolo de comunicación del USB y necesito información.

1)
¿El USB del 18Fxxxx ya viene programado o preparado para recibir y enviar datos?

2) ¿Desde que conecte el PIC18Fxxxx mediante USB al PC, ya lo entiende de entrada o hay que progarmarlo?


[youtube]http://es.youtube.com/watch?v=niWAbQ-HVnY[/youtube]

¿Qué me hace falta?

Un cordial saludos.

PD: La verdad que lo del tema del USB es muy complicado.

EDIT:
Enlaces que se va recopilando por ustedes. Muchas gracias.
http://www.telefonica.net/web2/hidlcd/
http://picmania.garcia-cuervo.com/
http://picmania.garcia-cuervo.com/USB_0 ... denado.php
http://ar.geocities.com/asherar/DSD/des ... /index.htm

55
PHP / Cuenta descarga
« en: Sábado 27 de Septiembre de 2008, 01:37 »
Hola:

En una web html sensillo, cambiando la extensión a .php. Quiero incluir esta frase: Descargar Manual WinPic800 PDF XPS.

En la palabra PDF que tenga un enlace a un archivo llamado Winpic800.pdf guardado en un directorio llamado manuales. Con el formato XPS lo mismo. La extensiones también podrían ser .zip si me interesa que se lo descarguen comprimido.

Subo estos archivos al servidor de Lycos y funciona. Lo que no se hacer es un cuenta click de descarga con PHP y MySQL.

Bueno, en un lado del texto "Descargar Manual WinPic800 PDF XPS" debe aparecer el número de descargas tanto en el enlace de PDF como en XPS ya que los datos descargados o que en cada click se guarda en la base de datos. Lo mismo que cuando visitamos un foro, al hacer click en un tema, se cuenta el números de visitas.

Me bajé el manual de php aquí, pero no se nada ni buscar en él.

Eso si, incluye el phpmyadmin para crear tablas  de MySQL que es donde se va a guardar los datos descargados.

Un cordial saludos.

EDIT:
En este código quiero hacer un contador de descarga. Que al descargar el archivo cuente esa descarga en MySQL y se muestre las cantidad de descargas al lado donde pone PDF.


Código: HTML
  1.  
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3. <title>Documento sin t&iacute;tulo</title>
  4. </head>
  5.  
  6. Descargar Winpic800 PDF XPS
  7. </body>
  8. </html>
  9.  

56
C# / Leer los botones con teclado
« en: Lunes 15 de Septiembre de 2008, 08:16 »
Hola:

He hecho un ejemplo colocando dos botones normales y un label1. Al pulsar el botón suelta un mensaje al label1:

Has pulsado la A.

Si pulso el botón con el ratón funciona bien como dije arriba, ahora al pulsar el teclado la letra "A" o la letra "B" no pasa nada.

La pregunta es. ¿Existe la posibiliodad de esa opción?



 

Code Snippetusing System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace Leer_boton

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

label1.Text = "Has pulsado la A";

}

private void button2_Click(object sender, EventArgs e)

{

label1.Text = "Has pulsado la B";

}

}

}

 


 

Un cordial saludos.




--------------------------------------------------------------------------------
La verdad no mancha los labios de quien la dice, sino la conciencia de quien la oculta.

57
C# / Leer un carácter hexadecimal
« en: Sábado 13 de Septiembre de 2008, 01:44 »
Hola:

Con este código puedo enviar un caracter en hexadecimal por el puerto serie, me funciona.

       
Código: Text
  1.      Code Snippetbyte[] miBuffer = new byte[1];
  2.  
  3.             miBuffer[0] = 0x74; // Letra "t" del ASCII.
  4.  
  5.             this.serialPort1.Write(miBuffer, 0, miBuffer.Length);
  6.  

Al recibir un caracter hexadecimal que ejecute una instrucción del C#. Por ejemplo:

Un label1 quiero que se muestre un mensaje desde el _Visual C# "Activado" o "Desactivado" depende de losd atos a recibir en modo hexadecimal.

Si en una variable hay al macenado un valor por ejemplo el 0x16. Llega el dato 0x74, como no son iguales aparece un mensaje del label1 en "Desactivado". Si son iguales 0x74 == 0x74 entonces se activa el mensaje "Activado".

Espero que se entienda lo que quiero decir. Ejemplo abajo pero gobertado por un button1. En realidad quiero que sea mediante el db9 RS232.

 


Código: Text
  1.  
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Windows.Forms;
  10. using System.IO.Ports;
  11.  
  12. namespace Leer_PIC
  13. {
  14.     public partial class Form1 : Form
  15.     {
  16.         public Form1()
  17.         {
  18.             InitializeComponent();
  19.         }
  20.  
  21.         private void button1_Click(object sender, EventArgs e)
  22.         {
  23.             int Entrada_de_datos = 0x16;
  24.             if (Entrada_de_datos == 0x74) // 0x74 es una 't' en ASCII.
  25.             {
  26.                 label1.Text = "Activado";
  27.             }
  28.             else
  29.             {
  30.                 label1.Text = "Desactivado";
  31.             }
  32.         }
  33.     }
  34. }
  35.  
  36.  
  37.  

Saludos.

58
C# / Manejar puerto serie
« en: Viernes 12 de Septiembre de 2008, 17:46 »
Hola:

He probado el HyperTerminal de Windows y la entrada de datos funciona muy bien. Me dio por probarlo con Visual C# .net Express 2008. En modo consola funciona muy bien y aquí hay un ejemplo.
http://msdn.microsoft.com/es-es/library/system.io.ports.serialport.aspx

Hice un proyecto pequeño en modo Visual y no me leen bien la entrada del puerto serie con el componente textBox1, el ejemplo del modo consola si funciona.

PC-A PC-B
2 - 3 (Rx de A con Tx del B)
3 - 2 (Rx de B con Tx del A)
5 - 5 (Comun o GND)

En resumen, quiero recibir datos como lo hace el HyperTerminal del Windows Xp. Por lo que he hecho ahora no es nada.

El código fuente del programa no he hecho nada y espero que me puedan ayudar. Sólo en la parte de recibir datos.



Código: Text
  1.  
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Windows.Forms;
  10. using System.IO.Ports;     // No se olviden de poner using System.IO.Ports;
  11.  
  12. namespace Chat
  13. {
  14.     public partial class Form1 : Form
  15.     {
  16.         public Form1()
  17.         {
  18.             InitializeComponent();
  19.         }
  20.     }
  21. }
  22.  
  23.  

Un cordial saludos.

59
C# / Recibir cadena de carácter.
« en: Martes 9 de Septiembre de 2008, 02:00 »
Hola:

Estoy trabajando con el objeto serialPort1 utilizando COM1, paridad NONE, 9600 baudios, bits de datos 8 y bit de stop 2.

Utilizando un textBox para recibir datos. ¿Cómo recibo los datos que me envían en un puerto serie RS232 desde el otro ordenador o PC?

PC-A   PC-B
   2    -    3    (Rx de A con Tx del B)
   3    -    2    (Rx de B con Tx del A)
   5    -    5    (Comun o GND)

Uso el Visual C# 2008 Express

Saludos

60
C# / Tiempo de prueba de una aplicación
« en: Lunes 8 de Septiembre de 2008, 23:04 »
Hola:

Hola. trabajando con el Visual C# 2008 Express, nada más crear un proyecto nuevo. Me gustaría saber si hay una manera de que el programa deje de funcionar desde que llegue la fecha de 01-Enero-2009. Que salga un mensaje que diga: 20 €uros.

Un cordial saludos.

61
C# / Enviar datos al puerto db9
« en: Jueves 4 de Septiembre de 2008, 23:08 »
Hola:

Estoy intentado enviar datos por el puerto serie con el Visual C# 2008 Express con la configuración puerto COM1.
6400-N-8-1.

Quiero lograr que en cada botón, envíe un carácter al puerto serie db9 o RS232, por ejemplo:

Abrir:
Puerta A: Que envíe este caracter apa
Puerta B: apb
.
.
Puerta E: ape

Lo mismo para cerrar puerta.
Cerrar:
Puerta A: cpa
Puerta B: cpb
.
.
Puerta E:cpe

Espero que se entienda. Al menos quiero probar con el priemr botón Puerta A para aprender como se hace.



Un cordial saludos.

62
C# / No me ejecuta nada en Visual c# 2008
« en: Jueves 4 de Septiembre de 2008, 00:33 »
Hola:



No se que pasa, pero cualquier poryecto que tengo guardado o al crear alguno al ejecutarlo me sale este error.



Error 1 No se puede escribir en el archivo de resultados 'C:Documents and SettingsHunterMis documentosVisual Studio Codename OrcasProjectsX10X10objDebugX10.exe' -- 'Could not execute CVTRES.EXE.' X10


Lo reinstalé de nuevo y el SP1 ya lo tenía instalado desde hace un tiempo. Reinicio y nada de nada.

Este mensaje busqué en la ayuda y pone esto abajo que para mi ni significa nada.

Mensaje de error
No se puede escribir en el archivo de resultados 'archivo' — 'causa'
Could not write to output file 'file' ù 'reason'

El compilador no pudo escribir en un archivo de resultados. Compruebe la ruta de acceso al archivo para asegurarse de que existe. Si ya hay un archivo generado anteriormente en esa ubicación, asegúrese de que es modificable y de que ningún proceso tiene bloqueado el archivo actualmente. Por ejemplo, asegúrese de que su archivo ejecutable no está cargado en memoria cuando intente generarlo.


Al ejecutarlo, me pregunta que si ejecuto lo anterior, le doy que si y me sale este mensaje:



¿Hay alguna solución?

Un cordial saludos.

63
Microcontroladores / Manual básico WinPic800 en PDF.
« en: Miércoles 3 de Septiembre de 2008, 03:35 »
Hola:

Presento un manual básico sobre el WinPic800 en PDF para personas nóveles en este tema que sea capaz realizar sus primeras pruebas paso por paso con el grabador TE20x o similares.

Descargar

Un cordial saludos.

64
GNU/Linux / Manual del minicom de Linux con fotos.
« en: Lunes 18 de Agosto de 2008, 00:45 »
Hola:

He hecho un pequeño tutorial sobre la equivalencia del HyperTerminal del Windows, llamado minicom para Linux. Con esto al menos pueden usar los proyectos para los microcontroladores sobre el puerto serie DB9, RS232. Descarga en PDF.

Espero que les valga para aquellos que nunca lo han visto en versión Linux.

Descarga aquí.
http://usuarios.lycos.es/reparaplaystat ... inicom.pdf

Un cordial saludos.

65
Microcontroladores / Controlar 4 salidas RCA hacia un TV
« en: Martes 5 de Agosto de 2008, 16:49 »
Hola:

Tengo un TV con una única entrada RCA o euroconector, mi intención es lograr 4 aparatos diferentes en una única entrada al TV. A la vez en sentido de crear un dispositivo con 4 entradas y una salida. El dispositivo selecciona con un botón 1 entrada de las 4 que hay y se conecta a su salida y esa salida se conecta al TV. Al conmutar las entradas no debe hacer corto circuito entre las entradas. En las entradas se conecta se conecta 2 Vídeos, 1 por canal, una vídeo cámara y una PlayStation 2.

He pensado utilizar Relé controlado con un pic, pero se oye y me gustaría saber otro método. AL programación del PIC por ahora me encargo yo. PIC16F84A-04, por ahopra ese, si me recomienda más frecuencia alta me lo dicen.

¿Opinión?

Un cordial saludos.

66
Microcontroladores / Controlar el TIMER_0 del PIC 16F84A
« en: Jueves 31 de Julio de 2008, 02:32 »
Hola:

En la imagen que ven abajo, hay un microinterruptor, ignora el RB4, sólo voy a utilizar los RB5, RB6 y RB7. Al poenrlo a estado 1 o activado del RB5, me gustaría que hubiera un temporizador de 5 minutos, el de RB6 = 30m y el RB7 = 1 hora.

Lo que no se que pasaría si activara todos a 1 todos los RB5 al 7. ¿Se sumarían los tiempos 5, 30 y 60 minutos con el total de 1:35?

Cuál es el código necesario.

Al menos la configuración de los puertos se los pongo aquí.

Código: Text
  1.  
  2.  
  3. LIST        P=16F84A
  4.     INCLUDE     <P16F84A.INC>
  5.     __CONFIG    _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
  6.  
  7. ; CÓDIGOS
  8.  
  9.     ORG     0
  10. Inicio
  11.     bsf     STATUS,RP0              ; Accede al Banco 1.
  12.     clrf    PORTA                   ; Puerto A como salidas.
  13.     movlw   b'11111111'             ; Las 8 líneas del puerto B se configura como entradas.
  14.     movwf   PORTB
  15.     bcf     STATUS,RP0              ; Accede al Banco 0.
  16.    
  17.  
  18.  



Un cordial saludos.

67
C# / Comparar números.
« en: Martes 15 de Julio de 2008, 08:33 »
Hola:

En un Form con el Visual C# 2008 tengo 3 textBox y un button. Quiero hacer matemáticas o sumas con comas (,) incluidas.

En el primer textbox  si el número es menor que el segundo textBox, que salga una mensaje en pantalla que diga un mensaje como:

El primer número es menos que el segundo.

O lo que sea que avise al personal que no debes introducir un nº menos en el primer textBox al pulsar el Button.

¿Cómo es el código?

68
Microcontroladores / Desamblar código *.hex
« en: Martes 15 de Julio de 2008, 05:32 »
Hola:

Aquí tengo un código que hice muy pequeño.
He intentado desamblar alguno pero grande y no soy capaz de saber que PIC usa, ni configuración, sólo las instrucciones.

Los dejo aquí el código que hice muy pequeño a ver si alguien sabe desamblarlo y hacerlo funcionar en el MPLAB, lo he probado con v8.14. Al menos saber que hace este programa que hice.
Código: Text
  1.  
  2. :020000040000FA
  3. :1000000083168601FF308500831286018501051C59
  4. :0E0010000C28061386170728061786130728E4
  5. :02400E00F13F80
  6. :00000001FF
  7.  
  8.  

Saludos.

69
Microcontroladores / Mejorar el Mod8 para PS2
« en: Domingo 13 de Julio de 2008, 02:34 »
Hola.

Me gustaría contactar con el que documentó este ASM del PIC12C508 si tiene un diagrama de flujo para entenderlo mejor. Ya que utiliza retardos y para verlo en el MPLAB es un tostón. Su e-mail abajo no funciona.


Código: Text
  1. ;+-------------------------------------------------------------------------+
  2. ;¦ MYC.ASM ¦ DESENSAMBLADO DE 8MODCHIP.HEX PARA PSX2 POR MANOLO Y COMPAÑIA ¦
  3. ;+-------------------------------------------------------------------------+
  4.  
  5. ;  NOTA:
  6. ;* Para visualizar este fichero correctamente, usa el edit del dos
  7. ;  o el bloc de notas del windows con el tipo de fuente 'terminal'
  8. ;* El objeto de realizar el desensamblado y comentado del código fuente,
  9. ;  del 8modchip.hex es con el fin de que todos conozcamos como funciona
  10. ;  y podamos perfeccionarlo y modificarlo entre todos a nuestro antojo.
  11. ;* Espero que al publicarlo en el foro, las mentes pensantes colaboren.
  12. ;* Desconozco quien es el autor del hex original pero le felicito por su
  13. ;  programa.
  14. ;* Según aparezcan nuevas versiones del modchip se irán desensamblando
  15. ;  y publicando.
  16. ;* Por favor poner vuestras experiencias en el foro para que lo vea todo
  17. ;  el mundo.
  18. ;* los tiempos de las rutinas son muy críticos.
  19. ;* El codigo está más ordenado que en el 8modchip.hex pero es el mismo
  20. ;  únicamete se han suprimido los caracteres de la tabla que no se usan
  21. ;  para la versión europea.
  22. ;* Sugerencias de assembler o hard: jiglesias@arrakis.es
  23. ;--------------------------------------------------------------------------
  24.  
  25. ;                   +----------------------------------+
  26. ;                   ¦ ESQUEMA DE CONEXIONES PIC12C509A ¦
  27. ;                   +----------------------------------+
  28. ;
  29. ;                            +------+  +------+
  30. ;                            ¦      +--+      ¦
  31. ;                       +5V ¦¦1  PIC12C509A  8¦¦ MASA
  32. ;                            ¦                ¦
  33. ;                     SWAPX ¦¦2 GPIO5  GPIO0 7¦¦ DVDIN=0                      
  34. ;                            ¦                ¦
  35. ;                  DVDOUT=1 ¦¦3 GPIO4  GPIO1 6¦¦ TXSCEE    
  36. ;                            ¦                ¦
  37. ;                  /RESET=0 ¦¦4 GPIO3  GPIO2 5¦¦ SWAPY    
  38. ;                            ¦                ¦
  39. ;                            +----------------+
  40. ;          
  41. ; 1 - +5VCC  - SIN COMENTARIOS
  42. ; 2 - SWAPX  - SOLO LO USA LA OPCION 3 PARA LA APERTURA Y CIERRE DEL DVD
  43. ; 3 - DVDOUT - ES IGUAL A 1 CUANDO LA BANDEJA DEL DVD ESTA SALIENDO
  44. ; 4 - /RESET - ES IGUAL A 0 CUANDO PULSAMOS EL RESET DE LA PS2
  45. ; 5 - SWAPY  - SOLO LO USA LA OPCION 3 PARA LA APERTURA Y CIERRE DEL DVD
  46. ; 6 - TXSCEE - ES POR DONDE TRANSMITE VIA SERIE "SCEE"
  47. ; 7 - DVDIN  - ES IGUAL A 0 CUANDO LA BANDEJA DEL DVD ESTA ENTRANDO
  48. ; 8 - MASA   - SIN COMENTARIOS
  49. ;--------------------------------------------------------------------------
  50.  
  51. ;+---------------------------------+
  52. ;¦ PROCESADOR A EMPLEAR PIC12C509A ¦
  53. ;+---------------------------------+
  54. P509A EQU 1          ;0=PIC12C508A 1=PIC12C509A
  55.  IF        P509A
  56.  list      p=12c509A
  57.  include   "p12c509A.inc"
  58.  ELSE
  59.  list      p=12c508A
  60.  include   "p12c508A.inc"
  61.  ENDIF
  62.  
  63. ;+-----------------------------------+
  64. ;¦ FUSIBLES, WASDOG, OSCILADOR ETC.. ¦
  65. ;+-----------------------------------+
  66.  __FUSES _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC
  67.  
  68. ;+------------------+
  69. ;¦ NOTACION DECIMAL ¦
  70. ;+------------------+
  71.  radix   dec
  72. ;--------------------------------------------------------------------------
  73.  
  74. ;+--------------------------+
  75. ;¦ VARIABLES DE RAM INTERNA ¦
  76. ;+--------------------------+
  77.  cblock 0x0B
  78.         RAM_0B  ;CONTADOR PAUSA
  79.         RAM_0C  ;CONTADOR CARGA DEL DVD
  80.         RAM_0D  ;CONTADOR PAUSA
  81.         RAM_0E  ;CANTIDAD DE BYTES A ENVIAR DE LA TABLA
  82.         RAM_0F  ;CANTIDAD DE BITS A ENVIAR DEL BYTE
  83.         RAM_10  ;NO UTILIZADA
  84.         RAM_11  ;CONTADOR W EN PAUSA Wx199
  85.         RAM_12  ;CONTADOR 199 EN PAUSA Wx199
  86.         RAM_13  ;BYTE LEIDO DE LA TABLA
  87.         RAM_14  ;PUNTERO DEL BYTE DE LA TABLA
  88.         RAM_15  ;MASCARA ESTADO DE LOS BIT DEL PUERTO
  89.  endc
  90. ;--------------------------------------------------------------------------
  91.  
  92. ;+-----------------+
  93. ;¦ VECTOR DE RESET ¦
  94. ;+-----------------+
  95.     org 0x00
  96.         movwf   OSCCAL          ;CALIBRA EL OSCILADOR INTERNO
  97.         goto    COMIENZO        ;SALTA LA COMIENZO DEL PROGRAMA
  98. ;--------------------------------------------------------------------------
  99.  
  100. ;+--------------------------------------+
  101. ;¦ VERSION DEL PROGRAMA (CODIGO INUTIL) ¦
  102. ;+--------------------------------------+
  103.         retlw   'M'
  104.         retlw   'A'
  105.         retlw   'N'
  106.         retlw   'O'
  107.         retlw   'L'
  108.         retlw   'O'
  109.         retlw   ' '
  110.         retlw   'Y'
  111.         retlw   ' '
  112.         retlw   'C'
  113.         retlw   'O'
  114.         retlw   'M'
  115.         retlw   'P'
  116.         retlw   'A'
  117.         retlw   'Ñ'
  118.         retlw   'I'
  119.         retlw   'A'
  120. ;--------------------------------------------------------------------------
  121.  
  122. ;+-----------------------+
  123. ;¦ COMIENZO DEL PROGRAMA ¦
  124. ;+-----------------------+
  125. COMIENZO
  126.         movlw   b'11000010'     ;CONFIGURA TMR0 PRESCALER = 1:8
  127.         option                  ;OSCILADOR = 4MHZ
  128.  
  129.         movlw   255             ;INICIALIZA TODOS LOS PUERTOS
  130.         movwf   RAM_15          ;EN ALTO Y RAM_15
  131.     tris    GPIO        ;
  132. ;--------------------------------------------------------------------------
  133.  
  134. ;+----------------------------------------+
  135. ;¦ PAUSA DE ENCENDIDO DE 414 MILISEGUNDOS ¦
  136. ;+----------------------------------------+
  137.         movlw   2               ;100 MILISEGUNDOS
  138.         movwf   RAM_0D          ;
  139. ETI_107 call    PAUSA50MSG      ;       +
  140.         decfsz  RAM_0D,F        ;
  141.         goto    ETI_107         ;
  142.         movlw   6               ;300 MILISEGUNDOS
  143.         movwf   RAM_0D          ;
  144. ETI_10C call    PAUSA50MSG      ;       +
  145.         decfsz  RAM_0D,F        ;
  146.         goto    ETI_10C         ;
  147.         movlw   14              ;14 MILISEGUNDOS
  148.         call    PAUSAWX1MSG     ;
  149. ;--------------------------------------------------------------------------
  150.  
  151. ;+------------------------------------------------------------------+
  152. ;¦ LECTURA DE LAS 3 OPCIONES CON EL PULSADOR DE RESET DE LA CONSOLA ¦
  153. ;+------------------------------------------------------------------+
  154. ;OPCION1 EL RESET NO HA SIDO PULSADO
  155. ;-----------------------------------
  156.         btfsc   GPIO,3          ;SI EL RESET NO ESTA PULSADO
  157.         goto    OPCION1         ;SALTA A OPCION1
  158.  
  159. ;OPCION2 EL RESET HA SIDO PULSADO Y SE HA SOLTADO ANTES DE 7,5 SEGUNDOS
  160. ;----------------------------------------------------------------------
  161.         movlw   150             ;
  162.         movwf   RAM_0D          ;
  163. ETI_115 btfsc   GPIO,3          ;
  164.         goto    OPCION2         ;SALTA A OPCION2 AL LEVANTAR EL RESET
  165.         call    PAUSA50MSG      ;
  166.         decfsz  RAM_0D,F        ;
  167.         goto    ETI_115         ;
  168.  
  169. ;OPCION3 EL RESET HA SIDO PULSADO Y NO SE HA SOLTADO ANTES DE 7,5 SEGUNDOS
  170. ;-------------------------------------------------------------------------
  171.         goto    OPCION3         ;SI CONTINUA PULSADO SALTA A OPCION3
  172. ;--------------------------------------------------------------------------
  173.  
  174. ;+---------------------------------------------------+
  175. ;¦ OPCION 1 (RESET NO PULSADO) EL MODCHIP SE         ¦
  176. ;¦ DESHABILITA Y SOLO PODEMOS USAR JUEGOS ORIGINALES ¦
  177. ;+---------------------------------------------------+
  178. OPCION1
  179.         movlw   b'00111111'     ;INICIALIZA TODOS LOS
  180.         tris    GPIO            ;PUERTOS EN ALTO Y
  181.         sleep                   ;DESHABILITA EL MODCHIP
  182. ;--------------------------------------------------------------------------
  183.  
  184. ;+------------------------------------------------------------------------+
  185. ;¦ OPCION 2 (RESET PULSADO DESPUES DE 1 SEG. Y SOLTADO ANTES DE 7,5 SEG.) ¦
  186. ;¦ JUEGOS (PSX1 DIRECTOS) Y (PSX2 SIN PROTECCION ANTIMODCHIP CON AR1.3)   ¦
  187. ;+------------------------------------------------------------------------+
  188. OPCION2
  189.         bcf     GPIO,1          ;INICIALIZA PUERTO TXSERIE EN ALTO
  190.         bcf     RAM_15,1        ;
  191.         movf    RAM_15,W        ;
  192.     tris    GPIO        ;
  193.  
  194.         call    PAUSA50MSG      ;PAUSA CADA 100 TRANSMISIONES
  195.  
  196.         movlw   100             ;100 VECES
  197.         movwf   RAM_0C          ;REPETIRA LA TRANSMISION
  198. ETI_122
  199.         btfsc   GPIO,0          ;SI EN ESTOS MOMENTOS LA BANDEJA DEL
  200.         goto    ETI_04C         ;DVD YA ESTA DENTRO TRANSMITE SCEE
  201.  
  202.         clrf    RAM_14          ;INICIALIZA PUNTERO A TABLA Y
  203.         call    ENVIASCEE       ;TRANSMITE VIA SERIE 100 VECES 'SCEE'
  204.         call    SUB_04C         ;LUEGO ESPERARA A QUE METAMOS OTRO JUEGO
  205.         goto    ETI_122         ;ANTES DE VOLVER A TRANSMITIR 100 VECES
  206. SUB_04C
  207. ETI_04C
  208.         btfsc   GPIO,0          ;SI EN ESTOS MOMENTOS LA BANDEJA DEL
  209.         goto    ETI_050         ;DVD AUN NO ESTA DENTRO SALE
  210.         decfsz  RAM_0C,F        ;SI YA ESTA DENTRO RETORNA HASTA
  211.         retlw   3               ;TRANSMITIR LAS 100 VECES 'SCEE'
  212.  
  213. ETI_050 movlw   b'00111111'     ;INICIALIZA TODOS PUERTOS
  214.         tris    GPIO            ;COMO ENTRADAS
  215. ETI_052
  216.         btfss   GPIO,4          ;ESPERA A QUE PULSEMOS LA APERTURA
  217.         goto    ETI_052         ;DE LA BANDEJA DEL DVD
  218.  
  219.         movlw   250             ;ESPERAMOS UN TIEMPO A LA CONSOLA PARA
  220.         call    PAUSAWX1MSG     ;QUE TERMINE DE ABRIR LA BANDEJA DEL DVD
  221.  
  222.         btfss   GPIO,4          ;SI LA BANDEJA DEL DVD TODAVIA NO ESTA
  223.         goto    ETI_052         ;ABRIENDOSE REPITE LA OPERACION
  224.  
  225. ETI_058
  226.         btfsc   GPIO,4          ;SI LA BANDEJA DEL DVD ESTA ABRIENDOSE
  227.         goto    ETI_058         ;SE ASEGURA A QUE SE ABRA DEL TODO
  228.  
  229.         movlw   24              ;PAUSA DE 6 SEGUNDOS PARA QUE
  230.         movwf   RAM_0B          ;PONGAMOS EL JUEGO EN LA BANDEJA Y
  231. ETI_05C movlw   250             ;PULSEMOS EL BOTON PARA INTRIDUCIRLO
  232.         call    PAUSAWX1MSG     ;EN LA CONSOLA
  233.         decfsz  RAM_0B,F        ;
  234.         goto    ETI_05C         ;
  235.  
  236.         btfsc   GPIO,0          ;SI LA BANDEJA DEL DVD ESTA TODAVIA FUERA
  237.         goto    ETI_052         ;REPITE LA OPERACION
  238.  
  239.         goto    OPCION2         ;CUANDO EL DVD YA ESTA DENTRO SALTA OPCION2
  240.                                 ;Y COMIENZAN LAS TRANSMISIONES DE 'SCEE'
  241. ;--------------------------------------------------------------------------
  242.  
  243. ;+--------------------------------------------------------------------------+
  244. ;¦ OPCION 3 (RESET PULSADO DESPUES DE 1 SEG. Y SOLTADO DESPUES DE 7,5 SEG.) ¦
  245. ;¦ JUEGOS PSX2 CON PROTECCION ANTIMODCHIP CON AR1.3                         ¦
  246. ;+--------------------------------------------------------------------------+
  247. OPCION3
  248.         btfss   GPIO,3          ;ESPERA A QUE SOLTEMOS EL
  249.         goto    OPCION3         ;BOTON DE RESET
  250.  
  251.         movlw   255             ;INICIALIZA RAM_15 Y TODOS
  252.         movwf   RAM_15          ;LOS PUERTOS
  253.         tris    GPIO            ;EN ALTO
  254.  
  255.         movlw   80              ;EL MODCHIP FUERZA A LA CONSOLA
  256.         movwf   RAM_0B          ;PARA QUE EXPULSE LA BANDEJA DEL DVD
  257. ETI_132 movlw   b'00100100'     ;                 "
  258.         movwf   GPIO            ;                 "
  259.         movlw   b'11011011'     ;                 "
  260.         tris    GPIO            ;                 "
  261.         movlw   10              ;                 "
  262.         call    PAUSAWX1MSG     ;                 "
  263.         movlw   b'00100000'     ;                 "
  264.         movwf   GPIO            ;                 "
  265.         movlw   b'00011011'     ;                 "
  266.         tris    GPIO            ;                 "
  267.         movlw   10              ;                 "
  268.         call    PAUSAWX1MSG     ;                 "
  269.         decfsz  RAM_0B,F        ;                 "
  270.         goto    ETI_132         ;                 "
  271.         movlw   b'00111111'     ;                 "
  272.         tris    GPIO            ;                 "
  273.  
  274.         movlw   16              ;PAUSA PARA QUE LA BANDEJA DEL DVD
  275.         movwf   RAM_0B          ;ESTE 4 SEGUNDOS ABIERTA Y NOS DE
  276. ETI_144 movlw   250             ;TIEMPO A PONER EL JUEGO EN ELLA
  277.         call    PAUSAWX1MSG     ;                 "
  278.         decfsz  RAM_0B,F        ;                 "
  279.         goto    ETI_144         ;                 "
  280.  
  281.         movlw   80              ;EL MODCHIP FUERZA A LA CONSOLA
  282.         movwf   RAM_0B          ;PARA QUE INTRODUZCA LA BANDEJA DEL DVD
  283. ETI_14A movlw   b'00010100'     ;                 "
  284.         movwf   GPIO            ;                 "
  285.         movlw   b'11101011'     ;                 "
  286.         tris    GPIO            ;                 "
  287.         movlw   10              ;                 "
  288.         call    PAUSAWX1MSG     ;                 "
  289.         movlw   b'00010000'     ;                 "
  290.         movwf   GPIO            ;                 "
  291.         movlw   b'11101011'     ;                 "
  292.         tris    GPIO            ;                 "
  293.         movlw   10              ;                 "
  294.         call    PAUSAWX1MSG     ;                 "
  295.         decfsz  RAM_0B,F        ;                 "
  296.         goto    ETI_14A         ;                 "
  297.         movlw   b'00111111'     ;                 "
  298.         tris    GPIO            ;                 "
  299.  
  300.         goto    OPCION1         ;DESHABILITA AL MODCHIP Y YA PODEMOS
  301.                                 ;EJECUTAR EL JUEGO CON EL MENU DEL AR1.3
  302. ;--------------------------------------------------------------------------
  303.  
  304. ;+---------------------------------------------------------------------+
  305. ;¦ TRANSMITE VIA SERIE 'SCEE' CON 8 BIT DE DATOS Y 2 DE STOP A 250 BPS ¦
  306. ;+---------------------------------------------------------------------+
  307. ENVIASCEE
  308.         movwf   RAM_0D          ;SALVA W EN RAM_0D (INUTIL PUES NO LO USA)
  309.  
  310.         movlw   72              ;72 MILISEGUNDOS DE ESPACIO ENTRE BYTES
  311.         call    PAUSAWX1MSG     ;
  312.  
  313.         movlw   4               ;ENVIAREMOS 4 BYTES
  314.         movwf   RAM_0E          ;DE LA TABLA
  315. ETI_068
  316.         movf    RAM_14,W        ;LEEMOS 1 BYTE DE
  317.         call    TABLA           ;LA TABLA
  318.         movwf   RAM_13          ;EN RAM_13
  319.         comf    RAM_13,F        ;
  320.  
  321.         movlw   8               ;ENVIAREMOS 8
  322.         movwf   RAM_0F          ;BITS DE CADA BYTE
  323.  
  324.         bsf     RAM_15,1        ;ENVIA EL BIT DE START VIA SERIE
  325.         movf    RAM_15,W        ;
  326.     tris    GPIO        ;
  327.  
  328.         movlw   4               ;4 MILISEGUNDOS DEL ANCHO DEL BIT DE START
  329.         call    PAUSAWX1MSG     ;
  330.  
  331. ETI_073
  332.         rrf     RAM_13,F        ;ENVIA 1 BIT DEL BYTE VIA SERIE
  333.         movlw   b'11111000'     ;
  334.     movwf   GPIO        ;
  335.         btfsc   STATUS,0        ;
  336.         bsf     RAM_15,1        ;
  337.         btfss   STATUS,0        ;
  338.         bcf     RAM_15,1        ;
  339.         movf    RAM_15,W        ;
  340.     tris    GPIO        ;
  341.  
  342.         movlw   4               ;4 MILISEGUNDOS DEL ANCHO DEL BIT
  343.         call    PAUSAWX1MSG     ;
  344.  
  345.         decfsz  RAM_0F,F        ;CONTINUAMOS HASTA
  346.         goto    ETI_073         ;ENVIAR LOS 8 BITS DEL BYTE
  347.  
  348.         bcf     RAM_15,1        ;ENVIA 2 BITS DE STOP
  349.         movf    RAM_15,W        ;
  350.     tris    GPIO        ;
  351.  
  352.         movlw   8               ;8 MILISEGUNDOS DEL ANCHO DE
  353.         call    PAUSAWX1MSG     ;LOS 2 BITS DE STOP
  354.  
  355.         incf    RAM_14,F        ;INCREMENTA PUNTERO DE LA TABLA
  356.  
  357.         decfsz  RAM_0E,F        ;CONTINUA HASTA
  358.         goto    ETI_068         ;ENVIAR LOS 4 BYTES DE LA TABLA
  359.         retlw   3               ;RETORNA CON W=03H
  360. TABLA   addwf   PCL,F           ;TABLA PARA LA PS2 EUROPEA
  361.         retlw   'S'
  362.         retlw   'C'
  363.         retlw   'E'
  364.         retlw   'E'
  365. ;--------------------------------------------------------------------------
  366.  
  367. ;+--------------------------+
  368. ;¦ PAUSA DE 50 MILISEGUNDOS ¦
  369. ;+--------------------------+
  370. PAUSA50MSG
  371.         movlw   50              
  372. ;+------------------------------+
  373. ;¦ PAUSA DE (W x 1 MILISEGUNDO) ¦
  374. ;+------------------------------+
  375. PAUSAWX1MSG
  376.         movwf   RAM_11          
  377. ETI_042 movlw   199            
  378.         movwf   RAM_12          
  379. ETI_044 nop                    
  380.         clrwdt                  
  381.         decfsz  RAM_12,F        
  382.         goto    ETI_044        
  383.         nop                    
  384.         decfsz  RAM_11,F        
  385.         goto    ETI_042        
  386.         retlw   3              
  387. ;--------------------------------------------------------------------------
  388.  
  389.     end
  390.  
  391.  

Saludos.

70
Microcontroladores / Más Instrucciones de los PIC
« en: Sábado 12 de Julio de 2008, 10:53 »
Hola:

He encontrado muchas Web sobre explicaciones en español sobre las 35 instrucciones de la gama PIC 16Fxx como indico abajo en este enlace.

usuarios.lycos.es/sfriswolker/pic/siete.htm

www diselc.es/diselc/utilidades/instrucciones%2016f84.htm

¿Hay alguna Web que te lo explique igual pero con las 77 y 84 instrucciones en ASM de la gama 18Fxx?

La verdad que no encuentro ni una.

Un cordial saludos.

71
Microcontroladores / En contrar ASM del 12f508/509 del chip de PSX
« en: Viernes 11 de Julio de 2008, 10:54 »
Hola:

¿Alguien tiene a estas alturas el .asm del chip de PSX de cualquier versión?

Quiero analizar el código por curiosidad. La verdad me cuesta encontrar ese sea .hex o .asm.

Saludos.

72
Microcontroladores / Hacer una división con ASM del PIC 16F84A
« en: Jueves 10 de Julio de 2008, 20:46 »
Hola:

Me imagino que hacer una división en ASM para el pic 16F84A es un poco engorroso ya que hay que hasta guardar el resto en una variable, y el resultado en otra.

15 / 3 = 5 (Resto es igual a 0).

¿Alguien sabe hacer o poner un ejemplo en ASM sobre una división con comas?

Ejemplo:

0.15 / 3 = 0.05

¿A qué ya es otra realidad?

Un cordial saludos.

73
C# / Ignorar Letras en un texbox
« en: Viernes 4 de Julio de 2008, 01:12 »
Hola:

Tengo tres textBox en el Form, quiero lograr que solo introduzca números y la coma (,), a la vez ignore las letras y el punto (.).

¿Cómose hace?

Un cordial saludos

74
Microcontroladores / Ejemplo En Asm Para 16f84 O 16f84a
« en: Jueves 7 de Febrero de 2008, 02:29 »
Si encuentran Web sobre ejemplos sencillos como este aquí abajo ponen la web aquí par acumularlo todos.

Código: Text
  1. ;Tres valores están almacenados en la memoria, A, B y C. Y en las
  2. ;direcciones 10, 11 y 12h. Resolver ecuación (A + B) - C.
  3. ;Velocidad d ereloj; 4MHz
  4.   LIST  p=16F84A  &#59;Tipo de procesador.
  5.   INCLUDE  &#60;P16F84A.INC&#62;&#59;Definiciones de registros internos.
  6. __CONFIG  _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
  7. ;*****************************************************************
  8.   DATO_A    EQU 0x10&#59;Define la posición del dato A
  9.   DATO_B    EQU 0x11&#59;Define la posición del dato B
  10.   DATO_C    EQU 0x12&#59;Define la posición del dato C
  11.   RESULTADO   EQU 0x13&#59;Define la posición del dato RESULTADO
  12. ;*****************************************************************
  13.   ORG 0x00&#59;Vector de reset
  14.   goto INICIO
  15.   ORG 0x05&#59;Salva el vector de interrupción
  16. INICIO:
  17.   movf  DATO_A,W&#59;Carga el 1er sumando
  18.   addwf  DATO_B,W&#59;Suma 2º operando
  19.   movwf  RESULTADO&#59;Almacena resultado parcial
  20.   movf  DATO_C,W&#59;Carga el sustraendo
  21.   subwf  RESULTADO,F&#59;Resta el minuendo y almacena
  22. STOP
  23.   goto &#036;
  24.   END  &#59;Fin del programa
  25.  

75
Para que lo entiendan. Estoy haciendo una interfaz con Visual C# 2008 que desde ahí pueda activar y desactivar los puertos de entrada del 16F84A, es decir, controlar el PIC desde el puerto serie.

Mientras activo y desactivo las entradas del PIC desde la interfaz hecho con C#, físicamente puedo controlar el PIC y la salida que muestra el PIC físicamente también en la Interfaz se ve las salidas activadas y desactivadas.

Lo de arriba que dije, es lo que quiero hacer. Lo que no se, es cómo programar desde la Interfaz en C# que entienda o que comunique con el PIC por el puerto serie COM1.


1- Al ejecutar la aplicación como muestra abajo en la imagen, se ve que los puertos están desactivado debido que no encuentra dispositivo.


2- Primero se configura.


3- Al activar una serie de entradas por ejemplo la 101, muestra a su salida la 000111. Rojo significa 1 activado y la verde significa 0 desactivado.


4- Las entradas que no se usan se quedan como están.


Aquellos que se atrevan a aventurarse a este mundillo, les dejo el código fuente de una plantilla no funcional ya preparado para que lo programen a ver si alguien es capaz de controlar el PIC desde el PC y al revés.



PD:No sabía que esto esté tan complicado.


Cuando tenga permiso de incluir links , pondré las fotos.

Páginas: 1 2 [3] 4