switch (key3) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: number = number * 10 + (key3 - 0); length++; // 显示当前输入的数字 DisplayNumber(2, 0, number, length); break; default: break; } // 在特定条件下计算结果并显示 if ((key_Pressed == 1) && ((tmp & 0xf000) != 0xF000)) { thousands = (number / 1000) % 10; hundreds = (number / 100) % 10; tens = (number / 10) % 10; ones = number % 10; // 在LCD屏上显示千位、百位、十位和个位数字 DisplayNumber(2, 7, thousands, 1); DisplayNumber(2, 8, hundreds, 1); DisplayNumber(2, 9, tens, 1); DisplayNumber(2, 10, ones, 1); int result = thousands * 1000 + hundreds * 100 + tens * 10 + ones * 1; LCD_displaychar(3, 0, ""); // 这里可能需要更改为正确的参数 write_dat(result % 100 + 0x30); // 这里可能需要更改为正确的参数 }
时间: 2024-04-21 15:24:16 浏览: 14
根据你提供的代码,我注意到在每次按下数字键后,都会更新 `number` 变量和 `length` 变量,并调用 `DisplayNumber()` 函数来显示当前输入的数字。然后,在特定条件下,会计算结果并显示在LCD屏上。
这段代码的逻辑看起来是没有问题的。请确保你已经正确初始化了相关的变量,并且 `DisplayNumber()`、`LCD_displaychar()` 和 `write_dat()` 函数的参数是正确的。
另外,请注意确保 `key_Pressed` 和 `tmp` 变量在使用前已经定义并赋值,以满足你的特定条件。
如果你仍然遇到问题或有其他疑问,请提供更多的上下文信息,以便我能够更好地帮助你。
相关问题
switch (key3) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: number = number * 10 + (key3 - 0); length++; // 显示当前输入的数字 DisplayNumber(2, 0, number, length); break; }在增加一个利用公式显示多位数字并且用算法把LCD12864显示的数字从左往右高位到低位,把他计算出了
如果你想要增加一个利用公式显示多位数字并且将LCD 12864显示的数字从左往右高位到低位,你可以使用一个循环来逐位计算和显示数字。
以下是一个示例代码:
```c
switch (key3)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
number = number * 10 + (key3 - 0);
length++;
// 显示当前输入的数字
DisplayNumber(2, 0, number, length);
break;
default:
break;
}
// 在特定条件下计算结果并显示
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 = 0; i < 4; i++)
{
DisplayNumber(2, i + 7, digits[i], 1);
}
LCD_displaychar(3, 0, ""); // 这里可能需要更改为正确的参数
// 在LCD屏上显示结果
write_dat(result % 100 + 0x30); // 这里可能需要更改为正确的参数
}
```
这段代码通过循环将结果的每一位存储到一个数组中,并使用 `DisplayNumber()` 函数在LCD屏上显示每一位数字。然后,你可以使用 `write_dat()` 函数来显示结果。
请注意根据你的具体情况调整 `DisplayNumber()` 和 `write_dat()` 函数的参数,以使其正确显示字符和数字。
希望这个修改能够满足你的需求。如果你还有其他问题或需要进一步帮助,请随时提问。
php中值不值 switch ($post['batch']['key']){ case 3: break; case (1 || 2): break; }这样的写法
这个写法是不正确的,因为在 case 中使用的表达式 (1 || 2) 实际上会被解析为布尔值 true,因此只有在 $post['batch']['key'] 的值为 1 或 2 时才会被匹配到。如果 $post['batch']['key'] 的值不是 1 或 2,那么就不会匹配到任何一个 case,也不会执行任何一个 case 中的语句。
如果你想要匹配 $post['batch']['key'] 的值为 1 或 2,可以这样写:
```
switch ($post['batch']['key']) {
case 3:
// do something
break;
case 1:
case 2:
// do something
break;
}
```
这样写可以让 $post['batch']['key'] 的值为 1 或 2 时都能匹配到第二个 case,并执行其中的语句。而当 $post['batch']['key'] 的值为 3 时,就会匹配到第一个 case,并执行其中的语句。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)