初级会员
- 积分
- 112
- 金钱
- 112
- 注册时间
- 2023-3-26
- 在线时间
- 16 小时
|
5金钱
//主程序死循环的程序//
key = KEY_scan(0); //读取键值 模式0
if(key)
{
switch(key)
{
case KEY1_D: //按键一按下
canshu_flag1 = canshu_flag1 + 1;//数码管显示参数标志位
// LED1 = !LED1;//翻转LED0电平
// display_data(x = (x + 100),i);
if(canshu_flag1 < 4) //4个参数
{
switch(canshu_flag1)
{
case 1: //参数一
LED1 = !LED1;
for(;;)
{
send_data(num[11],1);//数码管第一位
delay_ms(1);
send_data(num[1],2);//数码管第二位
delay_ms(1);
send_data(num[14],3);//数码管第三位
delay_ms(1);
if(canshu_flag1 == 2)break;
}
break;
case 2: //参数二
LED0 = !LED0;
for(;;)
{
send_data(num[12],1);
delay_ms(1);
send_data(num[1],2);
delay_ms(1);
send_data(num[14],3);
delay_ms(1);
}
break;
case 3:
for(;;)
{
send_data(num[13],1);
delay_ms(1);
send_data(num[1],2);
delay_ms(1);
send_data(num[14],3);
delay_ms(1);
}
break;
}
}
else if(canshu_flag1 >= 4)
{
canshu_flag1 = 1;
}
break;
case KEY2_D:
// LED1 = !LED1;//翻转LED1电平
// display_data(x = (x + 10),i);
break;
case KEY3_D:
// BEEP = !BEEP;//翻转蜂鸣器电平
// display_data(x = (x + 1),i);
break;
case KEY4_D:
while(1)
{
if(a < 100)
{
for(i = 1; i < 4;i ++)
{
display_data(x,i);
delay_ms(1);
}
a++;
}
if(a == 100)
{
send_data(num[10],2);
// delay_ms(1);
for(i=1;i<3;i++)
{
display_data(x,i); //所有位正常显示
delay_ms(1);
}
b++;
if(b == 100)
{
a = 0;
b = 0;
}
}
}
// LED0 = !LED0;//翻转LED1电平
// BEEP = !BEEP;//翻转蜂鸣器电平
break;
case KEY5_D:
LED0 = !LED0;
break;
case KEY_0:
break;
}
}else delay_ms(10);
|
最佳答案
查看完整内容[请看2#楼]
给你举个例子
while(1)
{
key();
led();
}
uint8_t num0;
uint8_t num1;
uint8_t num2;
void key()
{
switch(KEY_scan(0))
{
case KEY1_D: canshu_flag1++;if((canshu_flag1>3)canshu_flag1=0;break;
case KEY2_D:
switch(canshu_flag1)
{
case 0:num0++;if(num0>9) num0=0;break;
case 1:num1++;if(num1>9) num1=0;break;
case 2:num2++;if(num2>9) num2=0;break;
}
}
}
void led()
{
switch(cans ...
|