tesis diseño digital ii

55
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAL DE CIENCIAS Y TECNOLOGIA INGENIERIA ELECTRONICA Sistema de Seguridad Domiciliaria Mediante SMS Utilizando el Microcontrolador (PIC-16F877A) Por FLORES LIMACHI GUIDO ADRIAN PAREDES MILÁN RIBER Trabajo presentado para la materia de Diseño Digital II de la carrera de Ingeniería Electrónica de la Universidad Mayor de San Simón Cochabamba - 2011

Upload: paredes-milan-riber

Post on 01-Jul-2015

1.107 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Tesis Diseño Digital II

UNIVERSIDAD MAYOR DE SAN SIMON FACULTAL DE CIENCIAS Y TECNOLOGIA INGENIERIA ELECTRONICA

Sistema de Seguridad Domiciliaria Mediante SMS

Utilizando el Microcontrolador (PIC-16F877A)

Por

FLORES LIMACHI GUIDO ADRIAN

PAREDES MILÁN RIBER

Trabajo presentado para la materia de Diseño Digital II de la carrera de Ingeniería Electrónica de la

Universidad Mayor de San Simón

Cochabamba - 2011

Page 2: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

Dedicado:

A todas las personas que sembraron esta inquietud, a los compañeros de carrera y de la Universidad Mayor de San Simón por su apoyo, a toda la gente que estuvo desde el comienzo…. Algunos siguen hasta hoy.

Gracias

Page 3: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

INDICE

1. Análisis del Proyecto 1

1.1. Descripción General del Problema. 1

1.2. Objetivo General 1

1.3. Objetivos Específicos 1

1.4. Justificación 2

2. Microcontroladores 3

2.1. ¿Qué es un Microcontrolador? 3

2.2. Arquitectura básica del Microcontrolador PIC-16F877A 3

2.3. Componentes de un Microcontrolador 4

2.3.1. Procesador 4

2.3.1.1. CISC 4

2.3.1.2. RISC 5

2.3.1.3. SISC 5

2.3.2. Memoria 5

2.3.2.1. ROM con máscara 5

2.3.2.2. OTP 6

2.3.2.3. EPROM 6

2.3.2.4. EEPROM, E2PROM o E² PROM 6

2.3.2.5. FLASH 7

2.4. Puertas de E/S 7

2.5. Reloj principal 7

2.6. Recursos Especiales 8

2.6.1. Temporizadores o Timers 8

2.6.2. Perro guardián o Watchdog 9

Page 4: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

2.6.3. Protección ante fallo de alimentación o Brownout 9

2.6.4. Estado de reposo ó de bajo consumo 9

2.6.5. Conversor A/D (CAD) 9

2.6.6. Conversor D/A (CDA) 10

2.6.7. Comparador analógico 10

2.6.8. Modulador de anchura de impulsos o PWM 10

2.6.9. Puertos digitales de E/S 10

2.6.10. Puertas de comunicación 11

2.6.10.1. UART. 11

2.6.10.2. USART. 11

2.6.10.3. Puerta paralela esclava para poder conectarse con los buses de otros microprocesadores. 11

2.6.10.4. USB (Universal Serial Bus). 11

2.6.10.5. Bus I2C. 11

2.6.10.6. CAN (Controller Área Network), 11

3. LA FAMILIA DE LOS PIC 12

3.1. Introducción 12

3.2. La Familia PIC 12

3.2.1. Gama enana. PIC16F8XXX 12

4. El MAX232. 13

5. Servicio de Mensajes Cortos (SMS) 14

5.1. Definición 14

5.2. Introducción 14

5.3. Beneficios del Servicio de Mensajes Cortos (SMS) 15

5.4. Elementos de la Red y su Arquitectura 16

Page 5: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

5.5. Elementos de Señalización 18

5.6. Mensaje Corto Originado (MO - SM) 18

5.7. Mensaje Corto Terminado (MT - SM) 18

5.8. Aplicaciones para SMS 18

6. Comandos AT 20

6.1. Introducción 20

6.2. Control de Llamada 20

6.3. Comandos SMS 20

6.4. Leer un Mensaje SMS 21

6.5. Enviar un SMS 22

7. Desarrollo de la Aplicación 23

7.1. Descripción de la aplicación realizada 23

7.2. Descripción de acciones 23

8. Diseño del Circuito 25

8.1 Modo de comunicación para los puertos COM1 y COM3 26

9. Desarrollo del Proyecto 27

9.1. Justificación del Diseño del Circuito 27

9.2. Los comandos AT Utilizados. 27

9.3. Código Fuente 28

9.3.1. Código Fuente del PIC-16F877A 29

9.4. Librerías Utilizadas 35

9.4.1. P16F877A.INC 35

9.4.2. RETARDOS.INC 42

9.4.3. MACROS.INC 46

9.4.4. cadenas.inc 47

Page 6: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

10. Conclusión. 48

11. Bibliografía. 49

Page 7: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

1

1. Análisis del Proyecto

1.1. Descripción General del Problema.

El uso de Celulares desde hace algunos años dejo de ser objeto de lujo o status social en nuestro país es mas se ha vuelto un instrumento indispensable para la comunicación como bien señala la pagina www.mundoenlinea.cl que “6,1 de cada 10 Chilenos posee un celular y que los mensajes de texto o SMS durante el 2004 sumaron mas de 494 millones en nuestro país ” se hace evidente que cada es mas necesaria la comunicación y por consiguiente la integración que de tecnología y diversas aplicaciones que van haciendo del teléfono celular el computador del futuro. Dentro de los servicios conocidos esta el de los juegos de azar, los mensajes a correos electrónicos, los envíos de mensajes a concursos televisivos, etc. Todo esto es la respuesta a necesidades nacidas gracias al celular ya que este al integrar tecnología y servicios es una herramienta comercial muy potente y de amplia gama de servicios.

Es por esto que hay que aprovechar la tecnología disponible y crear aplicaciones que satisfagan necesidades cotidianas.

1.2. Objetivo General

Lograr la Interacción del usuario con los procesos ligados al Microcontrolador por medio de mensajes cortos de texto SMS utilizando comandos programados para tales acciones.

1.3. Objetivos Específicos

1.- Controlar un Microcontrolador por medio del puerto de comunicaciones.

2.- Desarrollar una Aplicación en Java que permita manejar información por medio del puerto de Comunicaciones.

3.- Desarrollar una Aplicación en Java que permita el envío y recepción de mensajes cortos de texto SMS.

4.- Integración de Java y Microcontroladores.

Page 8: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

2

1.4. Justificación

Debido al explosivo uso de los celulares y la integración que sufren estos a lo largo del tiempo es muy atractivo como programador utilizar esta herramienta como un medio para generar aplicaciones que sean útiles y aplicables al mercado actual, es por esto que crear una aplicación que por medio de mensajes cortos de texto SMS se puedan controlar eventos por medio de un Microcontrolador no es algo fuera de nuestro alcance y amplia nuestra capacidad de interacción con el medio por ejemplo tal como podemos pedir el estado del tiempo por SMS podríamos activar la alarma de la casa o bien si esta se activa recibir un mensaje con la alarma, también se podría utilizar en el control de frigoríficos, etc. Son tantos los problemas que podrían encontrar solución con una aplicación de este tipo solo es cosa de usar la imaginación.

Page 9: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

3

2. MICROCONTROLADORES

2.1. ¿Qué es un Microcontrolador?

Un Microcontrolador es un dispositivo electrónico capaz de llevar a cabo procesos lógicos. Estos procesos o acciones son programados en lenguaje ensamblador por el usuario, y son introducidos en este a través de un programador.

2.2. Arquitectura básica del Microcontrolador PIC-16F877A

Figura 1: Arquitectura básica del Microcontrolador PIC-16F877A

Page 10: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

4

Figura 2: El Microcontrolador PIC-16F877A

2.3. Componentes de un Microcontrolador

2.3.1. Procesador

Es el elemento más importante del Microcontrolador y determina sus principales características, tanto a nivel hardware como software. Se encarga de direccionar la memoria de instrucciones, recibir el código OP de la instrucción en curso, su decodificación y la ejecución de la operación que implica la instrucción, así como la búsqueda de los operandos y el almacenamiento del resultado. Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores actuales.

2.3.1.1. CISC

Un gran número de procesadores usados en los micro - controladores están basados en la filosofía CISC (Computadores de Juego de Instrucciones Complejo). Disponen de más de 80 instrucciones máquina en su repertorio,

Page 11: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

5

algunas de las cuales son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecución. Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas que actúan como macros, es decir, que si las tuviésemos que implementar con instrucciones básicas, acabaríamos con dolor de cabeza.

2.3.1.2. RISC

Tanto la industria de los computadores comerciales como la de los Microcontroladores están decantándose hacia la filosofía RISC (Computadores de Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones máquina es muy reducido y las instrucciones son simples y, generalmente, se ejecutan en un ciclo. La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador.

2.3.1.3. SISC

En los Microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, además de ser reducido, es específico, o sea, las instrucciones se adaptan a las necesidades de la aplicación prevista. Esta filosofía se ha bautizado con el nombre de SISC (Computadores de Juego de Instrucciones Específico).

2.3.2. Memoria

2.3.2.1. ROM con máscara

Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la fabricación del chip. Si tenemos idea de cómo se fabrican los circuitos integrados, sabremos de donde viene el nombre. Estos se fabrican en obleas que contienen varias decenas de chips. Estas obleas se fabrican a partir de procesos fotoquímicos, donde se impregnan capas de silicio y oxido de silicio, y según convenga, se erosionan al exponerlos a la luz.

Como no todos los puntos han de ser erosionados, se sitúa entre la luz y la oblea una mascara con agujeros, de manera que donde deba incidir la luz, esta pasará. Con varios procesos similares pero más complicados se consigue fabricar los transistores y diodos micrométricos que componen un chip. El elevado coste del

Page 12: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

6

diseño de la máscara sólo hace aconsejable el empleo de los Microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades.

2.3.2.2. OTP

El Microcontrolador contiene una memoria no volátil de sólo lectura programable una sola vez por el usuario. OTP (One Time Programmable). Es el usuario quien puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde un PC. La versión OTP es recomendable cuando es muy corto el ciclo de diseño del producto, o bien, en la construcción de prototipos y series muy pequeñas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptación mediante fusibles para proteger el código contenido.

2.3.2.3. EPROM

Los Microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabación se realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cápsulas son de material cerámico y son más caros que los Microcontroladores con memoria OTP que están hechos con material plástico.

2.3.2.4. EEPROM, E2PROM o E² PROM

Se trata de memorias de sólo lectura, programables y borrables eléctricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programación como el borrado, se realizan eléctricamente desde el propio grabador y bajo el control programado de un PC. Es muy cómoda y rápida la operación de grabado y la de borrado. No disponen de ventana de cristal en la superficie. Los Microcontroladores dotados de memoria EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan "grabadores en circuito" que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo. El número de veces que puede grabarse y borrarse una memoria EEPROM es infinito, por lo que no es recomendable una reprogramación

Page 13: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

7

continúa. Son muy idóneos para la enseñanza y la Ingeniería de diseño. Se va extendiendo en los fabricantes la tendencia de incluir una pequeña zona de memoria EEPROM en los circuitos programables para guardar y modificar cómodamente una serie de parámetros que adecuan el dispositivo a las condiciones del entorno. Este tipo de memoria es relativamente lenta.

2.3.2.5. FLASH

Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es más pequeña. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es más rápida y de mayor densidad que la EEPROM. La alternativa FLASH está recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no volátil. Es más veloz y tolera más ciclos de escritura/borrado. Las memorias EEPROM y FLASH son muy útiles al permitir que los Microcontroladores que las incorporan puedan ser reprogramados en circuito, es decir, sin tener que sacar el circuito integrado de la tarjeta.

2.4. Puertas de E/S

Las puertas de Entrada y Salida (E/S) permiten comunicar al procesador con el mundo exterior, a través de interfaces, o con otros dispositivos. Estas puertas, también llamadas puertos, son la principal utilidad de las patas o pines de un microprocesador. Según los controladores de periféricos que posea cada modelo de Microcontrolador, las líneas de E/S se destinan a proporcionar el soporte a las señales de entrada, salida y control.

2.5. Reloj principal

Todos los Microcontroladores disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la sincronización de todas las operaciones del sistema. Esta señal del reloj es el motor del sistema y la que hace que el programa y los contadores avancen. Generalmente, el circuito de reloj está incorporado en el Microcontrolador y sólo se necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia de trabajo. Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos pasivos o bien un resonador cerámico o una red R-C. Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las

Page 14: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

8

instrucciones pero lleva aparejado un incremento del consumo de energía y de calor generado.

2.6. RECURSOS ESPECIALES

Los principales recursos específicos que incorporan los Microcontroladores son:

· Temporizadores o Timers.

· Perro guardián o Watchdog.

· Protección ante fallo de alimentación o Brownout.

· Estado de reposo o de bajo consumo (Sleep mode).

· Conversor A/D (Analógico ->Digital).

· Conversor D/A (Digital ->Analógico).

· Comparador analógico.

· Modulador de anchura de impulsos o PWM (Pulse Wide Modulation).

· Puertas de E/S digitales.

· Puertas de comunicación.

A continuación hablaremos de estos recursos especiales:

2.6.1. Temporizadores o Timers

Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta de acontecimientos que suceden en el exterior (contadores).Para la medida de tiempos se carga un registro con el valor adecuado y a continuación dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj o algún múltiplo hasta que se desborde y llegue a 0, momento en el que se produce un aviso. Cuando se desean contar acontecimientos que se materializan por cambios de nivel o flancos en alguna de las patitas del Microcontrolador, el mencionado registro se va incrementando o decrementando al ritmo de dichos impulsos.

Page 15: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

9

2.6.2. Perro guardián o Watchdog

Cuando el computador personal se bloquea por un fallo del software u otra causa, se pulsa el botón del reset y se reinicia el sistema. Pero un Microcontrolador funciona sin el control de un supervisor y de forma continuada las 24 horas del día. El Perro Guardián consiste en un contador que, cuando llega al máximo, provoca un reset automáticamente en el sistema.

Se debe diseñar el programa de trabajo que controla la tarea de forma que resetee al Perro Guardián de vez en cuando antes de que provoque el reset. Si falla el programa o se bloquea (si cae en bucle infinito), no se refrescará al Perro guardián y, al completar su temporización, provocará el reset del sistema.

2.6.3. Protección ante fallo de alimentación o Brownout

Se trata de un circuito que resetea al Microcontrolador cuando el voltaje de alimentación (VDD) es inferior a un voltaje mínimo (brownout). Mientras el voltaje de alimentación sea inferior al de brownout el dispositivo se mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor. Esto es muy útil para evitar datos erróneos por transiciones y ruidos en la línea de alimentación.

2.6.4. Estado de reposo ó de bajo consumo

Son abundantes las situaciones reales de trabajo en que el Microcontrolador debe esperar, sin hacer nada, a que se produzca algún acontecimiento externo que le ponga de nuevo en funcionamiento. Para ahorrar energía, (factor clave en los aparatos portátiles), los Microcontroladores disponen de una instrucción especial (SLEEP en los PIC), que les pasa al estado de reposo o de bajo consumo, en el cual los requerimientos de potencia son mínimos. En dicho estado se detiene el reloj principal y se congelan sus circuitos asociados, quedando sumido en un profundo sueño. Al activarse una interrupción ocasionada por el acontecimiento esperado, el Microcontrolador se despierta y reanuda su trabajo.

2.6.5. Conversor A/D (CAD)

Los Microcontroladores que incorporan un Conversor A/D (Analógico/Digital) pueden procesar señales analógicas, tan abundantes en las aplicaciones. Suelen

Page 16: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

10

disponer de un multiplexor que permite aplicar a la entrada del CAD diversas señales analógicas desde las patillas del circuito integrado.

2.6.6. Conversor D/A (CDA)

Transforma los datos digitales obtenidos del procesamiento del computador en su correspondiente señal analógica que saca al exterior por una de las patillas del chip. Existen muchos circuitos que trabajan con señales analógicas.

2.6.7. Comparador analógico

Algunos modelos de Microcontroladores disponen internamente de un Amplificador Operacional que actúa como comparador entre una señal fija de referencia y otra variable que se aplica por una de las patitas de la cápsula. La salida del comparador proporciona un nivel lógico 1 ó 0 según una señal sea mayor o menor que la otra. También hay modelos de Microcontroladores con un módulo de tensión de referencia que proporciona diversas tensiones de referencia que se pueden aplicar en los comparadores.

2.6.8. Modulador de anchura de impulsos o PWM

Son circuitos que proporcionan en su salida impulsos de anchura variable, que se ofrecen al exterior a través de las patitas del encapsulado.

2.6.9. Puertos digitales de E/S

Todos los Microcontroladores destinan parte de su patillaje a soportar líneas de E/S digitales. Por lo general, estas líneas se agrupan de ocho en ocho formando Puertos.

Las líneas digitales de las Puertos pueden configurarse como Entrada o como Salida cargando un 1 ó un 0 en el bit correspondiente de un registro destinado a su configuración.

Page 17: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

11

2.6.10. Puertas de comunicación

Con objeto de dotar al Microcontrolador de la posibilidad de comunicarse con otros dispositivos externos, otros buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con otros elementos bajo otras normas y protocolos.

Algunos modelos disponen de recursos que permiten directamente esta tarea, entre los que destacan:

2.6.10.1. UART, adaptador de comunicación serie asíncrona. (Ej.: Puerto Serie)

2.6.10.2. USART, adaptador de comunicación serie síncrona y asíncrona

2.6.10.3. Puerta paralela esclava para poder conectarse con los buses de otros microprocesadores.

2.6.10.4. USB (Universal Serial Bus), que es un moderno bus serie para los PC.

2.6.10.5. Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips.

2.6.10.6. CAN (Controller Área Network), para permitir la adaptación con redes de conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos en automóviles. En EE.UU. se usa el J185O.

Page 18: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

12

3. LA FAMILIA DE LOS PIC

3.1. Introducción

Los PIC son una familia de Microcontroladores fabricados por Microchip cuya arquitectura, capacidades, juego de instrucciones y especialmente su bajo costo lo hacen muy útil en pequeñas aplicaciones así como parte de otras aplicaciones de mayor envergadura sustituyendo a gran cantidad de circuitos lógicos convencionales.

3.2. La Familia PIC

Existen PIC’s de cuatro gamas distintas: pero en nuestro caso particular solo necesitamos conocer la Gama Enana del PIC-16F877A

3.2.1. Gama enana. PIC16F8XXX

Se trata de un grupo de PIC de reciente aparición que ha acaparado la atención del mercado. Su principal característica es su reducido tamaño, al disponer todos sus componentes de 8 patitas además de disponer de 6 líneas de E/S. Se alimentan con un voltaje de corriente continua comprendido entre 2,5 V y 5,5 V, y consumen menos de 2 mA cuando trabajan a 5 V y 4 MHz. El formato de sus instrucciones puede ser de 12 o de 14 bits y su repertorio es de 33 o 35 instrucciones, respectivamente. Algunos modelos incluyen conversores A/D y memoria EEPROM de datos.

Page 19: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

13

4. El MAX232.

Lo siguiente que necesitamos es un "cable de datos", que es un adaptador de niveles RS232 -

TTL, con el conocido MAX232. Este cable nos permite conectar el móvil a un ordenador personal o un Microcontrolador externo. El cable se puede encontrar en un comercio dedicado a la telefonía móvil, pero en esta práctica se ha optado por construir uno usando el siguiente esquema:

Figura 3: Estructura MAX232

El circuito se ha diseñado de forma que el cable situado en la esquina superior Izquierda de la placa está conectado al pin 9 del max232, por lo que es la señal RX, y el cable que está situado en la esquina inferior izquierda de la placa está conectado al pin 10 del max232, por lo que es la señal TX. La línea horizontal superior de la placa es el (-) y la segunda línea horizontal inferior es el (+). La alimentación necesaria para que funcione este circuito se obtiene de la propia batería del teléfono, con los cables conectados al pinout.

Page 20: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

14

5. Servicio de Mensajes Cortos (SMS)

5.1. Definición

Servicio de Mensajes Cortos (SMS) es servicio inalámbrico aceptado globalmente este permite la transmisión de mensajes alfanuméricos entre clientes de teléfonos móviles y sistemas externos tales como correo electrónico, paging (Servicio de radio unidireccional que permite el envió de mensajes escritos para los aparatos de paging numéricos o alfanuméricos) y sistemas de mensajes de voz.

5.2. Introducción

SMS apareció en escena en 1991 en Europa, donde la tecnología inalámbrica digital echo raíces. El Standard Europeo para inalámbrica digital, es ahora conocida globalmente como el Standard para móviles (GSM), incluye el servicio de mensajería corta desde el principio.

En Norte América, SMS estuvo disponible en las redes inalámbricas digitales construidas por los primeros pioneros tales como BellSouth Mobility y Nextel. En 1998, con el desarrollo de las redes basadas en GSM como el servicio de comunicación personal (PCS), código de acceso por división múltiple (CDMA), y acceso por división de tiempo (TDMA), estos métodos ayudaron a la completa implementación del SMS.

El SMS punto a punto provee un mecanismo para transmitir mensajes cortos de y hacia equipos Móviles (Celulares). Tras el envío de un mensaje, este no sigue directamente para el destinatario sino para un centro de mensajes (SMSC), que lo almacena y envía posteriormente. Este centro hace también la cobranza posterior del servicio. El centro de mensajes reencamina después el mensaje para el destinatario, cuando el móvil esté conectado a la red. De esta manera y al contrario de los servicios de "pager" es posible tener la certeza que el mensaje llegó a su destino, porque el centro de mensajes puede notificar el remitente caso la operación falle.

Una característica del servicio es que en un equipo Móvil activo es capaz de recibir o enviar un mensaje corto en cualquier momento, independiente si hay o no una llamada de voz o datos en progreso. SMS también garantiza la entrega de los mensajes cortos por la red. Errores temporales son identificados y el mensaje es guardado en la red hasta que el destino este disponible.

Page 21: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

15

SMS esta caracterizado por entrega de paquetes fuera de banda y un bajo uso del ancho de banda para la transferenc ia de mensajes. Las primeras aplicaciones de SMS estaban enfocadas en eliminar el sistema alfanumérico “pager” el cual es un sistema de búsqueda de personas tipo “Beeper” que permitía una comunicación unidireccional, en cambio SMS permite mensajería en las dos direcciones y servicios de notificación, principalmente mensajes de voz. Al madurar la tecnología y las redes se fueron agregando una variedad de servicios como el correo electrónico y la integración del fax, servicios de búsqueda, bancos interactivos y servicios de información. Aplicaciones de inalámbricas tales como el modulo de identidad del subscriptor (SIM) con capacidades de realizar acciones de activación, debito y edición de perfil.

Figura 4. Servicio de búsqueda de personas Paging

5.3. Beneficios del Servicio de Mensajes Cortos (SMS)

Los beneficios del servicio SMS para el proveedor son los siguientes:

· El aumento de llamadas gracias a las capacidades de notificación del SMS en las redes inalámbricas.

· Una alternativa al servicio de búsqueda de personas alfanumérico “Paging”.

Page 22: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

16

· Activa el acceso inalámbrico a datos para usuarios de empresas.

· Provisiones de servicios con valor agregado como el e-mail, buzón de voz, la integración de fax, etc.

· Proporciona una herramienta administrativa para servicios como avisos de precios, descargas en forma inalámbrica.

Los beneficios del SMS a los clientes se centran en la conveniencia, flexibilidad y la integración de servicios de mensajes y acceso a datos. Desde esta perspectiva, el beneficio es ser capaz de usar un equipo móvil como una extensión del computador.

5.4. Elementos de la Red y su Arquitectura

Los elementos de red necesarios para proveer el servicio SMS, son:

· Las Entidades de Mensajería Corta (Short Messaging Entities - SME):

Es una entidad que puede enviar o recibir mensajes cortos. Puede ser localizada en la red fija, la estación móvil u otro centro de servicio.

· El Centro de Servicio de Mensaje Corto (Short Message Service Center - SMSC) es el responsable de la transmisión, almacenamiento y envío de mensajes cortos entre el SME y la estación móvil.

· El Centro de Conmutación Móvil SMS (SMS Gateway/Interworking Mobile Switching Center - SMS GMSC) es un centro de conmutación de mensajes encargado de recibir el mensa je del SMSC, interrogar al registro de localización local por la información de encaminamiento, y entregarlo al MSC que da servicio a la estación móvil.

· Registro de Localización Local. (Home Location Register - HLR): Es la base de datos para el almacenamiento permanente y manejo de perfiles de servicio y subscripciones. El HLR provee la información de encaminamiento hacia el cliente indicado. El HLR también informa al SMSC del intento de entrega de un mensaje corto a una estación móvil que ha resultado fallido.

· Registro de Localización del Visitante (Visitor Location Register - VLR):

Page 23: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

17

El VLR es la base de datos que contiene la información temporal acerca de los clientes. Esta información se necesita por el MSC (Mobile Switching Center - MSC) que ejecuta las funciones de conmutación del sistema y las llamadas de control hacia y desde otros teléfonos o sistemas de datos.

· Estación Base del sistema. (Base Station System - BSS): Todas las funciones relacionadas con la radio se ejecutan en la BSS, la cual consiste en unos controladores de estación base (Base Station Controllers - BSCs) y estaciones base transceptoras (Base Transceiver Stations - BTSs) que se encargan de transmitir la voz y el trafico de datos entre las estaciones móviles.

· La Estación Móvil (Mobile Station - MS): Es el terminal inalámbrico capaz de recibir y originar mensajes cortos, así como llamadas de voz. La infraestructura de señalización de la red inalámbrica está basada en el Sistema de Señalización Nº 7 (SS7).

· Sistema de Señalización Nº 7 (Signalig System 7 – SS7). SMS hace uso de la Parte de Aplicación Móvil (Mobile Application Part - MAP), la cual define los métodos y mecanismos de comunicación en redes inalámbricas y usa los servicios de la Parte de Aplicación de Capacidades de Transacción de SS7 (SS7 Transaction Capabilities

Aplication Part - TCAP). La capa de servicio de SMS hace uso de las capacidades de señalización del MAP y habilita la transferencia de mensajes cortos entre entidades pares.

Figura 5. Red Celular SMS

Page 24: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

18

5.5. Elementos de Señalización

Las Siguientes operaciones MAP(Mobile Application Part - MAP) son necesarias:

Una vez un mensaje se envía, es recibido por el Centro de Servicio de Mensaje Corto (SMSC) que debe enviarlo entonces al dispositivo móvil apropiado. Para hacer esto, el SMSC envía un requerimiento de SMS al registro de localización (HLR) para encontrar al cliente. Una vez el HLR recibe la llamada, responde al SMSC informando el estado del cliente: inactivo o activo y en dónde está. Si la respuesta es” inactivo”, entonces el SMSC almacenará el mensaje por un periodo de tiempo y cuando el cliente activa su dispositivo, el HLR envía una notificación de SMS al SMSC, que intentará la entrega. Si el estado es “activo”, entonces el sistema llama al dispositivo, y si responde, el mensaje se entrega. El SMSC recibe la verificación de que el mensaje se recibió por el usuario terminal y etiqueta el mensaje como “enviado” para no tratar de enviarlo de nuevo.

5.6. Mensaje Corto Originado (MO - SM)

Los MO-SM se transportan desde el dispositivo móvil hacia el SMSC y pueden ser destinados a otros Clientes de móviles, o situados en redes fijas.

5.7. Mensaje Corto Terminado (MT - SM)

Los MT-SM se transportan desde el SMSC hacia el dispositivo móvil, y pueden ser entregados al SMSC por abonados móviles o por otros medios. Por ejemplo es muy común utilizar las páginas Web gratuitas que tienen muchos ISPs para crear SMS.

5.8. Aplicaciones para SMS

Los SMS fueron inicialmente diseñados para soportar mensajes de tamaño limitado, en la mayoría de los casos notificaciones o paginas alfanuméricas, pero se están descubriendo nuevos usos, que han hecho que este mercado explote.

· Servicios de notificación: Los servicios de notificación son unos servicios SMS ampliamente utili zados. Ejemplos de servicios de notificación usando SMS son el

Page 25: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

19

mensaje de notificación de correo de voz, notificación de correo electrónico, recordatorio de citas, horarios de reuniones, etc.

· Interconexión de redes de correo electrónico: Los servicios de correo electrónico existentes pueden ser fácilmente integrados con SMS para proveer correo electrónico bidireccional a la mensajería corta.

· Interconexión de redes de búsqueda: Servicios de búsqueda integrados con SMS pueden permitir a los abonados inalámbricos digitales ser accesibles a través de interfaces de búsqueda existentes en otras redes.

· Servicios de información: Se puede proporcionar una amplia variedad de servicios de información, incluyendo partes meteorológicos, información del trafico, información de entretenimiento (cines, teatros, conciertos), información financiera (cotizaciones de bolsa, servicios bancarios, servicios de corretaje, etc.), y directorios.

· Servicios de datos móviles: El SMSC también puede ser usado para enviar datos inalámbricos cortos. Los datos inalámbricos pueden ser servicios interactivos donde las llamadas de voz estén involucradas.

Algunos ejemplos de servicios de esta naturaleza incluyen despachos rápidos, manejo de inventarios, confirmación de itinerarios, procesamiento de órdenes de ventas y manejo de contactos de clientes.

· Atención de clientes y administración: El SMSC también puede ser usado para transferir datos binarios que pueden ser interpretados por la estación móvil, sin ser presentados al cliente. Esta capacidad le permite a los operadores administrar sus clientes al proveerlos de la capacidad de programar las estaciones móviles.

· Servicios de localización: La habilidad de rastrear la localización de un objeto móvil, o de un usuario, es muy valiosa tanto para los proveedores como para los clientes. Esta aplicación, de nuevo, solo necesita un intercambio de pequeñas cantidades de información, tales como la longitud y latitud en un momento preciso del día, y quizás otros parámetros como velocidad, temperatura o humedad.

Page 26: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

20

6. Comandos AT

6.1. Introducción

Una herramienta fundamental en el proyecto es el uso de comandos AT ya el equipo móvil recomunica con la aplicación a travé s de estos estableciendo una conversación del tipo pregunta respuesta, ya que todo comando enviado al equipo móvil generara una respuesta inmediata lo que se traduce mas tarde en poder generar la lista de parámetros necesarios para leer y enviar mensaje SMS.

6.2. Control de Llamada

Estos son algunos de los comandos mas comunes para el control de llamadas.

AT Atención

ATA Contestar llamada

ATD Comando para Llamar

ATH Desconectar una llamada

6.3.Comandos SMS

Estos son los comandos que hacen posible el envió y recepción de mensajes de texto SMS.

· AT+CMGR Leer Mensaje

· AT+CMGS Enviar Mensaje

· AT+CMGF=1 Formato del msj

· AT+CSCA="+59170700000" Configuro el centro de servicio NUEVATEL

· AT+CNMI=2,1,0,0,0 Configuración de aviso sobre nuevo Msj.

· AT+CMGS="Nº del Receptor", “Mensaje”

Page 27: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

21

· AT+CPMS="ME","ME" Configura la memoria 1 y memoria 2 como la memoria interna del celular.

· AT+CMGD=Nº Borra el mensaje de la posicion Nº

· AT+CMGL=? Listado de comandos para ver msj en distintas carpetas.

+CMGL: ("REC UNREAD","REC READ","STO UNSENT","STO SENT","ALL")

Para Teléfonos Móviles, SMS usa el codificado PDU en el cual el mensaje es encapsulado. Esta estructura se le da al Teléfono Móvil para realizar el evento de enviar o recibir mensajes SMS.

6.4. Leer un Mensaje SMS

Figura 6: Lectora de un Mensaje SMS

El comando AT+CMGR=1 lee el mensaje la de ubicación 1. Cada ves que llega un nuevo mensaje es indexado en una dirección de memoria del Teléfono Móvil.

El SMS recibido puede ser decodificado en base al la siguiente estructura.

Page 28: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

22

6.5. Enviar un SMS

Para enviar un mensaje SMS, se usa el Comando GSM: AT+CMGS

Ejemplo de lectura en el HyperTerminal.

Figura 7: Envío de un Mensaje SMS

El comando AT+CMGS = 27, pre -notifica al Celular que el PDU que será enviado contiene 27 bytes de datos.

El dato pasado al Teléfono después del "AT+CMGS" contiene al PDU.

La siguiente figura muestra la estructura del mensaje enviado:

Page 29: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

23

7. Desarrollo de la Aplicación

7.1. Descripción de la aplicación realizada

Cumpliendo el objetivo general del proyecto se realizo una aplicación queinteractúa con los procesos ligados a los Microcontroladores por medio de mensajes de texto SMS. Para ello se realizo una aplicación en Java que actúa como servidor el cual esta encargado de interactuar por medio de comunicación serial con un Microcontrolador en este caso el 12F675 y con un teléfono móvil.

Figura 8: Modelo de recepción y envío de mensajes SMS.

7.2. Descripción de acciones

A continuación se describen paso a paso el proceso de envío y recepción de mensajes de la aplicación.

· Un usuario de telefonía móvil solicita un servicio de temperatura por medio de mensaje de texto SMS.

· El mensaje SMS es recibido por el dispositivo móvil conectado al servidor (MODEM con soporte para SMS o bien un teléfono móvi l con cable de datos o bluetooth).

Page 30: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

24

· El dispositivo móvil acusa la recepción de un mensaje SMS por medio de comandos AT que son enviados por Bluetooth al puerto serial virtual generado para este propósito.

· El servidor interpreta el comando AT y le envía al dispositivo móvil un nuevo comando pidiendo leer el mensaje entrante.

· El dispositivo móvil envía el mensaje al servidor.

· El servidor lee el mensaje si este contiene el texto “temperatura” llama al Microcontrolador el cual le envía la temperatura actual al servidor.

· Una vez obtenida la temperatura ambiente el servidor procede a enviarla por medio de comandos AT al dispositivo móvil.

· El dispositivo móvil se encarga de realizar el envío del mensaje con la temperatura generada por el servidor.

· El servidor registra en una base de datos el remitente y su mensaje.

Una variación del modelo de recepción y envió sucede cuando al recibir un mensaje SMS el texto contenido en este no corresponda a ni un servicio prestado por el servidor por lo que no responderá el mensaje recibido al remitente.

Page 31: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

25

8. Diseño del Circuito

Figura 9: Diseño del Circuito General en Simulacion

Figura 10: Diseño del Circuito General Armado

T1IN11

R1OUT12

T2IN10

R2OUT9

T1OUT 14

R1IN 13

T2OUT 7

R2IN 8

C2+

4

C2-

5

C1+

1

C1-

3

VS+ 2

VS- 6

U2

MAX232

RXD

RTS

TXD

CTS

ERROR

TXD3

RXD2

CTS8

RTS7

DSR6

DTR4

DCD1

RI9

P2

COMPIM

12

LDR1TORCH_LDR

R11k

D1LED-RED

55%

SENSIB10k

R 4

DC7

Q3

GN

D1

VC

C8

TR 2TH6

CV 5

U3

555

00

R210k

LDR1(1)

+88.8Volts

R310k C6

220nF

R410k

R510k

R61k

R710k

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA4/T0CKI/C1OUT6

RA5/AN4/SS/C2OUT7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP2 16

RC2/CCP1 17

RC3/SCK/SCL 18

RD0/PSP0 19

RD1/PSP1 20

RB7/PGD 40RB6/PGC 39

RB5 38RB437RB3/PGM 36

RB2 35RB1 34

RB0/INT 33

RD7/PSP7 30RD6/PSP6 29RD5/PSP5 28RD4/PSP4 27RD3/PSP3 22RD2/PSP2 21

RC7/RX/DT 26RC6/TX/CK 25

RC5/SDO 24RC4/SDI/SDA 23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI 15

MCLR/Vpp/THV1

U6

PIC16F877A

C3

1nF

C2

1nF

C1

1nF

C41nF

U1

NOT

U4

NOT

RXD

RTS

TXD

CTS

DESICION DE ACCION POR INT RB0RB1=0 Y RB2=0 Realiza una llamadaRB1=1 Y RB2=0 Manda mensaje #1RB1=0 Y RB2=1 Manda mensaje #2

sensor 2:RB3=1 manda mensaje #3sensor 3:RB4=1 manda mensaje #4

00

D2LED-RED

R8220

Diseño del Circuito en Simulacion

Diseño Digital II Ingenieria Electronica

Page 32: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

26

8.1 Modo de comunicación para los puertos COM1 y COM3

Figura 11: Modo de comunicación para los puertos COM1 y COM3

Cabe ilustrar que para este proyecto no se ha sido posible encontrar el modo de configuración directa entre el PIC-16F877A y el Puerto COM del teléfono móvil Nokia 3220 , por lo que se esta Utilizando al Simulador Proteus 7.7 como Interface de Comunicación para la comunicación:

PIC-SERIAL-SERIAL-USB-USB-Nokia 3220

Figura 12: Esquema de comunicación PIC-SERIAL -USB-Nokia 3220

ERROR

TXD3

RXD2

CTS8

RTS7

DSR6

DTR4

DCD1

RI9

P1

COMPIMConexion COM1-COM3COM3 - USBUSB - Nokia 3220i

ERROR

TXD 3

RXD 2

CTS 8

RTS 7

DSR 6

DTR 4

DCD 1

RI 9

P2

COMPIMConexion COM1Proto - CPU

Diseño Digital II Ingenieria Electronica

Comunicacion COM1 con el COM3

Page 33: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

27

9. Desarrollo del Proyecto

9.1. Justificación del Diseño del Circuito

El sistema funciona de la siguiente manera:

1. El micro controlador esta siempre en modo de respuesta, es decir que esta esperando a que el sensor de humo le envíe un uno lógico, correspondiente a su activación.

2. Si esta activo solo el primer pin (RA0) hace una llamada al número programado en el micro controlador.

3. La otra forma de informar al usuario de que a ocurrido otro evento es activar los pines de entrada RA1 y RA2 una vez activo RA0.

9.2 Los comandos AT Utilizados.

Los comandos At, son un “lenguaje” que nos permite realizar comunicaciones con el modem.

Existe una literatura amplia de los comandos AT, cada dispositivo (terminal modem) cuenta con sus comandos AT, al igual que existen comando particulares de los fabricantes de “celulares”.

Los modem en el modo comando que se usa para la configuración del módem o para marcar, puede comunicarse con el módem a través del conjunto de comandos AT. Después de ejecutar un comando, el módem regresa un código de resultado de confirmación.

Los comandos principales que utilizaremos son:

AT+CPMS=”ME”,”ME” Para cambiar a la memoria del celular.

AT+CMGF=1 Para cambiar a modo texto

Page 34: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

28

AT+CMGW=”#DE CELULAR” Para guardar un mensaje en la memoria del celular con destino a un # de cel.

AT+CMSS=1 Enviar el SMS guardado en la posición 1.

Atd#DE CELULAR; Para hacer una llamada a un # de cel.

9.3. Código Fuente

9.3.1. Código Fuente del PIC-16F877A

LIST P=16F877A INCLUDE <P16F877A.INC> INCLUDE <MACROS.INC> __CONFIG _CP_OFF & _WRT_OFF & _DEBUG_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC CBLOCK 0x20 DATOX, APUNT, W_TEMP, STATUS_TEMP,BANDE ENDC ORG 0x00 GOTO INICIO ORG 0X04 GOTO INTERR INCLUDE <CADENAS.INC> INCLUDE <RETARDOS.INC> INICIO BANCO_1 MOVLW B'11101111' MOVWF TRISB ;RB0=ENTRADA RC6=TX RC7=RX MOVLW B'10111111' ;RC6= SALIDA MOVWF TRISC MOVLW b'00100100' ;TXEN=1 BRGH=1 MOVWF TXSTA ;REGISTRO DE TRANSMISION MOVLW 0x19 ; 0x19=9600 bps MOVWF SPBRG ;GENERADOR DE BAUDIOS MOVLW B'10010000' ;GIE=1 ,INTE=1 ,INTF=O MOVWF INTCON BSF OPTION_REG,6 ;********* INTEDG=1 FLANCO ASCENDENTE BANCO_0 MOVLW B'10010000' ;SPEN=1 RCEN=1 MOVWF RCSTA ;REGISTRO DE RECEPCION PRINCIPAL CALL MEM_CEL ;SELECCIONAMOS MEMORIA DEL CEL

Page 35: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

29

CALL Retardo_2s CALL MODO_TEXT ;SELECIONO EL MODO TEXTO CALL Retardo_2s CALL GUARDAR_MSG ;ALMACENO MENSAJES CALL Retardo_2s BSF PORTB,3 INFINITO BTFSC PORTB,3 ;TESTEA RB3 GOTO INFORMAR1 ;SI RB3=1 MANDA EL MENSAJE3 BTFSC PORTB,4 ;TESTEA RB3 GOTO INFORMAR2 ;SI RB3=1 MANDA EL MENSAJE4 GOTO INFINITO INFORMAR1 CALL ENVIA_MSG3 BSF PORTB,7 CALL Retardo_1s GOTO INFINITO INFORMAR2 CALL ENVIA_MSG4 BSF PORTB,7 CALL Retardo_2s GOTO INFINITO ;*************************************** ;RUTINA ATIENDE LA INTERRUPCION ;**************************************** INTERR MOVWF W_TEMP ;Copia W en el registro TEMP SWAPF STATUS,W ;Intercambia los nibles del registro de STATUS ; y los guarda en W CLRF STATUS ;Selecciona banco0, independientemente del banco actual, ;borra IRP,RP1,RP0 MOVWF STATUS_TEMP ;salva el registro de STATUS en STATUS_TEMP ;movf PCLATH,W ;Solo es necesario si se emplean las páginas 1,2 y/o 3 ;movwf PCLATH_TEMP ;Salva PCLATH en W ;----------------------------------------------------- BTFSS INTCON,INTF ;checa bandera de captura de evento GOTO ret ;si no es bandera de captura retorna BTFSS PORTB,1 GOTO PREG2 ; SI RB1=0 IR A PR2 CALL ENVIA_MSG1 GOTO SAL PREG2 BTFSS PORTB,2 GOTO PREG3 ;SI RB2=0 LLAMAR CALL ENVIA_MSG2 GOTO SAL PREG3 CALL LLAMAR CALL Retardo_10s CALL PARAR_LLAMADA SAL BCF INTCON,INTF ;------------------------------------------------- ret SWAPF STATUS_TEMP,W ;restablece contexto MOVWF STATUS SWAPF W_TEMP,F SWAPF W_TEMP,W RETFIE

Page 36: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

30

;************************************************************ ;ENVIA CARACTER----USART ;************************************************************ ENVIA BANCO_1 ESP BTFSS TXSTA,TRMT ;vemos el bufer de transmisión GOTO ESP BANCO_0 MOVF DATOX,W ;rescata dato a enviar MOVWF TXREG ;lo envia RETURN ;*********************************************************** ;RUTINA PARA GUARDAR N MENSAJES EN EL CELULAR ;*********************************************************** GUARDAR_MSG CALL ESCRIBIR_MSG CALL Retardo_2s CALL E_MSG1 CALL Retardo_2s CALL ESCRIBIR_MSG CALL Retardo_2s CALL E_MSG2 CALL Retardo_2s CALL ESCRIBIR_MSG CALL Retardo_2s CALL E_MSG3 CALL Retardo_2s CALL ESCRIBIR_MSG CALL Retardo_2s CALL E_MSG4 CALL Retardo_2s RETURN ;*********************************************************** ;COMANDO SELECCIONAR MEMORIA DEL CELULAR ;*********************************************************** MEM_CEL CLRF APUNT CICLO CALL AT_CPMS MOVWF DATOX SUBLW "J" BTFSC STATUS,Z GOTO SALIR CALL ENVIA INCF APUNT,1 GOTO CICLO BANCO_1 BCF TXSTA,TXEN SALIR RETURN ;*********************************************************** ;COMANDO DE SELECCION MODO TEXTO ;*********************************************************** MODO_TEXT CLRF APUNT CICLOMT CALL AT_CMGF MOVWF DATOX SUBLW "J"

Page 37: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

31

BTFSC STATUS,Z GOTO SALIRMT CALL ENVIA INCF APUNT,1 GOTO CICLOMT BANCO_1 BCF TXSTA,TXEN SALIRMT RETURN ;*********************************************************** ;COMANDO DE ESCRIBIR DE MENSAJES A GUARDAR ;*********************************************************** ESCRIBIR_MSG CLRF APUNT CICLOEMSG CALL AT_CMGW MOVWF DATOX SUBLW "J" BTFSC STATUS,Z GOTO SALIREMSG CALL ENVIA INCF APUNT,1 GOTO CICLOEMSG BANCO_1 BCF TXSTA,TXEN SALIREMSG RETURN ;*********************************************************** ;COMANDO DE ESCRIBIR DE MENSAJES A GUARDAR ;*********************************************************** E_MSG1 CLRF APUNT CICLOEE CALL MSG1 MOVWF DATOX SUBLW "J" BTFSC STATUS,Z GOTO SALIREE CALL ENVIA INCF APUNT,1 GOTO CICLOEE BANCO_1 BCF TXSTA,TXEN SALIREE RETURN ;*********************************************************** ;COMANDO DE ESCRIBIR DE MENSAJES A GUARDAR ;*********************************************************** E_MSG2 CLRF APUNT CICLOEE2 CALL MSG2 MOVWF DATOX SUBLW "J" BTFSC STATUS,Z GOTO SALIREE2 CALL ENVIA INCF APUNT,1 GOTO CICLOEE2 BANCO_1 BCF TXSTA,TXEN SALIREE2

Page 38: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

32

RETURN ;*********************************************************** ;COMANDO DE ESCRIBIR DE MENSAJES A GUARDAR ;*********************************************************** E_MSG3 CLRF APUNT CICLOEE3 CALL MSG3 MOVWF DATOX SUBLW "J" BTFSC STATUS,Z GOTO SALIREE3 CALL ENVIA INCF APUNT,1 GOTO CICLOEE3 BANCO_1 BCF TXSTA,TXEN SALIREE3 RETURN ;*********************************************************** ;COMANDO DE ESCRIBIR DE MENSAJES A GUARDAR ;*********************************************************** E_MSG4 CLRF APUNT CICLOEE4 CALL MSG4 MOVWF DATOX SUBLW "J" BTFSC STATUS,Z GOTO SALIREE4 CALL ENVIA INCF APUNT,1 GOTO CICLOEE4 BANCO_1 BCF TXSTA,TXEN SALIREE4 RETURN ;*********************************************************** ;COMANDO PARA REALIZAR LLAMADA ;*********************************************************** LLAMAR CLRF APUNT CICLO1 CALL ATD_CEL MOVWF DATOX SUBLW "J" BTFSC STATUS,Z GOTO SALIR1 CALL ENVIA INCF APUNT,1 GOTO CICLO1 BANCO_1 BCF TXSTA,TXEN SALIR1 RETURN ;*********************************************************** ;COMANDO DETENER LLAMADA ;*********************************************************** PARAR_LLAMADA CLRF APUNT

Page 39: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

33

CICLOPLL CALL AT_CHUP MOVWF DATOX SUBLW "J" BTFSC STATUS,Z GOTO SALIRPLL CALL ENVIA INCF APUNT,1 GOTO CICLOPLL BANCO_1 BCF TXSTA,TXEN SALIRPLL RETURN ;*********************************************************** ;COMANDO ENVIAR MENSAJE1 ;*********************************************************** ENVIA_MSG1 CLRF APUNT CICLOA CALL AT_CMSS1 MOVWF DATOX SUBLW "J" BTFSC STATUS,Z GOTO SALIRA CALL ENVIA INCF APUNT,1 GOTO CICLOA BANCO_1 BCF TXSTA,TXEN SALIRA RETURN ;*********************************************************** ;COMANDO ENVIAR MENSAJE2 ;*********************************************************** ENVIA_MSG2 CLRF APUNT CICLOB CALL AT_CMSS2 MOVWF DATOX SUBLW "J" BTFSC STATUS,Z GOTO SALIRB CALL ENVIA INCF APUNT,1 GOTO CICLOB BANCO_1 BCF TXSTA,TXEN SALIRB RETURN ;*********************************************************** ;COMANDO ENVIAR MENSAJE3 ;*********************************************************** ENVIA_MSG3 CLRF APUNT CICLOC CALL AT_CMSS3 MOVWF DATOX SUBLW "J" BTFSC STATUS,Z GOTO SALIRC CALL ENVIA INCF APUNT,1

Page 40: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

34

GOTO CICLOC BANCO_1 BCF TXSTA,TXEN SALIRC RETURN ;*********************************************************** ;COMANDO ENVIAR MENSAJE3 ;*********************************************************** ENVIA_MSG4 CLRF APUNT CICLOD CALL AT_CMSS4 MOVWF DATOX SUBLW "J" BTFSC STATUS,Z GOTO SALIRD CALL ENVIA INCF APUNT,1 GOTO CICLOD BANCO_1 BCF TXSTA,TXEN SALIRD RETURN END

Page 41: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

35

9.4. Librerías Utilizadas

9.4.1. P16F877A.INC

LIST ; P16F877A.INC Standard Header File, Version 1.00 Microchip Technology, Inc. NOLIST ; This header file defines configurations, registers, and other useful bits of ; information for the PIC16F877A microcontroller. These names are taken to match ; the data sheets as closely as possible. ; Note that the processor must be selected before this file is ; included. The processor may be selected the following ways: ; 1. Command line switch: ; C:\ MPASM MYFILE.ASM /PIC16F877A ; 2. LIST directive in the source file ; LIST P=PIC16F877A ; 3. Processor Type entry in the MPASM full-screen interface ;========================================================================== ; ; Revision History ; ;========================================================================== ;Rev: Date: Reason: ;1.03 11/17/05 Added the ADCON1 bit ADCS2. ;1.02 05/28/02 Corrected values for _CP_ALL and _CP_OFF in Configuration Bits section. ;1.01 09/13/01 Added the PIR2 bit CMIF and the PIE2 bit CMIE ;1.00 04/19/01 Initial Release (BD - generated from PIC16F877.inc) ;========================================================================== ; ; Verify Processor ; ;========================================================================== IFNDEF __16F877A MESSG "Processor-header file mismatch. Verify selected processor." ENDIF ;========================================================================== ; ; Register Definitions ; ;========================================================================== W EQU H'0000' F EQU H'0001' ;----- Register Files------------------------------------------------------ INDF EQU H'0000' TMR0 EQU H'0001' PCL EQU H'0002'

Page 42: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

36

STATUS EQU H'0003' FSR EQU H'0004' PORTA EQU H'0005' PORTB EQU H'0006' PORTC EQU H'0007' PORTD EQU H'0008' PORTE EQU H'0009' PCLATH EQU H'000A' INTCON EQU H'000B' PIR1 EQU H'000C' PIR2 EQU H'000D' TMR1L EQU H'000E' TMR1H EQU H'000F' T1CON EQU H'0010' TMR2 EQU H'0011' T2CON EQU H'0012' SSPBUF EQU H'0013' SSPCON EQU H'0014' CCPR1L EQU H'0015' CCPR1H EQU H'0016' CCP1CON EQU H'0017' RCSTA EQU H'0018' TXREG EQU H'0019' RCREG EQU H'001A' CCPR2L EQU H'001B' CCPR2H EQU H'001C' CCP2CON EQU H'001D' ADRESH EQU H'001E' ADCON0 EQU H'001F' OPTION_REG EQU H'0081' TRISA EQU H'0085' TRISB EQU H'0086' TRISC EQU H'0087' TRISD EQU H'0088' TRISE EQU H'0089' PIE1 EQU H'008C' PIE2 EQU H'008D' PCON EQU H'008E' SSPCON2 EQU H'0091' PR2 EQU H'0092' SSPADD EQU H'0093' SSPSTAT EQU H'0094' TXSTA EQU H'0098' SPBRG EQU H'0099' CMCON EQU H'009C' CVRCON EQU H'009D' ADRESL EQU H'009E' ADCON1 EQU H'009F' EEDATA EQU H'010C' EEADR EQU H'010D' EEDATH EQU H'010E' EEADRH EQU H'010F' EECON1 EQU H'018C' EECON2 EQU H'018D' ;----- STATUS Bits -------------------------------------------------------- IRP EQU H'0007' RP1 EQU H'0006'

Page 43: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

37

RP0 EQU H'0005' NOT_TO EQU H'0004' NOT_PD EQU H'0003' Z EQU H'0002' DC EQU H'0001' C EQU H'0000' ;----- INTCON Bits -------------------------------------------------------- GIE EQU H'0007' PEIE EQU H'0006' T0IE EQU H'0005' TMR0IE EQU H'0005' INTE EQU H'0004' RBIE EQU H'0003' T0IF EQU H'0002' TMR0IF EQU H'0002' INTF EQU H'0001' RBIF EQU H'0000' ;----- PIR1 Bits ---------------------------------------------------------- PSPIF EQU H'0007' ADIF EQU H'0006' RCIF EQU H'0005' TXIF EQU H'0004' SSPIF EQU H'0003' CCP1IF EQU H'0002' TMR2IF EQU H'0001' TMR1IF EQU H'0000' ;----- PIR2 Bits ---------------------------------------------------------- CMIF EQU H'0006' EEIF EQU H'0004' BCLIF EQU H'0003' CCP2IF EQU H'0000' ;----- T1CON Bits --------------------------------------------------------- T1CKPS1 EQU H'0005' T1CKPS0 EQU H'0004' T1OSCEN EQU H'0003' NOT_T1SYNC EQU H'0002' T1INSYNC EQU H'0002' ; Backward compatibility only T1SYNC EQU H'0002' TMR1CS EQU H'0001' TMR1ON EQU H'0000' ;----- T2CON Bits --------------------------------------------------------- TOUTPS3 EQU H'0006' TOUTPS2 EQU H'0005' TOUTPS1 EQU H'0004' TOUTPS0 EQU H'0003' TMR2ON EQU H'0002' T2CKPS1 EQU H'0001' T2CKPS0 EQU H'0000' ;----- SSPCON Bits -------------------------------------------------------- WCOL EQU H'0007'

Page 44: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

38

SSPOV EQU H'0006' SSPEN EQU H'0005' CKP EQU H'0004' SSPM3 EQU H'0003' SSPM2 EQU H'0002' SSPM1 EQU H'0001' SSPM0 EQU H'0000' ;----- CCP1CON Bits ------------------------------------------------------- CCP1X EQU H'0005' CCP1Y EQU H'0004' CCP1M3 EQU H'0003' CCP1M2 EQU H'0002' CCP1M1 EQU H'0001' CCP1M0 EQU H'0000' ;----- RCSTA Bits --------------------------------------------------------- SPEN EQU H'0007' RX9 EQU H'0006' RC9 EQU H'0006' ; Backward compatibility only NOT_RC8 EQU H'0006' ; Backward compatibility only RC8_9 EQU H'0006' ; Backward compatibility only SREN EQU H'0005' CREN EQU H'0004' ADDEN EQU H'0003' FERR EQU H'0002' OERR EQU H'0001' RX9D EQU H'0000' RCD8 EQU H'0000' ; Backward compatibility only ;----- CCP2CON Bits ------------------------------------------------------- CCP2X EQU H'0005' CCP2Y EQU H'0004' CCP2M3 EQU H'0003' CCP2M2 EQU H'0002' CCP2M1 EQU H'0001' CCP2M0 EQU H'0000' ;----- ADCON0 Bits -------------------------------------------------------- ADCS1 EQU H'0007' ADCS0 EQU H'0006' CHS2 EQU H'0005' CHS1 EQU H'0004' CHS0 EQU H'0003' GO EQU H'0002' NOT_DONE EQU H'0002' GO_DONE EQU H'0002' ADON EQU H'0000' ;----- OPTION_REG Bits ----------------------------------------------------- NOT_RBPU EQU H'0007' INTEDG EQU H'0006' T0CS EQU H'0005' T0SE EQU H'0004' PSA EQU H'0003' PS2 EQU H'0002' PS1 EQU H'0001'

Page 45: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

39

PS0 EQU H'0000' ;----- TRISE Bits --------------------------------------------------------- IBF EQU H'0007' OBF EQU H'0006' IBOV EQU H'0005' PSPMODE EQU H'0004' TRISE2 EQU H'0002' TRISE1 EQU H'0001' TRISE0 EQU H'0000' ;----- PIE1 Bits ---------------------------------------------------------- PSPIE EQU H'0007' ADIE EQU H'0006' RCIE EQU H'0005' TXIE EQU H'0004' SSPIE EQU H'0003' CCP1IE EQU H'0002' TMR2IE EQU H'0001' TMR1IE EQU H'0000' ;----- PIE2 Bits ---------------------------------------------------------- CMIE EQU H'0006' EEIE EQU H'0004' BCLIE EQU H'0003' CCP2IE EQU H'0000' ;----- PCON Bits ---------------------------------------------------------- NOT_POR EQU H'0001' NOT_BO EQU H'0000' NOT_BOR EQU H'0000' ;----- SSPCON2 Bits -------------------------------------------------------- GCEN EQU H'0007' ACKSTAT EQU H'0006' ACKDT EQU H'0005' ACKEN EQU H'0004' RCEN EQU H'0003' PEN EQU H'0002' RSEN EQU H'0001' SEN EQU H'0000' ;----- SSPSTAT Bits ------------------------------------------------------- SMP EQU H'0007' CKE EQU H'0006' D EQU H'0005' I2C_DATA EQU H'0005' NOT_A EQU H'0005' NOT_ADDRESS EQU H'0005' D_A EQU H'0005' DATA_ADDRESS EQU H'0005' P EQU H'0004' I2C_STOP EQU H'0004' S EQU H'0003' I2C_START EQU H'0003' R EQU H'0002'

Page 46: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

40

I2C_READ EQU H'0002' NOT_W EQU H'0002' NOT_WRITE EQU H'0002' R_W EQU H'0002' READ_WRITE EQU H'0002' UA EQU H'0001' BF EQU H'0000' ;----- TXSTA Bits --------------------------------------------------------- CSRC EQU H'0007' TX9 EQU H'0006' NOT_TX8 EQU H'0006' ; Backward compatibility only TX8_9 EQU H'0006' ; Backward compatibility only TXEN EQU H'0005' SYNC EQU H'0004' BRGH EQU H'0002' TRMT EQU H'0001' TX9D EQU H'0000' TXD8 EQU H'0000' ; Backward compatibility only ;----- CMCON Bits --------------------------------------------------------- C2OUT EQU H'0007' C1OUT EQU H'0006' C2INV EQU H'0005' C1INV EQU H'0004' CIS EQU H'0003' CM2 EQU H'0002' CM1 EQU H'0001' CM0 EQU H'0000' ;----- CVRCON Bits -------------------------------------------------------- CVREN EQU H'0007' CVROE EQU H'0006' CVRR EQU H'0005' CVR3 EQU H'0003' CVR2 EQU H'0002' CVR1 EQU H'0001' CVR0 EQU H'0000' ;----- ADCON1 Bits -------------------------------------------------------- ADFM EQU H'0007' ADCS2 EQU H'0006' PCFG3 EQU H'0003' PCFG2 EQU H'0002' PCFG1 EQU H'0001' PCFG0 EQU H'0000' ;----- EECON1 Bits -------------------------------------------------------- EEPGD EQU H'0007' WRERR EQU H'0003' WREN EQU H'0002' WR EQU H'0001' RD EQU H'0000' ;========================================================================== ; ; RAM Definition ;

Page 47: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

41

;========================================================================== __MAXRAM H'1FF' __BADRAM H'8F'-H'90', H'95'-H'97', H'9A'-H'9B' __BADRAM H'105', H'107'-H'109' __BADRAM H'185', H'187'-H'189', H'18E'-H'18F' ;========================================================================== ; ; Configuration Bits ; ;========================================================================== _CP_ALL EQU H'1FFF' _CP_OFF EQU H'3FFF' _DEBUG_OFF EQU H'3FFF' _DEBUG_ON EQU H'37FF' _WRT_OFF EQU H'3FFF' ; No prog memmory write protection _WRT_256 EQU H'3DFF' ; First 256 prog memmory write protected _WRT_1FOURTH EQU H'3BFF' ; First quarter prog memmory write protected _WRT_HALF EQU H'39FF' ; First half memmory write protected _CPD_OFF EQU H'3FFF' _CPD_ON EQU H'3EFF' _LVP_ON EQU H'3FFF' _LVP_OFF EQU H'3F7F' _BODEN_ON EQU H'3FFF' _BODEN_OFF EQU H'3FBF' _PWRTE_OFF EQU H'3FFF' _PWRTE_ON EQU H'3FF7' _WDT_ON EQU H'3FFF' _WDT_OFF EQU H'3FFB' _RC_OSC EQU H'3FFF' _HS_OSC EQU H'3FFE' _XT_OSC EQU H'3FFD' _LP_OSC EQU H'3FFC' LIST

Page 48: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

42

9.4.2. RETARDOS.INC

;**************************** Librería "RETARDOS.INC" ********************************* ; Librería con múltiples subrutinas de retardos, desde 4 microsegundos hasta 20 segundos. ; ; Se han calculado para un sistema microcontrolador con un PIC trabajando con un cristal ; de cuarzo a 4 MHz. ; En los comentarios, "cm" significa "ciclos máquina". ; ; ZONA DE DATOS ********************************************************************* CBLOCK R_ContA ; Contadores para los retardos. R_ContB R_ContC ENDC ; ; RETARDOS de 4 hasta 10 microsegundos --------------------------------------------------- ; ; Retardo_10micros ; La llamada "call" aporta 2 ciclos máquina. nop ; Aporta 1 ciclo máquina. nop ; Aporta 1 ciclo máquina. nop ; Aporta 1 ciclo máquina. nop ; Aporta 1 ciclo máquina. nop ; Aporta 1 ciclo máquina. Retardo_5micros ; La llamada "call" aporta 2 ciclos máquina. nop ; Aporta 1 ciclo máquina. Retardo_4micros ; La llamada "call" aporta 2 ciclos máquina. return ; El salto del retorno aporta 2 ciclos máquina. ; ; RETARDOS de 20 hasta 500 microsegundos ------------------------------------------------ ; Retardo_500micros ; La llamada "call" aporta 2 ciclos máquina. nop ; Aporta 1 ciclo máquina. movlw d'164' ; Aporta 1 ciclo máquina. Este es el valor de "K". goto RetardoMicros ; Aporta 2 ciclos máquina. Retardo_200micros ; La llamada "call" aporta 2 ciclos máquina. nop ; Aporta 1 ciclo máquina. movlw d'64' ; Aporta 1 ciclo máquina. Este es el valor de "K". goto RetardoMicros ; Aporta 2 ciclos máquina. Retardo_100micros ; La llamada "call" aporta 2 ciclos máquina. movlw d'31' ; Aporta 1 ciclo máquina. Este es el valor de "K". goto RetardoMicros ; Aporta 2 ciclos máquina. Retardo_50micros ; La llamada "call" aporta 2 ciclos máquina.

Page 49: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

43

nop ; Aporta 1 ciclo máquina. movlw d'14' ; Aporta 1 ciclo máquina. Este es el valor de "K". goto RetardoMicros ; Aporta 2 ciclos máquina. Retardo_20micros ; La llamada "call" aporta 2 ciclos máquina. movlw d'5' ; Aporta 1 ciclo máquina. Este es el valor de "K". ; ; RetardoMicros movwf R_ContA ; Aporta 1 ciclo máquina. Rmicros_Bucle decfsz R_ContA,F ; (K-1)x1 cm (cuando no salta) + 2 cm (al saltar). goto Rmicros_Bucle ; Aporta (K-1)x2 ciclos máquina. return ; El salto del retorno aporta 2 ciclos máquina. ; ;En total estas subrutinas tardan: ; RETARDOS de 1 ms hasta 200 ms. -------------------------------------------------------- ; Retardo_200ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'200' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_100ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'100' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_50ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'50' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_20ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'20' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_10ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'10' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_5ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'5' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_2ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'2' ; Aporta 1 ciclo máquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos máquina. Retardo_1ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'1' ; Aporta 1 ciclo máquina. Este es el valor de "M". ; ; Retardos_ms movwf R_ContB ; Aporta 1 ciclo máquina. R1ms_BucleExterno

Page 50: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

44

movlw d'249' ; Aporta Mx1 ciclos máquina. Este es el valor de "K". movwf R_ContA ; Aporta Mx1 ciclos máquina. R1ms_BucleInterno nop ; Aporta KxMx1 ciclos máquina. decfsz R_ContA,F ; (K-1)xMx1 cm (cuando no salta) + Mx2 cm (al saltar). goto R1ms_BucleInterno ; Aporta (K-1)xMx2 ciclos máquina. decfsz R_ContB,F ; (M-1)x1 cm (cuando no salta) + 2 cm (al saltar). goto R1ms_BucleExterno ; Aporta (M-1)x2 ciclos máquina. return ; El salto del retorno aporta 2 ciclos máquina. ; ;En total estas subrutinas tardan: ; RETARDOS de 0.5 hasta 20 segundos --------------------------------------------------- ; Retardo_20s ; La llamada "call" aporta 2 ciclos máquina. movlw d'200' ; Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos máquina. Retardo_10s ; La llamada "call" aporta 2 ciclos máquina. movlw d'100' ; Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos máquina. Retardo_5s ; La llamada "call" aporta 2 ciclos máquina. movlw d'50' ; Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos máquina. Retardo_2s ; La llamada "call" aporta 2 ciclos máquina. movlw d'20' ; Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos máquina. Retardo_1s ; La llamada "call" aporta 2 ciclos máquina. movlw d'10' ; Aporta 1 ciclo máquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos máquina. Retardo_500ms ; La llamada "call" aporta 2 ciclos máquina. movlw d'5' ; Aporta 1 ciclo máquina. Este es el valor de "N". ; ; El próximo bloque "Retardo_1Decima" tarda: ; ciclos máquina que a 4 MHz son 100011 µs = 100 ms = 0,1 s = 1 décima de segundo. ; Retardo_1Decima movwf R_ContC ; Aporta 1 ciclo máquina. R1Decima_BucleExterno2 movlw d'100' ; Aporta Nx1 ciclos máquina. Este es el valor de "M". movwf R_ContB ; Aporta Nx1 ciclos máquina. R1Decima_BucleExterno movlw d'249' ; Aporta MxNx1 ciclos máquina. Este es el valor de "K". movwf R_ContA ; Aporta MxNx1 ciclos máquina.

Page 51: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

45

R1Decima_BucleInterno nop ; Aporta KxMxNx1 ciclos máquina. decfsz R_ContA,F ; (K-1)xMxNx1 cm (si no salta) + MxNx2 cm (al saltar). goto R1Decima_BucleInterno ; Aporta (K-1)xMxNx2 ciclos máquina. decfsz R_ContB,F ; (M-1)xNx1 cm (cuando no salta) + Nx2 cm (al saltar). goto R1Decima_BucleExterno ; Aporta (M-1)xNx2 ciclos máquina. decfsz R_ContC,F ; (N-1)x1 cm (cuando no salta) + 2 cm (al saltar). goto R1Decima_BucleExterno2 ; Aporta (N-1)x2 ciclos máquina. return ; El salto del retorno aporta 2 ciclos máquina.

Page 52: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

46

9.4.3. MACROS.INC

;****Librería "MACROS.INC" *********; ; ********************************* ; BANCO_0 MACRO BCF STATUS,RP0 BCF STATUS,RP1 ENDM BANCO_1 MACRO BSF STATUS,RP0 BCF STATUS,RP1 ENDM BANCO_2 MACRO BCF STATUS,RP0 BSF STATUS,RP1 ENDM BANCO_3 MACRO BSF STATUS,RP0 BSF STATUS,RP1 ENDM

Page 53: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

47

9.4.4. cadenas.inc

;********************************************************** ;cadenas a enviar por el usart ;********************************************************** AT_CPMS; selecciona la memoria de mensajes MOVF APUNT,W ; carga apuntador en w ADDWF PCL,1 ;salta w instruciones hacia adelante DT "at+cpms=",0x22,"ME",0X22,",",0X22,"ME",0X22,0x0D,0X0A,"J" RETURN AT_CMSS1;envia el mensaje almacenado en la posicion #1 MOVF APUNT,W ; carga apuntador en w ADDWF PCL,1 ;salta w instruciones hacia adelante DT "at+cmss=1",0x0D,0X0A,"J" RETURN AT_CMSS2 ;envia el mensaje almacenado en la poscion #2 MOVF APUNT,W ; carga apuntador en w ADDWF PCL,1 ;salta w instruciones hacia adelante DT "at+cmss=2",0x0D,0X0A,"J" RETURN AT_CMSS3;envia el mensaje almacenado en la posicion #3 MOVF APUNT,W ; carga apuntador en w ADDWF PCL,1 ;salta w instruciones hacia adelante DT "at+cmss=3",0x0D,0X0A,"J" RETURN AT_CMSS4 ;envia el mensaje almacenado en la poscion #4 MOVF APUNT,W ; carga apuntador en w ADDWF PCL,1 ;salta w instruciones hacia adelante DT "at+cmss=4",0x0D,0X0A,"J" RETURN ATD_CEL ;ATD71753016 MOVF APUNT,W ; carga apuntador en w ADDWF PCL,1 ;salta w instruciones hacia adelante DT "atd79986235;",0x0D,0X0A,"J" ;--------------------- RETURN AT_CHUP ;PARADA DE LA LLAMADA MOVF APUNT,W ; carga apuntador en w ADDWF PCL,1 ;salta w instruciones hacia adelante DT "at+chup",0x0D,0X0A,"J" RETURN ;*********************************************************** AT_CMGF ;SELECCIONA MODO TEXTO MOVF APUNT,W ; carga apuntador en w ADDWF PCL,1 ;salta w instruciones hacia adelante DT "at+cmgF=1",0x0D,0X0A,"J" RETURN ;************************************************************ ;comando at para ESCRIBIR EL MENSAJE EN LA MEMORIA AT_CMGW ;almacena mensaje en la memoria del celular en posicion libre

Page 54: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

48

MOVF APUNT,W ; carga apuntador en w ADDWF PCL,1 ;salta w instruciones hacia adelante DT "at+cmgw=",0x22,"79986235",0x22,0x0D,0X0A,"J" ;--------------- RETURN ;************************************************************ ;mensajes que se guardan en el cel al inicio ;********************************************************* MSG1 ;mensaje #1 a guardar en la memoria del cel. MOVF APUNT,W ; carga apuntador en w ADDWF PCL,1 ;salta w instruciones hacia adelante DT "actividad en la sala",0x1A,"J" RETURN MSG2 ;mensaje #2 a guardar en la memoria del cel. MOVF APUNT,W ; carga apuntador en w ADDWF PCL,1 ;salta w instruciones hacia adelante DT "alarma 1 activada",0x1A,"J" RETURN MSG3;mensaje #1 a guardar en la memoria del cel. MOVF APUNT,W ; carga apuntador en w ADDWF PCL,1 ;salta w instruciones hacia adelante DT "alarma 2 activada",0x1A,"J" RETURN MSG4;mensaje #2 a guardar en la memoria del cel. MOVF APUNT,W ; carga apuntador en w ADDWF PCL,1 ;salta w instruciones hacia adelante DT "alarma 3 activada",0x1A,"J" RETURN

10. Conclusión.

Gracias a los puntos vistos anteriormente se ha logrado dar una alternativa para generar servicios por medio de mensajes de texto SMS (Short Message System) de forma independiente ya que las compañías de telefonía venden el servicio pero no hay acceso a los programas que hacen este servicio. Con esto se amplia la variedad de servicios a ofrecer ya sea en forma particular o bien ofrecer este servicio a terceros sin que las compañías de telefonía celular se tomen el monopolio de este tipo de servicios.

Page 55: Tesis Diseño Digital II

Facultad de Ciencias y Tecnología. Ingeniería Electrónica.

49

11. Bibliografía. Manual del PIC -16F8XXX www.todopic.com.ar http://perso.wanadoo.es/luis_ju www.hvwtech.com www.cursoderobotica.com.ar/robotica/Libros/control.htm www.cursoderobotica.com.ar/robotica/Libros/analogico.htm http://www.ifent.org/Lecciones/digitales/secuenciales/ConvertA_D.htm www.multingles.net/docs/conceptosTCP.htm www.programacion.com/java/tutorial/red/11 www.itapizaco.edu.mx/paginas/JavaTut/froufe/index.html www.mysql-hispano.org/page.php?id=24&pag=1 http://bibuct.uct.cl/ALEPH http://voltio.ujaen.es/casanova/pics/intro.htm http://usuarios.lycos.es/sfriswolker/pic/cuatro.htm http://www.telefonos-moviles.com/