Académique Documents
Professionnel Documents
Culture Documents
Unidad Iztapalapa
Secuenciadores y Microprocesadores
Profesor Oscar vila Meja
Prctica 6
Lenin Lpez Manzano
Objetivo
Aplicar los conocimientos adquiridos en clase sobre las instrucciones de
salto para crear un controlador del depsito de lquido de un tanque.
Aplicar los conocimientos adquiridos en clase sobre las instrucciones de
salto para crear 2 programas con las instrucciones estudiadas a fin de
comprender el funcionamiento de dichas instrucciones
Introduccin
Los programas que hemos desarrollado hasta ahora han sido ejecutados en forma
lineal, es decir, con una instruccin secuencialmente a continuacin de otra. Sin
embargo, la mayora de los programas constan de varios ciclos en los que una
serie de pasos se repite hasta alcanzar un requisito especfico y varias pruebas
para determinar qu accin se realiza de entre varias posibles.
Requisitos como ste implican la transferencia de control a la direccin de una
instruccin que no sigue de inmediato de la que se est ejecutando actualmente.
En el lenguaje ensamblador existen las instrucciones de salto, las cuales producen
un cambio en la ejecucin del programa pasando a una nueva posicin, no
secuencial. La direccin del salto se representa con una etiqueta.
El lenguaje ensamblador implementa una representacin simblica de los cdigos
de mquina binarios y otras constantes necesarias para programar
una arquitectura dada de CPU y constituye la representacin ms directa
del cdigo mquina especfico para cada arquitectura legible por un programador.
Un display de 7 segmentos no es otra cosa que 7 leds conectados entre s con su
nodo o su ctodo en comn. Dependiendo del tipo de display ser la manera en
que se enciendan sus segmentos, un display de ctodo comn requiere un 1
lgico para encender mientras que uno de ctodo comn un 0 as que
dependiendo del display que se utilice cambiar la rutina encargada de
controlarlo, pero en cualquier caso al momento de cambiar el tipo de display solo
debemos cambiar los ceros por unos y viceversa.
PROBLEMA 1
Desarrollo
Disear un programa para controlar el nivel del depsito de lquido de la siguiente
figura:
Tres sondas detectoras: SV, Sonda de Vaco (RA0); SLL, Sonda de Llenado
(RA1); SR, Sonda de Rebose (RA2).
Sondas detectoras
Sonda de vaco RA0
Sonda de llenado RA1
Sonda de rebose RA2
Indicadores
Vaco RB0
Llenndose RB1
Lleno RB2
Rebose RB3
Alarma RB4
Bomba 1 RB5
Bomba 2 RB6
Su funcionamiento es:
Cuando ninguna de las sondas est mojada se entiende que el depsito est
vaco y se accionaran las dos bombas. El indicador "Vaco" se iluminar.
Cuando el nivel del lquido toque la sonda de vaco "SV" Seguir llenndose
el depsito con las dos bombas. El indicador "Llenndose" se ilumina.
Cuando el nivel del lquido toque la Sonda de llenado "SLL" Se para la
bomba B2, quedando la bomba B1 activada en modo mantenimiento. El
indicador "Lleno" se ilumina.
Si el nivel del lquido moja la sonda de rebose "SR" se apaga tambin la
bomba B1, quedando las dos bombas fuera de servicio. El indicador
"Rebose" Se enciende.
Cuando se produce un fallo o mal funcionamiento en las sondas de entrada
(por ejemplo que se active la sonda de rebose y no la de vaco) se paran las
dos bombas. El indicador 'Alarma" se ilumina.
Cdigo utilizado
;ZONADEDATOS.......... ;ConfiguracindelPIC16F84A
LIST P=16F84A
INCLUDE<P16F84A.INC> ;EtiquetadelPIC16F84A
__CONFIG_CP_OFF&_WDT_OFF&_PWRTE_ON&_XT_OSC
;ZONADECDIGOS..........
ORG 0 ;Comienzaenladireccincero
Inicio
movlw b'00011111'
Principal
Estado0 ;PasaaEstado0Vaco
movlw b'01100001'
goto ActivaSalida
Estado1 ;PasaaEstado2Llenndose
movlw b'01100010'
goto ActivaSalida
Estado2 ;PasaaEstado2Alarma
movlw b'00010000'
goto ActivaSalida
Estado3 ;PasaaEstado3Lleno
movlw b'00100100'
goto ActivaSalida
Estado4 ;PasaaEstado4Alarma
movlw b'00010000'
goto ActivaSalida
Estado5 ;PasaaEstado5Alarma
movlw b'00010000'
goto ActivaSalida
Estado6 ;PasaaEstado6Alarma
movlw b'00010000'
goto ActivaSalida
Estado7 ;PasaaEstado7Rebose
movlw b'00001000'
ActivaSalida
END
RESULTADOS
PROBLEMA 2
Desarrollo
Display01
Disear un programa para que por el por el display de 7 segmentos conectado al
Puerto B se visualice una de las 26 letras del alfabeto internacional: de la "A" a la
"Z".
Cdigo utilizado
;ZONADEDATOS.......... ;ConfiguracindelPIC16F84A
LIST P=16F84A
INCLUDE<P16F84A.INC> ;EtiquetadelPIC16F84A
__CONFIG_CP_OFF&_WDT_OFF&_PWRTE_ON&_XT_OSC
;ZONADECDIGOS..........
ORG 0 ;Comienzaenladireccincero
Inicio
movlw b'00011111'
Principal
movf PORTA,W ;Leelosswitches.
gotoPrincipal ;Regresaalprincipal
Letra_a_7Segmentos
addwf PCL,F
TABLA
DT 77h,7Ch,39h,5Eh,79h,71h,6Fh,76h,19h,1Eh,7Ah,38h,37h
DT 54h,3Fh,73h,67h,50h,6Dh,78h,1Ch,3Eh,1Dh,70h,6Eh,49h
FINTABLA
END
RESULTADOS
Figura3. Entrada 00000, Salida A
Cdigo
utilizado
;ZONADEDATOS.......... ;ConfiguracindelPIC16F84A
LIST P=16F84A
INCLUDE<P16F84A.INC> ;EtiquetadelPIC16F84A
__CONFIG_CP_OFF&_WDT_OFF&_PWRTE_ON&_XT_OSC
;ZONADECDIGOS..........
ORG 0 ;Comienzaenladireccincero
CBLOCK0X0C
Contador
ENDC
Inicio
movlw0XFF
movwfPORTA;
Principal
movf PORTA,W ;Lecturadelosswitches.
DECIMAL
movlw b'10000000' ;Pasaalestado"DECIMAL"
movwf PORTB
VERCONTADOR
movf Contador,W ;Lecturadelosswitches
call Numero_a_7Segmentos;Llamaalalibrera
return
INCLUDE"C:\Users\alexis\Documents\SCM\proyectos/DISPLAY_7S.INC"
INCLUDE"C:\Users\alexis\Documents\SCM\proyectos/RETARDOS.INC"
END
RESULTADOS
Conclusiones
En conclusin podemos decir que a partir del conocimiento del lenguaje
ensamblador para el PIC16F84A es posible disear cualquier programa con
respuesta a dispositivos en este caso el Display de 7 segmentos y el control de un
depsito de lquido usando la estructuracin adecuada para el desarrollo del
programa.
Al construir la carta ASM o en dado caso su respectiva tabla de verdad de cada
programa fue ms fcil comprender el procedimiento y se puede concluir que es
una herramienta que facilita el diseo de programas en lenguaje ensamblador.