You are on page 1of 3

1

ResumenEn la siguiente prctica se busca aprender a


disear programas en lenguaje ensamblador para
manipular entradas y salidas digitales del micro
controlador que se relacionen con la resolucin de un
algoritmo. Para ello aprenderemos a manipular y a
procesar las entradas y salidas digitales del mismo y
adems aprenderemos a conectar perifricos digitales al
micro controlador, tales como lo son los pulsadores,
interruptores, leds, etc.

I. SEMANA 1
Elabore una aplicacin con el PIC16F887 que incremente
un contador Cont desde 0 a 14, de forma cclica (despus de
tener el
valor 14 debe tener el valor 0, 1, 2 y as sucesivamente), dicho
ciclo de incremento de Cont se efectuar despus que el
usuario
accione un switch S; cuando el usuario presione el pulsador
P la cuenta se detendr, se mostrar el valor de Cont y se
encender un led L. El led L estar ubicado en el pin RC1,
el switch S en el pin RA5 y el pulsador P en el pin RA4. Al
comenzar la ejecucin del programa el led L debe estar
apagado. Se volver a efectuar el incremento de Cont cuando
el switch
S se vuelva a accionar.

Cdigo

;///////////////
;///CONTADOR////
;///////////////

LIST P=16F887
#INCLUDE<P16F887.INC>

cont EQU 0x20
aux EQU 0x21

ORG 0x00
GOTO inicio
ORG 0x05

inicio
BCF INTCON, GIE
BSF STATUS, RP0
CLRF TRISC
CLRF PORTC
CLRF TRISA
CLRW
ADDWF cont
MOVLW 0XFF
MOVWF TRISA

BSF STATUS, RP1

CLRF ANSEL
CLRF ANSELH

BCF STATUS,RP0
BCF STATUS,RP1
CLRF cont

comienzo
CLRF PORTC
BCF PORTC,1
BTFSC PORTA,5
GOTO comienzo
GOTO contar

contar
INCF cont, 1
MOVFW cont
BTFSS PORTA,4
GOTO pulsador
GOTO comprobar

comprobar
BTFSS cont,3
GOTO contar
BTFSS cont,2
GOTO contar
BTFSS cont,1
GOTO contar
CLRF cont
CLRF aux
GOTO comienzo

pulsador
MOVF cont,W
MOVWF aux
RLF aux
RLF aux
BSF aux,1
MOVF aux,W
MOVWF PORTC
BSF aux,1
BSF PORTC,1
GOTO esperar

esperar
BTFSS PORTA,4
GOTO esperar
GOTO comienzo

GOTO inicio


END





Informe Prctica 1
Andryk Pereira C.I 23.801.756, Facultad de Ingeniera
Universidad de Carabobo

2
Diagrama de Flujo



Implementado en Proteus






I. SEMANA 2

Se desea modificar la aplicacin de la semana anterior para
implementar un juego de azar basado en un generador de
nmeros
Aleatorios y la entrada del usuario. El circuito a emplear se
muestra en la figura 2.
El switch s, el pulsador p y el led l permanecen
conectados en los mismos pines que la semana anterior.
Cuando se inicia el programa, mediante el accionamiento del
switch s, el led l se enciende para sealizar que el usuario
debe
Comenzar a jugar, introduciendo un nmero binario de 3 bits
en los pines ra2, ra1, ra0, el cual llamaremos ent.
Una vez encendido l y mientras p permanece sin presionar
(y el usuario est presumiblemente configurando los switches
ra3
A ra0), el micro incrementa constantemente un contador
mediante un registro que denominaremos cnt. Cuando el
usuario finaliza de ajustar la entrada, procede a presionar p,
y en este momento:
(1) se detiene la cuenta cnt
(2) se apaga el led l
(3) se calcula el doble del valor de ent
Si el resultado referido en (3) es menor a cnt, el jugador gana.
En este caso se prende el led g (ubicado en el pin rc0). Si es
Mayor o igual que cnt, entonces el jugador pierde (no se
enciende g). En ambos casos, gane o pierda, el valor de cnt
se Mostrar en los pines de salida rc5 ... Rc2. La salida se
mantiene as hasta que se presione el switch s nuevamente y
se Encienda el led l (y se pondrn en cero nuevamente los
restantes bits del puerto c).

Cdigo

LIST P=16F887
; ARCHIVO TIPO INCLUDE, QUE CONTIENE LOS
NOMBRES SIMBLICOSDE LOS REGISTROS PROPIOS
DEL PIC UTILIZADO
#INCLUDE <P16F887.INC>
CONT EQU 0X20
UP EQU 0X00
DOWN EQU 0X01
ORG 0X00
GOTO CONFIGURACION
ORG 0X05
CONFIGURACION
BSF STATUS,RP0 ; SE ESCOGE EL BANCO 1
MOVLW 0XFF ; PROGRAMACIN DEL PUERTO A
MOVWF TRISA
CLRF TRISC
BSF STATUS,RP1 ; SE ESCOGE EL BANCO 3
CLRF ANSEL ; PINES DE PORTA PARA SEALES
DIGITALES
CLRF ANSELH
BCF STATUS,RP0
BCF STATUS,RP1 ; SE ESCOGE EL BANCO PARA
OPERAR
BCF INTCON,GIE ; INHABILITACIN DE LAS
INTERRUPCIONES
MOVLW 0X09
MOVWF CONT
CLRF PORTC
INICIO
BTFSS PORTA,UP
GOTO DECREMENTAR
GOTO AUMENTAR
DECREMENTAR
BTFSS PORTA,DOWN
GOTO INICIO
GOTO BAJAR
AUMENTAR
INCF CONT,F
MOVLW 0X10
SUBWF CONT,W
BTFSS STATUS,Z
GOTO MOSTRAR
GOTO RESET_INICIO
BAJAR
DECF CONT,F
MOVLW 0X09
SUBWF CONT,W
BTFSS STATUS,Z

3
GOTO MOSTRAR
GOTO RESET_FINAL
RESET_INICIO
MOVLW 0X0A
MOVWF CONT
GOTO MOSTRAR
RESET_FINAL
MOVLW 0X0F
MOVWF CONT
GOTO MOSTRAR
MOSTRAR
MOVF CONT,W
MOVWF PORTC
GOTO INICIO
END

Diagrama de flujo





Implementado en proteus









II. Conclusiones

En esta prctica aprendimos a manipularlas entradas y salidas
digitales del micro controlador diseando los algoritmos
necesarios, tambin aprendimos a conectar perifricos
digitales en el mismo.

Pudimos tambin ver como con simples algoritmos y el uso
correcto de las entradas y salidas digitales del micro
controlador podemos utilizar este para muchsimas
aplicaciones.