单片机原理与应用:MCS-51单片机内部接口电路_第1页
单片机原理与应用:MCS-51单片机内部接口电路_第2页
单片机原理与应用:MCS-51单片机内部接口电路_第3页
单片机原理与应用:MCS-51单片机内部接口电路_第4页
单片机原理与应用:MCS-51单片机内部接口电路_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MCS-51单片机内部接口电路MCS-51单片机内部接口电路接口基本概念1中断与中断系统2定时/计数器3并行输入输出接口4UART串行输入输出接口5串行通信6第二章 汇编语言和汇编程序4.1 接口基本概念接口电路的功能接口控制原理串行接口并行接口第二章 汇编语言和汇编程序4.1.1 接口电路的功能 接口电路是一组电路,是中央处理器与存储器、输入输出设备之间协调动作的控制电路。 简单的说,接口电路是在两个电路或设备之间,使两者动作相配合的连接电路。 接口电路的作用就是将来自外部设备的数据信号传送给微处理器,微处理器对数据进行适当加工,再通过接口电路传回外部设备。 地址译码 数据缓存 信息转换 提

2、供命令译码和状态信息 定时和控制第二章 汇编语言和汇编程序4.1.2 接口控制原理1.数据传送方式 并行数据传送 并行数据的每一位都对应独立的传输线路 速度快 线路多 只适用于较短距离的数据传送 串行数据传送 串行数据是将构成字符的每个二进制数据位,按一定的顺序逐位进行传送的方式 远距离传输比并行经济,但控制较为复杂第二章 汇编语言和汇编程序4.1.2 接口控制原理2.传送控制方式 查询方式 中央处理器随时询问接口,数据传送完否或数据准备好否。 中断方式 中断方式下,接口在数据发送数据完毕或接收数据准备好时再通知中央处理器,中央处理器再发送或接收数据。 DMA方式 即数据不经过中央处理器在存储

3、器和外设之间直接传送的操作方式。适合大量数据传送,控制复杂。第二章 汇编语言和汇编程序4.1.3 串行接口1. 通用异步接收器和发送器UARTUART是一个能异步传输的数据总线。TXD:发送数据线RXD:接收数据线 接收和发送可以单独进行,也可以同时进行。 格式严格:每个数据以相同的位串形式传输。 每个串行数据由起始位、数据位、奇偶校验位组成。 从起始到停止位结束时间称为一帧(frame)。第二章 汇编语言和汇编程序4.1.3 串行接口UART格式 起始位:在通信线上没有数据被传送时处于逻辑1状态,当要发送数据时,首先发出一个逻辑0信号,这个逻辑0信号就是起始位。 数据位:起始位后位。数据位的

4、个数可以是59位,MSC-51中常采用8位或9位数据传送,从最低有效位开始发送。 奇偶校验位:检测有限差错。 偶校验:组成数据位和奇偶位的逻辑1个数必须是偶数。 奇校验:逻辑1的个数必须是奇数。 停止位:停止位是一个字符数据的结束标志,可以是1位、1.5位或2位的逻辑1。停止位后,通信线又恢复逻辑1状态。第二章 汇编语言和汇编程序4.1.3 串行接口UART格式波特率 异步通信传输的所有位信号必须保持一致的信号持续时间。每一位的宽度由数据的传输速度决定。 波特率:每秒传输多少个符号。 比特率:每秒传输多少个二进制位。 波特率 = 1/信号持续时间 接收设备和发射设备需要保持相同的传送波特率。第

5、二章 汇编语言和汇编程序4.1.3 串行接口2. 串行外设接口SPI 4线全双工串行总线,可以有多个主器件,支持在同一总线上将多个从器件连接到一个主器件。 MOSI:主从输入线,当SPI作为主器件时,该信号是输出,当SPI作为从器件时,该信号是输入。传输时,高位在前,低位在后。 MISO:主从输出线,当SPI作为主器件时,该信号是输入,当SPI作为从器件时,该信号是输出。当SPI未被选中时,MISO为高阻态。 SCK:串行时钟线。主器件产生并输出,作为从器件的输入,用于同步主器件和从器件之间的在MOSI和MISO线上的串行数据传输。 NSS:从选择线。主器件用它来选择处于从方式的SPI器件。第

6、二章 汇编语言和汇编程序4.1.3 串行接口3. I2C总线 2线半双工串行总线,可以有多个主器件,支持在同一总线上将多个从器件连接到一个主器件。 I2C是一个双线的双向串行总线。 I2C上可以有多个主器件,并允许一个主器件同时访问多个从器件。 I2C传输一次数据包括一个起始命令START、一个地址字节、一个或多个数据和一个停止命令STOP。 每个地址字节和每个数据字节后面都跟随一个来自接收器的确认位ACKNOWLEDGE。第二章 汇编语言和汇编程序4.1.4 并行接口第二章 汇编语言和汇编程序4.2 中断与中断系统中断和中断处理过程MCS-51中断系统中断扩展第二章 汇编语言和汇编程序4.2

7、.1 中断和中断处理过程1. 中断的概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务); 待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断 。第二章 汇编语言和汇编程序4.2.1 中断和中断处理过程执行主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回主程序第二章 汇编语言和汇编程序4.2.1 中断和中断处理过程2. 中断系统的功能 1. 能实现中断并返回中断; 判断响应保护现场中断服务恢复现场返回 2. 能实现中断优先级; 3. 能

8、实现中断嵌套(高中断低);第二章 汇编语言和汇编程序4.2.1 中断和中断处理过程3. 中断的处理过程关闭中断保存断点响应中断恢复现场中断服务保护现场打开中断中断返回第二章 汇编语言和汇编程序4.2.2 MCS-51单片机中断系统第二章 汇编语言和汇编程序4.2.2 MCS-51单片机中断系统1. 特点 5个中断源,3个在片内,2个在片外; 固定的中断入口地址; 两级中断优先级,可以形成嵌套; 通过SFR进行中断控制和设置编程。第二章 汇编语言和汇编程序4.2.2 MCS-51单片机中断系统2. 中断源 外部中断(2个) 外部中断0和外部中断1 定时/计数器中断(2个) 定时/计数器中断0和定

9、时/计数器中断1 串行口中断(1个)第二章 汇编语言和汇编程序4.2.2 MCS-51单片机中断系统3. 中断控制(寄存器) 定时器控制寄存器-TCON 串行口控制寄存器-SCON 中断允许寄存器-IE 中断优先级寄存器-IP第二章 汇编语言和汇编程序4.2.2 MCS-51单片机中断系统定时器控制寄存器-TCONTF1TR1TF0TR0IE1IT1IE0IT0定时器中断请求标志1:有请求0:无请求外部中断请求标志1:有请求0:无请求外部中断1类型控制位1:边沿触发0:电平触发第二章 汇编语言和汇编程序4.2.2 MCS-51单片机中断系统串行口控制寄存器-SCONSM0SM1SM2RENTB

10、8RB8TIRI串行口的发送中断标志 串行口接收中断标志第二章 汇编语言和汇编程序4.2.2 MCS-51单片机中断系统EANANAESET1EX1ET0EX0串行口中断控制位定时器1中断控制位外中断1中断控制位定时器0中断控制位外中断0中断控制位全局中断控制位中断允许寄存器-IE第二章 汇编语言和汇编程序4.2.2 MCS-51单片机中断系统中断优先级寄存器-IPNANANAPSPT1PX1PT0PX0串行口中断优先级控制位定时器1中断优先级控制位外中断1中断优先级控制位定时器0中断优先级控制位外中断0中断优先级控制位1:对应的中断声明为高优先级,0:对应的中断定义为低优先级中断第二章 汇编

11、语言和汇编程序4.2.2 MCS-51单片机中断系统4. 中断响应 同级或高优先级的中断已在进行中; 当前的机器周期还不是正在执行指令的最后一个机器周期(换言之, 正在执行的指令完成前, 任何中断请求都得不到响应); 正在执行的是一条RETI或者访问特殊功能寄存器 IE或 IP的指令(换言之, 在RETI或读写IE或IP之后, 不会马上响应中断请求, 而至少执行一条其它指令之后才会响应)。(1) 中断响应的条件第二章 汇编语言和汇编程序4.2.2 MCS-51单片机中断系统单片机一旦响应中断请求, 就由硬件完成以下功能: 根据响应的中断源的中断优先级,使相应的优先级状态触发器置1; 执行硬件中

12、断服务子程序调用,并把当前程序计数器PC的内容压入堆栈; 清除相应的中断请求标志位(串行口中断请求标志RI和TI除外); 把被响应的中断源所对应的中断服务程序的入口地址(中断矢量)送入PC, 从而转入相应的中断服务程序。(2) 中断响应过程第二章 汇编语言和汇编程序4.2.2 MCS-51单片机中断系统(3) 中断服务程序入口地址表中断源入口地址外部中断00003H定时器0000BH外部中断10013H定时器1001BH串行口0023H第二章 汇编语言和汇编程序4.2.3 中断扩展1. 中断与查询结合 MCS-51单片机有两个外部中断输入端,当有2个以上中断源时,它的中断输入端就不够了。此时,

13、可以采用中断与查询相结合的方法来实现。可以使每个中断源都接在同一个外部中断输入端上,同时利用输入口线作为多中断源情况下各中断源的识别线。第二章 汇编语言和汇编程序4.2.3 中断扩展INT0INT1P1.3P1.2P1.1P1.0+5VINT2INT3INT4INT5OC门第二章 汇编语言和汇编程序4.2.3 中断扩展ORG 0013H LJMP INT1.INT1:PUSH PSWPUSH ACCJB P1.0, INT2JB P1.1, INT3JB P1.2, INT4JB P1.3, INT5GOBACK:POP ACCPOP PSWRETIINT2: ; INT2中断服务程序. AJ

14、MP GOBACKINT3: ; INT3中断服务程序.AJMP GOBACKINT4: ; INT4中断服务程序. AJMP GOBACKINT5: ; INT5中断服务程序. AJMP GOBACK 第二章 汇编语言和汇编程序4.3 定时/计数器定时器的结构定时器的工作方式定时器应用举例第二章 汇编语言和汇编程序4.3.1 定时器的结构1. 定时/计数器的概念 主要作用包括产生各种时标间隔,记录外部事件的数量等等。 8051有两个16位的定时器/计数器。 作定时器时,每个机器周期定时寄存器自动加1,因此定时器也可以看作是计量机器周期的计数器。 作计数器时,计量单片机外部引脚从1到0的负跳变

15、,每个跳变计数器自动加1。第二章 汇编语言和汇编程序4.3.1 定时器的结构2. 定时/计数器的结构 处理器TH1TL1TH0TL0TCONTMOD第二章 汇编语言和汇编程序4.3.2 定时器的工作方式T0和T1无论是用作定时器或者计数器都有4种工作方式: 方式0 方式1 方式2 方式3除了方式3,T0和T1有完全相同的工作方式。第二章 汇编语言和汇编程序4.3.2 定时器的工作方式方式0(13位工作方式)第二章 汇编语言和汇编程序4.3.2 定时器的工作方式方式1(16位工作方式)第二章 汇编语言和汇编程序4.3.2 定时器的工作方式方式2(8位自动重装工作方式)第二章 汇编语言和汇编程序4

16、.3.2 定时器的工作方式方式3(2个8位工作方式)第二章 汇编语言和汇编程序4.3.2 定时器的工作方式 定时器/计数器T0和T1有2个控制寄存器: TMOD和TCON 作用: 设置各个定时器/计数器的工作方式,选择定时或者计数功能,控制启动运行,以及作为运行状态的标志等。TCON还有4位用于中断系统。控制寄存器第二章 汇编语言和汇编程序4.3.2 定时器的工作方式定时器方式控制寄存器-TMODGATEC/TM1M0GATEC/TM1M0T1T0门控位1:打开0:关闭工作状态选择位1:计数状态0:定时状态工作方式设置位00:方式0 01:方式110:方式2 11:方式3第二章 汇编语言和汇编

17、程序4.3.2 定时器的工作方式定时器控制寄存器-TCONTF1TR1TF0TR0IE1IT1IE0IT0中断请求标志1:有请求0:无请求运行控制位1:打开0:关断外部中断控制第二章 汇编语言和汇编程序4.3.3 定时器的初值计算51内部定时器/计数器是可编程序的,通过程序设置寄存器对它进行设定和控制。因此需要进行初始化操作,初始化步骤为:设定TMOD寄存器,确定工作方式。根据需要设定时/计数器初值或计数器初值。根据需要开放中断,设定中断优先级。设置TCON寄存器,以启动或禁止定时/计数器。第二章 汇编语言和汇编程序4.3.3 定时器的初值计算计数器方式 D=M-C 定时器方式 D=M-TC*

18、(fosc/12)D:计数设定的初值;C:所需要的计数值,即所需要计 量的负跳变次数;M:为计数器模值,与方式有关。方式0: 213;方式1: 216; 方式2,3: 28。 D: 计数设定的初值;TC:所需要的定时时间;M: 为计数器模值,与方式有关。方式0: 213;方式1: 216; 方式2,3: 28。fosc:振荡频率实际上就是计算所需要计数的机器周期个数C第二章 汇编语言和汇编程序4.3.4 定时器的应用举例例4-2:P1.0输出周期为1ms的连续方波,要求用T0定时器,设振荡频率fosc=6MHz。解:周期为1ms,则定时时间为500us,定时时间到调用CPL,将P1.0取反。

19、定时器初值计算: D=M-TC*(fosc/12) 需要计数 TC*(fosc/12) = 500*10-6*(6*106/12)=250 可以采用方式2,初值可以设为6(28-250)。第二章 汇编语言和汇编程序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 =

20、E0H, TL0=18H第二章 汇编语言和汇编程序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第二章 汇编语言和汇编程序4.4 并行输入输出接口第二章 汇编语言和汇编程序4.5 串行输入输出接口一个串行I/O端口,通过引脚RXD(P3.0)和TXD(P3.1)与外设进行全双工的串行异步通信。 4种工作方式 两个控制寄存器,用来设置工作方式、发送接收状态、特征位、波特率等等。 一个数据寄存器SBUF作为接收发送的数据缓冲。第二章 汇编语言和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论