Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lima Perú
jamanyae@unac.edu.pe
jdbenitesm@unac.edu.pe@unac.edu.pe
lstfloresh@unac.edu.pe
matarrillos@unac.edu.pe
requispec@unac.edu.pe
WriteCmdXLCD(CLEAR_XLCD); //Limpia la
void ADC_Init(void); pantalla LCD al reiniciar
int val=0; XLCDgotoXY(0, 0);//coordenadas de ubicación del
caracter
float val1=0;
putrsXLCD("PROYECTO FINAL");
float temp=0;
__delay_ms(1000);
char vector[15]="";//cadena de caracteres para valores
de temperatura XLCDgotoXY(1,0);//coordenadas de ubicación del
caracter
void interruption1(void);
putrsXLCD("ELECTRONICOS");
void interruption2(void);
__delay_ms(1000);
void interruption3(void);
while(1){
val1=(float)val*5/4095;//conversion ADC
char trama[15]=""; //cadena de caracteres para cantidad
de personas temp=val1*99.6;
int i=0; __delay_ms(10);
int n=0; sprintf(vector,"t=%.2fC",temp);//para mostrar con
dos decimales la temperatura
int b=0;
sprintf(trama, "%d", i);//CONVERTIR LECTURA
//PROGRAMA PRINCIPAL:
ADC EN STR
int main(void) {
WriteCmdXLCD(CLEAR_XLCD); //Limpia la
ADC_Init(); pantalla LCD al reiniciar
interruption1();
if(temp<37){ putrsXLCD(trama);// Mostramos cantidad de
personas
XLCDgotoXY(0,0);
__delay_us(10);
putrsXLCD("PERSONAS:");//encendido de
pantalla
XLCDgotoXY(1,0);//posición de la trama en el lcd }
putrsXLCD(trama);// Mostramos cantidad de }
personas
}
else{
WriteCmdXLCD(CLEAR_XLCD); //Limpia la
if(i==15){//MAXIMO DE PERSONAS pantalla LCD al reiniciar
IFS1bits.INT2IF=1; XLCDgotoXY(0,4);
putrsXLCD(vector);// Mostramos cantidad de
personas
}
__delay_us(100)
else{
XLCDgotoXY(2,3);
if(n==1){
putrsXLCD(¡”NO INGRESAR!”);
XLCDgotoXY(0,0);
__delay_us(100);
putrsXLCD("PERSONAS:");
__delay_us(10);
}
XLCDgotoXY(1,0);
}
putrsXLCD(trama);// Mostramos cantidad de personas
return 0;
__delay_us(10);
}
XLCDgotoXY(1,6);
void interruption1(void){
putrsXLCD(vector); // Mostraremos Temperatura
__delay_us(10);
INTCON2bits.INT0EP=1; //flanco de subida
}
IPC0bits.INT0IP=5; // prioridad 5
if(b==2){
IEC0bits.INT0IE=1; //habilitar interrupción externa
XLCDgotoXY(0,0);
putrsXLCD("PERSONAS:");
}
__delay_us(10);
void __attribute__((interrupt,auto_psv))
XLCDgotoXY(1,0);
_INT0Interrupt(void){//Pin RB7
n=0;
}
else{
i=i+1; }
n=1; void __attribute__((interrupt,auto_psv))
_INT2Interrupt(void){
}
IFS0bits.INT0IF=0; // para apagar la bandera y se
realiza la interrupción WriteCmdXLCD(CLEAR_XLCD); //Limpia la
pantalla LCD al reiniciar
XLCDgotoXY(0, 0);
}
putrsXLCD("AFORO MAXIMO:");
XLCDgotoXY(1, 0);
void interruption2(void){//Resta las personas que salen
del lugar putrsXLCD(¡”NO INGRESAR!”);
INTCON2bits.INT1EP=1; //flanco de subida __delay_ms(100);
IPC5bits.INT1IP=7; // prioridad 7 if(i==14){//condición para mostrar Aforo máximo
IEC1bits.INT1IE=1; //habilitar interrupción externa IFS1bits.INT2IF=0;
RPINR0bits.INT1R=0b01001; // habilitar el INT1 en }
el pin RP9
}
void __attribute__((interrupt,auto_psv))
_INT1Interrupt(void){//Pin RB9
b=2; }
void ADC_Init(void)
{
AD1CON1bits.ADON=0;//Deshabilitar el ADC
AD1CON1bits.AD12B=1;
AD1CON2bits.VCFG=0b000;//AVss y AVdd
AD1PCFGLbits.PCFG1=0;//AN1 como entrada
analógica
AD1CHS0bits.CH0SA=0b0001;//Toma el canal
analógico AN1
AD1CHS0bits.CH0NA=0;//La entrada negativa del
canal 0 es vref-
AD1CON3bits.ADCS=0b0001001;//ADCS = 9
AD1CON1bits.ASAM=0;//Muestreo manual
AD1CON1bits.SSRC=0b000;//Limpiar el bit
SAMP //finaliza el muestreo e inicia la conversión
AD1CON1bits.ADON=1;//Habilitar el ADC
VI. Conclusiones
} Es una solución para usuarios que
demanden experiencias bien enfocadas a
C. FUNCIONAMIENTO DEL PROGRAMA: evitar aglomeraciones.
Nuestro propósito es simular un sistema de control de En casos como los de centro
aforo, en este caso el pulsador tendrá la función de un comerciales o espacios para eventos,
sensor que al ingresar una persona a un dicho para que el visitante pueda disfrutar de
establecimiento se captará su ingreso y su temperatura la experiencia implica no preocuparse
corporal, se visualizará en la pantalla LCD y si cuenta por aspectos como masificación.
con una temperatura común a 37C° su ingreso se le Los responsables de las instalaciones,
permitirá, si tiene una temperatura mayor a 37C°, no se necesitan soluciones que permitan
le será posible ingresar al establecimiento. El aforo gestionar el flujo máximo de clientes de
máximo será de 10 personas por lo que el LCD indicará forma automática y en tiempo real.
que se llegó al “AFORO MAXIMO” y no se permite el Garantizar el cumplimiento de la
INGRESO, esto hasta que una persona salga del normativa y garantizar la seguridad de
establecimiento y vuelva a si el proceso. clientes en tiempos de pandemia.