Anda di halaman 1dari 2

#include <io.

h>
#include <mega16.h>
#include <delay.h>
#define mode_ADC 0x20

unsigned char NIM[10] = {0x79, 0x12, 0x30, 0x79, 0x79, 0x30, 0x40, 0x40,
0x00,0x40 };
unsigned char HP[12] = {0x40, 0x00, 0x12, 0x02, 0x12, 0x12, 0x78, 0x02, 0x30,0x40,
0x30, 0x19};
unsigned char TTL[11] = {0xFF, 0x24, 0x79, 0x3F, 0x40, 0x12, 0x3F, 0x79, 0x10,
0x10, 0xF8};
unsigned char KELAS[8] = {0x79, 0x19, 0x3F, 0x07, 0x07, 0x3F, 0x24, 0x21};
int i;

unsigned char read_adc(unsigned char adc_input){


ADMUX=adc_input | mode_ADC;
delay_us(10);
ADCSRA=ADCSRA | 0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA |= 0x10;
return ADCH;
}

unsigned char fungsi(unsigned char y){


if(y==0){PORTD.0=1;}
if(y==1){PORTD.1=1;}
if(y==2){PORTD.2=1;}
if(y==3){PORTD.3=1;}
if(y==4){PORTD.4=1;}
if(y==5){PORTD.5=1;}
if(y==6){PORTD.6=1;}
if(y==7){PORTD.7=1;}
if(y==8){PORTB.0=1;}
if(y==9){PORTB.1=1;}
if(y==10){PORTB.2=1;}
if(y==11){PORTB.3=1;}
delay_us(100);
PORTD=0x00;
PORTB=0x00;
return y;
}

unsigned char data;


void main()
{

PORTC=0x00;
DDRC=0xFF;

ADMUX = mode_ADC;
ADCSRA = 0x85;
while(1){
data=read_adc(0);
if(data>=0x00 && data<=0x40){
for (i=0;i<=9;i++){
PORTC=NIM[i];
fungsi(i);

}
}
if(data>=0x41 && data<=0x80){
for (i=0;i<=12;i++){
PORTC=HP[i];
fungsi(i);
}
}
if(data>=0x81 && data<=0xC0){
for (i=0; i<=10; i++){
PORTC=TTL[i];
fungsi(i);
}
}
if(data>=0xC1 && data<=0xFF){
for (i=0;i<=7; i++){
PORTC=KELAS[i];
fungsi(i);
}
}
}
}

Anda mungkin juga menyukai