51单片机———串口通讯的疑惑
时间:11-20
来源:互联网
点击:
/*程序的功能是在T1定时器工作方式2下使用串口工作方式1实现串口通讯,
即PC机发送一串数据,51单片机将数据反馈回来。使用回车符作为一串字符串的结束标志总结:我是参照郭天祥51单片机写的,这个程序写得还是有点疑惑,就是下面在接受完数据后一定要先将串口中断关闭(即ES = 0),然后再进行处理,如果不关闭中断的话,反馈回PC机的数据就是I get\n*/#include//#define DEBUG#define u8 unsigned char#define u16 unsigned int#define MAXSIZE 64u8 code table[] = "I get ";u8 flag,index,i,Len;u8 Buff[MAXSIZE];void Configuration(){TMOD = 0x20;TH1 = 0xF3; //设置波特率为4800TL1 = 0xF3;TR1 = 1;SCON = SCON & (0x3<6); SCON = SCON | (0x01<6) | (1<4); //设置串口工作模式和使能接受PCON = PCON | (1<7); //设置波特率加倍,即最终的波特率为9600EA = 1; //开启中断ES = 1;}void Recieve() interrupt 4{RI = 0;Buff[index++] = SBUF;#ifdef DEBUGSBUF = Buff[index-1];while(!TI);TI = 0;#endifif (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
51单片机串口通 相关文章:
- 51单片机串口通信试验汇编程序(12-01)
- AVR和51单片机串口通信简单实验(11-30)
- Labview与C51单片机实现串口通信(11-28)
- 51单片机串口通信测试程序(11-27)
- 51单片机的串口通信(11-26)
- C51单片机串口通讯注意点(11-24)