Beruflich Dokumente
Kultur Dokumente
w Manejo de LCD
COL4
COL3
COL2
COL1
Sabremos que se ha pulsado una tecla cuando se reciba un pulso por el pin DA del
74922
Este pulso lo utilizaremos como una interrupción externa por el RB0 de tal manera
que cuando ocurra leemos el puerto A y mediante una tabla codificaremos el valor a
una letra determinada para el LCD.
Recuerde:
Agregar la rutina de decodificación de teclado en la interrupción del RB0
RS232
C
7
6
5
4
3
16F877A 2
1
CP
1 2 3
4 5 6
7 8 9 F
C 0 H E
Teclado
Muestreo y cuantización
1111
1110
1101
1100
1011 Error de cuantización
1010
OUTPUT 1001
DIGITAL 1000
0111 t
0110
0101
0100
0011
0010 ADC Output
0001 Función Seno
0000
#device adc=8
void AD_init()
{ setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_DIV_2);}
void MCU_init()
{ lcd_init(); void main()
AD_init();} { int valor = 0;
MCU_init();
lcd_putc("\fConversor AN0...\n");
delay_ms(1000);
while(TRUE){
set_adc_channel(0);
delay_ms(10);
valor=read_adc();
output_c(valor);
printf(lcd_putc,"\f%4u",valor);}
}
w Comunicación Serial
2 RX
3 TX
5 GND
GND GND
GND GND
Para iniciar la recepción se coloca el bit CREN=‘1’ (registro RCSTA). Los bits son
recibidos uno a uno y cuando se llena el buffer RSR considerando el bit No9 (RX9=1)
el señalizador RCIF se pone a 1, pudiendo generar una interrupción.
RxError:
bcf RCSTA,CREN ; aclara OVERRUN error bit
nop
bsf RCSTA,CREN
movlw "X"
call EnviaCarLCD
call ret300ms
movlw "E"
call EnviaCarLCD
call ret300ms
return
José Oliden Martínez
; Rutina de recepción de caracteres
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6,rcv=PIN_C7)
void main()
{
int valor = 0;
MCU_init();
lcd_putc("\fConversor AN0\n");
printf(“\fConversor AN0\n”);
delay_ms(1000);
while(TRUE){
set_adc_channel(0);
delay_ms(10);
valor=read_adc();
output_c(valor);
printf(lcd_putc,"\f%4u",valor);
printf("\f%4u",valor);
}
}