Electgpl

PIC - Keypad One Wire 8Bit

Jan 23rd, 2016
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.96 KB | None | 0 0
  1. #include <16F883.h>
  2. #device adc=8
  3. #use delay(int=4000000)
  4. #include <LCD.C>
  5. #define LED PIN_A1
  6. void main(){
  7.    setup_adc_ports(sAN0|VSS_VDD);
  8.    setup_adc(ADC_CLOCK_DIV_2);
  9.    lcd_init();
  10.    int i;
  11.    int8 salida;
  12.    char caracter;
  13.    const int keyValueMinor[17]={0  ,54 , 56, 59, 62, 68, 73, 77, 83, 92,102,112,124,150,170,200,240};
  14.    const int keyValueMajor[17]={53 ,56 , 58, 61, 67, 72, 76, 82, 90,100,110,120,132,160,190,220,255};
  15.    const char   KeySimbols[17]={'_','D','#','0','*','C','9','8','7','B','6','5','4','A','3','2','1'};  
  16.    while(true){
  17.       set_adc_channel(0);
  18.       salida=read_adc();
  19.       delay_us(30);
  20.       for(i=0;i<18;i++){
  21.          if(salida>keyValueMinor[i]&&salida<keyValueMajor[i])
  22.             caracter=KeySimbols[i];
  23.          delay_ms(1);
  24.       }
  25.       lcd_gotoxy(1,1);
  26.       printf(lcd_putc,"Valor: %3u",salida);
  27.       lcd_gotoxy(1,2);
  28.       printf(lcd_putc,"Caracter: %c",caracter);
  29.       output_toggle(LED);
  30.    }
  31. }
Advertisement
Add Comment
Please, Sign In to add comment