Matlab y Comunicacion Rs232 Con Proteus (Version 2)

download Matlab y Comunicacion Rs232 Con Proteus (Version 2)

of 49

Transcript of Matlab y Comunicacion Rs232 Con Proteus (Version 2)

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    1/49

     

    ALGORITMO EN MATLAB DE COMUNICACIÓN RS232 CON PROTEUS 7.6 

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

    Ingeniero Electrónico: Monteza Zevallos Fidel Tomas 

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    2/49

    INTRODUCCION

    En esta oportunidad presento líneas abajo la programación en MATLAB el algoritmo de comunicación directa con PROTEUS. Estacomunicación se realiza mediante el protocolo de comunicación RS232 utilizando puertos creados virtualmente con alguno de estosdos 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 electrónico implementado conPROTEUS se debe tener en cuenta que deberá utilizar el programa MicroCode Studio para confeccionar las líneas del algoritmo querealizara el trabajo de que el microcontrolador PIC16F877A pueda recibir y enviar información con el proto colo RS232 según uncódigo de recepción establecido de cuatro caracteres (AA00).Solo deberá copiar y pegar todas las líneas de programación en el respectivo archivo de MATLAB y ejecutar la simulación, esteproyecto comparado con el publicado con el título ALGORITMO DE ENLACE VISUAL BASIC 6.0 CON PROTEUS 7.6  es más fácilde implementar puesto que si ya tiene ejecutado el proyecto en PROTEUS solo debe ejecutar MATLAB y este realizara

    automáticamente la comunicación.La idea es demostrar que mientras se tenga un hardware ya implementado (El microcontralador PIC16F877A ya programado)cualquier programa que se implemente para su operación 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 valorescorrespondientes de cada herramienta en la Ventana de Propiedades como por ejemplo cambiar los nombres de cada Command deacuerdo las líneas programadas, el intervalo del Timer1, el intervalo del Timer2 y el intervalo del Timer 3 que debieron ser colocadosadecuadamente. Para esta publicación se anexan las respectivas figuras demostrando su aplicación paso a paso. Igualmente las líneas del algoritmo correspondiente al programa MicroCode Studio se publican en este trabajo, solo deberá copiarlasy pegarlas en el programa respectivo para ejecutar su compilación 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 cómo hacerlo y espero que sirva paraayudar a otros investigadores. Posteriormente seguiré  publicando líneas de programación en MATLAB de diversas aplicaciones como Sistema Gravitacional,Interacción de partículas, Cinemática Directa y Cinemática Inversa para robótica, y con mucha más dedicación la ComunicaciónRS232 con microcontroladores, etc.En la siguiente publicación estaré comentando acerca de un programa desarrollado en SIMULINK de MATLAB  sobre temas deControl, toda una novedad, estar atentos. 

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    3/49

    INDICE 

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

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

    3.- Implementación del circuito electrónico con el puerto COM2 en PROTEUS.

    4.- Presentación del programa implementado en MATLAB con el puerto COM1. 

    5.- Inicio de la simulación entre MATLAB (Puerto COM1) y PROTEUS (Puerto COM2).

    6.- Presentación del algoritmo implementado en MicroCode Studio para el mcrocontrolador PIC16F877A. 

    7.- Presentación de los archivos implementados en MATLAB para la comunicación 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.- Presentación de las líneas de algoritmo implementado en MicroCode Studio para el mcrocontrolador PIC16F877A.

    9.- Presentación archivo SERIAL_COM1 implementado en la Interfaz Gráfica de Usuario (GUI) MATLAB para comunicación RS232. 

    9.1.- Archivo SERIAL:COM1.m 

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    4/49

    1.- Creación 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 creación de puertos virtuales RS232 

    Se apertura el programa VIRTUAL SERIAL PORT DRIVER XP4 y utilizamos el menú para la creación de puertos virtuales RS232 

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    5/49

     

    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 comunicación RS232 con el programa VIRTUAL SERIAL PORT DRIVER XP4 lo cerramos

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    6/49

     

    2.- Creación 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 creación de puertos virtuales RS232

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

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    7/49

     

    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) 

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    8/49

     

    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) 

     

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    9/49

    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 comunicación RS232 con el Virtual Serial Ports Emulator (VSPE) lo minimizamos

     

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    10/49

    3.- Implementación del circuito electrónico con el puerto COM2 en PROTEUS.

    Aquí se muestra el circuito electrónico confeccionado en el programa PROTEUS 7.6, considerar el diseño en hardware tal como seencuentra el circuito mostrado. 

     

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    11/49

    Aquí podemos visualizar la ventana con el circuito electrónico del microcontrolador PIC16F877A del programa PROTEUS. Note que elcontador display 7 segmentos se encuentra en CERO y además las ventanas de ingreso (derecha) y salida (izquierda) de información

    en el protocolo RS232 se encuentran vacías.

    4.- Presentación 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.

     

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    12/49

    Visualizamos en MATLAB la ventana Editor en donde figuran las líneas del algoritmo desarrollado para la comunicación RS232. Laslíneas en detalle figuran líneas abajo y se encuentran comentadas 

     

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    13/49

    5.- Inicio de la simulación entre MATLAB (Puerto COM1) y PROTEUS (Puerto COM2).

    Aquí podemos visualizar tanto la ventana Editor de MATLAB en el instante de iniciar la simulación, en este caso no tengo mi carpetareconocida por MATLAB así que se inicie la comunicación RS232 se debe ejecutarAdd to Path.

    Aquí podemos visualizar la ventana del Command Window que solicita ejecutar ENTER para que PROTEUS reciba la informacióndesde MATLAB.

     

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    14/49

    Visualizamos solo la ventana con el circuito electrónico del microcontrolador PIC16F877A del programa PROTEUS en pleno procesode recibir la primera información numérica de confirmación de inicio de la comunicación desde MATLAB. Note que el contador display

    7 segmentos se encuentra en ONCE y además la ventana de ingreso (derecha) se encuentra codificado con AA000011.

     

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    15/49

    Ahora visualizamos la ventana con el circuito electrónico del microcontrolador PIC16F877A del programa PROTEUS en pleno procesode recibir la segunda información numérica desde MATLAB.

     

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    16/49

    Aquí podemos ahora visualizar la ventana con el circuito electrónico del microcontrolador PIC16F877A del programa PROTEUS enpleno proceso de recibir la tercera información numérica desde MATLAB. Note que el contador display 7 segmentos se encuentra enDOS MIL CIENTO DOCE y además las ventanas de ingreso (derecha) se encuentra codificado con AA002112 y salida (izquierda) de

    información en el protocolo RS232 se encuentran codificado con $$2112. 

     

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    17/49

    Aquí podemos ahora visualizar la ventana con el circuito electrónico del microcontrolador PIC16F877A del programa PROTEUS enpleno proceso de recibir la última información numérica desde MATLAB de comprobación de término de la comunicación.

     

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    18/49

    Aquí podemos ahora visualizar la ventana con el circuito electrónico del microcontrolador PIC16F877A del programa PROTEUS enpleno proceso de un conteo automático desde MATLAB.

    Finalmente podemos visualizar la ventana del Command Window que informaFin comunicación RS232 con PROTEUS reciba la

    información desde MATLAB. 

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    19/49

    6.- Presentación del algoritmo implementado en MicroCode Studio para el mcrocontrolador PIC16F877A. 

    Se muestra el programa MicroCode Studio que servirá para la creación del algoritmo que deberá ser grabado en el microcontroladorPIC16F877A que se implementó en PROTEUS.. 

    Con la apertura el programa MicroCode Studio se puede visualizar las líneas del algoritmo implementado para ser grabado en elmicrocontrolador PIC16F877A. Estas líneas de programación también se encuentran publicadas en este documento. 

     

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    20/49

    Aquí se muestra el programa MicroCode Studio realizando la selección del microcontrolador a utilizar (PIC16F877A), una vez realizada

    esta selección se deberá de compilar las líneas del algoritmo pues se debe recordar que el microcontrolador solo entiende UNOS yCEROS, no comprende las líneas escritas. 

    En este paso se muestra la compilación de las líneas del algoritmo desarrollado, este proceso creara un archico del tipo ASM que semuestra en la siguiente figura. 

     

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    21/49

    Aquí apreciamos que una vez que compilamos el archivo DME tipo ASM del programa MicroCode Studio se creara el archivo DME tipoHEX 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 

     

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    22/49

    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 

     

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    23/49

    7.- Presentación de los archivos implementados en MATLAB para la comunicación RS232. 

    A continuación se presenta las líneas de programación en MATLAB que deben realizar la comunicación RS232 con PROTEUS,posteriormente están publicadas las líneas del programa MicroCode Studio para ser utilizado en el microcontrolador PIC16F877A.Todos los archivos que se presentaran en MATLAB se podrán visualizar la transmisión de una serie de caracteres numéricos conuna codificación característica que el microcontrolador del circuito en PROTEUS lo pueda comprender, y que está comprendida de

    la siguiente forma: 

    AA00XXXX 

    AA00 es el código de inicio de cada trama de información que lleva la trasmisión desde MATLAB XXXX son los cuatro siguientes caracteres que identifican los números transmitidos desde MATLAB

    En este trabajo se presentaran cinco archivos implementados en MATLAB y que el lector podrá poner en ejecución 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 descripción del trabajo que realiza, además cada uno de ellos se encuentra comentado en

    cada línea 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; % Limpiamos el Workspace 

    clc; % Limpiamos el Command Window 

    close all; % 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 terminacionset(SerPIC,'Parity','none'); % Sin paridad

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    24/49

    set(SerPIC,'StopBits',1); % Numero de bits de stop 1

    set(SerPIC,'FlowControl','none'); % 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 

    % 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') % Envia la trama de cierre de puerto serie con 4 cifras (3838) 

    fprintf(SerPIC,'FIN COMUNICACION RS232') % Envia ultimo mensaje de termino de comunicacion RS232 

    fclose(SerPIC); % Cerramos el puerto RS232 

    delete(SerPIC) % Borramos el puerto RS232 abierto 

    clear SerPIC  % Se limpia el puerto para un nuevo envio 

    clear; % Limpiamos el Workspace 

    clc; % Limpiamos el Command Window 

    close all;  % Cerramos todo 

    fprintf('\n Fin comunicacion RS232 \n') % Se envia termino de comunicacion RS232 al Command Window de MATLAB 

    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 

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    25/49

    % INGENIERO ELECTRONICO MONTEZA ZEVALLOS FIDEL TOMAS 

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

    clear; % Limpiamos el Workspace 

    clc; % Limpiamos el Command Window 

    close all; % Cerramos todo 

    SerPIC = serial('COM2'); % Se selecciona el COM2set(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

    fopen(SerPIC); % 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') % Envia la trama de cierre de puerto serie con 4 cifras (3838) 

    fprintf(SerPIC,'FIN COMUNICACION RS232') % Envia ultimo mensaje de termino de comunicacion RS232 

    fclose(SerPIC); % Cerramos el puerto RS232 

    delete(SerPIC) % Borramos el puerto RS232 abierto 

    clear SerPIC  % Se limpia el puerto para un nuevo envio 

    clear; % Limpiamos el Workspace 

    clc; % Limpiamos el Command Window 

    close all; % Cerramos todo 

     

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    26/49

    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; % Limpiamos el Workspace clc; % Limpiamos el Command Window 

    close all; % 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 

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    27/49

    fprintf(SerPIC,'AA000003') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000004') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000005') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000006') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

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

    fprintf(SerPIC,'AA000008') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000009') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de 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 

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    28/49

    fprintf(SerPIC,'AA000025') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000026') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000027') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000028') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000029') % Envia la trama de 8 caracteres al puerto serie COM1

     

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000030') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000031') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000032') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000033') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000034') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000035') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000036') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000037') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000038') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000039') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000040') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000041') % Envia la trama de 8 caracteres al puerto serie COM1 

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

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000043') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000044') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000045') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000046') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000047') % Envia la trama de 8 caracteres al puerto serie COM1 

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

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    29/49

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000049') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000050') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000051') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000052') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000053') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000054') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000055') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000056') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000057') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000058') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

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

    fprintf(SerPIC,'AA000060') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000061') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000062') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000063') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000064') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

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

    fprintf(SerPIC,'AA000066') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000067') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000068') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000069') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000070') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

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

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    30/49

    fprintf(SerPIC,'AA000072') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000073') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000074') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000075') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000076') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000077') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000078') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000079') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000080') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000081') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000082') % Envia la trama de 8 caracteres al puerto serie COM1 

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

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000084') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000085') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000086') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000087') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000088') % Envia la trama de 8 caracteres al puerto serie COM1 

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

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000090') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000091') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000092') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000093') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000094') % Envia la trama de 8 caracteres al puerto serie COM1 

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

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    31/49

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000096') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000097') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000098') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000099') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de 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 

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    32/49

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000118') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000119') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000120') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000121') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000122') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000123') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000124') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000125') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000126') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000127') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

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

    fprintf(SerPIC,'AA000129') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000130') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000131') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000132') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000133') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

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

    fprintf(SerPIC,'AA000135') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000136') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000137') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000138') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000139') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

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

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    33/49

    fprintf(SerPIC,'AA000150') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000151') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000152') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000153') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000154') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000155') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000156') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000157') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000158') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000159') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000160') % Envia la trama de 8 caracteres al puerto serie COM1 

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

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000162') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000163') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000164') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000165') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000166') % Envia la trama de 8 caracteres al puerto serie COM1 

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

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000168') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000169') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000170') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000171') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000172') % Envia la trama de 8 caracteres al puerto serie COM1 

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

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    34/49

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000174') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000175') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000176') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000177') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000178') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000179') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000180') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000181') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000182') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000183') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

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

    fprintf(SerPIC,'AA000185') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000186') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000187') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000188') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000189') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

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

    fprintf(SerPIC,'AA000191') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000192') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000193') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000194') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000195') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

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

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    35/49

    fprintf(SerPIC,'AA000197') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000198') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000199') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1)  % Pausa de coordinacion para la comunicacion RS232 

    fprintf(SerPIC,'AA000200') % Envia la trama de 8 caracteres al puerto serie COM1 

    pause(0.1) % Pausa de coordinacion para la comunicacion RS232 

    fclose(SerPIC); % Cerramos el puerto RS232 

    delete(SerPIC) % Borramos el puerto RS232 abierto 

    clear SerPIC  % Se limpia el puerto para un nuevo envio 

    clear; % Limpiamos el Workspace 

    clc; % Limpiamos el Command Window 

    close all; % 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; % Limpiamos el Workspace 

    clc; % Limpiamos el Command Window 

    close all; % 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 1set(SerPIC,'FlowControl','none'); % Sin control de hardware, o software

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    36/49

    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); % Cerramos el puerto RS232 

    delete(SerPIC) % Borramos el puerto RS232 abierto 

    clear SerPIC  % Se limpia el puerto para un nuevo envio 

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    37/49

    clear; % Limpiamos el Workspace 

    clc; % Limpiamos el Command Window 

    close all; % 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; % Limpiamos el Workspace 

    clc; % Limpiamos el Command Window 

    close all; % 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 % Conteo de inicio desde 0000 hasta 0010 

    pause(0.01) % Pausa de coordinacion para la comunicacion RS232 

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    38/49

      if h>0 && h10 && h100 && h1000 && h

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    39/49

    8.- Presentación de las líneas de algoritmo implementado en MicroCode Studio para el mcrocontrolador PIC16F877A.En estas líneas el lector podrá ejecutarlas directamente desde el mencionado programa y luego grabarlas en el microcontroladoracordado 

    '*******************************************************************************  '* 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 'Declaramos el PORTB como salida PORTB = 0 'Seteamos el PORTB a cero TRISC.6 = 0 'Declaramos el PORTC.6 como salida (Tx Serial) TRISC.7 = %1 'Declaramos el puerto C.7 como entrada serialTRISD = 0 'Declaramos el PORTD como salida PORTD = 0 '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 displaysDATO VAR word 'Variable para recomposicion polinomica de distanciaDATO1 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 

     

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    40/49

    'Variables para asignar la salida de cada digito de la informacion de distanciaunidad 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 'un0 es el bit cero de unidad un1 var unidad.1 'un1 es el bit uno de unidad un2 var unidad.2 'un2 es el bit dos de unidad un3 var unidad.3 'un3 es el bit tres de unidad 

    de0 var decena.0 'de0 es el bit cero de decena de1 var decena.1 'de1 es el bit uno de decena de2 var decena.2 'de2 es el bit dos de decena de3 var decena.3 'de3 es el bit tres de decena 

    ce0 var centena.0 'ce0 es el bit cero de centena ce1 var centena.1 'ce1 es el bit uno de centena ce2 var centena.2 'ce2 es el bit dos de centena ce3 var centena.3 'ce3 es el bit tres de centena 

    mi0 var millar.0 'mi0 es el bit cero de millarmi1 var millar.1 'mi1 es el bit uno de millar mi2 var millar.2 'mi2 es el bit dos de millar mi3 var millar.3 '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=1IF y1=$41 AND y2=$41 AND y3=$30 AND y4=$30 THEN RESET 'Trama: AA00 IF y1=$41 AND y2=$41 AND y3=$30 AND y4=$31 THEN VARIABLES 'Trama: AA01 GOTO INICIO 

    'Etiqueta para resetear el sistema a CERO RESET: 

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    41/49

    '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=0if 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 

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    42/49

    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) 

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    43/49

    'Transmision serial a 4800 Baudios (188) serout2 PORTC.6,188,["$","$",dec4 dato,10,13] 'Transmision serial para confirmar la salidagoto 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 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    44/49

    9.- Presentación archivo SERIAL_COM1 implementado en la Interfaz Gráfica de Usuario (GUI) MATLAB para comunicación RS232. 

    Se escribe el comando guide en el Command Window a fin de iniciar la creación 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 

     

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    45/49

    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 

     

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    46/49

    Podemos apreciar la operación simultanea entre el GUI desarrollado en MATLAB y PROTEUS 

    9.1.- Archivo SERIAL:COM1.m En este archivo implementado exclusivamente para la comunicación RS232 se podra apreciar las ultimas lineas de programacionque fueron incrementadas, la finalidad es que en otro video donde se describe la creacion de este tipo de interfaces y que serapublicada en el canal YOUTUBE del autor, el  ususario pueda interpretar correctamente los pasos a seguir a fin de aprender adiseñar y programar este tipo de archivos. 

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    47/49

    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 

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    48/49

    % eventdata reserved - to be defined in a future version of MATLAB 

    % handles structure with handles and user data (see GUIDATA) 

    % varargin 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'))

  • 8/18/2019 Matlab y Comunicacion Rs232 Con Proteus (Version 2)

    49/49

      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 aplicación 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.