欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機代碼 為什么按第三次K1的時候沒有反應? [打印本頁]

作者: umasouye    時間: 2023-4-22 12:06
標題: 單片機代碼 為什么按第三次K1的時候沒有反應?
大哥們,幫看下這段代碼,為什么按第三次K1的時候沒有反應,明明和前兩次是一樣的代碼,是按鍵這里的問題嗎
void key_baihei_scan()
{
        if(!K1)  //如果檢測到低電平,說明按鍵按下
    {
            Delayms(10); //延時去抖,一般10-20ms
        if(!K1)     //再次確認按鍵是否按下,沒有按下則退出
            {
                while(!K1)//如果確認按下按鍵等待按鍵釋放,沒有則退出
                    {
                                    
                            Delayus(50);        
                                      
                          }
                        moshi = moshi+1;
                        if(moshi == 1) //靜態動畫模式
                        {        
                                shuzhi=shuzhi+1;                     
                        }
                        if(moshi == 2) //靜態動畫模式
                        {        
                                shuzhi=shuzhi+1;                     
                        }
                        if(moshi == 3) //靜態動畫模式
                        {        
                                shuzhi=shuzhi+3;                     
                        }

                        
                }
        }
}
void shuchu()
{
                if(K1)
                {        
                        if(shuzhi==1)
                        {
                        for(layer=0;layer<8;layer++)
                        {
                        lie(~shuzua[layer*8+1],~shuzua[layer*8+3],~shuzua[layer*8+5],~shuzua[layer*8+7]);
                        lie(~shuzua[layer*8+0],~shuzua[layer*8+2],~shuzua[layer*8+4],~shuzua[layer*8+6]);

                        RCLK=0;                        //模擬鎖存信號端口      
                        nop_();
                        RCLK=1;        
                        hansao(7-layer);                     
                        Delayus(10);                        
                 }
                }
                        if(shuzhi==2)
                        {
                        for(layer=0;layer<8;layer++)
                        {
                        lie(~shuzub[layer*8+1],~shuzub[layer*8+3],~shuzub[layer*8+5],~shuzub[layer*8+7]);
                        lie(~shuzub[layer*8+0],~shuzub[layer*8+2],~shuzub[layer*8+4],~shuzub[layer*8+6]);

                        RCLK=0;                        //模擬鎖存信號端口      
                        nop_();
                        RCLK=1;        
                        hansao(7-layer);                     
                        Delayus(10);                        
                 }
                }
                        if(shuzhi==3)
                        {
                        for(layer=0;layer<8;layer++)
                        {
                        lie(~shuzuc[layer*8+1],~shuzuc[layer*8+3],~shuzuc[layer*8+5],~shuzuc[layer*8+7]);
                        lie(~shuzuc[layer*8+0],~shuzuc[layer*8+2],~shuzuc[layer*8+4],~shuzuc[layer*8+6]);

                        RCLK=0;                        //模擬鎖存信號端口      
                        nop_();
                        RCLK=1;        
                        hansao(7-layer);                     
                        Delayus(10);                        
                 }
                }
               
                }
}        
        
void main()
{
        while(1)
        {key_baihei_scan();
                shuchu();

        }
}



作者: zhuls    時間: 2023-4-22 15:23
moshi 的賦值范圍是多少?0-3嗎?那就moshi ++; moshi =moshi %4;
另外moshi =0是什么情況?
作者: wulin    時間: 2023-4-22 16:09
void key_baihei_scan()
{
        if(!K1)  //如果檢測到低電平,說明按鍵按下
        {
                Delayms(10); //延時去抖,一般10-20ms
                if(!K1)     //再次確認按鍵是否按下,沒有按下則退出
                {
                        while(!K1);//如果確認按下按鍵等待按鍵釋放,沒有則退出
                        moshi++;
                        if(moshi>3)
                        {        
                                shuzhi=0;
                        }
                        if(moshi == 0)
                        {        
                                //
                        }
                        if(moshi == 1) //靜態動畫模式
                        {        
                                shuzhi=shuzhi+1;
                        }
                        if(moshi == 2) //靜態動畫模式
                        {        
                                shuzhi=shuzhi+1;                     
                        }
                        if(moshi == 3) //靜態動畫模式
                        {        
                                shuzhi=shuzhi+3;                     
                        }
                }
        }
}
作者: fushunwang    時間: 2023-4-22 18:04
程序需要在按下三次按鍵后對moshi初始化,否則三次按鍵后這個程序沒有反應。                     if(moshi == 2) //靜態動畫模式                         {                                         shuzhi=shuzhi+2;                                              }                         if(moshi == 3) //靜態動畫模式                         {                                         shuzhi=shuzhi+3;                                              }其每次響應按鍵后需要加shuzhi==0;或改為         if(moshi == 2) //靜態動畫模式                         {                                         shuzhi=shuzhi+2;                                              }                         if(moshi == 3) //靜態動畫模式                         {                                         shuzhi=shuzhi+1;                                              },三次按鍵響應后初始化shuzhi==0




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1