树莓派计算器c语言,利用树莓派实现简单的计算器

#include #include#include

#define DIGIT1 9

#define DIGIT2 13

#define DIGIT3 12

#define DIGIT4 8

#define BTN0 10

#define BTN1 11

#define true 1

char digit[10][8] = //the loop-running bar in the left windows

{

{0,0,0,1,0,0,1,0},//0

{1,0,0,1,1,1,1,1},//1

{0,0,1,1,0,1,0,0},//2

{0,0,0,1,1,1,0,0},//3

{1,0,0,1,1,0,0,1},//4

{0,1,0,1,1,0,0,0},//5

{1,1,0,1,0,0,0,0},//6

{0,0,0,1,1,1,1,1},//7

{0,0,0,1,0,0,0,0},//8

{0,0,0,1,1,0,0,0}//9

};char sign[8]={1,1,1,1,1,1,0,1};//-

char nosign[8]={1,1,1,1,1,1,1,1};voidmain()

{intpin;//int m = 0, n = 0;//int flag = 1;

int chip = 0;intchip0,chip1,chip2,chip3;int run = 0;

unsignedint time0 = 0, time1 = 0;inta,b;charc;intresult;intnum1,num2;int negative = 0;int iteration = 500;inti;if (wiringPiSetup () == -1) //test the install status of wiringPi

{

exit (1) ;

}for (pin = 0 ; pin < 8 ; ++pin)

{

pinMode (pin, OUTPUT) ;

digitalWrite(pin, HIGH);

}

pinMode(DIGIT1, OUTPUT);

pinMode(DIGIT2, OUTPUT);

pinMode(DIGIT3, OUTPUT);

pinMode(DIGIT4, OUTPUT);//pinMode(BTN0, INPUT);//The start button

pinMode(BTN1, INPUT); //The stop/stop button

while (true)

{

scanf("%d%c%d",&a,&c,&b);switch(c){case ‘+‘:result = a+b;break;case ‘-‘:result = a-b;break;case ‘*‘:result = a*b;break;case ‘/‘:result = a/b;break;

}

printf("%d\n",result);if(result<0){

negative=1;

result= -result;

}elsenegative=0;

result= result%100; //only display 2-digit

num1 = result/10;

num2= result%10;//printf("%d %d\n",num1,num2);

for(i=0;i

{

digitalWrite(pin, sign[pin]);

}

}else{for (pin = 0; pin < 8; pin++)

{

digitalWrite(pin, nosign[pin]);

}

}

digitalWrite(DIGIT1,1);

}else if(i%3==1){for (pin = 0; pin < 8; pin++)

{

digitalWrite(pin, digit[num1][pin]);

}

digitalWrite(DIGIT2,1);

}else{for (pin = 0; pin < 8; pin++)

{

digitalWrite(pin, digit[num2][pin]);

}

digitalWrite(DIGIT3,1);

}

delay(10);

digitalWrite(DIGIT1,0);

digitalWrite(DIGIT2,0);

digitalWrite(DIGIT3,0);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值