Entrada y Salida 8255

July 20, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Entrada y Salida 8255...

Description

 

Introducción

En la siguiente practica denominada “Entrada/Sali “Entrada/Salida” da”

se

procederá a introducir al estudiante al aprendizaje y manejo de los diferentes circuitos que permiten de manera auxiliar la comunicación entre dispositivos de entrada y salida con el microprocesado microprocesador. r.

omo es sa!ido con anterioridad el microprocesador por si solo puede encargarse de realizar operaciones matemática matemáticas s aritm"ticas y para este manejar a!solutamente cualquier otra cosa necesita de auxiliarse de# memorias$ !uses$ unidades de almacenamiento utilizando lógica de c%ip select entre otros.

&ara esta práctica se proceder" a interactuar con el microprocesador microprocesado r manejando entrada o salida utilizando el circuito 'integrado( )*++ el cual es una interfaz perif"rica programa!le utilizada com,nmente en muc%os sistemas para manejar todo lo antes mencionado.

&or lo tanto$ con el dispositivo anterior se procederá a desarrollar un sistema que permita simular un cronometro digital programa!le. Este al iniciar el sistema de!erá de desplegar en pantalla un mensaje indicando que empezara el conteo para despu"s proceder

a l la a par parte te d de e la

configuración de los minutos y segundo del dispositivo.

-na vez configurado la cantidad de minutos y segundos el sistema contara con un !otón de start/stop el cual comenzara a decrementar el reloj y detener el reloj en cualquier comento as como un !otón de reset que permita poner la cuenta original.

 

Circuito:

Figura #1

 

Código:

0irecciones del )*++ &1 equ 2222% &3 equ 222*% & equ 2224% 567 equ 2228% msg d! 9onteo :nicial;9 msg* d! 9&orfavor d! 2d c*

d! 2d

c= d! 2d c4 d! 2d c4* d! 2d m

d! 2d

.code start# mov  

ax$?data

mov  

ds$ ax mov

es$ ax

set segment register set segment register

   

@AB @AB

0C$567 17$>2222222!

@over direccion de ctrl a dx. onfigurar en modo 2 y todo salida.

   

A-5 mov

0C$17 di$2

@over contenido de al a dx. @over 2 a di.

   

call D;esca8 call lcdDcursoroff

7lamar conector 1pagar cursor.

D;condiciones#  

mov c>$2 mov c*$2

   

mov c=$2 mov c4$2

ondiciones iniciales.

@AB

@over a dx ctrl.

 

0C$567

ondiciones iniciales.

     

@AB 17$>22222>2! A-5 0C$17 pus% ax !x dx

onfigurar modo 2 y c como salida y ! como entrada. Enviar al a 0x. uardar contexto.

 

mov dx$&3

@over direccion de &3 a dx.

     

mov mo v al$2ff% out dx$al pop ax !x dx

@over 2ff% a al. Enviar contenido de al a dx. 6ecuperar contexto.

pus% ax !x dx

uardar contexto.

   

mov dx$& mov al$22% out dx$al

@over direccion de & a dx. @over 22% a al. Enviar contenido de al a dx.

 

pop ax !x dx

6ecuperar contexo

 

 

  D;inicio#  

mov al$msgFdiG cmp al$H;H

@over caracter a al. omparar al con ;

je D;inicio* call lcdDdata

Si es igual saltar. 7lamar a lcdDdata

 

inc di

:ncrementa di.

jmp D;inicio

Salta al inicio.

D;inicio*#  

mov al$4=% mov di$2 call lcdDgotoxy

@ueve a al 4=%. @ueve 2 a di. 7lama lcdDgotoxy.

D;msg*#  

mov al$msg*FdiG cmp al$H;H

@over caracter a al. omparar con fin de cadena.

je D;Iait call lcdDdata

Si es igual que salte. 7lamar a lcdDdata.

inc di

:ncrementa di.

jmp D;msg*

Saltar a etiqueta.

 

call retardo*

7lamar a retardo*.

   

jmp

D;rl

Saltar a etiqueta.

call retardo*

7lamar a retardo*.

call lcdDclear mov al$28%

7lamar a lcdDclear. @over a al 28%.

 

D;Iait#

D;rl#  

mov di$2 call lcdDgotoxy

@over a di 2. 77amar a lcdDgotoxy.

mov al$msg=FdiG cmp al$H;H

@over caracter a al. omparar al con fin de caracter.

je D;doIn call lcdDdata

Si es igual saltar a etiqueta. 7lamar a lcdDdata.

inc di jmp D;reloj

:ncrementar di. Saltar a D;reloj.

 

mov al$44% call lcdDgotoxy

@over 44% a al. 7lamar lcdDgotoxy.

 

jmp D;start

Saltar a D;start.

 D;reloj#  

  D;doIn#

  D;start#  

mov al$4)J call lcdDgotoxy mov al$=1J call lcdDdata mov al$41% call lcdDgotoxy mov al$c4

@over 4)J. 7lamar a lcdDgotoxy.

 

 

call num mov al$4K% call lcdDgotoxy

 

mov al$c= call num mov al$4L%

 

call lcdDgotoxy

 

   

@over datos para acomodar. En pantalla

mov al$c* call num mov al$48% call lcdDgotoxy mov al$c> call num jmp D;pr

   

D;pr#    

call lcdDcursoron mov al$41J

 

call lcdDgotoxy jmp D;espera

7lamar a lcdDcursoron. @over 41J a al. 7lamar a lcdDgotoxy. Saltar a etiqueta.

  D;espera#

 

mov dx$&3

Espera entradas de puertos

in al$dx test al$2>%

7eer datos. omparar si son iguales

je D;up test al$24% je D;a!a test al$*2% je D;esca> test al$)2%

Si son iguales saltar.

Salta a selector de @/S

je D;esca+ jmp D;espera

Salta a startMstop

cmp m$>d

omparar m con >.

D;up#

 

je D;esca= call retardo*

Si es igual saltar a conector 7lamar a retardo.

   

mov al$41J call lcdDgotoxy

@over a al 41J. 7lamar a lcdDgotoxy.

 

inc c4 cmp c4$>2

:ncrementar c4. omparar c4 con >2.

je D;up* mov al$c4

Saltar si son iguales. @over c4 a al.

call num jmp D;espera

7lamar a num. Saltar a etiqueta.

 

@ov c4$2 call retardo*

@over un 2 a c4. 7lamar a retardo*

 

mov al$41J

@over 4a% a al.

     

call lcdDgotoxy mov al$c4 call num

7lamar a lcdDgotoxy. @over c4 a al. 77amar a num.

D;up*#

 

   

inc c= mov al$4KJ call lcdDgotoxy

D;noI#    

 

:ncrementar c=. @over 4K% a al. 77amar a lcdDgotoxy.

mov al$c= call num cmp c=$8

@over c= a al. 7lamar a num. omparar c= con 8.

je D;noI

Si es igual saltar a noI.

jmp D;espera

Saltar a esperar.

mov dx$&

@over a dx direccion de &.

mov al$2NN%

@over al 2ff%.

out dx$al call retardo* mov dx$&

Enviar a dx contenido de al. 7lamar a retardo* @over a dx direccion de &.

mov al$2%

@over 2% a al.

out dx$al jmp D;noI

@over contenido de al a ax. Saltar a etiqueta.

D;esca#   jmp D;espera D;esca>#   jmp D;m D;esca=#   jmp D;upm

onectores

D;esca+#   jmp D;sp D;a!a# cmp m$>d

omparar m con >.

 

je D;esca4 call retardo*

   

mov al$41J call lcdDgotoxy

@over a a al 4a%. 7lamar a lcdDgotoxy.

 

dec c4

0ecrementa 0ecrementa c4. omparar c4 con 2.

cmp c4$2

Si son iguales saltar a etiqueta. 77amar a retardo*.

je D;a!a* mov al$c4

Si es cero saltar. @over contenido de c4 a al.

call num jmp D;espera

77amar a numero. Saltar a etiqueta

D;escaa#   jmp D;noI D;a!a*#

Saltar a etiqueta

 

mov c4$K @over un K a c4. call retardo* 7lamar a retardo*. mov al$41J @over a al 4a%.

 

call lcdDgotoxy

7lamar a lcdDgotoxy.

 

mov al$c4 call num dec c=

@over c4 a al. 7lamar a numero. 0ecrementar c=.

 

mov al$4KJ

@over 4K% a al.

 

call lcdDgotoxy mov al$c= call num

7lamar a lcdDgotoxy @over c= a al. 7lamar a funcion

D;a!a=#

cmp c=$2 je D;a!a=

omparar c= con 2. Si es igual saltar.

jmp D;espera

Saltar a etiqueta.

 

mov al$41J

@over 4a% a al.

 

call lcdDgotoxy dec c4

7lamar a lcdDgotoxy. 0ecrementar c4.

 

mov al$c4 call num

@over c4 a al. 7lamar a funcion.

cmp c4$2 je D;escaa

omparar c4 con 2. Si es igual saltar.

jmp D;escar

Saltar a etiqueta.

D;esca4#  

jmp jmp D;a! ;a!am

Salta altar r a etiqu iqueta. eta.

D;upm# call retardo*

7lamar a retardo*.

 

mov al$4LJ

@over 4L% a al.

   

call lcdDgotoxy inc c* cmp c*$>2

7lamar a lcdDgotoxy. :ncrementar c*. omparar c* con >2.

je D;upm* mov al$c* call num

Saltar si es igual. @over c* a al. 7lamar a num.

jmp D;espera

Saltar a etiqueta.

D;escar#   jmp D;espera D;upm*#

Saltar a etiqueta.

mov c*$2 @over un 2 a c*. call retardo* 7lamar a retardo*.    

mov al$4LJ call lcdDgotoxy

@over 4L% a al. 7lamar a lcdDgotoxy.

 

mov al$c*

@over c* a al.

 

call num inc c> mov al$48J

7lamar a etiqueta :ncrementar c>. @over 48% a al.

 

call lcdDgotoxy

77amar a lcdDgotoxy.

mov al$c> call num jmp D;espera

@over c> a al. 7lamar a etiqueta Saltar a etiqueta

D;end#  

mov dx$& mov al$2NN% out dx$al call retardo*

 

mov dx$& mov al$2% out dx$al jmp D;end

@over & a dx. @over 2ff% a al. Enviar a salida. 7lamar a etiqueta. @over & a dx. @over uno 2% a al. Enviar a salida Saltar a etiqueta.

  D;a!am#  

call retardo* call retardo*

7lamar a retardo*. 7lamar a retardo*.

   

mov al$4LJ call lcdDgotoxy

@over 4L% a al. 7lamar lcdDgotoxy.

 

dec c*

0ecrementar c*.

 

cmp c*$2

omparar c* con 2.

je D;a!am* mov al$c* call num

Saltar a etiqueta. @over c* a al. 7lamar a etiqueta

jmp D;espera

Salta a esperar.

 

D;a!am*# mov c*$K

@over K a c*.

 

call retardo* 7lamar a retardo*. call retardo* 7lamar a retardo*.

   

mov al$4LJ call lcdDgotoxy

@over 4L% a al. 7lamar a lcdDgotoxy

 

mov al$c4 call num

@over c4 a al. 7lamar a funcion.

dec c> mov al$48J

0ecrementar c>. @over 48% a al.

call lcdDgotoxy mov al$c>

7lamar a lcdDgotoxy. @over c> a al.

   

call num cmp c>$2

7lamar num. omparar c> con 2.

je D;a!am= jmp D;espera

Si es igual saltar. Saltar a etiqueta.

mov al$4LJ

@over 4L% a al.

D;a!am=#

 

call lcdDgotoxy dec c*

7lamar a lcdDgotoxy. 0ecrementar c*.

 

mov al$c* call num

@over c* a al. 7lamar a etiqueta.

cmp c*$2

omparar c* con 2.

je D;end jmp D;esca

Si es igual saltar. Saltar a etiqueta.

num proc   call deci  call lcdDdata  

7lamar a proceso. 7lamar lcdDdata. 6etornar

ret

num endp D;m#    

call retardo* cmp m$>d je D;m* mov m$>d

7lamar a retardo*. omparar m con >. Si es igual saltar a m*. @over un > a m.

mov al$4L%

@over 4L% a al.

call retardo* call lcdDgotoxy jmp D;espera

7lamar a retardo*. 77amar a lcdDgotoxy Saltar a etiqueta.

D;esca>*#   jmp jmp D;co D;cond ndic icio ione nes s

S Sal alta tar r a co cond ndic icio ione nes. s.

D;m*#

call retardo*    

Saltar a retardo*.

mov m$2d @over 2 a m. mov al$41% @over 4a% con al. call lcdDgotoxy 7lamar a lcdDgotoxy.

 

jmp D;espera

Saltar a etiqueta.

  D;esca8#   jmp lcdDinit

Saltar a etiqueta.

D;sp# D;a!ad# call retardo*

7lamar a retardo*

pus% ax !x cx dx uardar contexto mov dx$&3 @over p! a dx

 

in al$dx

@over dx a al.

test al$)2% je D;para pop ax !x cx dx

omparar al con )2%. Si es igual saltar 6ecuperar contexto.

pus% ax !x dx uardar contexto mov dx$&3 @over &! a dx

 

       

in al$dx test al$42%

uardar entradas. omparar al con 42%

je D;esca>*

Saltar a etiqueta

pop ax !x dx call retardo* mov al$41J

6ecuperar contexo 7lamar a retardo* @over 4a% a al.

 

call lcdDgotoxy

7lamar a lcdDgotoxy

 

dec c4

0ecrementar 0ecrementar c4 @over c4 a al. 7lamar a num

mov al$c4 call num cmp c4$2 je D;a!a*d jmp D;a!ad

omparar c4 con 2 Si es igual saltar Saltar a jmp

D;Iaitt#    

call retardo* jmp D;a!ad

7lamar a retardo* Saltar a etiqueta

D;para#  

 

call retardo* 7lamar a retardo* call retardo* 7lamar a retardo* mov dx$&3 @over p! a con dx in al$dx

Enviar entrada a al.

test al$)2% je D;Iaitt jmp D;para

omparar al con )2% Saltar a etiqueta. Saltar a etiqueta.

 

D;a!a*d#

call retardo*

Saltar a etiqueta

   

mov c4$K mov al$41J call lcdDgotoxy

@over K a c4. @over 4a% a al. 7lamar a lcdDgotoxy

 

mov al$c4

@over c4 a al.

 

call num dec c= mov al$4KJ

77amar a num. 0ecrementar c=. @over 4K% a al.

call lcdDgotoxy mov al$c=

7lamar a lcdDgotoxy @over c= a al.

 

 

call num cmp c=$2 je D;a!a=d

7lamar a num. omparar c= con 2. Saltar si es igual.

jmp D;a!ad

Saltar a etiqueta

D;a!a=d#  

call retardo* mov al$41J

Saltar a retardo*. @over 4a% a al.

 

call lcdDgotoxy dec c4

7lamar a lcdDgotoxy 0ecrementar c4

 

mov al$c4 call num

@over c4 a al. 7lamar a num.

cmp c4$2 je D;fin

omparar c4 con 2 Si es igual saltar.

jmp D;a!a=d

Saltar

jmp D;escal

Saltar a etiqueta.

a etiqueta.

D;escal*#  

D;rn#    

call retardo*

7lamar a retardo*.

mov al$41J call lcdDgotoxy

@over 4a% a al. 7lamar a lcdDgotoxy

mov c4$K mov al$c4

 

call num mov al$4KJ call lcdDgotoxy

@over K a c4. @over c4 a al. 7lamar a num. @over 4K% a al. 7lamar a lcdDgotoxy

mov c=$+

@over + a c=.

mov al$c= call num jmp D;mn

@over c= a al. 7lamar a etiqueta Saltar a etiqueta.

D;mn#

 

cmp c*$2 je D;mn* mov al$4LJ

 

call lcdDgotoxy

7lamar a lcdDgotoxy

 

dec c*

0ecrementar 0ecrementar a c* @over c* a al.

mov al$c* call num cmp c*$2  

je D;escaK jmp D;a!ad

D;oO#  

jmp D;rn

omparar c* con 2 Si es igual saltar @over 4L% a al.

7lamar a num. omparar c* con 2 Si es igual saltar Saltar a etiqueta. Saltar a etiqueta

D;mn*#

 

cmp c>$2

omparar 2 a c>.

je D;escaK> mov c*$K

Saltar a etiqueta. @over K a c*.

call retardo* 7lamar a retardo*. call retardo* 7lamar a retardo*. dec c> 0ecrementar c>.  

mov al$48J

@over 48% a al.

call lcdDgotoxy mov al$c>

7lamar lcdDgotoxy @over a al c>.

 

D;fin#    

call num call retardo* cmp c>$2

77amar a num. 7lamar a retardo* omparar c> con 2

je D;escaK>

Saltar a etiqueta

1ctivar aOi la alarma pus% ax !x dx uardar contexto mov dx$&3   in al$dx  

test al$42% je D;papa

@over p! a dx uardar dx en al omparar al con 42% Si es igual saltar.

 

  pop ax !x dx cmp c>$2

 

jnle D;oO cmp c*$2

Si no es igual saltar. omparar c* con 2.

jnle D;oO

Saltar si no es igual.

mov dx$& mov al$22% out dx$al

 

 

call retardo* call retardo* jmp D;fin*

6ecuperar contexo omparar c> con 2.

@over pc a dx. @over 22 a al. Enviar al a dx. 7lamar retardo* 7lamar retardo* Saltar a etiqueta.

D;papa# jmp D;condiciones D;escaK#   jmp Drn* D;fin*#

Saltar a etiqueta. Saltar a etiqueta.

     

mov dx$& mov al$K2% out dx$al

Saltar a pc. @over K2% a al. Enviar al a dx.

 

call retardo*

7lamar a retardo*.

call retardo* jmp D;fin D;escaK>#  

jmp D;mn=

7lamar a retardo* Saltar a etiqueta. Saltar a etiqueta.

D;escal#    

 

mov dx$&

@over pc a dx

mov al$2NN%

@over 2ff% a al.

out dx$al

Enviar al a dx.

call retardo* mov dx$& mov al$22%

7lamar a retardo* @over pc a dx. @over 22 a al.

out dx$al

@over al a dx.

jmp D;es D;esc cal

Salt Salta ar a etiq tiqueta ueta. .

D;mn=#  

cmp c*$2 je D;fin

omparar c* con 2. Si es igual saltar.

   

mov al$4LJ call lcdDgotoxy

@over 4L% a al. 7lamar a lcdDgotoxy.

mov c*$K

@over K a c*.

mov al$c* call num call %ola

@over c* a al. 77amar a num. 7lamar a %ola.

 

jmp D;a!ad call retardo* jmp D;rn

Saltar a etiqueta. 7lamar a retardo*. Saltar a etiqueta.

%ola proc    

call retardo* mov al$41J

Saltar a retardo* @over 4a% a al.

 

call lcdDgotoxy mov c4$K

7lamar a lcdDgotoxy @over K a c4

mov al$c4 call num  

mov al$4KJ call lcdDgotoxy

   

@over c4 a al. 7lamar a num. @over 4K% a al. 7lamar a lcdDgotoxy

mov c=$+ mov al$c=

@over + a c=. @over c= a al.

call num cmp c*$2

7lamar a num omparar c* con 2.

je D;mn= ret

Si es igual saltar 6etornar.

%ola endp

Drn*# call retardo*

7lamar a retardo*

 

mov al$41J

@over 4a% a al.

 

call lcdDgotoxy

7lamar a lcdDgotoxy

mov c4$K mov al$c4

@over K a c4. @over c4 a al.

call num mov al$4KJ

7lamar a num. @over 4K% a al.

call lcdDgotoxy mov c=$+

7lamar a lcdDgotoxy @over + a c=

mov al$c= call num  

jmp D;a!ad

@over c= a al. 7lamar a num. Saltar a etiqueta.

  lcdDinit proc pus% ax dx mov al$> al$>2 22222 22222 22! mov dx$567 out dx$al call retardo

&1 P & &  c co omo sal salida$ ida$ &3 como entr entra ada onfigurar )*++

Esperar aproximadamente 4ms

call retardo mov dx$&1 call retardo

0ireccion del puerto 1 Esperar aproximadamente 4ms

call retardo mov al$=2% or al$222222>2! out dx$al

and al$>>>>>>2>! out dx$al

omando de inicialización &oner EQ en > Escri!ir a la l0

&oner EQ en 2 y no alterar el adato Escri!ir a la l0

 

call retardo call retardo

Esperar aproximadamente 4ms

call retardo mov al$=2%

omando de inicialización

or al$222222>2!

&oner EQ en >

out dx$al

Escri!ir a la l0

and al$> al$>> >>>>> >>>>2 2>! out dx$al call retardo call retardo

&on &oner EQ en en 2 y n no o a al ltera terar r e el l a ada dat to Escri!ir a la l0 Esperar mas de >22us

mov al$=2%

omando de inicialización

or al$222222>2!

&oner EQ en >

out dx$al

Escri!ir a la l0

and al$> al$>> >>>>> >>>>2 2>! out dx$al

&on &oner EQ en en 2 y n no o a al ltera terar r e el l a ada dat to Escri!ir a la l0

call retardo

Esperar mas de >22us

call retardo mov al$*2%

omando de inicialización

or al$222222>2! out dx$al

&oner EQ en > Escri!ir a la l0

and al$> al$>> >>>>> >>>>2 2>! out dx$al

&on &oner EQ en en 2 y n no o a al ltera terar r e el l a ada dat to Escri!ir a la l0

call retardo

Esperar mas de >22us

call retardo mov al$*)%

:nicilizar 70 con dos lines y +x>2 dots

call lcdDIcmd mov al$2)%

omando de inizializacion

call lcdDIcmd mov al$2>%

Amando de inizializacion

call lcdDIcmd mov al$28% call lcdDIcmd

:ncrementar el cursor y display ena!le

mov al$2f%

Encernder display$ %a!itlar cursor !linOing

call lcdDIcmd mov al$2>% call lcdDIcmd pop dx ax ret lcdDinit endp lcdDgotoxy proc

7impiar la pantalla

 

 

add al$)2%

Sumar )2% a al.

call lcdDIcmd ret

7lamar a lcdDIcmd 6etornar

lcdDgotoxy endp

deci proc  

add al$=2%

  ret deci endp lcdDIcmd proc pus% dx ax mov dx$&1

Salvar contexto 0ireccion del puerto 1

mov a%$al and al$2N2% or al$222222>2! out dx$al and al$>>>>>>2>! out dx$al call retardo mov al$a% rol al$4

o!tener parte mas significativa &oner ena!le en > Escri!ir a 70 &oner ena!le en 2 Escri!ir parte alta del comando a la 70 Esperar mas de >22us 6estaurar comando orginal A!tener parte menos significativa

and al$2N2% or al$222222>2! out dx$al and al$>>>>>>2>! out dx$al call retardo

&oner ena!le en > Escri!ir a 70  &oner ena!le en 2 Escri!ir parte !aja del comando a la 70 Esperar mas de >22us

pop ax dx ret lcdDIcmd endp lcdDdata proc pus% dx ax mov dx$&1

Salvar contexto 0ireccion del puerto 1

mov a%$al

uardar dato original

and al$2N2% or al$222222>>!

o!tener parte mas significativa Ena!le en > P 6S en >

out dx$al and al$>>>>>>2>! out dx$al ca call ll re reta tard rdo o mov al$a% rol al$4

Escri!ir a 70 Ena!le en 2 P 6S en > Escri!ir parte alta del dato a 70 E Esp sper erar ar ma mas s de >2 >22u 2us s 6estaurar dato original A!tener parte menos significativa

and al$2N2% or al$222222>>! out dx$al and al$>>>>>>2>! out dx$al ca call ll re reta tard rdo o

Ena!le en > P 6S en > Escri!ir a 70 Ena!le en 2 P 6S en > Escri!ir parte !aja del dato a 70 E Esp sper erar ar ma mas s de >2 >22u 2us s

 

pop ax dx

6estaurar contexto

ret lcdDdata endp

retardo proc pus% !x pus% cx

salvar registo salvar registo

mov !x$2

inciar un contador en 2

ret2# mov cx$2 ret>#

%acer dos conteos anidados iniciar contador *

inc cx

incrementadr contador *

cmp cx$422 jne ret> inc !x

comparar para ver si se realizo incrementar contador >

cmp !x$> jne ret2 pop cx

%acer el conteo nuevamente

pop !x

restaurar el registro

restaurar el registro

ret retardo endp retardo* proc pus% !x

salvar registo

pus% cx

salvar registo

mov !x$2

inciar un contador en 2

ret2*# mov cx$2

%acer dos conteos anidados iniciar contador *

ret>*# inc cx

incrementadr contador *

cmp cx$>222

comparar para ver si se realizo

jne ret>* inc !x cmp !x$*2 jne ret2* pop cx pop !x ret

incrementar contador > %acer el conteo nuevamente restaurar el registro restaurar el registro

retardo* endp

lcdDcursoron proc pus% cx ax !x mov al$2E%

uardar ontexto @over 2e% a al.

call lcdDIcmd

7lamar a lcdDIcmd

pop cx ax !x ret lcdDcursoron endp

6ecuperar contexo 6etornar

lcdDcursoroff proc pus% cx ax !x mov al$2c%

uardar ontexto @over 2c% a al.

call lcdDIcmd

7lamar a lcdDIcmd

pop cx ax !x ret lcdDcursoroff endp

6ecuperar contexo

 

lcdDclear proc pus% cx ax !x mov al$2>%

uardar ontexto @over 2>% a al.

call lcdDIcmd

7lamar a lcdDIcmd

pop cx ax !x ret

6ecuperar contexo

lcdDclear endp .exit RRRRRRRRR Qo more code afte t%is line  

end

start

Diagrama de Flujo:

 0AS entry point is start

 

Figura #2

Conclusión:

&ara finalizar la práctica se puede concluir que se pudieron cumplir con todos los requisitos planteados al

 

principio de esta ya que se pudo desarrollar un programa que cumpliera con los o!jetivos planteados al inicio de esta.

El microprocesador )2)8$)2)) es un dispositivo que por si solo puede manera ,nicamente operaciones aritm"ticas por lo tanto para para est esta a práct práctica ica se tuvo que ut utilizar ilizar un )*++ el cual es una interfaz mediante la cual se pudieron conectar tantos los !otones a utilizar como la pantalla led y las !ocinas en conjunto con el led.

0espu"s de conectados todos los !otones y dispositivo de salida se procedió a primeramente configurar cada uno de los puertos del )*++ configurando el &1 y & como salida ya que en estos esta!a conectados la pantalla led y las !ocinas los cuales se activa!an en un determinado momento.

El puerto &3 tuvo que configurarse como entrada ya que en este se conectan cada uno de los !otones que i!an a realizar las diversas funciones dentro del programa su!ir$ !ajar$ cam!iar cursor$ start /stop leyendo el puerto con la instrucción :Q y enviando esta lectura a al. &or lo tanto$ despu"s de que al o!tuviera este valor dentro de una función se compara con la instrucción test el contenido de al con la com!inación !inaria que resulta!a al presionar el !otón y cuando resulta!a verdadero saltara a la etiqueta determinada.

  Se procedieron a crear cuatro contadores las cuales i!an a ser aumentados o decrementados por los !otones de -&/0A
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF