Está en la página 1de 12

UNIVERIDAD TECNOLGICA DE TORREN

SISTEMAS DIGITALES
PRACTICA #9,10,11

EMMANUEL HUMBERTO TORRES COMPEAN


CRISTIAN OMAR RUBIO MURILLO
CESAR EDUARDO SIFUENTES ARELLANO
IVAN ALBERTO VAZQUEZ LOPEZ

MECATRONICA

SMF

3C

Mircoles 13 de Agosto del 2014, Torren, Coah.

Objetivo:
Es implementar una programacin en el PIC 16F877AA para que
realice, ciertas funciones como encendido de un led, frecuencias
etc.
Marco terico:
Los PIC son una familia de microcontroladores tipo RISC fabricados por Microchip Technology
Inc. y derivados del PIC1650, originalmente desarrollado por la divisin
de microelectrnica de general instrument
El nombre actual no es un acrnimo. En realidad, el nombre completo es PICmicro, aunque
generalmente se utiliza como PeripheralInterface Controller (controlador de interfaz perifrico).
El PIC original se dise para ser usado con la nueva CPU de 16 bits CP16000. Siendo en
general una buena CPU, sta tena malas prestaciones de entrada y salida, y el PIC de 8 bits
se desarroll en 1975 para mejorar el rendimiento del sistema quitando peso de E/S a la CPU.
El PIC utilizaba microcdigo simple almacenado en ROM para realizar estas tareas; y aunque
el trmino no se usaba por aquel entonces, se trata de un diseo RISC que ejecuta
una instruccin cada 4 ciclos del oscilador.

Desarrollo de las prcticas


Practica 9
Se realiz el siguiente programa en MPLAP del encendido y apagado de un led con duracin
de 1seg.
list

p=16f877a
#include

; list directive to define processor

<p16f877a.inc>

; processor specific variable definitions

__config _XT_OSC & _WDT_OFF & _CP_OFF & _CPD_OFF & _LVP_OFF &
_BODEN_OFF
CONTADOR:

EQU H'10'

ORG H'00'
GOTO INICIO
ORG H'05'

INICIO:

BCF STATUS,RP0
BCF STATUS,RP1
CLRF PORTB
BSF STATUS,RP0
BCF TRISB,0
BCF STATUS,RP0
BSF PORTB,0

CARGA_ESPERA:

MOVLW H'FA'

MOVWF CONTADOR
ESPERA_1SEG:

CALL ESPERA_4MS

DECFSZ CONTADOR
GOTO ESPERA_1SEG
BCF PORTB,0
MOVLW H'FA'
MOVWF CONTADOR
ESPERA_1SEGN:

CALL ESPERA_4MS

DECFSZ CONTADOR
GOTO ESPERA_1SEGN
GOTO INICIO
ESPERA_4MS:

BCF STATUS,RP0

BCF STATUS,RP1
BCF INTCON,T0IF
MOVLW H'06'
MOVWF TMR0
BSF STATUS,RP0
MOVLW H'00'
MOVWF OPTION_REG
CICLO:

BTFSS INTCON,T0IF

GOTO CICLO
BCF STATUS,RP0
RETURN
END

Si simulacin de la practica en PROTEUS

Practica 10
Se realiz el siguiente programa en MPLAP
list
p=16f877a ; list directive to define processor
#include
<p16f877a.inc> ;
processor
specific
variable
definitions
__CONFIG _WDT_OFF & _XT_OSC &_LVP_OFF & _CP_OFF
_BODEN_OFF
CONTADOR:
EQU H'10'
ORG H'00'
GOTO MAIN
ORG H'05'
MAIN:
BCF STATUS,RP0
BCF STATUS,RP1
CLRF PORTB
BSF STATUS,RP0
CLRF TRISB
BCF STATUS,RP0
MOVLW H'4E'

& _CPD_OFF &

CARGA_C:
ESPERA_1SEGC:

CARGA_R:
ESPERA_1SEGR:

CARGA_I:
ESPERA_1SEGI:

MOVWF PORTB
MOVLW H'FA'
MOVWF CONTADOR
CALL ESPERA_4MS
DECFSZ CONTADOR
GOTO ESPERA_1SEGC
MOVLW H'05'
MOVWF PORTB
MOVLW H'FA'
MOVWF CONTADOR
CALL ESPERA_4MS
DECFSZ CONTADOR
GOTO ESPERA_1SEGR
MOVLW H'06'
MOVWF PORTB
MOVLW H'FA'
MOVWF CONTADOR
CALL ESPERA_4MS
DECFSZ CONTADOR
GOTO ESPERA_1SEGI

MOVLW H'5B'
MOVWF PORTB
CARGA_S: MOVLW H'FA'
MOVWF CONTADOR
ESPERA_1SEGS: CALL ESPERA_4MS
DECFSZ CONTADOR
GOTO ESPERA_1SEGS

CARGA_T:
ESPERA_1SEGT:

MOVLW H'70'
MOVWF PORTB
MOVLW H'FA'
MOVWF CONTADOR
CALL ESPERA_4MS
DECFSZ CONTADOR
GOTO ESPERA_1SEGT

MOVLW H'06'
MOVWF PORTB
CARGA_I2:
MOVLW H'FA'
MOVWF CONTADOR
ESPERA_1SEGI2: CALL ESPERA_4MS
DECFSZ CONTADOR
GOTO ESPERA_1SEGI2

CARGA_A:
ESPERA_1SEGA:

MOVLW H'77'
MOVWF PORTB
MOVLW H'FA'
MOVWF CONTADOR
CALL ESPERA_4MS

DECFSZ CONTADOR
GOTO ESPERA_1SEGA

CARGA_N:
ESPERA_1SEGN:

MOVLW H'15'
MOVWF PORTB
MOVLW H'FA'
MOVWF CONTADOR
CALL ESPERA_4MS
DECFSZ CONTADOR
GOTO ESPERA_1SEGN

MOVLW H'05'
MOVWF PORTB
CARGA_R2:
MOVLW H'FA'
MOVWF CONTADOR
ESPERA_1SEGR2: CALL ESPERA_4MS
DECFSZ CONTADOR
GOTO ESPERA_1SEGR2
MOVLW H'3E'
MOVWF PORTB
CARGA_U: MOVLW H'FA'
MOVWF CONTADOR
ESPERA_1SEGU: CALL ESPERA_4MS
DECFSZ CONTADOR
GOTO ESPERA_1SEGU

ESPERA_4MS:

BCF STATUS,RP0
BCF STATUS,RP1
BCF INTCON,T0IF
MOVLW H'06'
MOVWF TMR0
BSF STATUS,RP0
MOVLW H'03'
MOVWF OPTION_REG

CICLO:

BTFSS INTCON,T0IF
GOTO CICLO
BCF STATUS,RP0
RETURN
END

Practica 11 frecuencias de 5khz y 100hz


Frecuencia de 5khz
list
p=16f877a ; list
processor
#include <p16f877a.inc> ;
variable definitions

directive
processor

to

define

specific

__config
_XT_OSC & _WDT_OFF & _CP_OFF & _CPD_OFF &
_LVP_OFF & _BODEN_OFF
CONTADOR:
EQU
H'10'
ORG
H'00'

INICIO:

CARGA_ESPERA:
ESPERA_1SEG:

ESPERA_1SEGN:

ESPERA_4MS:

CICLO:

GOTO INICIO
ORG
H'05'
BCF STATUS,RP0
BCF STATUS,RP1
CLRF PORTB
BSF STATUS,RP0
BCF TRISB,0
BCF STATUS,RP0
BSF PORTB,0
MOVLW H'04'
MOVWF CONTADOR
CALL ESPERA_4MS
DECFSZ CONTADOR
GOTO ESPERA_1SEG
BCF PORTB,0
MOVLW H'04'
MOVWF CONTADOR
CALL ESPERA_4MS
DECFSZ CONTADOR
GOTO ESPERA_1SEGN
GOTO INICIO
BCF STATUS,RP0
BCF STATUS,RP1
BCF INTCON,T0IF
MOVLW H'FD'
MOVWF TMR0
BSF STATUS,RP0
MOVLW H'00'
MOVWF OPTION_REG
BTFSS INTCON,T0IF
GOTO CICLO
BCF STATUS,RP0
RETURN
END

Simulacin en PROTEUS

Frecuencia de 100hz
list

p=16f877a

; list directive to define processor

#include <p16f877a.inc>
variable definitions

; processor specific

__config _XT_OSC & _WDT_OFF & _CP_OFF & _CPD_OFF &


_LVP_OFF & _BODEN_OFF
CONTADOR:

INICIO:

EQU

H'10'

ORG

H'00'

GOTO

INICIO

ORG

H'05'

BCF STATUS,RP0
BCF STATUS,RP1
CLRF PORTB
BSF STATUS,RP0

BCF TRISB,0
BCF STATUS,RP0
BSF PORTB,0
CARGA_ESPERA:

MOVLW H'EE'
MOVWF CONTADOR

ESPERA_1SEG:

CALL ESPERA_4MS
DECFSZ CONTADOR
GOTO ESPERA_1SEG
BCF PORTB,0
MOVLW H'EE'
MOVWF CONTADOR

ESPERA_1SEGN:

CALL ESPERA_4MS
DECFSZ CONTADOR
GOTO ESPERA_1SEGN
GOTO INICIO

ESPERA_4MS:

BCF STATUS,RP0
BCF STATUS,RP1
BCF INTCON,T0IF
MOVLW H'FE'
MOVWF TMR0
BSF STATUS,RP0
MOVLW H'00'
MOVWF OPTION_REG

CICLO:

BTFSS INTCON,T0IF
GOTO CICLO
BCF STATUS,RP0
RETURN

END

Conclusiones:
Cristian Omar Rubio Murillo
Estas prcticas fueron ms sencillas que las pasadas debido a
que todo se aria por programacin. Memorizando cada operacin se
logr hacer las prcticas que se pidieron para acreditar esta
unidad. En lo personal se me facilita ms la programacin que
estar armando cada practica en fsico.
Emmanuel Humberto Torres Compean
Las prcticas fueron un poco sencillas pero se complicaban un
poco en algunas de las fallas de programacin. La estructura de la
programacin se present con un poco de teora pero al fin
finalizamos usando diferentes configuraciones para lograr el
objetivo de la practica requerida. Espero seguir con este tipo de
programacin PIC ya que si me intereso su contenido
Csar Eduardo Sifuentes Arellano

El PIC es muy sencillos de programar, nosotros nos fuimos con


la finta de que sera ms difcil por la cantidad de cdigos que
hay y todos los bancos y lo que contienen, peor creo que vimos
apenas una pequea parte de lo que es PICS y falta mucho ms por
aprender, la nica prctica difcil, o mejor dicho, que se nos
complic ms, fue la de las frecuencias, al principio no sabamos
cmo ajustarlos, pero despus nos dimos cuenta de que era con las
cuentas y con un contador.
Ivn Alberto Vzquez Lpez
El programar pics me resulto ms sencillo que programar
arduino, ya que aqu vimos cmo funciona internamente, con el
arduino uno nomas se aprende los comandos sin saber el verdadero
funcionamiento interno y es como programar a ciegas, en cambio con
el pic sabes cmo se estn moviendo los bits internamente, las
paracitcas fuon sencillas hasta que se nos peda crear una seal
de x frecuencia, tenamos que estar cambiando las veces que cuenta
el contador y algunos otros datos para que al final saliera la
frecuencia fue muy tedioso pero nos dej un gran aprendizaje,
quizs solo vimos lo bsico , loa ms bsico de lo bsico pero
como quiera ya tenemos las bases para mejorar nuestra habilidad de
programar pics.

También podría gustarte