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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1755|回復: 13
打印 上一主題 下一主題
收起左側

這段單片機代碼判斷失效 求大佬解惑

[復制鏈接]
跳轉到指定樓層
樓主
ID:1114858 發表于 2024-3-31 11:59 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
unsigned char  Positional_Selection()//位選:選擇更改位{

        if(Key()==2)
        {
               
                Bit_selection++;
               
        }
        
        if(Bit_selection>5)
        {
               
                Bit_selection=0;
        
        }

        
        return Bit_selection;
}
按下按鈕后
if(Key()==2)
        {

                Bit_selection++;

        }

這段代碼判斷失效
求各位大佬幫忙看下到底是哪出了問題

DS1302時鐘顯示 - 可調時鐘.rar

60.28 KB, 下載次數: 6

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:712097 發表于 2024-3-31 17:23 | 只看該作者
這段代碼對應的IO是P30,查下有沒有上拉?或者你把這個與正常的按鍵IO交換一下,就對判斷是軟件問題還是硬件問題了。
回復

使用道具 舉報

板凳
ID:1114858 發表于 2024-3-31 17:47 | 只看該作者
chxelc 發表于 2024-3-31 17:23
這段代碼對應的IO是P30,查下有沒有上拉?或者你把這個與正常的按鍵IO交換一下,就對判斷是軟件問題還是硬 ...

謝謝回復,排查過了不是硬件問題
回復

使用道具 舉報

地板
ID:1109793 發表于 2024-3-31 17:53 | 只看該作者
可能key()永遠不會等于2,被編譯器忽略了
回復

使用道具 舉報

5#
ID:1114858 發表于 2024-3-31 18:06 | 只看該作者
xiaobendan001 發表于 2024-3-31 17:53
可能key()永遠不會等于2,被編譯器忽略了

謝謝你的回復,Key()這個函數的返回值里是可以等于2的這個我測試過了
回復

使用道具 舉報

6#
ID:69038 發表于 2024-3-31 19:25 | 只看該作者
要看你key()的代碼和硬件電路連接。。
回復

使用道具 舉報

7#
ID:1114858 發表于 2024-4-1 11:20 來自觸屏版 | 只看該作者
zhuls 發表于 2024-3-31 19:25
要看你key()的代碼和硬件電路連接。。

謝謝你的回復,用的是普中的開發板,硬件應該沒有什么問題
回復

使用道具 舉報

8#
ID:1109793 發表于 2024-4-1 12:31 | 只看該作者
if(Bit_selection>5)
        {
               
                Bit_selection=0;
        
        }
這部分有被編譯嗎?KEY()里面的代碼發出來看看吧
回復

使用道具 舉報

9#
ID:1010435 發表于 2024-4-1 12:51 | 只看該作者
  1. 按下按鈕后
  2. if(Key()==2)
  3.         {

  4.                 Bit_selection++;

  5.         }

  6. 這段代碼判斷失效
復制代碼


你確定這個代碼是失效了,還是Bit_selection一直在++
回復

使用道具 舉報

10#
ID:69038 發表于 2024-4-1 13:29 | 只看該作者
下一站過后 發表于 2024-4-1 11:20
謝謝你的回復,用的是普中的開發板,硬件應該沒有什么問題

KEY()里面的代碼呢?
回復

使用道具 舉報

11#
ID:1114858 發表于 2024-4-1 20:31 | 只看該作者
zhuls 發表于 2024-4-1 13:29
KEY()里面的代碼呢?

#include <REGX51.H>
#include "Delay.h"       
unsigned char Key()
{
        unsigned char KeyNumber=0;
       
        if(P3_1==0){Delay(20);while(P3_1==0);Delay(20);KeyNumber=1;}
        if(P3_0==0){Delay(20);while(P3_0==0);Delay(20);KeyNumber=2;}
        if(P3_2==0){Delay(20);while(P3_2==0);Delay(20);KeyNumber=3;}
        if(P3_3==0){Delay(20);while(P3_3==0);Delay(20);KeyNumber=4;}
       
        return KeyNumber;
}
       
回復

使用道具 舉報

12#
ID:1114858 發表于 2024-4-1 20:31 | 只看該作者
mtt661 發表于 2024-4-1 12:51
你確定這個代碼是失效了,還是Bit_selection一直在++

謝謝回復,
沒失效
回復

使用道具 舉報

13#
ID:1114858 發表于 2024-4-1 20:32 | 只看該作者
mtt661 發表于 2024-4-1 12:51
你確定這個代碼是失效了,還是Bit_selection一直在++

#include <REGX51.H>
#include "Delay.h"       
unsigned char Key()
{
        unsigned char KeyNumber=0;
       
        if(P3_1==0){Delay(20);while(P3_1==0);Delay(20);KeyNumber=1;}
        if(P3_0==0){Delay(20);while(P3_0==0);Delay(20);KeyNumber=2;}
        if(P3_2==0){Delay(20);while(P3_2==0);Delay(20);KeyNumber=3;}
        if(P3_3==0){Delay(20);while(P3_3==0);Delay(20);KeyNumber=4;}
       
        return KeyNumber;
}
       
這是Key里面的代碼麻煩大佬給看看
回復

使用道具 舉報

14#
ID:619259 發表于 2024-4-2 00:07 | 只看該作者
你的模塊化不完善,.h文件有了但沒包含,等于沒有呵
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表