hola

Páginas: 32 (7780 palabras) Publicado: 31 de octubre de 2013
;
;
PRACTICA 1
;
;
Autor: Mikel Etxebarria
;
(c) Microsystems Engineering (Bilbao)
;
;
;Leer el estado de los 5 interruptores E0-E4 conectados a RA0-RA4 y reflejar el nivel lógico de
;los mismos sobre los leds S0-S4 conectados en RB0-RB4
List
p=16F84
include "P16F84.INC"
con los nombres

;Tipo de procesador
;Incluye el fichero P16F84.INC que contiene la definición
;de losregistros internos

org
goto

Loop

;Vector de Reset

org
Inicio

0x00
Inicio
0x05

;Salva el vector de interrupción

clrf
bsf
clrf
movlw
movwf
bcf

PORTB
STATUS,RP0
TRISB
b'00011111'
TRISA
STATUS,RP0

;Borra los latch de salida
;Selecciona banco 1 de la memoria de datos
;Puerta B se configura como salida

movf
movwf
goto

PORTA,W
PORTB
Loop

;Leer lasentradas RA0-RA4
;Reflejar en las salidas
;Bucle sin fin

end

;Puerta A se configura como entrada
;Selecciona banco 0 de la memoria de datos

;Fin del programa fuente

;
;
PRACTICA 2
;
;
Autor: Mikel Etxebarria
;
(c) Microsystems Engineering (Bilbao)
;
;Una lámpara conectada en RB0 se controla mediante dos interruptores conectados en RA0 y RA1.
;Cuando cualquiera de losinterruptores cambie de estado, la lámpara también lo hará.
List
p=16F84
include "P16F84.INC"
Temp

;Tipo de procesador
;Incluye el fichero P16F84.INC que contiene la definición
;con los nombres de los registros internos
;Variable temporal que se almacena en la posición 0x0c

;Salva el vector de interrupción

clrf
bsf
clrf
movlw
movwf
bcf

PORTB
STATUS,RP0
TRISB
b'00000011'
TRISASTATUS,RP0

;Borra los latch de salida
;Selecciona banco 1 de la memoria de datos
;Puerta B se configura como salida

Temp

;Pone a 0 el registo o variable temporal

movf
andlw

PORTA,W
b'00000011'

;Leer el estado de la puerta A
;Filtra la información leída y nos quedamos con el estado

Temp
STATUS,Z
Apagar
b'00000001'
Temp,W
STATUS,Z
Encender
b'00000010'
Temp,W
STATUS,ZEncender

;Almacena temporalmente
;RA0=0 y RA1=0 ??
;Si, la lámpara se apaga

bcf

PORTB,0

;No, la lámpara se apaga

goto
Encender

0x05

movwf
btfsc
goto
movlw
subwf
btfsc
goto
movlw
subwf
btfsc
goto
Apagar

;Vector de Reset

clrf

de RA0 y RA1

0x00
Inicio

org

Loop

0x0c

org
goto

Inicio

equ

Loop

bsf

PORTB,0

goto

Loop

end;RA0 y RA1 se configuran como entrada
;Selecciona banco 0 de la memoria de datos

;RA0=1 y RA1=0 ??
;Si, la lámpara se enciende
;RA0=0 y RA1=1 ??
;Si, la lámpara se enciende

;La lámpara se enciende

;Fin del programa fuente

;
;
PRACTICA 3
;
;
Autor: Mikel Etxebarria
;
(c) Microsystems Engineering (Bilbao)
;
;Programa combinacional
;
;Según el estado de losinterruptores RA0 y RA1, activar los
;puerta B, conforme a la siguiente tabla de la verdad:
;
;
RA1
RA0
RB7
RB6
RB5
RB4
;
------;
0
0
1
0
1
0
;
0
1
0
1
0
1
;
1
0
0
0
0
0
;
1
1
1
1
1
1

leds RB0-RB7 conectados a la
RB3
-1
0
1
0

RB2
-0
1
1
0

RB1
-1
0
1
0

RB0
-0
1
1
0

Loop:

0x00
Inicio

;Vector de Reset

org
Inicio

;Tipo deprocesador
;Incluir la definición de los registros internos
;Variable temporal

org
goto

Temp

List
p=16F84
include "P16F84.INC"
equ
0x0c

0x05

;Salva el vector de interrupción

clrf
bsf
clrf
movlw
movwf
movlw
movwf
bcf

PORTB
STATUS,RP0
TRISB
b'00001001'
OPTION_REG
b'00000011'
TRISA
STATUS,RP0

;Borra los latch de salida
;Selecciona banco 1
;Puerta B se configuracomo salida

clrwdt
movf
andlw
movwf
btfsc
goto
movlw

PORTA,W
b'00000011'
Temp
STATUS,Z
Secuencia_00
b'00000001'

;Preescaler de 1:2 asociado al WDT
;RA0 y RA1 se configuran como entrada
;Selecciona banco 0
;Refrescar el WDT
;Carga el valor de la PUERTA A
;Filtra el estado de RA0 y RA1
;Almacena temporalmente
;Están a 00 ?
;Si

subwf
btfsc
goto
movlw
subwf...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • hola hola hola hola
  • hola hola hola hola hola
  • hola hola hhola hola y hola
  • hola hola hola
  • Hola Hola Hola
  • Hola Hola Hola
  • hola hola hola
  • Hola hola

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS