Autor Tema: Comunicaión PC a 16F84A con Visual C#  (Leído 6007 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Meta

  • Visitante
Comunicaión PC a 16F84A con Visual C#
« 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


Desconectado poseidon20

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 762
Re: Comunicaión PC a 16F84A con Visual C#
« Respuesta #1 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.

Meta

  • Visitante
Re: Comunicaión PC a 16F84A con Visual C#
« Respuesta #2 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.

Meta

  • Visitante
Re: Comunicaión PC a 16F84A con Visual C#
« Respuesta #3 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.


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.

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

PD:No sabía que esto esté tan complicado.
« Última modificación: 21 de Enero de 2008, 09:32:03 por Meta »

Desconectado Fired G

  • PIC10
  • *
  • Mensajes: 28
Re: Comunicaión PC a 16F84A con Visual C#
« Respuesta #4 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... ¿?
Saludos desde Sevilla_España.

Meta

  • Visitante

Desconectado Geo

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 922
    • Mexchip
Re: Comunicaión PC a 16F84A con Visual C#
« Respuesta #6 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.
La imaginación es el límite.
Visita mi blog, en inglés o en español :).
Mini curso de introducción a VHDL en MEXCHIP :-/