if ((key_Pressed == 1) && ((tmp & 0xf000) != 0xF000)) { int digits[4]; // 数字的每一位 int result = number; // 计算结果 // 将结果的每一位存储到数组中 for (int i = 3; i >= 0; i--) { digits[i] = result % 10; result /= 10; } // 清除LCD屏上的内容 for (int i = 7; i <= 10; i++) { DisplayNumber(2, i, 0, 1); } // 在LCD屏上显示每一位数字 for (int i = 0; i < 4; i++) { DisplayNumber(2, i + 7, digits[i], 1); } LCD_displaychar(3, 0, "频率一"); // 这里可能需要更改为正确的参数 // 在LCD屏上显示结果 write_dat(result % 100 + 0x30); // 这里可能需要更改为正确的参数 }为啥不行
时间: 2024-04-21 20:22:51 浏览: 117
根据你提供的代码,你希望在特定条件下计算结果并在LCD屏上显示每一位数字和结果。不过,我注意到你将 `result` 变量初始化为 `number`,这可能导致显示的结果不正确。
我推测你的意图是将计算的结果存储在 `result` 变量中,而不是 `number` 变量。因此,你需要将 `result` 的赋值语句修改为 `result = number;`。
以下是修改后的代码示例:
```c
if ((key_Pressed == 1) && ((tmp & 0xf000) != 0xF000))
{
int digits[4]; // 数字的每一位
int result = number; // 计算结果
// 将结果的每一位存储到数组中
for (int i = 3; i >= 0; i--)
{
digits[i] = result % 10;
result /= 10;
}
// 清除LCD屏上的内容
for (int i = 7; i <= 10; i++)
{
DisplayNumber(2, i, 0, 1);
}
// 在LCD屏上显示每一位数字
for (int i = 0; i < 4; i++)
{
DisplayNumber(2, i + 7, digits[i], 1);
}
LCD_displaychar(3, 0, "频率一"); // 这里可能需要更改为正确的参数
// 在LCD屏上显示结果
write_dat(result % 100 + 0x30); // 这里可能需要更改为正确的参数
}
```
请注意,你仍然需要根据你的具体情况调整 `DisplayNumber()`、`LCD_displaychar()` 和 `write_dat()` 函数的参数,以使其正确地清除和显示内容。
希望这个修改能够解决你的问题。如果你还有其他问题或需要进一步帮助,请随时提问。
阅读全文