void setup() {
// put your setup code here, to run once:
volatile char *dir;
dir=0x30;
*dir=0x00;//input pin for potetiometer
volatile char *ddir;
ddir=0x107;
*ddir=0xFF;//output pin for common cathode
volatile char *dudir;
dudir=0x21;
*dudir=0xFF;//output pin for leds
//for ADC
ADCSRA |=(1<<ADEN);
//setting refernce voltage
ADMUX |=(1<<REFS0);//can be REFS1(5v)
}
void loop() {
// put your main code here, to run repeatedly:
unsigned char digits[]={
0x3F, // 0
0x06, // 1
0x5B, // 2
0x4F, // 3
0x66, // 4
0x6D, // 5
0x7D, // 6
0x07, // 7
0x7F, // 8
0x6F // 9
};
//for communication
ADMUX &=0xF0;//for taking input from A0
ADCSRA |=(1<<ADSC);//start conversion
while(ADCSRA&(1<<ADSC));
unsigned int analogvalue=ADC;
unsigned int mappedvalue;
mappedvalue=map(analogvalue,0,1023,0,99);
unsigned int unit,tens;
tens=mappedvalue/10;
unit=mappedvalue%10;
volatile char *out;
volatile char *outo;
volatile char *buto;
out=0x108;
*out=0x02;
outo=0x31;
*outo=unit;
buto=0x22;
*buto=digits[*outo];
delay(700);
out=0x108;
*out=0x01;
outo=0x31;
*outo=tens;
buto=0x22;;
*buto=digits[*outo];
delay(700);
}