第1页:MCS-51单片机内部接口电路
MCS-51单片机内部接口电路接口基本概念1中断与中断系统2定时/计数器3并行输入输出接口4UART串行输入输出接口5串行通信6
第2页:4.1 接口基本概念
4.1接口基本概念接口电路的功能接口控制原理串行接口并行接口
第3页:4.1.1 接口电路的功能
- 4.1.1接口电路的功能接口电路是一组电路,是中央处理器与存储器、输入输出设备之间协调动作的控制电路。简单的说,接口电路是在两个电路或设备之间,使两者动作相配合的连接电路。接口电路的作用就是将来自外部设备的数据信号传送给微处理器,微处理器对数据进行适当加工,再通过接口电路传回外部设备。
- 地址译码
- 数据缓存
- 信息转换
- 提供命令译码和状态信息
- 定时和控制
第4页:4.1.2 接口控制原理
- 4.1.2接口控制原理1.数据传送方式
- 并行数据传送并行数据的每一位都对应独立的传输线路速度快线路多只适用于较短距离的数据传送
- 串行数据传送串行数据是将构成字符的每个二进制数据位,按一定的顺序逐位进行传送的方式远距离传输比并行经济,但控制较为复杂
第5页:4.1.2 接口控制原理(传送控制方式)
- 4.1.2接口控制原理2.传送控制方式
- 查询方式中央处理器随时询问接口,数据传送完否或数据准备好否。
- 中断方式中断方式下,接口在数据发送数据完毕或接收数据准备好时再通知中央处理器,中央处理器再发送或接收数据。
- DMA方式即数据不经过中央处理器在存储器和外设之间直接传送的操作方式。适合大量数据传送,控制复杂。
第6页:4.1.3 串行接口
- 4.1.3串行接口1.通用异步接收器和发送器UARTUART是一个能异步传输的数据总线。TXD:发送数据线RXD:接收数据线
- 接收和发送可以单独进行,也可以同时进行。
- 格式严格:每个数据以相同的位串形式传输。
- 每个串行数据由起始位、数据位、奇偶校验位组成。
- 从起始到停止位结束时间称为一帧(frame)。
第7页:4.1.3 串行接口(起始位)
- 4.1.3串行接口UART格式
- 起始位:在通信线上没有数据被传送时处于逻辑1状态,当要发送数据时,首先发出一个逻辑0信号,这个逻辑0信号就是起始位。②数据位:起始位后位。数据位的个数可以是5~9位,MSC-51中常采用8位或9位数据传送,从最低有效位开始发送。③奇偶校验位:检测有限差错。偶校验:组成数据位和奇偶位的逻辑1个数必须是偶数。奇校验:逻辑1的个数必须是奇数。④停止位:停止位是一个字符数据的结束标志,可以是1位、1.5位或2位的逻辑1。停止位后,通信线又恢复逻辑1状态。
第8页:4.1.3 串行接口
4.1.3串行接口UART格式波特率异步通信传输的所有位信号必须保持一致的信号持续时间。每一位的宽度由数据的传输速度决定。波特率:每秒传输多少个符号。比特率:每秒传输多少个二进制位。波特率= 1/信号持续时间接收设备和发射设备需要保持相同的传送波特率。
第9页:4.1.3 串行接口(MOSI)
- 4.1.3串行接口2.串行外设接口SPI4线全双工串行总线,可以有多个主器件,支持在同一总线上将多个从器件连接到一个主器件。
- MOSI:主从输入线,当SPI作为主器件时,该信号是输出,当SPI作为从器件时,该信号是输入。传输时,高位在前,低位在后。②MISO:主从输出线,当SPI作为主器件时,该信号是输入,当SPI作为从器件时,该信号是输出。当SPI未被选中时,MISO为高阻态。③SCK:串行时钟线。主器件产生并输出,作为从器件的输入,用于同步主器件和从器件之间的在MOSI和MISO线上的串行数据传输。④NSS:从选择线。主器件用它来选择处于从方式的SPI器件。
第10页:4.1.3 串行接口
- 4.1.3串行接口3. I2C总线2线半双工串行总线,可以有多个主器件,支持在同一总线上将多个从器件连接到一个主器件。
- I2C是一个双线的双向串行总线。I2C上可以有多个主器件,并允许一个主器件同时访问多个从器件。②I2C传输一次数据包括一个起始命令START、一个地址字节、一个或多个数据和一个停止命令STOP。③每个地址字节和每个数据字节后面都跟随一个来自接收器的确认位ACKNOWLEDGE。
第11页:4.1.4 并行接口
4.1.4并行接口
第12页:4.2 中断与中断系统
4.2中断与中断系统中断和中断处理过程MCS-51中断系统中断扩展
第13页:4.2.1 中断处理过程
4.2.1中断和中断处理过程1.中断的概念CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。
第14页:4.2.1 中断处理过程(中断过程示意)
4.2.1中断和中断处理过程执行主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回主程序
第15页:4.2.1 中断处理过程
4.2.1中断和中断处理过程2.中断系统的功能1.能实现中断并返回中断;判断→响应→保护现场→中断服务→恢复现场→返回2.能实现中断优先级;3.能实现中断嵌套(高中断低);
第16页:4.2.1 中断的处理过程
4.2.1中断和中断处理过程3.中断的处理过程关闭中断保存断点响应中断恢复现场中断服务保护现场打开中断中断返回
第17页:4.2.2 MCS-51中断系统
4.2.2 MCS-51单片机中断系统
第18页:4.2.2 MCS-51中断系统
- 4.2.2 MCS-51单片机中断系统1.特点
- 5个中断源,3个在片内,2个在片外;
- 固定的中断入口地址;
- 两级中断优先级,可以形成嵌套;
- 通过SFR进行中断控制和设置编程。
第19页:4.2.2 MCS-51中断系统
- 4.2.2 MCS-51单片机中断系统2.中断源
- 外部中断(2个)外部中断0和外部中断1
- 定时/计数器中断(2个)定时/计数器中断0和定时/计数器中断1
- 串行口中断(1个)
第20页:4.2.2 MCS-51中断系统
- 4.2.2 MCS-51单片机中断系统3.中断控制(寄存器)
- 定时器控制寄存器--TCON
- 串行口控制寄存器--SCON
- 中断允许寄存器--IE
- 中断优先级寄存器--IP
第21页:TCON定时器控制寄存器位定义
TCON:定时器控制寄存器,其各位定义如下(自高位到低位)。
TCON各位定义| 位名 | 功能 | 取值说明 |
|---|
| TF1 | 定时器1中断请求标志 | 1:有请求;0:无请求 |
|---|
| TR1 | 定时器1运行控制位 | 1:打开;0:关断 |
|---|
| TF0 | 定时器0中断请求标志 | 1:有请求;0:无请求 |
|---|
| TR0 | 定时器0运行控制位 | 1:打开;0:关断 |
|---|
| IE1 | 外部中断1请求标志 | 1:有请求;0:无请求 |
|---|
| IT1 | 外部中断1类型控制位 | 1:边沿触发;0:电平触发 |
|---|
| IE0 | 外部中断0请求标志 | 1:有请求;0:无请求 |
|---|
| IT0 | 外部中断0类型控制位 | 1:边沿触发;0:电平触发 |
|---|
第22页:SCON串行口控制寄存器位定义
SCON各位定义| 位名 | 功能 | 取值说明 |
|---|
| SM0 | 串行口工作方式设置位 | 与SM1组合:00~11对应方式0~方式3 |
|---|
| SM1 | 串行口工作方式设置位 | 与SM0组合设置工作方式 |
|---|
| SM2 | 多机通信控制位 | 用于方式2、方式3的多机通信 |
|---|
| REN | 允许接收控制位 | 1:允许串行接收 |
|---|
| TB8 | 发送数据第9位 | 方式2、方式3中发送的第9位 |
|---|
| RB8 | 接收数据第9位 | 方式2、方式3中接收的第9位 |
|---|
| TI | 串行口发送中断标志 | 一帧数据发送结束后由硬件置1 |
|---|
| RI | 串行口接收中断标志 | 一帧数据接收结束后由硬件置1 |
|---|
注:原课件仅对TI、RI给出文字说明,其余各位功能按MCS-51标准定义补充,请对照原图核对。
第23页:IE中断允许寄存器位定义
IE各位定义| 位名 | 功能 |
|---|
| EA | 全局中断控制位 |
|---|
| NA | 无效位 |
|---|
| NA | 无效位 |
|---|
| ES | 串行口中断控制位 |
|---|
| ET1 | 定时器1中断控制位 |
|---|
| EX1 | 外中断1中断控制位 |
|---|
| ET0 | 定时器0中断控制位 |
|---|
| EX0 | 外中断0中断控制位 |
|---|
第24页:IP中断优先级寄存器位定义
IP各位定义| 位名 | 功能 | 取值说明 |
|---|
| NA | 无效位 | — |
|---|
| NA | 无效位 | — |
|---|
| NA | 无效位 | — |
|---|
| PS | 串行口中断优先级控制位 | 1:高优先级;0:低优先级 |
|---|
| PT1 | 定时器1中断优先级控制位 | 1:高优先级;0:低优先级 |
|---|
| PX1 | 外中断1中断优先级控制位 | 1:高优先级;0:低优先级 |
|---|
| PT0 | 定时器0中断优先级控制位 | 1:高优先级;0:低优先级 |
|---|
| PX0 | 外中断0中断优先级控制位 | 1:高优先级;0:低优先级 |
|---|
第25页:4.2.2 MCS-51中断系统
- 4.2.2 MCS-51单片机中断系统4.中断响应
- 同级或高优先级的中断已在进行中;
- 当前的机器周期还不是正在执行指令的最后一个机器周期(换言之,正在执行的指令完成前,任何中断请求都得不到响应);
- 正在执行的是一条RETI或者访问特殊功能寄存器IE或IP的指令(换言之,在RETI或读写IE或IP之后,不会马上响应中断请求,而至少执行一条其它指令之后才会响应)。(1)中断响应的条件
第26页:4.2.2 MCS-51中断系统
- 4.2.2 MCS-51单片机中断系统单片机一旦响应中断请求,就由硬件完成以下功能:
- 根据响应的中断源的中断优先级,使相应的优先级状态触发器置1;
- 执行硬件中断服务子程序调用,并把当前程序计数器PC的内容压入堆栈;
- 清除相应的中断请求标志位(串行口中断请求标志RI和TI除外);
- 把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC,从而转入相应的中断服务程序。(2)中断响应过程
第27页:中断服务程序入口地址表
MCS-51各中断源具有固定的中断入口地址,响应中断后程序自动转向相应入口。
中断服务程序入口地址表| 入口地址 | 中断源 |
|---|
| 0003H | 外部中断0 |
|---|
| 000BH | 定时器0 |
|---|
| 0013H | 外部中断1 |
|---|
| 001BH | 定时器1 |
|---|
| 0023H | 串行口 |
|---|
第28页:4.2.3 中断扩展
4.2.3中断扩展1.中断与查询结合MCS-51单片机有两个外部中断输入端,当有2个以上中断源时,它的中断输入端就不够了。此时,可以采用中断与查询相结合的方法来实现。可以使每个中断源都接在同一个外部中断输入端上,同时利用输入口线作为多中断源情况下各中断源的识别线。
第29页:4.2.3 中断扩展(中断与查询结合)
4.2.3中断扩展INT0INT1P1.3P1.2P1.1P1.0+5VINT2INT3INT4INT5OC门
第30页:4.2.3 中断扩展
4.2.3中断扩展 ORG 0013H LJMP INT1 INT1: PUSH PSW PUSH ACCJB P1.0, INT2JB P1.1, INT3JB P1.2, INT4JB P1.3, INT5GOBACK: POP ACC POP PSW RETIINT2: ;INT2中断服务程序 AJMP GOBACKINT3: ; INT3中断服务程序 AJMP GOBACKINT4: ; INT4中断服务程序 AJMP GOBACKINT5: ; INT5中断服务程序 AJMP GOBACK
第31页:4.3 定时/计数器
4.3定时/计数器定时器的结构定时器的工作方式定时器应用举例
第32页:4.3.1 定时器的结构
4.3.1定时器的结构1.定时/计数器的概念主要作用包括产生各种时标间隔,记录外部事件的数量等等。8051有两个16位的定时器/计数器。作定时器时,每个机器周期定时寄存器自动加1,因此定时器也可以看作是计量机器周期的计数器。作计数器时,计量单片机外部引脚从1到0的负跳变,每个跳变计数器自动加1。
第33页:4.3.1 定时器的结构
4.3.1定时器的结构2.定时/计数器的结构处理器TH1TL1TH0TL0TCONTMOD
第34页:4.3.2 定时器工作方式
- 4.3.2定时器的工作方式T0和T1无论是用作定时器或者计数器都有4种工作方式:
- 方式0
- 方式1
- 方式2
- 方式3除了方式3,T0和T1有完全相同的工作方式。
第35页:4.3.2 定时器工作方式(方式0)
4.3.2定时器的工作方式方式0—(13位工作方式)
第36页:4.3.2 定时器工作方式(方式1)
4.3.2定时器的工作方式方式1—(16位工作方式)
第37页:4.3.2 定时器工作方式(方式2)
4.3.2定时器的工作方式方式2—(8位自动重装工作方式)
第38页:4.3.2 定时器工作方式(方式3)
4.3.2定时器的工作方式方式3—(2个8位工作方式)
第39页:4.3.2 定时器方式控制寄存器
- 4.3.2定时器的工作方式
- 定时器/计数器T0和T1有2个控制寄存器:TMOD和TCON
- 作用:设置各个定时器/计数器的工作方式,选择定时或者计数功能,控制启动运行,以及作为运行状态的标志等。TCON还有4位用于中断系统。
- 控制寄存器
第40页:TMOD定时器方式控制寄存器位定义
TMOD:定时器方式控制寄存器,高4位控制T1,低4位控制T0。
TMOD各位定义| 位名 | 功能 | 取值说明 |
|---|
| GATE | 门控位 | 1:打开;0:关闭 |
|---|
| C/T | 工作状态选择位 | 1:计数状态;0:定时状态 |
|---|
| M1、M0 | 工作方式设置位 | 00:方式0;01:方式1;10:方式2;11:方式3 |
|---|
第41页:TCON定时器控制寄存器位定义(定时器)
TCON各位定义| 位名 | 功能 | 取值说明 |
|---|
| TF1 / TF0 | 定时器中断请求标志 | 1:有请求;0:无请求 |
|---|
| TR1 / TR0 | 定时器运行控制位 | 1:打开;0:关断 |
|---|
| IE1 / IE0 | 外部中断请求标志 | 1:有请求;0:无请求 |
|---|
| IT1 / IT0 | 外部中断类型控制位 | 1:边沿触发;0:电平触发 |
|---|
第42页:4.3.3 定时器初值计算
- 4.3.3定时器的初值计算51内部定时器/计数器是可编程序的,通过程序设置寄存器对它进行设定和控制。因此需要进行初始化操作,初始化步骤为:
- 设定TMOD寄存器,确定工作方式。
- 根据需要设定时/计数器初值或计数器初值。
- 根据需要开放中断,设定中断优先级。
- 设置TCON寄存器,以启动或禁止定时/计数器。
第43页:4.3.3 定时器初值计算(计数器方式)
- 4.3.3定时器的初值计算
- 计数器方式D=M-C
- 定时器方式D=M-TC*(fosc/12)D:计数设定的初值;C:所需要的计数值,即所需要计量的负跳变次数;M:为计数器模值,与方式有关。方式0: 213;方式1: 216;方式2,3: 28。D:计数设定的初值;TC:所需要的定时时间;M:为计数器模值,与方式有关。方式0: 213;方式1: 216;方式2,3: 28。fosc:振荡频率实际上就是计算所需要计数的机器周期个数C
第44页:4.3.4 定时器应用举例
- 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)。
第45页:4.3.4 定时器应用举例
- 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
本页含表格或算式图示,原文数字粘连严重,未能安全切分为表格,请对照原课件图片补充
第46页:4.3.4 定时器应用举例
- 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)=15628-TC*(fosc/12) = 256-400*10-6*(6*106/12)=56TH0 = 156,TL0=56
第47页:4.4 并行接口
4.4并行输入输出接口
第48页:4.5 串行接口
- 4.5串行输入输出接口一个串行I/O端口,通过引脚RXD(P3.0)和TXD(P3.1)与外设进行全双工的串行异步通信。
- 4种工作方式
- 两个控制寄存器,用来设置工作方式、发送接收状态、特征位、波特率等等。
- 一个数据寄存器SBUF作为接收发送的数据缓冲。
第49页:串行口工作方式对照表
8051片内有一个串行I/O端口,通过引脚RXD(P3.0)和TXD(P3.1)与外设进行全双工的串行异步通信,共有4种工作方式。
串行口工作方式对照表| 工作方式 | 位数 | 主要作用 |
|---|
| 方式0 | 8位 | 用于外接移位寄存器,扩展I/O电路 |
|---|
| 方式1 | 10位 | 双机通信或者与外设电路的通信 |
|---|
| 方式2 | 11位 | 除方式1的功能外,还可用于多机通信,以构成多微机系统 |
|---|
| 方式3 | 11位 | 同方式2,波特率可变 |
|---|
注:原课件文本中方式2、方式3的说明文字被压缩在一起,此处按MCS-51标准串行口工作方式整理,请对照原图核对。
第50页:4.5.2 串行口工作方式
4.5.2串行口工作方式方式0
第51页:4.5.2 串行口工作方式
4.5.2串行口工作方式方式1
第52页:4.5.2 串行口工作方式(方式2、3)
4.5.2串行口工作方式方式2, 3
第53页:4.5.3 串行口控制寄存器
- 4.5.3串行口控制寄存器
- 串行口控制寄存器--SCONSM0SM1SM2RENTB8RB8TIRI串行口接收中断标志串行口工作方式设置:00~11:方式0~方式3方式2和方式3的多机通信特征位允许串行接收位:1:允许;0:禁止接收到的第9位数据要发送的第9位数据串行口发送中断标志
第54页:4.5.3 PCON电源控制寄存器
- 4.5.3串行口控制寄存器
- 电源控制寄存器--PCONSMODNANANANANANANA波特率加倍控制位1:加倍;0:不加倍
第55页:4.5.3 串行口控制寄存器
- 4.5.3串行口控制寄存器应用特点
- 1)两个中断标志,RI用于接收,TI用于发送。2)发送/接收前都必须对RI/TI清零,一帧数据发送/接收后,RI/TI自动置1,如要再发送/接收,必须用软件清零。3)方式0和1:数据发送/接收完成后,置位RI/TI,请求中断。方式2和3:数据接收完成后,视SM2和RB8状态确定RI和请求中断。接收中断状态与标志RB8SM2激活RI,引起中断00激活RI,引起中断10不激活RI,不引起中断01激活RI,引起中断11