单片机移位寄存器串行输入是什么,串行输入,能讲一下,为什么要把输入的数据右移7各单位,左移1个单位

串行工作模式之同步移位寄存器串行输入的输入输出方式

主要用于扩展并行输入或输出口数据有RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出发送和接受均为8位数据。低位在前高位在后。

用 示波器看到的波形 注意的是发送的是靠左的是数据的地位的序列


  • 本课程是巫妖王51单片机开发板的配套视频课程本课程的目标是用少的时间带大家初级入门51单片机。配合巫妖王51单片机开发板让大家花费少的时间少的钱就能轻松开启單片机学习之路。

//功能: 初始化串口 //其他: 同时占用定时器1 //其他: 同时关闭定时器1 //功能: 设定串口波特率 //输入参数:波特率值/100 //功能: 串口開始工作 //其他: 占用定时器T1 //功能: 清除溢出标志位为下一次传输做准备 //功能: 挂起/恢复 串口 //其他: 挂起后 可以解除定时器绑定 串口的sfr也鈳以修改作其他用处 // 恢复后串口可像挂起前一样正常工作 //功能: 写字符到串口 //输入参数:待发送的字符 //功能: 从串口读取1个字符 //输入参数:接收字符的单元地址 //功能: 写字符串到串口 //输入参数:str 字符串首地址,应注意使字符串结束的字节为'\0' //返回值: 返回发送成功的字符数 //功能: 从串口读取字符串 //输入参数:str 字符串首地址 ,len 允许接收的最大字节数 //返回值: 返回接收到的字符数 //功能: 以字符串格式向uart发送一个整数 //輸入参数:int dat 待发送的整数值 //返回值: int 成功发送的字符个数 //其他: 返回值若为-1 表示数据处理阶段发生错误、未发送

本课程是巫妖王51单片机开發板的配套视频课程本课程的目标是用少的时间带大家初级入门51单片机。配合巫妖王51单片机开发板让大家花费少的时间少的钱就能轻松开启单片机学习之路。


串行口是单片机与外界进行信息交换的工具
■ 8051单片机的通信方式有两种:
并行通信:数据的各位同时发送或接收。
串行通信:数据一位一位次序发送或接收

串行通信的方式包括异步通信和同步通信。
它用一个起始位表示字符的开始用停止位表示字苻的结束。其每帧的格式如下:
在一帧格式中先是一个起始位0,然后是8个数据位规定低位在前,高位在后接下来是奇偶校验位(能渻略),最后是停止位1用这种格式表示字符,则字符能一个接一个地传送
在异步通信中,CPU与外设之间必须有两项规定即字符格式和波特率。字符格式的规定是双方能够在对同一种0和1的串理解成同一种意义原则上字符格式能由通信的双方自由制定,但从通用、方便的角度出发一般还是使用一些标准为好,如采用ASCII标准
波特率即数据传送的速率,其定义是每秒钟传送的二进制数的位数例如,数据传送的速率是120字符/s而每个字符如上述规定包含10数位,则传送波特率为1200波特
在同步通信中,每个字符要用起始位和停止位作为字符开始和結束的标志占用了时间;所以在数据块传递时,为了提高速度常去掉这些标志,采用同步传送由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收端之间的同步故硬件较复杂。
在串行通信中把通信接口只能发送或接收的单向传送办法叫單工传送;而把数据在甲乙两机之间的双向传递,称之为双工传送在双工传送方式中又分为半双工传送和全双工传送。半双工传送是两機之间不能同时进行发送和接收任一时该,只能发或者只能收信息

8051单片机的串行接口结构
8051单片机串行接口是一个可编程的全双工串行通信接口。它可用作异步通信方式(UART)与串行传送信息的外部设备相连接,或用于通过标准异步通信协议进行全双工的8051多机系统也能通過同步方式使用TTL或CMOS移位寄存器串行输入来扩充I/O口。

本课程是巫妖王51单片机开发板的配套视频课程本课程的目标是用少的时间带大家初級入门51单片机。配合巫妖王51单片机开发板让大家花费少的时间少的钱就能轻松开启单片机学习之路。

MCS-51单片机的串行口具有两条独立的数據线——发送端TXD和接收端RXD它允许数据同时往两个相反的方向传输。一般通信时发送数据由TXD端输出接收数据由RXD端输入。

MCS-51单片机的串行口既可以用于网络通信亦可实现串行异步通信,还可以用作同步移位寄存器串行输入如果在串行口的输入输出引脚上加上电平转换器,僦可方便地构成标准的RS-232接口

MCS-51单片机的串行接口是一个全双工通信接口,它有两个物理上独立的接收、发送缓冲器SBUF可以同时发送和接收數据。但是发送缓冲器只能写入不能读出;接收缓冲器只能读出,不能写入两个缓冲器共用一个地址(99H)。

常用于数据通信的传输方式有单工、半双工、全双工和多工方式

  • 单工方式:数据仅按一个固定方向传送。因而这种传输方式的用途有限常用于串行口的打印数據传输与简单系统间的数据采集。
  • 半双工方式:数据可实现双向传送但不能同时进行,实际的应用采用某种协议实现收/发开关转换
  • 全雙工方式:允许双方同时进行数据双向传送,但一般全双工传输方式的线路和设备较复杂。
  • 多工方式:以上三种传输方式都是用同一线路传輸一种频率信号为了充分地利用线路资源,可通过使用多路复用器或多路集线器采用频分、时分或码分复用技术,即可实现在同一线蕗上资源共享功能

根据同步方式,串行数据通信有两种形式如图5-5所示。

  • 异步通信在这种通信方式中,接收器和发送器有各自的时钟它们的工作是非同步的。异步通信用一帧来表示一个字符其内容是一个起始位,紧接着是若干个数据位
  • 同步通信。同步通信格式中发送器和接收器由同一个时钟源控制,在异步通信中每传输一帧字符都必须加上起始位和停止位,占用了传输时间若要求传送数据 量较大,速度就会慢得多同步传输方式去掉了这些起始位和停止位,只在传输数据块时先送出一个同步头(字符)标志即可
  • 同步传输方式比异步传输方式速度快,这是它的优势但同步传输方式也有其缺点,即它必须要用一个时钟来协调收发器的工作所以它的设备也較复杂。

MCS-51的串行口控制寄存器

在完成串行口初始化后发送数据时,采用MOV SBUF,A指令将要发送的数据写入SBUF,则CPU自动启动和完成串行数据的输出;接收数据时采用MOV A,SBUF指令,CPU就自动将接收到的数据从SBUF中读出

控制MCS-51单片机串行接口的控制寄存器有两个——特殊功能寄存器SCON和PCON,用以设置串行端口的工作方式、接收/发送的运行状态、接收/发送数据的特征、数据传输率的大小以及作为运行的中断标志等,其格式如下:

① 串行口控制寄存器SCONSCON的字节地址是98H,位地址(由低位到高位)分别是98H一9FHSCON的格式如下:

SM0、SMl:串行口工作方式控制位。

00——方式0;01——方式1;

10——方式2;11——方式3

SM2:仅用于方式2和方式3的多机通信控制位。

发送机SM2=1(要求程控设置)

当为方式2或方式3时:

接收机 SM2=1时,若RB8=1鈳引起串行接收中断;若RB8=0,不引起串行接收中断SM2=0时,若RB8=1可引起串行接收中断;若RB8=0,亦可引起串行接收中断

  • REN串行接收允许位:0——禁止接收;1——允许接收。
  • TB8:在方式2、3中TB8是发送机要发送的第9位数据。
  • RB8:在方式2、3中RB8是接收机接收到的第9位数据,该数据正好來自发送机的TB8
  • TI:发送中断标志位。发送前必须用软件清零发送过程中TI保持零电平,发送完一帧数据后由硬件自动置1。如要再发送必须用软件再清零。
  • RI:接收中断标志位接收前,必须用软件清零接收过程中RI保持零电平,接收完一帧数据后由片内硬件自动置1。如偠再接收必须用软件再清零。

② 电源控制寄存器PCONPCON的字节地址为87H,无位地址其格式如下:

PCON是为在CMOS结构的MCS-51单片机上实现电源控制而附加嘚,对于HMOS结构的MCS-51系列单片机除了第7位外,其余都是虚设的与串行通信有关的也就是第7位,称作SMOD它的用处是使数据传输率加倍。

SMOD:数據传输率加倍位在计算串行方式1,23的数据传输率时;0表示不加倍;1表示加倍。

GF1、GF2:通用标志位

PD:掉电控制位,0表示正常方式1表示掉电方式。

IDL:空闲控制位0表示正常方式,1表示空闲方式

除了以上两个控制寄存器外,中断允许寄存器IE中的ES位也用来作为串行I/O中断允许位当ES=1,允许 串行I/O中断;当ES=0禁止串行I/O中断。中断优先级寄存器IP的PS位则用作串行I/O中断优先级控制位当PS=1,设定为高优先级;当PS =0设定為低优先级。

本课程是巫妖王51单片机开发板的配套视频课程本课程的目标是用少的时间带大家初级入门51单片机。配合巫妖王51单片机开发板让大家花费少的时间少的钱就能轻松开启单片机学习之路。


??发送时SBUF中写入数据后,串行口通过发送控制器将SBUF中的数据逐个逐位地通过串行输出口TXD引脚逐个发出,当一个字节发送结束后触发TI中断位,通知单片机发送结束
??接收时先向REN引脚写1,外部引脚RXD会实時检测电平变化当满足串行接收数据的条件时,会逐位接收数据并保存到SBUF当一个字节接收结束后,触发RI中断位通知单片机接收结束


串行口控制寄存器SCON

SM0、SM1用于设定串行口工作方式 ? fosc :晶振频率

0 0
0
0

SM2:多机通信控制位
REN:允许接收控制位
TB8/RB:发送/接收的第9位数据


当SMOD位为1时,串行口方式1、方式2、方式3的波特率加倍


这里只介绍方式0与方式1的应用

??方式0通常用来外接移位寄存器串行输入用作扩展I/O口,方式0工作时波特率固定为 fsoc/12工作时,串行数据通过RXD输入、输出同步时钟通过TXD输出
??发送:TI = 0 时,SBUF写入数据后发送过程启动,发送结束后TI被置为1,并姠CPU申请中断
??接收:在 RI = 0 时将REN置"1"就启动一次接收过程,RXD上的串行数据一次移入移位寄存器串行输入当一个字节发送完成之后,接收中斷标志RI被置为"1"同时向CPU申请中断
??方式0波特率固定,也无需编程设定定时器

方式0应用实例:扩展并行I/O口
??当外接串入并出的移位寄存器串行输入时即是扩展并行输出口,当外接并入串出的移位寄存器串行输入时相当于扩展并行输入口

本课程是巫妖王51单片机开发板的配套视频课程,本课程的目标是用少的时间带大家初级入门51单片机配合巫妖王51单片机开发板,让大家花费少的时间少的钱就能轻松开启單片机学习之路

8051单片机串行口及串行通信

一、串行通信的基础知识

CPU与其他外部设备要进行信息交换,一台计算机与其他计算机之间有时吔要交换信息这些信息交换就称为通信。通信有并行通信和串行通信两种

并行通信是将数据字节的各位用多条数据线同时进行传送。

並行通信控制简单、传输速度快;由于传输线较多长距离传送时成本高且接收方的各位同时接受存在困难。

串行通信是将数据字节分成┅位一位的形式在一条传输线上逐个地传送


串行通信传输线少,长距离传送时成本低且可以利用电话网等现成的设备,但数据的传送控制要比并行通信复杂

串行通信又可以分为异步通信与同步通信。

异步通信是指通信的发送设备与接受设备使用各自的时钟控制数据的發送和接受过程为使双方的收发协调,要求发送和接受设备的时钟尽可能一致

异步通信是以字符(构成的帧)为单位进行传输,字符與字符之间的间隙(时间间隔)是任意的但每个字符中的各位是以固定的时间传送的,字符之间是异步的而同一字符内的各位是同步嘚。

异步通信的数据格式 :

异步通信的特点:不要求收发双方时钟的严格一致实现容易,设备开销较小但每个字符要附加2~3位用于起止位,各帧之间还有间隔因此传输效率不高。

同步通信是要建立发送方时钟对接收方时钟的直接控制使双方达到完全同步。此时传输數据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间间不留间隙及位同步且字符同步。发送方对接收方的同步可以通过两種方法实现

外同步:是指对同步字符的检测在串行I/O接口芯片外部进行,当外部硬件电路检测到同步信号时就给串行接口发送一个同步信号SYNC。当串行I/O接口芯片收到同步信号后立即进行数据传送。

自(内)同步:是指同步字符的检测和同步控制是在串行I/O接口芯片内部进行嘚自(内)同步又可分为单同步(只有一个字节的同步字符)和双同步(有两个字节的同步字符)。

18051串行口的结构

有两个物理上独立嘚接受、发送缓冲器SBUF它们占用同一个地址99H;接收器是双缓冲结构;因为发送时CPU是主动的,因而不会产生重叠错误

28051串行口的控制寄存器

   SCON是个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志:

   SM0SM1为工作方式选择位可选择四种工作方式:

在方式2或方式3中,是发送数据的第九位可以用软件规定其作用。可以用作数据的奇偶校验位或在多机通信中,作为地址帧/数据帧的标志位

在方式2或方式3中,是接收到数据的第九位作为奇偶校验位或地址帧/数据帧的标志位。在方式1时若SM2=0,则为接受到的停止位

工作在方式0时,串行口为同步移位寄存器串行输入的输入输出方式主要用于扩展并行输入或输出口。数据由RXDP3.0)引脚输入或输出同步移位脉沖由TXD(P3.1)引脚输出。发送和接收均为8位数据低位在先,高位在后波特率固定为fosc/12

方式110位数据的异步通信接口TXD为数据发送引脚,RXD为数据接收引脚传送一帧数据的格式如图所示。其中1位起始位8位数据位,1位停止位


方式2和方式3一帧包括1位起始位,9位数据位1位停止位。方式2的波特率固定为晶振频率的1/641/32方式3波特率由定时器T1的溢出率决定。

在串行通信中收发双方对发送或接收数据的速率要有约定。通過软件可对单片机串行口编程为四种工作方式其中方式0和方式2的波特率是固定的,方式1和方式3的波特率是可变的由定时器T1的溢出率决萣。

T1作为波特率发生器时常用是使T1工作在自动再装入的8位定时方式(方式2

其中U2为发送设备,U1为接受设备

本程序的功能是实现U2每隔50MSU1發送数据U1一直处于接受状态,当U2有数据接受时则接数据传到P2口,形成流水灯

//设置定时器1工作在方式2

//串行口工作在方式1

//设置定时器1工莋在方式2

我要回帖

更多关于 移位寄存器串行输入 的文章

 

随机推荐