串口通讯理解

/*2018年 8月10日零点30分于福安公寓
功能:通过将设定好的字符,通过串口助手发送给PC机并且在串口助手的面板上显示出来
注: 无需写什么数据,并且不需要勾选hex发送和hex显示的按钮,直接点击发送即可,
*/
#include<reg52.h>
unsigned char flag;
void init()
{
    TMOD =0x20;
    TH1 =0xf3;
    TL1 =0xf3;
    TR1 =1;
    SM1 =1;
    SM0 =0;
    PCON =0x80;//设置SMOD=1
    REN =1;      //允许串行接收
    EA =1;
    ES =1;

}
void main()
{
    init();
    while(1)
    {
        if(flag ==1)
        {
            flag =0;
            ES =0;//关闭串口中断,否则接收和发送数据时都会引起中断,这样会形成一个死循环
            SBUF ='6';
            while(!TI);
            TI =0;
            SBUF ='2';
            while(!TI);
            TI =0;
            SBUF ='8';
            while(!TI);
            TI =0;
            ES =1;
        }
    }
}

void usart() interrupt 4
{
    RI =0;
    P2 =SBUF;
    flag =1;
}
View Code
原文地址:https://www.cnblogs.com/wises/p/9539525.html