elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15
61  Informática / Electrónica / Re: Resolver problemas con tablas 6 bits. en: 6 Septiembre 2010, 02:14 am
Con la novedad de que no tengo la versión más nueva de Proteus. ¿Me podrías enviar el instalador? (Si no es molestia)

           Buen día.
62  Informática / Electrónica / Re: Resolver problemas con tablas 6 bits. en: 6 Septiembre 2010, 01:41 am
En el menú Debug puedes activar esas ventanas.

Sólo seleccionas Debug > PIC CPU (o algo así) y activas las ventanas para ver el código del micro (para ello debes cargar el archivo .COF en vez del .HEX).

"Hola a todos" es el mensaje que le dejé guardado de mi archivo .bin. Si quieres cambiárselo tienes que dar click en Debug > Reset persistent model data para que se borre ese contenido.

Si tienes alguna duda sigo a tus órdenes. Saludos.
63  Informática / Electrónica / Re: Resolver problemas con tablas 6 bits. en: 6 Septiembre 2010, 00:19 am
Una pregunta:

 ¿Con todo y BÓRRAME?
64  Informática / Electrónica / Re: Resolver problemas con tablas 6 bits. en: 5 Septiembre 2010, 23:26 pm
¿Cómo le grabaste los datos iniciales a la 24lc256?

Yo probé tu código en un pic16f876a y sí me funciona. Pero le cargo un archivo a la memoria 24lc256.

Primero visualiza un mensaje y después puros cuadros porque ya éstá vacía.
65  Informática / Electrónica / Re: Resolver problemas con tablas 6 bits. en: 5 Septiembre 2010, 22:43 pm
Me parece que la configuración de los puertos es correcta.

Ahora bien, las resistencias de pull-up de 4k7 cámbialas por resistencias especiales de PULLUP (las hay especiales para pullup en proteus). Pruébalo así y me cuentas.

              Saludos.
66  Informática / Electrónica / Re: Resolver problemas con tablas 6 bits. en: 5 Septiembre 2010, 20:57 pm
Meta:

Una pequeña pregunta: ¿Cómo le cargas el valor inicial a la 24LC256? Yo no pude cargarle contenidos iniciales.

Un comentario: Asegúrate de configurar las terminales del puerto A como dgitales, por defecto son analógicas.

          Por el momeno es todo. Saludos
67  Programación / Programación Visual Basic / Re: [Ejercicio] Aca tienen un ejercicio para practicar en: 4 Septiembre 2010, 21:45 pm
Hola a todos:

No sé si esto es lo que se pedía y como se pedía, pero de igual manera lo dejo:

Código:
Option Explicit

Private Sub Command1_Click()
Dim x As Long
Dim i As Long
Dim aparecido(0 To 30) As Boolean
Dim matriz(0 To 24) As Long

'Carga matriz
    While i < 25
        Randomize
        x = CLng((30 - 1) * Rnd + 1)
        If Not aparecido(x) Then
            matriz(i) = x
            aparecido(x) = True
            i = i + 1
        End If
    Wend

'Ordena matriz
Dim li As Long, ls As Long, lsaux As Long

    li = 0
    ls = 24
   
    While ls > li
        lsaux = li
        For i = 0 To ls - 1
            If matriz(i + 1) < matriz(i) Then
                x = matriz(i + 1)
                matriz(i + 1) = matriz(i)
                matriz(i) = x
                lsaux = i
            End If
        Next
        ls = lsaux
    Wend

'Visualiza diagonales
    x = 4
    For i = 0 To 24 Step 6
        Label1(i).Caption = matriz(i)
        Label1(i + x).Caption = matriz(i + x)
        x = x - 2
    Next
End Sub

Se necesita un arreglo de 25 labels en el Form.

          Saludos.
68  Informática / Electrónica / Re: Como girar e Inclinar una Antena ? Ideas ? en: 4 Septiembre 2010, 18:27 pm
Hola, Mr.Know:

Puedes posicionar la antena utilizando servomotores. Éstos se controlan mediante señales de PWM. Aquí te dejo un enlace:

http://cfievalladolid2.net/tecno/cyr_01/robotica/sistema/motores_servo.htm

Si el software del PC lo haces con visual basic puedes usar los timers para generar el PWM.
69  Programación / Programación Visual Basic / Control de puerto USB con Visual Basic 6.0 en: 3 Septiembre 2010, 22:22 pm
Hola, gente del foro:

Espero no molestarlos con una pequeña pregunta:

Para manejar el puerto USB con Visual Basic 6.0 ¿Hay algún objeto, función o API?

          Eso es todo. Saludos y gracias por su atención.
70  Informática / Electrónica / Re: Resolver problemas con tablas 6 bits. en: 3 Septiembre 2010, 21:43 pm
Meta:

Te dejo un programa ejemplo con el PIC16F876A junto con la librería "LCD_MENS.INC" mdificada para que no tenga error al acceder a una tabla que rebasa los primeros 256 bytes; analízalo.

Código
  1. #include "p16f876a.inc"
  2. __config _XT_OSC & _PWRTE_ON & _LVP_OFF & _DEBUG_OFF & _WDT_OFF & _BODEN_OFF
  3.  
  4. cblock 20h
  5. endc
  6.  
  7. org 00h
  8. call LCD_Inicializa
  9.  
  10. call LCD_Linea1
  11. call LCD_LineaEnBlanco
  12. call LCD_Linea1
  13. movlw MensajeHola
  14. call LCD_Mensaje
  15.  
  16. call LCD_Linea2
  17. call LCD_LineaEnBlanco
  18. call LCD_Linea2
  19. movlw MensajeAmigos
  20. call LCD_Mensaje
  21.  
  22. goto $
  23.  
  24. org .250
  25. Mensajes
  26. addwf PCL,F
  27. MensajeHola
  28. dt "Hola a todos...",0
  29. MensajeAmigos
  30. dt "Amigos mios...",0
  31.  
  32. INCLUDE "RETARDOS.INC"
  33. INCLUDE "LCD_4BIT.INC"
  34. INCLUDE "LCD_MENS.INC"
  35.  
  36. end

Nota que los mensajes los puse a partir de la dirección 250 para que la tabla de mensajes rebase los primeros 256 bytes y así comprobar que el código funciona aún en esas circunstancias.

La librería "LCD_MENS" modificada es la siguiente:

Código
  1. ;**************************** Librería "LCD_MENS.INC" ********************************
  2. ;
  3. ; ===================================================================
  4. ;  Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
  5. ;  E. Palacios, F. Remiro y L. López. www.pic16f84a.com
  6. ;  Editorial Ra-Ma.  www.ra-ma.es
  7. ; ===================================================================
  8. ;
  9. ; Librería de subrutinas para el manejo de mensajes a visualizar en un visualizador LCD.
  10.  
  11. CBLOCK
  12. LCD_ApuntaCaracter ; Indica la posición del carácter a visualizar
  13. ; respecto del comienzo de todos los mensajes,
  14. ; (posición de la etiqueta "Mensajes").
  15. LCD_ValorCaracter ; Código ASCII del carácter a
  16. ENDC ; visualizar.
  17.  
  18. ; Los mensajes tienen que estar situados dentro de las 256 primeras posiciones de la
  19. ; memoria de programa, es decir, no pueden superar la dirección 0FFh.
  20.  
  21. ; Subrutina "LCD_Mensaje" ---------------------------------------------------------------
  22. ;
  23. ; Visualiza por pantalla el mensaje apuntado por el registro W.
  24. ;
  25. ; Los mensajes deben localizarse dentro de una zona encabezada por la etiqueta "Mensajes" y que
  26. ; tenga la siguiente estructura:
  27. ;
  28. ; Mensajes ; ¡Etiqueta obligatoria!
  29. ; addwf PCL,F
  30. ; Mensaje0 ; Posición inicial del mensaje.
  31. ; DT ".. ..", 0x00 ; Mensaje terminado en 0x00.
  32. ; Mensaje1
  33. ; ...
  34. ; ...
  35. ; FinMensajes
  36. ;
  37. ; La llamada a esta subrutina se realizará siguiendo este ejemplo:
  38. ;
  39. ; movlw Mensaje0 ; Carga la posición del mensaje.
  40. ; call LCD_Mensaje ; Visualiza el mensaje.
  41. ;
  42. LCD_Mensaje
  43. movwf LCD_ApuntaCaracter ; Posición del primer carácter del mensaje.
  44. movlw Mensajes ; haya la posición relativa del primer carácter
  45. subwf LCD_ApuntaCaracter,F ; del mensaje respecto de etiqueta "Mensajes".
  46. decf LCD_ApuntaCaracter,F ; Compensa la posición que ocupa "addwf PCL,F".
  47. LCD_VisualizaOtroCaracter
  48. movf LCD_ApuntaCaracter,W
  49. ; Modificado para evitar desvíos en el programa
  50. addlw low(Mensajes + .1)
  51. movlw high(Mensajes + .1)
  52. btfsc STATUS,C
  53. addlw .1
  54. movwf PCLATH
  55. movf LCD_ApuntaCaracter,W
  56. ;...
  57. call Mensajes ; Obtiene el código ASCII del carácter apuntado.
  58. movwf LCD_ValorCaracter ; Guarda el valor de carácter.
  59. movf LCD_ValorCaracter,F ; Lo único que hace es posicionar flag Z. En caso
  60. btfsc STATUS,Z ; que sea "0x00", que es código indicador final
  61. goto LCD_FinMensaje ; de mensaje, sale fuera.
  62. LCD_NoUltimoCaracter
  63. call LCD_Caracter ; Visualiza el carácter ASCII leído.
  64. incf LCD_ApuntaCaracter,F ; Apunta a la posición del siguiente carácter
  65. goto LCD_VisualizaOtroCaracter ; dentro del mensaje.
  66. LCD_FinMensaje
  67. return ; Vuelve al programa principal.
  68.  
  69. ; Subrutina "LCD_MensajeMovimiento" -----------------------------------------------------
  70. ;
  71. ; Visualiza un mensaje de mayor longitud que los 16 caracteres que pueden representarse
  72. ; en una línea, por tanto se desplaza a través de la pantalla.
  73. ;
  74. ; En el mensaje debe dejarse 16 espacios en blanco, al principio y al final para
  75. ; conseguir que el desplazamiento del mensaje sea lo más legible posible.
  76. ;
  77. CBLOCK
  78. LCD_CursorPosicion ; Contabiliza la posición del cursor dentro de la
  79. ENDC ; pantalla LCD
  80.  
  81. LCD_MensajeMovimiento
  82. movwf LCD_ApuntaCaracter ; Posición del primer carácter del mensaje.
  83. movlw Mensajes ; haya la posición relativa del primer carácter
  84. subwf LCD_ApuntaCaracter,F ; del mensaje respecto de la etiqueta "Mensajes".
  85. decf LCD_ApuntaCaracter,F ; Compensa la posición que ocupa "addwf PCL,F".
  86. LCD_PrimeraPosicion
  87. clrf LCD_CursorPosicion ; El cursor en la posición 0 de la línea.
  88. call LCD_Borra ; Se sitúa en la primera posición de la línea 1 y
  89. LCD_VisualizaCaracter ; borra la pantalla.
  90. movlw LCD_CaracteresPorLinea ; ¿Ha llegado a final de línea?
  91. subwf LCD_CursorPosicion,W
  92. btfss STATUS,Z
  93. goto LCD_NoEsFinalLinea
  94. LCD_EsFinalLinea
  95. call Retardo_200ms ; Lo mantiene visualizado durante este tiempo.
  96. call Retardo_200ms
  97. movlw LCD_CaracteresPorLinea-1; Apunta a la posición del segundo carácter visualizado
  98. subwf LCD_ApuntaCaracter,F ; en pantalla, que será el primero en la siguiente
  99. goto LCD_PrimeraPosicion ; visualización de línea, para producir el efecto
  100. LCD_NoEsFinalLinea ; de desplazamiento hacia la izquierda.
  101. movf LCD_ApuntaCaracter,W
  102. ; Modificado para evitar desvíos en el programa
  103. addlw low(Mensajes + .1)
  104. movlw high(Mensajes + .1)
  105. btfsc STATUS,C
  106. addlw .1
  107. movwf PCLATH
  108. movf LCD_ApuntaCaracter,W
  109. ;...
  110. call Mensajes ; Obtiene el ASCII del carácter apuntado.
  111. movwf LCD_ValorCaracter ; Guarda el valor de carácter.
  112. movf LCD_ValorCaracter,F ; Lo único que hace es posicionar flag Z. En caso
  113. btfsc STATUS,Z ; que sea "0x00", que es código indicador final
  114. goto LCD_FinMovimiento ; de mensaje, sale fuera.
  115. LCD_NoUltimoCaracter2
  116. call LCD_Caracter ; Visualiza el carácter ASCII leído.
  117. incf LCD_CursorPosicion,F ; Contabiliza el incremento de posición del
  118. ; cursor en la pantalla.
  119. incf LCD_ApuntaCaracter,F ; Apunta a la siguiente posición por visualizar.
  120. goto LCD_VisualizaCaracter ; Vuelve a visualizar el siguiente carácter
  121. LCD_FinMovimiento ; de la línea.
  122. return ; Vuelve al programa principal.
  123.  
  124. ; ===================================================================
  125. ;  Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS"
  126. ;  E. Palacios, F. Remiro y L. López. www.pic16f84a.com
  127. ;  Editorial Ra-Ma.  www.ra-ma.es
  128. ; ===================================================================

Te recomiendo, además, que tus tablas aparte de los mensajes las coloques al principio de tu programa y después de esas tablas pongas los mensajes. Por ejemplo:

Código
  1. org        0
  2.     goto   Inicio
  3.  
  4. Tabla_1
  5.    addwf    PCL,F
  6.    retlw      0x33
  7.    retlw      0x68
  8.             .
  9.             .
  10.  
  11. Tabla_2
  12.    addwf    PCL,F
  13.    retlw      0x67
  14.    retlw      0x87
  15.              .
  16.              .
  17.  
  18. Mensajes
  19.    addwf    PCL,F
  20. Mensaje0
  21.    DT        "MENSAJE NUM 0",0
  22. Mensaje1
  23.    DT        "MENSAJE NUM 1",0
  24.              .
  25.              .
  26.  
  27. Inicio
  28.     call      LCD_Inicializa
  29.     movlw  Mensaje0
  30.              .
  31.              .
  32.  
  33.       INCLUDE    "LCD_MENS.INC"
  34.       INCLUDE    "LCD_4BIT.INC"
  35.                   .
  36.                   .
  37.  
  38.          end

         Espero te sea útil. Saludos.
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines