Programación Específica > Microcontroladores
Cargar Una E2prom Con Usart Del 16f628
Huguen_aus_Tirol:
Hola!
Lees el primer numero marcado, te queda el número en los 4 bits (nibble) bajos del registro donde lo guardes. Con la instrucción SWAPF inviertes los nibbles, de tal manera que el primer digito discado queda en los 4 bits altos del registro. Luego lees el segundo digito marcado y haces una operación OR con el registro donde tienes el primer digito... y listo, ya tienes dos digitos en un byte ;)
En cuanto al micro, uno que tenga simplemente un modulo SSP ya lo puedes usar como maestro. No recuerdo ahora exactamente los detalles, pero se que no es nada complicado. Tendría que buscar entre mis archivos para sacarte algún ejemplo, pero puedes encontrar algo en las Aplication Notes de Microchip.
La primera vez que lo hice fue con un 16F876, y funcionó perfecto; creo que este micro solo tiene SSP <_<
Si no es molestia, te agradecería si me pasas el circuito de interfaz que tienes entre la línea telefónica y la entrada del CM8870. Puedes dejarlo aquí, o a mi correo (hugoerhard@yahoo.de)
Saludos
Huguen_aus_Tirol:
Hola!
Perdón por el error... el 16F873 tiene MSSP.
Aqui dejo una rutina (dice para la memoria 24C02, pero en realidad es para cualquier 24C). Solo paso la rutina de lectura de la memoria; solo es cuestion de tomarla como base para escribir la rutina de escritura. Es fácil, y más con la ayuda de la hoja de datos de la memoria...
Asi tambien, pueden escribirse las rutinas para otros dispositivos I2C.
Saludos
Ivan N.:
Muchas gracias por el ejemplo! Y la explicacion de como guardar lasm 2 teclas en un byte. Con el tema del circuito me vas a tener q aguantar unos dias que ando con la maquina rota y ando einstalando todo, pero en unos dias te lo mando.
Huguen_aus_Tirol:
No hay problema!
Mantenenos informado de tu proyecto...
Saludos
Ivan N.:
Decodificador DTMF:
La función de este circuito es detectar que tecla del teléfono fue pulsada en función de un pulso. Este pulso esta compuesto por dos frecuencias distintas, una denominada FLOW y la otra FHIGH, estas frecuencias son generadas en el momento en que se pulsa dicha tecla y para cada tecla hay una combinación determinada de frecuencias:
FLOW (Hz) FHIGH (Hz) Tecla
697 1209 0
697 1336 1
697 1477 2
770 1209 3
770 1336 4
770 1477 5
852 1209 6
852 1336 7
852 1477 8
941 1209 9
941 1336 *
941 1477 #
Este circuito fue obtenido de las hojas de datos del integrado CM8870, salvo por los seguidores de tensión conformados por el LM324 y el TL081, colocados en las salidas del CM8870, con el fin de adaptar impedancias y evitar que si cortocircuitan las salidas del circuito se destruya el CM8870. Cabe aclarar que el regulador de tensión, con sus respectivos capacitores, que alimenta al CM8870 también fue agregado al circuito original dado por el fabricante.
Si queres mas informacion sobre el tema o hay algo q no entiendas decime que trato de explicar mejor (ahora directamente lo arranque de un informe q tubimos q presentar xD) El circuito consta de 5 salidas del pìn 11 al 14 son las salidas q1 a q4, que representan el numero binario correspondiente a la tecla presionada. La quinta salida e sel pin 15 que muestra un uno logico cuando hay un nuevo numero DTMF en las salidas q1-q4, y se mantiene en estado alto mientras la tecla que genero el DTMF se encuentre presionada. La tabla de los numeros binarios que corresponden a cada tecla la podes ver en datasheet del CM8870.
Bue y con el tema del proyecto al final decidimos guardar los datos en la memoria interna del pic y veremos cuantos numeros entran xD. mas o menos unos 20 deberian entrar xD. Asi q con eso se simplifica bastante pero igualmente tenemos el tema de la comparacion del numero marcado con la lista de numeros permitidos... ver de q manera cargamos la lista de numeros esa a traves del telefono, y como saber cuando el usuario termino de marcar el numero xD. Asi q veremos q pasa... ahh por cierto finalmente decidimos usar el pic16F819. Cualquier sugerencia de sobre el tema sera bienvenida, desde ya muchas gracias.
Navegación
[*] Página Anterior
Ir a la versión completa