串口通讯c语言程序详解

2025-11-29 18:22:03

1、利用串口调试助手,往单片机发送数据,单片机接收到数据再发回电脑,进行串口调试

串口通讯c语言程序详解

2、#include "reg52.h"//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

串口通讯c语言程序详解

3、#define uint unsigned int

#define uchar unsigned char

uchar a,flag;

串口通讯c语言程序详解

4、/******************************************************************/

/*                    延时函数声明                                */

/******************************************************************/

/*void mdelay(uint t)

{

  uchar n;

for(;t>0;t--)

 for(n=0;n<125;n++)

  {;}

}*/

void mdelay(uint t)

{

uchar n;

while(t--)

{

for(n=0;n<123;n++)

  {;}

  }  

}

串口通讯c语言程序详解

5、/******************************************************************/

/*                   主函数                                       */

/******************************************************************/

void main()

TMOD=0x20;//设置定时器0为工作方式1

TH1=0xfd;//设置初值

TL1=0xfd;

TR1=1;//启动定时器

        SM0=0;

SM1=1;//设置串口为方式1

REN=1;//接收使能

EA=1;//开总中断开关

ES=1;//打开串口中断开关

串口通讯c语言程序详解

6、 while(1)//单片机发送数据

{

    if(flag==1)

{

      ES=0;//关闭串口中断

flag=0;//数据清零

SBUF=a;//写数据

while(!TI);//数据没有发完TI一直是1,等待数据发送结束

TI=0;//数据发送完毕要软件清零

      ES=1;//打开串口中断

    }

  }

}

串口通讯c语言程序详解

7

串口通讯c语言程序详解

8、/******************************************************************/

/*                   定时器0                                       */

/******************************************************************/

void serial() interrupt 4//单片机接收数据

{

  a=SBUF;//往单片机写入一个数据

P0=a;

RI=0;//数据接收完毕软件清零

flag=1;//标志位 收到数据为1

}

9、本经验只供参考,如有不足,还请见谅,如果有什么疑问请在下边留言,及时给你解答。。。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢