打印

为什么我的程序不能实现1602液晶屏计数

[复制链接]
1824|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
brief110|  楼主 | 2010-5-20 22:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <REG52.H>
sbit rs=P2^6;
sbit rw=P2^5;
sbit e=P2^7;

unsigned char  i,num1,num2,num3,t;

void delay(z)
{

unsigned int  x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);
}

void input_data(unsigned int dat)
{

rs=1;

P0=dat;

delay(5);

e=1;

delay(5);

e=0;

delay(5);

rs=0;

}

void input_oder(unsigned int oder)
{

rs=0;

P0=oder;

delay(5);

e=1;

delay(5);

e=0;

delay(5);

rs=1;

}

void init1()
{

rw=0;

e=0;

input_oder(0x38);

input_oder(0x0c);

input_oder(0x06);
    input_oder(0x01);

input_oder(0x80);

}
void init2()
{
    TMOD=0X01;

TH0=(65535-50000)/256;

TL0=(65535-50000)%256;

EA=1;

ET0=1;

TR0=1;
}
void main()
{
   unsigned char code table[]="counter";
   init1();
   init2();
   input_oder(0x85);
   for(i=0;i<7;i++)
   {

input_data(table[i]);

delay(500);
   }
   input_oder(0x80+0x47);
   while(1)

   {

input_data(0x30+num3);

delay(2);

input_data(0x30+num2);

delay(2);

input_data(0x30+num1);

delay(2);

input_oder(0x80+0x47);

   }
   //while(1);
}
void time0()interrupt 1
{

//static unsigned int t=0;

TH0=(65535-50000)/256;

TL0=(65535-50000)%256;

t++;

if(t==2)

{

t=0;

if(num1==10)

{

  num1=0;

  num2++;

  if(num2==10)

  {

    num2=0;

num3++;

if(num3==10)

{

  num3=0;

}

  }

}

}

}
  


一直显示000三个数  应该怎么修改       我分析是因为没有进入中断

相关帖子

沙发
brief110|  楼主 | 2010-5-21 13:29 | 只看该作者
我知道哪里错了 谢谢各位 中断中我没有写num1++

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

16

帖子

1

粉丝