大家看看我编的程序,这到底是怎么了?

kings185100   2007-12-30 17:51 楼主
#include
#define uchar unsigned char
#define uint  unsigned int
void led_display(void);
void delay(uint tc);
void  init_at89c52(void);
void time_count(void);
sbit number0=P1^0;
sbit number1=P1^1;
sbit number2=P1^2;
uint count;
uchar time;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,};

void main(void)
{
  init_at89c52();
  time_count();
  while(1)
  {
           led_display();
   }
}

void init_at89c52()
{
  TMOD=0x10;                                 //定时器T0,允许使用,定时方式,模式1
  TH0=0;TL0=0;                                 //计数器初值为0
  TR0=0;
  //P3_2=0;               
}



void led_display(void)
{
  uchar time;
  //count=12300;
  time=count/100;
  number2=0; number1=1; number0=1;
  P0=table[time/100];
  delay(5);
  number2=1; number1=0; number0=1;
  P0=table[(time-100*(time/100))/10]|0x80;
  delay(5);
  number2=1; number1=1; number0=0;
  P0=table[time%10];
  delay(5);
  number2=1; number1=1; number0=1;
}
       
void time_count()
{
  uint overflow_count;

  while(P3_2)
   {
     TR0=1;                                                                 //开计数器
     if(TF0==1)
    {
      overflow_count++;
      count=65536*overflow_count+TH0<<8+TL0;
         }
    else
    count=TH0*4096+TL0;
   }
  }       

void delay(uint tc) //延时程序
{
   while( tc != 0 )
  {
    unsigned int i;
    for(i=0; i<100; i++);
    tc--;
   }
}

回复评论 (4)

说现象。LZ

嘿嘿


硬件在你那,不然我们有成算命的了。。。

点赞  2007-12-31 16:34
昨天误操作,把帖子发上去了,坐沙发的同志,问题已经解决了。
点赞  2007-12-31 21:20
呵呵,接分
点赞  2008-1-1 08:52
记得结贴
点赞  2008-1-2 20:13
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复