久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2557|回復: 8
收起左側

為什么單片機消隱總是不行?

[復制鏈接]
ID:644190 發表于 2019-11-18 11:35 | 顯示全部樓層 |閱讀模式
要求是初始值1234,隨按鍵加減

第一段的陰影總是和最后一位一樣……
求大神解答謝謝

#include<reg52.h>
sbit KEY=P3^4;
sbit KEY1=P3^5;
sbit seg1=P2^4;
sbit seg2=P2^5;
sbit seg3=P2^6;
sbit seg4=P2^7;
void delay(unsigned int xms);
int a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int h;
  h=1234;
void main()
{

while(1)
  {
     if(KEY==0)
       {
         delay(1);
         if(KEY==0)
          {
             h++;
          }
                 while(!KEY)1;
       }

     if(KEY1==0)
       {
         delay(1);
         if(KEY1==0)
           {
            h--;  
           }
                 while(!KEY1);
       }

P2 = 0X10;
P0=a[h/1000];
delay(2);
P2 = 0X00;

P2=0X20;
P0=a[h%1000/100];
delay(2);
P2=0X00;


P2=0X40;
P0=a[h%100/10];
delay(2);
P2=0X00;


P2=0x80;
P0=a[h%10];
delay(2);
P2=0X00;
  }
}               

void delay(unsigned int xms)
{
int i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--)
{;}
}

51hei圖片_20191118113414.png
回復

使用道具 舉報

ID:263427 發表于 2019-11-18 12:09 | 顯示全部樓層
您好,看程序沒啥問題,是不是硬件的問題,可以考慮換個板子試一下。
回復

使用道具 舉報

ID:466505 發表于 2019-11-18 12:27 | 顯示全部樓層
嘗試P0清零后,再給P2置位,再給P0斌值
回復

使用道具 舉報

ID:213173 發表于 2019-11-18 12:55 | 顯示全部樓層
消隱方式不當
  1. #include<reg52.h>
  2. sbit KEY1=P3^4;
  3. sbit KEY2=P3^5;
  4. sbit seg1=P2^4;
  5. sbit seg2=P2^5;
  6. sbit seg3=P2^6;
  7. sbit seg4=P2^7;
  8. void delay(unsigned int xms);
  9. unsigned char a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  10. unsigned int h;

  11. void main()
  12. {
  13.         h=1234;
  14.         while(1)
  15.         {
  16.                 if(KEY1==0)
  17.                 {
  18.                         delay(10);
  19.                         if(KEY1==0)
  20.                         {
  21.                                 h++;
  22.                         }
  23.                         while(!KEY1);
  24.                 }
  25.                 if(KEY2==0)
  26.                 {
  27.                         delay(10);
  28.                         if(KEY2==0)
  29.                         {
  30.                                 h--;  
  31.                         }
  32.                         while(!KEY2);
  33.                 }
  34.                 P2=0X10;
  35.                 P0=a[h/1000];
  36.                 delay(2);
  37.                 P0=0X00;
  38.                
  39.                 P2=0X20;
  40.                 P0=a[h%1000/100];
  41.                 delay(2);
  42.                 P0=0X00;

  43.                 P2=0X40;
  44.                 P0=a[h%100/10];
  45.                 delay(2);
  46.                 P0=0X00;
  47.                
  48.                 P2=0x80;
  49.                 P0=a[h%10];
  50.                 delay(2);
  51.                 P0=0X00;
  52.         }
  53. }               

  54. void delay(unsigned int xms)
  55. {
  56.         int i,j;
  57.         for(i=xms;i>0;i--)
  58.                 for(j=110;j>0;j--);
  59. }
復制代碼
回復

使用道具 舉報

ID:245004 發表于 2019-11-18 13:19 | 顯示全部樓層
本帖最后由 bh2030693 于 2019-11-18 13:50 編輯
  1. P2 = 0X10;
  2. P0=a[h/1000];
  3. delay(2);
  4. P2 = 0X00;
復制代碼
次序不對,改成:
  1. <blockquote>P2 = 0x00;  // 先關閉公共端
復制代碼

編輯一下原因:直接粘貼的代碼還是顯示不全,要先粘貼到text,再復制粘貼到這里才能顯示全。


回復

使用道具 舉報

ID:644190 發表于 2019-11-18 14:06 | 顯示全部樓層
解決了謝謝 最后一行 P0清零后先賦值位選后段選 代碼如下#include<reg52.h>
sbit KEY=P3^4;
sbit KEY1=P3^5;
sbit seg1=P2^4;
sbit seg2=P2^5;
sbit seg3=P2^6;
sbit seg4=P2^7;
void delay(unsigned int xms);
int a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int h;

void main()
{
  h=6152;
while(1)
  {
     if(KEY==0)
       {
         delay(1);
         if(KEY==0)
          {
             h++;
          }
                 while(!KEY);
       }

     if(KEY1==0)
       {
         delay(1);
         if(KEY1==0)
           {
            h--;  
           }
                 while(!KEY1);
       }

P2 = 0X00;
P0=a[h/1000];
P2 = 0X10;
delay(500);
P2 = 0X00;

P0=a[h%1000/100];
P2=0X20;
delay(500);
P2=0X00;


P0=a[h%100/10];
P2=0X40;
delay(500);
P2=0X00;



  P0=a[h%10];
  P2=0x80;
delay(500);
P2=0X00;

  }
}       


void delay(unsigned int xms)
{
int i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--)
{;}
}


回復

使用道具 舉報

ID:466578 發表于 2019-11-18 14:57 | 顯示全部樓層
消隱的是led的段數據P0,而不是位數據P2,可按下面模式修改,并調整delay時間
                P2=0X10;
                P0=a[h/1000];
                delay(2);
               P0=0x00
               delay();
回復

使用道具 舉報

ID:346097 發表于 2019-11-18 16:52 | 顯示全部樓層
延時做的不好,再改進一下
回復

使用道具 舉報

ID:644190 發表于 2019-11-18 23:20 | 顯示全部樓層
807964046 發表于 2019-11-18 16:52
延時做的不好,再改進一下

嗯嗯打錯了 改5功能就對了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产在线精品一区 | 国产美女自拍视频 | 久草成人网 | 在线免费观看视频你懂的 | 成人免费视频 | 日韩精品久久久久 | 国产精品成人一区 | 亚洲国产一区二区三区 | 国产激情91久久精品导航 | 国产一区二区观看 | 中文字幕1区| 欧美午夜精品 | 欧美国产视频一区二区 | 自拍第1页| 久久久久国产精品一区二区 | 成人久久 | 日韩a在线 | 国产在线中文 | 九九99九九精彩46 | 午夜一区二区三区在线观看 | 日韩精品在线视频 | 亚洲精品一区在线观看 | 日本小视频网站 | 日韩av电影院 | 欧美中文在线 | 亚洲最新在线视频 | 黄色激情毛片 | 亚洲精品久久久久中文字幕二区 | 综合久久久久久久 | 日韩电影中文字幕 | 国产高潮好爽受不了了夜色 | 国产精品一区二区在线 | 国产精品久久在线观看 | 亚洲成人综合在线 | 亚洲色图综合 | 91社区在线观看 | 中文字幕在线观看精品 | 国产精品久久国产精品 | 日本在线视频一区二区 | 激情欧美日韩一区二区 | 国产精品1区2区3区 中文字幕一区二区三区四区 |