• No se han encontrado resultados

PRÁCTICA N 9 BARRIDO DE DISPLAY

N/A
N/A
Protected

Academic year: 2022

Share "PRÁCTICA N 9 BARRIDO DE DISPLAY"

Copied!
8
0
0

Texto completo

(1)

Carrera de Ingeniería en Electrónica y Automatización

Período: 2022A | https://cea.epn.edu.ec/index.php/objetivos-y-practicas

LABORATORIO DE SISTEMAS MICROPROCESADOS PRÁCTICA N°9

1.

TEMA :

BARRIDO DE DISPLAY

2.

OBJETIVO:

Diseñar un circuito y el software asociado para manejar 4 display de 7 segmentos usando la técnica de barrido.

3. MARCO TEÓRICO

El número limitado de líneas de entrada / salida que dispone el microcontrolador obliga a usar técnicas especiales cuando se deben manejar periféricos que requieren un elevado número de líneas de control. Uno de esos casos es la presentación de números que tengan varios dígitos.

En esta práctica se va a desarrollar un programa que permita mostrar 4 dígitos decimales (BCD) en 4 displays de 7 segmentos de ánodo o cátodo común, mediante barrido de los displays, tomar en cuenta que, para una correcta visualización de los símbolos en los displays, es necesario mantener activado durante un tiempo corto cada uno de los dígitos antes de continuar con el barrido.

4. TRABAJO PREPARATORIO

4.1. Modificar la subrutina de conversión de binario a BCD para 4 dígitos. En este caso debe iniciar restando 1000, para lo que debe usar aritmética de 16 bits pues debe considerar que el número máximo a convertir es 9999.

Como el resultado de la multiplicación va a R1:R0, un ejemplo sería:

…………..

BIN_BCD4_MILES1:

SUBI R0,LOW(1000) SBCI R1,HIGH(1000)

BRCS BIN_BCD4_CENTENAS INC R17

RJMP BIN_BCD4_MILES1

………

(2)

Período: 2022A | https://cea.epn.edu.ec/index.php/objetivos-y-practicas

4.2. Escribir un programa que permita ingresar dos números en binario de 8 bits cada uno por PORTB y PORTD. El programa realizará la multiplicación de los dos números y mostrará el resultado en base 10 en los 4 displays de 7 segmentos en el circuito de barrido construido. El número máximo a convertir es 9999, por lo que si al multiplicar los números se excede este valor debe mostrar 4 guiones en los displays (----).

Adicionalmente se deberán conectar 2 interruptores (SW0 y SW1) los cuales deben funcionar con base a la siguiente tabla:

SW1 SW0 ACTIVIDAD

0 0

En el primer display se formará la letra a mayúscula y en los otros 3 displays el valor en base 10 que ingresa por el PUERTO B.

1 0

En el primer display se formará la letra b minúscula y en los otros 3 displays el valor en base 10 que ingresa por el PUERTO D.

1 ó 0 1

En los displays se mostrará el resultado de la multiplicación tal como se especifica en el párrafo anterior

Como referencia se tienen los circuitos de los anexos y el programa base. Debe preparar la simulación del circuito 1 y del circuito 3. El circuito 1 está hecho con transistores y de esa manera es como se debería construir en hardware; ó con el integrado ULN2003A como se muestra en el circuito 2. El problema con esto circuitos al simularlos es que el programa simula los transistores con el modelo SPICE analógico lo que le toma mucho tiempo y como resultado el valor en los displays aparece parpadeando, o de un dígito a la vez. Solamente para fines de poder simular y probar el programa se puede usar el circuito 3 que está realizado con inversores digitales por lo que no toma mucho tiempo la simulación y es posible visualizar de manera correcta los valores (NO SE DEBE CONSTRUIR EN HARDWARE CON ESTOS COMPONENTES pues no pueden manejar las altas corrientes necesarias);

también en este último circuito se usa un display integrado que tiene los 4 dígitos en un solo encapsulado. En este display de 4 dígitos solamente están en el interior los 4 display ya con sus conexiones; pero también es necesario usar los amplificadores de corriente y las resistencias limitadoras, tal como se construye con display de un solo dígito).

4.3. Simular en PROTEUS el circuito 1 ó el 2, y el circuito 3. Simular su programa en los dos circuitos construidos para ver el funcionamiento. Subir capturas de sus circuitos y de sus simulaciones en un solo archivo con formato pdf.

(3)

Período: 2022A | https://cea.epn.edu.ec/index.php/objetivos-y-practicas

5. EQUIPO Y MATERIALES

• Computador con software Microchip y Proteus

• Microcontrolador Atmega 164p

• Programador de microcontroladores Atmega

• Fuente de poder de 5V

• Placa protoboard

• Display multiplexado de 4 digitos

• Materiales varios

6. PROCEDIMIENTO

6.1. Probar el correcto funcionamiento de la implementación de la aplicación planteada en el trabajo preparatorio.

6.2. Implementar los cambios que el instructor considere conveniente.

7. INFORME:

7.1. Presentar las evidencias de lo desarrollado en el desarrollo de la práctica con sus respectivos análisis y comentarios.

7.2 Realizar lo que el instructor solicite. 7.3. Conclusiones y Recomendaciones

Elaborado por: Ing. Patricio Chico Msc.

Ing. Ronald Pillajo

Revisado por:

Ing. Alex Oña Ing. Diego Vargas

(4)

Período: 2022A | https://cea.epn.edu.ec/index.php/objetivos-y-practicas ANEXOS

CIRCUITO 1: BARRIDO DE DISPLAYS USANDO TRANSISTORES

CIRCUITO 2: BARRIDO DE DISPLAYS USANDO UN CI ULN2003A (Octal Darlington array)

(5)

Período: 2022A | https://cea.epn.edu.ec/index.php/objetivos-y-practicas

CIRCUITO 3 : BARRIDO DE DISPLAYS APROPIADO SOLAMENTE PARA SIMULACIÓN (NO ADECUADO PARA CONSTRUIRLO EN HARDWARE)

;

; Barrido_display.asm

;

; Created: 21/7/2020 11:47:16

; Author : pchico

;

;Un número binario de 8 bits entra por el puerto B , lo convierte a

;base 10 y los muestra con barrido de 4 displays de ANODO COMÚN

;los segmentos se encienden con 1L y se manejan con PC0(a) al PC6(g)

;los dígitos de activan con 0L y se manejan con PA4(DIG0) al PA7(DIG3)

;se trabaja con subrutinas

;BIN_BCD3 toma BINARIO de la SRAM y lo convierte a BCD y lo entrega en

;BCD0...BCD2

;BCD_7SEG4 toma BCD0...BCD3 de la SRAM y los convierte a 7 segmentos y

;los entrega en DIG0...DIG3

;BARRIDO4 toma DIG0...DIG3 de la SRAM y los muestra en los 4 display

;zona de definición de variables

.def tempo=r16 .def conta=r17 .def aux=r18

(6)

Período: 2022A | https://cea.epn.edu.ec/index.php/objetivos-y-practicas

;reserva de espacios en la SRAM .dseg

BINARIO: .byte 1 BCD0: .byte 1 BCD2: .byte 1 BCD3: .byte 1 DIG0: .byte 1 DIG1: .byte 1 DIG2: .byte 1 DIG3: .byte 1

;zona de código .cseg

.org 0x0

ldi tempo,0b11110000

out ddra,tempo ;PA4..PA7 son salida (para los dígitos) ldi tempo,0b00000000

out ddrb,tempo ;el puertoB es entrada para el número en binario out ddrd,tempo ;el puertoD no se ocupa, es entrada

ldi tempo,0b01111111

out ddrc,tempo ;PC0..PC7 son salida (para los segmentos) ldi tempo,0b11111111 ;activo pullup de los puertos B y D out portb,tempo

out portd,tempo

ldi tempo,0b11111111 ;pines no usados son entradas con pullup activo out porta,tempo ;inicio con dígitos deshabilitados (con 1L) ldi tempo,0b10000000 ;pines no usados son entradas con pullup activo out portc,tempo ;inicio con segmentos apagados

in tempo,mcucr ;PUD=0 para activar los pullup andi tempo,0b11101111

out mcucr,tempo

ldi tempo,high(RAMEND) ;se debe inicializar el STACK POINTER out sph,tempo ;en la última localidad de la SRAM ldi tempo,low(RAMEND)

out spl,tempo salto:

in tempo,pinb ;se lee del registro PINB sts BINARIO,tempo

rcall BIN_BCD3 ;convierte de binario a BCD (3 dígitos) clr tempo

sts BCD3,tempo ;hago el dígito más significativo cero rcall BCD_7SEG4 ;convierte de BCD a 7segmentos (4 dígitos) rcall BARRIDO4 ;barre 1 vez los 4 display

rjmp salto ;vuelve a revisa si ha cambiado la entrada

BIN_BCD3:

push r16 in r16,sreg

push r16 ;almaceno en el STACK todos los registros push r17 ;que se van a usar y el registro SREG lds r16,BINARIO ;carga el valor a convertir

clr r17 ;r17 cuenta cuantas veces se ha restado 100 BIN_BCD3_cent1:

subi r16,100 ;empiezo a restar 100 para determinar las centenas brcs BIN_BCD3_decenas ;si es negativo ya se pasó y paso a las decenas inc r17 ;si es positivo incremento el contador

rjmp BIN_BCD3_cent1 ; y vuelo a restar otra vez BIN_BCD3_decenas:

subi r16,-100 ;restauro al valor anterior a hacerse negativo

(7)

Período: 2022A | https://cea.epn.edu.ec/index.php/objetivos-y-practicas sts BCD2,r17 ;guardo las centenas

clr r17 ;r17 cuenta cuantas veces se ha restado 10 BIN_BCD3_dec1:

subi r16,10 ;empiezo a restar 10 para determinar las decenas brcs BIN_BCD3_unidades ;si es negativo ya se pasó y paso a las unidades inc r17 ;si es positivo vuelo a restar otra vez

rjmp BIN_BCD3_dec1 BIN_BCD3_unidades:

subi r16,-10 ;restauro al valor anterior a hacerse negativo sts BCD1,r17 ;guardo las decenas

sts BCD0,r16 ;guardo las unidades

pop r17 ;se restaura los recursos usados a sus pop r16 ;valores originales

out sreg,r16 pop r16 ret

BCD_7SEG4:

push r16 in r16,sreg

push r16 ;almaceno en el STACK todos los registros push r17 ;que se van a usar y el registro SREG push zh

push zl push yh push yl push xh push xl

ldi xh,high(BCD0) ;el puntero X apunta a BCD0 ldi xl,low(BCD0)

ldi yh,high(DIG0) ;el puntero Y apunta a DIG0 ldi yl,low(DIG0)

ldi r17,4 ;contador, son 4 dígitos a convertir BCD_7SEG4_salto:

ldi zh,high(BCD_7SEG4_TABLA<<1) ;Z apunta al primer elemento ldi zl,low(BCD_7SEG4_TABLA<<1) ;de la tabla

ld r16,x+ ;se traen los dígitos de BCD0 a BCD3 add zl,r16 ;se suma el puntero mas el valor del clr r16 ;dígito a convertir

adc zh,r16

lpm r16,z ;se recupera el equivalente a 7 segmentos st y+,r16 ;almaceno el resultado en DIG0..DIG3 dec r17 ;se repite 4 veces

brne BCD_7SEG4_salto

pop xl ;se restaura los recursos usados a sus pop xh ;valores originales

pop yl pop yh pop zl pop zh pop r17 pop r16 out sreg,r16 pop r16 ret

BCD_7SEG4_TABLA: ; los segmentos de la tabla están en este orden: gfedcba

(8)

Período: 2022A | https://cea.epn.edu.ec/index.php/objetivos-y-practicas .db 0b00111111,0b00000110 ;0,1

.db 0b01011011,0b01001111 ;2,3 .db 0b01100110,0b01101101 ;4,5 .db 0b01111101,0b00000111 ;6,7 .db 0b01111111,0b01101111 ;8,9

BARRIDO4:

push r16 in r16,sreg

push r16 ;almaceno en el STACK todos los registros push r17 ;que se van a usar y el registro SREG push r18

push xh push xl

ldi xh,high(DIG0) ;X apunta al primer dígito a mostrar ldi xl,low(DIG0)

ldi r17,4 ;son 4 dígitos

ldi r18,0b11101111 ;se iniciará encendiendo el dígito de la derecha ldi r16,0b11111111 ;desactivo todos los display (con 1L) y mantengo out porta,r16 ;habilitado los pullup de pines no usados

BARRIDO4_salto:

ld r16,x+ ;recupero DIG0..DIG3

ori r16,0b10000000 ;mantengo habilitado el pullup del pin no usado out portc,r16 ;envío la información de los segmentos

out porta,r18 ;enciendo el display correspondiente rcall BARRIDO4_retardo ;llamo a un retardo

ldi r16,0b11111111 ;desactivo todos los display out porta,r16

sec ;carry=1

rol r18 ;se pone el cero para activar el siguiente display dec r17 ;se repite 4 veces

brne BARRIDO4_salto

pop xl ;se restaura los recursos usados a sus pop xh ;valores originales

pop r18 pop r17 pop r16 out sreg,r16 pop r16 ret

BARRIDO4_retardo: ;rutina de retardo ldi r16,125

BARRIDO4_retardo_salto:

dec r16

brne BARRIDO4_retardo_salto ret

Referencias

Documento similar

1) En los espacios de la IATAE debe imperar el orden y el respeto hacia los demás usuarios y hacia sus bienes. 2) Los usuarios no podrán realizar obras ni modificaciones en

Debido al riesgo de producir malformaciones congénitas graves, en la Unión Europea se han establecido una serie de requisitos para su prescripción y dispensación con un Plan

Como medida de precaución, puesto que talidomida se encuentra en el semen, todos los pacientes varones deben usar preservativos durante el tratamiento, durante la interrupción

Además de aparecer en forma de volumen, las Memorias conocieron una primera difusión, a los tres meses de la muerte del autor, en las páginas de La Presse en forma de folletín,

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

Después de una descripción muy rápida de la optimización así como los problemas en los sistemas de fabricación, se presenta la integración de dos herramientas existentes

por unidad de tiempo (throughput) en estado estacionario de las transiciones.. de una red de Petri

We have created this abstract to give non-members access to the country and city rankings — by number of meetings in 2014 and by estimated total number of participants in 2014 —