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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求助大神STC89C52單片機,用數碼管顯示時間,請看程序

[復制鏈接]
ID:87568 發表于 2015-8-27 15:55 | 顯示全部樓層 |閱讀模式
STC89C52單片機,用數碼管顯示時間,請看程序:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar num,a,a1,b,b1,c,c1;
uchar shi,fen,miao;
sbit fm=P3^4;

void delay(uchar time)
{
  uchar i,j;
  for(i=time;i>0;i--)
    for(j=110;j>0;j--);
}

void init()
{
  TMOD=0x01;
  TH0=(65536-45872)/256;
  TL0=(65536-45872)%256;
  EA=1;
  ET0=1;
  TR0=1;
}

void display(char a,a1,b,b1,c,c1)
{
  P1=0x00;
  P2=table[a];
  delay(5);
  P1=0x01;
  P2=table[a1];
  delay(5);
  P1=0x02;
  P2=0x40;
  delay(5);

  P1=0x03;
  P2=table;
  delay(5);
  P1=0x04;
  P2=table[b1];
  delay(5);
  P1=0x05;
  P2=0x40;
  delay(5);

  P1=0x06;
  P2=table[c];
  delay(5);
  P1=0x07;
  P2=table[c1];
  delay(5);
}

void t0_time() interrupt 1
{
  TH0=(65536-45872)/256;
  TL0=(65536-45872)%256;
  num++;
}

void main()
{
  init();
  shi=15;
  fen=31;
  miao=00;
  while(1)
  {
    if(num==20)
        {
          num=0;
          if(miao==59)   //問題一:為什么miao==59而不等于60
          {
            miao=-1;     //問題二:為什么不是miao=0
            if(fen==59)
            {
                  fen=-1;
              if(shi==24)
                   shi=-1;
                  shi++;
                 }
                 fen++;
                 if(fen==50){fm=0;delay(80);fm=1;}
           }
           miao++;
         }
   a=shi/10;
   a1=shi%10;
   b=fen/10;
   b1=fen%10;
   c=miao/10;
   c1=miao%10;
   display(a,a1,b,b1,c,c1);
  }
}
          

回復

使用道具 舉報

ID:79908 發表于 2015-8-27 22:05 | 顯示全部樓層
時間是0到59,并沒有60啊,-1+1 =0
回復

使用道具 舉報

ID:84033 發表于 2015-8-27 22:24 | 顯示全部樓層
其實這個問題不是很復雜,具體的可見郭天祥老師的51單片機視頻教程
回復

使用道具 舉報

ID:58502 發表于 2015-8-28 00:03 | 顯示全部樓層
這個有點小錯誤,shi,fen,miao是uchar類型,范圍只能是0-255,不能是負數,所以miao=-1是錯誤的,需要改類型為signed char有符號的,至于為什么是-1問題就在于miao++在后面,-1+1=0,如果把miao++放前面的話就可以使用0和60
回復

使用道具 舉報

ID:87568 發表于 2015-8-28 13:02 | 顯示全部樓層
liaolinhui 發表于 2015-8-28 00:03
這個有點小錯誤,shi,fen,miao是uchar類型,范圍只能是0-255,不能是負數,所以miao=-1是錯誤的,需要改 ...

謝謝,你糾正了我的錯誤
回復

使用道具 舉報

ID:97097 發表于 2015-11-29 18:33 | 顯示全部樓層
受用了  謝謝 了
回復

使用道具 舉報

ID:230798 發表于 2017-9-22 17:43 | 顯示全部樓層
fm=0代表的什么意思
回復

使用道具 舉報

ID:234962 發表于 2017-9-22 19:51 | 顯示全部樓層
這個不懂啊
回復

使用道具 舉報

ID:234985 發表于 2017-9-22 21:59 | 顯示全部樓層
uchar沒有負數吧
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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