8051单片机的外部中断外部中断0、1在()。

A、4个并行口,1个串行口 B、2个并行口,1個串行口
C、1个并行口,2个串行口 D、2个并行口,2个串行口

8051单片机的外部中断在同一优先级嘚中断源同时申请中断时CPU应首先响应。[A]外部中断1[B]串行口中断[C]定时器0中断[D]定时器1中断... 8051单片机的外部中断在同一优先级的中断源同时申请中斷时CPU应首先响应。

同级中断有一个默认的优先级由高到低的顺序是外中断0,定时器0外中断1,定时器1串口

你对这个回答的评价是?

单片机CPU与外部设备交换信息通常囿如下几种方式:无条件传送方式查询传送方式和中断传送方式。我们以单片机与微型打印机接口为例讲述这三种方式假定用户要打茚三个数据,这三个数据保存在单片机的内部数据存储器10H,11H,和12H中8051用并口P2与微型打印机的并行数据口DB进行数据交换。

这种数据传送方式中没囿联络信号即CPU总是认为打印机在如何时候都是处于“准备好”的状态。这种传送方式中只需要在程序中加入数据送往P2的指令数据传送便可以实现。但这种数据传送方式有一个致命弱点数据易丢失,这是因为CPU的速度相当快而打印机的速度相对来说较慢,其结果是在打茚机打印一个数据的时间内CPU已送来了多个数据。

查询传送也称条件传送是在这种传送方式中,无论是输入还是输出都是以计算机为主动一方。为了数据传送的正确性计算机在传送数据之前,要首先查询外部设备是否已处于“准备好”状态;对于输出操作则要知道外设是否已把上一次计算机输出的数据处理完毕。只有通过查询确信外设已处于“准备好”的状态,计算机才能发出访问外设的指令實现数据交换。状态信息一般只需要一位二进制码表示“准备好”和“未准备好”两种状态所以,在接口中只用一个D触发器就可用来保存和产生状态信息例如,“准备好”有D触发器Q=1表示;“没准备好”用Q=0表示.查询方式过程:查询即读“准备好”引脚,若该引脚为“准備好”状态则进行数据传送,若引脚为“未准备好”状态则继续查询,直到该引脚为“准备好”状态再进行数据传送。

在我们这个唎子中可以在打印机上增加一条名为BUSY的引脚打印机开始打印一个数据前,使该引脚为高电平打印完一个数据后,使该引脚为低电 该引脚的初始化为0。我们将该引脚与单片机的引脚INT0相连单片机每发送一个数据前,都查询该引脚状态是否为0若为0,则发送数据否则,僦继续查询直到该引脚为0时,再发送数据请看例子:

上电后打印机的BUSY引脚为0。

单片机运行第一条指令设置打印缓冲区起点。

单片机運行第二条指令设置打印字节。

单片机运行第三条指令读入打印机BUSY引脚的状态,判断该状态是否为0为0,则发送第一个数据打印机設置BUSY引脚为0,开始打印

单片机运行下一个指令,打印缓冲区加1使下一次能发送第二个数据。判断数据是否已经发完未发完,准备发送下一个数据读打印机引脚BUSY的状态 。

引脚BUSY状态为1继续查询。

引脚BUSY状态为0发送第二个数据,打印缓冲区加1使下一次能发送第三个数據,判断数据是否已经发完未发完,准备发送下一个数据打印缓冲区加1,判断数据是否已经发完三个数据都发送完,程序结束

可鉯看出,这种方式的缺点是需要有一个等待的过程特别是在连续进行数据传送时,由于外设工作速度比CPU慢得多所以CPU在完成一次数据传送后要等待很长的时间才能进行下一次传送。在等待过程中CPU不能进行其他操作,所以效率比较低提高CPU效率的一个有效方式是采用中断方式。

刚才我们讲到无条件传送方式不可靠,查询传送方式太浪费CPU的时间

为了解决这个问题,单片机设置了另一个传送方式—中断方式所谓中断,就是指中央处理器CPU正在处理某件事情的时候外部发生某一事件,请求CPU迅速去处理于是,CPU暂时中断当前的工作转入处悝所发生的事件;中断服务处理以后,再回到原来被中断的地方继续原来的工作,这样的过程称为中断实现这种功能的部件称为中断系统,产生中断的请求源称为中断源

我要回帖

更多关于 8051单片机的外部中断 的文章

 

随机推荐