51单片机编程简单计算器
时间: 2023-05-28 10:06:07 浏览: 136
以下是51单片机编程简单计算器的程序示例,可以实现加、减、乘、除四种基本运算。
```
#include <reg52.h> // 导入单片机头文件
sbit LED = P2^0; // 定义LED灯所在的引脚
sbit KEY_ADD = P1^0; // 定义加法键所在的引脚
sbit KEY_SUB = P1^1; // 定义减法键所在的引脚
sbit KEY_MUL = P1^2; // 定义乘法键所在的引脚
sbit KEY_DIV = P1^3; // 定义除法键所在的引脚
int num1 = 0; // 第一个操作数
int num2 = 0; // 第二个操作数
int result = 0; // 计算结果
void delay(int ms) // 延时函数
{
int i, j;
for (i = 0; i < ms; i++) {
for (j = 0; j < 110; j++);
}
}
void main()
{
while (1) { // 无限循环
if (KEY_ADD == 0) { // 按下加法键
num1 = 10; // 设置第一个操作数为10
num2 = 20; // 设置第二个操作数为20
result = num1 + num2; // 计算结果
LED = 0; // 点亮LED灯
delay(500); // 延时500毫秒
LED = 1; // 熄灭LED灯
}
if (KEY_SUB == 0) { // 按下减法键
num1 = 30; // 设置第一个操作数为30
num2 = 15; // 设置第二个操作数为15
result = num1 - num2; // 计算结果
LED = 0; // 点亮LED灯
delay(500); // 延时500毫秒
LED = 1; // 熄灭LED灯
}
if (KEY_MUL == 0) { // 按下乘法键
num1 = 5; // 设置第一个操作数为5
num2 = 8; // 设置第二个操作数为8
result = num1 * num2; // 计算结果
LED = 0; // 点亮LED灯
delay(500); // 延时500毫秒
LED = 1; // 熄灭LED灯
}
if (KEY_DIV == 0) { // 按下除法键
num1 = 50; // 设置第一个操作数为50
num2 = 10; // 设置第二个操作数为10
result = num1 / num2; // 计算结果
LED = 0; // 点亮LED灯
delay(500); // 延时500毫秒
LED = 1; // 熄灭LED灯
}
}
}
```
在程序示例中,我们定义了四个按键和一个LED灯。按下不同的按键,就会进行不同的运算,并在LED灯上显示结果。程序中的操作数和结果都是整数类型,如果需要进行浮点数运算,则需要使用浮点数类型。同时,程序中的计算方式是固定的,如果需要实现输入任意操作数进行计算的功能,则需要使用键盘输入等其他方式。
阅读全文