标题: 为什么数码管显示不出来,换别的单片机程序验证硬件连接没问题 [打印本页]

作者: hyjxxy    时间: 2020-4-18 21:13
标题: 为什么数码管显示不出来,换别的单片机程序验证硬件连接没问题
为什么数码管显示不出来,换别的程序验证硬件连接没问题。




#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};         
uchar code table2[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
void display();
void delay(uint t);
void time_init();
void time_pro();
uint miao=0;                //秒
uint fen=0;                        //分
uint shi=0;                    //时
uint n=0;                        //计数
/***********************************
延时函数                                                                  
***********************************/
void  delay(uint t)                                
{
        uchar i;
        while(t--)
        { for(i=0;i<125;i++); }
}


/***********************************
显示函数                                                                  
***********************************/
void display()
{                  
      P2=0x01;
      P0=table1[shi/10];
      delay(4);
          P0=0x00;
          P2=0x02;
      P0=table2[shi%10];
      delay(4);
          P0=0x00;

           P2=0x04;
      P0=table1[fen/10];
      delay(4);
          P0=0x00;
      P2=0x08;
      P0=table2[fen%10];
      delay(4);
          P0=0x00;

          P2=0x10;
      P0=table1[miao/10];
      delay(4);
          P0=0x00;
      P2=0x20;
      P0=table1[miao%10];
      delay(4);
          P0=0x00;
          }         
/***********************************
定时器初始化函数                                                                  
***********************************/         
void time_init()                                                   
{
    TMOD=0x01;                                                          //选择方式1
        TH0=(65536-50000)/256;                                                         
        TL0=(65536-50000)%256;                                                         
        EA=1;                                                                  //开总中断
        ET0=1;                                                                  //开定时器0中断
        TR0=1;                                                                  //开定时器0
}         
/***********************************
计时处理函数                                                                  
***********************************/
void time_pro()
{
if(miao==60)
  {
        miao=0;
        fen++;
        if(fen==60)
        {
                fen=0;
                shi++;
                if(shi==24)
                {
                        shi=0;
                         }
    }
  }
}
/***********************************
定时器中断函数                                                                  
***********************************/     
void timer() interrupt 1                                          //定时器0中断
{

         TH0=(65536-50000)/256;
         TL0=(65536-50000)%256;
     n++;
         if(n==20)                                                                 //当n=20时,表示1s到了
         {         
             n=0;
             miao++;
                                  }
}
/***********************************
主函数                                                                  
***********************************/
void main()
{
   time_init();
   while(1)
   {
   time_pro();
   display();
   }
}


作者: 之一知足    时间: 2020-4-18 22:31
检查下数码管在仿真里的共阴共阳
作者: hotpet    时间: 2020-4-19 09:44
51的p0口和别的口不一样,很多时候要加5v上拉。可以换到p1口试试,如果正常,就是上拉的问题。
作者: hyjxxy    时间: 2020-4-19 13:31
hotpet 发表于 2020-4-19 09:44
51的p0口和别的口不一样,很多时候要加5v上拉。可以换到p1口试试,如果正常,就是上拉的问题。

换了也还是不行,没有显示。
作者: hyjxxy    时间: 2020-4-19 13:32
之一知足 发表于 2020-4-18 22:31
检查下数码管在仿真里的共阴共阳

仿真里是共阳极的,我用其它程序验证了。
作者: hyjxxy    时间: 2020-4-19 13:33
恳请高手指点
作者: wulin    时间: 2020-4-19 16:46
hyjxxy 发表于 2020-4-19 13:33
恳请高手指点

楼主消隐码用错了,共阳应该P0=0xff;。




作者: gongnn    时间: 2020-4-19 16:54
Q1-Q6接法不对,现在是射随器接法,不是饱和截止的开关接法。
作者: hyjxxy    时间: 2020-4-20 11:04
wulin 发表于 2020-4-19 16:46
楼主消隐码用错了,共阳应该P0=0xff;。

不知道怎么消隐写成0了,看了好久没发现。谢谢指出,可以了。
作者: SuperChris    时间: 2020-4-20 12:35
检查一下程序




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1