TMOD、TCON、SCON、PCON、SBUF寄存器说明
TMOD:定时器/计数器工作方式寄存器
TCON:定时器/计数器控制寄存器
SCON:串行口控制寄存器
串行口控制寄存器SCON决定串行口通信工作方式,控制数据的接收和发送,并标示串行口的工作状态等,其位格式为:
SMO、SM1:串行口工作方式控制位,对应4种工作方式,如表7-1所示(fosc是晶振频率)。
SM2:
多机通信控制位,主要用于工作方式2和工作方式3。
若SM2=1,则允许多机通信。
多机通信规定:第9位数据位为1 (即TB8=1),说明本帧数据为地址帧:第9位数据为0(即TB8=0),则本帧数据为数据帧。
当从机接收到的第9位数据(在RB8中)为1时,数据才装入接收缓冲器SBUF,并置RI=1向CPU申请中断;如果接收到的第9位数据(在RB8中)为0,则不置位中断标志RL信息丢失。
当SM2=0时,则不管接收到第9位数据是否为1,都产生中断标志RI,并将接收到的数据装入SBUF。应用这一特点可以实现多机通信。
串行口工作在方式0时,SM2必须设置为0;工作在方式1时,如SM2=1,则只有接收到有效的停止位时才会激活RI。
REN:允许接收控制位。当REN=1时,允许接收;当REN=0时,禁止接收。此位由软件置1或清零。
TB8:在方式2和方式3中,此位为发送数据的第9位,在多机通信中作为发送地址帧或数据帧的标志。TB8=1,说明该发送帧为地址帧;TB8=0,说明该发送帧为数据帧。在许多通信协议中,它可作为奇偶校验 位。此位由软件置1或清零。在方式0和方式1中,此位未使用。
RB8: 接收数据的第9位。在方式2和方式3中,接收到的第9位数据放在RB8中。它或是约定的奇/偶校验位,或是约定的地址/数据标志位。在方式2和方式3多机通信中,若SM2=1且RB8=1,说明接收到的数 据为地址帧。
TI: 发送中断标志位。在一帧数据发送完时置位。TI=1,申请中断,说明发送缓冲器SBUF已空,CPU可以发送下一帧数据。中断被响应后,TI不能自动清零,必须由软件清零。 ,
RI: 接收中断标志位。在接收到一帧有效数据后,由硬件置位。RI=1.申请中断,表示一帧数据接收结束,并已装入接收缓冲器SBUF中,CPU响应中断,取走数据。RI不能自动清零,必须由软件清零。
串行口发送中断标志TI和接收中断标志RI共为一个中断源。因此,CPU接收到中断请求后,不知道是发送中断TI还是接收中断RI,必须用软件来判别。单片机复位后,控制寄存器SCON的各位均清零。
PCON:电源控制及波特率选择寄存器
电源控制寄存器PCON中只有一位SMOD与串行口工作有关,
SMOD:波特率倍增位。串行口工作在方式1、方式2、方式3时,若SMOD=1,则波特率提高一倍;
若SMOD=0,则波特率不提高一倍。单片机复位时,SMOD=0。
SBUF:串行数据缓冲器
串行口中有两个缓冲寄存器SBUF,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的。它们都是字节寻址的寄存器,字节地址均为99H。这个重叠的地址靠读/写指令区分:串行发送时,CPU向SBUF写入数据,此时99H表示发送SBUF;串行接收时,CPU从SBUF读出数据,此时99H表示接收SBUF。
SBUF是指串行口中的两个缓冲寄存器,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的,但地址是重叠的。它们都是字节寻址的寄存器,字节地址均为99H。只要在编写程序时,用不同指令即可操作两个寄存器。
比如,SBUF=A;这个是指将A的数据移入发送寄存器,然后发送寄存器再把数据发送出去。A=SBUF;则是指将接受寄存器中的数据赋值给A。
TMOD、TCON、SCON、PCON、SBUF寄存器说明相关推荐
- 关于串口通信SBUF寄存器随笔:
SBUF寄存器,以RXD为例,我一直以为是缓存移位寄存器发送来的数据,并且同时传给参数,传完之后SBUF就会里是没有内容的,这是我一开始理解的缓冲, 直到看到一段代码: void Serial() i ...
- C52单片机中断定时系统思路和实现代码
最近拿到了单片机的课程设计题目,乍一看还挺简单的,就是一个简单的电子时钟,想都没想就直接把我arduinod的DS1302时钟模块拿来直接就做出来了,好家伙这两天仔细读了题目才发现直接指出了不能用DS ...
- 发现好文!51单片机特殊功能寄存器 /I/O口操作 /中断/ 定时器/ 串口通信/ ---位寻址解释由来--以及程序例程
51单片机特殊功能寄存器有哪些_功能是什么 最近学习中对寄存器的概念理解很迷惑,I/O口操作/中断/定时器/串口通信四大模块的寄存器应用不太明白,这篇文章,解释的不错,希望帮到各位! 1.21个寄存器 ...
- 51单片机特殊功能寄存器(SFR)介绍
1.21个寄存器介绍 51系列单片机内部主要有四大功能模块,分别是I/O口模块.中断模块.定时器模块和串口通信模块(串行I/O口),如其结构和功能如下图: 图1 51单片机结构和功能图 ...
- 单片机原理及应用知识总结(持续更新)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 第一章 单片机的基础知识 第二章 51单片机及硬件结构 51单片机指令系统及汇编语言 前言 自己的一些总结,欢迎阅读指正! ...
- 51单片机寄存器详解
51子系统单片机的存储器配置 1.程序存储器 ROM 1.程序存储器的ROM的最大空间是64KB,因为地址线是16根,2^16 = 64 KB.80C51单片机,其内部有4KB ROM,外部ROM的最 ...
- 51单片机的特殊功能寄存器(SFR)
阅读前提醒: 文中提到的8051指的是8051微控制器,即51单片机 在上一篇文章51单片机的存储结构中,提到8051微控制器的RAM被划分为通用寄存器.按位寻址寄存器.寄存器组.以及特殊功能寄存器. ...
- 51单片机的特殊寄存器
文章目录 内部高128个字节是SFR区 特殊寄存器 (1)ACC--累加器 (2)B--一个寄存器 (3)PSW--程序状态字 (4)DPTR(DPH.DPL) --数据指针 (5)P0.P1.P2. ...
- 学习笔记之-51单片机特殊功能寄存器
一.前言 学习51单片机的过程中,其实就是学习怎么用它的特殊功能寄存器(有些寄存器是我们看不到的),特殊功能寄存器是80C51单片机中各功能部件对应的寄存器,用于存放相应功能部件的控制命令,状态或数据 ...
- MCS-51系列特殊功能寄存器(摘抄)
1. P0 (80H) P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 2.SP 栈指针(81H) 3.DPTR 数据指针(由DPH和DPL组成) DPL 数据指针低八 ...
最新文章
- python模块学习---HTMLParser(解析HTML文档元素)
- 样本不均衡SMOTE算法代码实列
- JAVA垃圾回收的几点知识
- mac下shell给文件名批量加前缀
- nlp-tutorial代码注释3-3,双向RNN简介
- 请检查 mysql 模块是否正确加载_mysql_connect() 不支持 请检查 mysql 模块是否正确加载...
- Linux安装JDK并配置环境变量
- 西宝高速公路模拟java大作业_——访西宝高速公路改扩建项目管理处处长王剑...
- android 魅族 webview,魅族 Flyme 系统出现大面积应用闪退问题,提供临时解决方法...
- 最好的都在这里了 2016上半年电影豆瓣口碑排行榜
- 小飞鱼平台介绍——小飞鱼开发者服务平台业务介绍
- 交互设计师修炼指南!教你从零开始成为优秀交互设计师
- 安装sql server 过程(为了使用SQL Server Management Studio)
- linux查看磁带机端口,linux、unix下使用磁带机的常用命令
- 麦克斯韦方程组及本构关系
- 太原理工计算机复试题库,太原理工大学研究生复试理论力学选择题题库
- Memory DFX特性
- 【VSCode】全限定,分栏设置
- 按头安利 好看又实用的中望3D 3d模型素材看这里
- 《个人金融信息保护技术规范》对金融行业的监管要求解读与处置方案
热门文章
- java.sql.Date.valueOf处理日期格式IllegalArgumentException异常
- 如何清空c盘只剩系统_怎么清空c盘只保留系统文件,详情介绍
- FDS学习笔记(三)全局变量的设置
- Windows phone 7中关于Zune软件使用几个问题
- bmp 图片格式读入 cv::Mat 的 C++ 实现
- ecshop shopex_json.php,Shopex到ECShop的转换教程
- BZOJ4399: 魔法少女LJJ
- 量子计算机采用量子力学原理,量子力学原理及其应用.docx
- 安装deb软件包时出现Unknown media type in type **/** 的解决办法
- 服务器间大文件传输软件,四种常用的大文件传输方法