×

单片机基础及应用:单片机并行I/O扩展资料下载

消耗积分:3 | 格式:pdf | 大小:931.6KB | 2021-04-25

英雄孤寂

分享资料个

一、单片机I/O扩展基础知识 1 、I/O接口威廉希尔官方网站 的功能 外部设备的速度十分复杂,必须通过I/O接口威廉希尔官方网站 实现。 (1) 速度协调     面对各种设备的速度差异,单片机无法按固定的时序以同步方式进行I/O操作,只能以异步方式进行,也就是只有在确认设备已为数据传送做好准备的前提下才能进行I/O操作。为此需要接口威廉希尔官方网站 产生状态信号或中断请求信号,表明设备是否做好准备。即通过接口威廉希尔官方网站 来进行单片机与外部设备之间的速度协调。 (2) 输出数据锁存 由于CPU与外设速度的不一致,需要有接口威廉希尔官方网站 把输出数据先锁存起来,待输出设备为接收数据做好准备后,再把传送数据。这就是接口威廉希尔官方网站 的数据锁存功能。 (3) 数据总线隔离 线上可能连接着多个数据源(输入设备)和多个数据负载(输出设备)。一对源和负载的数据传送正在进行时,所有其他不参与的设备在电性能上必须与总线隔开。这就是接口威廉希尔官方网站 的总线隔离功能。 为了实现总线隔离,需要有接口威廉希尔官方网站 提供具有三态缓冲功能的三态缓冲威廉希尔官方网站 。 (4)数据转换 外部设备种类繁多,不同设备之间的性能差异很大,信号形式也多种多样。单片机只能使用数字信号,如果外部设备所提供或需要的不是电压形式的数字信号,就需要有接口威廉希尔官方网站 进行转换,其中包括模/数转换和数/模转换等。 (5)增强驱动能力 通过接口威廉希尔官方网站 为输出数据提供足够的驱动功率,以保证外部设备能正常、平稳地工作。  2、 关于接口威廉希尔官方网站 的更多说明 (1)接口与接口威廉希尔官方网站 “接口” (Interface),具有界面、相互联系等含义,通过接口能使两个被连接的器件协同工作。单片机接口,则是研究单片机与外部设备之间的连接问题。单片机与外部设备之间接口界面的硬件威廉希尔官方网站 称为接口威廉希尔官方网站 ,或称为I/O接口威廉希尔官方网站 。 (2) 口或端口 为了实现I/O接口威廉希尔官方网站 的界面功能,在接口威廉希尔官方网站 中应包含一些寄存器,通常把接口威廉希尔官方网站 中这些已编址并能进行读或(和)写操作的寄存器称为端口或简称口(Port)。完整的接口功能是靠软硬件相结合实现的,而口则是供用户使用的硬件内容,用户在进行扩展连接和编写相关程序时,要用到接口威廉希尔官方网站 中的各个口,为此就需要知道这些口的设置和编址情况。 (3) I/O接口的特点 外部设备和I/O操作的复杂性,使接口威廉希尔官方网站 成为单片机与外部设备之间必不可少的界面,通过接口威廉希尔官方网站 居中协调和控制,保证外部设备的正常工作。有关I/O接口的特点可归结为如下3点: ① 异步性。平时单片机与外部设备按各自的时序并行工作,只有在需要时外部设备才通过接口威廉希尔官方网站 接受单片机的控制。 ② 实时性。单片机对外部设备的控制以查询或中断方式进行,以便最大限度地实现控制的实时化。 ③ 与设备无关性。接口芯片不一定是专用的,同一个接口芯片通过软件设置可为多种设备实现接口。 (4)并行接口与串行接口 按数据传输方式的不同,接口有并行与串行之分,即并行接口与串行接口。本章重点是并行接口。 3、 I/O编址技术 为了对I/O接口威廉希尔官方网站 中的寄存器(端口)进行读/写操作,就需要对它们进行编址,所以就出现了I/O编址问题。有两种I/O编址方式:统一编址方式和独立编址方式。在80C51单片机系统中,采用统一编址方式。 所谓统一编址方式,就是把I/O接口中的寄存器与外扩展的数据存储器中的存储单元同等对待,合在一起使用同一个64 KB的外扩展地址空间。I/O和存储器的统一编址,使得I/O口也采用16位地址编址,并使用数据存储器读/写指令进行I/O操作,而不需要专门的I/O指令, 所谓独立编址方式,就是把I/O与存储器分开进行编址。这样,在一个单片机系统中就形成了两个独立的地址空间:存储器地址空间和I/O地址空间。独立编址方式的优点是两个地址空间相互独立界限分明,但同时也存在许多麻烦并增加系统开销,所以独立编址方式在单片机中较少采用。 4 、单片机I/O控制方式 (1)无条件方式 无条件传送也称为同步程序传送。只有那些能一直为I/O操作作好准备的设备,才能使用无条件传送方式。在进行无条件I/O操作时,无需测试设备的状态,可以根据需要随时进行I/O操作。 无条件传送适用于两类设备的I/O操作。一类是具有常驻的或变化缓慢的数据信号的设备。例如,机械开关、指示灯、发光二极管、数码管等,另一类则是工作速度非常快,足以和单片机同步工作的设备,例如数/模转换器(DAC)。 (2)查询方式 查询方式又称有条件传送方式,在I/O操作前,要检测设备的状态,只有在确认设备已“准备好”的情况下,单片机才能执行I/O操作。检测也称为“查询”,所以就把这种有条件的I/O控制方式称为查询方式。 为实现查询方式的I/O控制,需要由接口威廉希尔官方网站 提供设备状态,接口威廉希尔官方网站 中的状态寄存器或状态位就是为此而准备的查询方式只适用于规模比较小的单片机系统。 (3) 中断方式 中断方式与查询方式的主要区别在于如何知道外部设备是否为I/O操作做好准备。采用中断方式进行I/O控制时,当设备做好准备之后,就向单片机发出中断请求。单片机接收到中断请求之后作出响应,暂停正在执行的原程序,而转去执行中断服务程序,通过执行中断服务程序完成一次I/O操作,然后程序返回,单片机再继续执行被中断的原程序。 中断方式效率较高,所以在单片机系统中被广泛采用。但中断请求是一种不可预知的随机事件,所以实现起来对单片机系统的硬件和软件都有较高的要求。 二、可编程并行接口芯片8255 8255是Intel公司产品,因其工作方式和操作功能等可通过程序进行设置和改变,称为可编程接口芯片。 1 、8255硬件逻辑结构 8255的全称是“可编程并行输入/输出接口芯片”,具有通用性强且使用灵活等优点,可用于实现80C51系列单片机的并行I/O口扩展。 8255芯片引脚图

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'单片机基础及应用:单片机并行I/O扩展资料下载',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);