基于8051单片机的外部设备交换信息的三种数据传输方式解析

贸泽电子设计圈 2018-01-09 15:50 次阅读

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

(1)无条件传送方式

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

(2)查询传送方式

查询传送也称条件传送是,在这种传送方式中,无论是输入还是输出,都是以计算机为主动一方。为了数据传送的正确性,计算机在传送数据之前,要首先查询外部设备是否已处于“准备好”状态;对于输出操作,则要知道外设是否已把上一次计算机输出的数据处理完毕。只有通过查询,确信外设已处于“准备好”的状态,计算机才能发出访问外设的指令,实现数据交换。状态信息一般只需要一位二进制码表示“准备好”和“未准备好”两种状态,所以,在接口中只用一个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效率的一个有效方式是采用中断方式。

(3)中断方式

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

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

贸泽电子设计圈 技术专区

原文标题:8051单片机的这三种数据传输方式,你了解多少?

文章出处:【微信号:Mouser-Community,微信公众号:贸泽电子设计圈】欢迎添加关注!文章转载请注明出处。

关注电子发烧友微信

有趣有料的资讯及技术干货

下载发烧友APP

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

基于LM35和51单片机的温度采集数码管显示系统

温度采集显示系统电路由温度采集模块、A/D转换模块、单片机控制模块、数码管显示模块和下载模块组成。电....

的头像 电子发烧友网工程师 发表于 02-20 09:50 次阅读 0条评论
基于LM35和51单片机的温度采集数码管显示系统

STC12系列单片机冷启动、热启动

stc的程序分引导区和程序区。引导区的代码主要负责ISP在线烧录。而stc的冷启动顺序就是先从引导区....

的头像 beanxyy 发表于 02-12 13:51 次阅读 0条评论
STC12系列单片机冷启动、热启动

单片机复位和冷启动详细介绍

单片机冷启动很简单,关电,再上电,正常复位后,就冷启动成功。单片机冷启动其实是一个技术术语,是指单片....

的头像 beanxyy 发表于 02-12 13:38 次阅读 0条评论
单片机复位和冷启动详细介绍

STC12C5201AD单片机的PWM功能的应用总结

52xxAD系列单片机的内部集成了两路可编程计数阵列模块(PCA),可用于软件定时器、外部脉冲的捕捉....

发表于 02-11 11:14 次阅读 0条评论
STC12C5201AD单片机的PWM功能的应用总结

利用单片机定时器实现信号采样和PWM控制

PWM控制方式广泛应用于各种控制系统中,但对脉冲宽度的调节一般采用硬件来实现。如使用PWM控制器或在....

发表于 02-10 17:16 次阅读 0条评论
利用单片机定时器实现信号采样和PWM控制

c8051f单片机ad采样程序(附详细注释)

C8051F系列单片机已有6种产品选型,高度集成的小封装C8051F系列单片机经过优化,专门应用于消....

发表于 02-09 15:27 次阅读 0条评论
c8051f单片机ad采样程序(附详细注释)

单片机AD采样程序及其寄存器讲解

一般来说,AD有积分型的和逐次逼近型的,后都更多的被使用,所以我们一般也都是使用的这一种。说的简单点....

发表于 02-09 15:22 次阅读 0条评论
单片机AD采样程序及其寄存器讲解

pic单片机的ad转换(实例解析)

A/D转换器是用来通过一定的电路将模拟量转变为数字量。模拟量可以是电压、电流等电信号,也可以是压力、....

的头像 beanxyy 发表于 02-09 14:44 次阅读 0条评论
pic单片机的ad转换(实例解析)

详细剖析单片机定时器的寄存器

标准的 51 单片机内部有 T0 和 T1 这两个定时器,T 就是 Timer 的缩写,现在很多 5....

的头像 电子工程技术 发表于 02-09 13:47 次阅读 0条评论
详细剖析单片机定时器的寄存器

stc52单片机键盘原理图及程序介绍

STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程....

的头像 beanxyy 发表于 02-09 11:18 次阅读 0条评论
stc52单片机键盘原理图及程序介绍

单片机数字电压表设计方案(九款51和MSP430的数字电压表电路原理图)

本文主要介绍了单片机数字电压表设计方案汇总(九款模拟电路设计原理图详解)。利用单片机系统与模数转换芯....

发表于 02-10 04:20 次阅读 0条评论
单片机数字电压表设计方案(九款51和MSP430的数字电压表电路原理图)

基于C8051F040多路浸水时刻记录电路模块化设计

针对某型航行器自沉系统中,需要掌握某合金材料在海水中因不同温度条件下的受腐蚀时间长短。采用模块化硬件....

发表于 02-09 03:22 次阅读 0条评论
基于C8051F040多路浸水时刻记录电路模块化设计

基于CDMA模块的嵌人式无线传输桥接装置

本研究旨在解决各种需要低成本无线数据传输的桥接设备.即某客户端设备通过RS232与本桥接设备相连。该....

的头像 inr999 发表于 02-09 04:15 次阅读 0条评论
基于CDMA模块的嵌人式无线传输桥接装置

为什么要选择AVR单片机?

什么是AVR单片机?AVR单片机有什么优点?为什么要选择AVR单片机? AVR单片机是ATMEL公司....

发表于 02-12 04:31 次阅读 0条评论
为什么要选择AVR单片机?

一个在单片机上练习C语言的模板程序

先给大家附上一套完整的模板源代码,后面章节练习C语言的模板程序就直接复制此完整的源代码,此源代码适合....

的头像 电子发烧友网工程师 发表于 02-15 22:54 次阅读 0条评论
一个在单片机上练习C语言的模板程序

基于嵌入式PIC32单片机的目标检测与跟踪系统

通过借鉴嵌入式系统在电子技术、信号处理以及计算机等领域应用的成功经验,在分析目标检测与跟踪算法的基....

的头像 电子发烧友网工程师 发表于 02-15 22:42 次阅读 0条评论
基于嵌入式PIC32单片机的目标检测与跟踪系统

基于单片机控制多普勒血流计系统的设计和实现

多普勒血流计的出现标志着在微血管灌流方面取得重大进步。本设计采取双通道装置拾取多普勒信号,有效地抑制....

的头像 电子发烧友网工程师 发表于 02-13 20:42 次阅读 0条评论
基于单片机控制多普勒血流计系统的设计和实现

基于STC12C5A60S2单片机及PID控制算法的气味循迹车设计

气味源的循迹是目前的研究热点之一,在以后的日常生活以及生产方面有着较为广泛的运用。本文介绍了一种基于....

发表于 02-06 18:19 次阅读 0条评论
基于STC12C5A60S2单片机及PID控制算法的气味循迹车设计

对单片机程序框架以及开发中一些常用部分的认识总结

任何对时间要求苛刻的需求都是我们的敌人,在必要的时候我们只有增加硬件成本来消灭它;比如你要8个数码管....

的头像 21ic电子网 发表于 02-06 17:21 次阅读 0条评论
对单片机程序框架以及开发中一些常用部分的认识总结

如何实现单片机电子密码锁的设计

但是随着时间和技术的推移更新,传统的机械锁也日益不能满足要求,更高安全系数的电子锁渐渐走入了人们的生....

发表于 02-20 09:00 次阅读 0条评论
如何实现单片机电子密码锁的设计