Professional Documents
Culture Documents
TCNICA DE AMBATO
Ttulo
Funciones para control DIO
F.I.S.E
.I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
E INDUSTRIAL
PERODO ACADMICO: MARZO-SEPTIEMBRE 2015
Objetivos
General
Investigar el trabajo por bit y registros que realizan las funciones
para control DIO.
Especficos
Obtener cada una de las definiciones acerca de las funciones para
control DIO.
Identificar y analizar las caractersticas de las funciones para
control DIO.
Resumen
En el siguiente trabajo se detallar la consulta nmero 4 que se trata sobre el control
digital en microcontroladores, un control digital es un sistema de control que puede ser
definido como el medio a travs del cual una cantidad o variable cualquiera de inters en
una mquina, mecanismo o proceso es mantenido o alterado de acuerdo a un patrn de
comportamiento deseado.
Palabras clave
Delay, Instruccin, Directiva, Fast_io, Set_tris
Metodologa
FUNCIONES PARA CONTROL DIO EN PICC
Descripcin de trabajo y funcin que realiza por bit
INPUT(pin)
Devuelve el estado '0' o '1' de la patilla indicada en pin. El mtodo de acceso de I/O
depende de la ltima directiva #USE *_IO utilizada. El valor de retorno es un entero corto.
Ejemplo:
while ( !input(PIN_B1) );
El argumento para las funciones de entrada y salida es una direccin de bit. Por ejemplo,
para el bit 3 del port A (byte 5 de los SFR) tendra un valor direccin de 5*8+3=43.
Esto se puede definir como sigue:
#define pin3_portA 43.
Los pines o patillas de los dispositivos estan definidos como PIN_XX en los archivos de
cabecera *.H. stos, se pueden modificar para que los nombres de los pines sean ms
significativos para un proyecto determinado.[1]
OUTPUT_BIT(pin, value)
Funcin
F.I.S.E
.I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
E INDUSTRIAL
PERODO ACADMICO: MARZO-SEPTIEMBRE 2015
Esta funcin saca el bit dado en value(0 o 1) por la patilla de I/O especificada en pin. El
modo de establecer la direccin del registro, est determinada por la ltima directiva
#USE *_IO.
Ejemplo:
output_bit( PIN_B0, 0); // es lo mismo que output_low(pin_B0);
output_bit( PIN_B0,input( PIN_B1 ) ); // pone B0 igual que B1
output_bit( PIN_B0, shift_left(&data, 1, input(PIN_B1))); // saca por B0 el MSB de 'data' y
al mismo tiempo
// desplaza el nivel en B1 al LSB de data. [1]
OUTPUT_FLOAT(pin)
Esta funcin pone la patilla especificada como pin en el modo de entrada. Esto permitir
que la patilla est flotante para representar un nivel alto en una conexin de tipo colector
abierto.
Ejemplo:
if( (dato & 0x80)==0 )
// guardamos la lectura del port A en dato
output_low(pin_A0);
else
output_float(pin_A0);
OUTPUT_HIGH(pin)
Pone a 'uno' el pin indicado. El mtodo de acceso de I/O depende de la ltima directiva
#USE *_IO utilizada.
Ejemplo:
output_high(PIN_A0); [2]
OUTPUT_LOW(pin)
Pone a 'cero' el pin indicado. El mtodo de acceso de I/O depende de la ltima directiva
#USE *_IO.
Ejemplo:
output_low(PIN_A0);[2]
Descripcin de trabajo y funcin que realiza por registro
SET_TRIS_A(value)
SET_TRIS_B(value)
SET_TRIS_C(value)
SET_TRIS_D(value)
SET_TRIS_E(value)
Estas funciones permiten escribir directamente los registros tri-estado para la
configuracin de los puertos.
Esto debe usarse con FAST_IO() y cuando se accede a los puertos de I/O como si fueran
memoria, igual que cuando se utiliza una directiva #BYTE. Cada bit de valor representa
una patilla. Un '1' indica que la patilla es de entrada y un '0' que es de salida.
F.I.S.E
.I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
E INDUSTRIAL
PERODO ACADMICO: MARZO-SEPTIEMBRE 2015
Ejemplo:
SET_TRIS_B( 0x0F );
FUNCIONES DE RETARDOS
Descripcin de trabajo y funcin que realiza
DELAY_CYCLES(count)
Esta funcin realiza retardos segn el nmero de ciclos de instruccin especificado en
count; los valores posibles van desde 1 a 255. Un ciclo de instruccin es igual a cuatro
periodos de reloj.
Ejemplo:
delay_cycles( 3 );
DELAY_MS(time)
Esta funcin realiza retardos del valor especificado en time. Dicho valor de tiempo es en
milisegundos y el rango es 0-65535.
Para obtener retardos ms largos as como retardos 'variables' es preciso hacer llamadas
a una funcin separada; vase el ejemplo siguiente.
Es preciso utilizar la directiva #use delay(clock=frecuencia) antes de la llamada a esta
funcin, para que el compilador sepa la frecuencia de reloj. [1]
Ejemplos:
#use delay (clock=4000000)
void retardo_segundos(int n) {
for (; n!=0; n--)
delay_ms( 1000 );
}
DELAY_US(time)
Esta funcin realiza retardos del valor especificado en time. Dicho valor es en
microsegundos y el rango va desde 0 a 65535. Es necesario utilizar la directiva #use
delay antes de la llamada a esta funcin para que el compilador sepa la frecuencia de
reloj.
Ejemplos:
#use delay(clock=20000000)
delay_us(50);
int espera = 10;
delay_us(espera);[1]
Algunas libreras incorporadas que habilitan el uso de las funciones DELAY_MS() y
DELAY_US().
#USE DELAY (CLOCK=frecuencia)
F.I.S.E
.I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
E INDUSTRIAL
PERODO ACADMICO: MARZO-SEPTIEMBRE 2015
Funcin que realiza
Esta directiva indica al compilador la frecuencia del procesador, en ciclos por segundo, a
la vez que habilita el uso de las funciones DELAY_MS() y DELAY_US().
Opcionalmente podemos usar la funcin restart_WDT() para que el compilador reinicie el
WDT durante el retardo.
Ejemplos:
#use delay (clock=4000000)
#use delay (clock=32000, RESTART_WDT) [1]
F.I.S.E
.I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
E INDUSTRIAL
PERODO ACADMICO: MARZO-SEPTIEMBRE 2015
En el estado de Alta Impedancia, la salida se comporta como si an no estuviera
conectada al circuito, excepto por una pequea corriente de fuga que puede fluir hacia
adentro o hacia afuera de la Terminal de salida.
Ejemplo:
void main(){
set_tris_b(0x01);
set_tris_d(0);
Aporte Grupal:
if(input(pin_a0)){ // Si la
entrada del pin a0 del Pic es 1
Logico realice alguna otra
instruccin.}
Input(pin)
if(!input(pin_a0)){ // Si la
entrada del pin a0 del Pic es 0
Logico realice alguna otra
instruccin. }
output_port(valor)
output_state(pin_x)
output_high(pin_b0)
//El pin b0 en alto
output_low(pin_b0) //El
pin b0 en bajo
output_d(0x40) //valor
de que se requiere que
se visualice en el
puerto d
output_d(variable) //
variable que se
requiere que se
visualice en el puerto
d
#use
fast_io(puerto)
#use
standard_io(puert
o)
F.I.S.E
.I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
E INDUSTRIAL
PERODO ACADMICO: MARZO-SEPTIEMBRE 2015
patilla de la manera en que un '1' indica que la patilla es de entrada y un '0' que es
de salida.
En la funcin delay_cycles(count) realiza retardos segn el nmero de ciclos de
instruccin especificado en count; los valores posibles van desde 1 a 255 y un
ciclo de instruccin es igual a cuatro periodos de reloj.
En la funcin delay_us(tiempo) o delay_ms(tiempo) realiza retardos del valor
especificado en tiempo y el valor es en microsegundos o milisegundos y el rango
va desde 0 a 65535 y es necesario utilizar la directiva #use delay antes de la
llamada a esta funcin para que el compilador sepa la frecuencia de reloj.
Bibliografa
[1]Canovs, A . (2011).Manual del usuario del compilador PCW DE CCS, [En
lnea].Disponible
en:https://www.google.com.ec/search?
newwindow=1&site=&source=hp&q=manual+ccs&oq=manual+ccs&gs_l=hp.3..0l10.3102.
9185.0.9347.11.10.0.0.0.0.416.812.31j1.2.0.msedr...0...1c.1.64.hp..10.1.415.0.M4TKdDjpZ0E
[2]
Custom
Computer
Services.CCS,
[En
https://www.ccsinfo.com/downloads/ccs_c_manual.pdf
lnea].
Disponible
en:
[3] Dorado V. Manual del usuario del compilador PCW DE CCS en espaol, [En lnea].
Disponible
en:
http://profepipe.bligoo.cl/media/users/8/424623/files/32382/CCS_C_Manual.pdf
Cuestionario
F.I.S.E
.I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
E INDUSTRIAL
PERODO ACADMICO: MARZO-SEPTIEMBRE 2015
Nivel de dificultad:
Fcil
Moderado
Difcil
2. Cules son las directivas son ms utilizadas de la funcin
OUTPUT?
a. Output_pmw y output_ccp
b. Output_rs232 y output_spi
c. Output_high y output_low
d. Output_medium y output_short
Respuesta c
Justificacin
Las principales directivas de la funcin OUTPUT bsicamente son
innumerables pero las mas utilizadas son dos Output_high (define un alfiler
dado al estado alto) y output_low (define un alfiler dado al estado
fundamental o bajo).
Fuente
Robozes, COMPILADOR C DE CCS, Principales funciones y directivas.
Nivel de dificultad:
Fcil
Moderado
Difcil
3. Qu funcin cumple la librera FAST_I/O al ser declarado como
directiva?
a. La directiva FAST_I/O afecta al cdigo que el compilador generar para
las instrucciones de entrada, es el mtodo rpido de hacer que I/O
ocasiona que el compilador realice I/O sin programar el registro de
direccin.
b. La directiva FAST_I/O afecta al cdigo que el compilador generar para
las instrucciones de salida, es el mtodo rpido de hacer que I/O
ocasiona que el compilador realice I/O sin programar el registro de
direccin.
c. La directiva FAST_I/O afecta al cdigo que el compilador generar para
las instrucciones de entrada y salida, es el mtodo rpido de hacer que
I/O ocasiona que el compilador realice I/O sin programar el registro de
direccin.
d. La directiva FAST_I/O afecta al cdigo que el compilador generar para
las instrucciones de entrada y salida, es el mtodo rpido de hacer que
F.I.S.E
.I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
E INDUSTRIAL
PERODO ACADMICO: MARZO-SEPTIEMBRE 2015
I/O ocasiona que el compilador realice I/O programando el registro de
direccin.
Respuesta: c
Justificacin
La funcin que cumple es de declarar entradas y salidas de manera rpida
sin programar el registro de direccin, generando las instrucciones de
entrada y salida.
Fuente:
Cnovas Lpez Andrs, C Compiler for Microchip PICmicro MCUs-Manual de
usuario del compilador PCW de CCs,-FAST_I/O
Nivel de dificultad:
Fcil
Moderado
Difcil
4. Qu permite hacer la funcin SET_TRIS_X (value)?
a. Estas funciones permiten escribir directamente los registros tri-estado
para la configuracin de los puertos y no debe ser usado con FAST_IO() y
no se accede a los puertos de I/O como si fuera memoria
b. Estas funciones permiten escribir directamente los registros tri-estado
para la configuracin de los puertos y no debe ser usado con FAST_IO() y
cuando se accede a los puertos de I/O como si fuera memoria
c. Estas funciones permiten escribir directamente los registros tri-estado
para la configuracin de los puertos y debe ser usado con FAST_IO() y no
se accede a los puertos de I/O como si fuera memoria
d. Estas funciones permiten escribir directamente los registros tri-estado
para la configuracin de los puertos y debe ser usado con FAST_IO() y
cuando se accede a los puertos de I/O como si fuera memoria
Respuesta: d
Justificacin:
Estas funciones permiten escribir directamente los registros tri-estado para
la configuracin de los puertos. Esto debe usarse con FAST_IO() y cuando
se accede a los puertos de I/O como si fueran memoria, igual que cuando se
utiliza una directiva #BYTE. Cada bit de value representa una patilla. Un '1'
indica que la patilla es de entrada y un '0' que es de salida.
Fuente:
Cnovas Lpez Andrs, C Compiler for Microchip PICmicro MCUs-Manual de
usuario del compilador PCW de CCs,-FAST_I/O
Nivel de dificultad:
F.I.S.E
.I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
E INDUSTRIAL
PERODO ACADMICO: MARZO-SEPTIEMBRE 2015
Fcil
Moderado
Difcil
5. Qu operacin hace la funcin output_x () ?
a. Usando el estndar de E / S predeterminada el construye las funciones
establecidas a la direccin en la direccin de E / S de forma automtica.
b. Esta funcin se utiliza para escribir datos en un puerto.
c. Se utiliza para leer los pines de entrada o para escribir el estado de los
pines de salida.
d. Esta directiva afecta al cdigo que el compilador generar para las
instrucciones de entrada y salida. Este mtodo rpido de hacer I/O
ocasiona que el compilador realice I/O sin programar el registro de
direccin.
Respuesta: b
Justificacin:
Esta funcin se utiliza para escribir datos en un puerto. Esta funcin establece
la direccin de todos los pines de puerto especificado como salida (TRIS los bits
0) antes de escribir la salida.
Fuente:
Cnovas Andrs, Manual CCS Espaol, Scribd.com, 2014, disponible en:
https://es.scribd.com/doc/19658135/Manual-CCS-Espanol.
Nivel de dificultad:
Fcil
Moderado
Difcil
a)
b)
c)
d)
Respuesta: b
F.I.S.E
.I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
E INDUSTRIAL
PERODO ACADMICO: MARZO-SEPTIEMBRE 2015
Justificacin:
Librera Fast_IO: Esta directiva afecta al cdigo que el compilador generar
para las instrucciones de entrada y salida. Este mtodo rpido de hacer I/O
ocasiona que el compilador realice
I/O sin programar el registro de direccin. El puerto puede ser A-G.
Sintaxis:
Fuente:
Librera fast_io. Disponible en: https://www.google.com.ec/url?
sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CCoQFjAC&url=http%3A
%2F%2Fwww.robozes.com%2Fpresentaciones%2FCCS.ppt&ei=D5JYVYD8OG9ygPrz4H4Bg&usg=AFQjCNGkGhzQbhyjLimJo1CNdfScmKHXg&sig2=kQoMBO1lkGuLPzSY1N0Ymg
Nivel de Dificultad:
Fcil
Moderado
Difcil
7. Qu permite hacer la directiva #USE DELAY?
a. Esta directiva indica al compilador la frecuencia del procesador, en ciclos
por segundo.
b. Esta funcin realiza retardos segn el nmero de ciclos de instruccin
especificado en count.
c. Esta funcin realiza retardos del valor especificado en time.
d. Permite que el compilador reinicie el WDT durante el retardo.
Respuesta: A
Justificacin:
Esta directiva indica al compilador la frecuencia del procesador, en ciclos por
segundo, a la vez que habilita el uso de las funciones DELAY_MS() y
DELAY_US().
Fuente:
Cnovas Lpez Andrs, C Compiler for Microchip PICmicro MCUs-Manual de
usuario del compilador PCW de CCs,- #USE DELAY
Nivel de dificultad:
F.I.S.E
.I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
E INDUSTRIAL
PERODO ACADMICO: MARZO-SEPTIEMBRE 2015
Fcil
Moderado
Difcil
a)
b)
c)
d)
Respuesta: C
Justificacin:
Entre el Project Wizard y el de 24 Bit los dos son asistentes pero la diferencia es
que el uno con determinadas familias como son la 10, 12, 16 y 18 y el otro
como su nombre lo indica de 24 Bit trabaja con las familias 24 y los DSPIC
Fuente:
CCS. (Custom Computer Service). Preguntas Frecuentes
Disponible en: https://www.ccsinfo.com/faq.php?page=project-wizard
Nivel de Dificultad:
Fcil
Moderado
Difcil
a)
b)
c)
d)
Respuesta: c)
F.I.S.E
.I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
E INDUSTRIAL
PERODO ACADMICO: MARZO-SEPTIEMBRE 2015
Justificacin:
Una interrupcin es un aviso provocado por un mdulo del PIC, por un cambio
en el estado de un pin o un recordatorio de que ha pasado un cierto tiempo.
Como su nombre indica este aviso interrumpir la tarea que se est haciendo
en ese momento y pasaremos a ejecutar una rutina de servicio o gestin de la
interrupcin
Fuente:
Interrupciones. Disponible en:
http://www.joseapicon.com.ve/descargas/pic/Manual%20PIC%2018F4550.pdf
Nivel de Dificultad:
Fcil
Moderado
Difcil