Você está na página 1de 5

Informe practica de laboratorio decodificador binario a decimal Ing. Oscar Mauricio Galvis L.

01 de SEP de 2010

3er Laboratorio de Microcontroladores Decodificador de Binario a Decimal 0-15 Utilizando el TMR0


Andrea Carolina Duran Duarte, Faysar Mauricio Castaeda Cardona, Jhon Jairo cely Millan, Andrs Eduardo Herrera Nieto Servicio Nacional de Aprendizaje (SENA), Centro Metalmecnico, Titulacin Mecatronica, instrumentacin y control, Bogot, Colombia No de ficha: 459865 accefered@misena.edu.co, fefsdf@misena.edu.co, jescosddfrgfr11@misena.edu.co,
aeaweasdfsdrandez5@misena.edu.co

1.

PROBLEMA

Disear un decodificador de binario a decimal de 0-15 utilizando el TMR0 como temporizador. 2. OBJETIVOS

OPTION. Cada vez que llega al valor FF, vuelve a 00 generando una interrupcin, si se ha autorizado, y contina su ciclo indefinidamente.

3.2. REGISTRO INTCON Cada bit del registro INTCON tiene un significado concreto que se muestra en la siguiente tabla:
GIE EEIE T0IE INTE RBIE T0IF INTF RBIF bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0

2.1. Objetivo General Disear un decodificador de binario a decimal utilizando el microcontrolador PIC16F84A. 2.2. Objetivos Especficos Aplicar y afianzar los conocimientos obtenidos en clase sobre el lenguaje de programacin Assembler. Utilizar el TMR0 del microcontrolador para realizar un retardo o temporizacin. 3. MARCO TERICO [ 1 ]

Bit 7, GIE: Habilitacin global de interrupciones (Global Interrupt Enable).


o 1: Concede el permiso de interrupciones. o 0: Cancela el permiso de las interrupciones.

Bit 6, EEIE: Habilitacin de las Interrupciones de la memoria EEPROM.


o 1: Permite que se produzcan interrupciones

3.1. REGISTRO TMR0 El registro TMR0 (Timer 0) almacena el valor del contador TMR0. Las opciones que controlan este contador residen en el registro OPTION. El registro TMR0 se incrementa en una unidad con cada impulso de reloj seleccionado mediante el registro

debidas al fin de escritura de la EEPROM, etc.


o 0: Este tipo de interrupciones estarn inhibidas.

Bit 5, T0IE: Habilitacin de la interrupcin del temporizador por desbordamiento (Timer 0 Interrupt Enable).

Informe practica de laboratorio decodificador binario a decimal Ing. Oscar Mauricio Galvis L.

01 de SEP de 2010

o 1:

Autoriza las interrupciones debidas al desbordamiento del temporizador. o 0: Interrupcin del temporizador deshabilita de manera que cuando se produzca el flag correspondiente permanecer inactivo. Bit 4, INTE: Habilitacin de la entrada de interrupcin externa (Interrupt Enable) por patilla RB0/INT. o 1: Autoriza las interrupciones provocadas RB0/INT del puerto B. o 0: Interrupcin externa deshabilita de manera que cuando se produzca una interrupcin externa el flag correspondiente permanecer inactivo. Bit 3, RBIE: Habilitacin de las interrupciones del puerto B (RB Interrupt Enable).
o 1: Autoriza las interrupciones provocadas por un

la instruccin especial OPTION. Esta instruccin carga el contenido de W en el registro OPTION.


/RBPU INTEDG T0CS Bit 7 Bit 6 Bit 5 T0SE Bit 4 PSA Bit 3 PS2 PS1 PS0

Bit 2 Bit 1 Bit 0

Bit 7, /RBPU (RB Pull Up). Conexin de las resistencias de polarizacin del Puerto B. Se conectan todas cuando el puerto B actua como entrada.
o 1: Todas las resistencias son desconectadas. o 0: Las resistencias se activan de forma

individual. Bit 6, INTDEG (INTerrupt EDGe). Selecciona el tipo de flanco para la interrupcin externa. Este bit indica el tipo de flanco de la seal externa que ha de provocar una interrupcin en la patilla RB0/INT.
o 1: La interrupcin es producida por el flanco

cambio de estado de las lneas RB4 a RB7 del puerto B. o 0: Interrupcin del puerto B deshabilitada. Bit 2 (flag), T0IF: Bit desbordamiento del TMR0. de interrupcin de

ascendente o de subida.
o 0: La interrupcin es producida por el flanco

descendente o de bajada. Bit 5, T0CS (Timer 0 Signal Source). Seleccin de la fuente de reloj para el TMR0.
o 1: TMR0 se usa en modo contador de los pulsos

o 1: El TMR0 ha rebosado. Se borra por software. o 0: El TMR0 no ha rebosado.

Bit 1 (flag), INTF: Bit de interrupcin de la Entrada de Interrupcin INT (patilla RB0/INT). o 1: La entrada de interrupcin se ha activado (patilla RBO/INT del puerto B). Se borra por software. o 0: No hay interrupcin externa. Bit 0 (flag), RBIF: Bit de interrupcin del puerto B.
o 1: Cambio de estado en una de las lneas de RB4

introducidos a travs de RA4/T0CKI


o 0: TMR0 se usa en modo temporizador haciendo

uso de los pulsos de reloj internos (Fosc/4). Bit 4, T0SE (Timer 0 Signal Edge). Tipo de flanco activo de T0CKI (patilla RA4/T0CKI).
o 1 = El TMR0 se incrementa con el flanco

descendente de la seal aplicada a RA4/T0CK1.


o 0 = El TMR0 se incrementa con el flanco

a RB7 del puerto B. Se borra por software. o 0: Ninguna lnea de RB4 a RB7 del puerto B ha cambiado. 3.3. REGISTRO OPTION El registro OPTION (o registro de opciones) se emplea para programar las opciones del temporizador TMR0, el tipo de flanco con el que se detecta una interrupcin y la activacin de las resistencias de polarizacin del puerto B. Ocupa la posicin 81h de la pgina 1 del banco de registros. Debe escribirse usando
-2-

ascendente. Bit 3, PSA (PreScaler Assignement). Se usa para la asignacin del divisor de frecuencias o Prescaler.
o 1 = El divisor de frecuencia se asigna al WDT. o 0 = El divisor de frecuencia se asigna a TMR0.

Bits 0, 1 y 2, PS0, PS1 y PS2 (Prescaler Rate Select Bits). Configura la tasa del valor del divisor de frecuencia o prescaler. Difiere dependiendo que se haya asignado al TMR0 o al WDT.

Informe practica de laboratorio decodificador binario a decimal Ing. Oscar Mauricio Galvis L.

01 de SEP de 2010

PS2 0 0 0 0 1 1 1 1

PS1 0 0 1 1 0 0 1 1

PS0 0 1 0 1 0 1 0 1

Divisor TMR0 1:2 1:4 1:8 1:16 1:32 1:64 1:128 1:256

; ; ; ; ; ; ; ;

RB7 ---> g RB6 ---> f RB5 ---> a RB4 ---> b RB3 ---> D2 RB2 ---> c RB1 ---> d RB0 ---> e

Siendo RB7 el MSB

Controla el display2

RB0 el LSB

LIST

P=16F84A INCLUDE 0X20 NUM

<P16F84A.INC>

4.

SOLUCIN

CBLOCK ENDC

Para la realizacin del decodificador de binario a decimal se program en assembler el PIC16F84A, utilizando el TMR0 para generar los retardos que permiten mostrar el nmero en los dos displays. Los materiales que se utilizaron para el montaje del decodificador de binario a decimal fueron: 1 PIC16F84A 2 Displays de nodo comn 1 Dipswich 2 Transistores 2N2222A, entre otros. 4.1. DISEO

ORG 00H BSF STATUS,RP0 BCF STATUS,RP1 MOVLW B'11110' MOVWF TRISA MOVLW B'00000000' MOVWF TRISB MOVLW B'11000111' MOVWF OPTION_REG ;Los bits 0,1 y 2 corresponden al divisor de frecuencia, en este ;caso 256 BCF STATUS,RP0 CLRF PORTB INI MOVF MOVWF RRF ANDLW MOVWF MOVLW SUBWF PORTA,W NUM NUM,W D'15' ;NO CAMBIA NUM D'10' NUM,W ; W = NUM - 10

Lista de asignaciones
Smbolo Relativo LSB MSB D1 SEG E SEG D SEG C D2 SEG B SEG A SEG F SEG G Entradas Smbolo Absoluto RA1 RA2 RA3 RA4 Salidas RA0 RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7 PIN 18 1 2 3 17 6 7 8 9 10 11 12 13

; Si C es 1 el resultado es positivo y si es 0 es negativo. BTFSS STATUS,C GOTO MENOR ;Como el nmero es mayor a 9, se coloca 1 en el display MOVLW MOVWF BSF CALL MOVLW SUBWF GOTO ; NUM<10 MENOR MOVLW MOVWF BSF CALL MOVF CALL MOVWF BCF CALL B'11101011' ;UNO PORTB PORTA,0 DELAY D'10' ; NUM-10 NUM,W $+6

Cdigo en Assembler
;Las entradas son los pines RA1 a RA4, y RA0 es una salida que controla el display 1 ;Las salidas al display son en el puerto B, menos RB3 que controla el display 2 ; RA0 ---> D1 Controla el display1

B'10000000' PORTB PORTA,0 DELAY NUM,W TABLA PORTB PORTA,0 DELAY

;CERO

-3-

Informe practica de laboratorio decodificador binario a decimal Ing. Oscar Mauricio Galvis L.

01 de SEP de 2010

GOTO TABLA ADDWF RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW

INI PCL,1 B'10001000' B'11101011' B'01001100' B'01001001' B'00101011' B'00011001' B'00011000' B'11001011' B'00001000' B'00001001'

CONCLUSIONES
;0 ;1 ;2 ;3 ;4 ;5 ;6 ;7 ;8 ;9

Hacer temporizaciones con el TMRO microcontrolador, resulta muy interesante.

del

Siempre en el momento de calcular el tiempo de retardo se debe tener en cuenta la frecuencia de oscilacin y el divisor de frecuencia del TMR0 BIBLIOGRAFA
[1]

;T=1us*(255-TMR0)*Divisor de frecuencia DELAY CLRF MOVLW MOVWF BTFSS GOTO RETURN END INTCON D'224' TMR0 INTCON,2 $-1

http://perso.wanadoo.es/pictob/micropic16f84_2.htm#r egistros_del_pic16f84a

SIMULACIN
DECODIFICADOR DE BINARIO A DECIMAL DE 0-15
VCC

C1
22pF

U1 C2
22pF VCC 16 15 4 OSC1/CLKIN OSC2/CLKOUT MCLR RA0 RA1 RA2 RA3 RA4/T0CKI RB0/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 PIC16F84A 17 18 1 2 3 6 7 8 9 10 11 12 13

8 7 6 5

OFF

ON

1 2 3 4

D1

R 1k

R1
10k

e d c D2 b a f g VCC

Q1
D1 2N2222 D2

Q2
2N2222

a b c d e f g

a b c d e f g

-4-

Informe practica de laboratorio decodificador binario a decimal Ing. Oscar Mauricio Galvis L.

01 de SEP de 2010

Anexo: Diagrama de flujo

Decodificador de Binario a Decimal de 0-15


CONFIGURACIN DE PUERTOS

LIST P=16F84A INCLUDE <P16F84A.INC> CBLOCK 0X20 NUM ENDC ORG 00H BSF BCF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF BCF CLRF STATUS,RP0 STATUS,RP1 B'11110' TRISA B'00000000' TRISB B'11000111' OPTION_REG STATUS,RP0 PORTB

CONFIGURACIN DE PUERTOS INI

RETURN

MOVF MOVWF RRF ANDLW MOVWF MOVLW SUBWF

PORTA,W NUM NUM,W D'15' NUM D'10' NUM,W


SI

TABLA

BTFSS STATUS,C
SI

NO

MOVLW B'11100011' MOVWF PORTB BSF PORTA,0


DELAY

MOVLW B'10000000' MOVWF PORTB BSF PORTA,0


DELAY

ADDWF RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW RETLW

PCL,1 B'10001000' B'11101011' B'01001100' B'01001001' B'00101011' B'00011001' B'00011000' B'11001011' B'00001000' B'00001001'

DELAY

MOVLW D'10' SUBWF NUM,W

MOVF

NUM,W

CLRF MOVLW MOVWF

INTCON D'224' TMR0

TABLA BTFSS INTCON,2 NO

MOVWF PORTB BCF PORTA,0


DELAY

SI RETURN

-5-

Você também pode gostar