Vous êtes sur la page 1sur 26

IST SALESIANO

ROBOTICA
Prof. Ing. Jaime Rupay C.

@
Esta instruccin es utilizada para insertar dentro del codigo PicBasic, lineas de programa en lenguaje ensamblador. En este caso, cada lnea en lenguaje ensamblador debe llevar el smbolo @ al inicio. La sintaxis es : @instruccin en lenguaje ensamblador
led VAR BYTE 'Declaracin de variable led TRISB=$00 'Configura el puerto B como salida led=$00 'Inicializamos la variable led Inicio: @bsf _led,0 'Coloca en 1 el bit 0 de la variable led pause 1000 'Pausa de 1 segundo PORTB=led 'Saca dato por el puerto B pause 1000 'Pausa de 1 segundo @bcf _led,0 'Coloca en 0 el bit 0 de la variable led PORTB=led 'Saca dato por el puerto B goto Inicio End

ADCIN
Permite la lectura de un canal analgico interno del microcontrolador. La sintaxis es: AdcIn Canal, Variable Canal es la puerta donde se recibe la seal analgica. Variable es donde se almacenar el dato resultado de la conversin. Para el uso de esta sentencia se utilizan algunas definiciones como: DEFINE ADC_BITS 8 define el nmero de bits. DEFINE ADC_CLOCK 3 define el reloj (rc=3). DEFINE ADC_SAMPLEUS 50 define el tiempo de muestreo en microsegundos. Adems se tiene que utilizar el registro ADCON como: ADCON1=%Valor, donde Valor resulta de la configuracin de los canales.

DEFINE ADC_BITS 10 ' Define 10 bits de resolucin DEFINE ADC_CLOCK 3 ' Define reloj (rc=3) DEFINE ADC_SAMPLEUS 50 ' Definir un tiempo de muestreo de 50 uC. TRISA=255 ' Definir el puerto A como entrada ADCON1=0 ' Definir el puerto A como analgico X VAr BYTE ' Definir x como byte ADCIN 0,x ' Leer el canal 0 y almacenar el dato en la variable x

BRANCH
Hace un salto a una etiqueta dependiendo del valor de la variable, es decir, si la variable es igual a 0, el salto se hace a la etiqueta 1; si la variable es igual a 1, el salto se hace a la etiqueta 2; si la variable es igual a 2, el salto se hace a la etiqueta 3, y as sucesivamente. Sintaxis: Branch Variable,[Etiqueta1,Etiqueta2,EtiquetaN]
Variable es la que tomar un valor desde 0 a 255. Etiqueta1,Etiqueta2son aquellas etiqueta hacia donde va a saltar el programa de acuerdo al valor de la variable, por ejemplo si el valor de la variable es 0, entonces se salta a la Etiqueta1, si es 1 a la Etiqueta2 y as sucesivamente.

i VAR BYTE ' Declaracin de Variable 1 TRISB=$00 ' Configura el puerto B como salida PORTB=$00 ' Inicializa el puerto B i=0 ' Inicializa la variable i Inicio: Branch i, [Led1, Led2, Led3] Led1: HIGH PORTB.0 ' Coloca en alto la puerta B0 Pause 1000 ' Pause de 1 S Low PORTB.0 ' Coloca a bajo la puerta B0 i=i+1 ' Suma 1 a la variable i goto Inicio ' Salta a inicio Led2: HIGH PORTB.1 ' Coloca en alto la puerta B1 Pause 1000 ' Pause de 1 S Low PORTB.1 ' Coloca a bajo la puerta B1 i=i+1 ' Suma 1 a la variable i goto Inicio ' Salta a inicio Led3: HIGH PORTB.0 ' Coloca en alto la puerta B0 Pause 1000 ' Pause de 1 S Low PORTB.0 ' Coloca a bajo la puerta B0 i=0 ' Inicializa la variable i goto Inicio ' Salta a inicio END

Elimina los rebotes de un pulsador o switch, y genera autorepeticin. Sintaxis:


BUTTON Pin, Estado,Retardo,Rango,Variable,Accin,Etiqueta

BUTTON

TRSIB=%11111101 'Configuracin del puerto B A0 var BYTE 'Declaracin de la variable A0 A0=0 'Inicializa la variable A0 Inicio: button PORTB.0,1,2,2,A0,0,NoPres PULSOUT PORTB.1,150 ' Envia un pulso por el puerto B1 Nopres: Pause 10 'Pausa de 10 ms Goto inicio 'Salta a inicio END 'Fin

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. Sintaxis: CALL Etiqueta

CLEAR
Inicializa todos los registros de la RAM a cero, es decir, todas las variables simultaneamente pasarn a ser cero. Sintaxis: CLEAR

CLEARWDT
Inicializa watchdog timer Sintaxis: CLEARWDT

COUNT
Es un comando que permite el conteo de pulsos ingresados por una puerta del microcontrolador. Sintaxis: COUNT pin,periodo,variable
COUNT PORTA.0,1000,X ' Contar los pulsos que ingresan por la puerta AO ' durante 1 segundo y almacenar en la variable X

DATA
Data{@Direccin inicial}, Constante1,Constante2,ConstanteN Data @10,1,3,5,7,9

DTMFOUT
DTMFout pin,{Tiempo-Enc,Tiempo-Sil},[Tono,TonoTono]
Pin : Especifica la puerta por donde se emitir los tonos DTMF Tiempo-Enc : Es una variable, constante o expresion que especifica la duracion de cada tono en milisegundos. En caso de no utilizar este parametro, el tiempo por defecto de cada tono es de 200ms Tiempo-Sil: Es una variable o constante que especifica el tiempo en milisegundos del silencio que hay entre cada tono. En caso de no utilizar este parmetro, el tiempo por defecto ser de 50ms.

Tono: Puede ser una variable o constante (entre 0-15), que especifica el tono que debe ser generado.

Tabla de tonos para la sentencia DTMFOUT

Tabla del tonos DTMF de transmisor /receptor

Circuito bsico complementaria a la salida del pin del PIC

Teclado matricial clsico de 4x4

DTMF
En telefona, el sistema de marcacin por tonos, tambin llamado sistema multifrecuencial o DTMF (Dual-Tone MultiFrequency), consiste en lo siguiente: Cuando el usuario pulsa en el teclado de su telfono la tecla correspondiente al dgito que quiere marcar, se envan dos tonos, de distinta frecuencia: uno por columna y otro por fila en la que est la tecla, que la central decodifica a travs de filtros especiales, detectando instantneamente qu dgito se marc. La Marcacin por tonos fue posible gracias al desarrollo de circuitos integrados que generan estos tonos desde el equipo terminal, consumiendo poca corriente de la red y sustituyendo el sistema mecnico de interrupcin-conexin (el anticuado disco de marcar).

CM8888

DTMF
Este sistema supera al de marcacin por pulsos por cuanto disminuye la posibilidad de errores de marcacin, al no depender de un dispositivo mecnico. Por otra parte es mucho ms rpido ya que no hay que esperar tanto tiempo para que la central detecte las interrupciones, segn el nmero marcado. No obstante, las modernas centrales telefnicas de conmutacin digital, controladas por ordenador, siguen admitiendo la conexin de terminales telefnicos con ambos tipos de marcacin ms rpida.

Ejemplo
Conectando el pin de salida (puerta C0) adecuadamente a una lnea telefnica, estaremos marcando sin problemas un nmero telefnico. En algunos casos es recomendable utilizar los tiempos de encendido y de silencio (Tiempo-Enc y tiempo-Sil) para realizar un marcado ms exacto.

DTMFout PortC,0, [0,1,2,3,4,5,6,7,8,9]

Ejemplo
Los tono tendrn una duracin de 400ms cada uno y un tiempo en silencio entre ellos de 150 milisegundo. En cuanto al oscilador se recomienda usar del tipo HS (desde 10MHZ o superior) para obtener mejores resultados en la generacin de tonos DTMF, as como tambin se recomienda utilizar un circuito de acople entre el microcontrolador y el dispositivo externo al cual enviaremos los tonos

DTMFout PortC.0,400,150,[6,4,3,8,7,1,0]

EEPROM
Es un comando cuya funcin es grabar en la memoria del microcontrolador un dato en una direccin especifica. sintaxis

Eeprom Direccion,[Valor]
EEPROM 0,50 almacenar en la posicin de memoria 0 el dato 50

END
Detiene la ejecucin de un programa y pone el microcontrolador en bajo consumo de energa

FORNEXT
Cumple la funcin de generar un blucle finito.
For Contador=Inicio To {Step Incremento/ - Decremento} { Cuerpo } Next Contador

Practica
i VAR BYTe b VAR BYTE TRISB=0 EEPROM 0,[63] EEPROM 1,[6] EEPROM 2,[91] EEPROM 3,[79] EEPROM 4,[102] EEPROM 5,[109] EEPROM 6,[125] EEPROM 7,[7] EEPROM 8,[127] EEPROM 9,[103] Inicio: For i=0 TO 9 STEP 1 Read i,b PORTB=B Pause 500 nEXT I GOTO Inicio

Vous aimerez peut-être aussi