急求c51计数器实用编程

pengjin   2009-9-5 10:55 楼主
#include
#define uchar unsigned char;
#define uint unsigned int;
uchar a[]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};
uchar e,d,t;
void chushihua();
uint x,y,b;
main()
{  
       

       
         chushihua();
         while(1);

       
}
void chushihua()
{
        TMOD=0X05;
        ET0=1;
        TR0=1;
        EA=1;
        TH0=(65536-65534)/256;
        TL0=(65536-65534)%256;
}
void zhongduan() interrupt 1
{
        TH0=(65536-65534)/256;
        TL0=(65536-65534)%256;
        t++;
                                P1=a[t%10];         
                                P2=a[t/10];
                                if(t==100)
                                        t=0;
}
                       


/*void delay()
{
       
        for(x=50;x>0;x--)
                for(y=1211;y>0;y--);

  }        */
         



这是我写的程序 请学长们帮忙改一下

回复评论 (4)

1. 变量要初始化, t的初值是多少?
2. 以下是你需要的吗
TH0=(65536-65534)/256;
TL0=(65536-65534)%256;

3. 函数命名、变量命名还是要讲究的

点赞  2009-9-5 15:42
1. ? 变量要初始化, ? t的初值是多少?

2. ? 以下是你需要的吗 ?
TH0=(65536-65534)/256; ?
TL0=(65536-65534)%256; ?

3. ? 函数命名、变量命名还是要讲究的

4. 别忘了清中断标记
点赞  2009-9-5 15:50
TMOD=0X05; 你这是在对外部脉冲计数模式而不是定时器
P1=a[t%10];
P2=a[t/10];你是想让p1口和p2口分别显示个位十位吧,但是这两个口你是接什么呢?
点赞  2009-9-5 23:43
顶3楼。
点赞  2009-9-6 07:56
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复