Este programa envía una cadena de 10 caracteres a 9600 baudios utilizando transmisión USART.
Funcionamiento
- Los datos a enviar se encuentran en una tabla de datos en la memoria de programa, en este caso una cadena de 10 caracteres "HOLA MUNDO".
- Se configura el microcontrolador para transmisión serial asíncrona a 9600 baudios (mayor detalle en el archivo . ASM).
- El programa incluye una rutina de retardo antes de enviar los caracteres para poder inicializar la configuración en la calculadora HP50g.
- Se puede conectar un led en el pin RA0. Cuando se conecta la alimentación al pic el led se enciende y se ejecuta la rutina de retardo. Finalizada ésta el led se apaga indicando el inicio de la transmisiñon de datos.
- Los carateres se envian y se almacenan automáticamente en el buffer de entrada de la HP50g una vez abierto el puerto serial con el comando OPENIO.
- El circuito formado por los transistores 2N2222A es un adaptador de nivel de tensión. El PIC trabaja a 0 - 5 V pero la calculadora opera 0 - 3.3 V.
- Crear el siguiente programa en la calculadora y almacenar en una variable. Ejecutar una vez que se conecta la alimetación al PIC16F877A o luego de resetearlo.
0 PARITY
-33 CF
-78 SF
CLOSEIO
OPENIO
10 STIME
BUFLEN
DROP
SRECV
DROP
>>
Archivos .ASM y .HEX
Descargar
****Programa en Pic Basic (Microcode)****
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : LONELY113 *
'* Notice : Copyright (c) 2011 LONELY113 *
'* : All Rights Reserved *
'* Date : 12/05/2011 *
'* Version : 1.0 *
'* Notes : PIC16F877a *
'* : 9600 baudios con cristal de 10 MHz *
'* : Pin RC6/Tx a pin RxD de Hp50g *
'* : Pin GND de Hp50g a GND de circuito *
'* : Requiere adaptador de nivel 5V a 3.3V *
'****************************************************************
@ __CONFIG _WDT_OFF & _PWRTE_OFF & _CP_OFF & _HS_OSC & _BODEN_OFF & _LVP_OFF
DEFINE OSC 10 '10 MHz
'Definiciones para USART
DEFINE HSER_RCSTA 90h 'Habilitar registro de recepción
DEFINE HSER_TXSTA 20h 'Habilitar registro de transmisión
DEFINE HSER_BAUD 9600 '9600 baudios
'Inicio de programa
PAUSE 5000 'Retardo de 5 segundos
HSEROUT ["Hola Mundo!!!!!!",13,10] 'Enviar cadena
END
No hay comentarios:
Publicar un comentario