Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LABORATORIO DE
MICROCONTROLADORES
Informe #3:
Subrutinas y pulsadoras
Profesor:
Ing. Vctor Asanza
REALIZADO POR:
Estefania Banchn Len
Maricela Elaje Acevedo
PARALELO:
Fecha de presentacin:
13/05/2014
OBJETIVO:
Comprender
el
uso
de
instrucciones
de
PARTE 1
a) ESPECIFICACIONES:
En este ejercicio se realiza el desplazamiento de leds y cuando se
presiona la botonera se detiene el desplazamiento.
b) CDIGO P3A_RA.ASM:
;**********************************************************
;
USO DE SUBRUTINAS Y PULSADORES
;**********************************************************
;
NOMBRE:
p3a_ra.asm
;
FECHA:
14/06/2010
;
VERSION:
1.00
;**********************************************************
LIST
INCLUDE
p=16F887
P16F887.INC
;Tipo de microcontrolador
;Define los SFRs y bits del
;P16F887
-302
;Deshabilita mensajes de
;advertencia por cambio
;bancos
;***********************************************************************
;
Header
;***********************************************************************
;************* DEFINING VARIABLES **************************************
cblock
counter1
counter2
endc
0x20
;
;
;
;
Block of
Variable
Variable
Block of
0x00
ANSEL
ANSEL
ANSELH
TRISB
TRISB
outputs
movlw
movwf
B'00000010'
TRISA
; Pin RA1 is input
banksel
movlw
movwf
PORTB
; Selects bank containing register TRISB
B'00000001'
; Writes 1 to register W
PORTB
; Number is moved to PORTB
rlf
call
PORTB,f
DELAY
btfss
goto
PORTA,1
loop3
loop
loop
loop3
"loop3"
goto
; End of program
PARTE 2
c) ESPECIFICACIONES:
En
esta
parte
de
la
prctica
se
har
uso
d) CDIGO P3B_RA.ASM:
;*********************************************************
;DESPLAZAMIENTO DE LEDS
;*********************************************************
;
NOMBRE:
p3b_ret.asm
;
FECHA:
31/05/2010
de
un
sw
;
VERSION:
1.00
;*********************************************************
LIST
INCLUDE
p=16F887
P16F887.INC
;Tipo de microcontrolador
;Define los SFRs y bits del
;P16F887
0x20
counter1
counter2
counter3
endc
;********************************************************
;INICIO DEL PROGRAMA
org
0x00
;SETEO DE PUERTOS
banksel
clrf
clrf
banksel
clrf
clrf
clrf
bsf
banksel
ANSEL
ANSEL
ANSELH
TRISB
TRISB
TRISC
TRISD
TRISA,0
PORTB
; selecciona banco que contiene
;INICIALIZACION DE VARIABLES
clrf
PORTB
clrf
PORTC
clrf
PORTD
clrf
counter1
bcf
STATUS,0
;DESARROLLO DEL PROGRAMA
inicio
btfss
goto
PORTA,0
sube
movlw
movwf
movwf
movlw
movwf
0x10
PORTB
PORTD
0x3C
PORTC
rlf
movf
andlw
iorwf
bcf
rlf
PORTB,f
STATUS,W
0x01
PORTB,f
STATUS,0
PORTC,f
baja
baja2
movf
andlw
iorwf
bcf
rlf
movf
andlw
iorwf
bcf
call
btfsc
goto
STATUS,W
0x01
PORTC,f
STATUS,0
PORTD,f
STATUS,W
0x01
PORTD,f
STATUS,0
DELAY2
PORTA,0
baja2
movlw
movwf
movwf
movlw
movwf
0x08
PORTB
PORTD
0x3C
PORTC
rrf
swapf
andlw
addlw
andlw
iorwf
bcf
rrf
swapf
andlw
addlw
andlw
iorwf
bcf
rrf
swapf
andlw
addlw
andlw
iorwf
bcf
call
btfss
goto
goto
PORTB,f
STATUS,w
0x10
0x70
0x80
PORTB,f
STATUS,0
PORTC,f
STATUS,w
0x10
0x70
0x80
PORTC,f
STATUS,0
PORTD,f
STATUS,w
0x10
0x70
0x80
PORTD,f
STATUS,0
DELAY2
PORTA,0
sube2
baja
movlw
movwf
.10
counter3
movlw
movwf
.57
counter2
movlw
movwf
.57
counter1
decfsz
counter1
goto
loop5
decfsz
counter2
sube
sube2
DELAY2
loop3
loop4
loop5
; Decrements variable "counter1"
by 1
; Result is not 0. Go to label
loop5
; Decrements variable "counter2" by
1
goto
loop4
; Result is not 0. Go to lab loop4
decfsz
counter3
goto
loop3
return
; Return from subroutine "DELAY2"
;********************************************************************
end
; Fin del programa
;*****************************************************
INTEGRANTE 1: ______________________________
INTEGRANTE 2: ______________________________
PARALELO: _____
GRUPO: _____
RESPONDER
1)
2)