#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三个数 应该怎么修改 我分析是因为没有进入中断 |