MCS-51单片机串行接口
- 格式:doc
- 大小:144.00 KB
- 文档页数:6
MCS51单片机的结构MCS-51单片机是Intel公司设计开发的一种高度集成的8位微控制器(microcontroller),主要应用于嵌入式系统中。
它采用了Harvard 架构,包含一个CPU核心、片内存储器、外围接口和定时器/计数器等功能模块。
在本文中,我将详细介绍MCS-51单片机的结构。
MCS-51单片机的结构主要分为以下几个部分:1.中央处理器(CPU)核心:MCS-51单片机的CPU核心采用了8位的数据总线和地址总线,以及一组功能强大的指令集。
该CPU支持多种指令,包括数据传送指令、算术逻辑指令、位操作指令和条件跳转指令等。
它还包括一个累加寄存器和标志寄存器,用于存储操作数和标志位信息。
2.存储器部分:MCS-51单片机包含片内存储器和片外存储器。
片内存储器主要用于存储程序代码和数据,包括ROM(只读存储器)和RAM(随机存储器)。
ROM用于存储程序代码,RAM用于存储数据和临时变量。
片外存储器通过地址线和数据线与单片机连接,可以扩展存储器容量。
3.输入输出(I/O)接口:MCS-51单片机通过多个I/O口与外部世界进行数据交互。
每个I/O 口包含一组引脚,可以用作输入或输出。
这些引脚可以通过配置寄存器来选择其功能。
MCS-51单片机还支持中断输入,可以用于实现外部设备的中断功能。
4.定时器/计数器(Timer/Counter):MCS-51单片机内置了多个定时器/计数器模块,用于生成精确的时间延迟或测量外部事件的时间间隔。
定时器可以产生周期性的中断信号,用于实现定时任务。
计数器可以计数外部事件的脉冲数量,用于测量时间间隔。
5.串行通信接口:MCS-51单片机内置了一个串行通信接口,可以用于与其他设备进行数据传输。
该接口支持异步串行通信协议,如UART(通用异步收发器)或SPI(串行外围接口)等。
它可以通过配置寄存器来设置通信参数,如波特率和数据格式等。
6.时钟电路:MCS-51单片机需要一个精确的时钟源来驱动内部运算和外设操作。
51单片机各引脚及端口详解51单片机引脚功能:MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图:l ~ P0口8位双向口线(在引脚的39~32号端子)。
l ~ P1口8位双向口线(在引脚的1~8号端子)。
l ~ P2口8位双向口线(在引脚的21~28号端子)。
l ~ P2口8位双向口线(在引脚的10~17号端子)。
这4个I/O口具有不完全相同的功能,大家可得学好了,其它书本里虽然有,但写的太深,对于初学者来说很难理解的,我这里都是按我自已的表达方式来写的,相信你也能够理解的。
P0口有三个功能:1、外部扩展存储器时,当做数据总线(如图1中的D0~D7为数据总线接口)2、外部扩展存储器时,当作地址总线(如图1中的A0~A7为地址总线接口)3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。
P1口只做I/O口使用:其内部有上拉电阻。
P2口有两个功能:1、扩展外部存储器时,当作地址总线使用2、做一般I/O口使用,其内部有上拉电阻;P3口有两个功能:除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。
有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的,即:编程脉冲:30脚(ALE/PROG)编程电压(25V):31脚(EA/Vpp)接触过工业设备的兄弟可能会看到有些印刷线路板上会有一个电池,这个电池是干什么用的呢这就是单片机的备用电源,当外接电源下降到下限值时,备用电源就会经第二功能的方式由第9脚(即RST/VPD)引入,以保护内部RAM中的信息不会丢失。
在介绍这四个I/O口时提到了一个“上拉电阻”那么上拉电阻又是一个什么东东呢他起什么作用呢都说了是电阻那当然就是一个电阻啦,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。
MCS-51单⽚机的串⾏⼝及串⾏通信技术数据通信的基本概念串⾏通信有单⼯通信、半双⼯通信和全双⼯通信3种⽅式。
单⼯通信:数据只能单⽅向地从⼀端向另⼀端传送。
例如,⽬前的有线电视节⽬,只能单⽅向传送。
半双⼯通信:数据可以双向传送,但任⼀时刻只能向⼀个⽅向传送。
也就是说,半双⼯通信可以分时双向传送数据。
例如,⽬前的某些对讲机,任⼀时刻只能⼀⽅讲,另⼀⽅听。
全双⼯通信:数据可同时向两个⽅向传送。
全双⼯通信效率最⾼,适⽤于计算机之间的通信。
此外,通信双⽅要正确地进⾏数据传输,需要解决何时开始传输,何时结束传输,以及数据传输速率等问题,即解决数据同步问题。
实现数据同步,通常有两种⽅式,⼀种是异步通信,另⼀种是同步通信。
异步通信在异步通信中,数据⼀帧⼀帧地传送。
每⼀帧由⼀个字符代码组成,⼀个字符代码由起始位、数据位、奇偶校验位和停⽌位4部分组成。
每⼀帧的数据格式如图7-1所⽰。
⼀个串⾏帧的开始是⼀个起始位“0”,然后是5〜8位数据(规定低位数据在前,⾼位数据在后),接着是奇偶校验位(此位可省略),最后是停⽌位“1”。
起始位起始位"0”占⽤⼀位,⽤来通知接收设备,开始接收字符。
通信线在不传送字符时,⼀直保持为“1”。
接收端不断检测线路状态,当测到⼀个“0”电平时,就知道发来⼀个新字符,马上进⾏接收。
起始位还被⽤作同步接收端的时钟,以保证以后的接收能正确进⾏。
数据位数据位是要传送的数据,可以是5位、6位或更多。
当数据位是5位时,数据位为D0〜D4;当数据位是6位时,数据位为D0〜D5;当数据位是8位时,数据位为D0〜D7。
奇偶校验位奇偶校验位只占⼀位,其数据位为D8。
当传送数据不进⾏奇偶校验时,可以省略此位。
此位也可⽤于确定该帧字符所代表的信息类型,“1"表明传送的是地址帧,“0”表明传送的是数据帧。
停⽌位停⽌位⽤来表⽰字符的结束,停⽌位可以是1位、1.5位或2位。
停⽌位必须是⾼电平。
接收端接收到停⽌位后,就知道此字符传送完毕。
MCS-51单片机输入输出口【1 】8051有4组8位I/O口:P0.P1.P2和P3口,P1.P2和P3为准双向口,P0口则为双向三态输入输出口,下面我们分离介绍这几个口线:·P0口和P2口:右图为P0口和P2口个中一位的电路图,由图可见,电路中包含一个数据输出锁存器和两个三态数据输入缓冲器,别的还有一个数据输出的驱动和掌握电路.这两组口线用来作为CPU与外部数据存储器.外部程序存储器和I/O扩大口,而不克不及象P1.P3直接用作输出口.它们一路可以作为外部地址总线,P0口身兼两职,既可作为地址总线,也可作为数据总线.参考图2.P2口作为外部数据存储器或程序存储器的地址总线的高8位输出口AB8-AB15,P0口由ALE选通作为地址总线的低8位输出口AB0-AB7.外部的程序存储器由PSEN旌旗灯号选通,数据存储器则由WR和RD读写旌旗灯号选通,因为216=64k,所以8051最大可外接64kB的程序存储器和数据存储器.·P1口:右图为P1口个中一位的电路图,P1口为8位准双向口,每一位均可单独界说为输入或输出口,当作为输进口时,1写入锁存器,Q(非)=0,T2截止,内上拉电阻将电位拉至"1",此时该口输出为1,当0写入锁存器,Q(非)=1,T2导通,输出则为0.作为输进口时,锁存器置1,Q(非)=0,T2截止,此时该位既可以把外部电路拉成低电平,也可由内部上拉电阻拉成高电平,正因为这个原因,所以P1口常称为准双向口.须要解释的是,作为输进口运用时,有两种情形,其一是:起首是读锁存器的内容,进行处理后再写到锁存器中,这种操纵即读—修正—写操纵,象JBC(逻辑断定).CPL(取反).INC(递增).DEC(递减).ANL(与逻辑)和ORL(逻辑或)指令均属于这类操纵.其二是:读P1口线状况时,打开三态门G2,将外部状况读入CPU.·P3口:P3口的电路如上图所示,P3口为准双向口,为顺应引脚的第二功效的须要,增长了第二功效掌握逻辑,在真正的运用电路中,第二功效显得更为主要.因为第二功效旌旗灯号有输入输出两种情形,我们分离加以解释.P3口的输入输出及P3口锁存器.中止.准时/计数器.串行口和特别功效存放器有关,P3口的第一功效和P1口一样可作为输入输出端口,同样具有字节操纵和位操纵两种方法,在位操纵模式下,每一位均可界说为输入或输出.我们侧重评论辩论P3口的第二功效,P3口的第二功效各管脚界说如下:·P3.0 串行输进口(RXD)·P3.1 串行输出口(TXD)·P3.2 外中止0(INT0)·P3.3 外中止1(INT1)·P3.4 准时/计数器0的外部输进口(T0)·P3.5 准时/计数器1的外部输进口(T1)·P3.6 外部数据存储器写选通(WR)·P3.7 外部数据存储器读选通(RD)对于第二功效为输出引脚,当作I/O口运用时,第二功效旌旗灯号线应保持高电平,与非门开通,以保持从锁存器到输出口数据输出通路疏浚无阻.而当作第二功效口线运用时,该位的锁存器置高电平,使与非门对第二功效旌旗灯号的输出是疏浚的,从而实现第二功效旌旗灯号的输出.对于第二功效为输入的旌旗灯号引脚,在口线上的输入通路增设了一个缓冲器,输入的第二功效旌旗灯号即从这个缓冲器的输出端取得.而作为I/O口线输入端时,取自三态缓冲器的输出端.如许,不管是作为输进口运用照样第二功效旌旗灯号输入,输出电路中的锁存器输出和第二功效输出旌旗灯号线均应置“1”.。
51单片机各引脚及端口详解51单片机引脚功能:MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图:l ~ P0口8位双向口线(在引脚的39~32号端子)。
l ~ P1口8位双向口线(在引脚的1~8号端子)。
l ~ P2口8位双向口线(在引脚的21~28号端子)。
l ~ P2口8位双向口线(在引脚的10~17号端子)。
这4个I/O口具有不完全相同的功能,大家可得学好了,其它书本里虽然有,但写的太深,对于初学者来说很难理解的,我这里都是按我自已的表达方式来写的,相信你也能够理解的。
P0口有三个功能:1、外部扩展存储器时,当做数据总线(如图1中的D0~D7为数据总线接口)2、外部扩展存储器时,当作地址总线(如图1中的A0~A7为地址总线接口)3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。
P1口只做I/O口使用:其内部有上拉电阻。
P2口有两个功能:1、扩展外部存储器时,当作地址总线使用2、做一般I/O口使用,其内部有上拉电阻;P3口有两个功能:除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。
有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的,即:编程脉冲:30脚(ALE/PROG)编程电压(25V):31脚(EA/Vpp)接触过工业设备的兄弟可能会看到有些印刷线路板上会有一个电池,这个电池是干什么用的呢这就是单片机的备用电源,当外接电源下降到下限值时,备用电源就会经第二功能的方式由第9脚(即RST/VPD)引入,以保护内部RAM中的信息不会丢失。
在介绍这四个I/O口时提到了一个“上拉电阻”那么上拉电阻又是一个什么东东呢他起什么作用呢都说了是电阻那当然就是一个电阻啦,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。
第七章MCS-51单片机串行接口第一节串行通信的基本概念(一)学习要求1.掌握串行通信的基本概念。
2. 掌握异步通信和同步通信的区别。
(二)内容提要一:基本概念及分类串行通信是将数据的各位一位一位地依次传送。
适合于计算机之间、计算机与外部设备之间的远距离通信。
串行通信从传输方式分为:单工方式、半双工方式、全双工方式。
从接收方式来说,串行通信有两种方式:异步通信方式、同步通信方式。
二:串行口的功能MCS-51单片机中的异步通信串行接口能方便地与其他计算机或传送信息的外围设备(如串行打印机、CPU终端等)实现双机、多机通信。
串行口有4种工作方式,见表7-1。
方式0并不用于通信,而是通过外接移位寄存器芯片实现扩展并行I/O接口的功能。
该方式又称为移位寄存器方式。
方式1、方式2、方式3都是异步通信方式。
方式1是8位异步通信接口。
一帧信息由10位组成,其格式见图7-2a。
方式1用于双机串行通信。
方式2、方式3都是9位异步通信接口、一帧信息中包括9位数据,1位起始位,1位停止位,其格式见图7-2b。
方式2、方式3的区别在于波特率不同,方式2、方式3主要用于多机通信,也可用于双机通信。
表7-1(三)习题与思考题1、什么是并行通信?什么是串行通信?各有何优缺点?答:并行通信指数据的各位同时传输的通信方式,串行通信是指各位数据逐位顺序传输的通信方式。
2、什么是异步通信?什么是同步通信?各有何优缺点?3、什么是波特率?某异步串行通信接口每分钟传送1800个字符,每个字符由11位组成,请计算出传送波特率。
第二节MCS-51串行接口的组成(一)学习要求(1) 了解串行接口的结构。
(2) 了解串行接口的控制与状态寄存器工作原理。
(二)内容提要一:串行接口的结构串行接口主要由发送数据缓冲器、发送控制器、输出控制门、接收数据缓冲器、接收控制器、输入移位寄存器、波特率发生器T1等组成。
串行口中还有两个特殊功能寄存器SCON、PCON,特殊功能寄存器SCON用来存放串行口的控制和状态信息。
定时器/计数器1(T1)与定时器/计数器2(T2)都可构成串行口的波特率发生器,其波特率是否增倍可由特殊功能寄存器PCON的最高位控制。
二:串行接口控制与状态寄存器MCS-51串行口的工作方式选择、中断标志、可编程位的设置、波特率的增倍均是通过两个特殊功能寄存器SCON和PCON来控制的。
1.电源和波特率控制寄存器PCON电源控制寄存器PCON的格式如下:电源和波特率控制寄存器PCON,其地址为87H,只能进行字节寻址,不能按位寻址。
PCON的最高位D7位作SMOD,是串行口波特率的增倍控制位。
当SMOD=1时,波特率加倍。
例如在工作方式2下,若SMOD=0时,则波特率为f osc/64;当SMOD=1时,则波特率为f osc/32,恰好增大一倍。
系统复位时,SMOD位为0。
串行口控制寄存器SCON 解SCON各位的含义如下:D7D6D5D4D3D2D1D0SCON98H9FH9EH9DH9CH9BH9AH99H98H (1)串行口控制方式选择位SM0、SM1,其SM0、SM1由软件置位或清零,用于选择串行口的4种工作方式。
(2)多机通信控制位SM2和接收中断标志位RI SM2=1时,如果接收到的一帧信息中的第九位数据为1,且原有的接收中断标志位RI=0,则硬件将RI置1;如果第九位数据为0,则RI不置1,且所接收的数据无效。
SM2=0时,只要接收到一帧信息,不管第九位数据是0还是1,硬件都置RI=0,RI 由软件清零。
SM2由软件置位或清零。
多机通信时,SM2必须置1,双机通信时,通常使SM2=0。
方式0时SM2必须为0。
(3)发送中断标志位TI 在方式0中,发送完8位数据后,由硬件置位;在其它方式中,在发送停止位之初,由硬件使TI=1。
TI置位后可向CPU申请中断,任何方式中TI 位都必须由软件清除。
(4 ) 接收中断标志RI 在方式0中,接收完8位数据后,由硬件置位;在其它方式中,在接收停止位的一半时由硬件将RI置位(还应考虑SM2的设定)。
RI被置位后可允许CPU 申请中断,任何方式中TI位都必须由软件来清除。
串行发送中断标志TI和接收中断标志RI共用一个中断源,CPU并不知道是TI还是RI 产生的中断请求,所以在全双工通信时,必须由软件来断别。
(5)允许接收控制位REN REN=1时允许接收,REN=0时禁止接收。
REN由软件置位或清零。
(6)发送数据D8位TB8 TB8是方式2、方式3中要发送的第九位数据,事先用软件写入1或0。
方式0、方式1不用。
(7)接收数据D8位RB8方式2、方式3中,由硬件将接收到的第九位数据存入RB8。
方式1中,停止位存入RB8。
复位后SCON的所有位清零。
(三)习题与思考题1、MCS-51单片机的串行口由哪些功能部件组成?各有什么作用。
2、特殊功能寄存器SCON 和PCON的作用和工作过程是什么?第三节串行口的工作方式(一)学习要求(1) 了解串行接口的工作方式。
(2) 掌握波特率的计算。
(二)内容提要一、串行接口的工作方式0SM0=0、SM1=0串行口工作于方式0, 即串行寄存器方式或称为同步移位寄存器输入/输出方式。
CPU执行一条写SBUF的指令如MOV SBUF ,A就启动了发送过程。
发送的时序见图7-1。
接收时序见图7-2图7-1 方式0发送时序图7-2 方式0接收时序串行口方式0不适用于两个8051之间的数据通信,但可通过外接移位寄存器来扩展单片机的接口。
例如,可以采用74LS164可以扩展并行输出口,74LS165可以扩展输入口。
二、串行口工作方式1SM0=0,SM1=1串行口接口工作于方式1,即将8位异步通信接口方式,结构示意图见图7-7。
RXD为接收端,TXD为发送端。
一帧信息由10位组成,方式1的波特率可变,由定时器/计数器1或定时器/计数器2的溢出速率以及SMOD(PCON.7)决定,且发送波特率与接收波特率可以不同。
1.发送CPU执行一条写SBUF指令后便启动了串行口发送,数据从TXD输出,时序见图7-8a。
在指令执行期间,CPU送来“写SBUF”信号,将并行数据送入SBUF,并启动发送控制器,经一个机器周期,发送控制器的SEND、DATA相继有效,通过输出控制门从TXD上逐位输出一帧信号。
一帧信号发送完毕后,SEND、DATA失效,发送控制器硬件置发送中断标志TI=1,向CPU申请中断。
2.接收方式1的接收时序见图7-8b。
允许接收位REN被置1接收器就开始工作,跳变检测器以波特率16倍的速率采样RXD引脚上电平,当采样到从1到0的负跳变时,启动接收控制器接收数据,由于发送、接收双方各自使用自己的时钟,两者的频率总有少许差异。
为了避免这种影响,控制器将1位送时间等分成16分、位检测器在7、8、9三个状态也就是在位信号中央采样RXD三次。
而且,三次采样中至少两次相同的值被确认为数据,这是为了减小干扰的影响。
如果起始位接收到的值不是0,由起始位无效,复位接收电路。
如果起始位为0,则开始开始接收本帧其他数据。
控制器发出的内部移位脉冲将RXD上的数据逐位移入移位寄存器,当8位数据及停止位全移入后:(1)如果RI=0、SM2=0,接收控制器发出“装载SBUF”信号,将8位数据装入接收数据缓冲器SBUF,停止装入RB8,并置RI=1,向CPU申请中断。
(2)如果RI=0、SM2=1,那么只有停止位为1时才发生上述动作。
(3)如果RI=0、SM2=1且停止位为0,(通常由传输过程中的干扰所致)所接收的数据应会丢失,不再恢复。
(4)如果RI=1,则所接收的数据在任何情况下都会丢失。
无论出现哪一种情况,跳变检测器将继续采样RXD引脚的负跳变,以便接收下一帧信息。
接收器采用移位寄存器和SBUF双缓冲结构,以避免在接收后一帧数据之前,CPU尚未及时响应中断将前一帧数据取走,造成两帧数据重叠问题。
采用双缓冲器后,前、后两帧数据进入SBUF的时间间隔至少有10个位传送周期。
在后一帧数据送入SBUF之前,CPU有足够的时间将前一帧数据取走。
三、串行接口工作方式2和与方式3串行口工作在方式2、方式3时,为9位异步通信接口。
发送或接收的一帧信息由11位组成,见图7-2b。
方式2与方式3仅波特率不同,方式2的波特率为f osc/32(SMOD=1时)或f osc/64(SMOD=0时),而方式3的波特率由定时器/计数器具或定时器/计数器2及SMOD决定。
1.发送方式2、方式3发送时,数据从TXD引脚输出,附加的第九位数据由SCON中的TB8提供。
CPU执行一条写入SBUF的指令后立即启动发送器发送。
发送完一帧信息后由硬件置TI=1。
2.接收与方式1相似,REN置1后,跳变检测器不断对RXD引脚采样。
当采样到负跳变后就启动接收控制器。
位检测器对每位数据采集3个值,用采3取2办法确定每位的数值。
当第九位数据移入移位寄存器后,将8位数据装入SBUF,第九位数据装入RB8,并置RI=1,其时序见图2-26b。
与方式1相同,方式2、方式3中也设置有数据辨别功能,即当RI=1或SM2=1且第九位数据为0时所接收的一帧信息被丢失。
四、各方式波特率的设计在串行通信中,收发双方对发送或接收的数据速率(即波特率)要有一定的约定。
可通过对串行口编程设定。
各种工作方式下其波特率的设置均有所不同,其中方式0和方式2的波特率是固定的,方式1和方式3的波特率是可变的,由定时器T1的溢出率确定。
(1) 方式0的波特率 方式0时,其波特率固定为振荡频率的1/12,并不受PCON 中SMOD 位的影响。
因而,方式0的波特率=f osc /12。
(2) 方式2的波特率 方式2的波特率由系统的振荡频率f osc 和PCON 的最高位SMOD 确定,即为2SMOD ×f osc /64。
在SMOD=0时,波特率=f osc /64;在SMOD=1时,波特率=f osc /32。
(3) 方式1、3的波特率 MCS-51串行口方式1、3的波特率由定时器T1的溢出率和SMOD 的值共同确定,即方式1、3的波特率=(2SMOD /32)×定时器T1的溢出率。
其中定时器溢出率取决于计数速率和定时器的预置值。
计数速率与TMOD 寄存器中T /C 的设置有关。
当T /C =0时,为定时方式,计数速率= f osc /12;当T /C =1时,为计数方式,计数速率取决于外部输入时钟的频率,但不能超过f osc /24。
定时器的预置值等于M -X ,X为计数初值,M为定时器的最大计数,与操作模式有关。
(可取213、216、28)。
如果为了到达很低的波特率,则可以选择16位的操作模式,即模式1,或模式0,可以利用T1中断来实现重装计数值。