使用C语言编程实现单片机与上位机串行通信,其上位机发送数据给单片机,

使用C语言编程实现单片机与上位机串行通信,其上位机发送数据给单片机,,第1张

 #include "reg52.h"

 #define  uchar unsigned char

 #define  LLONG 30

 

 //char code table[]="Hello!"

 uchar code table[]={'F','i','r','s','t','C','h','a','r',':',0x0d,0x0a,'W','W','W','.','H','E','B','T','U','.','E','D','U','.','C','N',0x0d,0x0a}

 uchar Flag,FirstChar=0,UARTChar[10]={0}

 

 void uart() interrupt 4

 {

  ES=0          //---- 中断暂停 ----

  RI=0          //---- 清标志位 ----

  FirstChar=SBUF

  Flag=1

  ES=1          //---- 中断开启 ----

 }

 

 void main()

 {    

  char i=0

  TH1=0xFD

  TL1=0xFD

  TMOD=0x20//T1在定时器方式

  TCON=0x40//TR1=1

  PCON=0x00//SMOD为0

  SCON=0x50//串行方式1 REN=1

  IP=0x00

  IE=0x90

  

  while(1)

  {  

   if(Flag==1)

   {

    ES=0          //---- 中断暂停 ----

    Flag=0        //---- 清标志位 ----

    for(i=0i<10i++)

    {

     SBUF=table[i]

     while(!TI)

     TI=0

    }

    SBUF=FirstChar

    while(!TI)    //---- 通讯等待 ----

    TI=0          //---- 清标志位 ----

    for(i=10i<LLONGi++)

    {

     SBUF=table[i]

     while(!TI)

     TI=0

    }

    ES=1          //---- 中断开启 ----

   }

  }

 }

这个设计的思路是这样:

PC机,可以自发自收,在COM1、COM2之间,连接线路,可以使用“串口调试助手”软件。保证单个字节、多个字节连续、单向、互相、都能畅通无阻。

串口调试助手的作者,写了一本书,你试试看,通信的方法,写得很好的。

当PC机发、收成功之后,再和单片机进行互相通信的调试。

最后,再研究制定自己的通信协议。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10096276.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存