Está en la página 1de 4

INGENIERÍA COMPUTACIONAL I

Tema:
“Tarea 7. Envío de carácter a un LCD”

Módulo 5
Nombre: Antonio Roldan Mendoza.

Fecha: 23/10/2023.
Explica cuál es la función de cada línea de código.
Archivo main.c

//Ejemplo 11 Envío de caracteres a un LCD


//Genera un nuevo proyecto en MPLAB, copia y pega el siguiente
//código en el proyecto que acabas de crear. Añade comentarios a
//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
#FUSES NOWDT //deshabilita el watchdog
#FUSES HS //oscilador de alta velocidad
#FUSES PUT //power up timer activado
#FUSES NOPROTECT //sin proteccion de memoria de programa
#FUSES NODEBUG //sin modo de depuracion para ICD
#FUSES NOBROWNOUT //Reset ante variaciones de VCC desactivado
#FUSES NOLVP //Evita el uso de bajo voltaje de programación
#FUSES NOCPD //Protección de la EEPROM desactivada
#FUSES NOWRT //memoria del programa protegida contra
escritura

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


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

#define LCD_TYPE 1 //define el tipo de LCD


#include <lcd.c> //libreria lcd a utilizar
#include <kbd.c> //libreria kbd a utilizar
char k;
void main() //rutina principal
{ //cierra función
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

lcd_init(); //inicia el lcd


lcd_putc("\fReady...\n"); //escribe en la primera linea de la pantalla

while (TRUE) //inicia condicionador


{ //inicia función
k=kbd_getc(); //captura caracter del teclado
if(k!=0) //si no se presiona alguna tecla k es igual a 0
if(k=='*') //compara si el valor de k es igual a '*'
lcd_putc('\f'); //borrar el lcd
else // entonces
lcd_putc(k); //imprime el valor de k
} //cierra función
} //cierra 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