Você está na página 1de 9

PRACTICA XIV

Material
 9 resistencias de 220k
 8 LED’s
 PIC628A
 1 push button
 Protoboard
 Software MPLAB
 DIPSWITCH de 8
OBJETIVO
Se pretende diseñar sistemas digitales con ayuda del microcontrolador de la
familia PIC628A, de tal manera así poder reducir costos y espacio dentro de una
tarjeta.

INTRODUCCIÓN

El uso de los microcontroladores se ha hecho común en la actualidad, los


podemos encontrar dentro de múltiples dispositivos para ejecutar una tarea en
específico como por ejemplo celulares, computadoras y otros sistemas digitales.

Desarrollo:
PARTE I
En esta parte se nos pidió implementar una función que nos permita encender los
1 LED’S cuando se presione el push button y el segundo tendrá que parpadear en
un lapso de 500ms. Se debe tomar en cuenta que el ciclo de retardo debe
contener la evaluación del PUSH BUTTON si contiene un cero o un 1 lógico.
1) En esta parte el segundo LED se mantiene parpadeando

2)Al presionar el PUSH BUTTON


Para que la simulación funcione se desarrollo el siguiente código:
; PIC16F628A Configuration Bit Settings

; Assembly source line config statements

#include "p16f628a.inc"

; CONFIG
; __config 0xFF10
__CONFIG _FOSC_INTOSCIO & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF &
_BOREN_OFF & _LVP_OFF & _CPD_OFF & _CP_OFF

;
==========================================================================
=====
CONT1 EQU 0X20
CONT2 EQU 0X21
CONT3 EQU 0X22

;=========================================================================
======
org 00h
GOTO INICIO
org 05h
;
==========================================================================
====
PONER1:
BSF PORTB, 0
RETURN
;
==========================================================================
=====
PONER0:
BCF PORTB, 0
RETURN
;
==========================================================================
=====
RETARDO: MOVLW H'20'
MOVWF CONT3
CALL PREGUN
CICLO3: MOVLW H'66'
MOVWF CONT2
CALL PREGUN
CICLO2: MOVLW H'31'
MOVWF CONT1
CALL PREGUN
CICLO: DECFSZ CONT1, f
GOTO CICLO
DECFSZ CONT2, f
GOTO CICLO2
DECFSZ CONT3, f
GOTO CICLO3
CALL PREGUN
RETURN
;
==========================================================================
=====
PREGUN: BTFSC PORTA, 0 ;SI EL BIT 0 DEL PUERTO A ES 0 SALTA
CALL PONER1 ;ENVIA 1 A PB0
BTFSS PORTA, 0 ;SI EL BIT 0 DEL PUERTO A ES 1 SALTA
CALL PONER0 ;ENVIA 0 A PB0
RETURN
;
==========================================================================
=====
INICIO: MOVLW H'07'
MOVWF CMCON

BSF STATUS, RP0 ;SELECCIONA EL


BCF STATUS, RP1 ;BANCO DE MEMORIA

CLRF TRISB ;DEFINE PB0 COMO SALIDA


CLRF TRISA ;DEFINE PA0 COMO ENTRADA

BCF STATUS, RP0 ;REGRESA AL BANCO CERO

CLRF PORTB

VUELVE:
BSF PORTB, 1

CALL RETARDO

BCF PORTB, 1

CALL RETARDO

GOTO VUELVE

END
PARTE II
En esta parte se nos pidió implementar un sumador de 8 bits que nos permite
ingresar los datos al presionar el PUSH BUTTON
En la simulación de PROTEUS se deben de tomar en cuenta los puertos de la
resistencia donde marca el cero o uno lógico con sus respectivos colores.

Desarrollo del código:


; PIC16F628A Configuration Bit Settings

; Assembly source line config statements

#include "p16f628a.inc"

; CONFIG
; __config 0xFF10
__CONFIG _FOSC_INTOSCIO & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF
& _BOREN_OFF & _LVP_OFF & _CPD_OFF & _CP_OFF

ORG 00H
INICIO
BSF STATUS,RP0
BSF TRISA,0
MOVLW 0FFH
MOVWF TRISB
BCF OPTION_REG,7
BCF STATUS,RP0
MOVLW 07H
MOVWF CMCON

MOVLW 00H
MOVWF 20H

ENTER BTFSS PORTA,0


GOTO ENTER

REBOTE BTFSC PORTA,0


GOTO REBOTE

MOVF PORTB,W
MOVWF 21H

ENTER1 BTFSS PORTA,0


GOTO ENTER1

REBOTE1 BTFSC PORTA,0


GOTO REBOTE1

MOVF PORTB,W
ADDWF 21H,W

BTFSC STATUS,C
INCF 20H,F

BSF STATUS,RP0
CLRF TRISB
BCF STATUS,RP0

MOVWF PORTB

CALL CINCO_SEG

MOVF 20H,W
MOVWF PORTB
CALL CINCO_SEG

FIN GOTO INICIO

CINCO_SEG
MOVLW .118
;MOVLW .60
MOVWF 22H
D3 MOVWF 23H
D2 MOVWF 24H
D1 DECFSZ 24H,F
GOTO D1
DECFSZ 23H,F
GOTO D2
DECFSZ 22H,F
GOTO D3
RETURN

END
CONCLUSIÓN
Los microcontroladores de la familia MICROCHIP cuenta con su propio lenguaje
ensamblador, de esta manera al estar familiarizado con este lenguaje, se nos
permite manipular de manera más sencilla este microcontrolador y ejecutar tareas
específicas.

pgfedcba
11000001
10110000
10011001
11000110
11001000
10000111
10001001
10001100
10000110
10010001

Você também pode gostar