#include <reg52.h>
#define uchar unsigned char;
#define uint unsigned int;
uchar time,set,line,flag;
void delay(int z)
{
int x,y;
for(x=1;x>0;x--)
for(y=z;y>0;y--);
}
void main()
{ P2=0xfe;
time=100;
EA=1;
EX0=1; //外部中断0开
IT0=1;
TMOD|=0x01;
ET0=1; //边沿触发
TH0 =(65536- time)/256;
TL0 =(65536- time)%256;
while(1)
{
if(flag==1)
{
flag=0;
TR0=1;
}
}
}
void timer0(void) interrupt 0
{
flag=1;
}
void timer1(void) interrupt 1
{
TH0 =(65536- time)/256;
TL0 =(65536- time)%256;
// if ( ++Time0_count > 250 ) Time0_count = 250 ; //溢出计数器+1,>最大值,=最大值
if ( ++line > 180 ) line = 0 ; //显示列计数器+1,>最大值,=0
/***********清空显示************/
P2=0XFe ;
P0=0XFF ;
switch (line)
{
case 180*1/12 : //1点
case 180*2/12 : //2点
case 180*4/12 : //4点
case 180*5/12 : //5点
case 180*7/12 : //6点
case 180*8/12 : //7点
case 180*10/12 : //10点
case 180*11/12 : //11点
P2=0xfc;
delay(5);
break;
case 180*3/12 : //3点
case 180*6/12 : //6点
case 180*9/12 : //9点
case 0: //12点
P2=0xf8;
delay(5);
break;
}
}
但电机转起来后时钟对应的杠杠却不是独立的,而是一块块连续的 为什么啊 是电机转速问题吗 还是我延时 或者定时错了呢 真心提问求帮助 |