www.pudn.com > 320.rar > serial.c


#include  
#include  
#include  
//#include  
//#include "dir\config.h" 
#include "serial.h" 
#include  
 
 
//uchar serial_rec_byte; 
 
//extern uchar code num_dis[10]; 
 
/**************************************************************************** 
* 名称:void int_serial(void) interrupt 4 
* 功能:串口中断 
* 入口参数:无 
* 出口参数:无 
****************************************************************************/ 
/*  
void int_serial(void) interrupt 4 
{ 
	uchar a; 
	EA=0; 
	if(RI) 
	{ 
		RI=0; 
		serial_rec_byte++; 
		a=SBUF; 
		LCM1602(0,0,1,&num_dis[(serial_rec_byte/100)]); 
		LCM1602(1,0,1,&num_dis[(serial_rec_byte/10)%10]); 
		LCM1602(2,0,1,&num_dis[serial_rec_byte%10]); 
 
		LCM1602(4,0,1,&a); 
 
	} 
	if(TI) 
	{ 
		TI=0; 
	 
	} 
	EA=1; 
 
} 
*/ 
 
 
 
 
/**************************************************************************** 
* 名称:void test_serial(void) 
* 功能:测试串口,向超级终端发送一串字符。 
* 入口参数:无 
* 出口参数:无 
****************************************************************************/ 
void test_serial(void) 
{ 
	//printf("test serial ok!\n"); 
	//printf("\n\n***************************************************************\n"); 
	//printf("*****                   Serial Test OK!                   *****\n"); 
	//printf("*****                    串口测试完成                     *****\n"); 
	//printf("*****                      系统复位                       *****\n"); 
	printf("***************************************************************\n"); 
} 
 
 
/**************************************************************************** 
* 名称:void test_ram(void) 
* 功能:测试RAM,先向RAM中写入一定量已知数据,然后向超级终端发送数据 
* 入口参数:无 
* 出口参数:无 
****************************************************************************/ 
/* 
void test_ram(void) 
{ 
	uint a; 
	for(a=0;a<32*1024;a++) 
	{ 
		XBYTE[a]=a%0xff;	 
		printf("NO%d:%d\n",(int)a,(int)XBYTE[a]); 
	} 
 
} 
*/ 
 
 
 
/**************************************************************************** 
* 名称:void serial_init(void) 
* 功能:串口初始化。 
* 入口参数:无 
* 出口参数:无 
****************************************************************************/ 
void serial_init(void) 
{ 
	SCON = 0X52;		/* SCON: SM0|SM1|SM2|REN|TB8|RB8|TI|RI		*/ 
	PCON = 0X80 | PCON;	/* PCON: SMOD | - | - | - | GF1|GF0|PD |IDL|    */ 
	TMOD = 0X20;		/* TMOD: GATE|C/T|M1|M0|GATE|C/T|M1|M0 */ 
	TCON = 0x69;    	/* TCON: TF1|TR1|TF0|TR0|IE1|IT1|IE0|IT0 */ 
	//TH1 = 0xE5;			/* 2400@12M */ 
	TH1=0x97;			/* 300@6M  */ 
	//TH1 = 0xF9;		/* 9600@12M 这时误差太大,还是用上面的比较好 */		] 
   	//ES=1; 
	//EA=1; 
}