用c语言编写易简计算器
在c51中用c语言编写简易计算器
#include
#define BYTE unsigned char
int jh;
int a;
int b;
int c; /*c是符号*/
/*按键的值*/
sbit P11=P1^3;
sbit P12=P1^2;
sbit P13=P1^1;
sbit P14=P1^0;
BYTE disply[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(int ms) //延时函数
{
while(ms--)
{ int h;
for( h=0;h<=250;h++)
{
;
}
}
}
void get_jianzhi() //获取键盘值的函数
{
BYTE disi;BYTE gaosi;
gaosi=P2;
P2=0x0f;delay(10 );disi=P2;
gaosi=gaosi+disi;
switch(gaosi)
{
case 0xee:{jh=0;break;}
case 0xde:{jh=1;break;}
case 0xbe:{jh=2;break;}
case 0x7e:{jh=3;break;}
case 0xed:{jh=4;break;}
case 0xdd:{jh=5;break;}
case 0xbd:{jh=6;break;}
case 0x7d:{jh=7;break;}
case 0xeb:{jh=8;break;}
case 0xdb:{jh=9;break;}
case 0xbb:{jh=10;break;}
case 0x7b:{jh=11;break;}
case 0xe7:{jh=12;break;}
case 0xd7:{jh=13;break;}
case 0xb7:{jh=14;break;}
case 0x77:{jh=15;break;}
}
do{P2=0xf0;}while(P2!=0xf0);
}
void show() /*显示函数*/
{
BYTE m; /*千位*/
BYTE h; /*百位*/
BYTE j; /*十位*/
BYTE i; /*个位*/
P3=0xff;
if(c==14)
{b=0;}
else
{ }
while(P2==0xf0) /*有键按下则跳出循环函数*/
{
j=0;i=0;h=0;m=0;
if(b!=0) /*b不为0则显示b并判断它有几位数*/
{
if(b>99) {h=b/100;j=(b-h*100)/10;i=b%10;}
else{
if(b>9){j=b/10;i=b%10;}
else{i=b;}
}
}
else{
if(a>999)
{ m=a/1000;h=(a-m*1000)/100;
j=(a-m*1000-h*100)/10;i=a%10;
}