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.
|
|
![]() | 25 agosto 2010 en Electronica | tags: Circuitos electrónicos, Electronica |























