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(); }