目录
控制串行口工作方式的寄存器是什么
首页 常见问题 控制串行口工作方式的寄存器是什么

控制串行口工作方式的寄存器是什么

Jul 22, 2022 am 10:53 AM
寄存器

控制串行口工作方式的寄存器是SCON,也即串行口控制寄存器;SCON用于控制串行通信的方式选择、接收和发送,指示串口的状态,SCON既可以字节寻址也可以位寻址,字节地址为“98H”,地址位为“98H~9FH”。

控制串行口工作方式的寄存器是什么

本教程操作环境:windows10系统、DELL G3电脑。

控制串行口工作方式的寄存器是什么

控制串行口工作方式的寄存器是SCON

SCON(Serial Control Register)串行口控制寄存器,用于控制串行通信的方式选择、接收和发送,指示串口的状态。SCON既可以字节寻址,也可以位寻址,其字节地址为98H,地址位为98H~9FH。

结构:

控制串行口工作方式的寄存器是什么

工作方式(SM0 SM1)

(1)方式0( SM0 SM1 :0 0):串行口的工作方式0为移位寄存器I/O方式,可外接移位寄存器,一扩展I/O口,也可外接同步I/O设备。 发送操作:当执行一条“MOVSBUF,A”指令时,启动发送操作,由TXD输出移位脉冲,由RXD串行SBUF中的数据。发送完8位数据后自动置TI=1.请求中断。要继续发送时,TI必须有指令清零。 接收操作:REN是串行口接收允许控制位。REN=0时禁止接收;REN=1时允许接收。当软件将REN置“1”时,即开始从RXD端口以fosc/12波特率输入数据,当接收到8位数据时,将中断标志RI置“1”。再次接收数据之前,必须用软件将RI清0。

(2)方式1 ( SM0 SM1 :0 1) :串行口为10位通用异步接口。发送或接收一帧数据信息为10位,包括1位起始位“0”、8位数据位、1位停止位“1”。发送数据:数据从TXD端口输出,当数据写入发送缓冲器SBUF时,就启动发送器发送。发送完一帧数据后,置中断标志TI=1,申请中断,通知CPU可以发送下一个数据了。接收数据:首先使REN=1(允许接收数据),串行口从RXD接收数据,当采样到1至0跳变时,确认是起始位“0”,就开始接收一帧数据,当接收完一帧数据时,置中断标志RI=1,申请中断,通知CPU从SBUF取走接收到的数据 。

(3)方式2 ( SM0 SM1 :1 0) :串行口为11位异步通信接口。发送或接收一帧信息包括1位起始位“0”、8位数据位、1位可编程位、1位停止位“1”。发送数据:发送前,先根据通信协议由软件设置TB8为“奇偶校验位”或“数据标识位”,然后将要发送的数据写入SBUF,即能启动发送器。发送过程是由执行任何一条以SBUF为目的寄存器的指令而启动的,把8位数据装入SBUF,同时还把TB8装到发送移位寄存器的第9位上,然后从TXD(P3.1)端口输出一帧数据。接收数据:先置REN=1,使串行口为允许接收状态,同时还要将RI清“0”。然后再根据SM2的状态和所接收到的RB8的状态决定此串行口在信息到来后是否置RI=1,并申请中断,通知CPU接收数据。当SM2=0时,不管RB8为“0”还是为“1”,都置RI=1,此串行口将接收发送来的信息。当SM2=1时,且RB8=1,表示在多机通信情况下,接收的信息为“地址帧”, 此时置RI=1,串行口将接收发来的地址。当SM2=1时,且RB8=0,表示在多机通信情况下,接收的信息为“数据帧”, 但不是发给本从机的,此时RI不置为“1”,因而SBUF中接收的数据帧将丢失。

(4)方式3 ( SM0 SM1 :1 1) :为波特率可变的11位异步通信方式,除了波特率有所区别之外,其余方式都与方式2相同。

更多相关知识,请访问常见问题栏目!

以上是控制串行口工作方式的寄存器是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

存放代码段中偏移地址的寄存器是什么 存放代码段中偏移地址的寄存器是什么 Jan 22, 2021 pm 01:54 PM

存放代码段中偏移地址的寄存器是:指令指针寄存器。指令指针寄存器IP用于控制程序中指令的执行顺序;正常运行时,IP中含有BIU要取的下一条指令(字节)的偏移地址,一般情况下,每从内存中存取一次指令码,IP就自动加1,从而保证指令的顺序执行。

深入了解Go语言对寄存器的控制 深入了解Go语言对寄存器的控制 Apr 04, 2024 am 09:51 AM

Go语言允许通过汇编指令直接控制CPU寄存器,从而优化性能:寄存器是CPU中存储数据的临时位置。Go语言通过asm包提供汇编指令,可用于访问x86和ARM寄存器。汇编指令避免了迭代器的内存分配开销,可提高循环性能。使用汇编指令时需谨慎,原因包括:平台和系统依赖性、潜在的程序崩溃风险和仅必要时使用原则。

在C语言中,寄存器存储类是什么? 在C语言中,寄存器存储类是什么? Aug 30, 2023 am 09:45 AM

在C编程语言中有四个存储类,分别是:autoexternstaticregister寄存器变量关键字是register。寄存器变量的值存储在CPU的寄存器中,而不是存储在内存中,普通变量存储在内存中。寄存器是CPU中的临时存储单元。它们允许寄存器变量比普通变量具有更快的访问时间。示例1以下是C程序的register存储类: 演示#include<stdio.h>main(){  registerinti;&

解析Go语言对寄存器的操控能力 解析Go语言对寄存器的操控能力 Apr 03, 2024 pm 09:03 PM

Go语言通过汇编内联提供对寄存器的访问和操作。通过使用寄存器(如整型寄存器、浮点寄存器和向量寄存器),可以显着提高程序性能。通过一个优化整数乘法操作的实战案例演示,本文展示了如何使用寄存器进行高效的底层操作,从而创建更快的Go应用程序。

控制串行口工作方式的寄存器是什么 控制串行口工作方式的寄存器是什么 Jul 22, 2022 am 10:53 AM

控制串行口工作方式的寄存器是SCON,也即串行口控制寄存器;SCON用于控制串行通信的方式选择、接收和发送,指示串口的状态,SCON既可以字节寻址也可以位寻址,字节地址为“98H”,地址位为“98H~9FH”。

在cpu中包含存放少量数据的器件称为什么 在cpu中包含存放少量数据的器件称为什么 Jul 18, 2022 pm 04:29 PM

称为“寄存器”。寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的;一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。

Go语言的寄存器控制能力探究 Go语言的寄存器控制能力探究 Apr 04, 2024 am 08:09 AM

Go语言提供对寄存器的有限控制,允许底层优化。可使用汇编指令(MOVQ、MOVL、MOVB、ADDQ、SUBQ)来控制寄存器,但需谨慎使用,以避免破坏垃圾回收机制中的寄存器引用。此外,汇编指令的使用需要汇编语言知识,并且平台相关。

go语言可以控制寄存器吗 go语言可以控制寄存器吗 Aug 24, 2023 pm 01:41 PM

Go语言不能直接控制寄存器。Go语言在访问寄存器方面的能力是受限的,这是因为Go语言的设计目标是提供一种更安全、更易于使用的编程环境,而不是直接访问硬件。虽然不能直接控制寄存器,但提供了一些机制来与硬件进行交互,开发人员可以使用这些接口来与外部设备进行通信,并控制其行为。Go语言还提供了一些底层编程的能力,绕过类型系统的限制,直接访问内存。