Sei sulla pagina 1di 6

INSTITUTO TECNOLÓGICO DE DURANGO

INGENIERÍA MECATRÓNICA

MICROCONTROLADORES

PRÁCTICA 3

“ Manejo de Puertos E/S, manejo de leds y pulsadores “

Profesor : M.C. Jesús Montesinos Meraz 02/Octubre/2013


Objetivo de la Práctica : Esta práctica consiste en entender como desarrollar programas
en lenguaje ensamblador para trabajar con pulsadores y leds para los microcontroladores
PIC

Material utilizado:
Programa MPLAB para editar y compilar programas, además del software de simulación
PROTEUS .

Desarrollo de la Práctica :

1.- Usando MPLAB y compile el siguiente programa.

2.- Usando el programa ISIS del Proteus desarrolle los esquemáticos incluidos en esta
práctica.

3.- Una vez compilado (ensamblado) el programa y hecho el esquemático simule el


programa bajando el archivo .HEX y cargándolo en PROTEUS.
Este programa se grabó como rledslib.asm

;Programa que al presionar un pulsador conectado a RA0


;inicia una rotación de 8 leds de IZQ-DER, DER-IZQ. Y
;si se presiona otro pulsador conectado a RA1, la prueba
;se detiene mostrando todos los leds encendidos conectados
;al Puerto C. Este programa llama a la librería rotacion.INC

;*********CONFIGURACIONES**********

#INCLUDE <P16F877.INC>

__CONFIG _WDT_OFF&_CP_OFF&_XT_OSC

LIST P=16F877

;*********CONTADORES PARA EL RETARDO*************

CBLOCK 20H
ENDC

ORG 0
GOTO INICIO

;*********INICIALIZAR PUERTOS********************

ORG 5
INICIO
BSF STATUS,RP0 ; Selección de Banco 1
BCF STATUS,RP1
MOVLW B'00000011'
MOVWF TRISA ; RA0,RA1=Entrada
CLRF TRISC ; Puerto C =Salida
MOVLW B'00000110' ; Desconectar Conv A/D
MOVWF ADCON1 ; Puerto A= E/S digitales
BCF STATUS,RP0 ; Selección de Banco 0
CLRF PORTC ; Limpiar Puerto C

;*********SENSADO DE PULSADOR******************

SENSAR
BTFSS PORTA,0
GOTO ROTAR
GOTO SENSAR
ROTAR
CALL ROTIZQ_DER
GOTO SENSAR
INCLUDE <rotacion.inc>
END
Esta librería se grabó como rotación.inc

;**********LIBRERIA DE ROTACION*********

CBLOCK
CONT1
CONT2
CONT3
DATOS
ENDC

ROTIZQ_DER
BCF STATUS,C
MOVLW B'10000000'
MOVWF DATOS
MOVWF PORTC
BTFSC DATOS,0
GOTO ROTDER_IZQ
CALL RETARDO
CALL PARO

ROTARI_DER
RRF DATOS,1
MOVF DATOS,0
MOVWF PORTC
BTFSC DATOS,0
GOTO ROTDER_IZQ
CALL RETARDO
CALL PARO
GOTO ROTARI_DER

ROTDER_IZQ
BCF STATUS,C
MOVLW B'00000001'
MOVWF DATOS
MOVWF PORTC
BTFSC DATOS,7
GOTO ROTIZQ_DER
CALL RETARDO
CALL PARO

ROTARD_IZQ
RLF DATOS,1
MOVF DATOS,0
MOVWF PORTC
BTFSC DATOS,7
GOTO ROTIZQ_DER
CALL RETARDO
CALL PARO
GOTO ROTARD_IZQ

;********* RETARDO************

RETARDO
CLRF CONT1
CLRF CONT2
MOVLW 2
MOVWF CONT3
DECFSZ CONT1,1
GOTO $-1
DECFSZ CONT2,1
GOTO $-3
DECFSZ CONT3,1
GOTO $-5

RETURN

;*********RUTINA DE PARO********

PARO
BTFSS PORTA,1
GOTO PARAR
GOTO REGRESAR
PARAR
MOVLW B'11111111'
MOVWF PORTC
GOTO SENSAR
REGRESAR
RETURN
D1

D2

R1 U1
9 21 D3
10k OSC1/CLKIN RB0/INT
10 22
OSC2/CLKOUT RB1
1 23
SW1 MCLR/Vpp/THV RB2
24
2
RB3/PGM
25 D4
RA0/AN0 RB4
SW -SPST-MOM 3 26
RA1/AN1 RB5
4 27
RA2/AN2/VREF- RB6/PGC
5 28
6
RA3/AN3/VREF+ RB7/PGD D5
RA4/T0CKI
R2 7
RA5/AN4/SS RC0/T1OSO/T1CKI
11
10k 12
RC1/T1OSI/CCP2
13
RC2/CCP1
14 D6
RC3/SCK/SCL
15
RC4/SDI/SDA
16
RC5/SDO
17
RC6/TX/CK
18
D7
SW2 RC7/RX/DT
PIC16F876
D8
SW -SPST-MOM

Potrebbero piacerti anche