#include "header.h"
void setup() {
init();
volatile char *outf, *ink, *outa, *outc, x,y,row,num, num1,num2,sum;
outf = 0x31; ink = 0x106; outa = 0x22; outc = 0x28;
unsigned char digit[] = {0x3F,0x06,0x5B,0x4f,0x66,0x6d,0x7d,0x07,0x7F,0x6F,0x00};
char count = 0;
while(1){
for(row=0;row<4;row++){
*outf = (1<<row);
x = *ink;
if(x!=0){
delay1(5);
while(*ink !=0){}
if(row==3){
if(x == (1<<1)) num = 0;
else{
num =10;
}
}
else{
for(char col=0;col<3;col++){
if(x == (1<<col)) num = col + 1 + 3*row;
if(x == (1<<3)) num = 10;
}
}
if(count==0){
num1 = num;
digit2(digit[num1]);
}else if(count==2){
num2 = num;
digit4(digit[num2]);
delay1(50);
}else if(count == 1){
if(row==0){
if(x==(1<<3)){
digit3(0x70);
}
}
}
count++;
if(count>2){
sum = num1 + num2;
if(sum<10){
digit4(digit[sum]);
delay1(90);
}
else{
for(volatile long i=0;i<50000;i++){
digit3(digit[sum/10]);
delay1(0.5);
digit4(digit[sum%10]);
delay1(0.5);
}
}
*outc = 0xFF;
count = 0;
}
}
}
}
}
void loop() {
// put your main code here, to run repeatedly:
}