⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculator.c

📁 keil开发51加减乘计算器 都说单片机做乘法很吃力 自己做了一个乘法计算器 感觉还可以 至少我没感觉有多慢
💻 C
字号:
/***********计算器************/
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int


/*****???????*****/
uchar code wordcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x71};

uchar abs[3][6];
uchar art[6];
uchar brt[6];

uchar fullflag,afullflag,bfullflag;	//存入数组数的个数
uchar abs;				//当前操作数标志(0被加数1加数2和)
uchar opreat;			//加减标志 1加 2减
uchar key;
uchar point;			//小数点的位置
uchar 
float af,bf,cf;			//单片机进行数组操作的浮点数
 
/******延时函数传入参数要延时毫秒数******/
void delay(uchar xms)
{
	uint i,j;
	for(i=xms*10;i>0;i--)
		for(j=20;j>0;j--);
}
/********键盘扫描返回键值(0-15)*******/
/********若没键按下返回-5通过判断返回****/
/********是否大于0判断是否有键按下*******/
char keyscan()
{
	uchar line,row,P2temp;
	P2=0xf0;
	P2temp=P2;
	if(P2temp!=0xf0)
	{
		delay(10);
		if(P2temp!=0xf0)
		{
			switch(P2temp)
			{
				case 0x70:row=1;break;
				case 0xb0:row=2;break;
				case 0xd0:row=3;break;
				case 0xe0:row=4;break;
			}
		}
		P2=0x0f;
		P2temp=P2;
		switch(P2temp)
		{
			case 0x07:line=1;break;
			case 0x0b:line=2;break;
			case 0x0d:line=3;break;
			case 0x0e:line=4;break;
		}
	}
	return((row-1)*4+line-1);
}
/***转换函数将输入的数字整合成一个浮点数用单片机运算****/ ÷
void conv()
{
	uchar i;
	for(i=0;i<6;i++)
	{
		art[i]=abs[6-i];
		brt[i]=abs[6-i];	
	}
}

void opreat()
{
	conv();
		
}

/**********显示函数************/
/*******传如要显示的数组*******/
void display(uchar *disarry,uchar disflag)
{
	uchar i,disbit=0xfe; //段选
	for(i=0;i<6;i++)
	{
		P1=(disbit<<1)+1;
		P0=wordcode[*(disarry+6*disflag+i)];
		delay(10);
	}
}


void main()
{
	char key,P2temp;
	while(1)
	{
		key=keyscan();
		do
		{
			P2=0xf0;
			P2temp=P2;
		}
		while((P2temp&0xf0)!=0xf0);
		P0=wordcode[key];
			
		if(key<9&&depth<6)
		{
		 	abs[abs][depth]=key;
			depth++;
		}
		else if(key==10)		  //小数点
		{
			apoint=depth;	  //记录小数点的位置
		}
		else if(key==11&&abs<2)		  //加号
		{
			abs++;
			adepth=depth;
			operat=1;
		} 
		else if(key==15)
		{
			operat();
		}
				
	}  
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -