即PC机发送一串数据,51单片机将数据反馈回来。使用回车符作为一串字符串的结束标志 总结: 我是参照郭天祥51单片机写的, 这个程序写得还是有点疑惑,就是下面在接受完数据后 一定要先将串口中断关闭(即ES = 0),然后再进行处理, 如果不关闭中断的话,反馈回PC机的数据就是I get\n*/ #include//#define DEBUG #define u8 unsigned char #define u16 unsigned int #define MAXSIZE 64 u8 code table[] = "I get "; u8 flag,index,i,Len; u8 Buff[MAXSIZE]; void Configuration() { TMOD = 0x20; TH1 = 0xF3; //设置波特率为4800 TL1 = 0xF3; TR1 = 1; SCON = SCON & (0x3<<6); SCON = SCON | (0x01<<6) | (1<<4); //设置串口工作模式和使能接受 PCON = PCON | (1<<7); //设置波特率加倍,即最终的波特率为9600 EA = 1; //开启中断 ES = 1; } void Recieve() interrupt 4 { RI = 0; Buff[index++] = SBUF; #ifdef DEBUG SBUF = Buff[index-1]; while(!TI); TI = 0; #endif if (Buff[index-1]=='\n' ) //这一串数据结束 { Len = index; index = 0; flag = 1; } } void main() { Configuration(); while(1) { if (1==flag) //判断是否有数据到来 { ES = 0; //要关闭中断,否则程序有问题 for(i=0;i<6;i++) { SBUF = table[i]; while(!TI); //等待数据发送完毕 TI = 0; } for(i=0;i
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』