找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1845|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)數(shù)碼管不工作,請(qǐng)教各位

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:613846 發(fā)表于 2020-2-24 22:21 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
程序沒(méi)有報(bào)錯(cuò),也沒(méi)有警告,運(yùn)行只能顯示00  00   00,實(shí)在搞不明白了,請(qǐng)教各位師傅。
P0是數(shù)碼管段位,P2是位位。
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
unsigned char code table[16]={               //共陰數(shù)碼管
0x3F,0x06,0x5B,0x4F,0x66,
0x6D,0x7D,0x07,0x7F,0x6F,
0x77,0x7C,0x39,0x5E,0x79,0x71};
unsigned char code dizhi[6]={                   //時(shí)分秒地址
0xfe,0xfd,0xf7,0xef,0xbf,0x7f};
uchar num,hour1,min1,sec1;
void delays(uint);
void display(uchar hour,uchar min,uchar sec)
{
      uchar m1,m2,f1,f2,s1,s2;
      m1=sec/10;
      m2=sec%10;
      f1=min/10;
      f2=min%10;
      s1=hour/10;
      s2=hour%10;

      P0=table[m1];
      P2=dizhi[0];
      delays(5);

      P0=table[m2];
      P2=dizhi[1];
      delays(5);

      P0=table[f1];
      P2=dizhi[2];
      delays(5);

      P0=table[f2];
      P2=dizhi[3];
      delays(5);

      P0=table[s1];
      P2=dizhi[4];
      delays(5);

      P0=table[s2];
      P2=dizhi[5];
      delays(5);
}



void delays(uint xms)              //延時(shí)
{
    uint i,j;
    for(i=xms;i>0;i--)
     for(j=110;j>0;j--);
}


void init()                  //初始化函數(shù)
{
   TMOD=0x01;                   //設(shè)置定時(shí)器0工作方式1
   TH0=(65536-45872)/256;       //定時(shí)50ms
   TL0=(65536-45872)%256;
   EA=1;                        //開總中斷
   ET0=1;                       //開定時(shí)器0中斷
   TR0=1;                    //啟動(dòng)定時(shí)器0                                               
}

void main()                    //主函數(shù)
{
   init();
   while(1)
   {
      display(hour1, min1, sec1);
    }
}

void T0_time()interrupt 1
{
    TH0=(65536-45872)/256;
    TL0=(65536-45872)%256;
    num++;
    if(num==20)             //如果到了20次說(shuō)明1秒到
      {
           num=0;           //然后把num清0,重新再計(jì)算20次
           sec1++;
           if(sec1==60);     //如果到了60次說(shuō)明到1分鐘
           {
               sec1=0;         //然后把miao清0,重新再計(jì)算60次
               min1++;
               if(min1==60);     //如果到了60次,說(shuō)明到1小時(shí)
                {
                   min1=0;        //清0,重新再計(jì)算60次
                   hour1++;
                   if(hour1==24);    //如果到了24次,說(shuō)明1天結(jié)束
                    {
                        hour1=0;       //清0
                    }
                }
            }
       }
}

數(shù)碼管只顯示00 00 00,是什么問(wèn)題?謝謝
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:105364 發(fā)表于 2020-2-25 00:00 | 只看該作者
if(sec1==60); 多了個(gè);,正幾個(gè)同樣多了分號(hào)
回復(fù)

使用道具 舉報(bào)

板凳
ID:419968 發(fā)表于 2020-2-25 00:03 | 只看該作者
定時(shí)器中斷沒(méi)有清除中斷標(biāo)志  TF0=0;
回復(fù)

使用道具 舉報(bào)

地板
ID:613846 發(fā)表于 2020-2-25 10:45 | 只看該作者
47okey 發(fā)表于 2020-2-25 00:00
if(sec1==60); 多了個(gè);,正幾個(gè)同樣多了分號(hào)

謝謝各位老師,問(wèn)題解決了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表