Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SESION 5
PIC 16F84A
DECLARACION DE VARIABLES VAR Tipo de Variable Descripcin VAR BIT Toma los valores 0 y 1 unicamente VAR BYTE Toma valores entre 0 y 255 (8 bits) VAR WORD Toma valores entre 0 y 65535 (16 bits)
OPERADORES ARITMETICOS Operador Descripcin Ejemplo + Suma c=a+b Resta c=a-b * Multiplicacin c=a*b / Divisin c=a/b // Residuo c=a//b << Desplaza a la Izquierda c=a<<2 >> Desplaza a la Derecha c=b>>4 = Asignacin de Valores c=a ABS Valor Absoluto c=abs a COS Coseno del Angulo c=cos a MIN Minimo de un nmero c=a min b MAX Mximo de un nmero c=a max b SQR Raiz Cuadrada de un numero a=sqr b REV Invertir un Bit c=a rev 3
OPERADORES BINARIOS Operador Descripcin Ejemplo & AND Lgico c=a&b | OR Lgico c=a|b ^ XOR Lgico c=a^b NOT Lgico c= a &/ NAND Lgicoc=a&/b |/ NOR Lgico c=a|/ b ^/ NXOR Lgico c=b^/a
OPERADORES DE COMPARACION Operador Descripcin = Igual <> Diferente < Menor que > Mayor que <= Menor o igual que >= Mayor o igual que
OPERADORES LOGICOS Operador Descripcin AND AND Lgico OR OR Lgico XOR XOR Lgico NOT NOT Lgico NOT AND NAND Lgico NOT OR NOR Lgico NOT XOR NXOR Lgico
Count
END HIGH LOW PAUSE PAUSEUS PULSOUT RANDOM DIG SHIFTOUT LOOKUP RETURN
End HIGH pin LOW pin PAUSE periodo PAUSEUS periodo PULSOUT pin, nivel RANDOM variable B0=123 B1=B0 DIG 1;B1=2
DESCRIPCION La instruccin Call, llama a una subrutina la cual est identificada con una etiqueta, y una vez culminada la subrutina la cual contiene al final la instruccin Return, vuelve a la siguiente lnea despus del llamado. La instruccin Count puede medir la frecuencia de una seal simple determinando el nmero de pulsos por segundo. Se pueden medir frecuencias de hasta 25 khz con un oscilador de 4 MHz. Para un oscilador de 20 MHz la frecuencia mxima a ser medida ser de 125 khz. La instruccin END detiene la ejecucin de un programa y pone el microcontrolador en bajo consumo de energa. La instruccin High pone en uno lgico el pin especificado, el cual configura automticamente como salida. La instruccin LOW coloca en cero lgico un pin especfico. La instruccin Pause realiza una pausa en el programa por un periodo definido en milisegundos. La instruccin PauseUs realiza una pausa en el programa por un periodo definido en microsegundos. La instruccin PULSOUT genera pulsos con una duracin definida en decenas de microsegundos. (Tiene una resolucin de 10 microsegundos para un oscilador de 4 Mhz). La instruccin RANDOM almacena nmeros aleatorios en una variable de 16 Bits (Word). Devuelve el valor de un dgito decimal . Simplemente se le indica el nmero de dgito a conocer ( 0 - 4 , siendo 0 el primero de la derecha).
SHIFTOUT DataPin,ClockPin,Mode, [Var{}...] Desplaza en forma sincrnica el contenido de Var sobre DataPin y ClockPin . LOOKUP puede ser usado para obtener valores de una tabla de constantes de 8 LOOKUP Index, [Constant , Constant...] , Var bits ,Si Index es cero Var toma el valor de la primer Constant .Si Index es 1 , Var toma el valor de la segunda Constant y as sucesivamente . RETURN Retorno de una subrutina desde donde se ha generado un salto del tipo Call.
1. DATA @direccion,dato1,dato2,.. DATA 2. DATA (cantdirecciones),datos(cantidad) EEPROM EEPROM direccion ,[dato1,dato2,...] READ READ direccion,Variable
WRITE
WRITE Address,Value
Esta instruccin permite grabar datos en la memoria EEPROM del microcontrolador al momento en que se grabe el microcontrolador. La sintaxis 1 graba los datos(dato1,dato2,..) desde la direccion que eligue el usuario. La sintaxis 2 graba una cantidad de datos especificado por el usuario en la posicion (cantidad de direcciones). Esta instruccin permite grabar datos en la memoria EEPROM del microcontrolador al momento en que se grabe el microcontrolador. Lee el EEPROM incorporado en la direccin(direccion) , y guarda el resultado en Variable .Esta instruccin solo puede ser usada con un microPIC que tenga un EEPROM incorporado como el PIC16F84 PIC16C84 Graba valores Value en el EEPROM incorporado en la direccin Address especificada . .Esta instruccin solo puede ser usada con un microPIC que tenga un EEPROM incorporado como el PIC16F84 PIC16C84. Es usado para colocar datos en el EEPROM durante el momento de la ejecucin .Para grabar datos en el EEPROM durante la programacin ,se usan las declaraciones DATA y EEPROM . Cada WRITE se auto regula en tiempo y toma aproximadamente 10 milisegundos ejecutarlo en un microPIC .
SENTENCIA
SINTAXIS
DESCRIPCION
Produce una secuencia DTMF Touch Tone en Pin ,Pin automticamente se convierte en salida . Pin debe ser una constante , 0 - 15 , una variable que contenga un nmero de 0 a 15 (p.ej. B0) un nmero de pin (p.ej. B0). Onms es el nmero de milisegundos que suena cada tono y Offms es el nmero de milisegundos de pausa entre cada tono .Si no estn especificados , por defecto Onms es 200 ms y Offms es 50 ms. Tones tiene un valor de 0 - 15 .Los tonos de 0 - 9 son los mismos que en un DTMFOUT DTMFOUT Pin, { Onms ,Offms,} [ Tone {,Tone} ] teclado telefnico .Tone 10 es la clave * , Tone 11 es la clave # ,y los Tones 12 15 corresponden a las teclas extendidas A -D . DTMFOUT usa FREQOUT para generar los tonos duales .FREQOUT genera tonos usando una forma de modulacin de ancho de pulso .Los datos en bruto que salen del pin son bastante horribles .Usualmente se necesita algn tipo de filtro para suavizar la seal hasta una forma de onda senoidal quitndole algunas armnicas generadas. Produce la las frecuencias especificadas en el Pin , durante Onms milisegundos .Pin se convierte automticamene en salida .Pin puede ser una constante , 0-15 , una variable que contenga un nmero 0 -15 .(p.ej. B0) un nmero de pin (p.ej. PORTA.0) . FREQOUT FREQOUT Pin,Onms,Frequency1{,Frequency2} Puede producir una dos frecuencias de 0 a 32767 Hz al mismo tiempo . FREQOUT genera tonos usando una forma de modulacin de ancho de pulso . Los datos en bruto que salen del pin son bastante horribles.Usualmente se necesita algn tipo de filtro para suavizar la seal hasta una forma de onda senoidal quitndole algunas armnicas generadas. Gebera un tono y/o ruido blanco en el Pin especificado . Pin es automticamente colocado como salida . Pin puede ser una constante , 0 - 15 , una variable que contenga un nmero de 0-15 (p.ej. B0) un nmero de Pin (p.ej. PORTA.0). Note 0 es silencio .Nte 1-127 son tonos .Notes 128-255 son ruido blanco .Los tonos y el ruido blanco estn en una escala ascendente (p.ej. 1 y 128 son las frecuencias menores , 129 y 266 las mayores).Note 1 es aprox. 78,74 Hz y Note SOUND SOUND Pin,[Note,Duration{,Note,Duration...}] 127 es aproz. 10000 Hz . Duration es 0-255 y determina el largo de la nota ,en incrementos de 12 milisegundos .Note y Duration no necesitan ser constantes . SOUND entrega como salida ondas cuadradas con nivel TTL .Gracias a las caractersticas del micro PIC ,se puede manejar un parlante a travs de un capacitor -El valor del capacitor debe ser determinado en funcin de las frecuencias a usar y la carga del parlante .Parlantes piezo elctricos pueden ser conectados directamente .
1. DATA @direccion,dato1,dato2,..
DATA
2. DATA (cantdirecciones),datos(cantidad)
WRITE
WRITE Address,Value
Esta instruccin permite grabar datos en la memoria EEPROM del microcontrolador al momento en que se grabe el microcontrolador. La sintaxis 1 graba los datos(dato1,dato2,..) desde la direccion que eligue el usuario. La sintaxis 2 graba una cantidad de datos especificado por el usuario en la posicion (cantidad de direcciones). Esta instruccin permite grabar datos en la memoria EEPROM del microcontrolador al momento en que se grabe el microcontrolador. Lee el EEPROM incorporado en la direccin(direccion) , y guarda el resultado en Variable .Esta instruccin solo puede ser usada con un microPIC que tenga un EEPROM incorporado como el PIC16F84 PIC16C84 Graba valores Value en el EEPROM incorporado en la direccin Address especificada . .Esta instruccin solo puede ser usada con un microPIC que tenga un EEPROM incorporado como el PIC16F84 PIC16C84. Es usado para colocar datos en el EEPROM durante el momento de la ejecucin .Para grabar datos en el EEPROM durante la programacin ,se usan las declaraciones DATA y EEPROM . Cada WRITE se auto regula en tiempo y toma aproximadamente 10 milisegundos ejecutarlo en un microPIC .
SERIN
SEROUT
TRANSMISION DE DATOS
Transmisin de Datos
Paralelo
serial
Sncrono
Asncrono
MODOS DE COMUNICACIN
De acuerdo a la transmisin de flujo de datos, pueden ser: Paralelo y Serial
MODOS DE COMUNICACIN
De acuerdo al sentido de la transmisin se clasifican en:
SIMPLEX HALF DUPLEX O SEMI-DUPLEX FULL DUPLEX O DUPLEX COMPLETO
SIMPLEX
Dato Transmisor
Receptor
SIMPLEX
Dato Transmisor
Receptor
SIMPLEX
Dato Transmisor
Receptor
SIMPLEX
Dato Transmisor
Receptor
COMO EJEMPLO DE COMUNICACIN SIMPLEX SE PUEDE MENCIONAR UNA TRANSMISIN DE RADIO O TELEVISIN
HALF DUPLEX
Transmisor
Receptor
Receptor
Transmisor
HALF DUPLEX
Transmisor
Receptor
Receptor
Transmisor
HALF DUPLEX
Transmisor
Receptor
Receptor
Transmisor
HALF DUPLEX
Transmisor
Receptor
Receptor
Transmisor
HALF DUPLEX
Transmisor
Receptor
Receptor
Transmisor
HALF DUPLEX
Transmisor
Receptor
Receptor
Transmisor
HALF DUPLEX
Transmisor
Receptor
Receptor
Transmisor
HALF DUPLEX
Transmisor
Receptor
Receptor
Transmisor
HALF DUPLEX
Transmisor
Receptor
Receptor
Transmisor
HALF DUPLEX
Transmisor
Receptor
Receptor
Transmisor
HALF DUPLEX
Transmisor
Receptor
Receptor
Transmisor
FULL DUPLEX
Transmisor
Receptor
Receptor
Transmisor
FULL DUPLEX
Transmisor
Receptor
Receptor
Transmisor
FULL DUPLEX
Transmisor
Receptor
Receptor
Transmisor
FULL DUPLEX
Transmisor
Receptor
Receptor
Transmisor
FULL DUPLEX
Transmisor
Receptor
Receptor
Transmisor
FULL DUPLEX
Transmisor
Receptor
Receptor
Transmisor
MODOS DE COMUNICACIN
De acuerdo a su temporizacin pueden ser: Sncrono y Asncrono.
Comunicacin sincrnica
Se caracteriza porque el dato es enviado junto con la seal de reloj del transmisor. Ejemplos: de este tipo de comunicacin son los protocolos: I2C (Inter Integrated Circuit) SPI (Serial Peripherical Interface)
Transmisor
Receptor
Comunicacin sincrnica
Se caracteriza porque el dato es enviado junto con la seal de reloj del transmisor. Ejemplos: de este tipo de comunicacin son los protocolos: I2C (Inter Integrated Circuit) SPI (Serial Peripherical Interface)
Dato
Transmisor Receptor
sincrona
Comunicacin sincrnica
Se caracteriza porque el dato es enviado junto con la seal de reloj del transmisor. Ejemplos: de este tipo de comunicacin son los protocolos: I2C (Inter Integrated Circuit) SPI (Serial Peripherical Interface)
Dato
Transmisor Receptor
sincrona
Comunicacin sincrnica
Se caracteriza porque el dato es enviado junto con la seal de reloj del transmisor. Ejemplos: de este tipo de comunicacin son los protocolos: I2C (Inter Integrated Circuit) SPI (Serial Peripherical Interface)
Dato
Transmisor Receptor
sincrona
Comunicacin sincrnica
Se caracteriza porque el dato es enviado junto con la seal de reloj del transmisor. Ejemplos: de este tipo de comunicacin son los protocolos: I2C (Inter Integrated Circuit) SPI (Serial Peripherical Interface)
Dato
Transmisor Receptor
sincrona
Comunicacin Asincrnica
Dato
Transmisor
Receptor
Ft=Fr
Ft Fr
Comunicacin Asincrnica
Dato Transmisor
Receptor
Ft=Fr
Ft
RECEPTOR.
UNO DE LOS PROTOCOLOS MAS USADOS ES EL RS232
Fr
Receptor
CONFIGURACION
Numero de Puerto Velocidad Paridad Bits de Datos Bits de Parada
DATOS A TRANSIMITR
ESTADO DE CONEXION
DATOS RECIBIDOS
SENTENCIAS EN PICBASIC PARA MANEJO DEL PUERTO SERIAL - SERIN SERIN Pin,Mode, {Timeout,Label,}{[Qual...],} {Item...}
Recibe uno ms Items en Pin , en formato estndar asincrnico , usando 8 bit de datos ,sin paridad y un stop bit (8N1) .SERIN es similar al comando Serin de BS1 con el agregado de Timeout . Pin automticamente se convierte en entrada . Pin puede ser una constante , 0 - 15 , una variable que contenga un nmero de 0-15 (p.ej. B0) un nmero de Pin (p.ej. PORTA.0) Los nombres Mode (p.ej. T2400 ) estn definidos en el archivo MODEDEFS.BAS .Para usarlos ,agregue la lnea : Include modedefs.bas al comienzo del programa PBP . BS1DEFS,BAS y BS2DEFS.BAS ya incluyen MODEDEFS.BAS .No lo incluya , si ya est usando alguno de estos archivos .Los nmeros Mode pueden ser usados sin incluir este archivo . Timeout y Label son opciones que pueden ser incluidas para permitir al programa continuar si no se recibe un carcter durante un cierto tiempo . Timeout est especificado en unidades de 1 milisegundo . La lista de Items de datos a ser recibida puede estar precedida por uno ms calificadores encerrados entre corchetes . SERIN debe recibir estos bytes en un orden exacto , antes de recibir los datos .Si algn byte recibido no concuerda con el byte siguiente de la secuencia de calificacin ,el proceso de calificacin comienza nuevamente ( p.ej. el prximo hyte recibido es comparado con el primer Item de la lista de calificacin ) .Un Qualifier puede ser constante, variable una sarta de constantes . Cada carcter de una sarta es tratado como un calificador individual . Una vez que se completan los calificadores , SERIN comienza a guardar datos en la variable asociada con cada Item .Si el nombre de variable es nico ,el valor del carcter ASCII recibido es guardado en la variable .Si la variable es precedida por el signo # . SERIN convierte un valor decimal en ASCII y guarda el resultado en esa variable .Todos los no-dgitos recibidos antes del primer dgito del valor decimal son ignorados y descartados .El carcter no-dgito que termina el valor decimal tambin se descarta .
Bach. Fernando Montenegro Daz
ERROR COMPIM
PINES A USAR PERMITE CONFIGURAR EL PUERTO COM
Bach. Fernando Montenegro Daz
7 8 9 10 11 12 13 14
D0 D1 D2 D3 D4 D5 D6 D7
P1
16 15 OSC1/CLKIN OSC2/CLKOUT MCLR RA0 RA1 RA2 RA3 RA4/T0CKI RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 PIC16F84A 17 18 1 2 3 6 7 8 9 10 11 12 13 1 6 2 7 3 8 4 9 DCD DSR RXD RTS TXD CTS DTR RI
R1
10k
ERROR COMPIM
MODULOS DE RADIOFRECUENCIA
Voltaje de operacin: DC3-12 V Corriente de operacin: 5-45 mA Corriente de reposo: ?20uA Velocidad de transmisin mx..: 9.6K Modulacin: AM Frecuencia de operacin: 315 MHz 433 MHz Alcance de transmisin: 1000m Dimensiones: 19mm x 19mm x 8mm Voltaje de operacin: DC 5 V Consumo de corriente: 5 mA Sensibilidad de recepcin: -103 dbm Velocidad de transmisin: 4.8K Modulacin: AM Tipo de salida: TTL Frecuencia de operacin: 315 MHz 433 MHz Dimensiones: 30mm x 14mm x 7mm
EMISOR
16 OSC1/CLKIN 15 OSC2/CLKOUT
RECEPTOR
17 18 1 2 3 6 7 8 9 10 11 12 13 B0 B1 B2 16 OSC1/CLKIN 15 OSC2/CLKOUT 4 MCLR RA0 RA1 RA2 RA3 RA4/T0CKI RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 17 18 1 2 3 6 7 8 9 10 11 12 13
0 0 0
B0
MCLR
RA0 RA1 RA2 RA3 RA4/T0CKI RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7
B1
B2