本测试程序选择STC12C4052AD单片机,采用内部晶振6M起振,传输波特率为2400bps,测试于2012年11月17日通过。使用STC-ISP,V488版本刷机,用其自带串口助手程序测试。源代码如下:
#include <reg51.h> #include <intrins.h> unsigned char tmp; void send_int(void); void send_char(unsigned char txd); main() { send_int(); while(1) { if(RI) // 是否有数据到来 { tmp = SBUF; // 暂存接收到的数据 send_char(tmp); //数据传回 RI = 0; //RI清零 } } } void send_int(void) { TMOD =0x20;//T1工作为方式2 SCON =0x50;//方式1:10位异步同通讯,串口允许接收 PCON =0x80;//波特率倍增,SMOD='1' TH1=TL1=0xf3; // 波特率2400 TR1=1;// 启动定时器1 ES=1; EA=1;//总中断允许 } void send_char(unsigned char txd) // 传送一个字符 { SBUF = txd; while(!TI); TI=0; } void send_string(char *s) //传送字符串时使用 { while(*s) { send_char(*s++); } }