导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51求助[求助]

* 36677: C51求助[求助]

   西北狼 
西北狼发表的帖子 

 C51求助[求助]
我写了24小时时间在6个数码管上显示
我在防真器上运行是对的,但我用at89c51单片机
时,就不对了,数码管就显示为8了。但可以看出程序运行是对的,时间在走,
就是数码管显示为8,我不知道为是为什么?
我的程序如下,工在线等了
#include   <display.h>  
unsigned idata diss[]={11,11,11,11,11,10};
unsigned char code table[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x73,0x00};
//------------------------
void main()
{  IPL_8279();
   TMOD =0X01;
   TH0 =-46080/256;
   TL0 =-46080/256;
   EA =1;
   TR0 =1;
   EX0 =1;
   ET0 =1;
   LED =1;
   EA=1;
   for(;;){;}
}
//-------------------------
//初始化8279,并显示P
void IPL_8279()
{  //unsigned char i;
   com8279=0x00;
   do{
   ACC=com8279;
    }
   while(ACC^7==1);
   com8279=0x00;
   com8279=0x3f;
   com8279 =0x90;
   dissplay(diss);
}
//----------------------------
void delay(unsigned char number)
{    unsigned char data i;
    i=number;
    while(i--!=0);
    return;
}
//-----显示程序-------------
void dissplay(unsigned idata *d)
{    unsigned char i;
    com8279 =0x90;
    for(i=0;i  <6;i++)
    {
        com8279 =i+0x80;
        data8279 =table[*d];
        d++;
     }

}
//------时间码---------------
time0() interrupt 1
{ TH0 =-46080/256;
  TL0 =-46080/256;
  if(++time_data==20)
    { time_data=0;
     if(++time[5]==10)
       { time[5]=0;
          if((++time[4])==6)
            { time[4]=0;
              if((++time[3])==10)
                { time[3]=0;
                  if((++time[2])==6)
                   {time[2]=0;
                     if(((++time[1])==10)||(time[1]==4 && time[0]==2))
                       {time[1]=0;
                       if((++time[0]==2)&&time[1]==4)
                           {time[0]==0;}
                     }
                 }
             }
          }
            dissplay(time);
       }
    
    }
 }


发表时间:2003年7月10日11:39:02

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:哪位老兄帮帮忙,急啊???????[em03]
[下一篇帖子]:有那位大虾能告诉我LCM(MTB-126)的51单片机的显示源代码吗