TODOPIC

Lenguajes de programación para PC => C, C#, C++ => Mensaje iniciado por: Meta en 20 de Enero de 2008, 17:04:17

Título: Comunicaión PC a 16F84A con Visual C#
Publicado por: Meta en 20 de Enero de 2008, 17:04:17
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: [Seleccionar]
;********************************** Indexado.asm *************************************
;
; Implementar una tabla de la verdad mediante el manejo de tablas grabadas en ROM.
; Por ejemplo, la tabla será de 3 entradas y 6 salidas tal como la siguiente:
;
; C  B     A  |   S5   S4   S3   S2   S1   S0
; -----------|---------------------------
; 0   0   0   |   0    0    1    0    1    0 ; (Configuración 0).
; 0   0   1   |   0    0    1    0    0    1 ; (Configuración 1).
; 0   1   0   |   1    0    0    0    1    1 ; (Configuración 2).
; 0   1   1   |   0    0    1    1    1    1 ; (Configuración 3).
; 1   0   0   |   1    0    0    0    0    0 ; (Configuración 4).
; 1   0   1   |   0    0    0    1    1    1 ; (Configuración 5).
; 1   1   0   |   0    1    0    1    1    1 ; (Configuración 6).
; 1   1   1   |   1    1    1    1    1    1 ; (Configuración 7).
;
; Las entradas C, B, A se conectarán a las líneas del puerto A: RA2 (C), RA1 (B) y RA0 (A).
; Las salidas se obtienen en el puerto B:
; RB5 (S5), RB4 (S4), RB3 (S3), RB2 (S2), RB1 (S1) y RB0 (S0).
;
; ZONA DE DATOS **********************************************************************

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

; ZONA DE CÓDIGOS ********************************************************************

ORG 0 ; El programa comienza en la dirección 0.
Inicio
bsf STATUS,RP0 ; Acceso al Banco 1.
clrf TRISB ; Las líneas del Puerto B se configuran como salida.
movlw b'00011111' ; Las 5 líneas del Puerto A se configuran como entrada.
movwf TRISA
bcf STATUS,RP0 ; Acceso al Banco 0.
Principal
movf PORTA,W ; Lee el valor de las variables de entrada.
andlw b'00000111' ; Se queda con los tres bits de entrada.
addwf PCL,F ; Salta a la configuración adecuada.
Tabla
goto Configuracion0
goto Configuracion1
goto Configuracion2
goto Configuracion3
goto Configuracion4
goto Configuracion5
goto Configuracion6
goto Configuracion7
Configuracion0
movlw b'00001010' ; (Configuración 0).
goto ActivaSalida
Configuracion1
movlw b'00001001' ; (Configuración 1).
goto ActivaSalida
Configuracion2
movlw b'00100011' ; (Configuración 2).
goto ActivaSalida
Configuracion3
movlw b'00001111' ; (Configuración 3).
goto ActivaSalida
Configuracion4
movlw b'00100000' ; (Configuración 4).
goto ActivaSalida
Configuracion5
movlw b'00000111' ; (Configuración 5).
goto ActivaSalida
Configuracion6
movlw b'00010111' ; (Configuración 6).
goto ActivaSalida
Configuracion7
movlw b'00111111' ; (Configuración 7).
ActivaSalida
movwf PORTB ; Visualiza por el puerto de salida.
goto Principal

END

Título: Re: Comunicaión PC a 16F84A con Visual C#
Publicado por: poseidon20 en 21 de Enero de 2008, 02:37:08
En si cual es tu problema, la recepcion serial?.
Si mal no recuerdo este pedazo de programa es del libro de la editorial RA-MA(el libro lila), ahi explican como implemetar un usart por software.
Título: Re: Comunicaión PC a 16F84A con Visual C#
Publicado por: Meta en 21 de Enero de 2008, 04:31:53
Es problema es que no se controlar el PIC mediante el Visual C#. Por ejemplo:

Que en una ventana hecha con Visual C#, tengo botones que al activar las entradas del PIC por ahí, responda el PIC las salidas físicamente y de paso que también se muestre en C#. Ese es el único que quiero hacer y que no viene en el libro.

Hablando del libro, la verdad el 16F84A hay que ponerle periféricos hasta para convertidores A/D, Max232 mientras en el 16F876A y según aquí en el foro los 18Fxxx ya vienen incluido. Se nota que ya es antiguo el 16F84A, pero aún se usa.

Cuando pueda pongo un ejemplo gráfico.
Título: Re: Comunicaión PC a 16F84A con Visual C#
Publicado por: Meta en 21 de Enero de 2008, 07:35:19
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.
(http://usuarios.lycos.es/reparaplaystation/cs/hp/1.jpg)

2- Primero se configura.
(http://usuarios.lycos.es/reparaplaystation/cs/hp/2.jpg)

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.
(http://usuarios.lycos.es/reparaplaystation/cs/hp/4.jpg)

4- Las entradas que no se usan se quedan como están.
(http://usuarios.lycos.es/reparaplaystation/cs/hp/3.jpg)

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.

Abajo del foro de este mismo POST se puede ve la descarga HP.rar

PD:No sabía que esto esté tan complicado.
Título: Re: Comunicaión PC a 16F84A con Visual C#
Publicado por: Fired G en 21 de Enero de 2008, 07:44:25
Meta, clickando el enlace que has dejado me dice el navegador que no se puede encontrar la página web... ¿?
Título: Re: Comunicaión PC a 16F84A con Visual C#
Publicado por: Meta en 21 de Enero de 2008, 09:32:46
Por si no lo has visto.

http://www.todopic.com.ar/foros/index.php?action=dlattach;topic=20141.0;attach=5934
Título: Re: Comunicaión PC a 16F84A con Visual C#
Publicado por: Geo en 28 de Febrero de 2008, 11:56:52
Ok, dijiste que con hyperterminal si se puede, ¿ya lo habías probado?
En .NET ya hay un componente para manejo del puerto serie, puede serte de ayuda.