89C51串行口工作方式与波特率计算
需积分: 3 83 浏览量
更新于2024-09-24
2
收藏 79KB DOC 举报
"单片机原理及接口技术(第三版)李朝青编著"
这篇内容主要涉及8051系列单片机的串行接口技术,由李朝青编著的《单片机原理及接口技术》第三版中的部分知识点组成。以下是详细解释:
1. **8051串行口工作方式**:
- 8051单片机的串行口有四种工作方式:方式0、方式1、方式2和方式3。
- 方式0通常用于同步移位寄存器。
- 方式1是波特率可变的8位UART(通用异步收发传输器)模式。
- 方式2和方式3支持多机通信,采用9位数据传输。
2. **帧格式**:
- 串行通信的帧格式在不同工作方式下有所不同,可以有8位、10位或11位的数据帧。
- 在方式2和方式3中,除了8位数据外,还有第9位用于奇偶校验或者多机通信。
3. **波特率计算**:
- 波特率是指每秒钟传输的位数,可以通过计算得到。例如,当每分钟传送3600个字符时,使用方式3,波特率=3600/60×11=660bps。
4. **SCON寄存器位**:
- SCON中的SM2位用于多机通信控制,特别是在方式2和方式3中。
- TB8位在方式2和方式3中,是待发送的第9位数据。
- RB8位接收来自对方的第9位数据。
5. **串行口初始化程序**:
- 初始化串行口工作在方式1,波特率为1200bps,可以使用如下代码:
```asm
MOV SCON, #01000000B;设置串行口为方式1,清TI和RI
MOVTMOD, #20H;设置T1为波特率发生器
MOV TH1, #0E8H;设定波特率初值
MOV TL1, #0E8H
SETB TR1;启动T1
```
- 查询串行口状态并读取数据回送的循环程序也给出了示例。
6. **波特率计算**:
- 当晶振为11.0592MHz,串行口工作在方式1,波特率为4800bps,T1作为波特率发生器时,TMOD应设为20H,TH1和TL1的初始值应为F4H。
7. **双机通信系统设计**:
- 硬件上,需要两台单片机,以及连接它们的串行通信线路。
- 通信程序包括发送方和接收方,发送方从内存30H~3FH区域读取数据并发送,接收方则将接收到的数据存入内存40H~4FH区域。
这些内容详细介绍了8051单片机串行通信的基本概念、配置和应用,对于理解和应用单片机的串行接口技术具有重要价值。学习者可以通过这些知识点进一步了解单片机的串行通信机制,以及如何进行实际的编程操作。
2010-03-23 上传
2011-03-22 上传
2011-05-30 上传
2010-04-07 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
2010-05-28 上传
点击了解资源详情
baihaijiaolong
- 粉丝: 0
- 资源: 1
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建