You are on page 1of 13

SISTEMAS

ELECTRNICOS
DIGITALES

SEGUNDA PRCTICA
CUENTARREVOL UCI ONES DI GI TAL

















Cur so 2006-2007
Pr of esor : J ai me Gmez Gi l
E.T.S. I ng. Tel ec omuni c ac i n
Uni ver si dad de Val l adol i d


PRCTICA 2: CUENTARREVOLUCIONES DIGITAL 2/13
I nt r oduc c i n
La asignatura SISTEMAS ELECTRNICOS DIGITALES estudia el diseo y la programacin de los sistemas
electrnicos digitales por excelencia, que son los microprocesadores. En cuanto a la parte de programacin, en
esta asignatura se opta por el trabajo con el microcontrolador PIC16F84A. En esta prctica se realizan una serie
de pruebas para comprobar de forma real todos los conocimientos adquiridos en la clase de teora, sobre el
microcontrolador PIC16F84A.
Obj et i vo
El objetivo de esta segunda prctica es afianzar los conocimientos adquiridos en clase de teora sobre el
microcontrolador Microchip PIC16F84A, realizando varias versiones de un cuentarrevoluciones digital.
Enunc i ado
Disponemos de un eje al que pretendemos medir la velocidad, que gira con velocidades comprendidas entre 0 y
200 vueltas por segundo.
Figura 1: Detector de corte H21A1, conexin recomendada para este detector de corte, geometra de la rueda dentada y disposicin del
detector de corte y rueda dentada en nuestra implementacin
A dicho eje le acoplamos una rueda con cuatro dientes, que los haremos pasar a travs de un detector de corte.
Pretendemos que un microcontrolador est continuamente midiendo la velocidad a la que gira ese eje, y que
presente la informacin medida de tres formas diferentes:
Versin VISUAL
El microcontrolador ofrece informacin de la velocidad de giro mediante una barra de leds. Si todos los
leds estn apagados, es que el eje est parado. Cuando el eje gira con velocidades pequeas se
encendern unos pocos leds, y cuando el eje gira con velocidades elevadas, se encendern muchos leds.
Versin PRECISA
El microcontrolador ofrece informacin numrica de la velocidad de giro mediante displays de 7
segmentos.
Versin CLSICA
El microcontrolador ofrece informacin similar a la de un cuentarrevoluciones de aguja analgico de un
coche.
Un posible algoritmo medira el nmero de pulsos detectados durante 1 segundo y, posteriormente, dividiendo
ese nmero entre 4, se obtendran las revoluciones por segundo. Pero esto planteara el siguiente problema; el
nmero de pulsos detectados en un segundo sera un nmero entre 0 y 800 (2004) y ese nmero no se puede
almacenar en un nico registro de 8 bits como los que posee el PIC16F84A. Por ello, se muestrearn los pulsos
entrantes durante la cuarta parte de un segundo y, como el nmero de dientes de la rueda es 4, ese nmero sern
las revoluciones por segundo.
Tanto para facilitar como para hacer ms ameno y gratificante el trabajo al alumno, esta prctica se divide en
pequeas y sencillas pruebas, hasta llegar a los diseos definitivos del cuentarrevoluciones digital.
PRCTICA 2: CUENTARREVOLUCIONES DIGITAL 3/13
Un consejo para la realizacin de estas prcticas: cuando el alumno encuentre serias dificultades para realizar
una prueba, se recomienda pasar a realizar la prueba siguiente, y volver a intentar la problemtica pasado un
tiempo partiendo de cero.
PRI MERA PRUEBA
En el circuito real, el detector de corte est conexionado tal y como se muestra en la Figura 2. Identificar el punto
E y mediante un voltmetro medir la tensin en ese punto cuando un diente corta el haz de luz infrarroja y
cuando el diente no la corta.

Figura 2
Anotar y justificar los valores medidos.
SEGUNDA PRUEBA
Dado el circuito de la Figura 3, realizar el organigrama y un programa en ensamblador MPASM que copie el
contenido de la entrada RA4 en RB0.
PIC16F84A
500
RB0
270 10K
5 5
eje giratorio
rueda dentada
(vista de perfil)
seccin de la
rueda dentada
detector de corte
H21A1
RA4
4Mhz
33pF
33pF
OSC1
OSC2
Vss
5
Vdd
100
10K
reset
MCLR


Figura 3
Girando despacio el eje, comprobar que el diodo conectado a RB0 se enciende y se apaga segn la rueda dentada
corta el haz infrarrojo en el detector de corte.















PRCTICA 2: CUENTARREVOLUCIONES DIGITAL 4/13
TERCERA PRUEBA
Disponemos del circuito mostrado en la Figura 4.
PIC16F84A
500 500 500 500 500 500 500 500
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7
270 10K
5 5
eje giratorio
rueda dentada
(vista de perfil)
seccin de la
rueda dentada
detector de corte
H21A1
RA4
4Mhz
33pF
33pF
OSC1
OSC2
5
Vdd
Vss
100
10K
reset
MCLR
100
10K
reset
MCLR


Figura 4.
Realizar el organigrama y un programa en ensamblador MPASM para que los diodos led se iluminen segn la
siguiente secuencia, a cada paso de un diente de la rueda.
00000000
00000001
00000011
00000111
00001111
00011111
00111111
01111111
11111111
11111110
11111100
11111000
11110000
11100000
11000000
10000000
00000000
10000000
11000000
11100000
11110000
11111000
11111100
11111110
11111111
01111111
00111111
00011111
00001111
00000111
00000011
00000001
vuel t a al pr i mer est ado
Es decir, inicialmente los ocho leds estn apagados hasta que el primer diente atraviesa el detector de corte,
momento en el que se enciende el led menos significativo. Cuando un segundo diente atraviesa el haz, se
debern encender los led conectados a RB0 y RB1 y as sucesivamente.
Esta prueba se realizar sin utilizar las funciones de rotacin del PIC (rlf y rrf), y se deber copiar 32 veces
un conjunto de varias lneas en las que lo nico que cambia es el valor de salida por la puerta B.
CUARTA PRUEBA
Resolver el mismo problema que en la prueba anterior, pero ahora utilizando una tabla de 32 columnas, es decir,
un conjunto de 32 instrucciones en una subrutina del tipo retlw 00001111, precedidas por una
instruccin del tipo addwf PCL,1. Evidentemente, a la subrutina se la llamar con una instruccin call
subrutina Anotar en la memoria tanto el organigrama como el programa realizado.
PRCTICA 2: CUENTARREVOLUCIONES DIGITAL 5/13
QUI NTA PRUEBA
En la prueba anterior es necesario girar el mando muy despacio para poder percibir el movimiento de las luces en
los leds. Modificar ligeramente el organigrama y programa anterior para que los cambios de estado se realicen
con el paso de 5 dientes en vez de con uno.
SEXTA PRUEBA
Se dispone del circuito mostrado en la Figura 5.
PIC16F84A
500 500 500 500 500 500 500 500
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7
270 10K
5 5
eje giratorio
rueda dentada
(vista de perfil)
seccin de la
rueda dentada
detector de corte
H21A1
RA4
4Mhz
33pF
33pF
OSC1
OSC2
5
Vdd
Vss
100
10K
reset
MCLR
100
10K
reset
MCLR


Figura 5
Realizar el organigrama y un programa en ensamblador MPASM que inicialmente configure como entrada al
TIMER los impulsos recibidos por la patita RA4 sin ningn tipo de preescalado, y que posteriormente se
mantenga en un bucle infinito copiando el contenido de TMR0 en PORB. Qu se observa? Por qu?
SPTI MA PRUEBA
En la prueba anterior es necesario girar el mando muy despacio para poder percibir el movimiento de las luces en
los leds. Modificar el organigrama y programa anterior, asignando a TMR0 el prescaler con una divisin de
frecuencia de 16:1. Qu se observa? Por qu?
OCTAVA PRUEBA
Se dispone del circuito mostrado en la Figura 6.
PIC16F84A
500
RB0
4Mhz
33pF
33pF
OSC1
OSC2
Vss
5
Vdd
100
10K
reset
MCLR

Figura 6
Realizar el organigrama y un programa en ensamblador MPASM que haga encenderse y apagarse el led cada
025 segundos (se permite un error del 1%). La temporizacin se har mediante la llamada a una subrutina que
contendr bucles anidados, es decir, no se realizar con ayuda del TIMER.







PRCTICA 2: CUENTARREVOLUCIONES DIGITAL 6/13
NOVENA PRUEBA
Se dispone del circuito mostrado en la Figura 7.
PIC16F84A
500 500 500 500 500 500 500 500
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7
4Mhz
33pF
33pF
OSC1
OSC2
5
Vdd
Vss
100
10K
reset
MCLR
100
10K
reset
MCLR

Figura 7
Realizar el organigrama y un programa en ensamblador MPASM que realice un encendido de estos leds con la
animacin del coche fantstico y el retardo en el encendido de luces del programa anterior (025segundos).
Comprobar que la luz tarda en desplazarse de un extremo a otro dos segundos (para ello, los extremos deben
encenderse dos veces, es decir, se deben completar cada ciclo en ocho fases de 025 segundos). Se repetir el
ciclo 20 veces y se comprobar con un cronmetro si el tiempo que ha tardado es de 20 segundos, o si ha habido
algn desfase.
DCI MA PRUEBA
Realizar la prueba anterior, pero ahora ayudndonos en la temporizacin por el registro TIMER.
UNDCI MA PRUEBA
Se dispone del circuito mostrado en la Figura 8.
PIC16F84A
500 500 500 500 500 500 500 500
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7
270 10K
5 5
eje giratorio
rueda dentada
(vista de perfil)
seccin de la
rueda dentada
detector de corte
H21A1
RA4
4Mhz
33pF
33pF
OSC1
OSC2
5
Vdd
Vss
100
10K
reset
MCLR
100
10K
reset
MCLR


Figura 8
Realizar el organigrama y un programa en ensamblador MPASM que haga lo siguiente:
1. Configurar a la entrada de TMR0 los impulsos generados en la patilla RA4 sin escalado.
2. Poner el TMR0 a cero.
3. Temporizar 025 segundos.
4. Mostrar en PORTB el contenido de TMR0.
5. Volver al paso 2.
Nota importante: Debido a que el PIC16F84A slo posee un TIMER y lo utilizamos para contar los impulsos
entrantes por RA4, la temporizacin se deber hacer sin ayuda del TIMER.






PRCTICA 2: CUENTARREVOLUCIONES DIGITAL 7/13
DUODCI MA PRUEBA, c uent ar r evol uc i ones VI SUAL
Se dispone del circuito mostrado en la Figura 9.
PIC16F84A
500 500 500 500 500 500 500 500
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7
270 10K
5 5
eje giratorio
rueda dentada
(vista de perfil)
seccin de la
rueda dentada
detector de corte
H21A1
RA4
4Mhz
33pF
33pF
OSC1
OSC2
5
Vdd
Vss
100
10K
reset
MCLR
100
10K
reset
MCLR


Figura 9
Realizar el organigrama y un programa en ensamblador MPASM que haga lo siguiente:
1. Configurar a la entrada de TMR0 los impulsos generados en la patilla RA4 sin escalado.
2. Poner el TMR0 a cero
3. Temporizar 025 segundos.
4. Segn el contenido de TMR0 mostrar en PORTB lo siguiente:
a. Si TMR0=0 entonces PORTB=00000000
b. Si 1TMR025 entonces PORTB=00000001
c. Si 26TMR050 entonces PORTB=00000011
d. Si 51TMR075 entonces PORTB=00000111
e. Si 76TMR0100 entonces PORTB=00001111
f. Si 101TMR0125 entonces PORTB=00011111
g. Si 126TMR0150 entonces PORTB=00111111
h. Si 151TMR0175 entonces PORTB=01111111
i. Si 176TMR0 entonces PORTB=11111111
5. Volver al paso 2.
DECI MOTERCERA PRUEBA
Se dispone del circuito mostrado en la Figura 10.
330x8
a
b
c
d
e
f
g
dp
PIC16F84A
4Mhz
33pF
33pF
OSC1
OSC2
Vss
5
Vdd
100
10K
reset
MCLR
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7
100
a
b
c
d
e
f
g
dp
a
b
c
d
e
f
g
dp
a
b
c
a
d
e
f
dp
g
RA2
RA1
RA0
d
nodo
comn
nodo
comn
nodo
comn

Figura 10
Realizar el organigrama y un programa en ensamblador MPASM que presente un 2 en el display central.
DECI MOCUARTA PRUEBA
Realizar la prueba anterior, pero ahora presentando un 222 (un 2 en los tres displays).





PRCTICA 2: CUENTARREVOLUCIONES DIGITAL 8/13
DECI MOQUI NTA PRUEBA
Se dispone del circuito mostrado en la Figura 11.
330x8
a
b
c
d
e
f
g
dp
PIC16F84A
4Mhz
33pF
33pF
OSC1
OSC2
Vss
5
Vdd
100
10K
reset
MCLR
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7
100
a
b
c
d
e
f
g
dp
a
b
c
d
e
f
g
dp
a
b
c
a
d
e
f
dp
g
RA2
RA1
RA0
d
nodo
comn
nodo
comn
nodo
comn

Figura 11
Realizar el organigrama y un programa en ensamblador MPASM que presente un 123 en los displays. Para
conseguirlo se entra en un bucle en el que:
1. Se saca 1 en el dgito ms significativo.
2. Retardo de 1ms.
3. Se saca 2 en el dgito central.
4. Retardo de 1ms.
5. Se saca 3 en el dgito menos significativo.
6. Retardo de 1 ms.
7. Vuelta al paso 1.
DECI MOSEXTA PRUEBA
Se dispone del circuito mostrado en la Figura 12.
330x8
a
b
c
d
e
f
g
dp
PIC16F84A
4Mhz
33pF
33pF
OSC1
OSC2
Vss
5
Vdd
100
10K
reset
MCLR
RB0
RB1
RB2
RB3
RB4
RB5
RB6
RB7
100
a
b
c
d
e
f
g
dp
a
b
c
d
e
f
g
dp
a
b
c
a
d
e
f
dp
g
RA2
RA1
RA0
d
nodo
comn
nodo
comn
nodo
comn
270 10K
5 5
eje giratorio
rueda dentada
(vista de perfil)
seccin de la
rueda dentada
detector de corte
H21A1
RA4

Figura 12
Realizar el organigrama y un programa en ensamblador MPASM que se mantenga en el bucle:
1. Configurar a la entrada de TMR0 los impulsos generados en la patilla RA4 sin escalado.
2. Poner el TMR0 a cero.
3. Temporizar 025 segundos.
4. Mostrar durante unas dcimas de segundo (entre 2 y 10 dcimas) el nmero de vueltas contenido en
TMR0 en los displays.
5. Volver al paso 2.
DECI MOSPTI MA PRUEBA c uent ar r evol uc i ones PRECI SO
Con el fin de mejorar la legibilidad, se pide modificar el programa anterior para que no se presenten los ceros a
la izquierda. En el caso de que la rueda est parada se visualizar nicamente el punto del dgito menos
significativo.



PRCTICA 2: CUENTARREVOLUCIONES DIGITAL 9/13
DECI MOCTAVA PRUEBA
Se dispone del circuito mostrado en la Figura 13.
PIC16F84A
4Mhz
33pF
33pF
OSC1
OSC2
5
Vdd
Vss
100
10K
reset
MCLR
100
10K
reset
MCLR
RA0
RA1
RB4
RB5
RB6
RB7
10K
10K
10K
10K
RB0
RB1
RB2
RB3
10K
10K
10K
10K
I 0
I 1
I 2
I 3
I 4
I 5
I 6
I 7
L293B
Mot or
DC
5
12
RA2
12
12

Figura 13
Realizar el organigrama y un programa en ensamblador MPASM para que:
Mediante I7 se encienda o se apague el motor.
Mediante I6 se controle el sentido de giro del motor.
DECI MONOVENA PRUEBA
Se dispone del circuito mostrado en la Figura 13.
Realizar el organigrama y un programa en ensamblador MPASM para que:
Mediante I7 se controle que se encienda o se apague el motor.
Mediante I6 se controle el sentido de giro del motor.
Mediante el resto de los interruptores se controle la potencia suministrada al motor, , de forma que se
hace corresponder potencia cero a I5I4I3I2I1I0 =000000 y mxima potencia a I5I4I3I2I1I0=111111 y
valores intermedios correspondern a potencias intermedias.















PRCTICA 2: CUENTARREVOLUCIONES DIGITAL 10/13
VI GSI MA PRUEBA
Se dispone del circuito mostrado en la Figura 14.
PIC16F84A
4Mhz
33pF
33pF
OSC1
OSC2
5
Vdd
Vss
100
10K
reset
MCLR
100
10K
reset
MCLR
RB4
RA0
RA1
RA2
RA3
10K
10K
10K
10K
I 0
I 1
I 2
I 3
L293B 5
Mot or PaP
de 48 pasos
RB0
RB1
RB3
RB2
012 3
5

Figura 14
Realizar el organigrama y un programa en ensamblador MPASM para que:
El motor gire con un periodo entre pasos de 2 dcimas de segundo.

VI GESI MOPRI MERA PRUEBA
Se dispone del circuito mostrado en la Figura 14.
Realizar el organigrama y un programa en ensamblador MPASM para que:
Mediante I1 se encienda o se apague el motor.
Mediante I2 se controle el sentido de giro del motor.
El motor gire con un periodo entre pasos de 2 dcimas de segundo.

VI GESI MOSEGUNDA PRUEBA
Se dispone del circuito mostrado en la Figura 14.
Realizar el organigrama y un programa en ensamblador MPASM para que:
El motor gira de forma continua en un nico sentido, siendo el tiempo de cada paso el valor
representado por I3I2I1I0 multiplicado por 002 segundos.
Entre qu valores estn comprendidas las r.p.m. del motor?









PRCTICA 2: CUENTARREVOLUCIONES DIGITAL 11/13
VI GESI MOTERCERA PRUEBA, c uent ar r evol uc i ones CLSI CO I
Se dispone del circuito mostrado en la Figura 15.
2
0
24
12 36
6
4
8
10
18 30
44
42
14
40
16
20
22
26
38
28
32
34
46
192
0
96
144 256 48
vuel t as
por
segundo
0123
PIC16F84A
4Mhz
33pF
33pF
OSC1
OSC2
5
Vdd
Vss
100
10K
reset
MCLR
100
10K
reset
MCLR
RB4
L293B 5
RB0
RB1
RB3
RB2
12
270 10K
5 5
eje giratorio
rueda dentada
(vista de perfil)
seccin de la
rueda dentada
detector de corte
H21A1
RA4

Mot or
PaP
48
pasos

Figura 15
Se pide disear el organigrama y realizar el programa en ensamblador MPASM, para obtener sobre la escala
numerada las revoluciones por segundo a las que gira el eje. Antes de empezar a ejecutar el programa se deber
llevar manualmente la aguja a la posicin 0. Cuando la aguja se mueva para mostrar un nuevo valor, lo har a
una velocidad de 1 vuelta por segundo.















PRCTICA 2: CUENTARREVOLUCIONES DIGITAL 12/13
VI GESI MOCUARTA PRUEBA
Se dispone del circuito mostrado en la Figura 16.
270 10K
5 5
eje giratorio
rueda dentada
(vista de perfil)
seccin de la
rueda dentada
detector de corte
H21A1
PIC16F84A
4Mhz
33pF
33pF
OSC1
OSC2
5
Vdd
Vss
100
10K
reset
MCLR
100
10K
reset
MCLR
RA4
RA0
S3003 S3003
Futaba
MOTOR
Futaba S3003 actuando
como servo de
posicin
128
2
5
5
0
6
4
1
9
2
vueltas
por segundo

Figura 16
Realizar el organigrama y un programa en ensamblador MPASM que la aguja marque la posicin 0.
VI GESI MOQUI NTA PRUEBA
Se dispone del circuito mostrado en la Figura 16.
Realizar el organigrama y un programa en ensamblador MPASM que la aguja marque la posicin 255
VI GESI MOSEXTA PRUEBA, c uent ar r evol uc i ones CLSI CO I I
Se dispone del circuito mostrado en la Figura 16.
Realizar el organigrama y un programa en ensamblador MPASM que realice la siguiente secuencia:
Enviar durante 1 segundo una seal PWM correspondiente a la posicin 0.
Enviar durante 1 segundo una seal PWM correspondiente a la posicin 255.
Volver al inicio.
De este modo se simular un limpiaparabrisas.
VI GESI MOSPTI MA PRUEBA
Realizar el organigrama y un programa en ensamblador MPASM que mejore el anterior, haciendo que la aguja
tenga 8 posiciones por las que vaya pasando, en vez de nicamente dos en los extremos. El tiempo que tiene que
tardar la aguja en ir de un extremo a otro debe ser tambin de 1 segundo.
VI GESI MOCTAVA PRUEBA , c uent ar r evol uc i ones CLSI CO I I
Se dispone del circuito mostrado en la Figura 16.
Realizar el organigrama y un programa en ensamblador MPASM para que en la escala numerada se obtenga en
todo momento las revoluciones por segundo a las que gira el eje.
J or nadas par a l a r eal i zac i n de l a pr c t i c a
Esta prctica se realizar durante todos las jornadas de LABORATORIO DE SISTEMAS ELECTRNICOS DIGITALES de
noviembre y diciembre. En total son 7 semanas lectivas, y como hay 28 pruebas, el alumno debera realizar 4
pruebas cada semana. No obstante, conviene realizar ms pruebas al comienzo, por si pudieran surgir
dificultades en alguna de ellas que haga al alumno atascarse y dedicarla ms tiempo del esperado. A modo de
sugerencia, a continuacin se presenta una planificacin que asegura al alumno realizar todas las pruebas aunque
surjan las tpicas dificultes en la finalizacin de la prctica, que le hagan dedicar ms tiempo del esperado.
1-2 de noviembre: mircoles festivo
PRCTICA 2: CUENTARREVOLUCIONES DIGITAL 13/13
7-8 de noviembre: pruebas 1 a 5.
14-15 de noviembre: pruebas 6 a 10.
21-22 de noviembre: pruebas 11 a 16.
28-29 de noviembre: pruebas 17 a 23.
5-6 de diciembre: mircoles festivo
12-13 de diciembre: pruebas 24 a 28
19-20 de diciembre: libre
Para poder ir cumpliendo estos objetivos semana a semana, el alumno debe realizar en casa los programas,
simularlos con MPLAB SIM, y utilizar las horas de laboratorio para probar las pruebas y depurar los errores. Si
el alumno slo dedica las horas de laboratorio, no tendr tiempo suficiente para realizar todas las pruebas.
Ot r os c oment ar i os ac er c a de l a pr c t i c a
Aunque no se entrega memoria, es muy importante DIBUJAR EL ORGANIGRAMA de cada uno de los
programas antes de empezar a editar el cdigo.