www.pudn.com > c8051f020上实现的CRC.rar > fasong.c, change:2004-04-20,size:1519b


#include  
#define BYTE unsigned char 
#define WORD unsigned int 
 
//#define BAUD_RATE	9600 
//#define SYSCLK 		2000000 
//#define TIME_COUNT	SYSCLK/BAUD_RATE/16		//13=d 
 
BYTE idata txdata[32]={"a+40.00ba-40.00ba-40.00ba+40.00b"}; 
void SYSCLK_Init(void) 
{ 
     int j; 
 
	 OSCXCN=0x67;				//启动外部振荡器  22.1184mhz 
	 for(j=0;j<256;j++);		//等待振荡器起振 
	 while(!(OSCXCN & 0x80));	//等待晶体振荡器稳定 
	 OSCICN=0x88; 
	 //OSCICN=0x14;                                    //选择内部振荡器,2MHz 
     //OSCXCN=0x00;                                    //禁止外部振荡器 
} 
void BO_Out () 
{   
   XBR0    = 0x04; 
   XBR1    = 0x00; 
   XBR2    = 0x40;                     
} 
void Serial_Out() 
{ 
	BYTE i; 
	WORD j; 
 
	OSCICN=0x14;      //配置内部振荡器是2MHz 
	OSCXCN=0x00;      //不选外部振荡器 
	CKCON=0x20;       //使用定时器2 
	T2CON=0x30;       //用定时器2作UART0的波特率发生器  
	RCAP2H=0xFF; 
	RCAP2L=0xFA;      //波特率是9600  
	PCON|=0x80;	 
	SCON0=0x40;      //配置UART0为方式1,禁止接收 ;允许接收 0x50 182 page 
	//IE=0x10;		 
	TI0=0; 
					//清除UART接收 发送完成标志 
	TR2=1;				//启动定时器2 
   
  
	 
	 for(i=0;i<32;i++) 
	{ 
	 
	    SBUF0=txdata[i]; 
	   
    	while (TI0==0); 
         TI0=0; 
 
		 for(j=0;j<1000;j++);	//延时	 
 
 
         } 
         
	 for(j=0;j<9000000;j++);	//延时	 
	 //for(j=0;j<9000000;j++);	//延时	 
	 //for(j=0;j<9000000;j++);	//延时	 
	 //for(j=0;j<9000000;j++);	//延时	 
} 
void main() 
{ 
    //SYSCLK_Init(); 
	BO_Out (); 
	Serial_Out(); 
}