• Domingo 22 de Diciembre de 2024, 13:33

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.


Mensajes - Meta

Páginas: 1 ... 4 5 [6]
126
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.

127
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.

128
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.

129
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.

130
C# / Re: Ignorar Letras en un texbox
« en: Lunes 7 de Julio de 2008, 17:25 »
Cita de: "lalo_soft"
Cita de: "Meta"
Cita de: "lalo_soft"
te aconsejo cambiar tus controles text por maskedTextBox, te vas a propiedades,Mask,personalisada en mask digitas
ejemplo: 999,9 podras ingresar un numero de max tres digitos y un decimal, todas las demas entradas(letras,signos) quedan bloqueadas automaticamente Suerte!! ^_^

Gracias, no lo sabía, pero hay un pero, me dicen que lo haga de esa manera.

Saludos.

entonces prueba asi  primero declara el evento KeyPress en tu control de texto luego llena la funcion con el siguiente codigo :comp:

Código: Text
  1.       
  2.  private void [b]tuControlDeTexto[/b]_KeyPress(object sender, KeyPressEventArgs e)
  3.  {
  4.     if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8)
  5.           e.Handled = true; // borra el  character
  6.  }
  7.  
  8.  

  :good:

Hola:

Muchas gracias por la ayuda, me funciona. Ahora voy a investigar lo de la coma (,).

Un cordial saludos.

131
Microcontroladores / Re: Pic 16f84
« en: Viernes 4 de Julio de 2008, 20:04 »
Hola:

Hablas de que el PIC 16F84A te empiece a tocas tonos de la guitarra?

Saludos.

132
C# / Re: Ignorar Letras en un texbox
« en: Viernes 4 de Julio de 2008, 01:38 »
Cita de: "lalo_soft"
te aconsejo cambiar tus controles text por maskedTextBox, te vas a propiedades,Mask,personalisada en mask digitas
ejemplo: 999,9 podras ingresar un numero de max tres digitos y un decimal, todas las demas entradas(letras,signos) quedan bloqueadas automaticamente Suerte!! ^_^

Gracias, no lo sabía, pero hay un pero, me dicen que lo haga de esa manera.

Saludos.

133
C# / Re: Download C# Express!
« en: Viernes 4 de Julio de 2008, 01:17 »
Hola:

¿No creen que en el primer post y avisando desde aquí ya se puede descargar ya desde hace tiempo el Visual C# 2008 Express y en Español?


msdn.microsoft.com/es-es/express/aa975050.aspx

Un cordial saludos

134
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

135
Microcontroladores / Re: Recomendacion Sobre Pic
« en: Jueves 27 de Marzo de 2008, 20:22 »
16F628A está bien, más bien está el 16F88. Le da mil vueltas, eso si, si vas a desperdiciar memoria que no llega ni a 2kb, entonces mejor el 16F628A, el más completo para el 16F88, más RAM, mas funciones y con Self-Write incluido.

136
Microcontroladores / Re: Recomendacion Sobre Pic
« en: Jueves 27 de Marzo de 2008, 03:18 »
Cita de: "© Jonathan ©"
Bienvenido :) .. soy de Argentina y tengo que reconocer que los precios que se manejan en el tema de microcontroladores son desalentadores pero no estan fuera de alcance :).

Para comenzar con estos dispositivos te recomendaria el PIC16F628 y no el PIC16F84, todos los codigos que puedas encontrar hechos para el F84 "pueden" ser utilizados en un F628, por el contrario los codigos hechos para un F628 o similares NO pueden utilizarse en el F84 ya que este ultimo no dispone de modulos internos que el F628 tiene. Es exactamente igual al F84 con diferencias internas, los mismos pines, la misma manera de programarlo, pero mas avanzado. El precio es muy similar al del F84 y se consigue facil en Argentina. Los comercios donde puedes comprarlos son

CIKA http://www.cika.com
ELECTROCOMPONENTES http://www.electrocomponentes.com.ar
ELKO http://www.elko.com.ar/dynamic/index.php
DICOMSE http://www.dicomse.com.ar

Aqui la hoja de datos del F628 PIC16F628

Seguramente no tienes un programador, lo necesitaras, recomiendo que no lo compres nuevos, es muy facil hacerlos y en el foro abundan diagramas

Programadores Esquemas

El soft que puedes utilizar el el WINPIC800, ICProg o el winpic.. hay otros, pero con uno de estos 3 ya tienes mas que suficiente.

WinPic800

Para escribir codigos puedes utilizar Ensamblador, Basic o C, aconsejando como principal el ensamblador, ya que te permite tener un acercamiento mas profundo con las funciones internas del pic. El compilador que necesitas y que es util para depurar el programa es MPLAB que puedes descargar del sitio oficial http://www.microchip.com

Esto seria algo asi como una introducion, luego la lectura de algun manual y nuestro foro y el querido google a mano te seran de sustento para avanzar en tu aprendizaje. Espero tu comentario. Saludos :)

PD: Los microcontroladores pic que poseen la F en su nombre pueden ser borrados y grabados mas de mil veces si no me equivoco, poseen memoria tipo Flash, eso permite velocidad y la posibilidad de borrar y grabar cuantas veces quieras.
¿No crees que el mejor sustituto del 16F84A es el 16F88?

137
Microcontroladores / Re: Ejemplo En Asm Para 16f84 O 16f84a
« en: Viernes 29 de Febrero de 2008, 18:29 »
A mi también.

Muchas gracias.

138
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.  

139
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.

140
C# / Comunicaión Pc A 16f84a Con Visual C#
« en: Domingo 20 de Enero de 2008, 17:56 »
Hola:

Quiero hacer un proyecto con un PIC 16F84A que lo controla desde el PC por el puerto serie.

C#===>PC===>RS232===>MAX232===>PIC-16F84A

Tengo un Form1, un Butto1 y un control PuertoSerie1

Si en las entradas del PIC16F84A se activa unos series de bits d entrada por ejemplo 101, en su salida del PIC muestra 0    0    0    1    1    1   ; (Configuración 5).

En resumen, quiero controlar el PIC desde el PC con el C#. Con el HyperTerminal si se puede, pero es pésimo, prefiero uno propio con C#.

Si encuentran Web con estos tema, también se lo agradezco. Gracias.

Código: Text
  1. ;********************************** Indexado.asm *************************************
  2. ;
  3. ; Implementar una tabla de la verdad mediante el manejo de tablas grabadas en ROM.
  4. ; Por ejemplo, la tabla será de 3 entradas y 6 salidas tal como la siguiente:
  5. ;
  6. ;     C  B     A  |   S5   S4   S3   S2   S1   S0
  7. ;     -----------|---------------------------
  8. ;     0   0   0   |   0    0    1    0    1    0&#59; (Configuración 0).
  9. ;     0   0   1   |   0    0    1    0    0    1&#59; (Configuración 1).
  10. ;     0   1   0   |   1    0    0    0    1    1&#59; (Configuración 2).
  11. ;     0   1   1   |   0    0    1    1    1    1&#59; (Configuración 3).
  12. ;     1   0   0   |   1    0    0    0    0    0&#59; (Configuración 4).
  13. ;     1   0   1   |   0    0    0    1    1    1&#59; (Configuración 5).
  14. ;     1   1   0   |   0    1    0    1    1    1&#59; (Configuración 6).
  15. ;     1   1   1   |   1    1    1    1    1    1&#59; (Configuración 7).
  16. ;
  17. ; Las entradas C, B, A se conectarán a las líneas del puerto A: RA2 (C), RA1 (B) y RA0 (A).
  18. ; Las salidas se obtienen en el puerto B:
  19. ; RB5 (S5), RB4 (S4), RB3 (S3), RB2 (S2), RB1 (S1) y RB0 (S0).
  20. ;
  21. ; ZONA DE DATOS **********************************************************************
  22.  
  23.   LIST    P=16F84A
  24.   INCLUDE    &#60;P16F84A.INC&#62;
  25.   __CONFIG  _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
  26.  
  27. ; ZONA DE CÓDIGOS ********************************************************************
  28.  
  29.   ORG   0        &#59; El programa comienza en la dirección 0.
  30. Inicio
  31.   bsf    STATUS,RP0    &#59; Acceso al Banco 1.
  32.   clrf  TRISB      &#59; Las líneas del Puerto B se configuran como salida.
  33.   movlw  b'00011111'    &#59; Las 5 líneas del Puerto A se configuran como entrada.
  34.   movwf  TRISA
  35.   bcf    STATUS,RP0    &#59; Acceso al Banco 0.
  36. Principal
  37.   movf  PORTA,W      &#59; Lee el valor de las variables de entrada.
  38.   andlw  b'00000111'    &#59; Se queda con los tres bits de entrada.
  39.   addwf  PCL,F      &#59; Salta a la configuración adecuada.
  40. Tabla
  41.   goto  Configuracion0
  42.   goto  Configuracion1
  43.   goto  Configuracion2
  44.   goto  Configuracion3
  45.   goto  Configuracion4
  46.   goto  Configuracion5
  47.   goto  Configuracion6
  48.   goto  Configuracion7
  49. Configuracion0
  50.   movlw   b'00001010'    &#59; (Configuración 0).
  51.   goto  ActivaSalida
  52. Configuracion1
  53.   movlw   b'00001001'    &#59; (Configuración 1).
  54.   goto  ActivaSalida
  55. Configuracion2
  56.   movlw   b'00100011'    &#59; (Configuración 2).
  57.   goto  ActivaSalida
  58. Configuracion3
  59.   movlw   b'00001111'    &#59; (Configuración 3).
  60.   goto  ActivaSalida
  61. Configuracion4
  62.   movlw   b'00100000'    &#59; (Configuración 4).
  63.   goto  ActivaSalida
  64. Configuracion5
  65.   movlw   b'00000111'    &#59; (Configuración 5).
  66.   goto  ActivaSalida
  67. Configuracion6
  68.   movlw   b'00010111'    &#59; (Configuración 6).
  69.   goto  ActivaSalida
  70. Configuracion7
  71.   movlw   b'00111111'    &#59; (Configuración 7).
  72. ActivaSalida
  73.   movwf  PORTB      &#59; Visualiza por el puerto de salida.
  74.   goto   Principal
  75.  
  76.   END
  77.  
  78.  
  79.  

Páginas: 1 ... 4 5 [6]