600 likes | 789 Views
MCS-51 单片机内部 接口电路. 4. 接口基本概念. 1. 中断与中断系统. 2. 定时 / 计数器. UART 串行输入输出接口. 3. 5. 并行输入输出接口. 串行通信. 4. 6. 程序设计的基本技术. 接口电路的功能. 接口控制原理. 串行接口. 并行接口. 4.1 接口基本概念. 4.1.1 接口电路的功能. 接口电路是一组电路,是中央处理器与存储器、输入输出设备之间协调动作的 控制电路 。 简单的说,接口电路是在两个电路或设备之间,使两者动作相配合的 连接电路 。
E N D
接口基本概念 1 中断与中断系统 2 定时/计数器 UART串行输入输出接口 3 5 并行输入输出接口 串行通信 4 6 程序设计的基本技术 第四章 MCS-51单片机内部接口电路
接口电路的功能 接口控制原理 串行接口 并行接口 4.1 接口基本概念 第四章 MCS-51单片机内部接口电路
4.1.1 接口电路的功能 • 接口电路是一组电路,是中央处理器与存储器、输入输出设备之间协调动作的控制电路。 • 简单的说,接口电路是在两个电路或设备之间,使两者动作相配合的连接电路。 • 接口电路的作用就是将来自外部设备的数据信号传送给微处理器,微处理器对数据进行适当加工,再通过接口电路传回外部设备。 • 地址译码 • 数据缓存 • 信息转换 • 提供命令译码和状态信息 • 定时和控制 第四章 MCS-51单片机内部接口电路
4.1.2 接口控制原理 • 1.数据传送方式 • 并行数据传送 • 并行数据的每一位都对应独立的传输线路 • 速度快线路多只适用于较短距离的数据传送 • 串行数据传送 • 串行数据是将构成字符的每个二进制数据位,按一定的顺序逐位进行传送的方式 • 单向传送只需一根数据线、一个信号线和一根应答线即可(多微机通信时,我们可以自定义3线通信机制)。 • 远距离传输比并行经济,但控制较为复杂 第四章 MCS-51单片机内部接口电路
4.1.2 接口控制原理 • 2.传送控制方式 • 查询方式 • 中央处理器随时询问接口,数据传送完否或数据准备好否。(费时) • 中断方式 • 中断方式下,接口在数据发送数据完毕或接收数据准备好时再通知中央处理器,中央处理器再发送或接收数据。(效率高) • DMA方式(Direct Memory Access ) • 即数据不经过中央处理器在存储器和外设之间直接传送的操作方式。适合大量数据传送,控制复杂。 第四章 MCS-51单片机内部接口电路
4.1.3 串行接口 • 1. 通用异步接收器和发送器UART • UART是一个能异步传输的数据总线。 • TXD:发送数据线 • RXD:接收数据线 • 接收和发送可以单独进行,也可以同时进行。 • 格式严格:每个数据以相同的位串形式传输。 • 每个串行数据由起始位、数据位、奇偶校验位组成。 • 从起始到停止位结束时间称为一帧(frame)。 第四章 MCS-51单片机内部接口电路
4.1.3 串行接口 UART格式 ①起始位:在通信线上没有数据被传送时处于逻辑1状态,当要发送数据时,首先发出一个逻辑0信号,这个逻辑0信号就是起始位。 ②数据位:起始位后位。数据位的个数可以是5~9位,MSC-51中常采用8位或9位数据传送,从最低有效位开始发送。 ③奇偶校验位:检测有限差错。 偶校验:组成数据位和奇偶位的逻辑1个数必 须是偶数。 奇校验:逻辑1的个数必须是奇数。 ④停止位:停止位是一个字符数据的结束标志,可以是1位、1.5位或2位的逻辑1。停止位后,通信线又恢复逻辑1状态。 第四章 MCS-51单片机内部接口电路
4.1.3 串行接口 UART格式波特率 异步通信传输的所有位信号必须保持一致的信号持续时间。每一位的宽度由数据的传输速度决定。 波特率:每秒传输多少个二进制位 波特率 = 1/信号持续时间 接收设备和发射设备需要保持相同的传送波特率。 第四章 MCS-51单片机内部接口电路
4.1.3 串行接口 2. 串行外设接口SPI 4线全双工串行总线,可以有多个主器件,支持在同一总线上将多个从器件连接到一个主器件。 ①MOSI:主从输入线,当SPI作为主器件时,该信号是输出,当SPI作为从器件时,该信号是输入。传输时,高位在前,低位在后。 ②MISO:主从输出线,当SPI作为主器件时,该信号是输入,当SPI作为从器件时,该信号是输出。当SPI未被选中时,MISO为高阻态。 ③SCK:串行时钟线。主器件产生并输出,作为从器件的输入,用于同步主器件和从器件之间的在MOSI和MISO线上的串行数据传输。 ④NSS:从选择线。主器件用它来选择处于从方式的SPI器件。 第四章 MCS-51单片机内部接口电路
SPI串行总线在MCS-51系列单片机中的实现 第四章 MCS-51单片机内部接口电路
4.1.3 串行接口 • 3. I2C总线 • 双线的半双工串行总线,可以有多个主器件,支持在同一总线上将多个从器件连接到一个主器件。 • ①I2C是一个双线的双向串行总线。 I2C上可以有多个主器件,并允许一个主器件同时访问多个从器件。 两种数据的传输,都由主器件启动,并提供时钟。2个信号:时钟线:SCL,数据线:SDA. • ②I2C传输一次数据包括一个起始命令START、一个地址字节、一个或多个数据字节和一个停止命令STOP。 • ③ 每个地址字节和每个数据字节后面都跟随一个来自接收器的确认位ACKNOWLEDGE。 • 地址字节包括一个7位的地址和一个方向位R/W(最低位,1为读操作,0为写). 第四章 MCS-51单片机内部接口电路
应用 第四章 MCS-51单片机内部接口电路
4.1.4 并行接口 第四章 MCS-51单片机内部接口电路
中断和中断处理过程 MCS-51中断系统 中断扩展 4.2 中断与中断系统 第四章 MCS-51单片机内部接口电路
4.2.1 中断和中断处理过程 1. 中断的概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务); 待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断 。 第四章 MCS-51单片机内部接口电路
4.2.1 中断和中断处理过程 主程序 中断响应 中断请求 执行主程序 执行中断处理程序 断点 继续执行主程序 中断返回 第四章 MCS-51单片机内部接口电路
4.2.1 中断和中断处理过程 2. 中断系统的功能 1. 能实现中断并返回中断; 判断→响应→保护断点和现场→中断服务→恢复现场→返回 2. 能实现中断优先级; 3. 能实现中断嵌套(高中断低); 第四章 MCS-51单片机内部接口电路
4.2.1 中断和中断处理过程 硬件完成 4. 中断的处理过程 关闭中断 保存断点 转入中断 服务子程序 恢复现场 中断服务 保护现场 打开中断 中断返回 第四章 MCS-51单片机内部接口电路
4.2.2 MCS-51单片机中断系统 第四章 MCS-51单片机内部接口电路
4.2.2 MCS-51单片机中断系统 1. 特点 • 5个中断源,3个在片内,2个在片外; • 固定的中断入口地址; • 两级中断优先级,可以形成嵌套; • 通过SFR进行中断控制和设置编程。 第四章 MCS-51单片机内部接口电路
4.2.2 MCS-51单片机中断系统 2. 中断源 • 外部中断(2个) 外部中断0和外部中断1 • 定时/计数器中断(2个) 定时/计数器中断0和定时/计数器中断1 • 串行口中断(1个) 第四章 MCS-51单片机内部接口电路
4.2.2 MCS-51单片机中断系统 3. 中断控制(寄存器) • 定时器控制寄存器--TCON • 串行口控制寄存器--SCON • 中断允许寄存器--IE • 中断优先级寄存器--IP 第四章 MCS-51单片机内部接口电路
4.2.2 MCS-51单片机中断系统 定时器控制寄存器--TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 定时器溢出中 断请求标志 1:有请求 0:无请求 外部中断请求标志 1:有请求 0:无请求 外部中断触发方式控制位 1:边沿触发 0:电平触发 T1、T0的运行控制位标志 1:启动定时器T1、T0工作 0:停止定时器T1、T0工作 第四章 MCS-51单片机内部接口电路
4.2.2 MCS-51单片机中断系统 串行口控制寄存器--SCON SM0 SM1 SM2 REN TB8 RB8 TI RI 串行口的发送中断标志 串行口接收中断标志 第四章 MCS-51单片机内部接口电路
4.2.2 MCS-51单片机中断系统 中断允许寄存器—IE EA NA NA ES ET1 EX1 ET0 EX0 全局中断控制位 串行口中断控制位 定时器1中断控制位 外中断1中断控制位 定时器0中断控制位 外中断0中断控制位 第四章 MCS-51单片机内部接口电路 说明:复位后IE被清0,禁止一切中断
4.2.2 MCS-51单片机中断系统 中断优先级寄存器--IP NA NA NA PS PT1 PX1 PT0 PX0 1:对应的中断声明为高优先级, 0:对应的中断定义为低优先级中断 串行口中断优先级控制位 定时器1中断优先级控制位 外中断1中断优先级控制位 定时器0中断优先级控制位 外中断0中断优先级控制位 第四章 MCS-51单片机内部接口电路
4.2.2 MCS-51单片机中断系统 4. 中断响应 (1) 中断不响应的条件 • 同级或高优先级的中断已在进行中; • 当前的机器周期还不是正在执行指令的最后一个机器周期(换言之, 正在执行的指令完成前, 任何中断请求都得不到响应); • 正在执行的是一条RETI或者访问特殊功能寄存器 IE或 IP的指令(换言之, 在RETI或读写IE或IP之后, 不会马上响应中断请求, 而至少执行一条其它指令之后才会响应)。 第四章 MCS-51单片机内部接口电路
4.2.2 MCS-51单片机中断系统 (2) 中断响应过程 • 单片机一旦响应中断请求, 就由硬件完成以下功能: • 根据响应的中断源的中断优先级,使相应的优先级状态触发器置1; • 执行硬件中断服务子程序调用,并把当前程序计数器PC的内容压入堆栈; • 把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC, 从而转入相应的中断服务程序。 • 关中断允许位EA; • 响应中断程序处理后,清除相应的中断请求标志位(串行口中断请求标志RI和TI除外); 第四章 MCS-51单片机内部接口电路
4.2.2 MCS-51单片机中断系统 (3) 中断服务程序入口地址表 第四章 MCS-51单片机内部接口电路
4.2.3 中断扩展 1. 中断与查询结合 MCS-51单片机有两个外部中断输入端,当有2个以上中断源时,它的中断输入端就不够了。此时,可以采用中断与查询相结合的方法来实现。可以使每个中断源都接在同一个外部中断输入端上,同时利用输入口线作为多中断源情况下各中断源的识别线。 第四章 MCS-51单片机内部接口电路
4.2.3 中断扩展 +5V INT0 OC门 INT1 INT2 INT3 INT4 INT5 P1.3 P1.2 P1.1 P1.0 第四章 MCS-51单片机内部接口电路
4.2.3 中断扩展 • ORG 0013H • LJMP INT1 • ...... • INT1: PUSH PSW • PUSH ACC • JB P1.0, INT2 • JB P1.1, INT3 • JB P1.2, INT4 • JB P1.3, INT5 • GOBACK: • POP ACC • POP PSW • RETI • INT2: ;INT2中断服务程序 • ...... • AJMP GOBACK • INT3: ; INT3中断服务程序 • ...... • AJMP GOBACK • INT4: ; INT4中断服务程序 • ...... • AJMP GOBACK • INT5: ; INT5中断服务程序 • ...... • AJMP GOBACK 第四章 MCS-51单片机内部接口电路
定时器的结构 定时器的工作方式 定时器应用举例 4.3 定时/计数器 第四章 MCS-51单片机内部接口电路
4.3.1 定时器的结构 1. 定时/计数器的概念 主要作用包括产生各种时标间隔,记录外部事件的数量等等。 8031有两个16位的定时器/计数器。 作定时器时,每个机器周期定时寄存器自动加1,因此定时器也可以看作是计量机器周期的计数器。 作计数器时,计量单片机外部引脚从1到0的负跳变,每个跳变计数器自动加1。 第四章 MCS-51单片机内部接口电路
4.3.1 定时器的结构 2. 定时/计数器的结构 处 理 器 TH1 TL1 TH0 TL0 TCON TMOD 第四章 MCS-51单片机内部接口电路
4.3.2 定时器的工作方式 T0和T1无论是用作定时器或者计数器都有4种工作方式: • 方式0 • 方式1 • 方式2 • 方式3 除了方式3,T0和T1有完全相同的工作方式。 第四章 MCS-51单片机内部接口电路
4.3.2 定时器的工作方式 • 方式0—(13位工作方式) 第四章 MCS-51单片机内部接口电路
4.3.2 定时器的工作方式 • 方式1—(16位工作方式) 第四章 MCS-51单片机内部接口电路
4.3.2 定时器的工作方式 • 方式2—(8位自动重装工作方式) 第四章 MCS-51单片机内部接口电路
4.3.2 定时器的工作方式 • 方式3—(2个8位工作方式) 第四章 MCS-51单片机内部接口电路
4.3.2 定时器的工作方式 • 控制寄存器 • 定时器/计数器T0和T1有2个控制寄存器: • TMOD和TCON • 作用: • 设置各个定时器/计数器的工作方式,选择定时或者计数功能,控制启动运行,以及作为运行状态的标志等。TCON还有4位用于中断系统。 第四章 MCS-51单片机内部接口电路
4.3.2 定时器的工作方式 • 定时器方式控制寄存器--TMOD T1 T0 GATE C/T M1 M0 GATE C/T M1 M0 门控位 1:打开 0:关闭 工作方式设置位 00:方式0 01:方式1 10:方式2 11:方式3 工作状态选择位 1:计数状态 0:定时状态 第四章 MCS-51单片机内部接口电路
4.3.2 定时器的工作方式 • 定时器控制寄存器--TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 中断请求标志 1:有请求 0:无请求 运行控制位 1:打开 0:关断 外部中断控制 第四章 MCS-51单片机内部接口电路
4.3.3 定时器的初值计算 51内部定时器/计数器是可编程序的,通过程序设置寄存器对它进行设定和控制。因此需要进行初始化操作,初始化步骤为: • 设定TMOD寄存器,确定工作方式。 • 根据需要设定时/计数器初值或计数器初值。 • 根据需要开放中断,设定中断优先级。 • 设置TCON寄存器,以启动或禁止定时/计数器 第四章 MCS-51单片机内部接口电路
D: 计数设定的初值; TC:所需要的定时时间; M: 为计数器模值,与方式有关。方式0: 213;方式1: 216; 方式2,3: 28。 fosc:振荡频率 4.3.3 定时器的初值计算 • 计数器方式 D=M-C • 定时器方式 D=M-TC*(fosc/12) D:计数设定的初值; C:所需要的计数值,即所需要计 量的负跳变次数; M:为计数器模值,与方式有关。方式0: 213;方式1: 216; 方式2,3: 28。 实际上就是计算所需要计数的机器周期个数C 第四章 MCS-51单片机内部接口电路
4.3.4 定时器的应用举例 • 例4-2:P1.0输出周期为1ms的连续方波,要求用T0定时器,设振荡频率fosc=6MHz。 解:周期为1ms,则定时时间为500us,定时时间到调用CPL,将P1.0取反。 定时器初值计算: D=M-TC*(fosc/12) 需要计数 TC*(fosc/12) = 500*10-6*(6*106/12)=250 可以采用方式2,初值可以设为6=(28-250)。 第四章 MCS-51单片机内部接口电路
4.3.4 定时器的应用举例 • 例4-2:如果要求P1.0输出周期为4ms的连续方波,仍用T0定时器,设振荡频率fosc=6MHz。 解:周期为4ms,则定时时间为2ms。 定时器初值计算: D=M-TC*(fosc/12) 需要计数 TC*(fosc/12) = 2000*10-6*(6*106/12)=1000 可以采用方式0,初值可以设为1C18H(213-1000)。 TH0 = E0H, TL0=18H 注:18H放在TL0的低5位中;1CH放在高8位TH0中; 1CH左移3位,即是E0H; 第四章 MCS-51单片机内部接口电路
4.3.4 定时器的应用举例 • 例4-4:应用T0定时器的方式3产生200us和400us的定时,并使P1.0和P1.1分别输出400us和800us的连续方波,设振荡频率fosc=6MHz。 解:定时时间为200us和400us。 定时器初值计算: D=M-TC*(fosc/12) 28-TC*(fosc/12) = 256-200*10-6*(6*106/12)=156 28-TC*(fosc/12) = 256-400*10-6*(6*106/12)=56 TH0 = 156, TL0=56 第四章 MCS-51单片机内部接口电路
4.4 并行输入输出接口 第四章 MCS-51单片机内部接口电路