单片机C语言程序设计:-单片机与-PC-通信

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机C语言程序设计:单片机与PC通信/*名称:单片机与PC通信  说明:单片机可接收PC发  送的数字字符,按下单片机的  K1键后,单片机可向PC发送  字符串。在Proteus环境下完成  本实验时,需要安装Virtual  SerialPortDriver和串口调试助  手。本例缓冲100个数字字符,  缓冲满后新数字从前面开始存放(环形缓冲)。  */  #include  #defineucharunsignedchar  #defineuintunsignedint  ucharReceive_Buffer[101];//接收缓冲       ucharBuf_Index=0;  //数码管编码  //缓冲空间索引       ucharcodeDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};  //延时  voidDelayMS(uintms)  {  uchari;  while(ms--)for(i=0;i  }  //主程序  voidmain()  {  uchari;  P0=0x00;  Receive_Buffer[0]=-1;  SCON=0x50;串口模式1,允许接收   TMOD=0x20;//T1工作模式2  TH1=0xfd;//波特率9600  TL1=0xfd;  PCON=0x00;波特率不倍增  EA=1;EX0=1;IT0=1;  ES=1;IP=0x01;  TR1=1;  while(1)  {  for(i=0;i  {//收到-1为一次显示结束  if(Receive_Buffer[i]==-1)break;  P0=DSY_CODE[Receive_Buffer[i]];  DelayMS(200);  }  DelayMS(200);  }  }   //串口接收中断函数  voidSerial_INT()interrupt4  {  ucharc;  if(RI==0)return;//关闭串口中断  ES=0;//清接收中断标志  RI=0;  c=SBUF;  if(c=‘0’&&c  {//缓存新接收的每个字符,并在其后放-1为结束标志  Receive_Buffer[Buf_Index]=c-’0’;  Receive_Buffer[Buf_Index+1]=-1;  Buf_Index=(Buf_Index+1)%100;  }  ES=1;  }   voidEX_INT0()interrupt0//外部中断0  {  uchar*s=这是由8051发送的字符串!rn;  uchari=0;  while(s[i]!=‘‘)  {  SBUF=s[i];  while(TI==0);  TI=0;  i++;  }  }        扩展阅读:单片机向主机发送字符串程序        

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功