You are on page 1of 13

UNIVERSIDAD

TCNICA DE AMBATO

FACULTAD DE INGeNIERA EN SISTEMAS, ELECTRNICA E


INDUSTRIAL
CARRERA: Electrnica y Comunicaciones
Mdulo: Microcontroladores
NIVEL: Sptimo Electrnica B
TEMA: Consulta-Funciones de control DIO
Fecha de envi:
11/05/2015
Fecha de entrega:
18/05/2015

Periodo acadmico: Abril 2015 Septiembre 2015

Ttulo
Funciones para control DIO

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

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

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

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);

// comprobamos si es '1' el MSB


// si es '1' ponemos a cero el pin A0
// de lo contrario, ponemos el pin A0 a uno.[1]

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.

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

F.I.S.E
.I
FACULTAD DE INGENIERA EN SISTEMAS, ELECTRNICA
E INDUSTRIAL
PERODO ACADMICO: MARZO-SEPTIEMBRE 2015

Ejemplo:
SET_TRIS_B( 0x0F );

// pone B0, B1, B2 y B3 como entradas; B4, B5, B6 y B7


// como salidas, en un PIC [3]

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 );

// retardo de 3ciclos instruccin; es igual que un NOP

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 );
}

// reloj de 4MHz delay_ms( 2 ); // retardo de 2ms


// retardo de 'n' segundos
// 1 segundo [1]

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)

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

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]

#USE FAST_IO (puerto)


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-E.
Ejemplo:
#use fast_io(A) [1]
#USE FIXED_IO (puerto_OUTPUTS=pin_x#, pin_x#...)
Esta directiva afecta al cdigo que el compilador generar para las instrucciones de
entrada y salida. El mtodo fijo de hacer I/O causar que el compilador genere cdigo
para hacer que un pin de I/O sea entrada o salida cada vez que se utiliza. Esto ahorra el
byte de RAM usado en I/O normal.
Ejemplo:
#use fixed_io(a_outputs=PIN_A2 ,PIN_A3) [1]
#USE STANDARD_IO (puerto)
Esta directiva afecta al cdigo que el compilador genera para las instrucciones de entrada
y salida. El mtodo standar de hacer I/O causar que el compilador genere cdigo para
hacer que un pin de I/O sea entrada o salida cada vez que se utiliza. En los procesadores
de la serie 5X esto necesita un byte de RAM para cada puerto establecido como I/O
estndar.
Ejemplo:
#use standard_io(A) [1]
SET_TRIS
Esta funcin permiten escribir directamente los registros tri-estado para la configuracin
de los puertos. Los registros tri-estados significa que se encuentran las salidas en 3
estados: alto (1), bajo (0) y alta impedancia.

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

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

Cuadro 1: Funciones de DIO ms utilizadas

Diferencia entre el #use fast_io(puerto) y #use standard_io(puerto)

#use
fast_io(puerto)

El mtodo rpido de hacer I/O, ocasiona que


el compilador realice I/O sin programar el
registro de direccin.

#use
standard_io(puert
o)

El mtodo standar de hacer I/O causar que


el compilador genere cdigo para hacer que
un pin de I/O sea entrada o salida cada vez
que se utiliza.

Los set_tris_A(valor) 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; cada bit de valor representa un pin o

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

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

1. De cuntos bits permite cargar al registro tris de un


puerto del PIC con el comando SET TRIS X ()?
a) 1 bit
b) 64 bits
c) 8 bits
d) 128 bits
Respuesta: c
Justificacin:
El comando SET TRIS X () permite cargar un valor al registro tris de
un puerto del PIC. El valor es un nmero de 8 bits que permite
configurar a cada pin de un puerto, esta configuracin se refiere a
declararlo como entradas o salidas digitales.
Fuente:
Manual de usuario del compilador PCW de CCS, fast_io(), set trisx()
disponible en:
[http://www.cursos.ucv.cl/eie48700/referencias/CCS_C_Manual.pdf]

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

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

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

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:

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

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)

6. Librera Fast_IO, 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. Seleccione su correcta
sintaxis:
#use fast_io(A)
#use fast_io (puerto)
# fast_io (puerto)
fast_io_b( 0x0F );

Respuesta: b

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

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:

#use fast_io (puerto)

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:

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

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)

8. Cul es la Diferencia entre Project Wizard y 24 Bit Wizard?


No existe diferencia son idnticos
El Project Wizard No genera .HEX y el de 24 bit si
El Project Wizard trabaja con la familia 10, 12, 16 y 18 y el de 24 bit con las
familias 24
El Project Wizard trabaja con la familia 24 y el 24 Bit con las familias 10, 12,
14 y 18

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)

9. Complete la siguiente oracin: Una __________ es un aviso


provocado por un ________ del PIC, por un cambio en el __________
de un pin o un recordatorio de que ha pasado un cierto tiempo.
Como su nombre indica este aviso __________ la tarea que se est
haciendo en ese momento y pasaremos a ejecutar una rutina de
servicio.
Puerto, pin, estado, interrumpir
Fusible, mdulo, comportamiento, interrumpir
Interrupcin, mdulo, estado, interrumpir
Interrupcin, pin, procedimiento, interrumpir

Respuesta: c)

FACULTAD DE INGENIERIA EN SISTEMAS, ELECTRONICA E INDUSTRIAL

UNIVERSIDAD TCNICA DE AMBATO

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

You might also like