Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador
-
Upload
daniel-pardo -
Category
Technology
-
view
189 -
download
3
Transcript of Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador
![Page 1: Lab 8 eeprom_de_datos_y_tmr0_contador_y_temporizador](https://reader035.fdocuments.co/reader035/viewer/2022073102/55a691491a28ab5b4d8b45d7/html5/thumbnails/1.jpg)
> 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:
Delgado S. Juan Carlos. Estudiante de ingeniería electrónica de la Universidad
Santo Tomas, Seccional Tunja.(e-mail:
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](https://reader035.fdocuments.co/reader035/viewer/2022073102/55a691491a28ab5b4d8b45d7/html5/thumbnails/2.jpg)
> 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](https://reader035.fdocuments.co/reader035/viewer/2022073102/55a691491a28ab5b4d8b45d7/html5/thumbnails/3.jpg)
> 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](https://reader035.fdocuments.co/reader035/viewer/2022073102/55a691491a28ab5b4d8b45d7/html5/thumbnails/4.jpg)
> 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](https://reader035.fdocuments.co/reader035/viewer/2022073102/55a691491a28ab5b4d8b45d7/html5/thumbnails/5.jpg)
> 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](https://reader035.fdocuments.co/reader035/viewer/2022073102/55a691491a28ab5b4d8b45d7/html5/thumbnails/6.jpg)
> 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](https://reader035.fdocuments.co/reader035/viewer/2022073102/55a691491a28ab5b4d8b45d7/html5/thumbnails/7.jpg)
> 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](https://reader035.fdocuments.co/reader035/viewer/2022073102/55a691491a28ab5b4d8b45d7/html5/thumbnails/8.jpg)
> 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