Upload
sajor-orelav
View
270
Download
0
Embed Size (px)
Citation preview
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 1/55
UNIVERSIDAD MAYOR DE SAN SIMONFACULTAL DE CIENCIAS Y TECNOLOGIAINGENIERIA ELECTRONICA
Sistema de Seguridad Domiciliaria Mediante SMS
Utilizando el Microcontrolador (PIC-16F877A)
PorFLORES 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 laUniversidad Mayor de San Simón
Cochabamba - 2011
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 2/55
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ónpor su apoyo, a toda la gente que estuvo
desde el comienzo…. Algunos siguen
hasta hoy.
Gracias
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 3/55
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
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 4/55
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 otrosmicroprocesadores. 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
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 5/55
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
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 6/55
Facultad de Ciencias y Tecnología. Ingeniería Electrónica.
10. Conclusión. 48
11. Bibliografía. 49
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 7/55
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 statussocial 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 queeste 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.
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 8/55
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 detexto 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.
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 9/55
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 procesosló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
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 10/55
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,
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 11/55
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
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 12/55
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 conmaterial 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 lasuperficie. 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
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 13/55
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 deescritura/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 unmicroprocesador. 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 elmotor 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
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 14/55
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 materializanpor 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.
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 15/55
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, provocaun 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 debeesperar, 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
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 16/55
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 seofrecen 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 comoSalida cargando un 1 ó un 0 en el bit correspondiente de un registro destinado a
su configuración.
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 17/55
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.
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 18/55
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 cuyaarquitectura, 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 susinstrucciones 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.
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 19/55
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.
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 20/55
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 globalmenteeste 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.
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 21/55
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 unacomunicació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”.
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 22/55
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 deprecios, 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 clienteindicado. 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):
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 23/55
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 funcionesrelacionadas 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
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 24/55
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 MensajeCorto (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 elmensaje 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ñolimitado, 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
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 25/55
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.
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 26/55
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”
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 27/55
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.
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 28/55
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:
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 29/55
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ónqueinteractú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).
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 30/55
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.
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 31/55
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
T1OUT14
R1IN13
T2OUT7
R2IN8
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
RI
9
P2
COMPIM
1
2
LDR1TORCH_LDR
R11k
D1LED-RED
5 5 %
SENSIB10k
R4
DC7
Q3
G N D
1
V C C
8
TR2
TH6
CV5
U3
555
0
0
R210k
LDR1(1)
+88.8
Volts
R310k C6
220nF
R410k
R510k
R6
1k
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/CCP216
RC2/CCP117
RC3/SCK/SCL18
RD0/PSP019
RD1/PSP120
RB7/PGD40
RB6/PGC39
RB538
RB437
RB3/PGM36
RB235
RB134
RB0/INT33
RD7/PSP730
RD6/PSP629
RD5/PSP528
RD4/PSP427
RD3/PSP322
RD2/PSP221
RC7/RX/DT26
RC6/TX/CK25
RC5/SDO24
RC4/SDI/SDA23
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI15
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 RB0
RB1=0 Y RB2=0 Realiza una llamadaRB1=1 Y RB2=0 Manda mensaje #1
RB1=0 Y RB2=1 Manda mensaje #2
sensor 2:RB3=1 manda mensaje #3
sensor 3:RB4=1 manda mensaje #4
0
0
D2LED-RED
R8220
Diseño del Circuito en Simulacion
Diseño Digital II Ingenieria Electronica
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 32/55
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óvilNokia 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-COM3
COM3 - USBUSB - Nokia 3220i
ERROR
TXD3
RXD2
CTS8
RTS7
DSR6
DTR4
DCD1
RI9
P2
COMPIM
Conexion COM1Proto - CPU
Diseño Digital II Ingenieria Electronica
Comunicacion COM1 con el COM3
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 33/55
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 esactivar 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
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 34/55
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=16F877AINCLUDE <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 0x20DATOX, APUNT, W_TEMP, STATUS_TEMP,BANDEENDC
ORG 0x00GOTO INICIOORG 0X04GOTO INTERR
INCLUDE <CADENAS.INC>INCLUDE <RETARDOS.INC>
INICIOBANCO_1MOVLW B'11101111'MOVWF TRISB ;RB0=ENTRADA RC6=TX RC7=RXMOVLW B'10111111' ;RC6= SALIDAMOVWF TRISCMOVLW b'00100100' ;TXEN=1 BRGH=1
MOVWF TXSTA ;REGISTRO DE TRANSMISIONMOVLW 0x19 ; 0x19=9600 bps
MOVWF SPBRG ;GENERADOR DE BAUDIOSMOVLW B'10010000' ;GIE=1 ,INTE=1 ,INTF=OMOVWF INTCONBSF OPTION_REG,6 ;********* INTEDG=1 FLANCO ASCENDENTE
BANCO_0MOVLW B'10010000' ;SPEN=1 RCEN=1
MOVWF RCSTA ;REGISTRO DE RECEPCION
PRINCIPALCALL MEM_CEL ;SELECCIONAMOS MEMORIA DEL CEL
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 35/55
Facultad de Ciencias y Tecnología. Ingeniería Electrónica.
29
CALL Retardo_2sCALL MODO_TEXT ;SELECIONO EL MODO TEXTO
CALL Retardo_2sCALL GUARDAR_MSG ;ALMACENO MENSAJES
CALL Retardo_2sBSF PORTB,3
INFINITOBTFSC PORTB,3 ;TESTEA RB3GOTO INFORMAR1 ;SI RB3=1 MANDA EL MENSAJE3BTFSC PORTB,4 ;TESTEA RB3GOTO INFORMAR2 ;SI RB3=1 MANDA EL MENSAJE4
GOTO INFINITOINFORMAR1
CALL ENVIA_MSG3BSF PORTB,7CALL Retardo_1sGOTO INFINITO
INFORMAR2CALL ENVIA_MSG4
BSF PORTB,7CALL Retardo_2sGOTO INFINITO
;***************************************;RUTINA ATIENDE LA INTERRUPCION;****************************************INTERR
MOVWF W_TEMP ;Copia W en el registro TEMPSWAPF STATUS,W ;Intercambia los nibles del registro de STATUS
; y los guarda en WCLRF 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 eventoGOTO ret ;si no es bandera de captura retornaBTFSS PORTB,1GOTO PREG2 ; SI RB1=0 IR A PR2CALL ENVIA_MSG1GOTO SAL
PREG2 BTFSS PORTB,2GOTO PREG3 ;SI RB2=0 LLAMARCALL ENVIA_MSG2GOTO SAL
PREG3 CALL LLAMARCALL Retardo_10sCALL PARAR_LLAMADA
SAL BCF INTCON,INTF;-------------------------------------------------
retSWAPF STATUS_TEMP,W ;restablece contextoMOVWF STATUSSWAPF W_TEMP,FSWAPF W_TEMP,W
RETFIE
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 36/55
Facultad de Ciencias y Tecnología. Ingeniería Electrónica.
30
;************************************************************;ENVIA CARACTER----USART;************************************************************ENVIA
BANCO_1ESP BTFSS TXSTA,TRMT ;vemos el bufer de transmisión
GOTO ESPBANCO_0MOVF DATOX,W ;rescata dato a enviarMOVWF TXREG ;lo enviaRETURN
;***********************************************************;RUTINA PARA GUARDAR N MENSAJES EN EL CELULAR;***********************************************************GUARDAR_MSG
CALL ESCRIBIR_MSGCALL Retardo_2sCALL E_MSG1CALL Retardo_2sCALL ESCRIBIR_MSGCALL Retardo_2s
CALL E_MSG2
CALL Retardo_2sCALL ESCRIBIR_MSGCALL Retardo_2sCALL E_MSG3CALL Retardo_2sCALL ESCRIBIR_MSGCALL Retardo_2sCALL E_MSG4
CALL Retardo_2sRETURN;***********************************************************;COMANDO SELECCIONAR MEMORIA DEL CELULAR
;***********************************************************MEM_CEL
CLRF APUNTCICLO CALL AT_CPMS
MOVWF DATOXSUBLW "J"BTFSC STATUS,ZGOTO SALIRCALL ENVIAINCF APUNT,1GOTO CICLO
BANCO_1BCF TXSTA,TXEN
SALIRRETURN
;***********************************************************;COMANDO DE SELECCION MODO TEXTO;***********************************************************MODO_TEXT
CLRF APUNTCICLOMT CALL AT_CMGF
MOVWF DATOXSUBLW "J"
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 37/55
Facultad de Ciencias y Tecnología. Ingeniería Electrónica.
31
BTFSC STATUS,ZGOTO SALIRMTCALL ENVIAINCF APUNT,1GOTO CICLOMT
BANCO_1BCF TXSTA,TXEN
SALIRMTRETURN
;***********************************************************;COMANDO DE ESCRIBIR DE MENSAJES A GUARDAR;***********************************************************ESCRIBIR_MSG
CLRF APUNTCICLOEMSG CALL AT_CMGW
MOVWF DATOXSUBLW "J"BTFSC STATUS,ZGOTO SALIREMSGCALL ENVIAINCF APUNT,1
GOTO CICLOEMSGBANCO_1BCF TXSTA,TXEN
SALIREMSGRETURN
;***********************************************************;COMANDO DE ESCRIBIR DE MENSAJES A GUARDAR;***********************************************************E_MSG1
CLRF APUNTCICLOEE CALL MSG1
MOVWF DATOXSUBLW "J"BTFSC STATUS,Z
GOTO SALIREECALL ENVIAINCF APUNT,1GOTO CICLOEE
BANCO_1BCF TXSTA,TXEN
SALIREERETURN
;***********************************************************;COMANDO DE ESCRIBIR DE MENSAJES A GUARDAR;***********************************************************E_MSG2
CLRF APUNTCICLOEE2 CALL MSG2
MOVWF DATOXSUBLW "J"BTFSC STATUS,ZGOTO SALIREE2CALL ENVIAINCF APUNT,1GOTO CICLOEE2
BANCO_1BCF TXSTA,TXEN
SALIREE2
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 38/55
Facultad de Ciencias y Tecnología. Ingeniería Electrónica.
32
RETURN;***********************************************************;COMANDO DE ESCRIBIR DE MENSAJES A GUARDAR;***********************************************************E_MSG3
CLRF APUNTCICLOEE3 CALL MSG3
MOVWF DATOXSUBLW "J"BTFSC STATUS,ZGOTO SALIREE3CALL ENVIAINCF APUNT,1GOTO CICLOEE3
BANCO_1BCF TXSTA,TXEN
SALIREE3RETURN
;***********************************************************;COMANDO DE ESCRIBIR DE MENSAJES A GUARDAR;***********************************************************
E_MSG4 CLRF APUNTCICLOEE4 CALL MSG4
MOVWF DATOXSUBLW "J"BTFSC STATUS,ZGOTO SALIREE4CALL ENVIAINCF APUNT,1GOTO CICLOEE4
BANCO_1BCF TXSTA,TXEN
SALIREE4RETURN
;***********************************************************;COMANDO PARA REALIZAR LLAMADA;***********************************************************LLAMAR
CLRF APUNTCICLO1
CALL ATD_CELMOVWF DATOXSUBLW "J"BTFSC STATUS,ZGOTO SALIR1CALL ENVIAINCF APUNT,1GOTO CICLO1
BANCO_1BCF TXSTA,TXEN
SALIR1RETURN
;***********************************************************;COMANDO DETENER LLAMADA;***********************************************************PARAR_LLAMADA
CLRF APUNT
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 39/55
Facultad de Ciencias y Tecnología. Ingeniería Electrónica.
33
CICLOPLLCALL AT_CHUPMOVWF DATOXSUBLW "J"BTFSC STATUS,ZGOTO SALIRPLLCALL ENVIAINCF APUNT,1GOTO CICLOPLL
BANCO_1BCF TXSTA,TXEN
SALIRPLLRETURN
;***********************************************************;COMANDO ENVIAR MENSAJE1;***********************************************************ENVIA_MSG1
CLRF APUNTCICLOA CALL AT_CMSS1
MOVWF DATOXSUBLW "J"
BTFSC STATUS,ZGOTO SALIRACALL ENVIAINCF APUNT,1GOTO CICLOA
BANCO_1BCF TXSTA,TXEN
SALIRARETURN
;***********************************************************;COMANDO ENVIAR MENSAJE2;***********************************************************ENVIA_MSG2
CLRF APUNTCICLOB CALL AT_CMSS2
MOVWF DATOXSUBLW "J"BTFSC STATUS,ZGOTO SALIRBCALL ENVIAINCF APUNT,1GOTO CICLOB
BANCO_1BCF TXSTA,TXEN
SALIRBRETURN
;***********************************************************;COMANDO ENVIAR MENSAJE3;***********************************************************ENVIA_MSG3
CLRF APUNTCICLOC CALL AT_CMSS3
MOVWF DATOXSUBLW "J"BTFSC STATUS,ZGOTO SALIRCCALL ENVIAINCF APUNT,1
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 40/55
Facultad de Ciencias y Tecnología. Ingeniería Electrónica.
34
GOTO CICLOCBANCO_1
BCF TXSTA,TXENSALIRC
RETURN;***********************************************************;COMANDO ENVIAR MENSAJE3;***********************************************************ENVIA_MSG4
CLRF APUNTCICLOD CALL AT_CMSS4
MOVWF DATOXSUBLW "J"BTFSC STATUS,ZGOTO SALIRDCALL ENVIAINCF APUNT,1GOTO CICLOD
BANCO_1BCF TXSTA,TXEN
SALIRD
RETURNEND
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 41/55
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 Bitssection.;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 __16F877AMESSG "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'
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 42/55
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'
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 43/55
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 onlyT1SYNC 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'
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 44/55
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 onlyRC8_9 EQU H'0006' ; Backward compatibility onlySREN 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'
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 45/55
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'
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 46/55
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 onlyTX8_9 EQU H'0006' ; Backward compatibility onlyTXEN 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;
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 47/55
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 writeprotection_WRT_256 EQU H'3DFF' ; First 256 prog memmory writeprotected_WRT_1FOURTH EQU H'3BFF' ; First quarter prog memmory
write protected_WRT_HALF EQU H'39FF' ; First half memmory writeprotected_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
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 48/55
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 20segundos.;; Se han calculado para un sistema microcontrolador con un PIC trabajando con uncristal; de cuarzo a 4 MHz.; En los comentarios, "cm" significa "ciclos máquina".;; ZONA DE DATOS*********************************************************************
CBLOCKR_ContA ; Contadores para los retardos.R_ContB
R_ContCENDC;; 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 ciclosmá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 ciclosmá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 ciclosmá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 ciclosmáquina.
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 49/55
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 ciclosmá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 (alsaltar).
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 ciclosmá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 ciclosmá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 ciclosmá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
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 50/55
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 ciclosmá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 ciclosmá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 ciclosmá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 ciclosmá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 ciclosmá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 desegundo.;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 valorde "K".
movwf R_ContA ; Aporta MxNx1 ciclos máquina.
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 51/55
Facultad de Ciencias y Tecnología. Ingeniería Electrónica.
45
R1Decima_BucleInternonop ; 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.
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 52/55
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,RP0BCF STATUS,RP1ENDM
BANCO_1 MACROBSF STATUS,RP0BCF STATUS,RP1ENDM
BANCO_2 MACROBCF STATUS,RP0BSF STATUS,RP1ENDM
BANCO_3 MACRO
BSF STATUS,RP0BSF STATUS,RP1ENDM
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 53/55
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 wADDWF 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 wADDWF 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 adelanteDT "at+cmss=2",0x0D,0X0A,"J"
RETURNAT_CMSS3;envia el mensaje almacenado en la posicion #3
MOVF APUNT,W ; carga apuntador en wADDWF 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 wADDWF PCL,1 ;salta w instruciones hacia adelante
DT "at+cmss=4",0x0D,0X0A,"J"
RETURNATD_CEL ;ATD71753016
MOVF APUNT,W ; carga apuntador en wADDWF PCL,1 ;salta w instruciones hacia adelante
DT "atd79986235;",0x0D,0X0A,"J" ;---------------------
RETURNAT_CHUP ;PARADA DE LA LLAMADA
MOVF APUNT,W ; carga apuntador en wADDWF 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 wADDWF 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
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 54/55
Facultad de Ciencias y Tecnología. Ingeniería Electrónica.
48
MOVF APUNT,W ; carga apuntador en wADDWF 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 wADDWF 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 wADDWF 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 wADDWF PCL,1 ;salta w instruciones hacia adelanteDT "alarma 2 activada",0x1A,"J"
RETURNMSG4;mensaje #2 a guardar en la memoria del cel.
MOVF APUNT,W ; carga apuntador en wADDWF 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.
5/11/2018 At y Pic _ Lenguaje ASEMBLER -Cocha - slidepdf.com
http://slidepdf.com/reader/full/at-y-pic-lenguaje-asembler-cocha 55/55
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/