本博客以广西大学电气工程学院陈柏轩老师编写的单片机原理与应用实验指导书为基础,建立在读者对51单片机的基本编程软件与烧录软件较为熟悉的基础上撰写。

实现51单片机与PC通信:

1.基于查询法实现通信:

#include <REGX52.H>
#define LED P1
unsigned char buf;
void serial_init()//串行中断初始化函数
{SCON=0x50;//选中串行方式1,启动串行接收数据   PCON=0x00;//设置波特率倍增为0TMOD=0x20;//设置定时器1工作在方式2TR1=0;//清除定时器1中断溢出标志TH1=0xFD;//设置定时初值为253TL1=0xFD;EA=1;//开启总中断ES=1;//允许串行口申请中断TR1=1;//开启定时器1中断 ET1=0;//禁止定时器中断溢出;
}
void main()
{serial_init();//串行口中断初始化while(1){if(RI==1){RI=0;buf=SBUF;LED=buf;ES=0;//禁止串行口中断SBUF=buf;while(!TI);TI=0;ES=1;}}
}

2.基于中断法实现通信:

#include <REGX52.H>
#define LED P1
unsigned char buf=0,flag=0;
void serial_init()//串行中断初始化函数
{SCON=0x50;//选中串行方式1,启动串行接收数据   PCON=0x00;//设置波特率倍增为0TMOD=0x20;//设置定时器1工作在方式2TR1=0;//清除定时器1中断溢出标志TH1=0xFD;//设置定时初值为253TL1=0xFD;EA=1;//开启总中断ES=1;//允许串行口申请中断TR1=1;//开启定时器1中断 ET1=0;//禁止定时器中断溢出;
}
void main()
{serial_init();//串行口中断初始化while(1);
}
void serial() interrupt 4
{ES=0;//禁止串行口中断TI=0;//禁止串行口发送中断RI=0;//禁止串行口接收中断buf=SBUF;//将SBUF寄存器中的数据放到buf处LED=buf;flag=1;if(flag==1){ES=0;SBUF=buf;while(!TI);//没有发送完毕就等待TI=0;//发送完毕后要重新置0ES=1;flag=0;}ES=1;//允许串行口申请中断
}

从两段代码不难看出,其实查询法和中断法的差异无非就在于查询法不是通过调用中断执行函数,而是直接在主函数体内实现中断执行函数的相关程序。相信大家能通过自己的联系取得自己学业上的进步,no pains, no gains!

51单片机与PC通信相关推荐

  1. 单片机与PC机一样都是计算机,51单片机与PC机通信资料

    <51单片机与PC机通信资料>由会员分享,可在线阅读,更多相关<51单片机与PC机通信资料(14页珍藏版)>请在人人文库网上搜索. 1.专业综合实习报告专 业: 电子信息工程 ...

  2. 51单片机stc15w204s串口通信发数据接收数据串口中断发中文字符串完美运行软件延时发送一字节函数全注释

    这里写自定义目录标题 KEIL自己先调试通了然后再说下面的事 51单片机stc15w204s串口通信直接上文件 KEIL自己先调试通了然后再说下面的自己看看就可 KEIL自己先调试通了然后再说下面的事 ...

  3. MATLAB与51单片机进行串口通信详解

    目录 一.51单片机与电脑进行串口通信 二.MATLAB串口通信函数 三.串口属性 四.示例Demo 4.1 MATLAB接收单片机发来的数据 4.2 MATLAB向单片机发送数据控制LED 五.总结 ...

  4. 简单双机通信java_完整版)51单片机实现双机通信(自己整理的

    <完整版)51单片机实现双机通信(自己整理的>由会员分享,可在线阅读,更多相关<完整版)51单片机实现双机通信(自己整理的(6页珍藏版)>请在人人文库网上搜索. 1.PjfAl ...

  5. 51单片机c语言485通讯案例,485通讯协议程序怎么写(51单片机的485通信程序案例)...

    RS-485总线接口是一种常用的串口,具有网络连接方便.抗干扰性能好.传输距离远等优点.RS-485收发器采用平衡发送和差分接收,因此具有抑制共模干扰的能力,加上收发器具有高的灵敏度,能检测到低达20 ...

  6. Proteus仿真stm32和51单片机,串口通信调试过程记录

    前言 本文所用Proteus版本为8.10,主要内容为在Proteus中仿真stm32和51单片机进行串口通信,记录了仿真过程中遇到的问题和解决办法.        这里要注意的是,在Proteus中 ...

  7. 基于新塘51单片机的485通信

    基于新塘51单片机的485通信 序言 最近有一个项目用新塘的51FB9A单片机做时控开关(上位机控制)控制继电器,但是我原来也没整过485啊,本来以为这玩意很难.没想到才了一些坑之后还觉得挺简单的.这 ...

  8. 51单片机的串口通信

    1.串口通信 (1)串口是串行接口(serial port)的简称,也称为串行通信接口或COM接口. (2)串口通信是指采用串行通信协议(serial communication)在一条信号线上将数据 ...

  9. 51单片机之串口通信

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.串口介绍 二.电路 三.寄存器 四.串口通信操作流程 前言 2022.9.14的学习记录.` 一.串口介绍 串口是 ...

最新文章

  1. Spring核心--IOCAOP
  2. 使用AOP动态调用WebService
  3. SpringBoot 项目war包部署 配置外置tomcat方法
  4. android studio 错误: 找不到符号 符号: 方法 xxx() 位置: 类 xxx
  5. 漫画:如何做一款比吃鸡还厉害的游戏
  6. 视频擦除方向研究(生成技术的一类)
  7. 矩阵键盘数 码管显示多位数 c语言,4×4矩阵键盘数码管显示按键值程序
  8. Python版本微信跳一跳,软件配置
  9. PhpSpreadsheet使用
  10. 如何让php支持mysql的,怎么让php支持MySql
  11. 阶段3 3.SpringMVC·_07.SSM整合案例_01.ssm整合说明
  12. 华硕B85M-G主板安装心得
  13. WPF框架下,窗体的嵌套显示
  14. 按键精灵---后台按键及鼠标操作
  15. linux版flash下载工具,Linux系统下安装Flash浏览器插件的方法
  16. linux中通过关键字查询日志,查询结果突显
  17. 录屏储存失败因为5823_屏幕录制存储失败因为5823
  18. Unity安卓打包设置项目名称为中文名
  19. 【JAVA】500勇士问题,杀掉第三个人
  20. 如何使用股票行情软件看股票

热门文章

  1. mob短信验证码SMSSDK的使用
  2. Python下载和安装及Pycharm专业版安装+汉化+解决安装常见问题超详细教程(图解)
  3. 基于javaweb的it设备固定资产管理系统(java+ssm+jsp+mysql)
  4. ES 设置支持/禁用排序、聚合的mapping parameters
  5. 数据结构---树的性质
  6. 韩国研究生留学能跨专业学计算机吗,韩国硕士留学如何申请 留学韩国硕士可以读什么专业...
  7. 哈夫曼树原理及其构造方法
  8. SpaceVim踩坑之java代码格式化
  9. Redis有序集合命令ZREMRANGEBYLEX详解与应用
  10. latex上编写论文转到word上