原创 作为总线的P0 P2口也可以做通用I/O口

2007-10-31 12:57 5181 5 6 分类: MCU/ 嵌入式

       一般情况下,并行总线并不是把P0,P2的每一个引脚都作了数据/地址总线来使用的,对于开发人员来说,充分的利用每一个I/O口即可以达到提高系统资源的利用率,也可以避免因需要过多I/O引脚而使得系统芯片占用过多电路板面积的尴尬。


        一般并行总线接口的方式下,8根数据线是并需的,而地址总线并非总是需要16条,特别是对于那些外围扩展器件,比如在我的用DS12887时钟芯片制作的时钟闹钟系统 一文中DS12887的地址就只有9条线, 这样就就使得P2口全部用来做地址总线就显得有些空余,这些空余的地址总线是不是可以更好的利用起来呢?然而在很多书上“若P0,P2口作为数据/地址总线就不能用作通用I/O口”的结论可能会吓住我们进一步的思考。


          用DS12887时钟芯片制作的时钟闹钟系统文中作为地址线而未连接有的P2.6--P2.0,以P2.0为例,用来控制PNP型三极管驱动蜂鸣器作为警报,当P2.0为高时,蜂鸣器不发声;为低时,则发声。设DS12877的地址时,没有连接的线可以设为1或0,这里可以令DS12887的A8(即P2.0口)恒为“高”,这样在写和读DS12887的指令周期中,蜂鸣器总是不发声的。若出现需要报警的情况(比如闹钟设置的时间到),设置一个报警标志位并置位为1,每一次总循环处理的过程中,先处理写和读DS12887的过程,然后紧接着检查报警标志位是否为1,若为1,就使P2.0为低,即蜂鸣器发声,即使在检查报警标志位之前的过程中使得A8为“高”,但是这个过程非常短暂,而且安排在后的判断报警标志位的过程使得P2.0又回到了低(如果有报警的需要,当然若不需要报警,前面出现A8为高本身就是正常的了),所以最后出现的结果使得P2.0所接的蜂鸣器听起来总是在正常工作的。

         所以作为数据地址总线的端口并非总不能用做通用I/O口的,当然在具体设计的时候还要具体考虑的,本文讨论的是比如一些简单的人机接口,利用的是“人体器官并不是很灵敏”的道理,若在一些高可靠性的设计中就要再三权衡了。

 

                  write by eleclike 2007-10-31
PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1181689 2013-7-20 13:36

谢谢大侠

用户528931 2010-10-25 15:34

恭喜

用户1522964 2010-1-12 16:48

谢谢,哈哈

用户1584993 2010-1-12 13:54

恭喜博主啊

用户741296 2007-10-31 14:09

看看!

相关推荐阅读
eleclike 2010-12-03 00:07
mark 一下
2010 mark...
eleclike 2009-05-13 15:34
GSM PDU格式短信解析器
 本软件用于解析GSM PDU格式短信,显示DCS=8BIT和DCS=16BIT两种编码方式的短信内容。下载地址为:https://static.assets-stash.eet-china.com/...
eleclike 2009-04-27 16:55
Unicode与ASCII转换工具
Unicode字符在许多场合都会经常使用到,比如GPRS模块的开发和USB字符串描述符的定义,本软件是一个Unicode与ASCII编码的转换工具v1.0版本.1.可以将IRA格式的Unicode数据...
eleclike 2009-04-03 12:40
TUSB3210复位系统
TUSB3210采用标准的8052内核,但因为其更多的片上外设使得复位电路比普通的8051单片机更复杂。复位电路图如下图所示:从图中可以分析:1.  复位源:a)         USB-FUNCTO...
eleclike 2009-03-31 13:43
MC55使用的串口工具介绍
MC55使用的串口工具介绍:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />1.使用...
eleclike 2009-03-22 15:54
QuickARM片内RAM调试
 QuickARM片内RAM调试<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />1....
EE直播间
更多
我要评论
1
5
关闭 站长推荐上一条 /3 下一条