【微机原理】-MCS-51单片机的功能模块原理

来源:互联网 发布:arp static ip mac 编辑:程序博客网 时间:2024/05/29 15:47

微型计算机的输入与输出

组成一个微型计算机系统,除了前面所述的CPU、存储器外,还必须要有外部设备。一般来讲,计算机的三条总线并不是直接和外部设备相连接,而是通过各种接口电路再连接到外部设备。接口电路也叫做输入/输出接口。I/O接口电路是CPU和外部设备之间信息交换的桥梁,是一个过渡的大规模集成电路,可以和CPU集成在同一块芯片上。

外部设备分为输入设备和输出设备两种,故又称为输入/输出设备。A/D转换器也可以把模拟电量编程数字量输入计算机。D/A转换器把CPU处理后的数字信息还原为模拟电量,以便对被控对象进行实时控制。

另一类I/O设备是磁盘驱动器和磁带机,它们依靠磁介质存储信息,这些磁性载体是微型计算机常用的外存储器。

I/O接口的作用

1、实现与不同外设的速度匹配

CPU和外设间的数据传送方式有同步、异步、中断、DMA四种。

2、改变数据传送方式

通常I/O数据有并行串行两种传送方式。

并行传送是指数据在8条数据总线上同时传送,一次传送8位二进制信息;

串行传送是指数据在一条数据总线上分时传送,一次只传送1位二进制信息。

3、改变信号的性质和电平

CPU和外设间交换信息有两类:一类是数据型的,例如程序代码、地址和数据;一类是状态和命令型的,状态信息反映外部设备工作状态,命令信息用于控制外部设备工作。

外部设备的编址

I/O端口简称I/O口,常指I/O接口中带有端口地址的寄存器或缓冲器,CPU通过端口地址就可以对端口中的信息进行读写。

I/O接口是指CPU和外设间的I/O接口芯片,一个外设通常需要一个I/O接口,但一个I/O接口中可以有多个I/O端口,传送数据字的端口称为数据口,传送命令字的端口称为命令口,传送状态字的端口称为状态口。

通常,外设端口有两种编址方式:①对外设端口单独编址,②外设端口和存储器统一编址

1、外设端口的单独编址

外设端口单独编址是指外设端口和片外存储器存储单元的地址分别编址,互相独立。

2、外设端口和片外存储器统一编址

外设端口当做存储单元对待,也就是让外设端口地址占用部分片外存储器单元地址。

I/O数据的4种传递方式

1、同步传送

同步传送又称为无条件传送,类似于CPU和存储器间的数据传送。

(1)外设工作速度非常快。当外设工作速度能和CPU速度比拟时,常常采用同步传送方式。

(2)外设工作速度非常慢。当外设工作速度非常慢,以至于人们任何时候都认为它已经处于“准备好”状态时,也可以采用同步传送方式。

2、异步传送

异步传送又称为条件传送,也叫查询式传送,在不便使用同步传送的场合下,也可以采用异步传送来解决CPU和外设之间的速度匹配问题。

在异步传送方式下,CPU需要I/O接口为外设提供状态和数据两个端口,CPU通过状态口查询外设“准备好”后就进行数据传送。

3、中断传送

中断传送是利用CPU本身中断功能和I/O接口的中断功能来实现对外设I/O数据的传送。采用中断方式传送I/O数据可以大大提高CPU 的工作效率

4、DMA传送
不论是从外设传送到内存的数据,还是从内存传送到外设的数据,都要转到CPU才能实现,因此在I/O数据批量传送时,数据传送效率较低。

为了提高数据传送的效率,I/O数据不经过PCU而直接在外设和内存之间传送。

DMA是一种由硬件执行数据传送的工作方式。DMA传送必须依靠带有DMA功能的CPU和专用DMA控制器实现。

中断概念以及MCS-51的中断系统

中断概述

1、中断的定义和作用

中断是指计算机暂时停止源程序的执行转而为外部设备服务(执行中断服务程序),并在服务完成后自动返回原程序继续执行的过程。

“中断请求”通常是一种电信号,CPU一旦检测到并响应这个电信号,便可以自动转入该中断源的中断服务程序。

(1)可以提高CPU的工作效率

可以通过分时操作启动多个外设同时工作,并能对它们进行统一管理。

(2)可以提高实时数据的处理时效

计算机必须对被控系统的实时参量、越限数据和故障信息及时采集,做出分析判断并进行处理,以便对系统实施正确的调节和控制。

2、中断源

中断源是指引起中断原因的设备或部件,或发出中断请求信号的源泉。

(1)外部设备中断源

外部设备主要为微型计算机输入和输出数据,故它是最原始和最广泛的中断源。

(2)控制对象中断源

在计算机用作实时控制时,被控对象常常被用作中断源,用于产生中断请求信号,要求CPU及时采集系统的控制参量、越限参数以及要求发送和接收的数据等。

(3)故障中断源

要CPU以中断方式对已经发生的故障进行处理

(4)定时脉冲中断源

3、中断的分类

(1)可屏蔽中断源

(2)非屏蔽中断源

(3)软件中断源

4、中断嵌套

CPU可以接收多个中断源发出的中断请求。在同一时刻,CPU只能响应其中一个中断源的中断请求。为了避免由于多个中断源在同一时刻的中断请求而带来的混乱,必须给每个中断源请求赋予一个特定的中断优先级,以便CPU优先响应中断优先级高的中断请求。

(1)CPU执行安排在主程序开头的开中断指令后,若来了一个B中断请求,CPU便可响应B中断从而进入B中断服务程序执行。

(2)CPU执行设置在B中断服务程序开头的一条开中断指令后,使CPU中断再次开放,若此时又来了优先级更高的A中断请求,则CPU响应A中断从而浸入A中断服务程序执行

(3)CPU执行到A中断服务程序末尾的一条中断返回指令RETI后自动返回,继续执行B中断服务程序。

(4)CPU执行到B中断服务程序的末尾一条中断返回指令RETI后,又可返回继续执行主程序。

5、中断系统的功能

中断系统是指能够实现中断功能的那部分硬件电路和软件程序。

(1)进行中断优先权排队

当多个中断源同时向CPU请求中断时,CPU就可以通过中断优先权排队电路率先响应中断优先权高的中断请求,而把中断优先权低的中断请求暂时搁置起来,等到处理完优先权高的中断请求后再来响应优先权低的中断。

(2)实现中断嵌套

(3)自动响应中断

(4)实现中断返回

MCS-51的中断系统

1.MCS-51 的中断源和中断标志

(1)中断源 8051的5级中断分为两个外部中断、两个定时器溢出中断和一个串行口中断

外部中断源

8031有INT0和INT1两条外部中断请求输入线,用于输入两个外部中断源的请求信号,并允许外部中断源以低电平或者负边沿两种中断方式输入中断请求信号。

定时器溢出中断源

串行口中断源

(2)中断标志

8031在每个机器周期的S5P2时检测(或接收)外部(或内部)中断源发来的中断请求信号后,先使响应中断标志位置位,然后便在下个机器周期检测这些中断标志位状态,以决定是否响应该中断。

定时器控制寄存器TCON

TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8F8E8D8C8B8A8988②串行口控制寄存器 SCON

SCON      TIRI位地址      9998

2.MCS-51 对中断请求的控制

(1)对中断允许的控制

MCS-51没有专门的开中断和关中断指令,中断的开放和关闭时通过终端允许寄存器IE进行两级控制的。所谓两级控制是指有一个中断允许控制位EA,配合各种中断源的终端允许控制位,共同实现对中断请求的控制。

(2)对中断优先级的控制

MCS-51对中断优先级的控制比较简单,所有中断都可以设定为高和低两个中断优先级,以便CPU对所有中断实现两级中断嵌套。

3.MCS-51 对中断的响应

(1)若CPU处在非响应中断状态而且响应的终端是开放的,则MCS-51 在执行完现行指令后就会自动响应来自某中断源的中断请求。

(2)若CPU正处在响应某一中断请求状态时又来了新的优先级更高的中断请求,则MCS-51 便会立即响应并实现中断嵌套;若新来的中断优先级比现在正在服务的优先级低,则CPU必须等到现有中断服务完成以后才会自动响应新来的中断请求。

(3)若CPU正处在执行RETI或任何访问IE/IP指令的时刻,则MCS-51必须等待执行完下条指令后才响应该中断请求。

MCS-51必须做下面三件事:①把中断点的地址,也就是当前程序计数器PC的内容压入堆栈,以便执行到中断服务程序中的RETI指令按此地址返回原程序执行。

②关闭中断,以防在响应中断期间受其他中断的干扰;③根据中断源入口地址转入执行中断服务程序。

4.MCS-51对中断的响应时间

响应中断的最短时间需要三个机器周期。这三个机器周期的分配是:第一个机器周期用户查询中断标志位状态,第二和第三个机器周期用户保护断点、关闭CPU中断和自动转入一条长转移指令的地址。

执行RETI指令的下一条指令最长需要4个机器周期。

5.MCS-51 对中断请求的撤除

(1)定时器溢出中断请求的撤除

定时器溢出中断源的中断请求是自动撤除的

(2)串行口中断请求的撤除

中断系统不能自动撤除,为了防止CPU再次响应这类中断,用户应在中断服务程序的适当位置通过CLR撤除发送中断

(3)外部中断请求的撤除

6.MCS-51中断系统的初始化

(1)开响应的中断源中断

(2)设定所用中断源的中断优先级

(3)若为外部中断,则规定是低电平还是负边沿的中断触发方式。

定时器/触发器

每个机器周期定时器加1,所以定时器也可以看做是对计算机机器周期进行计数的计数器。由于每个机器周期包含12个时钟周期,所以计数的速率是时钟频率的1/12。

除了可选择定时和技术方式外,每种定时器/计数器共有4种操作方式可供选择。

(1)定时/计数器可以有多种工作方式,可以是计数方式也可以是定时方式

(2)定时/计数器初值是可以设定的,定时或计数的多少由初值来设定,开启定时/计数器后,定时计数器开始进行加1计数。

(3)可以按照规定定时或计数值,当定时的时间到或者计数终止时,发出中断申请,通过中断服务程序实现周期性或准周期性服务。

定时/计数器控制与状态寄存器

MCS-51系列单片机设有两个特殊功能寄存器(TMOD和TCON),用户定义定时/计数器的操作方式和控制定时/计数器的有关功能。

定时计数器的初始设置

MCS-51系列单片机的定时/计数器是可以编程的,在进行定时或者计数之前也要用程序对其进行初设置

(1)对TMOD寄存器进行赋值,以确定定时器的工作方式。(00 - 13位计数器 ;01 - 16位计数器;10 - 具有自动再装入初值的8位计数器; 11 - 定时/计数器0分为两个8位计数器,定时/计数器 1 停止计数)

(2)设定定时/计数器的初值,直接讲计数的初值写入定时/计数器的TH和TL寄存器。

(3)根据需要,对IE寄存器设置初值,开放或关闭定时计数器中断,对IP寄存器设置初值,选择其中断优先级。

(4)对TCON寄存器中的TR1或TR0置位,开启定时计数器1或者定时计数器0

在设置初值的过程中,要置入定时值或计数值的初值,需要一些计算:

由于计数器是加一计数器,并在溢出时申请中断,因此不能直接输入所需的计数值,而是要从计数溢出值减去这个计数值才是应置入的初值。

计数方式时: 初值= M - 计数值

定时方式时:初值 = M - (定时值 * Tosc / 12)

串行通信及串行接口

微型计算机和外部设备交换数据的方式除了并行通信外,还常常使用串行通信的方式。

串行通信的基本方式

1、串行通信的两种基本方式

(1)异步传送方式

异步传送的特点是数据在线路上的传送不是连续的,在线路上的数据是以一个字节为单位来传送的。异步传送时,各个字符可以连续传送,也可以间接传送,这完全由发送方根据需要来决定。另外,在异步传送时,同步时钟脉冲并不传送到接收方,即双方各用自己的脉冲源来控制发送和接收。

一个字符由四个部分组成:起始位、数据位、奇偶校验位、停止位

起始位为0信号,占用1位,用来通知接受设备一个新的字符的开始。

线路上在不传送字符时,应该保持1.接收端不断检测线路的状态,若连续收到1以后又收到0,就知道是发来一个新的字符,应马上准备接收。

起始位后面紧跟着就是数据位。由于串行通信的速度是与数据的位数是成比例的,所以要根据需要来确定数据的位数。另外,在发送时,总是最低位先传送。

奇偶校验占一位。但在字符中也可以规定不用奇偶校验位,则这一位也可以省去。

停止位用来表征传送本字符的结束。它一定是用逻辑1来表示,停止位可以是1位、1.5位或2位。

在串行通信中有个重要的指标叫做波特率。它定义为每秒钟传送二进制数码的位数,以位/秒作为单位,即bps或者baud。串行通信要求发送端和接收端的波特率要一致,这样才能保证收发两端的时钟同步。波特率越高,要求传输通道的频带越宽。在异步通信中,波特率为美标传送字符数和每个字符位数的乘积。

(2)同步传送方式

同步传送方式是一种连续传送数据的方式。在通信开始后,发送端连续发送字符,接收端也连续接收字符,直到通信告一段落。

2、串行通信中数据的传送方式

根据具体的需要,可以分为半双工和全双工

半双工只有一条传输线,尽管传输也可以双向进行,但每一次只能有一个站发送,另一个站接收。

全双工有两条传输线,两个站可以同时相互发送和接收。

3、串并变换和串行接口

CPU通常是并行地传送数据,但和某些外部设备或其他计算机之间则可采用串行通信方式。这就要求把从CPU来的并行数据转换为串行数据送给外部设备,或者把外部设备送来的串行数据转换为并行数据送给CPU。

0 0