串口通讯c语言程序详解

 时间:2026-02-14 13:04:16

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、本经验只供参考,如有不足,还请见谅,如果有什么疑问请在下边留言,及时给你解答。。。

  • F190II示波表触发功能使用方法(1、上升沿)
  • 齐纳二极管的应用
  • 怎么在LabVIEW里面添加细分隔线
  • labview中“搜索替换字符串”函数的使用
  • LabVIEW-布尔函数-数组元素与操作
  • 热门搜索
    法制在我心中手抄报 防震减灾的手抄报 古诗词手抄报 礼仪手抄报内容 我爱阅读手抄报资料 手抄报主题 送别诗手抄报 我爱科学手抄报内容 科技节手抄报资料 迎接期中考试手抄报