Anda di halaman 1dari 15

UNIVERSIDAD POLITÉCNICA

SALESIANA

INGENIERÍA ELECTRÓNICA
SISTEMAS MICROPROCESADOS

TEMA: UTILIZACION DE DECLARACIONES CON ELMICROCONTROLADOR PIC

INFORME Nº 2

INTEGRANTES: ERIKA ABRIL

VINICIO DAVILA

REMIN ZAMBRANO

1
OBJETIVO:

• Utilizar las declaraciones if, select, case, do, for, while, con el microcontrolador
pic.

EJERCICIO 1:

Si se presiona el botón el foco se enciende por 3 segundos, luego se apaga 1 segundo


y se vuelve a encender el foco por 3 segundos. Caso contrario el foco permanece
prendido.

CÓDIGO DEL PROGRAMA:

program ejercicio1

trisc=$ff

trisb=$0

main:

if portc.0=1 then

portb.0=1

delay_ms(3000)

portb.0=0

delay_ms(1000)

port.0=1

delay_ms(3000)

portb.0=0

else

portb.0=1

end if

2
goto main

end.

ALGORITMO:

Entradas:

Datos que ingresan al microcontrolador pic.

Salidas:

Datos que se mostrarán al encender y apagar el foco.

Procesos:

1. Definir el puerto b como entrada de datos (trisb=$0).

2. Almacenar en el puerto c el dato de activación (encendido) del foco en el


circuito (trisc=$ff).

3. Comparar los datos que ingresan por el puerto c y se escriben en el puerto b,


provocando la activación o no del circuito que encenderá el foco.

4. Escoger según los tiempos la operación del circuito.

5. Controlar el lazo de funcionamiento del programa.

6. Mostrar el trabajo de los datos que ingresaran al microcontrolador pic en el


foco.

3
DIAGRAMA DE FLUJO:

Configuración de
los registros

NO

SI

4
EJERCICIO 2:

Utilizando la sentencia for-next, elaborar un contador ascendente de 0 a 9, que sea


repetitivo.

CODIGO DEL PROGRAMA:

program ejercicio2

dim i,a as byte

main:

trisb=0

i=1

a=0

for i=1 to 10

portb=a

a=a+1

delay_ms(500)

next i

if a=10 then

a=0

else

end if

delay_ms(500)

goto main

end.

5
ALGORITMO:

Entradas:

Datos que serán almacenados en el microcontrolador.

Salidas:

Datos que serán mostrados de manera repetitiva en el display (números del 0


al 9).

Procesos:

1. Definir 2 variables donde se guardaran los datos que ingresan.

2. Almacenar en la primera variable el valor de 1 y en la otra el valor de 0 (i=1,


a=0).

3. Utilizar la declaración for para realizar el lazo de 1 a 10 en la primera variable


(for i=1 to 10)

4. Sumar a la segunda variable el valor de 1 para que vaya incrementando.

5. Realizar una comparación si la segunda variable llega a ser igual a 10, se debe
guardar el valor de cero en dicha variable y regresar al inicio del lazo..

6. Escribir en el puerto b.

7. Retardo 500 ms.

8. Mostrar los resultados en el display.

6
DIAGRAMA DE FLUJO:

no si

7
EJERCICIO 3:

Mediante la sentencia for-next, elaborar un contador descendente entre 9 y 0.

program ejercicio2

dim i,a as byte

main:

trisb=0

i=1

a=0

for i=10 to 1

portb=a

a=a-1

delay_ms(500)

next i

if a=10 then

a=0

else

end if

delay_ms(500)

goto main

end.

ALGORITMO:

Entradas:

Datos que serán almacenados en el microcontrolador.

8
Salidas:

Datos que serán mostrados de manera repetitiva en el display (números del 9


al 0).

Procesos:

1. Definir 2 variables donde se guardaran los datos que ingresan.

2. Almacenar en la primera variable el valor de 1 y en la otra el valor de 0 (i=1,


a=0).

3. Utilizar la declaración for para realizar el lazo de 10 a 1 en la primera variable


(for i=10 to 1).

4. Restar a la segunda variable el valor de 1 para que vaya decreciendo.

5. Realizar una comparación si la segunda variable llega a ser igual a 0, debe


regresar al inicio del lazo.

6. Escribir en el puerto b.

7. Retardo 500 ms.

8. Mostrar los resultados en el display.

9
DIAGRAMA DE FLUJO:

no si

EJERCICIO 4:

Utilizar la secuencia While-wend, para elaborar un contador ascendente de dos


digitos.

CODIGO DEL PROGRAMA:

10
program ejercicio4

Dim A, B as byte

Dim I as word

A=0

B=0

I=0

Main:

Trisb=0

Trisc=0

While true

portC=1

portB=A

delay_us(1)

portc=1

portb=B

delay_us(1)

inc(I)

If

I=2000 then

Inc(B)

If

B=10 then

B=0

11
Inc(A)

Else

If

A=10 then

A=0

End if

End if

I=0 else end if

Wend

End.

ALGORITMO:

Entradas:

Datos que serán almacenados en el microcontrolador.

Salidas:

Datos que serán mostrados en los display (números del 00 al 99).

Procesos:

1. Definir 2 variables como byte y una como palabra donde se guardaran los
datos que ingresan.

2. Las tres variables guardaran el valor de 0.

3. Activar los puertos b y c (trisb=0, trisc=0).

4. Utilizar la declaración while para realizar el lazo de operación.

5. Retardo 1us, este retardo debe ser controlado hasta una visualización correcta.

12
6. Mostrar los resultados en los display.

DIAGRAMA DE FLUJO:

no si
Fin Inc(B)

no
Inc() B=1
0
no si
Fin A=1 A=0
0 si B=0

13
ANEXOS:

Fig1: contador ascendente de un digito

14
Fig2: conectando el circuito para el contador descendente

Fig3: contador de dos dígitos

15

Anda mungkin juga menyukai