at89c51单片机计算器源代码
时间: 2023-07-24 12:04:52 浏览: 147
以下是一个使用AT89C51单片机的简单计算器的示例代码:
```
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar num1,num2,op,result;
void delay(uint xms) //延时函数
{
uint i,j;
for(i=xms;i>0;i--)
for(j=112;j>0;j--);
}
void init() //初始化函数
{
P0=0x00; //P0口全部清零
P2=0x00; //P2口全部清零
}
void getnum() //获取数字函数
{
num1=P0; //将P0口的值赋给num1
while(1) //无限循环
{
num2=P0; //将P0口的值赋给num2
if(num2!=num1) //如果num2与num1不相等
break; //跳出循环
}
}
void getop() //获取运算符函数
{
op=P0; //将P0口的值赋给op
while(1) //无限循环
{
result=P0; //将P0口的值赋给result
if(result!=op) //如果result与op不相等
break; //跳出循环
}
}
void calc() //计算函数
{
switch(op) //根据op的值进行不同的运算
{
case '+': result=num1+num2; break;
case '-': result=num1-num2; break;
case '*': result=num1*num2; break;
case '/': result=num1/num2; break;
default: break;
}
}
void display() //显示函数
{
P2=result; //将result的值赋给P2口
delay(100); //延时100毫秒
P2=0x00; //将P2口的值清零
}
void main() //主函数
{
init(); //初始化
while(1) //无限循环
{
getnum(); //获取数字
getop(); //获取运算符
calc(); //计算
display(); //显示
}
}
```
这个代码可以让你使用AT89C51单片机实现一个简单的四则运算计算器。请注意,这只是一个示例代码,你可以根据自己的需求进行修改和优化。
阅读全文