Sie sind auf Seite 1von 30

M

Universidad Politcnica de Chiapas

Ingeniera en Mecatrnica

M.C. Sirgei Garcia Ballinas

Practicas 1er Corte.

Victor Javier Cancino Gonzlez Darinel Cruz Vzquez Hugo Grajales Roman Giber Guzman Abad Luis Enrique Hernndez Gmez

24 de Abril del 2012

Contenido

Adiamco! Dui bla faccumsan velis auguero! Lore dolorpe! Tuat vulluptat alit er iniamcore exeriure! Practica 1! Secuencia de Leds (Parpadeo).! Cdigo! Simulacin.! Fsico! Prctica 2.! Secuencia de Leds (Inicio-Fin).! Cdigo.! Simulacin.! Fsico.! Practica 3! Secuencia de Leds (Extremos-Centro).! Cdigo.! Simulacin.! Fsico.! Practica 4! Secuencia de Leds (hola).! Cdigo.! Simulacin.! Fsico.! Practica 5! Secuencia de Leds (mecatronica).! Cdigo.! Simulacin.! Fsico.!
M e c a t r n i c a!

3 3 3 4 4 4 5 6 7 8 8 9 11 11 12 12 13 14 14 15 15 16 17 17 18 18 19 20 22
1 Corte

Practica 6! LCD (Voltmetro).! Cdigo.! Simulacin.! Practica 7! LCD (fotodiodo).! Cdigo.! Simulacin.! Real.!

23 23 24 25 26 26 27 28 28

M e c a t r n i c a!

1 Corte

Introduccin
A travs de programas realizados en lenguaje C en el Compilador CCS y simulaciones en Proteus se realizaron siete distintas practicas con el objetivo de aprender a utilizar las distintas instrucciones bsicas que se le pueden ordenar a un microcontrolador en este caso para todas las practicas se utiliz el PIC16F877A. Para la realizacin de estas prcticas primeramente fue de suma importancia aprender a realizar la conguracin de los puertos I/O. As como tambin, como podemos declarar nuestras variables y el tipo de PIC a utilizar. Otro factor que es indispensable para realizar las practicas fue conocer las libreras que se utilizarn ya que cambian con las ya conocidas en C.

M e c a t r n i c a!

1 Corte

Practica 1
Secuencia de Leds (Parpadeo).

Utilizamos el compilador CCS para la siguiente prctica. 1 Crear un nuevo proyecto:

Fig.1.1 Barra de Men

2 En la pestaa General seleccionamos: PIC16F877A 4,000,000 HZ Crystal osc (>4mhz forPCM/PCH)

3 En la pestaa I/O pins: seleccionamos los pines de salida/entrada que a utilizaremos (puerto B).

Fig.1.3 Pestaa I/O pins


M e c a t r n i c a! 1 Corte

Cdigo
4 Automaticamente se genera lo siguiente:
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! #include <led 12.h> void main() { setup_adc_ports(NO_ANALOGS); setup_adc(ADC_CLOCK_DIV_2); setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_ccp1(CCP_OFF); setup_comparator(NC_NC_NC_NC); }

5 Para dar un estado alto a un pin en espesico se escribe: ! ! output_high(PIN_(nombre del pin)); !
! ! ! ! ! ! ! output_high(PIN_B0); output_high(PIN_B1); output_high(PIN_B2); output_high(PIN_B3); output_high(PIN_B4); output_high(PIN_B5); output_high(PIN_B6); output_high(PIN_B7);

por lo tanto:! ! ! !
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

6 Para dar un estado bajo a un pin en espesico se escribe: !


! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! !

output_low(PIN_(nombre del pin));


! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! output_low(PIN_B0); output_low(PIN_B1); output_low(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_low(PIN_B6); output_low(PIN_B7);

por lo tanto:

7 Agregamos un ciclo for(;;) el cual repetir las instrucciones innitamente.!


! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! for(;;) { output_high(PIN_B0); output_high(PIN_B1);

M e c a t r n i c a!

1 Corte

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

output_high(PIN_B2); output_high(PIN_B3); output_high(PIN_B4); output_high(PIN_B5); output_high(PIN_B6); output_high(PIN_B7); delay_ms(500); output_low(PIN_B0); output_low(PIN_B1); output_low(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_low(PIN_B6); output_low(PIN_B7); delay_ms(500); }

!y

un delay da un retraso de 500 mili-segundos lo cual nos dar los dos estados de !!la practica (estado alto y estado bajo).

Simulacin.

Fig.1.4 Todo el puerto B en estado alto

Fig.1.5 Todo el puerto B en estado bajo


M e c a t r n i c a! 1 Corte

Fsico

Fig.1.6 Todo el puerto B en estado alto

Fig.1.7 Todo el puerto B en estado bajo

M e c a t r n i c a!

1 Corte

Prctica 2.
Secuencia de Leds (Inicio-Fin).

1. Crear un nuevo proyecto con el software compilador CCS.

Fig.2.1 Barra de Men

2.Hacer la seleccin de los recursos a emplear. PIC16F877A 4,000,000 HZ Crystal osc (>4mhz forPCM/PCH)

3. Seleccionar los pines de salida (Port B)


Fig.2.2 Pestaa Genral

Fig.2.3 Pestaa I/O pins


M e c a t r n i c a! 1 Corte

Cdigo. 4. Bajo el empleo de los recursos solicitados el programa genera un cdigo previo de inicializacin que queda de la siguiente forma: !
! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! !

#include <led 2.h> void main() {! setup_adc_ports(NO_ANALOGS); setup_adc(ADC_CLOCK_DIV_2); setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); etup_ccp1(CCP_OFF); setup_comparator(NC_NC_NC_NC); }

5. Para mantener la secuencia de los leds tenemos que para dar un estado alto a un pin en especico se escribe: ! ! output_high(PIN_(nombre del pin));

sta instruccin se har cada que queramos tener un solo PIN encendido, quedndonos el cdigo de la siguiente manera ingresndolo en un ciclo for(;;) que lo ejecutar innitamente hasta ser suspendida la alimentacin. !
!

!
! !! !! !! !! !! !! !! !! !!

!
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

for(;;)! {

//Inicializacin del For //Led en Estado Alto //Led en Estado Bajo

output_high(PIN_B0);! output_low(PIN_B1); ! output_low(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_low(PIN_B6); output_low(PIN_B7); delay_ms(100);! !

// delay de 100 mili-segundo //Led en Estado Bajo //Led en Estado Alto

! !

! ! !! !! !! !! !! !! !!

output_low(PIN_B0);!! output_high(PIN_B1);! output_low(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_low(PIN_B6); output_low(PIN_B7); delay_ms(100);! !

// delay de 100 mili-segundos //Led en Estado Bajo


1 Corte

output_low(PIN_B0);!!

M e c a t r n i c a!

! !

! ! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !! !!

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

output_low(PIN_B1); output_high(PIN_B2);! output_low(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_low(PIN_B6); output_low(PIN_B7); delay_ms(100);! output_low(PIN_B1); output_low(PIN_B2); output_high(PIN_B3);! output_low(PIN_B4); output_low(PIN_B5); output_low(PIN_B6); output_low(PIN_B7); delay_ms(100);! output_low(PIN_B1); output_low(PIN_B2); output_low(PIN_B3); output_high(PIN_B4);! output_low(PIN_B5); output_low(PIN_B6); output_low(PIN_B7); delay_ms(100);! output_low(PIN_B1); output_low(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_high(PIN_B5);! output_low(PIN_B6); output_low(PIN_B7); delay_ms(100);! output_low(PIN_B1); output_low(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_high(PIN_B6);! output_low(PIN_B7); delay_ms(100);! output_low(PIN_B1); output_low(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_low(PIN_B6);
1 Corte

//Led en Estado Alto

//delay de 100 mili-segundos //Led en Estado Bajo

output_low(PIN_B0);!!

//Led en Estado Alto

// delay de 100 mili-segundos //Led en Estado Bajo

output_low(PIN_B0);!!

//Led en Estado Alto

// delay de 100 mili-segundo

output_low(PIN_B0);!!

//Led en Estado Bajo

//Led en Estado Alto

// delay de 100 mili-segundos //Led en Estado Bajo

output_low(PIN_B0);!!

//Led en Estado Alto // delay de 100 mili-segundos //Led en Estado Bajo

output_low(PIN_B0);!!

! !! !! !! !!

M e c a t r n i c a!

!! !! ! !

! ! !

! ! !

output_high(PIN_B7);! delay_ms(100);! }! ! ! ! !

//Led en Estado Alto // delay de 100 mili-segundos //Finaliza For

Por cada secuencia de encendido y apagado de los leds, se usa un delay (retardo) de 100 mili-segundos con el cual podremos ver la secuencia de leds (inicio-n).

Simulacin.

Fig.2.4 PIN B5 en estado alto

Fig.2.5 PIN B3 en estado bajo

Fsico.

Fig.2.6 PIN B7 en estado alto

Fig.2.7 PIN B6 en estado alto

Fig.2.8 PIN B2 en estado alto


M e c a t r n i c a! 1 Corte

Practica 3
Secuencia de Leds (Extremos-Centro).

1Crear un nuevo proyecto con el software compilador CCS.

Fig.3.1 Barra de Men

2.Hacer la seleccin de los recursos a emplear. PIC16F877A 4,000,000 HZ Crystal osc (>4mhz forPCM/PCH)

3. Seleccionar los pines de salida (Port B)

Fig.3.2 Pestaa Genral

Fig.3.3 Pestaa I/O pins

M e c a t r n i c a!

1 Corte

Cdigo. 4. Bajo el empleo de los recursos solicitados el programa genera un cdigo previo de inicializacin que queda de la siguiente forma: !
! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! !

#include <led 32.h> void main() {! setup_adc_ports(NO_ANALOGS); setup_adc(ADC_CLOCK_DIV_2); setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); etup_ccp1(CCP_OFF); setup_comparator(NC_NC_NC_NC); }

5. Para mantener la secuencia de los leds tenemos que para dar un estado alto a un pin en especico se escribe: ! ! output_high(PIN_(nombre del pin));

sta instruccin se har cada que queramos tener un solo PIN encendido, quedndonos el cdigo de la siguiente manera ingresndolo en un ciclo for(;;) que lo ejecutar innitamente hasta ser suspendida la alimentacin.
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
M e c a t r n i c a!

!!

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

for(;;)! ! ! { output_high(PIN_B0);! output_low(PIN_B1);!! output_low(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_low(PIN_B6); output_high(PIN_B7); delay_ms(200);! ! output_low(PIN_B0); output_high(PIN_B1); output_high(PIN_B6); output_low(PIN_B7); delay_ms(200); output_low(PIN_B1); output_high(PIN_B2);! output_high(PIN_B5); output_low(PIN_B6);!! delay_ms(200); output_high(PIN_B3); output_low(PIN_B2); output_low(PIN_B5); output_high(PIN_B4); delay_ms(200); output_high(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_high(PIN_B5); delay_ms(200);

//For infinito //Led en Estado Alto //Led en Estado Bajo

//Retraso de 200 milisegundos

//Led en Estado Alto //Led en Estado Bajo

1 Corte

! ! ! ! ! ! ! ! ! ! ! !

! ! ! ! ! ! ! ! ! ! !

! ! ! ! ! ! ! ! ! ! !

! ! ! ! ! ! ! ! ! ! !

output_high(PIN_B1);! output_low(PIN_B2); output_high(PIN_B6); output_low(PIN_B5); delay_ms(200); output_high(PIN_B0); output_low(PIN_B1);!! output_high(PIN_B7); output_low(PIN_B6); delay_ms(200); }! ! ! !

//Led en Estado Alto

//Led en Estado Bajo

//Se cierra el For

Simulacin.

Fig.3.4 PIN B0 y B7 en estado alto

Fig.3.5 PIN B1 y B6 en estado bajo

Fig.3.6 PIN B2 y B5 en estado alto

Fig.3.7 PIN B3 yB4 en estado alto

Fsico.

Fig.3.8 PIN B0 y B7 en estado alto


M e c a t r n i c a!

Fig.3.9 PIN B2 yB5 en estado alto


1 Corte

Practica 4
Secuencia de Leds (hola).

1Crear un nuevo proyecto con el software compilador CCS.

Fig.4.1 Barra de Men

2.Hacer la seleccin de los recursos a emplear. PIC16F877A 4,000,000 HZ Crystal osc (>4mhz forPCM/PCH)

Fig.4.2 Pestaa Genral

3. Seleccionar los pines de salida (Port B)

Fig.4.3 Pestaa I/O pins

M e c a t r n i c a!

1 Corte

Cdigo. 4. Bajo el empleo de los recursos solicitados el programa genera un cdigo previo de inicializacin que queda de la siguiente forma: !
! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! !

#include <hola.h> void main() {! setup_adc_ports(NO_ANALOGS); setup_adc(ADC_CLOCK_DIV_2); setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); etup_ccp1(CCP_OFF); setup_comparator(NC_NC_NC_NC); }

5. Para mantener la secuencia de los leds tenemos que para dar un estado alto a un pin en especico se escribe: ! ! output_high(PIN_(nombre del pin));

sta instruccin se har cada que queramos tener un solo PIN encendido, quedndonos el cdigo de la siguiente manera ingresndolo en un ciclo for(;;) que lo ejecutar innitamente hasta ser suspendida la alimentacin. !
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

for(;;)! ! ! { output_high(PIN_B0);! output_high(PIN_B1);! output_low(PIN_B2); output_high(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_low(PIN_B6); delay_ms(1000);! output_high(PIN_B0); output_high(PIN_B1); output_low(PIN_B2); output_high(PIN_B3); output_high(PIN_B4); output_high(PIN_B5); output_high(PIN_B6); delay_ms(1000); output_high(PIN_B0); output_high(PIN_B1);! output_low(PIN_B2); output_high(PIN_B3); output_high(PIN_B4); output_low(PIN_B5);!! output_low(PIN_B6); delay_ms(1000); output_high(PIN_B0); output_high(PIN_B1); output_low(PIN_B2); output_low(PIN_B3); output_low(PIN_B4);

//For infinito //Led en Estado Alto //Led en Estado Bajo

//Retraso de 1000 milisegundos

//Led en Estado Alto

//Led en Estado Bajo

M e c a t r n i c a!

1 Corte

! ! ! ! !

! ! ! !

! ! ! !

! ! ! !

output_low(PIN_B5); output_high(PIN_B6); delay_ms(1000); }! ! ! !

//Se cierra el For

Simulacin.

Fig.4.4 1101000 (binario)=h (ASCII)

Fig.4.5 1101111 (binario)=o (ASCII)

Fig.4.6 1101100 (binario)=l (ASCII)

Fig. 4.7 1100001 (binario)=a (ASCII)

Fsico.

Fig.4.8 1101100 (binario)=h (ASCII)

Fig.4.9 1101111 (binario)=o (ASCII)

Fig.4.10 1101100 (binario)=h (ASCII)


M e c a t r n i c a!

Fig.4.11 1100001 (binario)=a (ASCII)


1 Corte

Practica 5
Secuencia de Leds (mecatronica).

1Crear un nuevo proyecto con el software compilador CCS.

Fig.5.1 Barra de Men

2.Hacer la seleccin de los recursos a emplear. PIC16F877A 4,000,000 HZ Crystal osc (>4mhz forPCM/PCH)

3. Seleccionar los pines de salida (Port B)

Fig.5.2 Pestaa Genral

Fig.5.3 Pestaa I/O pins


M e c a t r n i c a! 1 Corte

Cdigo. 4. Bajo el empleo de los recursos solicitados el programa genera un cdigo previo de inicializacin que queda de la siguiente forma: !
! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! !

#include <mecatronica.h> void main() {! setup_adc_ports(NO_ANALOGS); setup_adc(ADC_CLOCK_DIV_2); setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); etup_ccp1(CCP_OFF); setup_comparator(NC_NC_NC_NC); }

5. Para mantener la secuencia de los leds tenemos que para dar un estado alto a un pin en especico se escribe: ! ! output_high(PIN_(nombre del pin));

sta instruccin se har cada que queramos tener un solo PIN encendido, quedndonos el cdigo de la siguiente manera ingresndolo en un ciclo for(;;) que lo ejecutar innitamente hasta ser suspendida la alimentacin.
!! ! ! !
for(;;)! ! ! { output_high(PIN_B0);! output_high(PIN_B1); output_low(PIN_B2);!! output_high(PIN_B3); output_high(PIN_B4); output_low(PIN_B5); output_high(PIN_B6); delay_ms(1000);! output_low(PIN_B2); output_low(PIN_B3); output_high(PIN_B4); output_low(PIN_B5); output_high(PIN_B6); delay_ms(1000); output_low(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_high(PIN_B5); output_high(PIN_B6); ! delay_ms(1000); output_low(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_high(PIN_B6); delay_ms(1000); output_high(PIN_B2);! output_low(PIN_B3); //For infinito //Led en Estado Alto //Led en Estado Bajo

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
M e c a t r n i c a!

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

//Retraso de 1000 milisegundos

//Led en Estado Alto

//Led en Estado Alto


1 Corte

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

output_high(PIN_B4); output_low(PIN_B5); output_low(PIN_B6); delay_ms(1000); output_high(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_high(PIN_B5); output_low(PIN_B6); delay_ms(1000); output_low(PIN_B2); output_high(PIN_B3); output_high(PIN_B4); output_high(PIN_B5); output_high(PIN_B6); delay_ms(1000); output_low(PIN_B2);!! output_high(PIN_B3); output_high(PIN_B4);! output_high(PIN_B5); output_low(PIN_B6); delay_ms(1000); output_low(PIN_B2); output_high(PIN_B3); output_low(PIN_B4); output_low(PIN_B5); output_high(PIN_B6); ! delay_ms(1000); output_low(PIN_B2); output_low(PIN_B3); output_low(PIN_B4); output_high(PIN_B5); output_high(PIN_B6); delay_ms(1000); output_low(PIN_B2); output_low(PIN_B3); output_low(PIN_B4);!! output_low(PIN_B5); output_high(PIN_B6); delay_ms(1000); }! ! ! !

//Led en Estado Bajo //Led en Estado Alto

//Led en Estado Alto

//Led en Estado Bajo

//Finaliza For

Simulacin.

Fig.5.4 1101101 (binario)=m (ASCII)

Fig.5.5 1100101 (binario)=e (ASCII)

M e c a t r n i c a!

1 Corte

Fig.5.6 1100011 (binario)=c (ASCII)

Fig. 5.7 1100001 (binario)=a (ASCII)

Fig. 5.8 1110100 (binario)=t (ASCII)

Fig. 5.9 1110010 (binario)=r (ASCII)

Fig. 5.10 1101111 (binario)=o (ASCII)

Fig.5.11 1101110 (binario)=n (ASCII)

Fig.5.12 1101001 (binario)=i (ASCII)


M e c a t r n i c a! 1 Corte

Fsico.

Fig.5.13 1101101 (binario)=m (ASCII)

Fig.5.14 1100101 (binario)=e (ASCII)

Fig.5.15 1100011 (binario)=c (ASCII)

Fig.5.16 1100001 (binario)=a (ASCII)

Fig.5.17 1110100 (binario)=t (ASCII)

Fig.5.18 1110010 (binario)=r (ASCII)

Fig.5.19 1101111 (binario)=o (ASCII)

Fig.5.20 1101110 (binario)=n (ASCII)

Fig.5.21 1101001 (binario)=i (ASCII)

M e c a t r n i c a!

1 Corte

Practica 6
LCD (Voltmetro).

1Crear un nuevo proyecto con el software compilador CCS.

Fig.6.1 Barra de Men

2.Hacer la seleccin de los recursos a emplear. PIC16F877A 4,000,000 HZ Crystal osc (>4mhz forPCM/PCH)

Fig.6.2 Pestaa Genral

3. Seleccionar los pines Analgicos (Port A)

Fig.6.3 Pestaa Analog

M e c a t r n i c a!

1 Corte

4.Seleccionar los Archivos de Cabecera

Fig.6.4 Pestaa Header Files

5.Vericar los pines analgicos ya seleccionados

Fig.6.5 Pestaa Header Files

Cdigo. 6.Bajo el empleo de los recursos solicitados el programa genera un cdigo previo de inicializacin que queda de la siguiente forma: !
! ! ! ! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! ! ! !

#include <voltaje.h> #include <LCD.C>! ! #include <string.h>!! void main() { setup_adc_ports(AN0);! setup_psp(PSP_DISABLED);

! !

! !

//Librera del LCD //Librera String

//Pines analogcos

setup_adc(ADC_CLOCK_DIV_2); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_comparator(NC_NC_NC_NC); lcd_init();! ! }


1 Corte

//Inicializacin del LCD

M e c a t r n i c a!

7. Para poder sensar el voltaje tendremos que hacer una conversin analgico-digital que sera el valor mximo analgico entre bytes de resolucin:
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! float voltaje;!! ! ! ! //Declarar variable voltaje setup_adc(adc_clock_internal);! ! //Activar reloj interno set_adc_channel(0);! ! ! ! //Definir Pin Analgico delay_us(10);! ! ! ! ! //Retreso de 10 microsegundos for(;;)!! ! ! ! ! //For Infinito { voltaje= (.019607)*read_adc();! ! //La variable voltaje tomara el valor del ! ! ! ! ! ! ! producto de factor de conversin analgi! ! ! ! ! ! ! co-digital(5/255) por la lectura del pin ! ! ! ! ! ! ! definido anteriormente lcd_gotoxy(1,1);! ! ! ! //Coordenadas donde iniciara el texto en ! ! ! ! ! ! ! el LCD printf(LCD_PUTC,"VOLTAJE= %.2f", voltaje);//El LCD imprimir VOLTAJE y el valor de ! ! ! ! ! ! ! la variable voltaje delay_ms(1000);! ! ! ! //Retraso de 1000 milisegundos }! ! ! ! ! ! //Finaliza For

Simulacin.

Fig.6.6 Lectura Media

Fig.6.7 Lectura Mxima

Real.

Fig.6.8 Lectura Media

Fig.6.9 Lectura Mxima


M e c a t r n i c a! 1 Corte

Practica 7
LCD (fotodiodo).

1Crear un nuevo proyecto con el software compilador CCS.

Fig.7.1 Barra de Men

2.Hacer la seleccin de los recursos a emplear. PIC16F877A 4,000,000 HZ Crystal osc (>4mhz forPCM/PCH)

Fig.7.2 Pestaa Genral

3. Seleccionar los Archivos de Cabecera

Fig.7.3 Pestaa Header Files


M e c a t r n i c a! 1 Corte

4. Seleccionar el pin de entrada (Port A).

Fig.7.4 Pestaa I/O Pins

Cdigo. 5.Bajo el empleo de los recursos solicitados el programa genera un cdigo previo de inicializacin que queda de la siguiente forma: !
! ! ! ! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! ! ! !

#include <fotodiod.h> #include <LCD.C>! ! #include <string.h>!! void main() {

! !

! !

//Librera del LCD //Librera String

setup_adc_ports(NO_ANALOGS); setup_adc(ADC_CLOCK_DIV_2); setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_comparator(NC_NC_NC_NC); lcd_init();! ! } ! ! ! //Inicializacin del LCD

6. Para poder sensar el voltaje tendremos que hacer una conversin analgico-digital que ser el valor mximo analgico entre bytes de resolucin: !
! ! ! ! ! ! ! ! ! ! ! ! ! !

!
! ! ! ! ! ! ! ! ! ! ! ! ! !

while(true)! ! {

//Inicializacin un while infinito //Condicin //Si el PIN A0 esta en estado alto ! se imprime BIENBENIDO:)

if (input(PIN_A0))! ! ! ! ! ! ! ! ! ! {! ! ! ! ! ! printf(LCD_PUTC," BIENVENIDO :)"); } else ! ! ! {! ! ! printf(LCD_PUTC," } delay_ms(100);! } ! ! ! ! ! ! ! ADELANTE-->"); ! !

//Si el PIN A2 no esta en estado ! alto se imprime ADELANTE--> //Retraso de 100 milisegundos

M e c a t r n i c a!

1 Corte

Simulacin.

Fig.7.5 PIN A0 en estado bajo

Fig.7.6 PIN A0 en estado alto

Real.

Fig.7.7 PINA0 en estado alto

Fig.7.6 PIN A0 en estado bajo

M e c a t r n i c a!

1 Corte

Conclusin
El principal y mayor problema que nos topamos al realizar las practicas fue que el compilador nos comenz a presentar algunas fallas. Como por ejemplo nos marcaba errores inexistentes o nos dejaba compilar pero no nos generaba ningn cambio.

M e c a t r n i c a!

1 Corte

Das könnte Ihnen auch gefallen