0% encontró este documento útil (0 votos)
214 vistas3 páginas

Comunicación RS232 en MPLAB

Este documento proporciona el código para configurar la comunicación serial RS232 en un microcontrolador PIC16F877A. El código incluye líneas para incluir la biblioteca del microcontrolador, configurar los puertos, el convertidor AD, los timers y el puerto serial RS232, e implementa un bucle infinito que imprime "HOLA MUNDO" y una barra "/" alternativamente cada segundo a través del puerto serial.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
214 vistas3 páginas

Comunicación RS232 en MPLAB

Este documento proporciona el código para configurar la comunicación serial RS232 en un microcontrolador PIC16F877A. El código incluye líneas para incluir la biblioteca del microcontrolador, configurar los puertos, el convertidor AD, los timers y el puerto serial RS232, e implementa un bucle infinito que imprime "HOLA MUNDO" y una barra "/" alternativamente cada segundo a través del puerto serial.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

INGENIERÍA COMPUTACIONAL

Tema:
“Tarea 8. Comunicación por RS232”

Módulo 5

Nombre: Juan Manuel Landa Santillán

Xalapa, Enríquez a 17 de junio de 2022

Xalapa, Enríquez
Explica cuál es la función de cada línea de código.

rchivo main.c
//#include
//Ejemplo 12
//Crea un nuevo proyecto en MPLAB, copia y pega en él el código que se muestra
//continuación. Añade comentarios a cada línea de //código explicando la
función
//de cada línea y compílalo.

#include <16F877A.h> //le dice al compilador para que microcontrolador está


hecho el código
#device adc=8 //configuracion de adc de 8 bits
#use delay(clock=20000000)//frecuencia del oscilador
#fuses NOWDT,XT, PUT, NOPROTECT, NODEBUG, BROWNOUT, LVP, NOCPD, NOWRT
//deshabilita el watchdog,power up timer activado,
//sin proteccion de memoria de programa, sin modo de depuracion para ICD
//Reset ante variaciones de VCC, uso de bajo voltaje de programación
//Protección de la EEPROM desactivada,memoria del programa protegida contra
escritura

#use delay(clock=4000000) //frecuencia del oscilador


#use standard_io(b) //configurar el puerto B
#use rs232(baud=9600, parity= N, bits=8, xmit=PIN_C6, rcv=PIN_C7)// pines del
puerto serial

void main() //rutina principal


{ //inicia función
port_b_pullups(TRUE); //activa las resistencias de pullups del puerto b
setup_adc_ports(NO_ANALOGS); //desactiva los adc para poder usarlo como
IO digital
setup_adc(ADC_OFF); //desactiva el convertidor analogo/digital
setup_psp(PSP_DISABLED);//psp deshabilitado
setup_spi(FALSE); //deshabilitar el spi (serial peripheral interface)
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); //configuracion del relog interno
setup_timer_1(T1_DISABLED); //deshabilita el timer 1
setup_timer_2(T2_DISABLED,0,1); //deshabilita el timer 2
setup_comparator(NC_NC_NC_NC); //comparador apagado
setup_vref(FALSE); //no usar voltaje de referencia
do{
delay_ms(1000); //esperamos 10000 ms
printf("HOLA MUNDO"); //imprimir "HOLA MUNDO"
delay_ms(1000); //esperamos 10000 ms
printf("/"); //imprimir "/"
}while(true); //bucle infinito
} //cierre de función
Archivo main.h
#include <16F877A.h>
#device adc=8

#FUSES NOWDT //No Watch Dog Timer


#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz
for PCD)
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or
B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
#FUSES RESERVED //Used to set the reserved FUSE bits

#use delay(clock=20000000)

También podría gustarte