You are on page 1of 49

ALGORITMO EN MATLAB DE COMUNICACIN RS232 CON PROTEUS 7.

6
(MicroCode Studio - Virtual Serial Ports Driver XP4 y Virtual Serial Ports Emulator)

Ingeniero Electrnico: Monteza Zevallos Fidel Tomas

INTRODUCCION
En esta oportunidad presento lneas abajo la programacin en MATLAB el algoritmo de comunicacin directa con PROTEUS. Esta
comunicacin se realiza mediante el protocolo de comunicacin RS232 utilizando puertos creados virtualmente con alguno de estos
dos programas:
- Virtual Serial Ports Driver XP4 (Para sistemas Operativos de 32 bit)
- Virtual Serial Ports Emulator (Para sistemas Operativos de 64 bit).
MATLAB utiliza el puerto virtual 2 mientras que PROTEUS utiliza el puerto virtual 1. En el circuito electrnico implementado con
PROTEUS se debe tener en cuenta que deber utilizar el programa MicroCode Studio para confeccionar las lneas del algoritmo que
realizara el trabajo de que el microcontrolador PIC16F877A pueda recibir y enviar informacin con el protocolo RS232 segn un
cdigo de recepcin establecido de cuatro caracteres (AA00).
Solo deber copiar y pegar todas las lneas de programacin en el respectivo archivo de MATLAB y ejecutar la simulacin, este
proyecto comparado con el publicado con el ttulo ALGORITMO DE ENLACE VISUAL BASIC 6.0 CON PROTEUS 7.6 es ms fcil
de implementar puesto que si ya tiene ejecutado el proyecto en PROTEUS solo debe ejecutar MATLAB y este realizara
automticamente la comunicacin.
La idea es demostrar que mientras se tenga un hardware ya implementado (El microcontralador PIC16F877A ya programado)
cualquier programa que se implemente para su operacin y funcionamiento ser posible.
En el proyecto ALGORITMO DE ENLACE VISUAL BASIC 6.0 CON PROTEUS 7.6 se debi tener mucho cuidado en dar los valores
correspondientes de cada herramienta en la Ventana de Propiedades como por ejemplo cambiar los nombres de cada Command de
acuerdo las lneas programadas, el intervalo del Timer1, el intervalo del Timer2 y el intervalo del Timer 3 que debieron ser colocados
adecuadamente.
Para esta publicacin se anexan las respectivas figuras demostrando su aplicacin paso a paso.
Igualmente las lneas del algoritmo correspondiente al programa MicroCode Studio se publican en este trabajo, solo deber copiarlas
y pegarlas en el programa respectivo para ejecutar su compilacin tal como se explica en cada una de las figuras adjuntadas.
El tiempo que se pueda dedicar a este proyecto es muy importante, debe tener la idea de cmo hacerlo y espero que sirva para
ayudar a otros investigadores.
Posteriormente seguir publicando lneas de programacin en MATLAB de diversas aplicaciones como Sistema Gravitacional,
Interaccin de partculas, Cinemtica Directa y Cinemtica Inversa para robtica, y con mucha ms dedicacin la Comunicacin
RS232 con microcontroladores, etc.
En la siguiente publicacin estar comentando acerca de un programa desarrollado en SIMULINK de MATLAB sobre temas de
Control, toda una novedad, estar atentos.

INDICE
1.- Creacin de los puertos virtuales COM1 y COM2 con Virtual Serial Ports Driver XP4 (Para sistemas Operativos de 32 bit)
2.- Creacin de los puertos virtuales COM1 y COM2 con Virtual Serial Ports Emulator (Para sistemas Operativos de 64 bit)
3.- Implementacin del circuito electrnico con el puerto COM2 en PROTEUS.
4.- Presentacin del programa implementado en MATLAB con el puerto COM1.
5.- Inicio de la simulacin entre MATLAB (Puerto COM1) y PROTEUS (Puerto COM2).
6.- Presentacin del algoritmo implementado en MicroCode Studio para el mcrocontrolador PIC16F877A.
7.- Presentacin de los archivos implementados en MATLAB para la comunicacin RS232.
7.1.- Archivo SERIAL1.m
7.2.- Archivo SERIAL2.m
7.3.- Archivo CONTEO_1.m
7.4.- Archivo CONTEO_2.m
7.5.- Archivo CONTEO_3.m
8.- Presentacin de las lneas de algoritmo implementado en MicroCode Studio para el mcrocontrolador PIC16F877A.
9.- Presentacin archivo SERIAL_COM1 implementado en la Interfaz Grfica de Usuario (GUI) MATLAB para comunicacin RS232.
9.1.- Archivo SERIAL:COM1.m

1.- Creacin de los puertos virtuales COM1 y COM2 con Virtual Serial Ports Driver XP4 (Para sistemas Operativos de 32 bit)

Se muestra el programa VIRTUAL SERIAL PORT DRIVER XP4 que servir para la creacin de puertos virtuales RS232

Se apertura el programa VIRTUAL SERIAL PORT DRIVER XP4 y utilizamos el men para la creacin de puertos virtuales RS232

Una vez que se apertura el programa VIRTUAL SERIAL PORT DRIVER XP4 se crea los puertos virtuales RS232 (1 con 2)

Una vez establecido los puertos virtuales de comunicacin RS232 con el programa VIRTUAL SERIAL PORT DRIVER XP4 lo cerramos

2.- Creacin de los puertos virtuales COM1 y COM2 con Virtual Serial Ports Emulator (Para sistemas Operativos de 64 bit)

Se muestra el programa Virtual Serial Ports Emulator (VSPE) que servir para la creacin de puertos virtuales RS232

Se apertura el programa Virtual Serial Ports Emulator (VSPE) y utilizamos el men para la creacin de puertos virtuales RS232

Una vez que se apertura el programa Virtual Serial Ports Emulator (VSPE) se crea los puertos virtuales RS232 COM1 y COM2 (Paso 1)

Una vez que se apertura el programa Virtual Serial Ports Emulator (VSPE) se crea los puertos virtuales RS232 COM1 y COM2 (Paso 2)

Una vez que se apertura el programa Virtual Serial Ports Emulator (VSPE) se crea los puertos virtuales RS232 COM1 y COM2 (Paso 3)

Una vez que se apertura el programa Virtual Serial Ports Emulator (VSPE) se crea los puertos virtuales RS232 COM1 y COM2 (Paso 4)

Una vez que se apertura el programa Virtual Serial Ports Emulator (VSPE) se crea los puertos virtuales RS232 COM1 y COM2 (Paso 5)

Una vez establecido los puertos virtuales de comunicacin RS232 con el Virtual Serial Ports Emulator (VSPE) lo minimizamos

3.- Implementacin del circuito electrnico con el puerto COM2 en PROTEUS.

Aqu se muestra el circuito electrnico confeccionado en el programa PROTEUS 7.6, considerar el diseo en hardware tal como se
encuentra el circuito mostrado.

Aqu podemos visualizar la ventana con el circuito electrnico del microcontrolador PIC16F877A del programa PROTEUS. Note que el
contador display 7 segmentos se encuentra en CERO y adems las ventanas de ingreso (derecha) y salida (izquierda) de informacin
en el protocolo RS232 se encuentran vacas.

4.- Presentacin del programa implementado en MATLAB con el puerto COM1.

Aqu podemos visualizar la ventana de MATLAB y en ella la del Command Window con la que deber seguir los pasos que se soliciten.

Visualizamos en MATLAB la ventana Editor en donde figuran las lneas del algoritmo desarrollado para la comunicacin RS232. Las
lneas en detalle figuran lneas abajo y se encuentran comentadas

5.- Inicio de la simulacin entre MATLAB (Puerto COM1) y PROTEUS (Puerto COM2).

Aqu podemos visualizar tanto la ventana Editor de MATLAB en el instante de iniciar la simulacin, en este caso no tengo mi carpeta
reconocida por MATLAB as que se inicie la comunicacin RS232 se debe ejecutar Add to Path.

Aqu podemos visualizar la ventana del Command Window que solicita ejecutar ENTER para que PROTEUS reciba la informacin
desde MATLAB.

Visualizamos solo la ventana con el circuito electrnico del microcontrolador PIC16F877A del programa PROTEUS en pleno proceso
de recibir la primera informacin numrica de confirmacin de inicio de la comunicacin desde MATLAB. Note que el contador display
7 segmentos se encuentra en ONCE y adems la ventana de ingreso (derecha) se encuentra codificado con AA000011.

Ahora visualizamos la ventana con el circuito electrnico del microcontrolador PIC16F877A del programa PROTEUS en pleno proceso
de recibir la segunda informacin numrica desde MATLAB.

Aqu podemos ahora visualizar la ventana con el circuito electrnico del microcontrolador PIC16F877A del programa PROTEUS en
pleno proceso de recibir la tercera informacin numrica desde MATLAB. Note que el contador display 7 segmentos se encuentra en
DOS MIL CIENTO DOCE y adems las ventanas de ingreso (derecha) se encuentra codificado con AA002112 y salida (izquierda) de
informacin en el protocolo RS232 se encuentran codificado con $$2112.

Aqu podemos ahora visualizar la ventana con el circuito electrnico del microcontrolador PIC16F877A del programa PROTEUS en
pleno proceso de recibir la ltima informacin numrica desde MATLAB de comprobacin de trmino de la comunicacin.

Aqu podemos ahora visualizar la ventana con el circuito electrnico del microcontrolador PIC16F877A del programa PROTEUS en
pleno proceso de un conteo automtico desde MATLAB.

Finalmente podemos visualizar la ventana del Command Window que informa Fin comunicacin RS232 con PROTEUS reciba la
informacin desde MATLAB.

6.- Presentacin del algoritmo implementado en MicroCode Studio para el mcrocontrolador PIC16F877A.

Se muestra el programa MicroCode Studio que servir para la creacin del algoritmo que deber ser grabado en el microcontrolador
PIC16F877A que se implement en PROTEUS..

Con la apertura el programa MicroCode Studio se puede visualizar las lneas del algoritmo implementado para ser grabado en el
microcontrolador PIC16F877A. Estas lneas de programacin tambin se encuentran publicadas en este documento.

Aqu se muestra el programa MicroCode Studio realizando la seleccin del microcontrolador a utilizar (PIC16F877A), una vez realizada
esta seleccin se deber de compilar las lneas del algoritmo pues se debe recordar que el microcontrolador solo entiende UNOS y
CEROS, no comprende las lneas escritas.

En este paso se muestra la compilacin de las lneas del algoritmo desarrollado, este proceso creara un archico del tipo ASM que se
muestra en la siguiente figura.

Aqu apreciamos que una vez que compilamos el archivo DME tipo ASM del programa MicroCode Studio se creara el archivo DME tipo
HEX que es el que deber ser grabado en el microcontrolador PIC16F877A

Aqu apreciamos el primer paso de la forma virtual de grabar el archivo DME del tipo HEX dentro del microcontrolador PIC16F877A

Aqu apreciamos el segundo paso de la forma virtual de grabar el archivo DME del tipo HEX dentro del microcontrolador PIC16F877A,
se selecciona el archivo y se da click en Abrir

7.- Presentacin de los archivos implementados en MATLAB para la comunicacin RS232.


A continuacin se presenta las lneas de programacin en MATLAB que deben realizar la comunicacin RS232 con PROTEUS,
posteriormente estn publicadas las lneas del programa MicroCode Studio para ser utilizado en el microcontrolador PIC16F877A.
Todos los archivos que se presentaran en MATLAB se podrn visualizar la transmisin de una serie de caracteres numricos con
una codificacin caracterstica que el microcontrolador del circuito en PROTEUS lo pueda comprender, y que est comprendida de
la siguiente forma:
AA00XXXX
AA00 es el cdigo de inicio de cada trama de informacin que lleva la trasmisin desde MATLAB
XXXX son los cuatro siguientes caracteres que identifican los nmeros transmitidos desde MATLAB
En este trabajo se presentaran cinco archivos implementados en MATLAB y que el lector podr poner en ejecucin directamente,
estos archivos son SERIAL1.m, SERIAL2.m, CONTEO_1.m, CONTEO_2.m y finalmente CONTEO_3.m
Cada archivo tiene en su cabecera una descripcin del trabajo que realiza, adems cada uno de ellos se encuentra comentado en
cada lnea del programa.

7.1.- Archivo en MATLAB denominado SERIAL1.m


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Programa SERIAL1 que permite la comunicacion RS232 entre MATLAB y PROTEUS
% MATLAB utiliza el puerto COM2 y PROTEUS utiliza el puerto COM1
% Se podra visualizar en PROTEUS el envio de un codigo numerico de cuatro cifras desde 0000 hasta 9999
% Los cuatro primeros caracteres AA00 corresponden a un codigo de identificacion
% Con este codigo el microcontrolador podra saber cual es el inicio de conteo seleccionando los ultimos caracteres
% de cada envio que corresponden al numero en proceso del conteo
%
% INGENIERO ELECTRONICO MONTEZA ZEVALLOS FIDEL TOMAS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
clc;
close all;

% Limpiamos el Workspace
% Limpiamos el Command Window
% Cerramos todo

SerPIC = serial('COM2');
set(SerPIC,'BaudRate',4800);
set(SerPIC,'DataBits',8);
serPIC.Terminator='CR';
set(SerPIC,'Parity','none');

%
%
%
%
%

Se selecciona el COM2
Define velocidad
Define numero de bits
Comunicacion constante sin caracter de terminacion
Sin paridad

set(SerPIC,'StopBits',1);
set(SerPIC,'FlowControl','none');
fopen(SerPIC);

% Numero de bits de stop 1


% Sin control de hardware, o software
% Abre el puerto RS232

fprintf('\n Presiona Enter para iniciar la transmision RS232\n')


pause
% La pausa se levantara al presionar ENTER
% Se inicia leyendo el puerto durante un determinado tiempo de comprobacion de Inicio
for j=1:1:500
% Conteo de inicio
fprintf(SerPIC,'AA000011')
% Envia la trama de 8 caracteres puerto serie c
end
% Continua leyendo el puerto durante un determinado tiempo adicional
pause(1)
% Pausa para poder visualizar digitos correctos
for i=1:1:5
% Para tiempo de lectura
pause(2)
% Pausa para poder visualizar los digitos correctos
fprintf(SerPIC,'AA001238')
% Envia la trama de 8 caracteres puerto serie con las 4 cifras
pause(2)
% Pausa para poder visualizar los digitos correctos
fprintf(SerPIC,'AA002112')
% Envia la trama de 8 caracteres puerto serie con las 4 cifras
pause(0.1)
fgets(SerPIC)
% Mantenemos abierto el puerto RS232
end
fprintf(SerPIC,'AA003838')
fprintf(SerPIC,'FIN COMUNICACION RS232')

% Envia la trama de cierre de puerto serie con 4 cifras (3838)


% Envia ultimo mensaje de termino de comunicacion RS232

fclose(SerPIC);
delete(SerPIC)
clear SerPIC
clear;
clc;
close all;

%
%
%
%
%
%

fprintf('\n Fin comunicacion RS232 \n')

% Se envia termino de comunicacion RS232 al Command Window de MATLAB

Cerramos el puerto RS232


Borramos el puerto RS232 abierto
Se limpia el puerto para un nuevo envio
Limpiamos el Workspace
Limpiamos el Command Window
Cerramos todo

7.2.- Archivo en MATLAB denominado SERIAL2.m


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Programa SERIAL2 que permite la comunicacion RS232 entre MATLAB y PROTEUS
% MATLAB utiliza el puerto COM2 y PROTEUS utiliza el puerto COM1
% Se podra visualizar en PROTEUS el envio de un codigo numerico de cuatro cifras desde 0000 hasta 9999
% Los cuatro primeros caracteres AA00 corresponden a un codigo de identificacion
% Con este codigo el microcontrolador podra saber cual es el inicio de conteo seleccionando los ultimos caracteres
% de cada envio que corresponden al numero en proceso del conteo

%
% INGENIERO ELECTRONICO MONTEZA ZEVALLOS FIDEL TOMAS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
clc;
close all;

% Limpiamos el Workspace
% Limpiamos el Command Window
% Cerramos todo

SerPIC = serial('COM2');
set(SerPIC,'BaudRate',4800);
set(SerPIC,'DataBits',8);
serPIC.Terminator='CR';
set(SerPIC,'Parity','none');
set(SerPIC,'StopBits',1);
set(SerPIC,'FlowControl','none');
fopen(SerPIC);

%
%
%
%
%
%
%
%

Se selecciona el COM2
Define velocidad
Define numero de bits
Comunicacion constante sin caracter de terminacion
Sin paridad
Numero de bits de stop 1
Sin control de hardware, o software
Abre el puerto RS232

fprintf('\n Presiona Enter para iniciar la transmision RS232\n')


pause
% La pausa se levantara cuando se presione ENTER
% Se inicia leyendo el puerto durante un determinado tiempo de comprobacion de Inicio
for j=1:1:200
% Conteo de inicio
pause(0.1)
% Pausa para poder visualizar los digitos correctos
fprintf(SerPIC,'AA000011')
% Envia la trama de 8 caracteres puerto serie con las 4 cifras
end
% Continua leyendo el puerto durante un determinado tiempo adicional
pause(1)
% Pausa para poder visualizar digitos correctos
for i=1:1:5
% Para tiempo de lectura
fprintf(SerPIC,'AA001238')
% Envia la trama de 8 caracteres puerto serie con las 4 cifras
pause(2)
% Pausa para poder visualizar los digitos correctos
fprintf(SerPIC,'AA002112')
% Envia la trama de 8 caracteres puerto serie con las 4 cifras
pause(0.1)
fgets(SerPIC)
% Mantenemos abierto el puerto RS232
end
fprintf(SerPIC,'AA003838')
fprintf(SerPIC,'FIN COMUNICACION RS232')

% Envia la trama de cierre de puerto serie con 4 cifras (3838)


% Envia ultimo mensaje de termino de comunicacion RS232

fclose(SerPIC);
delete(SerPIC)
clear SerPIC
clear;
clc;
close all;

%
%
%
%
%
%

Cerramos el puerto RS232


Borramos el puerto RS232 abierto
Se limpia el puerto para un nuevo envio
Limpiamos el Workspace
Limpiamos el Command Window
Cerramos todo

fprintf('Fin comunicacion RS232 \n')

% Se envia termino de comunicacion RS232 al Command Window de MATLAB

7.3.- Archivo en MATLAB denominado CONTEO_1.m


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Programa CONTEO_1 que permite la comunicacion RS232 entre MATLAB y PROTEUS
% MATLAB utiliza el puerto COM2 y PROTEUS utiliza el puerto COM1.
% Se podra visualizar en PROTEUS el envio de un codigo numerico de cuatro cifras desde 0000 hasta 9999
% Los cuatro primeros caracteres AA00 corresponden a un codigo de identificacion
% Con este codigo el microcontrolador podra saber cual es el inicio de conteo seleccionando los ultimos caracteres
% de cada envio que corresponden al numero en proceso del conteo
%
% INGENIERO ELECTRONICO MONTEZA ZEVALLOS FIDEL TOMAS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
clc;
close all;

% Limpiamos el Workspace
% Limpiamos el Command Window
% Cerramos todo

SerPIC = serial('COM2');
% Se selecciona el COM2
set(SerPIC,'BaudRate',4800);
% Define velocidad
set(SerPIC,'DataBits',8);
% Define numero de bits
serPIC.Terminator='CR';
% Comunicacion constante sin caracter de terminacion
set(SerPIC,'Parity','none');
% Sin paridad
set(SerPIC,'StopBits',1);
% Numero de bits de stop 1
set(SerPIC,'FlowControl','none');
% Sin control de hardware, o software
%Send (RTS) and Clear to Send (CTS) pins to control data flow.
fopen(SerPIC);
% Abre el puerto RS232
fprintf('\n Presiona Enter para iniciar la transmision RS232\n')
pause
% La pausa se levantara al presionar ENTER

% Se inicia el conteo directamente desde el numero 0000 hasta 0009


fprintf(SerPIC,'AA000000')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000001')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000002')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232

fprintf(SerPIC,'AA000003')
pause(0.1)
fprintf(SerPIC,'AA000004')
pause(0.1)
fprintf(SerPIC,'AA000005')
pause(0.1)
fprintf(SerPIC,'AA000006')
pause(0.1)
fprintf(SerPIC,'AA000007')
pause(0.1)
fprintf(SerPIC,'AA000008')
pause(0.1)
fprintf(SerPIC,'AA000009')
pause(0.1)

%
%
%
%
%
%
%
%
%
%
%
%
%
%

Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa

la
de
la
de
la
de
la
de
la
de
la
de
la
de

trama de 8 caracteres al puerto serie COM1


coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232

% Se inicia el conteo directamente desde el numero 0010 hasta 0099


fprintf(SerPIC,'AA000010')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000011')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000012')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000013')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000014')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000015')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000016')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000017')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000018')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000019')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000020')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000021')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000022')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000023')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000024')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232

fprintf(SerPIC,'AA000025')
pause(0.1)
fprintf(SerPIC,'AA000026')
pause(0.1)
fprintf(SerPIC,'AA000027')
pause(0.1)
fprintf(SerPIC,'AA000028')
pause(0.1)
fprintf(SerPIC,'AA000029')
pause(0.1)
fprintf(SerPIC,'AA000030')
pause(0.1)
fprintf(SerPIC,'AA000031')
pause(0.1)
fprintf(SerPIC,'AA000032')
pause(0.1)
fprintf(SerPIC,'AA000033')
pause(0.1)
fprintf(SerPIC,'AA000034')
pause(0.1)
fprintf(SerPIC,'AA000035')
pause(0.1)
fprintf(SerPIC,'AA000036')
pause(0.1)
fprintf(SerPIC,'AA000037')
pause(0.1)
fprintf(SerPIC,'AA000038')
pause(0.1)
fprintf(SerPIC,'AA000039')
pause(0.1)
fprintf(SerPIC,'AA000040')
pause(0.1)
fprintf(SerPIC,'AA000041')
pause(0.1)
fprintf(SerPIC,'AA000042')
pause(0.1)
fprintf(SerPIC,'AA000043')
pause(0.1)
fprintf(SerPIC,'AA000044')
pause(0.1)
fprintf(SerPIC,'AA000045')
pause(0.1)
fprintf(SerPIC,'AA000046')
pause(0.1)
fprintf(SerPIC,'AA000047')
pause(0.1)
fprintf(SerPIC,'AA000048')

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia

la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la

trama de 8 caracteres al puerto serie COM1


coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1

pause(0.1)
fprintf(SerPIC,'AA000049')
pause(0.1)
fprintf(SerPIC,'AA000050')
pause(0.1)
fprintf(SerPIC,'AA000051')
pause(0.1)
fprintf(SerPIC,'AA000052')
pause(0.1)
fprintf(SerPIC,'AA000053')
pause(0.1)
fprintf(SerPIC,'AA000054')
pause(0.1)
fprintf(SerPIC,'AA000055')
pause(0.1)
fprintf(SerPIC,'AA000056')
pause(0.1)
fprintf(SerPIC,'AA000057')
pause(0.1)
fprintf(SerPIC,'AA000058')
pause(0.1)
fprintf(SerPIC,'AA000059')
pause(0.1)
fprintf(SerPIC,'AA000060')
pause(0.1)
fprintf(SerPIC,'AA000061')
pause(0.1)
fprintf(SerPIC,'AA000062')
pause(0.1)
fprintf(SerPIC,'AA000063')
pause(0.1)
fprintf(SerPIC,'AA000064')
pause(0.1)
fprintf(SerPIC,'AA000065')
pause(0.1)
fprintf(SerPIC,'AA000066')
pause(0.1)
fprintf(SerPIC,'AA000067')
pause(0.1)
fprintf(SerPIC,'AA000068')
pause(0.1)
fprintf(SerPIC,'AA000069')
pause(0.1)
fprintf(SerPIC,'AA000070')
pause(0.1)
fprintf(SerPIC,'AA000071')
pause(0.1)

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa

de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de

coordinacion para la comunicacion RS232


trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232

fprintf(SerPIC,'AA000072')
pause(0.1)
fprintf(SerPIC,'AA000073')
pause(0.1)
fprintf(SerPIC,'AA000074')
pause(0.1)
fprintf(SerPIC,'AA000075')
pause(0.1)
fprintf(SerPIC,'AA000076')
pause(0.1)
fprintf(SerPIC,'AA000077')
pause(0.1)
fprintf(SerPIC,'AA000078')
pause(0.1)
fprintf(SerPIC,'AA000079')
pause(0.1)
fprintf(SerPIC,'AA000080')
pause(0.1)
fprintf(SerPIC,'AA000081')
pause(0.1)
fprintf(SerPIC,'AA000082')
pause(0.1)
fprintf(SerPIC,'AA000083')
pause(0.1)
fprintf(SerPIC,'AA000084')
pause(0.1)
fprintf(SerPIC,'AA000085')
pause(0.1)
fprintf(SerPIC,'AA000086')
pause(0.1)
fprintf(SerPIC,'AA000087')
pause(0.1)
fprintf(SerPIC,'AA000088')
pause(0.1)
fprintf(SerPIC,'AA000089')
pause(0.1)
fprintf(SerPIC,'AA000090')
pause(0.1)
fprintf(SerPIC,'AA000091')
pause(0.1)
fprintf(SerPIC,'AA000092')
pause(0.1)
fprintf(SerPIC,'AA000093')
pause(0.1)
fprintf(SerPIC,'AA000094')
pause(0.1)
fprintf(SerPIC,'AA000095')

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia

la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la

trama de 8 caracteres al puerto serie COM1


coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1

pause(0.1)
fprintf(SerPIC,'AA000096')
pause(0.1)
fprintf(SerPIC,'AA000097')
pause(0.1)
fprintf(SerPIC,'AA000098')
pause(0.1)
fprintf(SerPIC,'AA000099')
pause(0.1)

%
%
%
%
%
%
%
%
%

Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa

de
la
de
la
de
la
de
la
de

coordinacion para la comunicacion RS232


trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232

% Se inicia el conteo directamente desde el numero 0100 hasta 0200


fprintf(SerPIC,'AA000100')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000101')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000102')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000103')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000104')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000105')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000106')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000107')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000108')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000109')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000110')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000111')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000112')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000113')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000114')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000115')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000116')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.1)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'AA000117')
% Envia la trama de 8 caracteres al puerto serie COM1

pause(0.1)
fprintf(SerPIC,'AA000118')
pause(0.1)
fprintf(SerPIC,'AA000119')
pause(0.1)
fprintf(SerPIC,'AA000120')
pause(0.1)
fprintf(SerPIC,'AA000121')
pause(0.1)
fprintf(SerPIC,'AA000122')
pause(0.1)
fprintf(SerPIC,'AA000123')
pause(0.1)
fprintf(SerPIC,'AA000124')
pause(0.1)
fprintf(SerPIC,'AA000125')
pause(0.1)
fprintf(SerPIC,'AA000126')
pause(0.1)
fprintf(SerPIC,'AA000127')
pause(0.1)
fprintf(SerPIC,'AA000128')
pause(0.1)
fprintf(SerPIC,'AA000129')
pause(0.1)
fprintf(SerPIC,'AA000130')
pause(0.1)
fprintf(SerPIC,'AA000131')
pause(0.1)
fprintf(SerPIC,'AA000132')
pause(0.1)
fprintf(SerPIC,'AA000133')
pause(0.1)
fprintf(SerPIC,'AA000134')
pause(0.1)
fprintf(SerPIC,'AA000135')
pause(0.1)
fprintf(SerPIC,'AA000136')
pause(0.1)
fprintf(SerPIC,'AA000137')
pause(0.1)
fprintf(SerPIC,'AA000138')
pause(0.1)
fprintf(SerPIC,'AA000139')
pause(0.1)
fprintf(SerPIC,'AA000140')
pause(0.1)

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa

de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de

coordinacion para la comunicacion RS232


trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232

fprintf(SerPIC,'AA000150')
pause(0.1)
fprintf(SerPIC,'AA000151')
pause(0.1)
fprintf(SerPIC,'AA000152')
pause(0.1)
fprintf(SerPIC,'AA000153')
pause(0.1)
fprintf(SerPIC,'AA000154')
pause(0.1)
fprintf(SerPIC,'AA000155')
pause(0.1)
fprintf(SerPIC,'AA000156')
pause(0.1)
fprintf(SerPIC,'AA000157')
pause(0.1)
fprintf(SerPIC,'AA000158')
pause(0.1)
fprintf(SerPIC,'AA000159')
pause(0.1)
fprintf(SerPIC,'AA000160')
pause(0.1)
fprintf(SerPIC,'AA000161')
pause(0.1)
fprintf(SerPIC,'AA000162')
pause(0.1)
fprintf(SerPIC,'AA000163')
pause(0.1)
fprintf(SerPIC,'AA000164')
pause(0.1)
fprintf(SerPIC,'AA000165')
pause(0.1)
fprintf(SerPIC,'AA000166')
pause(0.1)
fprintf(SerPIC,'AA000167')
pause(0.1)
fprintf(SerPIC,'AA000168')
pause(0.1)
fprintf(SerPIC,'AA000169')
pause(0.1)
fprintf(SerPIC,'AA000170')
pause(0.1)
fprintf(SerPIC,'AA000171')
pause(0.1)
fprintf(SerPIC,'AA000172')
pause(0.1)
fprintf(SerPIC,'AA000173')

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia

la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la

trama de 8 caracteres al puerto serie COM1


coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1

pause(0.1)
fprintf(SerPIC,'AA000174')
pause(0.1)
fprintf(SerPIC,'AA000175')
pause(0.1)
fprintf(SerPIC,'AA000176')
pause(0.1)
fprintf(SerPIC,'AA000177')
pause(0.1)
fprintf(SerPIC,'AA000178')
pause(0.1)
fprintf(SerPIC,'AA000179')
pause(0.1)
fprintf(SerPIC,'AA000180')
pause(0.1)
fprintf(SerPIC,'AA000181')
pause(0.1)
fprintf(SerPIC,'AA000182')
pause(0.1)
fprintf(SerPIC,'AA000183')
pause(0.1)
fprintf(SerPIC,'AA000184')
pause(0.1)
fprintf(SerPIC,'AA000185')
pause(0.1)
fprintf(SerPIC,'AA000186')
pause(0.1)
fprintf(SerPIC,'AA000187')
pause(0.1)
fprintf(SerPIC,'AA000188')
pause(0.1)
fprintf(SerPIC,'AA000189')
pause(0.1)
fprintf(SerPIC,'AA000190')
pause(0.1)
fprintf(SerPIC,'AA000191')
pause(0.1)
fprintf(SerPIC,'AA000192')
pause(0.1)
fprintf(SerPIC,'AA000193')
pause(0.1)
fprintf(SerPIC,'AA000194')
pause(0.1)
fprintf(SerPIC,'AA000195')
pause(0.1)
fprintf(SerPIC,'AA000196')
pause(0.1)

%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%

Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa

de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de
la
de

coordinacion para la comunicacion RS232


trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232

fprintf(SerPIC,'AA000197')
pause(0.1)
fprintf(SerPIC,'AA000198')
pause(0.1)
fprintf(SerPIC,'AA000199')
pause(0.1)
fprintf(SerPIC,'AA000200')
pause(0.1)

%
%
%
%
%
%
%
%

Envia
Pausa
Envia
Pausa
Envia
Pausa
Envia
Pausa

la
de
la
de
la
de
la
de

trama de 8 caracteres al puerto serie COM1


coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232
trama de 8 caracteres al puerto serie COM1
coordinacion para la comunicacion RS232

fclose(SerPIC);
delete(SerPIC)
clear SerPIC
clear;
clc;
close all;

%
%
%
%
%
%

Cerramos el puerto RS232


Borramos el puerto RS232 abierto
Se limpia el puerto para un nuevo envio
Limpiamos el Workspace
Limpiamos el Command Window
Cerramos todo

fprintf('\n Fin comunicacion RS232 \n')

% Se envia termino de comunicacion RS232 al Command Window de MATLAB

7.4.- Archivo en MATLAB denominado CONTEO_2.m


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Programa CONTEO_2 que permite la comunicacion RS232 entre MATLAB y PROTEUS
% MATLAB utiliza el puerto COM2 y PROTEUS utiliza el puerto COM1
% Se podra visualizar en PROTEUS el envio de un codigo numerico de cuatro cifras desde 0000 hasta 9999
% Los cuatro primeros caracteres AA00 corresponden a un codigo de identificacion
% Con este codigo el microcontrolador podra saber cual es el inicio de conteo seleccionando los ultimos caracteres
% de cada envio que corresponden al numero en proceso del conteo
%
% INGENIERO ELECTRONICO MONTEZA ZEVALLOS FIDEL TOMAS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
clc;
close all;

% Limpiamos el Workspace
% Limpiamos el Command Window
% Cerramos todo

SerPIC = serial('COM2');
set(SerPIC,'BaudRate',4800);
set(SerPIC,'DataBits',8);
serPIC.Terminator='CR';
set(SerPIC,'Parity','none');
set(SerPIC,'StopBits',1);
set(SerPIC,'FlowControl','none');

%
%
%
%
%
%
%

Se selecciona el COM2
Define velocidad
Define numero de bits
Comunicacion constante sin caracter de terminacion
Sin paridad
Numero de bits de stop 1
Sin control de hardware, o software

fopen(SerPIC);

% Abre el puerto RS232

fprintf('\n Presiona Enter para iniciar la transmision RS232\n')


pause
% La pausa se levantara al presionar ENTER
% Zona de inicio de conteo desde 0000 hasta 0010
for h=1:1:10
% Conteo de inicio desde 0000 hasta 0010
pause(0.01)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'%s','AA00000')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.01)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,num2str(h))
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.01)
% Pausa de coordinacion para la comunicacion RS232
end
% Zona de inicio de conteo desde 0010 hasta 0100
for i=10:1:100
% Conteo de inicio desde 0010 hasta 0100
pause(0.01)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'%s','AA0000')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.01)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,num2str(i))
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.01)
% Pausa de coordinacion para la comunicacion RS232
end
% Zona de inicio de conteo desde 0100 hasta 1000
for j=100:1:1000
% Conteo de inicio desde 0100 hasta 1000
pause(0.01)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'%s','AA000')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.01)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,num2str(j))
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.01)
end
% Zona de inicio de conteo desde 1000 hasta 10000
for k=1000:1:1500
% Conteo de inicio desde 1000 hasta 10000
pause(0.01)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,'%s','AA00')
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.01)
% Pausa de coordinacion para la comunicacion RS232
fprintf(SerPIC,num2str(k))
% Envia la trama de 8 caracteres al puerto serie COM1
pause(0.01)
end

fclose(SerPIC);
delete(SerPIC)
clear SerPIC

% Cerramos el puerto RS232


% Borramos el puerto RS232 abierto
% Se limpia el puerto para un nuevo envio

clear;
clc;
close all;

% Limpiamos el Workspace
% Limpiamos el Command Window
% Cerramos todo

fprintf('\n Fin comunicacion RS232 \n')

% Se envia termino de comunicacion RS232 al Command Window de MATLAB

7.5.- Archivo en MATLAB denominado CONTEO_3.m


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Programa CONTEO_3 que permite la comunicacion RS232 entre MATLAB y PROTEUS
% MATLAB utiliza el puerto COM2 y PROTEUS utiliza el puerto COM1
% Se podra visualizar en PROTEUS el envio de un codigo numerico de cuatro cifras desde 0000 hasta 9999
% Los cuatro primeros caracteres AA00 corresponden a un codigo de identificacion
% Con este codigo el microcontrolador podra saber cual es el inicio de conteo seleccionando los ultimos caracteres
% de cada envio que corresponden al numero en proceso del conteo
%
% INGENIERO ELECTRONICO MONTEZA ZEVALLOS FIDEL TOMAS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
clc;
close all;

% Limpiamos el Workspace
% Limpiamos el Command Window
% Cerramos todo

SerPIC = serial('COM2');
% Se selecciona el COM2
set(SerPIC,'BaudRate',4800);
% Define velocidad
set(SerPIC,'DataBits',8);
% Define numero de bits
serPIC.Terminator='CR';
% Comunicacion constante sin caracter de terminacion
set(SerPIC,'Parity','none');
% Sin paridad
set(SerPIC,'StopBits',1);
% Numero de bits de stop 1
set(SerPIC,'FlowControl','none');
% Sin control de hardware, o software
%Send (RTS) and Clear to Send (CTS) pins to control data flow.
fopen(SerPIC);
% Abre el puerto RS232
fprintf('\n Presiona Enter para iniciar la transmision RS232\n')
pause
% La pausa se levantara al presionar ENTER

% Inicio de conteo desde 0000 hasta 10000


for h=1:1:1500
pause(0.01)

% Conteo de inicio desde 0000 hasta 0010


% Pausa de coordinacion para la comunicacion RS232

if h>0 && h<10


fprintf(SerPIC,'%s','AA00000')
pause(0.01)
fprintf(SerPIC,num2str(h))
pause(0.01)
end

%
%
%
%
%

Condicionamos si el valor de h esta entre 1 y 10


Envia la trama de 8 caracteres al puerto serie COM1
Pausa de coordinacion para la comunicacion RS232
Envia la trama de 8 caracteres al puerto serie COM1
Pausa de coordinacion para la comunicacion RS232

if h>10 && h<100


fprintf(SerPIC,'%s','AA0000')
pause(0.01)
fprintf(SerPIC,num2str(h))
pause(0.01)
end

%
%
%
%
%

Condicionamos si el valor de h esta entre 10 y 100


Envia la trama de 8 caracteres al puerto serie COM1
Pausa de coordinacion para la comunicacion RS232
Envia la trama de 8 caracteres al puerto serie COM1
Pausa de coordinacion para la comunicacion RS232

if h>100 && h<1000


fprintf(SerPIC,'%s','AA000')
pause(0.01)
fprintf(SerPIC,num2str(h))
pause(0.01)
end

%
%
%
%
%

Condicionamos si el valor de h esta entre 100 y 1000


Envia la trama de 8 caracteres al puerto serie COM1
Pausa de coordinacion para la comunicacion RS232
Envia la trama de 8 caracteres al puerto serie COM1
Pausa de coordinacion para la comunicacion RS232

if h>1000 && h<10000


fprintf(SerPIC,'%s','AA00')
pause(0.01)
fprintf(SerPIC,num2str(h))
pause(0.01)
end

%
%
%
%
%

Condicionamos si el valor de h esta entre 1000 y 10000


Envia la trama de 8 caracteres al puerto serie COM1
Pausa de coordinacion para la comunicacion RS232
Envia la trama de 8 caracteres al puerto serie COM1
Pausa de coordinacion para la comunicacion RS232

fclose(SerPIC);
delete(SerPIC)
clear SerPIC
clear;
clc;
close all;

%
%
%
%
%
%

Cerramos el puerto RS232


Borramos el puerto RS232 abierto
Se limpia el puerto para un nuevo envio
Limpiamos el Workspace
Limpiamos el Command Window
Cerramos todo

fprintf('\n Fin comunicacion RS232 \n')

% Se envia termino de comunicacion RS232 al Command Window de MATLAB

end

8.- Presentacin de las lneas de algoritmo implementado en MicroCode Studio para el mcrocontrolador PIC16F877A.
En estas lneas el lector podr ejecutarlas directamente desde el mencionado programa y luego grabarlas en el microcontrolador
acordado
'*******************************************************************************
'* Name : DME.BAS
'* Author : ING ELECTRONICO MONTEZA ZEVALLOS FIDEL TOMAS
'* Notice : Copyright (c) 2009 [select VIEW...EDITOR OPTIONS]
'*
: All Rights Reserved
'* Date : 05/09/2013
'* Version : 1.0
'* Notes : Conteo 0 a 9999 con el PIC16F877A y cuatro decoder BCD a siete
'*
segmentos 74LS47 (Logica negativa)
'*
El codigo convenido esta dado por:
'*
AA00 abcd = Reset y AA01 abcd = Indicacion numerica
'*******************************************************************************
define osc 4
TRISB = 0
PORTB = 0
TRISC.6 = 0
TRISC.7 = %1
TRISD = 0
PORTD = 0

'Declaramos el PORTB como salida


'Seteamos el PORTB a cero
'Declaramos el PORTC.6 como salida (Tx Serial)
'Declaramos el puerto C.7 como entrada serial
'Declaramos el PORTD como salida
'Seteamos el PORTD a cero

'Variables para recepcionar la trama acordada


y1 VAR BYTE
y2 VAR BYTE
y3 VAR BYTE
y4 VAR BYTE
y5 var byte
y6 var byte
y7 var byte
y8 var byte
'Variables para armar la informacion de distancia a ser presentada en los displays
DATO VAR word
'Variable para recomposicion polinomica de distancia
DATO1 VAR BYTE
'Variable para primer caracter de unidades
DATO2 VAR BYTE
'Variable para primer caracter de decenas
DATO3 VAR BYTE
'Variable para primer caracter de centenas
DATO4 VAR BYTE
'Variable para primer caracter de millares
B1 VAR BYTE

*
*
*
*
*
*
*
*
*
*

'Variables para asignar la salida de cada digito de la informacion de distancia


unidad var byte
'Variable para el digito de Unidades
decena var byte
'Variable para el digito de Decenas
centena var byte
'Variable para el digito de Centenas
millar var byte
'Variable para el digito de Millares
un0 var unidad.0
un1 var unidad.1
un2 var unidad.2
un3 var unidad.3

'un0 es el bit cero de unidad


'un1 es el bit uno de unidad
'un2 es el bit dos de unidad
'un3 es el bit tres de unidad

de0 var decena.0


de1 var decena.1
de2 var decena.2
de3 var decena.3

'de0 es el bit cero de decena


'de1 es el bit uno de decena
'de2 es el bit dos de decena
'de3 es el bit tres de decena

ce0 var centena.0


ce1 var centena.1
ce2 var centena.2
ce3 var centena.3

'ce0 es el bit cero de centena


'ce1 es el bit uno de centena
'ce2 es el bit dos de centena
'ce3 es el bit tres de centena

mi0 var millar.0


mi1 var millar.1
mi2 var millar.2
mi3 var millar.3

'mi0 es el bit cero de millar


'mi1 es el bit uno de millar
'mi2 es el bit dos de millar
'mi3 es el bit tres de millar

INICIO:
'Recepcion serial a 9600 Baudios (84)
'Recepcion serial a 4800 Baudios (188)
'Recordar: (y1=A); (y2=A); (y3=0); (y4=0 o y4=1) Son parametros rigidos de la trama
'Mientras y5, y6, y7, y8 representan caracteres numericos de la trama
SERIN2 PORTC.7,188,10,NO_DATO,[y1,y2,y3,y4,y5,y6,y7,y8,B1]
'Recordar Codigo ASCII en hexadecimal: $41=A; $30=0; $31=1
IF y1=$41 AND y2=$41 AND y3=$30 AND y4=$30 THEN RESET
IF y1=$41 AND y2=$41 AND y3=$30 AND y4=$31 THEN VARIABLES
GOTO INICIO
'Etiqueta para resetear el sistema a CERO
RESET:

'Trama: AA00
'Trama: AA01

'DATO4=0
'DATO3=0
'DATO2=0
'DATO1=0
'GOTO CALCULO
goto VARIABLES
'Etiqueta para asignar valores de la informacion numerica
VARIABLES:
if y5=$30 then DATO4=0
if y5=$31 then DATO4=1
if y5=$32 then DATO4=2
if y5=$33 then DATO4=3
if y5=$34 then DATO4=4
if y5=$35 then DATO4=5
if y5=$36 then DATO4=6
if y5=$37 then DATO4=7
if y5=$38 then DATO4=8
if y5=$39 then DATO4=9
if y6=$30 then DATO3=0
if y6=$31 then DATO3=1
if y6=$32 then DATO3=2
if y6=$33 then DATO3=3
if y6=$34 then DATO3=4
if y6=$35 then DATO3=5
if y6=$36 then DATO3=6
if y6=$37 then DATO3=7
if y6=$38 then DATO3=8
if y6=$39 then DATO3=9
if y7=$30 then DATO2=0
if y7=$31 then DATO2=1
if y7=$32 then DATO2=2
if y7=$33 then DATO2=3
if y7=$34 then DATO2=4
if y7=$35 then DATO2=5
if y7=$36 then DATO2=6
if y7=$37 then DATO2=7
if y7=$38 then DATO2=8
if y7=$39 then DATO2=9

if y8=$30 then DATO1=0


if y8=$31 then DATO1=1
if y8=$32 then DATO1=2
if y8=$33 then DATO1=3
if y8=$34 then DATO1=4
if y8=$35 then DATO1=5
if y8=$36 then DATO1=6
if y8=$37 then DATO1=7
if y8=$38 then DATO1=8
if y8=$39 then DATO1=9
GOTO CALCULO
'Etiqueta para realizar el calculo de la informacion numerica y visualizarlo en los displays
CALCULO:
DATO = (DATO4*1000)+(DATO3*100)+(DATO2*10)+(DATO1*1) 'Recomposicion polinomica de DATO
millar=DATO/1000
'Resultado para el decoder de los Millares
centena=(DATO-millar*1000)/100
'Resultado para el decoder de las Centenas
decena=((DATO-millar*1000)-centena*100)/10
'Resultado para el decoder de las Decenas
unidad=((DATO-millar*1000)-centena*100)-decena*10
'Resultado para el decoder de las Unidades
PORTD.4=mi0
PORTD.5=mi1
PORTD.6=mi2
PORTD.7=mi3
PORTD.0=ce0
PORTD.1=ce1
PORTD.2=ce2
PORTD.3=ce3
PORTB.4=de0
PORTB.5=de1
PORTB.6=de2
PORTB.7=de3
PORTB.0=un0
PORTB.1=un1
PORTB.2=un2
PORTB.3=un3
'Transmision serial a 9600 Baudios (84)

'Transmision serial a 4800 Baudios (188)


serout2 PORTC.6,188,["$","$",dec4 dato,10,13] 'Transmision serial para confirmar la salida
goto INICIO
no_dato:
goto INICIO
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'DISPOSICION DE LOS TERMINALES DEL DISPLAY DE ANODO COMUN DE 2 cm
'
'
a
g f Co a b
'
--------. . . . .
'
|
|
'
f|
|b
'
| g |
'
--------'
|
|
'
e|
|c
'
|
|
. . . . .
'
--------- o
e d Co c pto
'
d
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'DISPOSICION DE LOS TERMINALES DEL DISPLAY DE ANODO COMUN DE 1 cm
'
'
a
b
Co
f
'
--------.
.
.
'
|
|
a
g
'
f|
|b
.
.
'
| g |
'
--------c
d
'
|
|
.
.
'
e|
|c
'
|
|
.
.
.
'
--------- o
pto
Co
e
'
d
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

9.- Presentacin archivo SERIAL_COM1 implementado en la Interfaz Grfica de Usuario (GUI) MATLAB para comunicacin RS232.

Se escribe el comando guide en el Command Window a fin de iniciar la creacin de la ventana de interface de usuario

Esta es la ventana en donde se creara la GUI nueva o caso contrario se abrir una ya existente

En este caso aperturamos un archivo GUI ya existente tal como se muestra

Aqu se muestra la Interface creada y lleva por nombre SERIAL_COM1

Podemos apreciar la operacin simultanea entre el GUI desarrollado en MATLAB y PROTEUS

9.1.- Archivo SERIAL:COM1.m


En este archivo implementado exclusivamente para la comunicacin RS232 se podra apreciar las ultimas lineas de programacion
que fueron incrementadas, la finalidad es que en otro video donde se describe la creacion de este tipo de interfaces y que sera
publicada en el canal YOUTUBE del autor, el ususario pueda interpretar correctamente los pasos a seguir a fin de aprender a
disear y programar este tipo de archivos.

function varargout = SERIAL_COM1(varargin)


% SERIAL_COM1 M-file for Serial_COM1.fig
% SERIAL_COM1, by itself, creates a new SERIAL_COM1 or raises the existing singleton*.
%
% H = SERIAL_COM1 returns the handle to a new SERIAL_COM1 or the handle to the existing singleton*.
%
% SERIAL_COM1('CALLBACK',hObject,eventData,handles,...) calls the local function named CALLBACK in
% SERIAL_COM1.M with the given input arguments.
%
% SERIAL_COM1('Property','Value',...) creates a new SERIAL_COM1 or raises the existing singleton*.
% Starting from the left, property value pairs are applied to the GUI before Serial_COM1_OpeningFcn gets called.
% An unrecognized property name or invalid value makes property application stop.
% All inputs are passed to Serial_COM1_OpeningFcn via varargin.
%
% See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one instance to run (singleton)".
% See also: GUIDE, GUIDATA, GUIHANDLES
%
% Edit the above text to modify the response to help Serial_COM1
%
% Last Modified by GUIDE v2.5 08-Apr-2016 22:53:10
%
% Begin initialization code - DO NOT EDIT
%
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Serial_COM1_OpeningFcn, ...
'gui_OutputFcn', @Serial_COM1_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback',
[]);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before Serial_COM1 is made visible.


function Serial_COM1_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject
handle to figure

% eventdata
% handles
% varargin

reserved - to be defined in a future version of MATLAB


structure with handles and user data (see GUIDATA)
command line arguments to Serial_COM1 (see VARARGIN)

% Choose default command line output for Serial_COM1


handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes Serial_COM1 wait for user response (see UIRESUME)
% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = Serial_COM1_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;

function mydata_Callback(hObject, eventdata, handles)


% hObject
handle to mydata (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of mydata as text
%
str2double(get(hObject,'String')) returns contents of mydata as a double

% --- Executes during object creation, after setting all properties.


function mydata_CreateFcn(hObject, eventdata, handles)
% hObject
handle to mydata (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');
end

% --- Executes on button press in send.


function send_Callback(hObject, eventdata, handles)
% hObject
handle to send (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
data = get(handles.mydata, 'string');
% La variable mydata corresponde a la asignada a la Caja de Editor de
Texto del archivo guide SERIAL_COM1
SerPIC = serial('COM2', 'BaudRate', 4800);
% La variable SerPIC corresponde a la asignada en los archivos SERIAL
para nombrar al puerto COM
fopen(SerPIC);
% Abre el puerto RS232
fprintf(SerPIC, data);
% Se envia la data
fclose(SerPIC);
% Cerramos el puerto RS232
delete(SerPIC)
% Borramos el puerto RS232 abierto

Espero que esta aplicacin sea de mucha utilidad y de seguro debera tener mejoras, las que posteriormente estare publicando.
Gracias.
Ingeniero Electronico Monteza Zevallos Fidel Tomas
V.J.M.J. // A.M.M.J.