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

📄 com.h

📁 包中包含了几个SC52控制TEA5767编程用到得C语言测试程序
💻 H
字号:
/************************************************************/
/*********          COM.H C51 driver            *************/
/**********            20060824              ****************/
/************************************************************/
//P3_0->RXD  ;;  P3_1->TXD
//-----------------------------------------------------------------------
//bit read_flag=0;//for ES interrupt
//-----------------------------------------------
//unsigned char Get_Data;//for interrupt get data
//-----------------------------------------------------------------------
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//-----------------------------------------------------------------------
//-----------------------外部函数----------------------------------------
void Init_Com(void);
void SendChar(unsigned char InData);
void SendString(unsigned char *ptr);
//void SendHexChar(unsigned char n);
void SendNumb(unsigned int n,unsigned char number_bit);
void SendNumbLong(unsigned long n,unsigned char number_bit);
void CT(void);//chang tab==enter
//unsigned char Rece_Wait(void);//wait until the RI=1;
//unsigned char Rece_Timer(void);//wait for RI=1 for a little time;
//void Serial() interrupt 4 using 3;//ES interrupt,set read_flag
//-----------------------------------------------------------------------
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//-----------------------------------------------------------------------
//--------------------------------------------------------------------
void Init_Com(void) 
{
	TMOD=0x20; //定时器1,方式2
	TL1=0xFD; 
	TH1=0xFD; //11.0592MHZ晶振,波特率为9600
	PCON=0x00;
	SCON=0x50; //方式3
	ET0 = 1;
	TR1=1; //启动定时
}
//------------------------------------------------------------------
//发送一个字节
//------------------------------------------------------------------
void SendChar(unsigned char InData) 
{	 	
	SBUF=InData;
	while(TI!=1);TI=0;
}
/*
char putchar(char temp)
{
	SendChar(temp);
	return temp;	
}
*/
//------------------------------------------------------------------
//发送一串字符

//------------------------------------------------------------------
void SendString(unsigned char *ptr)
{	
	unsigned char i,l=0;
	while(ptr[l]>31) l++;//get length
	for(i=0;i<l;i++) SendChar(*(ptr+i));
}
//-------------------------------------------------------------------
//发送一组数字,位数可变

//--------------------------------------------------------------------------
void SendNumb(unsigned int n,unsigned char number_bit)
{	
	unsigned char digi[5];
	unsigned char i;

	digi[0]=n/10000;
	digi[1]=n/1000%10;
	digi[2]=n/100%10;
	digi[3]=n/10%10;
	digi[4]=n%10;

	for(i=0;i<number_bit;i++) SendChar(digi[5-number_bit+i]+0x30);
}
/*
//-------------------------------------------------------------------
//发送一组有符号数字,位数可变
//--------------------------------------------------------------------------
void SendSignedNumb(int temp_n,unsigned char number_bit)
{	
	unsigned char digi[4];
	unsigned char i;

	unsigned int n;

	if (temp_n<0)
	{
		SendChar('-');
		n=-temp_n;
	}
	else
	{
		n=temp_n;
	}

	digi[0]=n/10000;n=n-(unsigned int)digi[0]*10000;
	digi[1]=n/1000;n=n-(unsigned int)digi[1]*1000;
	digi[2]=n/100;n=n-(unsigned int)digi[2]*100;
	digi[3]=n/10;n=n-(unsigned int)digi[3]*10;
	digi[4]=n;
	for(i=0;i<number_bit;i++) SendChar(digi[5-number_bit+i]+0x30);
}
//-------------------------------------------------------------------

//发送一个字节按16进制显示
//--------------------------------------------------------------------------
void SendHexChar(unsigned char n)
{	
	unsigned char h,l;

	SendChar('0');SendChar('x');

	h=(n&0xf0)>>4;if(h>9) h+=0x57;else h+=0x30;
	l=(n&0x0f);if(l>9) l+=0x57;else l+=0x30;
	SendChar(h);SendChar(l);

	SendChar(',');
}
//-------------------------------------------------------------------
*/
void SendNumbLong(unsigned long n,unsigned char number_bit)
{
	unsigned char digi[10];
	unsigned char i;

	digi[0]=n/1000000000;
	digi[1]=n/100000000%10;
	digi[2]=n/10000000%10;
	digi[3]=n/1000000%10;
	digi[4]=n/100000%10;
	digi[5]=n/10000%10;
	digi[6]=n/1000%10;
	digi[7]=n/100%10;
	digi[8]=n/10%10;
	digi[9]=n%10;

	for(i=0;i<number_bit;i++) SendChar(digi[10-number_bit+i]+0x30);
}
//回车、换行
//-------------------------------------------------------------------
void CT(void)
{	
	SendChar(0x0d);SendChar(0x0a);
}
//--------------------------------------------------------------------
/*
//查询接收(一直查询)
//--------------------------------------------------------------------
unsigned char Rece_Wait(void)//wait until the RI=1;
{   unsigned char a;
	while(RI!=1);
	RI=0;
	a=SBUF;
	return(a);
}
//--------------------------------------------------------------------
//查询接收(查询一段时间)
//--------------------------------------------------------------------
unsigned char Rece_Timer(void)//wait for RI=1 for a little time;
{   unsigned char a=0;
	unsigned int i;
	for(i=0;i<100;i++)
	{	if(RI) 
		{	RI=0;
			a=SBUF;
			break;
		}
	}
	return(a);
}
//--------------------------------------------------------------------
//中断接收(置标志位read_flag)
//--------------------------------------------------------------------

void Serial() interrupt 4 using 3
{
	ES=0;
	if(RI)
	{	RI=0;
		Get_Data=SBUF;
		read_flag=1; 
	}
	ES=1;
}
*/
//----------com end---------------------------------------------------
  

⌨️ 快捷键说明

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