📄 main.c
字号:
#include <reg52.h>
#include <absacc.h>
#define uchar unsigned char
#define null 44//NULL
#define cheng 46 //成
#define du1 47//都
#define si 48//世
#define ji1 49//纪
#define zhong1 50//中
#define ke 51//科
#define ping 52//平
#define jun 53//均
#define su 54//速
#define du2 55//度
#define jia 56//加
#define guang 57//光
#define dian 58//电
#define men 59//门
#define zi 60//自
#define jian 61//检
#define dan 62//单
#define shuang 63//双
#define bai 64//摆
#define zhou 65//周
#define qi1 66//期
#define zhong2 67//钟
#define pen 68//碰
#define zhuang 69//撞
#define jiao 70//角
#define zhuan 71//转
#define xian 72//线
#define miao 73//秒
#define fen 74//分
#define shou 75//手
#define dong 76//动
#define ce 77//测
#define liang 78//量
#define zhi 79//智
#define neng 80//能
#define ji2 81//计
#define shu 82//数
#define shi 83//时
#define qi2 84//器
#define tong 85//通
#define dao 86//道
#define gao 87//高
#define di 88 //低
#define duo 89 //多
#define mai 90 //脉
#define chong 91//冲
#define ci 92//次
#define xuan 93//选
#define ram_xdata 0x0000
unsigned long time_hh=0;
unsigned long time1_hh=0;
unsigned int temp=0;
unsigned char select_id=0;
unsigned char time_tl0=0;
unsigned char time_tl1=0;
unsigned int n=0;
unsigned int n1=0;
sbit music=P1^2;
sbit lcd_e1=P2^7;
sbit key1=P1^3;//Select Measurement key
sbit key2=P1^4;//Select Mode key
sbit key3=P1^2;//Start/Stop key
sbit intp_1=P3^3;
sbit intp_0=P3^2;
bit acce_id=0;
bit acce_chose=0;
bit time1_new=0;
bit time2_new=0;
bit over=0;
bit star1_flat=0;
bit star0_flat=0;
bit over0_flat=0;
extern void line_lcd(unsigned char lin,unsigned char linehead[]);//显示一行
extern void char_byte(unsigned char lin,unsigned char byte,unsigned char linehead );//显示一个字节8*16
void black_show(unsigned char lin,unsigned char byte,unsigned char linehead );
extern void clear_up(void);//清除上行
extern void clear_down(void);//清除下行
extern void menu(char id);//显示菜单
extern void INT(void);//LCD初始化
extern void DELAY();//延时0。5秒
extern void celiang();
extern void START_00(void);
extern void START_11(void);
extern void delay01(void);
float long_float(unsigned long time_dat1)
{
unsigned char i;
unsigned long time_dat;
float time_float;
time_dat=time_dat1;
time_dat=time_dat%10000000;
i=time_dat/1000000;
time_dat=time_dat%1000000;
time_float=i*10.0;
i=time_dat/100000;
time_dat=time_dat%100000;
time_float=i*1.0+time_float;
i=time_dat/10000;
time_dat=time_dat%10000;
time_float=i*0.1+time_float;
i=time_dat/1000;
time_dat=time_dat%1000;
time_float=i*0.01+time_float;
i=time_dat/100;
time_dat=time_dat%100;
time_float=i*0.001+time_float;
i=time_dat/10;
time_float=i*0.0001+time_float;
return(time_float);
}
void save_ram(int ramadd,long tempp)
{ long time_tt;
time_tt=tempp;
XBYTE[ramadd]=29;
XBYTE[ramadd+1]=37;
time_tt=time_tt%10000000;
XBYTE[ramadd+2]=time_tt/1000000;
time_tt=time_tt%1000000;
XBYTE[ramadd+3]=time_tt/100000;
time_tt=time_tt%100000;
XBYTE[ramadd+4]=38;
XBYTE[ramadd+5]=time_tt/10000;
time_tt=time_tt%10000;
XBYTE[ramadd+6]=time_tt/1000;
time_tt=time_tt%1000;
XBYTE[ramadd+7]=time_tt/100;
time_tt=time_tt%100;
XBYTE[ramadd+8]=time_tt/10;
}
void save_ram2(unsigned char ijk,long tempp)
{ long time_tt;
unsigned char tti;
tti=ijk;
time_tt=tempp;
XBYTE[0x200+(tti-1)*0x10]=29;
XBYTE[0x200+(tti-1)*0x10+1]=ijk+10;
XBYTE[0x200+(tti-1)*0x10+2]=37;
time_tt=time_tt%10000000;
XBYTE[0x200+(tti-1)*0x10+3]=time_tt/1000000;
time_tt=time_tt%1000000;
XBYTE[0x200+(tti-1)*0x10+4]=time_tt/100000;
time_tt=time_tt%100000;
XBYTE[0x200+(tti-1)*0x10+5]=38;
XBYTE[0x200+(tti-1)*0x10+6]=time_tt/10000;
time_tt=time_tt%10000;
XBYTE[0x200+(tti-1)*0x10+7]=time_tt/1000;
time_tt=time_tt%1000;
XBYTE[0x200+(tti-1)*0x10+8]=time_tt/100;
time_tt=time_tt%100;
XBYTE[0x200+(tti-1)*0x10+9]=time_tt/10;
}
void show_time1(int add_show){
unsigned char i;
unsigned char idata show[16];
for(i=0;i<16;i++)
{show[i]=null;}
for(i=0;i<9;i++)
{show[i]=XBYTE[add_show+i];}
show[0]=29;
show[1]=37;
show[4]=38;
show[9]=26;
show[10]=null;
show[11]=null;
show[12]=null;
show[13]=null;
show[14]=0xff;
line_lcd(0,show);
}
void show_time2(uchar ij )
{ unsigned char j;
unsigned char yy;
unsigned char show[16];
yy=ij;
for(j=0;j<10;j++)
{show[j]=XBYTE[0x200+(yy-1)*0x10+j];}
show[0]=29;
show[1]=yy+10;
show[2]=37;
show[5]=38;
show[10]=26;
show[11]=null;
show[12]=null;
show[13]=null;
show[14]=0xff;
line_lcd(0,show);}
void time2_int() interrupt 5 using 1
{
TF2=0;
time2_new=1;
temp+=1;
switch(select_id)
{
case 0x30:
if(temp>=6000)
{TR2=0;over=1;EA=0;}
else ;
break;
case 0x31:
if(temp>=12000)
{TR2=0;over=1;EA=0;}
else ;
break;
case 0x32:
if(temp>=36000)
{TR2=0;over=1;EA=0;}
else ;
break;
default:
break;
}
}
void show_3(void)
{
unsigned char show[16];
unsigned int test_tem;
unsigned long time_tem;
time2_new=0;
temp=0;
test_tem=0;
n=0;
over=0;
ET2=1;
IE0=0;
IE1=0;
TF2=0;
IT1=1;
IT0=1;
if(acce_id)
{EX1=1;
EX0=0;}
else
{
EX1=0;
EX0=1;
}
EA=1;
PT2=1;
T2CON=0x00;
show[0]=0;
show[1]=0;
show[2]=0;
show[3]=ci;
show[4]=0;
show[5]=0;
show[6]=0;
show[7]=38;
show[8]=0;
show[9]=0;
show[10]=0;
show[11]=0;
show[12]=26;
show[13]=0xff;
line_lcd(2,show);
RCAP2L=0x78; //5000US
RCAP2H=0xEC;
TH2=0xEC;
TL2=0x78;
while(key1&&(!over))
{
if(time2_new)
{
time2_new=0;
n=n%1000;
show[0]=n/100;
show[1]=n%100/10;
show[2]=n%10;
show[3]=ci;
time_tem=temp;
time_tem=time_tem*50;
time_tem=time_tem%10000000;
show[4]=time_tem/ 1000000;
time_tem=time_tem%1000000;
show[5]=time_tem/ 100000;
time_tem=time_tem%100000;
show[6]=time_tem/ 10000;
time_tem=time_tem%10000;
show[8]=time_tem/ 1000;
time_tem=time_tem%1000;
show[9]=time_tem/ 100;
time_tem=time_tem%100;
show[10]=time_tem/ 10;
show[11]=time_tem%10;
show[12]=0xff;
line_lcd(2,show);
}
else ;
}TR2=0;
EA=0;ET2=0;EX0=0;EX1=0;
while(!key1);
clear_down();
n=n%1000;
show[0]=n/100;
n=n%100;
show[1]=n/10;
show[2]=n%10;
show[3]=ci;
time_tem=temp;
time_tem=time_tem*50+(TH2*256+TL2-60536)%1000/100;
time_tem=time_tem%10000000;
show[4]=time_tem/ 1000000;
time_tem=time_tem%1000000;
show[5]=time_tem/ 100000;
time_tem=time_tem%100000;
show[6]=time_tem/ 10000;
time_tem=time_tem%10000;
show[7]=38;
show[8]=time_tem/ 1000;
time_tem=time_tem%1000;
show[9]=time_tem/ 100;
time_tem=time_tem%100;
show[10]=time_tem/ 10;
show[11]=time_tem%10;
show[12]=26;
show[13]=0xff;
line_lcd(2,show);
while(key1);
while(!key1);
delay01();
}
void show_0(void)
{
unsigned char show[15];
unsigned long time_tem;
show[0]=null;
show[1]=null;
show[2]=29;
show[3]=37;
time_tem=XBYTE[ram_xdata+0x04];
time_tem=(time_tem*65536+ XBYTE[ram_xdata+0x05]*256+
XBYTE[ram_xdata+0x06])*25;
if(XBYTE[ram_xdata+0x07]!=0)
{ time_tem=time_tem+(XBYTE[ram_xdata+0x07]-6)/10;
}
else ;
time_tem=time_tem%100000000;
show[4]=time_tem/ 10000000;
time_tem=time_tem%10000000;
show[5]=time_tem/ 1000000;
time_tem=time_tem%1000000;
show[6]=time_tem/ 100000;
time_tem=time_tem%100000;
show[7]=38;
show[8]=time_tem/ 10000;
time_tem=time_tem%10000;
show[9]=time_tem/1000;
time_tem=time_tem%1000;
show[10]=time_tem/100;
time_tem=time_tem%100;
show[11]=time_tem/10;
show[12]=26;
show[13]=0xff;
line_lcd(2,show);
while(key1);
while(!key1);
delay01();
}
void star_01(uchar ii)
{uchar show[15];
unsigned long time_tem=0;
unsigned int test_tem;
show[0]=29;
show[1]=ii/10+10;
show[2]=ii%10+10;
show[3]=37;
test_tem=100-ii;
test_tem=test_tem*4;
time_tem=XBYTE[ram_xdata+test_tem];
time_tem=(time_tem*65536+XBYTE[ram_xdata+test_tem+1]*256+
XBYTE[ram_xdata+test_tem+2])*25;
if(XBYTE[ram_xdata+test_tem+3]!=0)
{ time_tem=time_tem+(XBYTE[ram_xdata+test_tem+3]-6)/10;
}
else ;
//
time_tem=time_tem%100000000;
show[4]=time_tem/10000000;
//
time_tem=time_tem%10000000;
show[5]=time_tem/1000000;
time_tem=time_tem%1000000;
show[6]=time_tem/100000;
time_tem=time_tem%100000;
show[7]=38;
show[8]=time_tem/10000;
time_tem=time_tem%10000;
show[9]=time_tem/1000;
time_tem=time_tem%1000;
show[10]=time_tem/100;
time_tem=time_tem%100;
show[11]=time_tem/10;
show[12]=26;
show[13]=41;
show[14]=0xff;
line_lcd(2,show);
}
void star_11(uchar ii)
{
uchar show[16];
uchar jj;
unsigned long time_tem=0;
float t1_tem;
show[0]=30;
show[1]=ii/10+10;
show[2]=ii%10+10;
show[3]=37;
switch(ii)
{
case 11:
jj=1;
break;
case 20:
jj=4;
break;
case 21:
jj=3;
break;
default:
jj=2;
break;
}
time_tem=XBYTE[ram_xdata+jj*4];
time_tem=(time_tem*65536+ XBYTE[ram_xdata+jj*4+1]*256+
XBYTE[ram_xdata+jj*4+2])*25;
if(XBYTE[ram_xdata+jj*4+3]!=0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -