单片机的实现多任务程序(4)
发布时间:2021-06-06
发布时间:2021-06-06
在51单片机如何实现多任务的程序
//键盘扫描子程序
void Scan_Key(void)
{
// 按键1扫描 //如果是一个抖动的话 下次按键没有防抖功能 if (( Key1_Flag1 == 0 ) //key1_flag1为按键按下标志; && ( Key1_Flag2 == 0 ) //key1_flag2为按键弹起标志; && ( First_Key == 0 ))//key1_delay1为按键一延计数; { //first_key为按键一是否按下; Key1_Delay1 = 10; //10毫秒延时时间
Key1_Flag1 = 1;
}
if (( Key1_Flag1 == 1 ) && (Key1_Delay1 == 0 ))
{
Key1_Flag1=0;
if( First_Key == 0 )
{
Key1_Flag2 = 1;
}
}
if (( Key1_Flag2 == 1 )
&& ( First_Key == 1 ))
{
//按键时间超过3秒表示进入按键显示状态
if ( Key1_Delay2 >= 1500 )
{
CDis_Flag = !CDis_Flag; //程序进入按键显示状态 Clear_Key_Data();
Key1_Delay2 = 0;
}
else
{
Key1_Delay2 = 0;
if( CDis_Flag )
{
SMG_Value[Move_Num] += 1;
if( SMG_Value[Move_Num] >= 10)
SMG_Value[Move_Num] = 0;
}
}