preparatorio_7.docx
Post on 02-Jun-2018
225 Views
Preview:
TRANSCRIPT
-
8/10/2019 Preparatorio_7.docx
1/8
LABORATORIO DE SISTEMAS MICROPROCESADOS
PREPARATORIO
ESCUELA POLITCNICA NACIONAL
DEPARTAMENTO DE CONTROL Y AUTOMATIZACIN
TEMA:BARRIDO DE DISPLAY
PRACTICA: 7
REALIZADO POR: Bryan Olmos
GRUPO: GR13
HORARIO: VIERNES DE 14 - 16
FECHA DE ENTREGA: 03/10/2013
-
8/10/2019 Preparatorio_7.docx
2/8
Preparatorio 7
Objetivo: DISEAR UN CIRCUITO, Y EL SOFTWARE ASOCIADO PARA MANEJAR 4 DISPLAY
DE 7 SEGMENTOS USANDO LA TCNICA DE BARRIDO.
Consulte la distribucin de pines de los display de 7 segmentos a ser utilizados
Por facilidad en esta prctica usaremos un display de 7 segmentos de 4 digitos
Diagrama de conexin:
-
8/10/2019 Preparatorio_7.docx
3/8
Disee un circuito de barrido de 4 display con el micro controlador MEGA164p usando
solamente dos puertos, pues los otros dos puertos son usados para el ingreso de los datos.
Escribir una rutina para convertir de binario a BCD. Con 4 dgitos decimales el nmero ms grande a
convertir es el 9999, ese dato requiere 14 bits en binario para ser almacenado, esto debe tomarse
en consideracin en su rutina.
barrido:pushr16
pushr17
pushr18
pushr19
pushr20
ldir16,0b11111111
outportd, r16
;DIGITO0 ldsr16,digito0
stsvariablebcd,r16
callbcddisplay
ldsr16,variable7
outportc, r16
ldir16,0b11111110
outportd, r16
callrutinaretardo
ldir16,0b11111111
outportd,r16
;DIGITO1
ldsr16,digito1
stsvariablebcd,r16callbcddisplay
ldsr16,variable7outportc, r16
ldir16,0b11111101
outportd, r16
callrutinaretardo
ldir16,0b11111111
outportd,r16
;DIGITO2
ldsr16,digito2stsvariablebcd,r16
callbcddisplay
ldsr16,variable7
outportc, r16
ldir16,0b11111011
outportd, r16
callrutinaretardo
ldir16,0b11111111
outportd,r16
;DIGITO3
ldsr16,digito3
stsvariablebcd,r16
callbcddisplayldsr16,variable7
1B1
1C 16
2B2
2C 15
3B3
3C 14
4B4
4C 13
5B5
5C 12
6B6
6C 11
7B7
7C 10
COM 9
U1
ULN2003A
1
2
3
4
5
6
7
8
16
15
14
13
12
11
10
9
RN1
47
Q12N3906
Q22N3906
Q32N3906
Q42N3906
1
R11K
R21K
R31K
R41K
R5
1K
R6
1K
R7
1K
R8
1K
PC6/TOSC1/PCINT2225
PC5/TDI/PCINT2124
PC4/TDO/PCINT2023
PC3/TMS/PCINT1922
PC2/TCK/PCINT1821
PC1/SDA/PCINT1720
PC0/SCL/PCINT1619
AVCC 27
AREF 29
PC7/TOSC2/PCINT2326
PA6/ADC6/PCINT631
PA5/ADC5/PCINT532
PA4/ADC4/PCINT433
PA3/ADC3/PCINT334
PA2/ADC2/PCINT235 PA1/ADC1/PCINT136
PA0/ADC0/PCINT037
PA7/ADC7/PCINT730
PB6/MISO/PCINT14 2
PB5/MOSI/PCINT13 1
PB4/SS/OC0B/PCINT12 44
PB3/AIN1/OC0A/PCINT11 43
PB2/AIN0/INT2/PCINT10 42PB1/T1/CLKO/PCINT9 41
PB0/XCK0/T0/PCINT8 40
PB7/SCK/PCINT15 3
PD6/ICP/OC2B/PCINT30 15
PD5/OC1A/PCINT29 14
PD4/OC1B/XCK1/PCINT28 13
PD3/INT1/TXD1/PCINT27 12
PD2/INT0/RXD1/PCINT26 11
PD1/TXD0/PCINT25 10
PD0/RXD0/PCINT24 9
PD7/OC2A/PCINT31 16
RESET 4
XTAL18
XTAL27
U2
ATMEGA164P
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-
8/10/2019 Preparatorio_7.docx
4/8
outportc, r16
ldir16,0b11110111
outportd, r16
callrutinaretardo
popr20
popr19
popr18
popr17
popr16
ret
Escribir un programa que permita multiplicar dos nmeros en binario que son ingresados por
medio de interruptores a dos puertos; cada uno de los nmeros puede variar de 0 a 99. Aumentar
al circuito de barrido de display un interruptor, el que si est en 0L, debe mostrar en base 10 en los
dos primeros display el primer nmero a multiplicar, en los dos restantes el otro nmero. Si el
interruptor est en 1L debe mostrar el resultado de la multiplicacin en base 10 ocupando los 4
diplay.
.include"m164pdef.inc"
.defaux=r16
.defvalor=r17
.defvalor2=r18
.defaux2=r18
.dseg
.org0x100
registroalto: .byte1
registrobajo: .byte1digito3: .byte1
digito2: .byte1
digito1: .byte1digito0: .byte1
variablebcd:.byte1
variable7: .byte1
.cseg
.org0x0
ldiaux,0b00000000
outddra, aux
ldiaux,0b00000000
outddrc, auxldiaux,0b00001111
outddrd, auxldiaux,0b11111111
outddrc, aux
inaux, mcucr
andiaux, 0b11101111
outmcucr, aux
ldiaux,high(ramend)
outsph, aux
ldiaux, low(ramend)
outspl, aux
Programa:
inaux, pinc
andiaux, 0b10000000
cpi aux, 0b10000000
-
8/10/2019 Preparatorio_7.docx
5/8
breqmultiplicacion
invalor,pina
ldiaux,0b11111111
outportb,aux
ldiaux, 0
stsregistroalto, aux
stsregistrobajo, valormostrar:
rcallconversionbinbcd
rcallbarrido
rjmpPrograma
multiplicacion:
invalor,pina
andivalor,0b01111111
invalor2,pinb
andivalor,0b01111111
andivalor2,0b01111111
mulvalor,valor2
stsregistroalto, r1
stsregistrobajo, r0rjmpmostrar
conversionbinbcd:
pushr16
pushr17
pushr18
pushr19
pushr20
pushr21
Pushr22
pushr23pushr24
ldsr17, registroalto
ldsr16, registrobajo
clrr19
salto_miles:
incr19
subir16,0xE8
sbcir17,0x3brccsalto_miles
decr19
ldir23,0xE8
ldir24,0x3
addr16,r23
adcr17,r24
clrr20salto_centenas:
incr20
subir16,0x64sbcir17,0x00
brccsalto_centenas
decr20
ldir23,0x64
ldir24,0x00
addr16,r23
adcr17,r24
clrr21salto_decenas:
-
8/10/2019 Preparatorio_7.docx
6/8
incr21
subir16,0xA
brccsalto_decenas
decr21
subir16,-0xA
movr22,r16
stsdigito3, r19
stsdigito2, r20
stsdigito1, r21
stsdigito0, r22
popr24
popr23
popr22
popr21
popr20
popr19
popr18
popr17
popr16
ret
barrido:
pushr16
pushr17
pushr18
pushr19
pushr20
ldir16,0b11111111
outportd, r16
;DIGITO0ldsr16,digito0
stsvariablebcd,r16rcallbcddisplay
ldsr16,variable7
outportc, r16
ldir16,0b11111110
outportd, r16
rcallrutinaretardo
ldir16,0b11111111
outportd,r16
;DIGITO1
ldsr16,digito1
stsvariablebcd,r16
rcallbcddisplay
ldsr16,variable7outportc, r16
ldir16,0b11111101
outportd, r16rcallrutinaretardo
ldir16,0b11111111
outportd,r16
;DIGITO2
ldsr16,digito2
stsvariablebcd,r16
rcallbcddisplayldsr16,variable7
-
8/10/2019 Preparatorio_7.docx
7/8
outportc, r16
ldir16,0b11111011
outportd, r16
rcallrutinaretardo
ldir16,0b11111111
outportd,r16;DIGITO3
ldsr16,digito3
stsvariablebcd,r16
rcallbcddisplay
ldsr16,variable7
outportc, r16
ldir16,0b11110111
outportd, r16
rcallrutinaretardo
popr20
popr19
popr18
popr17popr16
ret
bcddisplay:
pushr16
pushzh
pushzl
ldizh,high(tabla
-
8/10/2019 Preparatorio_7.docx
8/8
decaux2
brneretardo2
ret
Bibliografa:
Sistemas Microprocesados, Oswaldo Buitrn
top related