📄 duru4.c
字号:
#include<reg52.h>
#include<absacc.h>
#define DUSHU1 XBYTE[0xf3ff]
#define DUSHU2 XBYTE[0xf5ff]
#define LCDCOM XBYTE[0x8fff]
#define LCDDATA XBYTE[0x9fff]
#define uchar unsigned char
#define uint unsigned int
sbit P1_1=P1^1;
sbit P2_3=P2^3;
bit flag;
double t;
unsigned long low ;
bit flag1;
uchar a,b,c=0;
float fx;
//float ab,bc,ac,gd,wew,rtg,hhh,yyy,ddd;
double _m,_n ;
void yanshi(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<121;i++)
{};
}
}
void chushihua()
{
yanshi(8);
LCDCOM=0x38;
yanshi(8);
LCDCOM=0x38;
yanshi(10);
LCDCOM=0x38;
yanshi(8);
}
void lcdkongzhi()
{
LCDCOM=0x01;
yanshi(1);
LCDCOM=0x38;
yanshi(1);
LCDCOM=0x0c;
yanshi(1);
LCDCOM=0x06;
yanshi(1);
}
void d_char(uchar x)
{
uchar i;
i=x|0x30;
i=x|0x30;
i=x|0x30;
yanshi(2);
LCDDATA=i;
yanshi(1);
}
volatile void xsmhz(float fx)
{
uchar x11,x12,x13,x14,x15,x16;
uchar x1,x2,x3,x4,x5,x6;
x11=fx/10000000;
x1=x11;
x12=fx/1000000-x11*10;
x2=x12;
x13=fx/100000-x11*100-x12*10;
x3=x13;
x14=fx/10000-x11*1000-x12*100-x13*10;
x4=x14;
x15=fx/1000-x11*10000-x12*1000-x13*100-x14*10;
x5=x15;
x16=fx/100-x11*100000-x12*10000-x13*1000-x14*100-x15*10;
x6=x16-1;
//x17=fx/10-x11*10000-x12*1000-x13*100-x14*10;
//x7=x17;
//x16=fx-x11*100000-x12*10000-x13*1000-x14*100-x15*10;
//x6=x16;
//x6=x16;
//x6=x16;
//chushihua();
LCDCOM=0x80;
yanshi(8);
if(x1!=0x00)
{
d_char(x1);
}
d_char(x2);
yanshi(1);
LCDDATA=0x2e;
//LCDDATA=0x2e;
yanshi(1);
d_char(x3);
d_char(x4);
d_char(x5);
d_char(x6);
LCDDATA=0x20 ;
yanshi(1);
//d_char(x7);
//d_char(x6);
LCDDATA=0x20 ;
yanshi(1);
LCDCOM=0xc0 ;
//LCDCOM=0xc0 ;
//LCDCOM=0xc0 ;
yanshi(1);
LCDDATA=0x4d;
yanshi(1);
LCDDATA=0x48;
yanshi(1);
LCDDATA=0x7a;
yanshi(1);
}
volatile void xskhz(float fx)
{
uchar x11,x12,x13,x14,x15,x16,x17;
uchar x1,x2,x3,x4,x5,x6,x7;
float z;
x11=fx/100000;
x1=x11;
x12=fx/10000-x11*10;
x2=x12;
x13=fx/1000-x11*100-x12*10;
x3=x13;
x14=fx/100-x11*1000-x12*100-x13*10;
x4=x14;
x15=fx/10-x11*10000-x12*1000-x13*100-x14*10;
x5=x15;
x16=fx-x11*100000-x12*10000-x13*1000-x14*100-x15*10;
x6=x16;
z=fx-x11*100000-x12*10000-x13*1000-x14*100-x15*10-x16;
//y=z;
x17=z*10;
if(fx>=1000.0&&fx<10000.0){
x7=x17-7; }
else x7=x17;
//x7=x17;
//x7=x17;
//chushihua();
LCDCOM=0x80;
if(x1!=0x00)
{
d_char(x1);
}
if(x1!=0x00||x2!=0x00)
{
yanshi(3);
d_char(x2);
}
yanshi(3);
d_char(x3);
yanshi(3);
LCDDATA=0x2e;
yanshi(1);
d_char(x4);
d_char(x5);
d_char(x6);
d_char(x7);
LCDDATA=0x20;yanshi(1);
LCDDATA=0x20;yanshi(1);
LCDDATA=0x20;yanshi(1);
LCDDATA=0x20;yanshi(1);
yanshi(1);
LCDCOM=0xc0;
//LCDCOM=0xc0;
yanshi(1);
LCDDATA=0x4b;
yanshi(1);
LCDDATA=0x48;
yanshi(1);
LCDDATA=0x7a;
yanshi(1);
}
volatile void xshz(float fx)
{
uchar x11,x12,x13,x14,x15,x16,x17;
uchar x1,x2,x3,x4,x5,x6,x7;
float y;
x11=fx/100;
x1=x11;
x12=fx/10-x11*10;
x2=x12;
x13=fx-x11*100-x12*10;
x3=x13;
y=fx-x13-10*x12-100*x11;
x14=y*10 ;
x4=x14;
x15=y*100-x14*10;
x5=x15;
x16=y*1000-x14*100-x15*10;
x6=x16;
x17=y*10000-x14*1000-x15*100-x16*10;
x7=x17;
yanshi(1);
LCDCOM=0x80;
if(x1!=0x00)
{
d_char(x1);
}
if(x1!=0x00||x2!=0x00)
{
d_char(x2);
}
d_char(x3);
yanshi(2);
LCDDATA=0x2e ;
yanshi(2);
d_char(x4);
d_char(x5);
d_char(x6);
d_char(x7);
//d_char(x7);
LCDDATA=0x20 ;
yanshi(2);
LCDDATA=0x20 ;
yanshi(2);
LCDCOM=0xc0;
yanshi(2);
LCDDATA=0x48;
yanshi(2);
LCDDATA=0x7a;
yanshi(2);
LCDDATA=0x20 ;
yanshi(2);
}
void zhongduan0() interrupt 0 using 2
{
TR0=0;
TR1=0;
EA=0;
flag=1;
}
void zhongduan1() interrupt 2 using 2
{
if(TR1==0) {TR1=1;}
else
{TR1=0;
flag1=0;
}
}
volatile t0(void) interrupt 3 using 2
{
low++;
}
volatile void dipin( )
{ low=0;t=0;
P1_1=0;
P2_3=1;
EA=1;
IT1=1;
EX1=1;
ET1=1;
EX0=0;
TMOD=0x91;
TH1=0;
TL1=0;
TR1=0;
while(flag1) {};
t=low*65536+TH1*256+TL1;
fx=1000000/t;
//if(fx<30) fx+=1;
xshz(fx);
}
volatile void mhz()
{
flag=0;
flag1=1;
P1_1=0;
P2_3=1;
IT0=1;
IT1=1;
TMOD=0x55;
TH0=0;TL0=0;
TH1=0;TL1=0;
P2_3=0;
TR0=1;
TR1=1;
EA=1;
EX1=0;
EX0=0;
P1_1=1;
EA=1;
EX0=0;
yanshi(3);
/*for(i=0;i<1000;i++)
{}; */
P1_1=0;
yanshi(1);
TR0=0;
TR1=0;
// if(flag)
// {
a=DUSHU1;
b=DUSHU2;
_m=65536*TH0+256*TL0+a;
_n=65536*TH1+256*TL1+b;
fx=_m*11993000/_n;//}
xsmhz(fx);
}
volatile void bkhz()
{
flag=0;
flag1=1;
P1_1=0;
P2_3=1;
IT0=1;
IT1=1;
TMOD=0x55;
TH0=0;TL0=0;
TH1=0;TL1=0;
P2_3=0;
TR0=1;
TR1=1;
EA=1;
EX1=0;
EX0=0;
P1_1=1;
EA=1;
EX0=0;
//yanshi(900);
yanshi(1000);
P1_1=0;
yanshi(10);
TR0=0;
TR1=0;
//if(flag)
// {
a=DUSHU1;
b=DUSHU2;
_m=65536*TH0+256*TL0+a;
_n=65536*TH1+256*TL1+b;
fx=_m*11994000/_n;// }
xskhz(fx) ;
}
volatile void skhz()
{
flag=0;
flag1=1;
P1_1=0;
P2_3=1;
IT0=1;
IT1=1;
TMOD=0x55;
TH0=0;TL0=0;
TH1=0;TL1=0;
P2_3=0;
TR0=1;
TR1=1;
EA=1;
EX1=0;
EX0=0;
P1_1=1;
EA=1;
EX0=0;
//yanshi(900);
yanshi(1410);
P1_1=0;
yanshi(10);
TR0=0;
TR1=0;
//if(flag)
// {
a=DUSHU1;
b=DUSHU2;
_m=65536*TH0+256*TL0+a;
_n=65536*TH1+256*TL1+b;
fx=_m*11994000/_n;// }
xskhz(fx) ;
}
/*volatile void khz()
{
flag=0;
flag1=1;
P1_1=0;
P2_3=1;
IT0=1;
IT1=1;
TMOD=0x55;
TH0=0;TL0=0;
TH1=0;TL1=0;
P2_3=0;
TR0=1;
TR1=1;
EA=1;
EX1=0;
EX0=0;
P1_1=1;
EA=1;
EX0=0;
//yanshi(900);
yanshi(1410);
P1_1=0;
yanshi(10);
TR0=0;
TR1=0;
//if(flag)
// {
a=DUSHU1;
b=DUSHU2;
_m=65536*TH0+256*TL0+a;
_n=65536*TH1+256*TL1+b;
fx=_m*11994000/_n;
xskhz(fx) ;
} */
volatile void bhz()
{
flag=0;
flag1=1;
P1_1=0;
P2_3=1;
IT0=1;
IT1=1;
TMOD=0x55;
TH0=0;TL0=0;
TH1=0;TL1=0;
P2_3=0;
TR0=1;
TR1=1;
EA=1;
EX1=0;
EX0=0;
P1_1=1;
yanshi(1000);
//yanshi(1400);
P1_1=0;
yanshi(600);
TR0=0;
TR1=0;
//if(flag)
// {
a=DUSHU1;
b=DUSHU2;
_m=65536*TH0+256*TL0+a;
_n=65536*TH1+256*TL1+b;
fx=_m*11993000/_n-1;
xshz(fx) ;
}
/*volatile void shz()
{
flag=0;
flag1=1;
P1_1=0;
P2_3=1;
IT0=1;
IT1=1;
TMOD=0x55;
TH0=0;TL0=0;
TH1=0;TL1=0;
P2_3=0;
TR0=1;
TR1=1;
EA=1;
EX1=0;
EX0=0;
P1_1=1;
EA=1;
EX0=0;
yanshi(1400);
P1_1=0;
yanshi(130);
TR0=0;
TR1=0;
// if(flag)
// {
a=DUSHU1;
b=DUSHU2;
_m=65536*TH0+256*TL0+a;
_n=65536*TH1+256*TL1+b;
fx=_m*11993000/_n; // }
xshz(fx) ;
} */
volatile void main()
{
chushihua();
lcdkongzhi();
for(;;)
{
flag=0;
flag1=1;
P1_1=0;
P2_3=1;
IT0=1;
IT1=1;
TMOD=0x55;
TH0=0;TL0=0;
TH1=0;TL1=0;
P2_3=0;
TR0=1;
TR1=1;
EA=1;
EX1=0;
EX0=0;
P1_1=1;
EA=1;
EX0=0;
yanshi(1000);
P1_1=0;
yanshi(140);
TR0=0;
TR1=0;
//if(flag)
// {
a=DUSHU1;
b=DUSHU2;
_m=65536*TH0+256*TL0+a;
_n=65536*TH1+256*TL1+b;
fx=_m*11993000/_n;
if(fx>=999990.0)
{ mhz( ); }
if(fx>=10000.0&&fx<1000000.0)
{ bkhz( ); }
if(fx>=1000.0&&fx<10000.0)
{ skhz( ); }
if(fx>=100.0&&fx<1000.0)
{ bhz( ); }
/*if(fx>10.0&&fx<100.0)
{ shz( ); } */
if(fx<100.0)
{
dipin();
xshz(fx);
}
//else
// {
// if(fx<2000){fx=_m*11991000/_n;}
// khz( );
flag=0;
//}
//yanshi(10);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -