if(ROW3==0) //¼õ { Display_Weight(); if(ROW3==0) { while(!ROW3) { key_press_num++; if(key_press_num>=100) { key_press_num=0; while(!ROW3) { if(GapValue>1) GapValue-=10; Buzzer=0; for(p=0;p<2;p++) Display_Weight(); Buzzer=1; for(p=0;p<2;p++) Display_Weight(); Get_Weight(); } } Display_Weight(); Delay_ms(8); } if(key_press_num!=0) { key_press_num=0; if(GapValue>1) GapValue--; Buzzer=0; for(p=0;p<10;p++) Display_Weight(); Buzzer=1; }
时间: 2024-04-04 07:29:03 浏览: 111
这是一个 C 语言程序段,其中包含了嵌入式系统中的按键检测和重量显示等功能。当按键 ROW3 被按下时,程序会先显示当前的重量,然后进入一个循环中,不断检测按键是否被松开。如果按键一直被按下,那么程序会不断累加一个名为 GapValue 的变量,同时通过蜂鸣器和数码管等方式提示用户。当按键松开后,程序会重新获取当前重量并显示在数码管上。如果按键 ROW3 被按下时,key_press_num 不等于 0,那么程序会将 key_press_num 清零,并且将 GapValue 减 1,并通过蜂鸣器和数码管等方式提示用户。最后,程序会重新获取当前重量并显示在数码管上。
相关问题
if(ROW2==0) //¼Ó { Display_Weight(); if(ROW2==0) { while(!ROW2) { key_press_num++; if(key_press_num>=100) { key_press_num=0; while(!ROW2) { if(GapValue<10000) GapValue+=10; Buzzer=0; for(p=0;p<2;p++) Display_Weight(); Buzzer=1; for(p=0;p<2;p++) Display_Weight(); Get_Weight(); } } Display_Weight(); Delay_ms(8); }
这是一个 C 语言程序段,其中包含了嵌入式系统中的按键检测和重量显示等功能。当按键 ROW2 被按下时,程序会先显示当前的重量,然后进入一个循环中,不断检测按键是否被松开。如果按键一直被按下,那么程序会不断累加一个名为 GapValue 的变量,同时通过蜂鸣器和数码管等方式提示用户。当按键松开后,程序会重新获取当前重量并显示在数码管上。
u8 key_can; //°´¼üÖµ void key() //¶ÀÁ¢°´¼ü³Ì { if(key1 == 0 || key2 == 0 || key3 == 0) //Óа´¼ü°´Ï { delay_ms(1); //ÑÓʱÏû¶¶ if(key1 == 0) //È·ÈÏÊÇ°´¼ü°´Ï key_can = 1; //µÃµ½°´¼üÖµ if(key2 == 0) //È·ÈÏÊÇ°´¼ü°´Ï key_can = 2; //µÃµ½°´¼üÖµ if(key3 == 0) //È·ÈÏÊÇ°´¼ü°´Ï key_can = 3; //µÃµ½°´¼üÖµ } } 转换为switch语句‘
以下是将代码转换为switch语句的示例:
```
u8 key_can; //定义键值变量
void key() //键盘扫描函数
{
if (key1 == 0 || key2 == 0 || key3 == 0) //判断是否有按键按下
{
delay_ms(1); //延时去抖动
switch (1)
{
case (key1 == 0): //判断按下的是哪个按键
key_can = 1; //记录按键值
break;
case (key2 == 0):
key_can = 2;
break;
case (key3 == 0):
key_can = 3;
break;
default:
break;
}
}
}
```
以上代码中,switch语句用于判断按下的是哪个按键,case语句中使用了表达式来判断按键是否按下,如果表达式为真,则执行对应的操作。default语句用于处理无法匹配到的情况。
阅读全文
相关推荐
















