想在频率在0—1000时点亮一个灯,在1K-1MHZ时候点亮另外一个颜色的LED灯,自己写了一些程序,但是点亮LED的功能不能实现,那个大侠给看一下,谢谢。
#include<reg52.h>
#include<intrins.h>
#include"LCD1602_8.H"
#define uint unsigned int
#define uchar unsigned char
unsigned char k[8];
unsigned int num;
unsigned char i;
unsigned long x,t;
sbit led0=P1^0;
sbit led1=P1^1;
sbit led2=P1^2;
void main(void)
{
lcd_init();
TMOD=0x25; //T0计数 T1定时
TH0=0x00; //计数值清零
TL0=0x00;
TH1=0x06; //250us
TL1=0x06;
EA=1;
ET0=1;
ET1=1;
TR0=1; //T1优先级最高
TR1=1;
while(1)
{
x=((t<<16)+TH0*256+TL0);
while(x/10)
{
k=x%10;
x/=10;
i++;
}
k=x;
lcd_pos(4,1);
for(i=7;i!=0;i--)
{
lcd_wdat(k+48);
}
lcd_wdat(k+48);
}
}
void DelayMS(uint x)
{ uchar i ;
while (x--)
{ for (i=0;i<120;i++);
}
}
void t0(void) interrupt 1 using 1
{
t++;
if (t>=0&t<=1000)
{ led0=~led0;
DelayMS(150);
}
else if(t>=1000&t<=1000000)
{ led1=~led1;
DelayMS(150);
}
else { led2=~led2;
DelayMS(150);
}
}
void t1(void) interrupt 3 using 3
{
num++;
if(num==4000)
{
TR0=0;
TR1=0;
}
} |