Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador

8
> UNIVERSIDAD SANTO TOMAS FACULTAD DE INGENIERÍA ELECTRÓNICA TÉCNICAS DIGITALES II < 1 AbstractThis guide presents the develop of the laboratory number 8, in where we are going to study about the main aspects of EEPROM memory, the applications of the TIMER0, like counter, prescaler and frequencimeter. The students we will learn more about the EEPROM. Index TermsEEPROM. PRESCALER, TIMER0, Option register, counter. I. INTRODUCCIÓN N algunos proyectos es necesario guardar la información que se genera durante el proceso de una forma permanente, es decir, esos datos han de permanecer incluso cuando el sistema se desconecta de la alimentación. Para realizar esta función los microcontroladores PIC disponen de un área de datos EEPROM no volátil que se describe en la primera parte de esta guía. En la segunda parte se enfoca hacia los sistemas digitales que necesitan un estricto control de tiempos que duran sus distintas acciones. En todos los programas diseñados hasta ahora esto se ha realizado mediante una subrutina de retardo. Otro procedimiento más eficaz y preciso consiste en la utilización de un Timer. II. MEMORIA EEPROM DE DATOS El PIC16F877A dispone de una zona de 256 bytes de memoria EEPROM para almacenar datos que no se pierden al desconectar la alimentación. Esto es muy útil ya que permite guardar datos permanentemente. Como cualquier otra memoria EEPROM se pueden realizar dos tipos de operaciones: Desarrollo de la guía de laboratorio, presentada el 19 de Octubre, 2010. Este laboratorio presenta los principales aspectos relacionados con el manejo de TMR0, la memoria EEPROM y de la misma manera presenta algunos aspectos referentes a él Modulo LCD. Pardo V. Daniel Andrés. Estudiante de ingeniería electrónica de la Universidad Santo Tomas, Seccional Tunja (e-mail: [email protected] ) Delgado S. Juan Carlos. Estudiante de ingeniería electrónica de la Universidad Santo Tomas, Seccional Tunja.(e-mail: [email protected] ) Caro P. Jevis Yamid. Estudiante de ingeniería electrónica de la Universidad Santo Tomas, Seccional Tunja.(e-mail: [email protected] ) Operación de lectura. Operación de escritura o grabación. Un ciclo de grabación en una posición EEPROM de datos dura unos 10 ms, un tiempo muy elevado para la velocidad del procesador, que se controla mediante un temporizador interno. Al escribir en una posición de memoria ya ocupada automáticamente se borra el contenido que había y se introduce el nuevo dato, por lo que no hay comando de borrado. III. EL TIMER 0 (TMR0) Un timer se implementa por medio de un contador que determina un tiempo preciso entre el momento en que el valor es cargado y el instante en el que se produce su desbordamiento. Un timer típico se describe de forma simplificada en fig.1. Consiste en un contador ascendente (también podría ser descendente) que, una vez inicializado con un valor, su contenido se incrementa con cada impulso de entrada hasta llegar a su valor máximo b’11111111’, desbordando y volviendo a comenzar desde cero. Fig.1. Esquema simplificado de un timer El PIC16F877A dispone de 3 Timer dentro de los cuales uno de los principales es denominado Timer 0 o TMR0 se inicializa con un valor, que se incrementa con cada impulso de entrada hasta su valor máximo b’11111111’; con el siguiente impulso de entrada el contador se desborda pasando a valer b’00000000’, circunstancia que se advierte mediante la activación del flag de fin de contaje T0IF localizado en el registro INTCON. Los impulsos aplicados al TMR0 pueden provenir de los pulsos aplicados al pin T0CKI o de la señal de reloj interna (Fosc/4), lo que le permite actuar de dos formas diferentes Fig.2. Como contador de los impulsos que le llegan por el pin RA4/T0CKI Como Temporizador de Tiempos. Practica de Laboratorio # 8 EEPROM de Datos y TMR0 Contador y Temporizador Pardo. Daniel Andrés, Delgado. Juan Carlos, Caro. Jevis Yamid, estudiantes de ingeniería electrónica E

Transcript of Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador

Page 1: Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador

> UNIVERSIDAD SANTO TOMAS – FACULTAD DE INGENIERÍA ELECTRÓNICA – TÉCNICAS DIGITALES II <

1

Abstract—This guide presents the develop of the laboratory

number 8, in where we are going to study about the main aspects

of EEPROM memory, the applications of the TIMER0, like

counter, prescaler and frequencimeter. The students we will

learn more about the EEPROM.

Index Terms— EEPROM. PRESCALER, TIMER0, Option

register, counter.

I. INTRODUCCIÓN

N algunos proyectos es necesario guardar la información

que se genera durante el proceso de una forma

permanente, es decir, esos datos han de permanecer incluso

cuando el sistema se desconecta de la alimentación. Para

realizar esta función los microcontroladores PIC disponen de

un área de datos EEPROM no volátil que se describe en la

primera parte de esta guía.

En la segunda parte se enfoca hacia los sistemas digitales

que necesitan un estricto control de tiempos que duran sus

distintas acciones. En todos los programas diseñados hasta

ahora esto se ha realizado mediante una subrutina de retardo.

Otro procedimiento más eficaz y preciso consiste en la

utilización de un Timer.

II. MEMORIA EEPROM DE DATOS

El PIC16F877A dispone de una zona de 256 bytes de

memoria EEPROM para almacenar datos que no se pierden al

desconectar la alimentación. Esto es muy útil ya que permite

guardar datos permanentemente. Como cualquier otra

memoria EEPROM se pueden realizar dos tipos de

operaciones:

Desarrollo de la guía de laboratorio, presentada el 19 de Octubre, 2010.

Este laboratorio presenta los principales aspectos relacionados con el manejo

de TMR0, la memoria EEPROM y de la misma manera presenta algunos aspectos referentes a él Modulo LCD.

Pardo V. Daniel Andrés. Estudiante de ingeniería electrónica de la Universidad Santo Tomas, Seccional Tunja (e-mail:

[email protected])

Delgado S. Juan Carlos. Estudiante de ingeniería electrónica de la Universidad

Santo Tomas, Seccional Tunja.(e-mail:

[email protected])

Caro P. Jevis Yamid. Estudiante de ingeniería electrónica de la

Universidad Santo Tomas, Seccional Tunja.(e-mail: [email protected])

Operación de lectura.

Operación de escritura o grabación.

Un ciclo de grabación en una posición EEPROM de datos

dura unos 10 ms, un tiempo muy elevado para la velocidad del

procesador, que se controla mediante un temporizador interno.

Al escribir en una posición de memoria ya ocupada

automáticamente se borra el contenido que había y se

introduce el nuevo dato, por lo que no hay comando de

borrado.

III. EL TIMER 0 (TMR0)

Un timer se implementa por medio de un contador que

determina un tiempo preciso entre el momento en que el valor

es cargado y el instante en el que se produce su

desbordamiento. Un timer típico se describe de forma

simplificada en fig.1. Consiste en un contador ascendente

(también podría ser descendente) que, una vez inicializado con

un valor, su contenido se incrementa con cada impulso de

entrada hasta llegar a su valor máximo b’11111111’,

desbordando y volviendo a comenzar desde cero.

Fig.1. Esquema simplificado de un timer

El PIC16F877A dispone de 3 Timer dentro de los cuales

uno de los principales es denominado Timer 0 o TMR0 se

inicializa con un valor, que se incrementa con cada impulso de

entrada hasta su valor máximo b’11111111’; con el siguiente

impulso de entrada el contador se desborda pasando a valer

b’00000000’, circunstancia que se advierte mediante la

activación del flag de fin de contaje T0IF localizado en el

registro INTCON.

Los impulsos aplicados al TMR0 pueden provenir de los

pulsos aplicados al pin T0CKI o de la señal de reloj interna

(Fosc/4), lo que le permite actuar de dos formas diferentes

Fig.2.

Como contador de los impulsos que le llegan por el

pin RA4/T0CKI

Como Temporizador de Tiempos.

Practica de Laboratorio # 8

EEPROM de Datos y TMR0 Contador y

Temporizador

Pardo. Daniel Andrés, Delgado. Juan Carlos, Caro. Jevis Yamid, estudiantes de ingeniería electrónica

E

Page 2: Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador

> UNIVERSIDAD SANTO TOMAS – FACULTAD DE INGENIERÍA ELECTRÓNICA – TÉCNICAS DIGITALES II <

2

El actuar de una u otra forma depende del bit T0CS del

registro OPTION:

Si T0CS = 1, el TMR0 actúa como contador.

Si T0CS = 0, el TMR0 actúa como temporizador.

IV. EL TIMER 0 COMO CONTADOR

Cuando el TMR0 trabaja como contador se le introducen los

impulsos desde el exterior por el pin RA4/T0CKI (TMR0

External Clock Input). Su misión es “contar” el número de

acontecimientos externos representados por impulsos que se

aplican al pin T0CKI.

El tipo de flanco activo se elige mediante el bit T0SE del

registro OPTION:

Si T0SE = 1, el flanco activo es descendente.

Si T0SE = 0, el flanco activo es ascendente.

V. EL TIMER 0 COMO TEMPORIZADOR

Cuando el TMR0 trabaja como temporizador cuenta los

impulsos de Fosc/4. Se usa para determinar intervalos de

tiempo concretos. Estos impulsos tienen una duración

conocida de un ciclo de máquina que es cuatro veces el

periodo de la señal de reloj. Para una frecuencia de reloj igual

a 4 MHz el TMR0 se incrementa cada 1us, tal como se calculó

en la tematica de subrutinas de retardos.

Como se trata de un contador ascendente el TMR0 debe ser

cargado con el valor de los impulsos que se desean contar

restados de 256 que es el valor de desbordamiento. Por

ejemplo, para contar cuatro impulsos, se carga al TMR0 con

256-4=252:

Numero de pulsos a contar: 410=b’00000100’

Número a cargar: 25610-410=25210=b’11111100’

Incremento a cada ciclo de instrucción:

b’11111100’, b’11111101’, b’11111110’,

b’11111111’, aquí se desborda pasando a

b’00000000’ y activando el flag T0IF.

De esta manera, con la llegada de cuatro impulsos, el timer

se ha desbordado alcanzando el valor b’00000000’ que

determina el tiempo de temporización, en este caso 4us si los

impulsos se hubieran aplicado cada microsegundo.

VI. EL TIMER 0 ES UN REGISTRO DEL SFR

El TMR0 es un registro de propósito especial ubicado en la

posición 1 del área SFR de la RAM de datos. Puede ser leído y

escrito al estar conectado directamente al bus de datos.

La Fig.2. Ofrece el esquema de funcionamiento del TMR0.

Se puede leer en cualquier momento para conocer el estado de

la cuenta. Cuando se escribe un nuevo valor sobre TMR0 para

comenzar una nueva temporización, el siguiente incremento

del mismo se retrasa durante los dos ciclos de reloj

posteriores.

Fig.2. Esquema de funcionamiento del timer principal TMR0.

VII. DIVISOR DE FRECUENCIA (PRESCALER)

A veces es necesario controlar tiempos largos y aumentar la

duración de los impulsos que incrementa el TMR0. Para cubrir

esta necesidad se dispone de un circuito programable llamado

Divisor de Frecuencia o Prescaler que divide la frecuencia

utilizada por diversos rangos para poder conseguir

temporizaciones más largas.

En realidad el PIC16F877 dispone de cuatro

temporizadores:

El TMR0, que actuá como temporizador principal.

El TMR1, que actuá como temporizador

secundario.

El TMR2, que actuá como temporizador

secundario.

El Watchdog (perro guardián), que vigila que el

programa no se “cuelgue”. Para ello, cada cierto

tiempo comprueba que el programa está

ejecutándose normalmente y, si no es así,

reinicializa todo el sistema. El Watchdog se

analizará más adelante.

El Prescaler puede aplicarse a uno de los dos

temporizadores, al TMR0 o al Watchdog. Cuando se asigna

al TMR0 los impulsos pasan por el divisor e frecuencia y

una vez aumentada su duración se aplican a TMR0.

VIII. MODO DE EVALUACIÓN

Además de lo pedido en cada uno de los puntos el docente

realizara 3 preguntas una por cada integrante en el grupo de

laboratorio la respuesta es individual la ayuda de otro

compañero de grupo anulara el punto dejando una nota de

cero para esa pregunta. El porcentaje de evaluación es 60%

preguntas y 40% practica.

IX. PRACTICA DE LABORATORIO

A. Programa EEPROM1

1) Teniendo en cuenta lo siguiente:

Documentación Libro Guía.

Documentación Datasheet PIC16F877A

Libro avanzado microcontroladores PIC del autor

Page 3: Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador

> UNIVERSIDAD SANTO TOMAS – FACULTAD DE INGENIERÍA ELECTRÓNICA – TÉCNICAS DIGITALES II <

3

José maría Angulo (Biblioteca Universidad Santo

Tomas)

Documente cada una de las líneas del programa

EEPROM1 (Indique que hace cada valor dentro de los

registros de la EEPROM) y realice el diagrama de flujo

correspondiente. ¿Qué hace el programa?

RTA:

A continuación se presenta el programa:

LIST P=PIC16F877A

INCLUDE<P16F877A.INC>

__CONFIG _XT_OSC & _DEBUG_OFF &

_WDT_OFF & _PWRTE_ON & _BODEN_OFF &

_LVP_OFF & _CPD_OFF & _CP_OFF

CBLOCK 0X20

REG1

REG2

ENDC

reset org 0

Inicio

bsf STATUS,RP0

bcf STATUS,RP1

movlw b'00000000'

movwf TRISE

movlw b'00000000'

movwf TRISA

movlw b'00000111'

movwf ADCON1

movlw b'00000000'

movwf TRISB

movlw b'00000000'

movwf TRISC

movlw b'00000000'

movwf TRISD

bcf STATUS,RP0 ;accedemos al banco 2

bsf STATUS,RP1

CLRF PORTC

CLRF PORTD

CLRF PORTA

CLRF PORTE

CLRF PORTB

Principal

call LCD_Inicializa

movlw d'00'

movwf EEADR

movlw b'10101010'

movwf EEDATA

call grabar_eeprom

call inhabilitar_interrupcion

movlw d'00'

bsf STATUS,RP1

movwf EEADR

bsf STATUS,RP0

bcf EECON1,EEPGD

bsf EECON1,R

movf EEDATA,W

bcf STATUS,RP0

bcf STATUS,RP1

movwf REG1

call habilitar_interrupcion

; IMPRIMIMOS EL DATO EN EL PUERTO B

movf REG1,w

call LCD_ByteCompleto

call Retardo_1s

call Retardo_1s

goto Principal

;------------------------------------------------------------

; Declaración de Subrutinas

;------------------------------------------------------------

grabar_eeprom ;escribimos el dato en la eeprom

bcf STATUS,RP0

bcf STATUS,RP1

movf INTCON,W

movwf REG2

bsf STATUS,RP0

bsf STATUS,RP1

bcf EECON1,EEPGD

bsf EECON1,WREN

movlw 0x55

movwf EECON2

movlw 0xaa

movwf EECON2

bsf EECON1,WR

esperar_fin_escritura

btfsc EECON1,WR

goto esperar_fin_escritura

bcf EECON1,EEIF

bcf EECON1,WREN

bcf STATUS,RP0

bcf STATUS,RP1

movf REG2,W

Page 4: Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador

> UNIVERSIDAD SANTO TOMAS – FACULTAD DE INGENIERÍA ELECTRÓNICA – TÉCNICAS DIGITALES II <

4

movwf INTCON

return

inhabilitar_interrupcion

bcf STATUS,RP0

bcf STATUS,RP1

movf INTCON,W

movwf REG2

bcf INTCON,GIE

return

habilitar_interrupcion

bcf STATUS,RP0

bcf STATUS,RP1 ;accedemos al banco 0

movf REG2,W

movwf INTCON

return

INCLUDE<LCD_4BIT.INC>

INCLUDE<RETARDOS.INC>

END

Para ver el programa debidamente comentado, por

favor ingresar a la carpeta adjunta con este informe.

EXPLICACION:

El programa se caracteriza por que evalúa si el

timer0 se ha desbordado o no, dependiendo del

resultado este es guardado en un registro

denominado REG2, este tiene la labor de tener

dicho valor cuando se esta grabando en la

EEPROM, luego el programa inicia un proceso de

lectura en donde se pasa el valor grabado en la

EEPROM y luego se pasa a otro registro

denominado REG1; finalmente en la pantalla de la

LCD se imprime el valor guardado en REG1.

Es necesario aclarar que en el proceso se

habilitaron y deshabilitaron las interrupciones, se

creo un ciclo para esperar si ya finalizo el proceso

de escritura y demás. Pero se obviaron, en el

anterior proceso de descripción del

comportamiento en general del programa.

DIAGRAMA DE FLUJO

- Bloque de inicio

- Programa Principal

Page 5: Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador

> UNIVERSIDAD SANTO TOMAS – FACULTAD DE INGENIERÍA ELECTRÓNICA – TÉCNICAS DIGITALES II <

5

- Subrutina para escribir en la EEPROM

- Subrutinas para habilitar y deshabilitar las

interrupciones

B. Timer0 como Contador

1) Teniendo en cuenta lo siguiente:

Documentación Libro Guía.

Documentación Datasheet PIC16F877A

Libro avanzado microcontroladores PIC del autor

José maría Angulo (Biblioteca Universidad Santo

Tomas)

¿Qué hace el programa? Realice el montaje en proteus.

RTA:

A continuación se presenta el programa

correspondiente:

LIST P=PIC16F877A

INCLUDE<P16F877A.INC>

__CONFIG _XT_OSC & _DEBUG_OFF &

_WDT_OFF & _PWRTE_ON & _BODEN_OFF &

_LVP_OFF & _CPD_OFF & _CP_OFF

CBLOCK 0X20

ENDC

org 0

Inicio

bsf STATUS,RP0

bcf STATUS,RP1

movlw b'00000000'

movwf TRISE

movlw b'00000000'

movwf TRISA

movlw b'00000111'

movwf ADCON1

movlw b'00000000'

movwf TRISB

movlw b'00000000'

movwf TRISC

movlw b'00000000'

movwf TRISD

Page 6: Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador

> UNIVERSIDAD SANTO TOMAS – FACULTAD DE INGENIERÍA ELECTRÓNICA – TÉCNICAS DIGITALES II <

6

bcf STATUS,RP0

bsf STATUS,RP1

call LCD_Inicializa

BSF STATUS,RP0

BCF STATUS,RP1

MOVLW B'00111000'

MOVWF OPTION_REG

BCF STATUS,RP0

BCF STATUS,RP1

CLRF TMR0

Principal

CALL LCD_Linea1

movf TMR0,W

call BIN_a_BCD

CALL LCD_Byte

GOTO Principal

INCLUDE <RETARDOS.INC>

INCLUDE <BIN_BCD.INC>

INCLUDE <LCD_4BIT.INC>

END

Para ver el programa debidamente comentado, por

favor ingresar a la carpeta adjunta con este informe.

EXPLICACION

Este programa se caracteriza por que realiza un conteo

de los pulsos aplicados en el pin TOCKI (RA4), el

contador va desde el numero 0 hasta el numero 99,

pues se esta utilizando la instrucción para imprimir en

la LCD “LCD_Byte”, en conjunto con la librería de

conversión binario a BCD.

Dependiendo de el número de pulsos que se apliquen a

dicho pin, aparecerá en la LCD ese mismo número de

pulsos.

C. Timer0 como Temporizador

1) Teniendo en cuenta lo siguiente:

Documentación Libro Guía.

Documentación Datasheet PIC16F877A

Libro avanzado microcontroladores PIC del autor

José maría Angulo (Biblioteca Universidad Santo

Tomas)

Documente cada una de las líneas y realice el montaje

de la página 231 del libro guía compruebe su

funcionamiento ¿Qué hace el programa?

RTA:

A continuación se presenta el programa

correspondiente:

INCLUDE<P16F877A.INC>

__CONFIG _XT_OSC & _DEBUG_OFF &

_WDT_OFF & _PWRTE_ON & _BODEN_OFF &

_LVP_OFF & _CPD_OFF & _CP_OFF

CBLOCK 0X20

ENDC

org 0

#DEFINE salida PORTB,3

Inicio

bsf STATUS,RP0

bcf STATUS,RP1

movlw b'00000000'

movwf TRISE

movlw b'00000000'

movwf TRISA

movlw b'00000111'

movwf ADCON1

movlw b'00000000'

movwf TRISB

movlw b'00000000'

movwf TRISC

movlw b'00000000'

movwf TRISD

MOVLW b'00000000'

MOVWF OPTION_REG

BCF STATUS,RP0

BCF STATUS,RP1

Principal

bsf salida

call Timer0_500us

nop

nop

bcf salida

call Timer0_500us

goto Principal

TMR0_Carga500us EQU d'256'- d'242'

Timer0_500us

nop

nop

movlw TMR0_Carga500us

movwf TMR0

Page 7: Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador

> UNIVERSIDAD SANTO TOMAS – FACULTAD DE INGENIERÍA ELECTRÓNICA – TÉCNICAS DIGITALES II <

7

bcf INTCON,T0IF

Timer0_Rebosamiento

Btfss INTCON,T0IF

goto Timer0_Rebosamiento

return

END

Para ver el programa debidamente comentado, por favor

ingresar a la carpeta adjunta con este informe.

EXPLICACION

Este programa se caracteriza por que genera una onda

cuadrada en el pin RB3 del puerto B, la cual esta

conectada a un transistor que a su vez esta conectado a

una bocina, que genera un pitido continúo.

El programa se encarga que el pitido se genera cada ves

que se genere el pulso pero la principal característica de

este programa es la generación de los tiempos alto y

bajo de la onda cuadrada.

El único problema que posee la estructura del programa

es el cálculo de los tiempos de temporización, para este

programa.

En el programa se especifica un preescaler de 2

asignado al TMR0 y un valor de carga para el TMR0

de 252(valor obtenido experimentalmente), para que a

la salida del pin RB3 se produzca tiempos exactos para

la onda cuadrada de 1KHz, en donde el tiempo bajo y

alto de la señal es de 500 uS cada uno.

D. Tmer0 como Frecuencímetro

1) Analice el programa y realice el montaje según su

análisis. ¿Qué hace el programa y como lo realiza?

RTA

A continuación se presenta el programa

correspondiente:

LIST P=PIC16F877A

INCLUDE<P16F877A.INC>

__CONFIG _XT_OSC & _DEBUG_OFF &

_WDT_OFF & _PWRTE_ON & _BODEN_OFF &

_LVP_OFF & _CPD_OFF & _CP_OFF

CBLOCK 0X20

Frecuencia

ENDC

ORG 0

Inicio

call LCD_Inicializa

bsf STATUS,RP0

BCF STATUS,RP1

movlw b'01111000'

movwf OPTION_REG

bcf STATUS,RP0

BCF STATUS,RP1

Principal

clrf TMR0

call Retardo_1s

movf TMR0,W

movwf Frecuencia

call LCD_Borra

movlw .5

call LCD_PosicionLinea2

movf Frecuencia,W

call VisualizaNumero

movlw MensajeHz

call LCD_Mensaje

call Retardo_2s

goto Principal

; Subrutina "VisualizaNumero"

CBLOCK

GuardaNumero

ENDC

VisualizaNumero

movwf GuardaNumero

call BIN_a_BCD

movf BCD_Centenas,W

btfss STATUS,Z

goto VisualizaCentenas

movf GuardaNumero,W

call BIN_a_BCD

call LCD_Byte

goto FinVisualizaNumero

VisualizaCentenas

call LCD_Nibble

movf GuardaNumero,W

call BIN_a_BCD

call LCD_ByteCompleto

FinVisualizaNumero

return

; Subrutina "Mensajes"

Mensajes

addwf PCL,F

MensajeHz

DT " Hz ", 0x00

INCLUDE <RETARDOS.INC>

INCLUDE <BIN_BCD.INC>

INCLUDE <LCD_4BIT.INC>

INCLUDE <LCD_MENS.INC>

Page 8: Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador

> UNIVERSIDAD SANTO TOMAS – FACULTAD DE INGENIERÍA ELECTRÓNICA – TÉCNICAS DIGITALES II <

8

END

Para ver el programa debidamente comentado, por

favor ingresar a la carpeta adjunta con este informe.

EXPLICACION

La característica de este programa es que dependiendo

de la frecuencia que tenga la señal dispuesta al pin

RA4, ese mismo valor se vera impreso en la pantalla de

la LCD.

Para lograr esto en el programa se especifica al pin

RA4 como flanco ascendente, transición en el pin y que

se establezca una interrupción en el borde de

levantamiento del mismo. De esta forma se puede

determinar el valor de la frecuencia de entrada.

La labor del resto del programa se encarga de convertir

el valor de entrada de binario a BCD e imprimirlo junto

con un mensaje de “Hz” al lado.

X. CONCLUCIONES

La EEPROM de datos se utiliza muchas veces para

algunos proyectos donde se hace necesario guardar

la información, de tal forma que estos datos se

almacenan inclusive cuando se desconecta la

alimentación

Se utilizo cada uno de los registros necesarios para

almacenar o grabar y leer datos de la EEPROM,

como lo son EEDATA, EEADR, EECON1 y

EECON2.

Se comprendió la importancia de los bits

necesarios para poder leer y escribir en la memoria

EEPROM, estos se encuentran en el registro

EECON1.

Se comprendió cada uno de los pasos que se deben

tener en cuenta antes de leer o escribir en la

EEPROM, como son las sugerencias del fabricante

y el posicionamiento adecuado de memoria a leer.

Algunas de las aplicaciones que puede tener el uso

de la EEPROM de datos, es para bloquear un

circuito para que funcione solo un número

determinado de veces.

El TIMER0 posee muchas ventajas, pues ahorra la

necesidad de programar uno de los pines y hacer el

conteo de pulsos que se aplique a dicho pin, solo

con unas pocas instrucciones obtenernos un

contador ascendente utilizando el TMR0.

De la misma manera se puede implementar un

temporizador con el uso del TIMER0, dependiendo

de si el reloj es de 4MHz, el TIMER0 se

incrementara cada 1uS, y podemos crear un tren

de pulsos en donde si escogemos un valor de carga

para el TIMER0 de 14, obtendremos 500 uS tanto

en el tiempo alto como el bajo, generando una

onda cuadrada casi exacta de 1KHz.

Para implementar un divisor de frecuencia o

prescaler, solo es necesario configurar algunos bits

del registro OPTION y uno del registro INTCON

para evaluar si se ha producido un desbordamiento

en el TIMER0; esta aplicación posee muchas

utilidades, pues podemos aplicar una señal variante

en el tiempo al pin TOCKI, e imprimir en una

pantalla LCD e valor de la frecuencia de esa señal

aplicada.

El divisor de frecuencia o Prescaler, nos permite

controlar tiempos más largos, aumentando la

duración de los impulsos aplicados al pin TOCKI,

aunque para este microcontrolador tenemos tres

temporizadores, el WDT, TOCKI en el pin RA4 y

T1CKI en el pin 15 del microcontrolador

PIC16F877,

REFERENCIAS

[1] FRIES, Bruce y FRIES, Marty. Audio digital práctico. Ed. Anaya

Multimedia. 2005. ISBN 84-415-1892-0 [2] RUMSEY, Francis y McCORMICK, Tim. Sonido y grabación.

Introducción a las técnicas sonoras. 2004.

[3] WATKINSON, John. El arte del audio digital. IORTV, Madrid, 1993. [4] WATKINSON, John. Introducción al audio digital. 2003. ISBN 84-

932844-9-1.

[5] NOVOA, Leonardo. Audio para dummies. 2008. ISBN 8493284291. [6] http://www.biopsychology.org/tesis_esteve/apendices/dft/tdft.htm

[7] http://fing.uncu.edu.ar/catedras/industrial/electronica/archivos/electronic

a/tema7r.pdf [8] http://www.asifunciona.com/electronica/af_conv_ad/conv_ad_5.htm

[9] http://www.asifunciona.com/electronica/af_conv_ad/conv_ad_7.htm