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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求幫忙看看這個程序這樣寫可以嗎?

[復制鏈接]
跳轉到指定樓層
樓主
ID:230975 發表于 2017-9-4 21:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
P0驅動數碼管,按鍵1按下時,數值加1,到9停止;按鍵2按下時,在當前數值上減一,到0停止。請幫忙看看這樣寫合適嗎謝謝。
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P2^0;
sbit key2=P2^1;
uchar num;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};
void delay(uint);
void keyscan();
void main()
  {
   P1=0xfe;
num=5;
P0=table[num];
while(1)
   {
    keyscan();
  P0=table[num];
   }

  }
void delay(uint z)
   {
     uint x,y;
  for(x=z;x>0;x--)
    for(y=110;y>0;y--);
   }
void keyscan()
   {
     if(key1==0)
  delay(10);
  if(key1==0)
    {
      
      if(num<=8)
    num++;
   while(!key1);
    }
   if(key2==0)
   delay(10);
   if(key2==0)
     {
   
   if(num>=1)
    num--;  
   while(!key2);
  }
   }
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:230975 發表于 2017-9-4 21:13 | 只看該作者
通電扣數碼管先顯示5,然后在5的基礎上加1或者減1顯示
回復

使用道具 舉報

板凳
ID:230970 發表于 2017-9-5 15:16 | 只看該作者
燒寫進單片機看看,沒看出毛病
回復

使用道具 舉報

地板
ID:230915 發表于 2017-9-5 15:34 | 只看該作者
有幾處問題哦,if語句。
回復

使用道具 舉報

5#
ID:229761 發表于 2017-9-5 15:39 | 只看該作者
你可以用仿真proteus看看,應該是可以的
回復

使用道具 舉報

6#
ID:213173 發表于 2017-9-5 16:28 | 只看該作者
if(key1==0),if(key2==0)下面少了花括號,delay起不到消抖作用。
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P2^0;
sbit key2=P2^1;
uchar num;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};
void delay(uint);
void keyscan();
void main()
{
//        P1=0xfe;
        num=5;
        P0=table[num];
        while(1)
        {
                keyscan();
                P0=table[num];
        }
}
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void keyscan()
{
        if(key1==0)
        {
                delay(10);
                if(key1==0)
                {
                        if(num<9)
                                num++;
                        while(!key1);
                }
        }
        if(key2==0)
        {
                delay(10);
                if(key2==0)
                {
                        if(num>0)
                        num--;  
                        while(!key2);
                }
        }
}
回復

使用道具 舉報

7#
ID:231231 發表于 2017-9-5 19:53 | 只看該作者
燒進單片機看看 能實現你的要求 但是有些語句格式不太規范 再改改
回復

使用道具 舉報

8#
ID:230975 發表于 2017-9-6 14:21 | 只看該作者
謝謝各位。剛開始學單片機以后還要向大家多學習
回復

使用道具 舉報

9#
ID:231404 發表于 2017-9-6 14:44 | 只看該作者
在單片機調試下程序,看下結果現象
回復

使用道具 舉報

10#
ID:231404 發表于 2017-9-6 14:46 | 只看該作者
hmgqljz111 發表于 2017-9-6 14:21
謝謝各位。剛開始學單片機以后還要向大家多學習

推薦一份資料【手把手教你學51單片機】很經典,對新手很有借鑒性,希望能夠幫到你
回復

使用道具 舉報

11#
ID:231409 發表于 2017-9-6 14:54 | 只看該作者
可以先調試一下程序,如果有問題,可以再問一下
回復

使用道具 舉報

12#
ID:230975 發表于 2019-9-28 15:42 | 只看該作者
wulin 發表于 2017-9-5 16:28
if(key1==0),if(key2==0)下面少了花括號,delay起不到消抖作用。
#include
#define uchar unsigned cha ...

謝謝謝謝謝謝
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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