×
单片机 > 单片机程序设计 > 详情

c51串口通信程序

发布时间:2020-06-02 发布时间:
|

//-------------------------------------------------------------------------------------------------------------------

//程序名称:串口通信程序

//功能:实现单片机与PC之间的串口通信,PC向单片机发送,单片机返回PC所发的内容

//硬件连接:单片机的P3.0  P3.1经max232电平转化后与PC串口相连

//测试情况:本程序已经由我亲自上机测试,确保无误

//-------------------------------------------------------------------------------------------------------------------

#include
#define uint unsigned int 
#define uchar unsigned char
uchar num,flag;
void main()
{
 
 TMOD=0X20;//设置定时1为工作方式2
 TH1=0XFD;   //设置定时器初始值
 TL1=0XFD;
 TR1=1;        //启动定时器
 SCON=0X50;
 EA=1;        //开总中断
 ES=1;        //开串口中断
 
 while(1)
           {
 
                   if(flag==1)               //flag为标志位,当flag==1时,说明此时已经发生串口中断,也就是说此时PC已经向单片机发送了数据
                           {
                                 EA=0;      //为防止受影响,关闭所有中断
                                 flag=0;     //清标志位
                                 SBUF=num;  //将串口收到的值num存放在串口发送寄存器中
                                 while(!TI);     //TI是串口发送标志位,当发送完毕后,硬件自动置1,所以一般此句话的意思叫等待发送完毕
                                 TI=0;            //清发送标志位,以便下次中断后能再次发送
                                 EA=1;          //开总中断
                            }
            }
}

 

void ser() interrupt 4    //中断服务子程序
{
              RI=0;                       //RI接受标志位,为0时允许接收,接收完毕后置1
             num=SBUF;             //串口接收寄存器接收到的值赋给变量num
             flag=1;                    //中断标志位置1
}

 

注:有时候对于新手来说,有些特殊功能寄存器或者一些 位 的操作不理解,其实只要翻开课本查一下这个是什么作用,对于程序就明白怎么写了,比如本文的  RI  TI  SCON  SBUF等等  ,读懂了他们的作用自热而然的就知道怎么用了。查资料很重要


关键字:C51  串口通信 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析