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

📄 serial.h

📁 串口小程序RS232
💻 H
字号:
//头略

#ifndef __SERIAL_H__
#define __SERIAL_H__

/************************************变量定义*******************************/					
xdata uchar temp[256];		//数据缓冲区数组
idata uchar receive0[128];	//接收数据缓冲区数组
idata uchar receive1[1];	//接收数据缓冲区数组
idata uchar receive2[1];	//接收数据缓冲区数组
uchar send[]={0xaa,0x03,0x31,0x33,0x39,0x31,0x33,0x39,0x39,0x31,0x36,0x34,0x39,0x03,0x41,0x5a,0x00,0xff};


bit charendf=0;			//发送数据结束标志

uchar usemark=0;		//使用eep区标志
uchar datacounter=0;		//缓冲区接收计数
uchar secondcopy;		//最后接收时间标志

extern bit tiaoshi;		//调试程序标志
extern bit slimitf;		//

extern uchar timer;
extern uchar second;
extern uchar minute;
extern uchar hour;
extern uchar state;



//bit comrespondf=0;//接收命令回复标志 
/*extern uchar receive0[];
extern uchar send[];
extern uchar datacount;*/

//接口定义


/************************************串口初始化**********************************/
void serial_init(void)
{
	

	PCON&=0x7F;		//无双倍波特率
	SCON=0x70;		//10位UART,允许接收数据	
	IE|=0x90;		//开串行中断

	TMOD&=0x0F;
	TMOD|=0x20;		//T1工作方式2
	TL1=0xfa;		//初值250
	TH1=0xfa;
	
	TR1=1;			//定时器开
}

/*********************************主动发送一个字节*******************************/
void serl_snd_code(uchar scode)
{
	charendf=1;
	SBUF=scode;
}

/*********************************主动发送一串字符*******************************/
void serl_snd_string(uchar *str)
{
	while(*str!=0xff)
	{
		serl_snd_code(*str++);
		while(charendf);			
	}
}
/**********************************串行中断(接收)********************************/
void serl_rec_code(void) interrupt 4
{
	//lightflag=0;
	if(TI)
	{
		charendf=0;
		TI=0;
	}//发送中断

	if(RI)//接收中断
	{
		slimitf=1;
		/*
		switch(usemark)
		{
			 case 0:receive0[datacounter++]=SBUF;break;
			 case 1:receive1[datacounter++]=SBUF;break;
			 case 2:receive2[datacounter++]=SBUF;break;
			 default:break;	
		}*/
		temp[datacounter++]=SBUF;
		if(datacounter>253)
		{
			tiaoshi=1;
			lightflag=0;
		}		
		secondcopy=second;//刷新最后接收时间
		RI=0;		
	}
}

#endif

⌨️ 快捷键说明

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