stm32f103c8t6简易计算器
时间: 2023-11-14 22:04:56 浏览: 107
基于STM32F103C8T6的简易计算器可以实现基本的多位加减乘除功能,输入来自4*4键盘,输出在LCD12864上显示。以下是一个简单的实现步骤:
1. 首先需要定义键盘的行列式矩阵,以便读取键盘输入。
2. 然后需要定义LCD12864的引脚连接方式,以便在屏幕上显示结果。
3. 接下来需要编写读取键盘输入的代码,并将输入的数字和运算符存储在一个数组中。
4. 然后需要编写计算代码,根据输入的运算符进行相应的计算,并将结果存储在一个变量中。
5. 最后需要将计算结果在LCD12864上显示出来。
以下是一个简单的代码示例:
```c
#include "stm32f10x.h"
#include "lcd12864.h"
#include "key.h"
int main(void)
{
u8 key;
u8 input[10];
u8 index = 0;
u8 op = '+';
u32 result = 0;
LCD_Init(); // 初始化LCD12864
KEY_Init(); // 初始化键盘
while (1)
{
key = KEY_Scan(); // 读取键盘输入
if (key != 0xff) // 如果有输入
{
if (key >= '0' && key <= '9') // 如果是数字
{
input[index++] = key; // 存储数字
}
else if (key == '+' || key == '-' || key == '*' || key == '/') // 如果是运算符
{
input[index] = '\0'; // 数字数组结束符
result = calculate(result, atoi(input), op); // 计算结果
op = key; // 存储运算符
index = 0; // 数字数组下标清零
}
else if (key == '=') // 如果是等号
{
input[index] = '\0'; // 数字数组结束符
result = calculate(result, atoi(input), op); // 计算结果
LCD_ShowNum(0, 0, result, 5, 16); // 在LCD上显示结果
op = '+'; // 运算符清零
index = 0; // 数字数组下标清零
result = 0; // 结果清零
}
}
}
}
u32 calculate(u32 a, u32 b, u8 op)
{
switch (op)
{
case '+':
return a + b;
case '-':
return a - b;
case '*':
return a * b;
case '/':
return a / b;
default:
return 0;
}
}
```
阅读全文