⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 智能计时计数器 有计两脉冲间隔时间、几脉冲间隔时间、30秒脉冲数等
💻 C
📖 第 1 页 / 共 4 页
字号:
#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 + -