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

📄 fasong.c

📁 在c8051f020上实现的crc校验程序
💻 C
字号:
#include <c8051f020.h>
#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();
}

⌨️ 快捷键说明

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