COMUNICACION SERIE CON PIC (16f84)
Se trata de una breve descripcion entre la interfas rs232, un programa en el pic y un programa en visual basic 6 para interactuar con el y asi conocer las intruciones basicas para jugar con el puerto serie, de echo el PIC es una parte extra ya que no se requiere ya que puede ser sustituido por otra compu o en su defecto haciendo un puente entre TX y RX del puerto serial que es lo que esta haciendo el pic esto es trabaja en forma de eco o sea todo lo que le envie la compu lo va e rebotar o retransmitir.
El circuito:
El circuito es el siguiente:
como vez no se requiere de mucho, si no entiendes de pic’s te recomiendo revises en internet por un curso o veas como trabajar con el PIC16f84 en la seccion de proyectos de esta pagina.
Trabajando con el visual Basic 6
la forma de trabajar en visula basic para el puero serie se resumen en seguida.
1.- Definir velocidades y puerto a abrir
MSComm1.setting=”9600,N,8,1″ ;velociad 9600, no paridad, 8 cantidad de bits, 1 bit de parada.
MSComm1.CommPort = 1 ; selecciona el Com1
MSComm1.InputLen=0 ; pone buffer a cero (opcional)
2.- Abrir puerto
MSComm1.PortOpen= True
3.- leer o enviar segun sea el caso
para enviar
MSComm1.Output = “Texto a enviar”
para leer
Text1.Text=MSComm1.Input
4.- cerrar puerto
MSComm1.PortOpen = False
Nota: antes de abrir o cerrar un puerto hay que ver si no esta ya abierto y no volverlo a abrir o cerrar y no se ha abierto por que si no marcara error el programa y se cierra, para esto se deben de poner rutinas de error pero para entender el programa es mejor no poner mucho rollo.
Programa en visual basic.
El programa envia una palabra a la vez con una pausa ya que si no se le da pausa el PIC retransmite informacion.
VERSION 5.00 Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX" Begin VB.Form Form1 Caption = "Form1" ClientHeight = 5040 ClientLeft = 60 ClientTop = 450 ClientWidth = 5940 LinkTopic = "Form1" ScaleHeight = 5040 ScaleWidth = 5940 StartUpPosition = 3 'Windows Default Begin MSCommLib.MSComm MSComm1 Left = 3120 Top = 3240 _ExtentX = 1005 _ExtentY = 1005 _Version = 393216 DTREnable = -1 'True End Begin VB.TextBox Text1 Height = 2415 Left = 120 MultiLine = -1 'True TabIndex = 1 Top = 240 Width = 4335 End Begin VB.CommandButton Command1 Caption = "Command1" Height = 495 Left = 1440 TabIndex = 0 Top = 4200 Width = 1215 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False 'Option Explicit Dim i As Integer, Letra(34) Dim InBuff As String Private Sub Form_Load() With MSComm1 .CommPort = 1 '.Handshaking = 2 - comRTS .RThreshold = 1 .RTSEnable = True .Settings = "9600,n,8,1" .SThreshold = 1 .PortOpen = True End With Text1.Text = "" End Sub Private Sub Command1_Click() Letra(0) = "h" Letra(1) = "o" Letra(2) = "l" Letra(3) = "a" For i = 0 To 3 MSComm1.Output = Letra(i) Delay 1 Next End Sub Private Sub Form_Unload(Cancel As Integer) MSComm1.PortOpen = False End Sub Private Sub MSComm1_OnComm() InBuff = MSComm1.Input Text1.Text = Text1.Text & InBuff End Sub Private Sub Delay(delaytime As Long) 'no se pero no funciona si se definen estas var., dummy no se que tipo es starter = Timer 'este timer no se ni ke peks, de hecho no tenemos reloj Do While Timer < starter + (delaytime / 100) dummy = DoEvents() Loop End Sub
descarga
El programa del PIC
El pseudocodigo seria:
-recive el dato
-reenvia dato de regreso
Abajo dejo el asm y hexadecimal por si lo quieres grabar en un PIC.
Como ya dije consiste basicamente en recibir y retransmitir el dato enviado.
El cable
El cable que necesitas solo requiere de tres hilos uno de Tx, otro para Rx y la tierra y es como el siguiente.
Como sea no necesitas de nada ya que haciendo un puente entre las terminales 2 y 3 del DB9 de tu computadora se obtiene el efecto eco.
Fuente: http://wk3.iespana.es/serial.htm
Tambien te puede interesar mi 2º curso de programación de pics:
http://www.pesadillo.com/pesadillo/?p=4783 donde aprenderás a controlar un pic a través del puerto rs232.
Todo el contenido de los cursos buscando “curso pics” en la web.
Tuitear 10.798 Veces leído 0 comentarios |
25 agosto 2010 en Electronica | tags: Circuitos electrónicos, Electronica |