当前位置: 首页 > news >正文

单片机学习笔记 15. 串口通信(理论)

更多单片机学习笔记:
单片机学习笔记 1. 点亮一个LED灯
单片机学习笔记 2. LED灯闪烁
单片机学习笔记 3. LED灯流水灯
单片机学习笔记 4. 蜂鸣器滴~滴~滴~
单片机学习笔记 5. 数码管静态显示
单片机学习笔记 6. 数码管动态显示
单片机学习笔记 7. 独立键盘
单片机学习笔记 8. 矩阵键盘按键检测
单片机学习笔记 9. 8×8LED点阵屏
单片机学习笔记 10. 中断系统(理论)
单片机学习笔记 11. 外部中断
单片机学习笔记 12. 定时/计数器_定时
单片机学习笔记 13. 定时/计数器_计数
单片机学习笔记 14. 定时/计数器_中断


目录

0、实现的功能

1、Keil工程

1-1 串行通信原理

1-2 51单片机中串口相关的寄存器


0、实现的功能

        串口通信(理论)

1、Keil工程

1-1 串行通信原理

        随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通信功能愈来愈显得重要。计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。
        通信有并行通信串行通信两种方式。在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。
        串行通信时除了数据线还需要控制线(提供节拍)

        异步通信是以字符(构成的帧)为单位进行传输一帧一帧的发送,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的:即字符之间不一定有“位间隔”的整数倍的关系,但同一字符内的各位之间的距离均为“位间隔”的整数倍
        LSB是低位,MSB是高位;校验位是校验前面7位是否在传输时受到干扰等,产生错误

        同步通信属于是持续不断的发送。之前的8*8点阵使用的是SPI通信,属于外同步,甲直接控制乙的时钟。自同步是双方约定好用同一个时钟

        51是全双工通信方式

        比特率是传输的位数

        RS232标准现在基本上不用了。现在用的串行接口标准基本上是microUSB,只有四个引脚:TXD、RXD、地、电源
        传输距离和传输速率有关,主要是和双绞线上的分布电容有关

        RS-232接口主要存在以下问题:1.传输距离短,传输速率低;2.有电平偏移;3.抗干扰能力差
最高传输速率只有20Kbps
        在逻辑上,SBUF只有一个,它既表示发送寄存器,又表示接收寄存器,具有同一个单元地址99H。但在物理结构上,则有两个完全独立的SBUF,一个是发送缓冲寄存器SBUF,另一个是接收缓冲寄存器SBUF。如果CPU写SBUF,数据就会被送入发送寄存器准备发送;如果CPU读SBUF,则读入的数据一定来自接收缓冲器。即CPU对SBUF的读写,实际上是分别访问上述两个不同的寄存器。a = SBUF表示接收,接收到的SBUF赋给a; SBUF = a表示把a发送给SBUF

1-2 51单片机中串口相关的寄存器

        比特率的发生器是用T1来做的,需要对T1进行开启、初值设置。----确定串口工作模式,是对SCON控制。----和定时/计数器一样,串口通信完成后也有查询软件清零方式、中断自动硬件清零方式,如用中断方式就要对中断设置

        先配置IE寄存器,SMOD可以使波特率加倍

        再配置SCON寄存器

        波特率的计算公式。TL1溢出时,是从TH1中取初值

        中断语句的入口4

        所以就是设置EA = 1; ES = 1;
        设置定时器1TCON的TR1,TMOD的工作模式,赋初值;
        再设置SCON的SM0 SM1,REN,TI RI,写上中断程序

http://www.lryc.cn/news/495512.html

相关文章:

  • 算法训练营day22(二叉树08:二叉搜索树的最近公共祖先,插入,删除)
  • Linux history 命令详解
  • Kafka知识体系
  • 【Android】EventBus的使用及源码分析
  • 【大数据学习 | Spark调优篇】Spark之内存调优
  • Linux:文件系统inode
  • 力扣难题解析
  • 4.5-Channel 和 Flow:SharedFlow 和 StateFlow
  • Qt | TCP服务器实现QTcpServer,使用线程管理客户端套接字
  • 【提高篇】3.6 GPIO(六,寄存器介绍,下)
  • 【AI】数据,算力,算法和应用(3)
  • 深度学习笔记——生成对抗网络GAN
  • 网络安全开源组件
  • Python毕业设计选题:基于django+vue的智慧社区可视化平台的设计与实现+spider
  • Oracle LinuxR7安装Oracle 12.2 RAC集群实施(DNS解析)
  • M2芯片安装es的步骤
  • macos下brew安装redis
  • 第六届金盾信安杯-SSRF
  • 【论文投稿】国产游戏技术:迈向全球引领者的征途
  • 腾讯微众银行大数据面试题(包含数据分析/挖掘方向)面试题及参考答案
  • 【Linux】死锁、读写锁、自旋锁
  • Spring Web开发(请求)获取JOSN对象| 获取数据(Header)
  • 用c语言完成俄罗斯方块小游戏
  • SpringBoot整合Retry详细教程
  • JS API事件监听(绑定)
  • ceph手动部署
  • superset load_examples加载失败解决方法
  • wareshark分析mysql协议的数据包
  • HarmonyOS4+NEXT星河版入门与项目实战(25)------UIAbility启动模式(文档编辑案例)
  • webpack 项目访问静态资源