Preparatorio_7.docx

download Preparatorio_7.docx

of 8

Transcript of Preparatorio_7.docx

  • 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