51单片机串口通讯c语言程序,如何使用51单片机实现串口通信

2023-05-16

描述

STC51单片机一般带有1个串口,有的带有2个串口,串口一般用于下载程序和串口通信。串口通信特别适合控制设备,所以工控机的电脑上一般都带有串口。

51单片机的串口引脚为P3.0引脚与P3.1引脚,分别是RXD和TXD引脚。串口通信可以用于单片机和其它芯片通信或者单片机之间通信或者单片机与电脑通信。串口通信一般都是交叉连接。标准的串口有9个引脚,我们一般情况下,只用RXD TXD GND,剩下的引脚都是通信控制引脚,在以前用于控制电话机,现在已经基本上不用了。所以我们的51单片机上只保留了RXD和TXD。

串口通信的协议非常简单。如果单片机上的串口不够用,还可以用任意两个引脚模拟串口通信。

04f724b6e421191da8296e53835786ad.png

一般情况,我们用带有起始位的8位串口协议。波特率常用9600,此外还有1200 2400 4800 115200等。

打开串口的程序如下:

TMOD=0x20;

TH1=0xFD;

TL1=0xFD;

SCON=0X50;

TR1=1;

程序涉及到5个寄存器的配置。

TMOD是定时器控制寄存器

TH1和TL1是定时器1的初值寄存器

SCON是串行口控制寄存器

TR1是TCON寄存器中的bit4,因为该寄存器可以位操作

串口发送数据的程序如下所示:

SBUF=55; // 发送数据55

while(!TI);

TI=0;

程序涉及到2个寄存器

SBUF是串口数据寄存器

TI是SCON寄存器中的bit1,位操作

串口接收数据的程序如下所示:

if(RI)

{

recebuf=SBUF;

RI=0;

}

程序涉及到2个寄存器

SBUF是串口数据寄存器

RI是SCON寄存器中的bit0,位操作

SBUF既是发送数据寄存器,又是接收数据寄存器。

可以把上面的功能模块封装成函数,在使用的时候,直接调用。

打开APP阅读更多精彩内容

点击阅读全文

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

51单片机串口通讯c语言程序,如何使用51单片机实现串口通信 的相关文章

  • 托管堆上对象的大小(Size)和Layout

    前几天 xff0c 我介绍了托管环境下struct实例的Layout和Size xff0c 其中介绍了StructLayoutAttribute特性 xff0c 其实StructLayoutAttribute特性不只可以用在struct上
  • 网上十大黑客软件大曝光

    网上十大黑客软件大曝光 Internet网上的黑客网站多如牛毛 xff0c 黑客软件也越来越多 越来越黑 笔者现将这些黑客软件分门别类地曝一曝光 xff0c 并提出相应的解决方案 xff0c 以防患于未然 一 古老的WinNuke 平台 x
  • C# DataSet和DataTable详解[转]

    1 创建DataSet对象 xff1a DataSet ds 61 new DataSet 34 DataSetName 34 2 查看调用SqlDataAdapter Fill创建的结构 da Fill ds 34 Orders 34 D
  • 【Python】爬取网站图片

    import requests import bs4 import urllib request import urllib import os hdr 61 39 User Agent 39 39 Mozilla 5 0 X11 Linu
  • 纯C++实现的HTTP请求(POST/GET)

    纯C 43 43 实现的HTTP请求 xff08 POST GET xff09 xff0c 支持windows和linux xff0c 进行简单的封装 xff0c 方便调用 实现如下 xff1a include 34 HttpConnect
  • python subprocess执行shell命令

    2019独角兽企业重金招聘Python工程师标准 gt gt gt subprocess的目的就是启动一个新的进程并且与之通信 subprocess模块中只定义了一个类 Popen 可以使用Popen来创建进程 xff0c 并与进程进行复杂
  • HDTV片源

    微软的 点击进入 苹果 quicktime下载 点击进入 国内一个网站 不过收费 电击进入 还有思路 转载于 https blog 51cto com wangjian 1420
  • Onvif鉴权实现方式

    Onvif鉴权实现方式 Digest 61 B64ENCODE SHA1 B64DECODE Nonce 43 Date 43 Password gsoap中digest生成代码 xff1a int soap wsse add Userna
  • 一文搞定Java并发编程面试考点

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 1 在java中守护线程和本地线程区别 xff1f java中的线程分为两种 xff1a 守护线程 xff08 Daemon xff09 和用户线程 xff08 User
  • 数据结构c语言版创建链表实验报告,C语言数据结构-创建链表的四种方法

    结点类型 xff1a typedef int datatype typedef struct NODE datatype data struct NODE next Node LinkList 1 不带头结点的头插入法创建链表 每创建一个结
  • syslog-ng

    syslog ng配置 March 13th 2012 绚丽也尘埃 Leave a comment Go to comments syslog ng的配置非常简单直观 xff0c 于是乎配置好看看怎么用它实时收集日志 有两台服务器 xff0
  • CMAKE总结(1) .lib .dll .a .so libx.dll libx.dll.a

    2019独角兽企业重金招聘Python工程师标准 gt gt gt win 对应 linux lib a dll 注 so 注 xff1a win中若使用 dll需要一个附带的引入库 lib win gcc中若使用 dll需要一个附带的因入
  • curl命令详解

    cURL 1 手册页 名称 cURL transfer a URL 摘要 cURL 选项 URL 描述 cURL 是一个向服务器或从服务器传输数据的工具 xff0c 它支持HTTP HTTPS FTP FTPS SCP SFTP TFTP
  • curl命令常见用法汇总 good

    curl是一种命令行工具 xff0c 作用是发出网络请求 xff0c 然后得到和提取数据 xff0c 显示在 34 标准输出 34 xff08 stdout xff09 上面 curl是一个强大的命令行工具 xff0c 它可以通过网络将信息
  • Linux编程之select

    select系统调用的的用途是 xff1a 在一段指定的时间内 xff0c 监听用户感兴趣的文件描述符上可读 可写和异常等事件 select 机制的优势 为什么会出现select模型 xff1f 先看一下下面的这句代码 xff1a int
  • DIGEST认证

    为了弥补BASIC认证存在的弱点 xff0c 从HTTP 1 1起就有了DIGEST认证 DIGEST认证同样使用质询 响应的方式 xff08 challenge response xff09 但不会像BASIC认证那样直接发送明文密码 所
  • Linux下搭建一个简单的UDP通信

    基础知识 UDP和TCP的区别 xff1a 1 TCP是面向连接的 xff0c 而UDP是非面向连接的 xff0c 因此TCP更可靠 2 UDP的server端的socket不需要监听 3 二者的server端都需要绑定 代码实现 xff1
  • 四轴飞行器PID调试一周总结

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Arduino 43 XXD 电调 43 1000KV电机 使用PID来调节稳定性 xff0c 今天上午终于调节 x y轴稳定 回想遇到的问题 xff0c 真的是试出来的值
  • 服务器机柜组件是,网络型机柜与服务器型机柜有什么区别

    导读 随着计算机与网络技术的发展 xff0c 服务器以及网络通信设备等IT设备正在向小型化 网络化 机架化的方向发展 xff0c 那么机房对于机柜管理的需求也就日益增长了 那么 xff0c 你们可知网络型机柜与服务器型机柜有什么区别吗 xf
  • live2d模型_使用二次元模型动画人物让自己网站“骚起来”

    预览 直接使用 xff0c 不想将模型或者js文件放到自己的CDN xff0c 则直接按照下面的步骤 下面的地址是我自己的github地址仓库 xff0c 文件一般不会删除 xff0c 直接引入链接即可 node项目 安装需要的js npm

随机推荐