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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Temas
Páginas: 1 ... 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 [53] 54 55 56 57 58 59 60 61 62 63 64 65 66
521  Informática / Electrónica / MPLAB Inicio rápido. en: 19 Febrero 2010, 09:07 am
Manual MPLAB sólo para curisos y de representación gráfica.

http://electronica-pic.blogspot.com/2010/02/mplab-inicio-rapido.html

Saludo.
522  Informática / Electrónica / Hacer un capturador de datos (Data Logger) con PIC en: 8 Enero 2010, 00:54 am
Hola:

Llevo un tiempo en diseñar un Data Logger. Tengo intención de hacerlo capturar señales del puerto serie asíncrona de la normativa RS232. Primero buscar información como este que cuenta algo.

http://pipelara20.tripod.com/txserial.htm

Si hicieras o serías capaz de hacer un Data Logger. ¿Cómo lo diseñarías? Es decir...

1) ¿Qué datos o protocolo quieres capturar, RS232 asíncrona o síncrona, I2C, SPI, USB o todos en modo selección? (Mejor centrarse en uno primero).

2) ¿Le interesa capturar los datos con un PIC y guarfarlo en una EEPROM externa? (Puedes poner 4 24LC1025 como si fuera una, ya serían 4 Mbit).

3) ¿Con cuál microcontrolador? (Depende de los patillajes a usar, memoria programa, EERPOM y RAM).

4) ¿Estás dispuesto a colaborar? (Colaborar en sentido de mostrar información para ayudar, ideas, consejos, etc, no tiene porqué saber de microcontroladores pero, podrás hacer un Data Logger cuando lo acabe el hardWare y un fantastico manual paso a paso cargado de detalles como puedes ver este ejemplo que hice hace tiempo).

Ver ejemplo.

5) Si alguien quiere diseñar un programa interfaz del PC para ver valores lo haré con C# (más adelante también con C++ y VB .net).

6) Preguntarse a si mismo. ¿Realmente quiero un Data Logger?

Hay Data Logger de capturar muestras de temperatura com puedes ver abajo.
http://www.xbot.es/microplans/regtemp.htm

Un cordial saludo.
523  Informática / Electrónica / Librerías .INC en: 31 Diciembre 2009, 21:30 pm
Felices fiestas:

Quiero pasar una librería llamada EEPROM.INC del 16F84 al 16F88 y no me sale mucho.

Código:
;***************************** Librería "EEPROM.INC" **********************************
;
;    ====================================================================
;      Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS".
;      E. Palacios, F. Remiro y L. López.        www.pic16f84a.com
;       Editorial Ra-Ma.  www.ra-ma.es
;    ====================================================================
;
; Estas subrutinas permiten realizar las tareas básicas de escritura y lectura de la
; memoria EEPROM de datos del PIC.
;
; Subrutina "EEPROM_LeeDato" ------------------------------------------------------------
;
; El microcontrolador lee el dato que hay escrito en la posición de la EEPROM del PIC apuntada
; por el contenido del registro de trabajo W. El resultado se proporciona en el mismo W.
;
; Entrada: En (W) la dirección de la memoria EEPROM a leer.
; Salida :  En (W) el byte leído.

EEPROM_LeeDato
    bcf        STATUS,RP0            ; Asegura que trabaja con el Banco 0.
    movwf    EEADR                ; Dirección a leer.
    bsf        STATUS,RP0            ; Banco 1.
    bsf        EECON1,RD            ; Orden de lectura.
EEPROM_SigueLeyendo
    btfsc    EECON1,RD            ; El PIC indica que ha terminado la lectura
    goto    EEPROM_SigueLeyendo    ; poniendo en bajo este bit.
    bcf        STATUS,RP0            ; Banco 0.
    movf    EEDATA,W            ; El byte leído al registro W.
    return

; Subrutina "EEPROM_EscribeDato" --------------------------------------------------------
;
; Escribe el dato introducido en el registro de trabajo W en la posición de memoria EEPROM del
; PIC apuntada por el registro EEADR.
;
; Como altera el valor del registro INTCON al posicionar el flag GIE, éste se debe guardar al
; principio de la subrutina y restaurarlo al final.
;
; Entradas:    En el registro EEADR la dirección de la memoria EEPROM a escribir.
;        En el registro W el byte a escribir.
;
    CBLOCK
    EEPROM_GuardaINTCON
    ENDC

EEPROM_EscribeDato
    bcf        STATUS,RP0            ; Asegura que trabaja con el Banco 0.
    movwf    EEDATA                ; El byte a escribir.
    movf    INTCON,W            ; Reserva el valor anterior de INTCON
    movwf    EEPROM_GuardaINTCON
    bsf        STATUS,RP0            ; Acceso al Banco 1.
    bcf        INTCON,GIE            ; Deshabilita todas las interrupciones.
    bsf        EECON1,WREN            ; Habilita escritura.
;
; El fabricante especifica que hay que seguir esta secuencia para escritura en EEPROM:
;
    movlw    0x55
    movwf    EECON2
    movlw    0xAA
    movwf    EECON2
    bsf        EECON1,WR            ; Inicia la escritura.
EEPROM_TerminaEscribir
    btfsc    EECON1,WR            ; Comprueba que termina de escribir en la EEPROM.
    goto    EEPROM_TerminaEscribir
    bcf        EECON1,WREN            ; Desautoriza la escritura en EEPROM.
    bcf        EECON1,EEIF            ; Limpia este flag.
    bcf        STATUS,RP0            ; Acceso al Banco 0.
    movf    EEPROM_GuardaINTCON,W ; Restaura el valor anterior de INTCON.
    movwf    INTCON
    return

;    ====================================================================
;      Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS".
;      E. Palacios, F. Remiro y L. López.        www.pic16f84a.com
;       Editorial Ra-Ma.  www.ra-ma.es
;    ====================================================================


Mirando el Data Sheet del 16F88 tengo en cuenta los bancos de memoria que siempre debo cambiar, lo he intentado con BANKSEL y con bsc STATUS,RP1.

Ver código modificado para el 16F88.
Código:
;***************************** Librería "EEPROM_16F88.INC"
;
;
; Estas subrutinas permiten realizar las tareas básicas de escritura y lectura de la
; memoria EEPROM de datos del PIC.
;
; Subrutina "EEPROM_LeeDato" ------------------------------------------------------------
;
; El microcontrolador lee el dato que hay escrito en la posición de la EEPROM del PIC apuntada
; por el contenido del registro de trabajo W. El resultado se proporciona en el mismo W.
;
; Entrada: En (W) la dirección de la memoria EEPROM a leer.
; Salida :  En (W) el byte leído.

EEPROM_LeeDato
    bsf        STATUS,RP1            ; Asegura que trabaja con el Banco 2.
    bcf        STATUS,RP0
    movwf    EEADR                ; Dirección a leer.
    bsf        STATUS,RP1            ; Banco 3.
    bsf        STATUS,RP0
    bsf        EECON1,RD            ; Orden de lectura.
EEPROM_SigueLeyendo
    btfsc    EECON1,RD            ; El PIC indica que ha terminado la lectura
    goto    EEPROM_SigueLeyendo    ; poniendo en bajo este bit.
    bsf        STATUS,RP1            ; Banco 2.
    bcf        STATUS,RP0
    movf    EEDATA,W            ; El byte leído al registro W.
    return

; Subrutina "EEPROM_EscribeDato" --------------------------------------------------------
;
; Escribe el dato introducido en el registro de trabajo W en la posición de memoria EEPROM del
; PIC apuntada por el registro EEADR.
;
; Como altera el valor del registro INTCON al posicionar el flag GIE, éste se debe guardar al
; principio de la subrutina y restaurarlo al final.
;
; Entradas:    En el registro EEADR la dirección de la memoria EEPROM a escribir.
;        En el registro W el byte a escribir.
;
;-------------------------------+
;    Bancos de memoria 16F88    |
;                               |
;        RP1:PP0            Banco   |
;         0      0              0     |
;        0   1            1     |
;        1   0            2     |
;         1   1            3     |
;                               |
;-------------------------------+

    CBLOCK
    EEPROM_GuardaINTCON
    ENDC

EEPROM_EscribeDato
    bsf        STATUS,RP1
    bcf        STATUS,RP0            ; Asegura que trabaja con el Banco 2.
    movwf    EEDATA                ; El byte a escribir.
    movf    INTCON,W            ; Reserva el valor anterior de INTCON
    movwf    EEPROM_GuardaINTCON
    bsf        STATUS,RP1            ; Acceso al Banco 3.
    bsf        STATUS,RP0
    bcf        INTCON,GIE            ; Deshabilita todas las interrupciones.
    bsf        EECON1,WREN            ; Habilita escritura.
;
; El fabricante especifica que hay que seguir esta secuencia para escritura en EEPROM:
;
    movlw    0x55
    movwf    EECON2
    movlw    0xAA
    movwf    EECON2
    bsf        EECON1,WR            ; Inicia la escritura.
EEPROM_TerminaEscribir
    btfsc    EECON1,WR            ; Comprueba que termina de escribir en la EEPROM.
    goto    EEPROM_TerminaEscribir
    bcf        EECON1,WREN            ; Desautoriza la escritura en EEPROM.
    bcf        EECON1,EEIF            ; Limpia este flag.
    bsf        STATUS,RP1            ; Acceso al Banco 2.
    bcf        STATUS,RP0
    movf    EEPROM_GuardaINTCON,W ; Restaura el valor anterior de INTCON.
    movwf    INTCON
    return
Me da este resultado.
Citar
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Archivos de programa\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F88 "RS232_11_16F88.asm" /l"RS232_11_16F88.lst" /e"RS232_11_16F88.err" /d__DEBUG=1
Message[302] H:\PIC16F84A\16F88\RS232_11_16F88.ASM 52 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] H:\PIC16F84A\16F88\RS232_11_16F88.ASM 215 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] H:\PIC16F84A\16F88\LCD_4BIT.INC 96 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] H:\PIC16F84A\16F88\LCD_4BIT.INC 110 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] H:\PIC16F84A\16F88\EEPROM.INC 23 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] H:\PIC16F84A\16F88\EEPROM.INC 26 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] H:\PIC16F84A\16F88\EEPROM.INC 28 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] H:\PIC16F84A\16F88\EEPROM.INC 32 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] H:\PIC16F84A\16F88\EEPROM.INC 64 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] H:\PIC16F84A\16F88\EEPROM.INC 70 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] H:\PIC16F84A\16F88\EEPROM.INC 75 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] H:\PIC16F84A\16F88\EEPROM.INC 77 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] H:\PIC16F84A\16F88\EEPROM.INC 78 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] H:\PIC16F84A\16F88\EEPROM.INC 80 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] H:\PIC16F84A\16F88\EEPROM.INC 82 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] H:\PIC16F84A\16F88\EEPROM.INC 83 : Register in operand not in bank 0. Ensure that bank bits are correct.
Executing: "C:\Archivos de programa\Microchip\MPASM Suite\mplink.exe" /p16F88 "RS232_11_16F88.o" /u_DEBUG /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /o"RS232_11_16F88.cof" /M"RS232_11_16F88.map" /W /x
MPLINK 4.35, Linker
Copyright (c) 2009 Microchip Technology Inc.
Errors : 0

Loaded H:\PIC16F84A\16F88\RS232_11_16F88.cof.
----------------------------------------------------------------------
Debug build of project `H:\PIC16F84A\16F88\PicRS232_16F88.mcp' succeeded.
Language tool versions: MPASMWIN.exe v5.35, mplink.exe v4.35
Preprocessor symbol `__DEBUG' is defined.
Thu Dec 31 20:21:43 2009
----------------------------------------------------------------------
BUILD SUCCEEDED




Mirando la hoja de datos lo he intetado mirando los ejemplos de la página 31. 16F88.


Código:
; Leer EEPROM.
EEPROM_LeeDato
    BANKSEL EEADR ; Select Bank of EEADR
    MOVF ADDR, W ;
    MOVWF EEADR ; Data Memory Address
    ; to read
    BANKSEL EECON1 ; Select Bank of EECON1
    BCF EECON1, EEPGD; Point to Data memory
    BSF EECON1, RD ; EE Read
    BANKSEL EEDATA ; Select Bank of EEDATA
    MOVF EEDATA, W ; W = EEDATA
    return











; Escribir EEPROM.



    CBLOCK
    EEPROM_GuardaINTCON
    ENDC

EEPROM_EscribeDato
    BANKSEL EECON1 ; Select Bank of
    ; EECON1
    BTFSC EECON1, WR ; Wait for write
    GOTO $-1 ; to complete
    BANKSEL EEADR ; Select Bank of
    ; EEADR
    MOVF ADDR, W ;
    MOVWF EEADR ; Data Memory
    ; Address to write
    MOVF VALUE, W ;
    MOVWF EEDATA ; Data Memory Value
    ; to write
    BANKSEL EECON1 ; Select Bank of
    ; EECON1
    BCF EECON1, EEPGD ; Point to DATA
    ; memory
    BSF EECON1, WREN ; Enable writes
    BCF INTCON, GIE ; Disable INTs.
    MOVLW 55h ;
    MOVWF EECON2 ; Write 55h
    MOVLW AAh ;
    MOVWF EECON2 ; Write AAh
    BSF EECON1, WR ; Set WR bit to
    ; begin write
    BSF INTCON, GIE ; Enable INTs.
    BCF EECON1, WREN ; Disable writes


Saludo.
524  Informática / Electrónica / Configurar un pedazo de PIC en: 31 Diciembre 2009, 01:28 am
Hola:

Estoy intentando pasar la configuración del PIC16F84A al 16F88, ambos usan el oscilador externo a 4 MHz. La idea del PIC16F88 es que los puertos A y B son digitales, PORTA como salida digital y PORTB como entrada digital, no se usa para nada entradas analógicas.

Este código del 16F84 quiero convertirlo al 16F88.

Código
  1.  
  2.    bsf        STATUS,RP0                ; Accede al Banco 1.
  3.    clrf    PORTA                    ; Puerto A como salidas.
  4.    movlw    b'11111111'                ; Las 8 líneas del puerto B se configura como entradas.
  5.    movwf    PORTB
  6.    bcf        STATUS,RP0                ; Accede al Banco 0.
  7.    clrf    PORTA                    ; Supuestamente la lámpara y Led apagadas.  
  8.  

Por ahora estoy liado y no logro poner el PORTB como entradas. De momento he hecho esto.

Código
  1.    bcf        STATUS,RP1                ; Accede al banco 1.
  2.    bsf        STATUS,RP0
  3.    movlw    b'00000000'
  4.    movwf    ANSEL                    ; Configura como I/O digitales.
  5.    clrf    TRISA                    ; Poner TRISA para salida o PORTA en salid digital.
  6.    movlw    b'11111111'  
  7.    movwf    TRISB                    ; Entrada digital.
  8.    bcf        STATUS,RP1                ; Accede al banco 0.
  9.    bcf        STATUS,RP0
  10.    clrf    PORTA                    ; Salida digital del PORTA.
  11.    movlw    b'11111111'
  12.    movwf    PORTB                    ; Entrada digital del PORTB

Se que no está bien porque no logro poner el PORTB en entrada digital y no se como hacerlo.

Un cordial saludo.
525  Informática / Electrónica / Poco a poco me paso del F8 al F88. en: 30 Diciembre 2009, 16:41 pm
Hola:

Viendo que en los locales cada vez se vende menos PIC 16F84A y más el 16F628A, me cuentan que el sustituto directo del famoso y popular 16F84 es el 16F88 en definitica. Antes no se creía que podría del el 16F628A, veo que no.

Por si acaso que dejen de fabricar el 16F84A como ocurre con los 16F876A/877A desde la Web del fabricante no los vende, ahora son los 16F886/887 con mejores prestaciones.

La idea es aprender a pasar de 16F84A al 16F88 que me llegarán a principios de Enero 2010. En este caso se utilizará el cristal de cuarzo externo a 4 MHz como el 16F84 aunqu el 16F88 aguante a 20 MHz. Quiero hacer el código fuente de este circuito del detector por movimiento y luz del F84 al F88 a ver si no es tan complicado como parece.



Ver: Luz por detector de movimiento y crepuscular Senpir


sobre todo me interesa la parte del __CONGIG que quiero dejarlo lo más parecido al 16F84A.

   




Citar
   LIST    P=16F84A            ; Procesador.
    INCLUDE <P16F84A.INC>

__CONFIG   _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC



En el 16F88 lo he dejado así, no se si será el correcto.




Viendo el archivo P16F88.INC que me viene en el MPLAB v8.43 parece que me puedo guiar y adivinar los del __CONFIG.

Lo veo complicado y no quiero equivocarme. Al menos quiero ser como se hace el __CONFIG más adecuado. Ya me encargaré de pasar los bankos de memoria o actualizrlos en cada librería que encuentre con el PIC.

Data Sheet
16F84A
16F88

Un cordial saludo.
526  Informática / Electrónica / Interfaz puerto serie PicRS232 v2 (beta) en: 30 Diciembre 2009, 06:44 am
Hola:



Pueden probar la nueva Interfaz PicRS232 v2, se incluye código fuente y simulación. Aún está en fase beta, gracias a usted se puede mejorar odar nuevas ideas. Se trata del control de un PIC por puerto serie.

http://www.pic16f84a.org/index.php?option=com_content&view=article&id=170:nuevo-articulo-de-angel-acaymo&catid=52:angelproyectos&Itemid=90

Un cordial saludo.
527  Programación / .NET (C#, VB.NET, ASP) / Apagar el PC con un botón en: 29 Diciembre 2009, 01:37 am
Hola:

Tengo un Form y un button1 con Visual C# Express 2010 Beta 2. ¿Existe la manera de que al pulsar el botón se apague el equipo completo?



A veces puede ocurrir de que te salga una ventana que te dice Finalizar tarea y el equipo no se apaga. Si es posible hacerlo lo de apagar el equipo con un botón. ¿Hay una forma de evitar la posible ventana de Finalizar tarea?

Salu2.
528  Programación / .NET (C#, VB.NET, ASP) / ¿Existe la manera de enviar e-mail desde tu PC con C#? en: 28 Diciembre 2009, 21:45 pm
¿Existe la manera de enviar e-mail desde tu PC con C#?

He logrado con una palicación que encontré y modifiqué bajo Visual C# Express 2010 Beta 2, enviar un mensaje o e-mail a gmail, lo que no me hace gracias del código que me pide autentificación o la contraseña de gmail.

¿Existe la forma de enviar e-mail desde mi ordenador a cualquier correo electrrónico directemente sin poner ninguna contraseña?

Saludo.
529  Informática / Electrónica / Los microcontroladores PIC® de 18 patillas incorporan el núcleo mejorado de gama en: 18 Diciembre 2009, 07:23 am
Los microcontroladores PIC® de 18 patillas incorporan el núcleo mejorado de gama media de Microchip y el bajo consumo de energía eXtreme lider en el mercado



Microchip anuncia los microcontroladores (MCU) de 8 bit de aplicación general PIC16(L)F1826 y PIC16(L)F1827, los MCU PIC® más recientes en incorporar el núcleo Enhanced (Mejorado) de Gama Media de la Compañía.  Con esta ampliación a la gama de 18 patillas, los MCU PIC16(L)F1826/7 proporcionan un juego de periféricos avanzados que incluye un módulo de detección táctil capacitiva mTouch™ e interfaces duales I2C™/SPI, así como versiones “LF” que incorporan el bajo consumo de energía líder en el mercado mediante la tecnología eXtreme Low-Power nanoWatt XLP de Microchip.  La introducción de estos MCU aporta una excelente vía de actualización, de bajo coste y con compatibilidad de patillas, para MCU PIC preexistentes de 18 patillas, y también proporcionan unas mayores prestaciones y un funcionamiento de bajo consumo líder en el mercado.

 

Con la arquitectura Enhanced de Gama Media de Microchip, los MCU logran incrementar en un 50% las prestaciones y se añaden 14 nuevas instrucciones que mejoran la eficiencia de la programación en lenguaje C, lo cual da como resultado una eficiencia de código hasta un 40% mejor respecto a los MCU PIC de 8 bit de la generación previa.  Además del módulo de detección táctil capacitiva mTouch y los interfaces duales I2C/SPI, entre las mejoras introducidas en los periféricos se incluyen funcionalidad PWM mejorada y un Modulador de Señal Digital que permite a los diseñadores personalizar los interfaces de comunicación y combinar numerosas funciones en un único MCU.

 

La integración de la tecnología nanoWatt XLP de Microchip, que disminuye la corriente en espera a tan sólo 0,030µA a 1,8V (típico), ofrece un consumo de corriente líder en el mercado, lo cual mejora aún más la eficiencia energética total y prolonga la vida de la batería en una amplia variedad de aplicaciones.


 

La Tarjeta de Demostración 18 patillas PICkit™ 2 (número de referencia DM164120-4, 23,99 dólares) aporta una manera rápida y sencilla de evaluar y desarrollar con los MCU PIC16(L)F1826/7.  La tarjeta incluye cuatro LED, un potenciómetro para Convertidor A/D, un pulsador, un área de prototipado, un conector de 6 patillas para el Depurador/ Programador In-Circuit PICkit™ 3 (número de referencia PG164130), así como dos tarjetas sin componentes que utilizarán los diseñadores para su propio proyecto.

Fuente:
http://www.elektor.es/noticias/los-microcontroladores-pic-de-18-patillas.1194403.lynkx?utm_source=ES&utm_medium=email&utm_campaign=news
530  Informática / Electrónica / Pasar de un PIC a otro PIC. en: 14 Diciembre 2009, 01:02 am
Hola:

Tengo intención de emigrar a otro PIC, desde el 16F84A al 18F2550 en ensamblador. Al principio iba hacerlo con el nuevo núcleo de los modernos 16F que puedes ver aquí, pero es muy pronto que ni siquiera Proteus lo tiene creado. (Que por cierto, lleva muchos meses sin actualizar nada de nada, o lo abandonaron, o están haciendo una mega actualización, el tiempo dirá).

Tengo unas librerías del LCD y RS232 del 16F84A-04. ¿Puedo pasarlo al PIC18F2550 que es el que voy a empezar a usar con 28 pines?

Ya 18 pines me resultan pocos.

Las librerías de retardo las puedo conseguir con un programa que hay por ahí.

Descargar

Saludo.
Páginas: 1 ... 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 [53] 54 55 56 57 58 59 60 61 62 63 64 65 66
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines