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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機(jī)仿真秒表,用五位數(shù)碼管顯示,為什么個位和十位不顯示

查看數(shù): 3282 | 評論數(shù): 7 | 收藏 1
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2019-5-5 09:52

正文摘要:

代碼:#include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit key1=P3^0; sbit key2=P3^1; sbit key3=P3^2; uchar temp,aa,m1,m2,m3,shi,ge; uchar code table[]={ 0x3f ...

回復(fù)

ID:522450 發(fā)表于 2019-5-5 22:03
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit key1=P3^0;
sbit key2=P3^1;
sbit key3=P3^2;
uchar temp,m1,m2,m3,shi,ge;uint aa;
uchar code table[]={
0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z);
void display(uchar m1,uchar m2,uchar m3,uchar shi,uchar ge);
void initial();
void main()
{
  initial();
  while(1)
  {
    if(key1==0)
    {
            delay(10);
            if(key1==0)
            {
            while(!key1);
                  TR0=1;
                  }
          }
          if(key2==0)
          {
            delay(10);
            if(key2==0)
            {
            while(!key2);
                  TR0=0;
                  }
        }
          if(key3==0)
          {
            delay(10);
            if(key3==0)
             {
              while(!key3);
                    temp=0;
                    m1=0;
                    m2=0;
                    m3=0;
                    shi=0;
                    ge=0;
                    TR0=0;
                }
        }
        display(shi,ge,m3,m2,m1);
        }

}

void delay(uint z)   
{  
  uint x,y;  
  for(x=z;x>0;x--)

                for(y=110;y>0;y--);
        
}

void display(uchar m1,uchar m2,uchar m3,uchar shi,uchar ge)
{
  P2=0xfd;
  P0=table[m1];
  delay(10);

  P2=0xfe;
  P0=table[m2];
  delay(10);

  P2=0xfb;
  P0=table[m3];
  delay(10);

  P2=0xf7;
  P0=table[ge];
  delay(10);

  P2=0xef;
  P0=table[shi];
  delay(10);
}


void initial()
{
  temp=0;
  TMOD=0x01;
  TH0=(65536-500)/256;
  TL0=(65536-500)%256;
  EA=1;
  ET0=1;
}


timer0() interrupt 1
{
  TH0=(65536-500)/256;
  TL0=(65536-500)%256;
  aa++;
  m3=aa/100;
  m2=aa%100/10;
  m1=aa%100%10;
  if(aa==999)
  {
    aa=0;
          temp++;
          if(temp==99)
           {
            temp=0;
           }
           shi=temp/10;
           ge=temp%10;
   }
}



又改了一下,1、顯示順序,2、位選信號,3、aa類型

試試。
ID:522450 發(fā)表于 2019-5-5 21:57
哦,忘了,aa的類型確實(shí)不對的,要改成uint aa;

其他試試看看
ID:522450 發(fā)表于 2019-5-5 21:53
代碼:#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit key1=P3^0;
sbit key2=P3^1;
sbit key3=P3^2;
uchar temp,aa,m1,m2,m3,shi,ge;
uchar code table[]={
0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z);
void display(uchar m1,uchar m2,uchar m3,uchar shi,uchar ge);
void initial();
void main()
{
  initial();
  while(1)
  {
    if(key1==0)
    {
            delay(10);
            if(key1==0)
            {
            while(!key1);
                  TR0=1;
                  }
          }
          if(key2==0)
          {
            delay(10);
            if(key2==0)
            {
            while(!key2);
                  TR0=0;
                  }
        }
          if(key3==0)
          {
            delay(10);
            if(key3==0)
             {
              while(!key3);
                    temp=0;
                    m1=0;
                    m2=0;
                    m3=0;
                    shi=0;
                    ge=0;
                    TR0=0;
                }
        }
        display(m1,m2,m3,shi,ge);
        }
}

void delay(uint z)   
{  
  uint x,y;  
  for(x=z;x>0;x--)

                for(y=110;y>0;y--);
        
}

void display(uchar m1,uchar m2,uchar m3,uchar shi,uchar ge)
{  P2=0xfb;
  P0=table[m1];
  delay(10);



  P2=0xf7;
  P0=table[m2];
  delay(10);



  P2=0xef;
  P0=table[m3];
  delay(10);

  P2=0xfd;
  P0=table[ge];
  delay(10);



  P2=0xfe;
  P0=table[shi];
  delay(10);

}

void initial()
{
  temp=0;
  TMOD=0x01;
  TH0=(65536-500)/256;
  TL0=(65536-500)%256;
  EA=1;
  ET0=1;
}


timer0() interrupt 1
{
  TH0=(65536-500)/256;
  TL0=(65536-500)%256;
  aa++;
  m3=aa/100;
  m2=aa%100/10;
  m1=aa%100%10;
  if(aa==1000)
  {
    aa=0;
          temp++;
          if(temp==99)
           {
            temp=0;
           }
           shi=temp/10;
           ge=temp%10;
   }
}


位選信號搞錯了,紅色標(biāo)注了修改過后的,其他的應(yīng)該問題不大,按照我修改過的運(yùn)行一次試試,應(yīng)該沒問題的。

ID:527416 發(fā)表于 2019-5-5 20:04
yzwzfyz 發(fā)表于 2019-5-5 12:22
等至aa=1000的時候,你就看到顯示了。耐心等待吧。

1000就是1毫秒呀,很快的ne
ID:213173 發(fā)表于 2019-5-5 17:36
本帖最后由 wulin 于 2019-5-6 06:09 編輯

錯誤1:位碼錯誤,應(yīng)該是0xfe,0xfd,0xfb,0xf7,0xef。
錯誤2:數(shù)據(jù)類型錯誤,應(yīng)該是uint aa。
錯誤3:1ms定時數(shù)據(jù)錯誤。
當(dāng)然還有運(yùn)行中的問題:按鍵干擾顯示,數(shù)碼管會閃爍等等。
ID:462827 發(fā)表于 2019-5-5 12:23
中斷函數(shù)里shi和ge的獲取要放到if(aa==1000)的花括號之外。
ID:123289 發(fā)表于 2019-5-5 12:22
等至aa=1000的時候,你就看到顯示了。耐心等待吧。

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久国产精品 | 精品久久国产老人久久综合 | 日韩精品一区二区三区中文在线 | 在线精品国产 | 久草网址 | 亚洲免费毛片 | 91看片视频 | 国产成人99久久亚洲综合精品 | 免费国产视频在线观看 | 91精品国产91久久综合桃花 | 粉嫩一区二区三区四区公司1 | 日韩在线一区二区 | 免费在线观看一区二区 | 午夜电影网 | 青青草一区 | 欧美精品福利视频 | 免费午夜视频 | 日韩成人中文字幕 | 欧美视频1区 | 免费网站国产 | 天天久久 | 欧美天堂在线 | 男女视频免费 | 亚洲综合二区 | 国产毛片在线看 | 成人午夜电影网 | 成人免费影院 | 日本视频在线 | 亚洲精品日韩在线 | 国产精彩视频在线观看 | 免费看国产片在线观看 | 亚洲欧美中文日韩在线v日本 | 国产精品性做久久久久久 | 亚洲视频区 | 欧美三区在线观看 | 人人叉| 国产精品美女久久久久aⅴ国产馆 | 久久精品免费观看 | 欧美综合一区二区三区 | 国产69久久精品成人看动漫 | 九九九久久国产免费 |