#include
#include
#define uchar unsigned char
#define uint unsigned int
#define WCOMM XBYTE[0x0000]
#define RCOMM XBYTE[0x0001]
#define WDATA XBYTE[0x0002]
#define RDATA XBYTE[0x0003]
void BusyWait()
{
while((RCOMM & 0x80) != 0x00);
}
void Write_Command(uchar cmd)
{
BusyWait();
WCOMM=cmd;
}
void Write_Data(uchar dat)
{
BusyWait();WDATA=dat;
}
void Initialse()
{
Write_Command(0x30);
Write_Command(0x01);
Write_Command(0x06);
Write_Command(0x0c);
}
void ShowString(uchar *str)
{
uchar i=0;
Write_Command(0x80);
while(str[i]!='\0'&&!
Write_Data(str[i++]);
for(;i
}
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar code Prompt[]="Please press K1 and wait for a while,Current Frequency will
show on the LCD...";
uchar LCD_Disp_Buffer[]="Frequency------HZ";
uchar Count=0;
sbit K1=P1^0;
void Initialse();
void ShowString(uchar str[]);
void Delay(uchar ms)
{
uchar i;
while (ms--) for (i=0;i<120;i++);
}
void main()
{
uchar i=0;
Initialise();
while (Prompt[i]!='\0')
{
ShowString(Prompt+i);
i++;
Delay(15);
}
IE=0x8A;
TMOD=0x51;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
while(1)
{
if(K1==0)
{
Delay(10);
if(K1==0)
{
TR1=TR0=1;
}
}
ShowString(LCD_Disp_Buffer);
}
}
void INT_T0() interrupt 1
{
uint Tmp,i;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(++Count==20)
{
TR1=TR0=0;
Count=0;
Tmp=TH1*256+TL1;
LCD_Disp_Buffer[9]=Tmp/10000+'0';
LCD_Disp_Buffer[10]=Tmp/1000%10+'0';
LCD_Disp_Buffer[11]=Tmp/100%10+'0';
LCD_Disp_Buffer[12]=Tmp%100/10+'0';
LCD_Disp_Buffer[13]=Tmp%10+'0';
if(LCD_Disp_Buffer[9]=='0') LCD_Disp_Buffer[9]=' ';
i=10;
while(LCD_Disp_Buffer[i]=='0' &&
LCD_Disp_Buffer[i-1]==' ' &&
i != 13)
{
LCD_Disp_Buffer[i++]=' ';
}
TH1=TL1=0;
}
}