帮我用keil5写一段可以计算三位数以内加减乘除的计算器程序
时间: 2023-08-13 09:07:31 浏览: 135
一个关于加减乘除的程序
好的,以下是一个可以计算三位数以内加减乘除的计算器程序的示例代码,您可以在 Keil 5 中打开并编译运行:
```c
#include <reg52.h>
sbit LED = P1^0; // 控制 LED 灯亮灭
sbit KEY_ADD = P3^0; // 加号按键
sbit KEY_SUB = P3^1; // 减号按键
sbit KEY_MUL = P3^2; // 乘号按键
sbit KEY_DIV = P3^3; // 除号按键
sbit KEY_EQ = P3^4; // 等于号按键
unsigned int num1 = 0; // 第一个输入的数字
unsigned int num2 = 0; // 第二个输入的数字
unsigned int result = 0; // 计算结果
unsigned char op = 0; // 操作符,0表示未确定,1表示加法,2表示减法,3表示乘法,4表示除法
void delay(unsigned int t)
{
unsigned int i, j;
for(i=0;i<t;i++)
{
for(j=0;j<125;j++)
{
// 空循环,延时约 1ms
}
}
}
void display(unsigned int n)
{
unsigned int i;
unsigned char digit[3] = {0};
digit[0] = n / 100; // 百位数字
digit[1] = n / 10 % 10; // 十位数字
digit[2] = n % 10; // 个位数字
for(i=0;i<3;i++)
{
P0 = ~(1 << i); // 选择数码管
P2 = digit[i]; // 显示数字
delay(5); // 延时一段时间
P2 = 0; // 关闭数码管
}
}
void main()
{
while(1)
{
// 检测加号按键是否按下
if(KEY_ADD == 0)
{
while(KEY_ADD == 0); // 等待按键释放
op = 1; // 设置操作符为加法
LED = 1; // 点亮 LED 灯
}
// 检测减号按键是否按下
else if(KEY_SUB == 0)
{
while(KEY_SUB == 0); // 等待按键释放
op = 2; // 设置操作符为减法
LED = 1; // 点亮 LED 灯
}
// 检测乘号按键是否按下
else if(KEY_MUL == 0)
{
while(KEY_MUL == 0); // 等待按键释放
op = 3; // 设置操作符为乘法
LED = 1; // 点亮 LED 灯
}
// 检测除号按键是否按下
else if(KEY_DIV == 0)
{
while(KEY_DIV == 0); // 等待按键释放
op = 4; // 设置操作符为除法
LED = 1; // 点亮 LED 灯
}
// 检测等于号按键是否按下
else if(KEY_EQ == 0)
{
while(KEY_EQ == 0); // 等待按键释放
LED = 0; // 熄灭 LED 灯
// 根据操作符进行计算
switch(op)
{
case 1: // 加法
result = num1 + num2;
break;
case 2: // 减法
result = num1 - num2;
break;
case 3: // 乘法
result = num1 * num2;
break;
case 4: // 除法
result = num1 / num2;
break;
default: // 操作符未确定
result = 0;
break;
}
// 显示计算结果
display(result);
// 清零
num1 = 0;
num2 = 0;
result = 0;
op = 0;
}
else
{
// 检测输入的数字是否超过三位数
if(num1 >= 100 || num2 >= 100)
{
num1 = 0;
num2 = 0;
}
// 检测数字键是否按下
else if(P3 != 0xFF)
{
if(num1 == 0) // 输入第一个数字
{
num1 = P3;
}
else // 输入第二个数字
{
num2 = P3;
}
while(P3 != 0xFF); // 等待按键释放
// 显示输入的数字
display(num1 * 10 + num2);
}
}
}
}
```
这段代码中,我们使用了 Keil 5 的 C 语言编写了一个计算器程序,可以进行加减乘除运算,输入的数字范围为 0 到 99,可以处理异常情况,如输入超过三位数的数字等。同时,我们还使用了数码管和 LED 灯进行了输出和提示。请注意,这只是一个示例代码,实际应用时还需要根据具体的需求进行修改和完善。
阅读全文