AT89S51单片机串行口通信详解
需积分: 0 39 浏览量
更新于2024-08-19
收藏 1.25MB PPT 举报
"AT89S51单片机的串行口使用及配置"
本文将深入探讨AT89S51单片机的串行口,包括其基本工作原理、四种工作模式,以及如何进行多机通信。串行口作为一种全双工通用异步收发(UART)接口,允许数据在两个方向上同时传输,简化了通信过程并降低了硬件需求。
1. **串行口结构**
AT89S51的串行口由两个独立的接收和发送缓冲器SBUF组成,它们可以同时进行数据的发送与接收。发送缓冲器只能写入,接收缓冲器只能读取,两者共享同一个特殊功能寄存器字节地址99H。控制串行口的寄存器有两个,即SCON和PCON。
2. **串行口控制寄存器SCON**
SCON位于字节地址98H,可位寻址,其位地址范围为98H~9FH。SCON寄存器中的各个位都有特定的功能:
- **SM0和SM1**:选择串行口的工作方式,共有四种模式,分别为方式0、1、2和3,这些模式决定了波特率的生成方式以及是否支持多机通信。
- **SM2**:用于多机通信控制,当设置为1时,在方式2和3下,只有接收到的第9位(RB8)为“1”时,才会引发中断请求并将前8位数据放入SBUF。若SM2=0,则不论第9位如何,都会将数据放入SBUF并请求中断。
- **REN**:允许串行接收,通过软件设置,REN=1启用接收,REN=0则禁止。
- **TB8**:在方式2和3中,TB8作为发送的第9位数据,通常用于奇偶校验或在多机通信中区分地址帧和数据帧,TB8=1表示地址帧,TB8=0表示数据帧。
- **RB8**:在接收时,RB8保存了接收到的第9位数据,其作用在不同工作模式下有所不同。
3. **串行通信的C51编程**
在给出的甲机发送程序中,可以看到如何使用C51语言来操作串行口。`#include <reg51.h>`包含了与单片机相关的寄存器定义。`sbit p=PSW^0;`定义了PSW寄存器的第0位p,用于奇偶校验。`unsigned char code Tab[ ];`定义了一个全局数组,存储流水灯显示数据。`Send(unsigned char dat)`函数负责发送一个字节数据,它将ACC寄存器的值赋给要发送的数据,设置TB8位,然后将数据写入SBUF,等待发送完成。
通过以上分析,我们可以了解到AT89S51单片机串行口的工作机制和编程方法,这对于理解和应用单片机的串行通信至关重要。无论是简单的点对点通信还是复杂的多机通信网络,理解这些基础知识都能帮助我们有效地设计和实现通信方案。
2021-02-03 上传
2017-02-24 上传
2022-11-03 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
魔屋
- 粉丝: 25
- 资源: 2万+
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍