#include "header.h"
void setup() {
init();
volatile char *outf, *ink, *outa, *outc, x,y,row,num, num1,num2,num3,num4;
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;
digit3(digit[num1]);
}
else if(count==1){
num2 = num;
display2(num1, num2, outf, ink, digit);
}
else if(count==2){
if(row==0){
if(x==(1<<3)){
digit4(0x70);
}
}
}
else if(count==3){
num3 = num;
digit3(digit[num3]);
}else if(count==4){
num4 = num;
display2(num3, num4, outf, ink, digit);
}
count++;
if(count>4){
int sum = (num1+num3)*10 + num2 + num4;
if(sum>=10 && sum<100){
char dig1 = sum/10;
char dig2 = sum%10;
for(volatile long i=0;i<50000;i++){
digit3(digit[dig1]);
delay1(0.5);
digit4(digit[dig2]);
delay1(0.5);
}
}else{
char dig1 = sum/100;
char dig2 = (sum/10)%10;
char dig3 = sum%10;
for(volatile long i=0;i<50000;i++){
digit2(digit[dig1]);
delay1(0.5);
digit3(digit[dig2]);
delay1(0.5);
digit4(digit[dig3]);
delay1(0.5);
}
}
*outc = 0xFF;
count = 0;
}
}
}
}
}
void loop() {
// put your main code here, to run repeatedly:
}