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

📄 mainh.h

📁 噪音测试。该测量仪能能满足一般民用需要。具有数字显示
💻 H
字号:
typedef unsigned char                U8;
typedef unsigned short               U16;
typedef unsigned long                U32;
#include "intrins.h"

#define  EE_Base	0x8000
#define  STC
#define  STC12   

sfr	AUXR		=0X8E;
sfr	ISP_DATA	=0XE2;
sfr	ISP_ADDRH	=0XE3;
sfr	ISP_ADDRL   =0XE4;
sfr	ISP_CMD 	=0XE5;
sfr	ISP_TRIG	=0XE6;
sfr	ISP_CONTR	=0XE7;
sfr 	WDT_CONTR   =0XE1;

sfr 	XICON		   =0Xc0;
/*  XICON  */
sbit PX3    = XICON^7;
sbit EX3    = XICON^6;
sbit IE3    = XICON^5;
sbit IT3    = XICON^4;
sbit PX2   	= XICON^3;
sbit EX2  	= XICON^2;
sbit IE2	= XICON^1;
sbit IT2    = XICON^0; 

#define  ISP_READ   1;
#define  ISP_WRITE  2;
#define  ISP_ERASE  3;
#define  ISP_TIME   0;

#define  RST	ISP_CONTR|=0x20;
#define  PULSE	EA=0;ISP_TRIG=0X46;_nop_();ISP_TRIG=0XB9;EA=1;
#define	bus	P0
#define	busfree	bus=0xff

sfr P4   =0XE8;		sfr T2MOD   =0Xc9;
sbit    INT3		=   P4^2;
sbit    INT2		=   P4^3;
//sbit    PW			=	 P3^1;

sbit SL165		= P2^0;  sbit CK165	=	P3^2;	sbit SO165	=	P4^0;

#define  play_buf   128
#define  sendA		TI=0;SBUF='A';
U8 bdata flag;
sbit R232 =flag^0;	sbit Playing=flag^1;	sbit Pause=flag^2;	sbit Playing_F=flag^3;
sbit ON_OFF=flag^4;

//与STC12xx通讯用到的变量
U8	commct;			//从STC12接收数据计数 <=100
U8 xdata	 commbuf[100];
sbit commack	=	P4^1;
bit  commover=0;

int	timer0=0; 

#ifndef STC
U32 BLK_ofset;  U16 FileSize;
U8 Sbuf,FileNo,dir,code_ct=0;

void receive_kk(void) interrupt 2
{	
			
	code_ct+=1;		//SBUF=timer;
	Sbuf>>=1;
//	if(TH1<213)Sbuf|=0x80;		//27.132MHz
//	if(TH1<220)Sbuf|=0x80;		//36MHz
//	if(TH1<225)Sbuf|=0x80;		//40MHz	
	if(TH1<216)Sbuf|=0x80;		//24.576MHz	
	TH1=200;TL1=0;TR1=1;
}
void receive_over(void) interrupt 3 
{		
	if(code_ct<30){code_ct=TR1=0;Sbuf=0;return;}
/*	if(Sbuf>9)switch(Sbuf)
	{		
		case 14:Sbuf='P';break;	//play back	
		case 27:Sbuf='<';break;	//节目上	
		case 26:Sbuf='>';break;	//节目下
		case 13:Sbuf='S';break;	//Tv/V
		case 21:Sbuf='M';break;	//mute
		case 31:Sbuf='+';break;	//音量>  +
		case 30:Sbuf='-';break;	//音量<  -
		case 10:Sbuf='^';break;	//-/--
	}*/
//	TI=0;	SBUF=Sbuf;
	code_ct=TR1=0;		R232=1;		
}
#endif
//****************EE-prom modle************

void disable_EE()
{	ISP_CONTR=ISP_CMD=ISP_TRIG=0;ISP_ADDRH=ISP_ADDRL=0XFF;		}
void flash_erase(U8 page)
{
	
	ISP_ADDRH=	EE_Base>>8	+	page*2;	ISP_ADDRL=0;   
	ISP_CONTR=0X80;	ISP_CMD=ISP_ERASE;
	PULSE;
	disable_EE();
	
}
void write_EE(U16 addr,U8 dat)
{
	addr+=EE_Base;
	ISP_CONTR=0X80;ISP_CMD=ISP_WRITE;	
	ISP_ADDRL=addr;	ISP_ADDRH=addr>>8;
	ISP_DATA=dat;PULSE;	
	disable_EE();
}
U8 read_EE(U16 addr)
{
	U8 dat;		addr+=EE_Base;
	ISP_CONTR=0X80;		ISP_CMD=ISP_READ;	
	ISP_ADDRL=addr;		ISP_ADDRH=addr>>8;
	PULSE;	dat=ISP_DATA;
	disable_EE();		
	return(dat);
}
#ifdef STC
#define SF  1
#define CF  0
void PD_rst(){
	if(PCON&0x10){ 
		PCON ^=0x10;   //Clear PCON.4(POF)
		ON_OFF = CF;   //车方状态
	}
}
U8 read165(){
	U8	i,r=0;
	CK165=0;	SL165	= 0;	SL165=1;
	for(i=0;i<8;i++){
		CK165=1;  if(SO165)r |=(1<<i);	CK165=0;	
	}
	return r;
}
#endif
//*********************  Delay n T  *******************************************
void dlyNT(U8 nt){
	while(nt--);
}
#ifdef STC12
//*****************************   Stc12xx <==> Stc89xx  Comunication ***************
//EX2 P4.3   (@qfp44 pin6)

void com89_12(void) interrupt 6 using 2
{
	if(commct>=commbuf[0]){commover=1;		return;}
	commbuf[commct]=bus;  
	commack=0; dlyNT(10); commct++; commack=1;	
}

U8 SendTo12xx(U8 *p,U8 lng){

	while(lng--){
		bus=*p;	commack=0; dlyNT(10);commack=1;
		timer0=0; while(commack)if(timer0>=100)break; 
		if(timer0>=10){busfree;	return(0);}
		timer0=0; while(!commack)if(timer0>=100)break; 
		if(timer0>=10){busfree;	return(0);}
	}
	busfree;  return(1);
}

#endif

#define GPS
#ifndef GPS
//*****************************   Extend RS232 Comunication ***************
//EX2 P4.3   (@qfp44 pin6)

void comGPS_PC(void) interrupt 6 using 2
{
	if(commct>=commbuf[0]){commover=1;		return;}
	commbuf[commct]=bus;  
	commack=0; dlyNT(10); commct++; commack=1;	
}
#endif
/***********************end**************************
U8 box_filesum()
{
	U8 i=0;
	while(i<128){if(read_EE((U16)i*8)==0xff)break;i+=1;}
//	SBUF=i;
	return(i);
}
U16 New_BlockHeader()
{	U8 F_sum;	U32 x;
	U16 addr,F_Block_Header;	U32 size;	 addr=0;		F_Block_Header=0;
	F_sum=box_filesum();
	if(F_sum){addr = (F_sum-1)*8+2;
		F_Block_Header = read_EE(addr);		addr+=1;	F_Block_Header += (U16)(read_EE(addr)<<8);
		addr+=1;	size=read_EE(addr);	
		addr+=1;	x=read_EE(addr);	x<<=8;	size+=x;
		addr+=1;	x=read_EE(addr);	x<<=16;	size+=x;	
		addr+=1;	x=read_EE(addr);	x<<=24;	size+=x;	
		size=(size/2048)/64;		F_Block_Header+=(size+1);
	}
	return (F_Block_Header);
}
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -