lunes, 11 de abril de 2011

Envio de caracteres de PIC16F877A a calculadora HP50g

Programa para PIC16F877A

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.
                 <<9600 BAUD
                      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