Sei sulla pagina 1di 10

ESCUELA POLITÉCNICA NACIONAL

ESCUELA DE FORMACIÓN DE TECNÓLOGOS


TECNOLOGÍA EN ELECTROMECÁNICA

Laboratorio de Microprocesadores

INFORME

Práctica No: 7
Tema: Control de tiempos en bajo nivel

Realizado por:

CPR3
Estudiante: Kevin Carrillo, Boris Barros Grupo:

(Espacio Reservado)
Fecha de entrega: 2019 / 06 / 26 f. _________________________
Año mes día Recibido por:

Sanción: ____________________________________________________

PERÍODO 2019 – A
ESCUELA POLITÉCNICA NACIONAL ESFOT

TET424L LABORATORIO DE MICROPROCESADORES


INFORME- PRÁCTICA 7
1. Resumen
Se implementó dos circuitos, el primer circuito se debe encender dos leds con diferente frecuencia
cada uno al manipular el switch que se encontraba conectado en el pin RA4 el cual cambiaba el
estado de los leds RB4, RB5.

En el segundo circuito mediante un pulso debía cambiar el sentido de ascendente a descendente y


cuando llegue al número nueve este llega a encender un led.

2. Marco teórico
Display 7 Segmentos ánodo y cátodo común

El display 7 Segmentos es un dispositivo opto-electrónico que permite visualizar números del 0 al 9.


Existen dos tipos de display, de cátodo común y de ánodo común. [1]

DISPLAY 7 SEGMENTOS CÁTODO COMÚN

El display cátodo común es aquel que tiene el pin común conectado a los negativos de los Leds
(cátodo). Esto significa que este tipo de display se «controla» con ‘1’ s lógicos o con voltaje positivo.
El arreglo para un display de cátodo común seria el siguiente: [1]

Ilustración 1 Display cátodo común. [1]

DISPLAY 7 SEGMENTOS ÁNODO COMÚN

El display ánodo común es aquel cuyos ánodos están conectados al mismo punto. Este tipo de
display es controlado por ceros, es decir que el microcontrolador o MCU, FPGA o microprocesador,
le asigna a cada segmento un cero lógico (también llamada tierra digital). El esquema o diagrama del
display de 7 segmentos en ánodo común es: [1]

Laboratorio de Microprocesadores Práctica 5


ESCUELA POLITÉCNICA NACIONAL ESFOT

Ilustración 2 Display ánodo común. [1]

TEMPORIZADOR Y CONTADOR

Un temporizador o un contador se incrementan automáticamente, puede ser conducido por el reloj


de instrucciones del procesador, en cuyo caso se conoce como un contador de tiempo
(temporizador), incrementando a una tasa predefinida y constante o puede ser accionado por una
señal externa, donde actúa como un (contador), contando transiciones en un pin de entrada. [2]

MANEJO DE TEMPORIZACIONES

En la mayor parte de los programas, resulta necesario controlar el tiempo que tardan en ejecutarse
algunas acciones o bien establecer una duración determinada para un estado del sistema digital que
se quiere realizar. [2]

 Estos tiempos se los puede realizar mediante dos formas


 Lazos o bucles simples o anidados.
 Módulos de temporización disponibles en el µC. Cuentan a partir de un reloj externo
(contador) o del propio oscilador del µC (temporizador) y activan un indicador o bandera
(flag) cuando se desbordan o cuando alcanzan una determinada combinación. [2]

Registro OPTION:

Contiene varios bits de control para configurar el divisor de frecuencia o preescalador del
TMR0/WDT, la interrupción externa INT, TMR0 y los pull-ups para el PORTB. [3]

Ilustración 3 Registro OPTION_REG. [3]

Ilustración 4 Estados de Bit´s. [3]

Laboratorio de Microprocesadores Práctica 5


ESCUELA POLITÉCNICA NACIONAL ESFOT

La combinación de los BIT's; PS2, PS1 y PS0 (0, 1 y 2) determinan el valor del divisor de frecuencia, el
cual se puede ver en la siguiente tabla. [3]

Ilustración 5 Bit´s del preescalador. [3]

3. Desarrollo
1. Elaborar un programa utilizando lenguaje de bajo nivel (MPLAB), que cumpla con los siguientes
requerimientos:

 Leer el pin 1 del puerto A mediante un dipswitch, si se encuentra un 1 lógico en este pin se
deberán mostrar en el pin RC4 las señales de un oscilador de 4 Hz. Si se encuentra un 0
lógico en el pin 1 del puerto A se deberán mostrar en el pin RC5 las señales de un oscilador
de 12 Hz., hasta que el estado del pin 1 del puerto A cambie. Mientras un led este encendido
el otro debe permanecer apagado.

Código implementado.
LIST P=16F870
INCLUDE "P16F870.INC"
AUX1 EQU 0x20
AUX2 EQU 0X21
ORG 0X00
GOTO INICIO
INICIO BSF STATUS,RP0
BCF STATUS,RP1
MOVLW B'11010001'
MOVWF OPTION_REG
MOVLW .6
MOVWF ADCON1
MOVLW 0X3F
MOVWF TRISA
MOVLW B'11001111'
MOVWF TRISC
BCF STATUS,RP0
CLRF PORTA
PULSO BTFSS PORTA,4
GOTO RET2
GOTO RET1
RET1 BCF PORTC,5
CLRF AUX1
AB MOVLW .83
MOVWF TMR0
BB BTFSS INTCON,2
GOTO BB
BCF INTCON,2
INCF AUX1,1
MOVLW .250
XORWF AUX1,0

Laboratorio de Microprocesadores Práctica 5


ESCUELA POLITÉCNICA NACIONAL ESFOT

BTFSS STATUS,2
GOTO AB
COMF PORTC
GOTO PULSO
RET2 BCF PORTC,4
CLRF AUX2
BD MOVLW .11
MOVWF TMR0
AD BTFSS INTCON,2
GOTO AD
BCF INTCON,2
INCF AUX2,1
MOVLW .255
XORWF AUX2,0
BTFSS STATUS,2
GOTO BD
COMF PORTC
GOTO PULSO
END

Simulación en Proteus
C17

22pF
X22 U3
CRYSTAL
C26 9 21
OSC1/CLKIN RB0/INT
10 22
OSC2/CLKOUT RB1
1 23
MCLR/Vpp/THV RB2
R16(1) 22pF 24
R16 R26 2
RB3/PGM
25
RA0/AN0 RB4
3 26
10k 100 RA1/AN1 RB5
4 27
RA2/AN2/VREF- RB6/PGC
5 28
RA3/AN3/VREF+ RB7/PGD
6
0 7
RA4/T0CKI
RA5/AN4 RC0/T1OSO/T1CKI
11
12
RC1/T1OSI
13
RC2/CCP1
14 R1
RC3
15 R2
RC4
16 330
RC5
17 330
RC6/TX/CK
18
RC7/RX/DT
D1
PIC16F870 LED-GREEN
D2
LED-BLUE

Ilustración 6 Diseño de encendido y apagado de dos les.

 Realice un contador de 5 a E en hexadecimal y lo visualice en un Display de 7 segmentos


ánodo común conectado al pórtico B, si el valor es igual a 9 encender un led en el pin RA0.
Además, conectar un switch al pin RA3, de modo que, cuando este pin reciba 1L el contador
será creciente y cuando reciba un 0L el contador debe ser decreciente.

Código implementado.
LIST P=16F870
INCLUDE "P16F870.INC"
CONT EQU 0x20
AUX2 EQU 0X21
ORG 0X00
GOTO INICIO

RETARDO

Laboratorio de Microprocesadores Práctica 5


ESCUELA POLITÉCNICA NACIONAL ESFOT

D1 MOVLW .45
MOVWF TMR0
R1 BTFSS INTCON,2
GOTO R1
BCF INTCON,2
INCF AUX2,F
MOVLW .250
XORWF AUX2,0
BTFSS STATUS,2
GOTO D1
TABLA
ADDWF PCL,1
RETLW 0XC0 ;0
RETLW 0X92 ;5
RETLW 0X82 ;6
RETLW 0XF8 ;7
RETLW 0X80 ;8
RETLW 0X90 ;9
RETLW 0X88 ;A
RETLW 0X83 ;b
RETLW 0XC6 ;C
RETLW 0XA1 ;d
RETLW 0X86 ;E

INICIO BSF STATUS,RP0


BCF STATUS,RP1
MOVLW B'11010001'
MOVWF OPTION_REG
MOVLW .6
MOVWF ADCON1
MOVLW B'111110'
MOVWF TRISA
CLRF TRISB
BCF STATUS,RP0
LAZO1 CLRF CONT
LAZO2 MOVF CONT,W
CALL TABLA
MOVWF PORTB
GOTO IGUAL
RETORNO CALL RETARDO
BTFSS PORTA,3
GOTO DEC
INCF CONT,f
MOVF CONT,0
XORLW .11
BTFSS STATUS,2
GOTO LAZO2
GOTO LAZO1
GOTO IGUAL
DEC DECF CONT,f
MOVF CONT,W
XORLW .255
BTFSS STATUS,2
GOTO LAZO2
MOVLW .10
MOVWF CONT
GOTO LAZO2
IGUAL
MOVF CONT,W

Laboratorio de Microprocesadores Práctica 5


ESCUELA POLITÉCNICA NACIONAL ESFOT

XORLW .5
BTFSC STATUS,Z
GOTO ENCE
BCF PORTA,0
GOTO RETORNO
ENCE BSF PORTA,0
GOTO RETORNO

END

Simulación en Proteus

C17

22pF

X22 (COM)
CRYSTAL
C26
U3 RN3
9 21 1 16
22pF OSC1/CLKIN RB0/INT
R16(1) 10 22 2 15
R16 R26 1
OSC2/CLKOUT RB1
23 3 14
MCLR/Vpp/THV RB2
24 4 13
10k 100 RB3/PGM
2 25 5 12
RA0/AN0 RB4
3 26 6 11
RA1/AN1 RB5
4 27 7 10
RA2/AN2/VREF- RB6/PGC
5 28 8 9
0 6
RA3/AN3/VREF+ RB7/PGD
R1 7
RA4/T0CKI
11 330
330 RA5/AN4 RC0/T1OSO/T1CKI
12
RC1/T1OSI
13
RC2/CCP1
14
RC3
15
RC4
16
RC5
17
D1 RC6/TX/CK
18
LED-BLUE RC7/RX/DT
PIC16F870

Ilustración 7 Diseño de secuencia de numero mediante un pulso.

4. Análisis de resultados
 Se procedió a calcular los retardos de los TMR0 para el tiempo de las luces leds de acuerdo a
las frecuencias establecidas en el preparatorio.
 Para este caso se debe utilizar dos variables para los dos tiempos que se va a realizar los
retardos.
 Se debe modificar el OPTION_REG para utilizar el preescalador y ver si se quiere utilizar
como contador o temporizador.
 Se testeó el registro INTCON para saber si se procedió al desbordamiento del TMR0.

5. Cuestionario
1.-Explicar el funcionamiento de timer0 como contador

Timer0 AVR como contador

Para el PIC16F877A el registro TMR0 del timer0 PIC está formado por 8 bits por lo que se puede
contar desde 0 hasta 255, al utilizar timer0 PIC como contador este no aumentará sus valores o su
cuenta con cada ciclo de instrucción, en este caso el timer0 estará conectado al pin T0CKI por donde
se le hará llegar una señal, la cual al cambiar de estado hará que el timer0 PIC se incremente en una

Laboratorio de Microprocesadores Práctica 5


ESCUELA POLITÉCNICA NACIONAL ESFOT

unidad, estos incrementos en su cuenta pueden ser por cada flanco de subida o cada por flanco de
bajada de la señal, el flanco a utilizar se elige por programa. [4]

 El registro TMR0 aumentará en una unidad, de esta manera se le puede utilizar como
contador, cuando la señal pase de un alto a un bajo o de 1 a 0 el registro TMR0 no
aumentará su valor o no se incrementará.
 La programación del Timer0 PIC como contador se hace mediante el bit5 o el bit T0CS del
registro OPTION_REG. [4]

6. Conclusiones y recomendaciones
Kevin Carrillo

Conclusiones:
 Existen dos métodos para realizar un contador, uno es por medio de bucles anidados
donde el programador puede calcular los retardos que se producirán entre los
valores y, el segundo método es por medio de banderas o desbordamientos
configurando el OPTION_REG.
 El único pin que permite configurar al PIC para realizar un contador es el pin RA4 del
pórtico A.
 La configuración del OPTION_REG permite que al poner en 1L del bit 5 (TOCS) se
configure al PIC para que realice un contador.
 La configuración del OPTION_REG permite que al poner la combinación de los bits 0,
1 y 2 (PS2, PS1 Y PS0) se asigne un pre-escalador adecuado a los requerimientos del
programador y pueda funcionar por medio del TMR0 o del WDT, aunque esté último
método permite contar y mostrar un valor por cada pulsación que realice el
operario.

Recomendaciones:

 Verificar en el circuito uno que las frecuencias calculadas en el código como los
dispositivos conectados sean de valores iguales ya que si se conectan de diferente
valor mostrarán frecuencias diferentes con un rango de error muy alto.
 Colocar adecuadamente la tabla del código de programa de los números
hexadecimales ya que los valores pueden variar si el display es de ánodo o cátodo
común.

Boris Barros:

Conclusiones:
 Se debe utilizar el mismo tipo de cristal tanto al simular el circuito y al momento de
realizar los cálculos del TMR0, evitando problemas al momento de visualizar la
frecuencia en un oscilador.
 Verificar que las etiquetas que se utiliza en el código ya que si no colocamos bien el
programa no va a reconocer la etiqueta ni a donde quiere que vaya el programa.

Laboratorio de Microprocesadores Práctica 5


ESCUELA POLITÉCNICA NACIONAL ESFOT

 Calcular los correctamente los valores del TMR0 ya que en la simulación del proteus
podemos ver algo diferente cuando este se vaya a implementar físicamente.

Recomendaciones:
 Se debe verificar el armado del circuito para evitar problemas, conectar todo los
pines que se utilizara y revisar la alimentación y la conexión a tierra.
 Revisar el cristal y colocar los capacitores para evitar problemas al simular en tiempo
real.

7. Bibliografía / Referencia

Bibliografía

[1] «hetpro-store,» [En línea]. Available: https://hetpro-store.com/TUTORIALES/display-7-


segmentos-anodo-catodo-comun/. [Último acceso: 22 JUNIO 2019].

[2] «educacionvirtual.epn.edu,» [En línea]. Available:


https://educacionvirtual.epn.edu.ec/pluginfile.php/454359/mod_resource/content/2/2019A
_clase07_3.%20Temporizadores.pdf. [Último acceso: 22 JUNIO 2019].

[3] «perso.wanadoo,» [En línea]. Available: http://perso.wanadoo.es/luis_ju/pic3/pic3_reg.html.


[Último acceso: 22 junio 2019].

[4] «microcontroladores-mrelberni,» [En línea]. Available: http://microcontroladores-


mrelberni.com/timer0-pic/. [Último acceso: 22 JUNIO 2019].

Laboratorio de Microprocesadores Práctica 5

Potrebbero piacerti anche