practica nº 5

Anuncio
Pedro Guerrero Amado.Marzo 2002
PRACTICA 5
REALIZAR ENCENDIDO ALTERNATIVO DE LOS
OCHO DIODOS LED
DESCRIPCIÓN.
En esta práctica vamos a realizar el encendido alternativo de los diodos leds de la
puerta B. Para ellos iremos activando las salidas de la puerta B alternativamente. Entre
encendido de uno y otro llamaremos a una rutina de retardo.
Vamos a dar dos programas fuentes, uno más largo utilizando las rutinas de mover
datos y otro más sencillo utilizando la instrucción de rotar bits.
PROGRAMAS FUENTE.
Listado 1
;
encendido alternativo de los ocho diodos led
LIST P=PIC16F84
LIST C=132
#DEFINE banco1 bsf 0x03,5
#DEFINE banco0 bcf 0x03,5
;DECLARACION REGISTROS Y VARIABLES
porta EQU 0x05
portb EQU 0x06
trisa EQU 0x5
trisb EQU 0x6
status EQU 0x03
tm0 EQU 0x1
cont1 EQU 0xc
cont2 EQU 0dh
uno EQU 0xe
w
EQU 0
f
EQU 1
ORG 0
GOTO inicio ; salvamos el vector de interrupción
ORG 5
inicio
banco1
; seleccionamos banco 1 de registros
CLRF trisb ; ponemos trisb a 0, puerta B como salidas
MOVLW 0x1f
MOVWF trisa ;ponemos a como entradas
Pedro Guerrero Amado.Marzo 2002
banco0
principal
; seleccionamos banco 0
CLRF portb ; ponemos todas las salidas a 0
CALL retardos
MOVLW 0x1
MOVWF portb
;
CALL retardos
MOVLW 0x2
MOVWF portb
CALL retardos
;
MOVLW 0x4
MOVWF portb
CALL retardos
;
MOVLW 0x8
MOVWF portb
CALL retardos
;
MOVLW 0x10
MOVWF portb
CALL retardos
;
MOVLW 0x20
MOVWF portb
CALL retardos
;
MOVLW 0x40
MOVWF portb
CALL retardos
;
MOVLW d'128'
MOVWF portb
CALL retardos
;
MOVLW 0xff
MOVWF portb
CALL retardos
;
MOVLW 0x0
MOVWF portb
CALL retardos
;
MOVLW 0xff
MOVWF portb
;
Pedro Guerrero Amado.Marzo 2002
;
CALL retardos
GOTO principal
RUTINA DE RETARDO DE APROXIMADAMENTE 0.2sg * valor de uno
retardos
MOVLW
0xff ;MOVEMOS FF A W Y cargamos
MOVWF cont1
;cont1 y cont2 con ff
MOVWF cont2
;
MOVLW 0x2 ;
MOVWF uno ;igual
bucle
DECFSZ
cont1,f ;decrementamos cont1, si es 0 saltamos.
GOTO bucle ;sino volvemos a bucles
DECFSZ
cont2,f ;igual pero con cont2
GOTO bucle ;
DECFSZ uno,f
GOTO bucle
RETURN
END
Listado 2
;
encendido alternativo de los ocho diodos led
LIST P=PIC16F84
LIST C=132
#DEFINE banco1 bsf 0x03,5
#DEFINE banco0 bcf 0x03,5
;DECLARACION REGISTROS Y VARIABLES
porta
portb
trisa
trisb
status
tm0
cont1
cont2
uno
w
f
EQU 0x05
EQU 0x06
EQU 0x5
EQU 0x6
EQU 0x03
EQU 0x1
EQU 0xc
EQU 0dh
EQU 0xe
EQU 0
EQU 1
Pedro Guerrero Amado.Marzo 2002
ORG 0
GOTO inicio ; salvamos el vector de interrupción
ORG 5
inicio
banco1
; seleccionamos banco 1 de registros
CLRF trisb ; ponemos trisb a 0, puerta B como salidas
MOVLW 0x1f
MOVWF trisa ;ponemos a como entradas
banco0
; seleccionamos banco 0
principal
CLRF portb ; ponemos todas las salidas a 0
CALL retardos
MOVLW 0x1
MOVWF portb
;
CALL retardos
vuelve
RLF portb, f
CALL retardos
GOTO vuelve
;
RUTINA DE RETARDO DE APROXIMADAMENTE 0.2sg * valor de uno
;
Aquí irían las instrucciones de la rutina de retardo que ya conocemos.
Descargar